/**
 * Phase 5 Slice A — Section partials styling.
 * Class prefix `rt-sec-*` to avoid collision with polish.css `rt-section-*`.
 * Loaded after polish.css. Tokens mirror Stitch design (luxury teal + Vietnamese gold).
 */

/* ── Tokens ───────────────────────────────────────────────────────── */
.rt-sec-block {
    /* Per-project admin tokens (`primary_color`, `secondary_color`, `accent_color`)
       injected by TemplateTokenSanitizer cascade via [data-template] ancestor.
       Tonal derivatives (`-fixed`, `-container`) auto-derive via color-mix so a
       single primary/secondary swap repaints hover + container states too. */
    --rt-sec-primary: var(--primary-color, #003331);
    --rt-sec-primary-fixed: color-mix(in srgb, var(--rt-sec-primary) 22%, #ffffff);
    --rt-sec-primary-container: color-mix(in srgb, var(--rt-sec-primary) 85%, #000000);
    --rt-sec-secondary: var(--secondary-color, #775a19);
    --rt-sec-secondary-container: color-mix(in srgb, var(--rt-sec-secondary) 28%, #ffffff);
    --rt-sec-tertiary-container: var(--accent-color, #7a2514);
    --rt-sec-surface: #f8f9fa;
    --rt-sec-surface-low: #f3f4f5;
    --rt-sec-surface-container: #edeeef;
    --rt-sec-on-surface: #191c1d;
    --rt-sec-on-surface-variant: #3f4948;
    --rt-sec-outline: #707978;
    --rt-sec-outline-variant: #bfc8c7;
    --rt-sec-on-primary: #ffffff;
    --rt-sec-radius: 12px;
    --rt-sec-radius-lg: 16px;
    --rt-sec-radius-pill: 9999px;
    --rt-sec-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
    --rt-sec-shadow-md: 0 12px 28px -16px rgba(0, 51, 49, .22);
    --rt-sec-shadow-xl: 0 24px 48px -24px rgba(0, 51, 49, .28);
    --rt-sec-font: 'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --rt-sec-gap-xs: .5rem;
    --rt-sec-gap-sm: 1rem;
    --rt-sec-gap-md: 1.5rem;
    --rt-sec-gap-lg: 2.5rem;
    --rt-sec-gap-xl: 4rem;
    --rt-sec-gutter: 24px;
    font-family: var(--rt-sec-font);
    color: var(--rt-sec-on-surface);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.rt-sec-block + .rt-sec-block { margin-top: 0; }
.rt-sec-block * { box-sizing: border-box; }

/* Heading color reset — beats template-scoped h2/h3 overrides like
   `[data-template="showcase"] h2 { color: var(--primary-color) }` (specificity 0,1,1).
   Section-specific `__title` rules below can still override per design. */
.rt-sec-block h1,
.rt-sec-block h2,
.rt-sec-block h3,
.rt-sec-block h4 { color: var(--rt-sec-primary); }

.rt-sec-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Eyebrow chip — uppercase small caps */
.rt-sec-eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--rt-sec-secondary);
}
.rt-sec-eyebrow--wide { letter-spacing: .2em; }

.rt-sec-icon { display: inline-block; flex: 0 0 auto; vertical-align: middle; }

/* Common buttons used in hero/overview/zones */
.rt-sec-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: transform .15s ease, opacity .2s ease, background .2s ease, color .2s ease;
    cursor: pointer;
    border: 1px solid transparent;
}
.rt-sec-btn:active { transform: scale(.97); }
.rt-sec-btn--solid { background: var(--rt-sec-tertiary-container); color: #fff; box-shadow: 0 16px 32px -16px rgba(122, 37, 20, .55); }
.rt-sec-btn--solid:hover { opacity: .9; color: #fff; }
.rt-sec-btn--glass { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.rt-sec-btn--glass:hover { background: rgba(255, 255, 255, .22); color: #fff; }

/* ── Hero ─────────────────────────────────────────────────────────── */
.rt-sec-hero { position: relative; min-height: 600px; height: clamp(640px, 85vh, 870px); display: flex; align-items: center; overflow: hidden; color: #fff; }
.rt-sec-hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.rt-sec-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.rt-sec-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,51,49,.78) 0%, rgba(0,51,49,.42) 45%, rgba(0,51,49,.05) 100%); }
.rt-sec-hero__inner { position: relative; z-index: 1; width: 100%; display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gutter); align-items: center; }
@media (min-width: 992px) { .rt-sec-hero__inner { grid-template-columns: 1.15fr .85fr; gap: var(--rt-sec-gap-xl); } }

.rt-sec-hero__copy { display: flex; flex-direction: column; gap: var(--rt-sec-gap-md); max-width: 640px; }
.rt-sec-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border: 1px solid rgba(254, 212, 136, .35); background: rgba(254, 212, 136, .14); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: var(--rt-sec-radius-pill); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--rt-sec-secondary-container); width: fit-content; }
.rt-sec-hero__eyebrow .rt-sec-icon { color: var(--rt-sec-secondary-container); }
.rt-sec-hero__title { font-size: clamp(34px, 5.2vw, 48px); line-height: 1.08; letter-spacing: -.02em; font-weight: 700; margin: 0; max-width: 18ch; color: #fff; }
.rt-sec-hero__lead { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, .82); max-width: 48ch; margin: 0; }
.rt-sec-hero__actions { display: flex; flex-wrap: wrap; gap: var(--rt-sec-gap-md); padding-top: 8px; }
.rt-sec-hero__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; padding-top: var(--rt-sec-gap-md); margin: 0; }
.rt-sec-hero__price-item { display: inline-flex; align-items: baseline; gap: 8px; }
.rt-sec-hero__price-item .rt-sec-icon { width: 16px; height: 16px; color: var(--rt-sec-secondary-container); }
.rt-sec-hero__price-label { font-size: 14px; color: rgba(255, 255, 255, .7); }
.rt-sec-hero__price-value { font-size: 22px; font-weight: 700; color: var(--rt-sec-secondary-container); letter-spacing: -.01em; }

.rt-sec-hero__panel { display: none; position: relative; padding: 28px; border-radius: var(--rt-sec-radius-lg); background: rgba(255, 255, 255, .88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255, 255, 255, .55); box-shadow: var(--rt-sec-shadow-xl); color: var(--rt-sec-on-surface); width: 360px; margin-left: auto; }
@media (min-width: 992px) { .rt-sec-hero__panel { display: block; } }
.rt-sec-hero__panel-status { display: flex; align-items: center; gap: 14px; }
.rt-sec-hero__panel-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: rgba(0, 51, 49, .08); color: var(--rt-sec-primary); flex: 0 0 48px; }
.rt-sec-hero__panel-status-text { display: flex; flex-direction: column; gap: 2px; }
.rt-sec-hero__panel-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); }
.rt-sec-hero__panel-status-text strong { font-size: 16px; font-weight: 600; color: var(--rt-sec-primary); }
.rt-sec-hero__panel-stats { list-style: none; margin: 18px 0 18px; padding: 18px 0 0; border-top: 1px solid rgba(191, 200, 199, .5); display: flex; flex-direction: column; gap: 10px; }
.rt-sec-hero__panel-stats li { display: flex; justify-content: space-between; align-items: center; font-size: 14px; }
.rt-sec-hero__panel-stats li span { color: var(--rt-sec-on-surface-variant); }
.rt-sec-hero__panel-stats li strong { font-weight: 700; letter-spacing: .02em; color: var(--rt-sec-primary); font-size: 13px; text-transform: uppercase; }
.rt-sec-hero__panel-strap { background: var(--rt-sec-primary); color: #fff; padding: 10px 14px; border-radius: 10px; text-align: center; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }

/* ── Overview ─────────────────────────────────────────────────────── */
.rt-sec-overview { padding: 80px 0; background: var(--rt-sec-surface); color: var(--rt-sec-on-surface); }
.rt-sec-overview__grid { display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gap-xl); align-items: center; }
@media (min-width: 992px) { .rt-sec-overview__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }
.rt-sec-overview__copy { display: flex; flex-direction: column; gap: var(--rt-sec-gap-md); }
.rt-sec-overview__title { font-size: clamp(26px, 3.8vw, 32px); line-height: 1.2; letter-spacing: -.01em; font-weight: 600; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-overview__body { display: flex; flex-direction: column; gap: 14px; font-size: 16px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); }
.rt-sec-overview__body p { margin: 0; }
.rt-sec-overview__cta { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 4px; border-bottom: 2px solid rgba(0, 51, 49, .25); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rt-sec-primary); text-decoration: none; width: fit-content; transition: border-color .2s ease, gap .2s ease; }
.rt-sec-overview__cta:hover { border-bottom-color: var(--rt-sec-primary); gap: 12px; color: var(--rt-sec-primary); }

.rt-sec-overview__facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--rt-sec-gutter); }
.rt-sec-fact-card { background: #fff; padding: 28px; border-radius: var(--rt-sec-radius-lg); border: 1px solid rgba(191, 200, 199, .35); box-shadow: var(--rt-sec-shadow-sm); transition: box-shadow .2s ease, transform .2s ease; }
.rt-sec-fact-card:hover { box-shadow: var(--rt-sec-shadow-md); transform: translateY(-2px); }
.rt-sec-fact-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 10px; background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary); margin-bottom: 18px; transition: background .25s ease, color .25s ease; }
.rt-sec-fact-card__icon .rt-sec-icon { width: 24px; height: 24px; }
.rt-sec-fact-card:hover .rt-sec-fact-card__icon { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-fact-card__title { font-size: 16px; font-weight: 700; color: var(--rt-sec-primary); margin: 0 0 6px; }
.rt-sec-fact-card__body { font-size: 14px; line-height: 1.55; color: var(--rt-sec-on-surface-variant); margin: 0; }

/* ── Zones ────────────────────────────────────────────────────────── */
.rt-sec-zones { padding: 80px 0; background: var(--rt-sec-surface-low); }
.rt-sec-zones__header { display: flex; flex-direction: column; gap: var(--rt-sec-gap-md); align-items: flex-start; justify-content: space-between; margin-bottom: var(--rt-sec-gap-lg); }
@media (min-width: 768px) { .rt-sec-zones__header { flex-direction: row; align-items: flex-end; } }
.rt-sec-zones__title { font-size: clamp(26px, 3.8vw, 32px); line-height: 1.2; letter-spacing: -.01em; font-weight: 600; color: var(--rt-sec-primary); margin: 8px 0 0; }
.rt-sec-zones__nav { display: flex; gap: var(--rt-sec-gap-sm); }
.rt-sec-zones__nav-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--rt-sec-outline); background: transparent; color: var(--rt-sec-outline); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.rt-sec-zones__nav-btn:hover:not(:disabled) { background: var(--rt-sec-primary); color: #fff; border-color: var(--rt-sec-primary); }
.rt-sec-zones__nav-btn:disabled { opacity: .4; cursor: not-allowed; }

.rt-sec-zones__grid { display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gutter); }
@media (min-width: 768px) { .rt-sec-zones__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rt-sec-zones__grid { grid-template-columns: repeat(3, 1fr); } }

.rt-sec-zone-card { background: #fff; border-radius: var(--rt-sec-radius-lg); overflow: hidden; box-shadow: var(--rt-sec-shadow-sm); transition: box-shadow .25s ease, transform .25s ease; display: flex; flex-direction: column; height: 100%; }
.rt-sec-zone-card:hover { box-shadow: var(--rt-sec-shadow-xl); transform: translateY(-4px); }
.rt-sec-zone-card__media { position: relative; display: block; height: 256px; overflow: hidden; }
.rt-sec-zone-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.rt-sec-zone-card:hover .rt-sec-zone-card__media img { transform: scale(1.08); }
.rt-sec-zone-card__badge { position: absolute; top: 16px; left: 16px; padding: 6px 14px; border-radius: 6px; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--rt-sec-secondary); }
.rt-sec-zone-card__badge--secondary { background: var(--rt-sec-secondary); }
.rt-sec-zone-card__badge--tertiary { background: var(--rt-sec-tertiary-container); }
.rt-sec-zone-card__badge--primary { background: var(--rt-sec-primary); }

.rt-sec-zone-card__body { padding: 28px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.rt-sec-zone-card__title { font-size: 22px; font-weight: 600; line-height: 1.25; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-zone-card__facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; }
.rt-sec-zone-card__facts dt { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); margin: 0 0 4px; }
.rt-sec-zone-card__facts dd { font-size: 14px; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-zone-card__price { font-size: 16px; font-weight: 700; color: var(--rt-sec-secondary-container); }
.rt-sec-zone-card__quick { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--rt-sec-on-surface-variant); margin: 0; }
.rt-sec-zone-card__quick .rt-sec-icon { width: 16px; height: 16px; color: var(--rt-sec-primary); }
.rt-sec-zone-card__cta { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px 16px; border-radius: 10px; border: 1px solid var(--rt-sec-primary); color: var(--rt-sec-primary); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; transition: background .2s ease, color .2s ease; }
.rt-sec-zone-card:hover .rt-sec-zone-card__cta,
.rt-sec-zone-card__cta:hover { background: var(--rt-sec-primary); color: #fff; }

/* ── Gallery (Masonry) ────────────────────────────────────────────── */
.rt-sec-gallery-mosaic { padding: 56px 0 72px; background: linear-gradient(180deg, #fff 0%, var(--rt-sec-surface) 100%); }
.rt-sec-gallery-mosaic__header { display: flex; flex-direction: column; gap: var(--rt-sec-gap-sm); align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }
@media (min-width: 768px) { .rt-sec-gallery-mosaic__header { flex-direction: row; align-items: flex-end; } }
.rt-sec-gallery-mosaic__title { font-size: clamp(36px, 5vw, 54px); line-height: 1.02; letter-spacing: 0; font-weight: 800; color: #0f172a; margin: 8px 0 0; }
.rt-sec-gallery-mosaic__cta { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rt-sec-primary); text-decoration: none; padding-bottom: 2px; border-bottom: 2px solid rgba(0, 51, 49, .25); transition: border-color .2s ease; }
.rt-sec-gallery-mosaic__cta:hover { border-bottom-color: var(--rt-sec-primary); color: var(--rt-sec-primary); }

.rt-sec-gallery-mosaic__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; gap: 14px; }
@media (min-width: 768px) {
    .rt-sec-gallery-mosaic__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(130px, 11vw, 156px); gap: 16px; }
    .rt-sec-gallery-mosaic__cell--0 { grid-column: 1 / span 6; grid-row: span 2; }
    .rt-sec-gallery-mosaic__cell--1,
    .rt-sec-gallery-mosaic__cell--2,
    .rt-sec-gallery-mosaic__cell--3,
    .rt-sec-gallery-mosaic__cell--4 { grid-column: span 3; grid-row: span 1; }
    .rt-sec-gallery-mosaic__cell--5,
    .rt-sec-gallery-mosaic__cell--6,
    .rt-sec-gallery-mosaic__cell--7 { grid-column: span 4; grid-row: span 1; }
}
.rt-sec-gallery-mosaic__cell { position: relative; display: block; overflow: hidden; border-radius: 18px; background: var(--rt-sec-surface-low); box-shadow: 0 14px 34px rgba(15, 23, 42, .08); outline: 1px solid rgba(255, 255, 255, .72); transform: translateY(0); transition: transform .26s ease, box-shadow .26s ease; }
.rt-sec-gallery-mosaic__cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .58s ease, filter .25s ease; }
.rt-sec-gallery-mosaic__cell:hover { transform: translateY(-5px); box-shadow: 0 22px 44px rgba(15, 23, 42, .16); }
.rt-sec-gallery-mosaic__cell:hover img { transform: scale(1.055); filter: saturate(1.05) contrast(1.02); }
.rt-sec-gallery-mosaic__cell::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, 0) 48%, rgba(15, 23, 42, .30) 100%); opacity: .52; transition: opacity .25s ease; pointer-events: none; }
.rt-sec-gallery-mosaic__cell:hover::after { opacity: 1; }
.rt-sec-gallery-mosaic__count { position: absolute; left: 18px; bottom: 18px; z-index: 2; min-width: 88px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 18px; border-radius: 999px; background: rgba(15, 23, 42, .86); color: #fff; font-size: 15px; font-weight: 800; box-shadow: 0 16px 34px rgba(15, 23, 42, .22); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.rt-sec-gallery-mosaic__hidden { display: none; }
@media (max-width: 767px) {
    .rt-sec-gallery-mosaic { padding: 40px 0 56px; }
    .rt-sec-gallery-mosaic__title { font-size: clamp(30px, 9vw, 38px); }
    .rt-sec-gallery-mosaic__cell--0 { grid-column: span 2; grid-row: span 2; }
    .rt-sec-gallery-mosaic__cell { border-radius: 14px; }
    .rt-sec-gallery-mosaic__count { left: 12px; bottom: 12px; min-width: 68px; min-height: 38px; padding: 8px 14px; font-size: 14px; }
}

/* Global Gate Stitch reference skin: warm editorial surface + amber luxury accent. */
[data-template] {
    --gg-surface: #fdf8f7;
    --gg-surface-soft: #f7f3f1;
    --gg-surface-panel: rgba(255, 255, 255, .88);
    --gg-ink: #1c1b1b;
    --gg-muted: #4d4540;
    --gg-line: #d0c4be;
    --gg-gold: #895200;
    --gg-gold-soft: #ffb157;
    --gg-shadow: 0 28px 70px rgba(28, 27, 27, .12);
    background:
        linear-gradient(180deg, rgba(255, 220, 188, .22), rgba(255, 255, 255, 0) 520px),
        var(--gg-surface);
    color: var(--gg-ink);
}

[data-template] .rt-sc-topnav,
[data-template] .rt-template__sidenav {
    background: rgba(253, 248, 247, .92);
    border-color: rgba(208, 196, 190, .58);
    box-shadow: 0 14px 40px rgba(28, 27, 27, .06);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

[data-template] .rt-sc-topnav__link,
[data-template] .rt-template__sidenav-link {
    letter-spacing: .1em;
    text-transform: uppercase;
}

[data-template] .rt-sc-topnav__link:hover,
[data-template] .rt-sc-topnav__link:focus-visible,
[data-template] .rt-template__sidenav-link:hover,
[data-template] .rt-template__sidenav-link:focus-visible,
[data-template] .rt-template__sidenav-link.is-active {
    color: var(--gg-gold);
}

[data-template] .rt-sec-block {
    /* Template-default fallbacks. Admin token wins via var() because
       :root cascade carries `--primary-color` etc. into this scope. */
    --rt-sec-primary: var(--primary-color, #1c1b1b);
    --rt-sec-primary-container: color-mix(in srgb, var(--rt-sec-primary) 85%, #000000);
    --rt-sec-secondary: var(--secondary-color, #895200);
    --rt-sec-secondary-container: color-mix(in srgb, var(--rt-sec-secondary) 32%, #ffffff);
    --rt-sec-tertiary-container: var(--accent-color, #895200);
    --rt-sec-surface: #fdf8f7;
    --rt-sec-surface-low: #f7f3f1;
    --rt-sec-surface-container: #f1edec;
    --rt-sec-on-surface: #1c1b1b;
    --rt-sec-on-surface-variant: #4d4540;
    --rt-sec-outline: #7e7570;
    --rt-sec-outline-variant: #d0c4be;
    --rt-sec-shadow-xl: var(--gg-shadow);
}

[data-template] .rt-sec-hero {
    min-height: clamp(680px, 88vh, 920px);
    isolation: isolate;
}

[data-template] .rt-sec-hero__media img {
    filter: saturate(1.04) contrast(1.03);
    transform: scale(1.025);
}

[data-template] .rt-sec-hero__overlay {
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .50) 0%, rgba(0, 0, 0, .20) 48%, rgba(0, 0, 0, .02) 100%),
        linear-gradient(180deg, rgba(28, 27, 27, .10) 0%, rgba(28, 27, 27, .56) 100%);
}

[data-template] .rt-sec-hero__title,
[data-template] .rt-sec-hero__title--centered,
[data-template] .rt-sec-hero__bento-title {
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 600;
    letter-spacing: 0;
}

[data-template] .rt-sec-hero__title {
    font-size: clamp(42px, 6vw, 76px);
    max-width: 15ch;
}

[data-template] .rt-sec-hero__eyebrow,
[data-template] .rt-sec-eyebrow {
    color: var(--gg-gold-soft);
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 220, 188, .38);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .16);
}

[data-template] .rt-sec-hero__panel,
[data-template] .rt-sec-fact-card,
[data-template] .rt-sec-zone-card,
[data-template] .rt-sec-payment-card,
[data-template] .rt-sec-financial-benefit {
    border: 1px solid rgba(208, 196, 190, .58);
    background: var(--gg-surface-panel);
    box-shadow: 0 20px 52px rgba(28, 27, 27, .08);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

[data-template] .rt-sec-btn--solid,
[data-template] .rt-sec-btn--primary,
[data-template] .rt-sc-topnav__link--cta,
[data-template] .rt-template__sidenav-cta {
    border-color: transparent;
    background: linear-gradient(135deg, var(--gg-gold), #b96d08);
    color: #fff;
    box-shadow: 0 18px 38px rgba(137, 82, 0, .28);
}

[data-template] .rt-sec-btn--glass,
[data-template] .rt-sec-btn--ghost,
[data-template] .rt-sec-btn--ghost-dark {
    border-color: rgba(255, 255, 255, .46);
    background: rgba(255, 255, 255, .18);
    color: #fff;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

[data-template] .rt-sec-hero__bento-copy .rt-sec-btn--ghost-dark {
    border-color: rgba(137, 82, 0, .34);
    background: rgba(255, 177, 87, .10);
    color: var(--gg-ink);
}

[data-template] .rt-sec-overview,
[data-template] .rt-sec-amenities-mosaic,
[data-template] .rt-sec-gallery-mosaic,
[data-template] .rt-sec-zones {
    background:
        linear-gradient(180deg, rgba(255, 220, 188, .14), rgba(255, 255, 255, 0) 36%),
        var(--gg-surface);
}

[data-template] .rt-sec-overview__title,
[data-template] .rt-sec-zones__title,
[data-template] .rt-sec-gallery-mosaic__title,
[data-template] .rt-sec-amenities-mosaic__title,
[data-template] .rt-section__title {
    font-family: "Playfair Display", Georgia, serif;
    color: var(--gg-ink);
    font-weight: 600;
}

[data-template] .rt-sec-gallery-mosaic__cell,
[data-template] .rt-gallery-item,
[data-template] .rt-sec-zone-card__media {
    border-radius: 20px;
    outline: 1px solid rgba(255, 255, 255, .72);
    box-shadow: 0 20px 52px rgba(28, 27, 27, .10);
}

@media (max-width: 767px) {
    [data-template] .rt-sec-hero { min-height: 680px; }
    [data-template] .rt-sec-hero__title { font-size: clamp(38px, 12vw, 48px); }
    [data-template] .rt-sec-btn { width: 100%; justify-content: center; }
}

/* ── Amenities (Image Card Grid Overlay) ──────────────────────────── */
.rt-sec-amenities-mosaic { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-amenities-mosaic__header { text-align: center; max-width: 720px; margin: 0 auto var(--rt-sec-gap-lg); display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-amenities-mosaic__title { font-size: clamp(26px, 3.8vw, 32px); line-height: 1.2; letter-spacing: -.01em; font-weight: 600; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-amenities-mosaic__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; }

.rt-sec-amenities-mosaic__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gutter); }
@media (min-width: 640px) { .rt-sec-amenities-mosaic__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rt-sec-amenities-mosaic__grid { grid-template-columns: repeat(3, 1fr); } }

.rt-sec-amenity-card { position: relative; aspect-ratio: 4 / 3; border-radius: var(--rt-sec-radius-lg); overflow: hidden; background: #1a1f1f; min-height: 240px; }
.rt-sec-amenity-card__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease, filter .35s ease; }
.rt-sec-amenity-card:hover .rt-sec-amenity-card__bg { transform: scale(1.06); filter: brightness(1.05); }
.rt-sec-amenity-card__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 51, 49, 0) 35%, rgba(0, 51, 49, .8) 100%); }
.rt-sec-amenity-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 24px 22px; color: #fff; display: flex; flex-direction: column; gap: 6px; }
.rt-sec-amenity-card__title { font-size: 20px; font-weight: 700; line-height: 1.25; margin: 0; color: #fff; }
.rt-sec-amenity-card__desc { font-size: 13px; line-height: 1.55; margin: 0; color: rgba(255, 255, 255, .82); max-width: 38ch; }
[data-template] .rt-sec-amenity-card__title { color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, .38); }
[data-template] .rt-sec-amenity-card__desc { color: rgba(255, 255, 255, .9); text-shadow: 0 1px 10px rgba(0, 0, 0, .32); }

/* ── CTA Form Split (style-2 — Reserve Your Space) ────────────────── */
.rt-sec-cta-split { padding: 80px 0; background: linear-gradient(180deg, var(--rt-sec-surface) 0%, #ffffff 70%); }
.rt-sec-cta-split__grid { display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gap-xl); align-items: center; }
@media (min-width: 1024px) { .rt-sec-cta-split__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }

.rt-sec-cta-split__intro { display: flex; flex-direction: column; gap: 18px; max-width: 560px; }
.rt-sec-cta-split__title { font-size: clamp(34px, 4.6vw, 48px); line-height: 1.05; letter-spacing: -.015em; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-cta-split__body { font-size: 17px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); margin: 0; }
.rt-sec-cta-split__body p { margin: 0 0 .75em; }
.rt-sec-cta-split__body p:last-child { margin-bottom: 0; }

.rt-sec-cta-split__badges { list-style: none; padding: 0; margin: 8px 0 0; display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 540px) { .rt-sec-cta-split__badges { grid-template-columns: 1fr 1fr; } }
.rt-sec-cta-split__badge { display: flex; gap: 14px; align-items: flex-start; }
.rt-sec-cta-split__badge-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; flex: 0 0 auto; }
.rt-sec-cta-split__badge--primary .rt-sec-cta-split__badge-icon { background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary-container); }
.rt-sec-cta-split__badge--secondary .rt-sec-cta-split__badge-icon { background: var(--rt-sec-secondary-container); color: var(--rt-sec-secondary); }
.rt-sec-cta-split__badge-text { display: flex; flex-direction: column; gap: 2px; }
.rt-sec-cta-split__badge-label { font-size: 15px; font-weight: 700; color: var(--rt-sec-on-surface); margin: 0; line-height: 1.3; }
.rt-sec-cta-split__badge-sub { font-size: 13px; color: var(--rt-sec-on-surface-variant); margin: 0; line-height: 1.4; }

.rt-sec-cta-split__phone { display: inline-flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: 14px; background: rgba(255, 255, 255, .7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--rt-sec-outline-variant); box-shadow: var(--rt-sec-shadow-sm); text-decoration: none; color: inherit; transition: box-shadow .2s ease, transform .15s ease, border-color .2s ease; align-self: flex-start; }
.rt-sec-cta-split__phone:hover { box-shadow: var(--rt-sec-shadow-md); border-color: var(--rt-sec-primary); transform: translateY(-1px); }
.rt-sec-cta-split__phone-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 9999px; background: var(--rt-sec-primary); color: #fff; flex: 0 0 auto; }
.rt-sec-cta-split__phone-icon .rt-sec-icon { width: 18px; height: 18px; }
.rt-sec-cta-split__phone-text { display: flex; flex-direction: column; gap: 2px; }
.rt-sec-cta-split__phone-label { font-size: 11px; letter-spacing: .15em; font-weight: 700; color: var(--rt-sec-on-surface-variant); }
.rt-sec-cta-split__phone-number { font-size: 19px; font-weight: 700; color: var(--rt-sec-primary); letter-spacing: -.005em; }

/* Form card */
.rt-sec-cta-split__form-wrap { width: 100%; }
.rt-sec-cta-split__card { background: #ffffff; border-radius: 20px; padding: 40px; border: 1px solid var(--rt-sec-outline-variant); box-shadow: 0 24px 56px -28px rgba(0, 75, 73, .25); }
@media (max-width: 640px) { .rt-sec-cta-split__card { padding: 28px 22px; border-radius: 16px; } }

.rt-sec-cta-split__progress { display: flex; gap: 12px; margin: 0 0 28px; }
.rt-sec-cta-split__progress-bar { flex: 1; height: 5px; border-radius: 9999px; background: var(--rt-sec-surface-container); transition: background .3s ease; }
.rt-sec-cta-split__progress-bar.is-active { background: var(--rt-sec-primary); }

.rt-sec-cta-split__form { display: flex; flex-direction: column; gap: 22px; }
.rt-sec-cta-split__row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 540px) { .rt-sec-cta-split__row--2col { grid-template-columns: 1fr; } }

.rt-sec-cta-split__field { display: flex; flex-direction: column; gap: 8px; border: none; padding: 0; margin: 0; min-width: 0; }
.rt-sec-cta-split__field-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); padding: 0; }

.rt-sec-cta-split__input { width: 100%; padding: 13px 16px; border: 1px solid var(--rt-sec-outline-variant); border-radius: 10px; font-family: inherit; font-size: 15px; color: var(--rt-sec-on-surface); background: #fff; transition: border-color .15s ease, box-shadow .15s ease; outline: none; }
.rt-sec-cta-split__input:hover { border-color: var(--rt-sec-outline); }
.rt-sec-cta-split__input:focus-visible { border-color: var(--rt-sec-primary); box-shadow: 0 0 0 3px rgba(0, 51, 49, .15); }
.rt-sec-cta-split__input::placeholder { color: var(--rt-sec-outline); }

.rt-sec-cta-split__interest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rt-sec-cta-split__radio-card { display: flex; align-items: center; justify-content: center; padding: 14px 16px; border: 1px solid var(--rt-sec-outline-variant); border-radius: 10px; cursor: pointer; transition: border-color .2s ease, background .2s ease; background: #fff; min-height: 52px; }
.rt-sec-cta-split__radio-card:hover { background: var(--rt-sec-surface-low); border-color: var(--rt-sec-outline); }
.rt-sec-cta-split__radio-card input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rt-sec-cta-split__radio-card:has(input:checked) { border-color: var(--rt-sec-primary); background: var(--rt-sec-primary-fixed); }
.rt-sec-cta-split__radio-card:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(0, 51, 49, .15); }
.rt-sec-cta-split__radio-label { font-size: 15px; font-weight: 600; color: var(--rt-sec-on-surface); }

.rt-sec-cta-split__submit { width: 100%; padding: 16px 24px; border: 0; border-radius: 12px; background: var(--rt-sec-tertiary-container); color: #fff; font-family: inherit; font-size: 17px; font-weight: 700; letter-spacing: .005em; cursor: pointer; box-shadow: 0 12px 24px -10px rgba(122, 37, 20, .55); transition: opacity .2s ease, transform .15s ease, box-shadow .2s ease; }
.rt-sec-cta-split__submit:hover { opacity: .94; transform: translateY(-1px); box-shadow: 0 16px 30px -10px rgba(122, 37, 20, .65); }
.rt-sec-cta-split__submit:active { transform: scale(.985); }

.rt-sec-cta-split__privacy { text-align: center; font-size: 13px; color: var(--rt-sec-on-surface-variant); margin: 0; line-height: 1.5; }
.rt-sec-cta-split__privacy-link { color: var(--rt-sec-primary); text-decoration: underline; text-underline-offset: 2px; }
.rt-sec-cta-split__privacy-link:hover { color: var(--rt-sec-primary-container); }

/* ── Floor Plans (style-1 — Architectural Layouts nested tabs) ─────── */
.rt-sec-floor-plans { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-floor-plans__header { max-width: 760px; margin: 0 auto 48px; text-align: center; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.rt-sec-floor-plans__title { font-size: clamp(34px, 4.6vw, 48px); line-height: 1.05; letter-spacing: -.015em; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-floor-plans__intro { font-size: 17px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 640px; }

.rt-sec-floor-plans__grid { display: grid; grid-template-columns: 1fr; gap: var(--rt-sec-gap-md); }
@media (min-width: 1024px) { .rt-sec-floor-plans__grid { grid-template-columns: minmax(240px, 1fr) 3fr; gap: 24px; } }

/* ── Sidebar (filters) ────────────────────────────────────────────── */
.rt-sec-floor-plans__sidebar { display: flex; flex-direction: column; gap: 32px; }
.rt-sec-floor-plans__filter-label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #4a5453; margin: 0 0 14px; }

.rt-sec-floor-plans__group-tabs { display: flex; flex-direction: column; gap: 8px; }
.rt-sec-floor-plans__group-tab { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--rt-sec-outline-variant); background: #fff; color: var(--rt-sec-on-surface-variant); font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease; text-align: left; }
.rt-sec-floor-plans__group-tab:hover { border-color: var(--rt-sec-primary-container); color: var(--rt-sec-primary); }
.rt-sec-floor-plans__group-tab.is-active { border-color: var(--rt-sec-primary-container); border-width: 2px; padding: 13px 17px; color: var(--rt-sec-primary-container); background: var(--rt-sec-surface-container-lowest, #fff); box-shadow: 0 1px 2px rgba(0, 51, 49, .04); }
.rt-sec-floor-plans__group-tab-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; color: var(--rt-sec-outline-variant); flex: 0 0 auto; transition: color .15s ease; }
.rt-sec-floor-plans__group-tab.is-active .rt-sec-floor-plans__group-tab-icon { color: var(--rt-sec-primary-container); }
.rt-sec-floor-plans__group-tab-icon .rt-sec-icon { width: 22px; height: 22px; }

.rt-sec-floor-plans__plan-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rt-sec-floor-plans__plan-tab { padding: 12px 14px; border-radius: 10px; border: 1px solid var(--rt-sec-outline-variant); background: #fff; color: var(--rt-sec-on-surface); font: inherit; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.rt-sec-floor-plans__plan-tab:hover { border-color: var(--rt-sec-primary-container); background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary); }
.rt-sec-floor-plans__plan-tab.is-active { background: var(--rt-sec-primary-container); border-color: var(--rt-sec-primary-container); color: #fff; }

.rt-sec-floor-plans__help { padding: 24px; border-radius: 14px; background: var(--rt-sec-surface-low); border: 1px solid var(--rt-sec-outline-variant); }
.rt-sec-floor-plans__help-title { font-size: 18px; font-weight: 600; color: var(--rt-sec-primary); margin: 0 0 8px; }
.rt-sec-floor-plans__help-body { font-size: 14px; line-height: 1.55; color: var(--rt-sec-on-surface-variant); margin: 0 0 16px; }
.rt-sec-floor-plans__help-cta { display: block; width: 100%; padding: 12px 16px; border-radius: 10px; border: 1px solid var(--rt-sec-primary); color: var(--rt-sec-primary); background: transparent; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-align: center; text-decoration: none; transition: background .15s ease, color .15s ease; }
.rt-sec-floor-plans__help-cta:hover { background: var(--rt-sec-primary); color: #fff; }

/* ── Main panel (plan detail) ─────────────────────────────────────── */
.rt-sec-floor-plans__main { min-width: 0; }
.rt-sec-floor-plans__panel-card { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid var(--rt-sec-outline-variant); box-shadow: 0 4px 20px rgba(0, 75, 73, .08); }
.rt-sec-floor-plans__panel-grid { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .rt-sec-floor-plans__panel-grid { grid-template-columns: 1fr 1fr; } }

.rt-sec-floor-plans__image-wrap { position: relative; padding: 32px; min-height: 360px; display: flex; align-items: center; justify-content: center; background: #fff; border-bottom: 1px solid var(--rt-sec-outline-variant); }
@media (min-width: 768px) { .rt-sec-floor-plans__image-wrap { border-bottom: none; border-right: 1px solid var(--rt-sec-outline-variant); min-height: 460px; } }
.rt-sec-floor-plans__badges { position: absolute; top: 16px; left: 16px; display: flex; gap: 8px; flex-wrap: wrap; z-index: 1; }
.rt-sec-floor-plans__badge { display: inline-block; padding: 5px 12px; border-radius: 9999px; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rt-sec-floor-plans__badge--gold { background: var(--rt-sec-secondary-container); color: var(--rt-sec-secondary); }
.rt-sec-floor-plans__badge--teal { background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary-container); }
.rt-sec-floor-plans__image-link { display: block; max-width: 100%; }
.rt-sec-floor-plans__image { display: block; max-width: 100%; max-height: 420px; height: auto; object-fit: contain; }
.rt-sec-floor-plans__image-empty { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; color: var(--rt-sec-outline-variant); }
.rt-sec-floor-plans__image-empty .rt-sec-icon { width: 56px; height: 56px; }

.rt-sec-floor-plans__specs-wrap { padding: 32px; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.rt-sec-floor-plans__plan-header { margin-bottom: 28px; }
.rt-sec-floor-plans__plan-title { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; font-weight: 600; color: var(--rt-sec-primary); margin: 0 0 6px; }
.rt-sec-floor-plans__plan-sublabel { font-size: 14px; color: var(--rt-sec-on-surface-variant); margin: 0; }

.rt-sec-floor-plans__specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; margin: 0 0 24px; }
.rt-sec-floor-plans__spec dt { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #4a5453; margin: 0 0 4px; }
.rt-sec-floor-plans__spec dd { font-size: 17px; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }

.rt-sec-floor-plans__features { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-direction: column; gap: 10px; }
.rt-sec-floor-plans__features li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--rt-sec-on-surface); }
.rt-sec-floor-plans__feature-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--rt-sec-secondary); width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; }
.rt-sec-floor-plans__feature-icon .rt-sec-icon { width: 18px; height: 18px; }

.rt-sec-floor-plans__cta-wrap { padding-top: 24px; border-top: 1px solid var(--rt-sec-outline-variant); display: flex; flex-direction: column; gap: 18px; }
.rt-sec-floor-plans__price-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.rt-sec-floor-plans__price-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rt-sec-outline); margin-bottom: 2px; }
.rt-sec-floor-plans__price-amount { font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; color: var(--rt-sec-tertiary-container); }
.rt-sec-floor-plans__pdf { display: inline-flex; align-items: center; gap: 6px; color: var(--rt-sec-primary); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.rt-sec-floor-plans__pdf:hover { text-decoration: underline; }
.rt-sec-floor-plans__pdf-icon .rt-sec-icon { width: 16px; height: 16px; }

.rt-sec-floor-plans__cta { display: block; padding: 14px 20px; border-radius: 10px; background: var(--rt-sec-tertiary-container); color: #fff; text-align: center; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; box-shadow: 0 12px 24px -10px rgba(122, 37, 20, .35); transition: opacity .2s ease, transform .15s ease; }
.rt-sec-floor-plans__cta:hover { opacity: .94; transform: translateY(-1px); color: #fff; }

/* Hidden inactive panels and filters (avoids collision with HTML5 [hidden]) */
.rt-sec-floor-plans .rt-sec-floor-plans--hidden { display: none !important; }
.rt-sec-floor-plans__plan-panel[hidden] { display: none !important; }

/* ── Slice B residuals (style-2/3 + custom) ──────────────────────── */

/* Custom WYSIWYG block */
.rt-sec-custom { padding: 64px 0; }
.rt-sec-custom--bg-surface { background: var(--rt-sec-surface); }
.rt-sec-custom--bg-primary { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-custom--bg-primary .rt-sec-custom__title, .rt-sec-custom--bg-primary .rt-sec-custom__body { color: #fff; }
.rt-sec-custom__inner { max-width: 760px; }
.rt-sec-custom--align-center .rt-sec-custom__inner { margin: 0 auto; text-align: center; }
.rt-sec-custom__title { font-size: clamp(28px, 3.6vw, 40px); line-height: 1.2; font-weight: 700; color: var(--rt-sec-primary); margin: 12px 0 16px; }
.rt-sec-custom__body { font-size: 17px; line-height: 1.7; color: var(--rt-sec-on-surface-variant); }
.rt-sec-custom__body p { margin: 0 0 1em; }
.rt-sec-custom__body a { color: var(--rt-sec-primary); text-decoration: underline; text-underline-offset: 3px; }

/* Overview style-2 — Centered Stats */
.rt-sec-overview--centered { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-overview__centered-header { max-width: 760px; margin: 0 auto 48px; text-align: center; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.rt-sec-overview__centered-title { font-size: clamp(32px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-overview__centered-body { font-size: 17px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 640px; }
.rt-sec-overview__stats { list-style: none; padding: 0; margin: 0 auto; display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 1080px; }
@media (min-width: 768px) { .rt-sec-overview__stats { grid-template-columns: repeat(4, 1fr); gap: 32px; } }
.rt-sec-overview__stat { padding: 24px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); display: flex; flex-direction: column; gap: 6px; text-align: center; align-items: center; }
.rt-sec-overview__stat-value { font-size: clamp(28px, 3.4vw, 36px); font-weight: 700; line-height: 1; color: var(--rt-sec-primary); letter-spacing: -.02em; }
.rt-sec-overview__stat-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); }
.rt-sec-overview__stat-sub { font-size: 13px; color: var(--rt-sec-outline); }
.rt-sec-overview__centered-cta { text-align: center; margin-top: 36px; }

/* Amenities style-1 — Icon Grid */
.rt-sec-amenities-icons { padding: 80px 0; background: #fff; }
.rt-sec-amenities-icons__header { text-align: center; max-width: 720px; margin: 0 auto var(--rt-sec-gap-lg); display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-amenities-icons__title { font-size: clamp(28px, 3.8vw, 36px); line-height: 1.2; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-amenities-icons__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; }
.rt-sec-amenities-icons__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rt-sec-amenities-icons--cols-2 .rt-sec-amenities-icons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rt-sec-amenities-icons--cols-3 .rt-sec-amenities-icons__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rt-sec-amenities-icons--cols-4 .rt-sec-amenities-icons__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (min-width: 768px) { .rt-sec-amenities-icons__grid { gap: 24px; } }
.rt-sec-amenities-icons__card { padding: 28px 24px; border-radius: 14px; background: var(--rt-sec-surface-low); border: 1px solid var(--rt-sec-outline-variant); display: flex; flex-direction: column; gap: 10px; transition: border-color .15s ease, transform .2s ease, box-shadow .2s ease; }
.rt-sec-amenities-icons__card:hover { border-color: var(--rt-sec-primary); transform: translateY(-2px); box-shadow: var(--rt-sec-shadow-md); }
.rt-sec-amenities-icons__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary-container); }
.rt-sec-amenities-icons__icon .rt-sec-icon { width: 24px; height: 24px; }
.rt-sec-amenities-icons__thumb { display: block; width: 100%; aspect-ratio: 4/3; border-radius: 12px; overflow: hidden; background: var(--rt-sec-surface); }
.rt-sec-amenities-icons__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.rt-sec-amenities-icons__card--has-image { padding: 16px; gap: 12px; }
.rt-sec-amenities-icons__card--has-image:hover .rt-sec-amenities-icons__thumb img { transform: scale(1.04); }
.rt-sec-amenities-icons__card-title { font-size: 17px; font-weight: 600; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-amenities-icons__card-desc { font-size: 14px; line-height: 1.55; color: var(--rt-sec-on-surface-variant); margin: 0; }

/* Amenities style-3 — Bento Grid */
.rt-sec-amenities-bento { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-amenities-bento__header { text-align: center; max-width: 720px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-amenities-bento__title { font-size: clamp(28px, 3.8vw, 36px); line-height: 1.2; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-amenities-bento__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; }
.rt-sec-amenities-bento__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 768px) { .rt-sec-amenities-bento__grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 200px; gap: 20px; } }
.rt-sec-amenities-bento__cell { position: relative; border-radius: 16px; overflow: hidden; background: #1a1f1f; aspect-ratio: 4/3; }
@media (min-width: 768px) { .rt-sec-amenities-bento__cell { aspect-ratio: auto; grid-row: span 1; } .rt-sec-amenities-bento__cell--wide { grid-column: span 2; grid-row: span 2; } }
.rt-sec-amenities-bento__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.rt-sec-amenities-bento__cell:hover .rt-sec-amenities-bento__img { transform: scale(1.05); }
.rt-sec-amenities-bento__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,51,49,0) 40%, rgba(0,51,49,.85) 100%); }
.rt-sec-amenities-bento__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; color: #fff; display: flex; flex-direction: column; gap: 6px; }
.rt-sec-amenities-bento__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(255,255,255,.15); color: #fff; }
.rt-sec-amenities-bento__cell-title { font-size: 18px; font-weight: 700; color: #fff; margin: 0; }
.rt-sec-amenities-bento__cell-desc { font-size: 13px; line-height: 1.5; color: rgba(255,255,255,.85); margin: 0; max-width: 38ch; }

/* Hero style-2 — Full Bleed Media (centered) */
.rt-sec-hero--centered .rt-sec-hero__overlay--centered { background: linear-gradient(180deg, rgba(0,51,49,.55) 0%, rgba(0,51,49,.30) 50%, rgba(0,51,49,.85) 100%); }
.rt-sec-hero__inner-centered { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--rt-sec-gap-md); max-width: 880px; padding: 0 24px; }
.rt-sec-hero__title--centered { max-width: 22ch; margin: 0 auto; }
.rt-sec-hero__lead--centered { max-width: 60ch; margin: 0 auto; }
.rt-sec-hero__actions--centered { justify-content: center; }
.rt-sec-hero__price--centered { justify-content: center; }
.rt-sec-hero__stats-strip { list-style: none; padding: 16px 0 0; margin: 24px 0 0; border-top: 1px solid rgba(255,255,255,.18); display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; width: 100%; max-width: 720px; }
@media (min-width: 768px) { .rt-sec-hero__stats-strip { grid-template-columns: repeat(4, 1fr); } }
.rt-sec-hero__stats-strip li { display: flex; flex-direction: column; gap: 4px; align-items: center; }
.rt-sec-hero__stats-strip-value { font-size: 22px; font-weight: 700; color: var(--rt-sec-secondary-container); letter-spacing: -.01em; }
.rt-sec-hero__stats-strip-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.78); }

/* Hero style-3 — Bento Hero (text + 3-image collage) */
.rt-sec-hero--bento { position: relative; min-height: auto; height: auto; padding: 64px 0; color: var(--rt-sec-on-surface); background: var(--rt-sec-surface); display: block; align-items: initial; overflow: visible; }
.rt-sec-hero__bento-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 992px) { .rt-sec-hero__bento-grid { grid-template-columns: 1fr 1.05fr; gap: 36px; align-items: stretch; } }
.rt-sec-hero__bento-copy { display: flex; flex-direction: column; gap: 18px; padding: 32px; border-radius: 18px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); justify-content: center; }
.rt-sec-hero__bento-title { font-size: clamp(34px, 4.6vw, 48px); line-height: 1.05; letter-spacing: -.015em; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-hero__bento-body { font-size: 17px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); margin: 0; }
.rt-sec-hero__bento-actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.rt-sec-hero__bento-collage { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; min-height: 420px; }
.rt-sec-hero__bento-tile { position: relative; overflow: hidden; border-radius: 16px; background: #1a1f1f; }
.rt-sec-hero__bento-tile--0 { grid-column: 1; grid-row: 1 / 3; }
.rt-sec-hero__bento-tile--1 { grid-column: 2; grid-row: 1; }
.rt-sec-hero__bento-tile--2 { grid-column: 2; grid-row: 2; }
.rt-sec-hero__bento-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.rt-sec-hero__bento-tile:hover img { transform: scale(1.05); }

/* Gallery style-2 — Lightbox Slider (CSS-only thumb swap) */
.rt-sec-gallery-slider { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-gallery-slider__header { text-align: center; max-width: 720px; margin: 0 auto 36px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-gallery-slider__title { font-size: clamp(28px, 3.8vw, 36px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-gallery-slider__stage { display: flex; flex-direction: column; gap: 14px; max-width: 1100px; margin: 0 auto; }
.rt-sec-gallery-slider__radio { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rt-sec-gallery-slider__hero { position: relative; aspect-ratio: 16/9; border-radius: 18px; overflow: hidden; background: #1a1f1f; }
.rt-sec-gallery-slider__hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; pointer-events: none; }
.rt-sec-gallery-slider__hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-sec-gallery-slider__radio:nth-of-type(1):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--0,
.rt-sec-gallery-slider__radio:nth-of-type(2):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--1,
.rt-sec-gallery-slider__radio:nth-of-type(3):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--2,
.rt-sec-gallery-slider__radio:nth-of-type(4):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--3,
.rt-sec-gallery-slider__radio:nth-of-type(5):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--4,
.rt-sec-gallery-slider__radio:nth-of-type(6):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--5,
.rt-sec-gallery-slider__radio:nth-of-type(7):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--6,
.rt-sec-gallery-slider__radio:nth-of-type(8):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--7,
.rt-sec-gallery-slider__radio:nth-of-type(9):checked  ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--8,
.rt-sec-gallery-slider__radio:nth-of-type(10):checked ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--9,
.rt-sec-gallery-slider__radio:nth-of-type(11):checked ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--10,
.rt-sec-gallery-slider__radio:nth-of-type(12):checked ~ .rt-sec-gallery-slider__hero .rt-sec-gallery-slider__hero-slide--11
{ opacity: 1; pointer-events: auto; z-index: 1; }
.rt-sec-gallery-slider__thumbs { list-style: none; padding: 0; margin: 0; display: flex; gap: 8px; overflow-x: auto; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
.rt-sec-gallery-slider__thumb { display: block; width: 96px; height: 64px; flex: 0 0 96px; border-radius: 8px; overflow: hidden; cursor: pointer; opacity: .55; transition: opacity .2s ease, outline-color .2s ease; outline: 2px solid transparent; outline-offset: 2px; }
.rt-sec-gallery-slider__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-sec-gallery-slider__thumb:hover { opacity: .85; }
.rt-sec-gallery-slider__radio:nth-of-type(1):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--0,
.rt-sec-gallery-slider__radio:nth-of-type(2):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--1,
.rt-sec-gallery-slider__radio:nth-of-type(3):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--2,
.rt-sec-gallery-slider__radio:nth-of-type(4):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--3,
.rt-sec-gallery-slider__radio:nth-of-type(5):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--4,
.rt-sec-gallery-slider__radio:nth-of-type(6):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--5,
.rt-sec-gallery-slider__radio:nth-of-type(7):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--6,
.rt-sec-gallery-slider__radio:nth-of-type(8):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--7,
.rt-sec-gallery-slider__radio:nth-of-type(9):checked  ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--8,
.rt-sec-gallery-slider__radio:nth-of-type(10):checked ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--9,
.rt-sec-gallery-slider__radio:nth-of-type(11):checked ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--10,
.rt-sec-gallery-slider__radio:nth-of-type(12):checked ~ .rt-sec-gallery-slider__thumbs .rt-sec-gallery-slider__thumb--11
{ opacity: 1; outline-color: var(--rt-sec-primary); }

/* CTA-form style-3 — Bento Variant */
.rt-sec-cta-bento { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-cta-bento__header { text-align: center; max-width: 760px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-cta-bento__title { font-size: clamp(32px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-cta-bento__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 600px; }
.rt-sec-cta-bento__grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 992px) { .rt-sec-cta-bento__grid { grid-template-columns: 2fr 1fr; gap: 24px; } }
.rt-sec-cta-bento__grid--form-only { max-width: 860px; margin: 0 auto; }
@media (min-width: 992px) { .rt-sec-cta-bento__grid--form-only { grid-template-columns: 1fr; } }
.rt-sec-cta-bento__form-card { padding: 36px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); border-radius: 18px; box-shadow: 0 24px 56px -28px rgba(0, 75, 73, .25); }
.rt-sec-cta-bento__side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rt-sec-cta-bento__visual { position: relative; min-height: 220px; margin: 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--rt-sec-outline-variant); background: var(--rt-sec-primary); box-shadow: 0 18px 42px -26px rgba(0, 75, 73, .38); }
.rt-sec-cta-bento__visual-image { display: block; width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.rt-sec-cta-bento__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 51, 49, 0) 35%, rgba(0, 51, 49, .78) 100%); pointer-events: none; }
.rt-sec-cta-bento__visual-caption { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1; color: #fff; font-size: 13px; line-height: 1.4; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rt-sec-cta-bento__tiles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-rows: repeat(3, 1fr); gap: 16px; }
.rt-sec-cta-bento__tile { border-radius: 16px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); overflow: hidden; transition: border-color .2s ease, transform .15s ease; }
.rt-sec-cta-bento__tile:hover { border-color: var(--rt-sec-primary); transform: translateY(-1px); }
.rt-sec-cta-bento__tile-inner { display: flex; gap: 16px; align-items: center; padding: 20px; text-decoration: none; color: inherit; height: 100%; }
.rt-sec-cta-bento__tile-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: var(--rt-sec-primary); color: #fff; flex: 0 0 auto; }
.rt-sec-cta-bento__tile-icon .rt-sec-icon { width: 22px; height: 22px; }
.rt-sec-cta-bento__tile-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rt-sec-cta-bento__tile-label { font-size: 11px; letter-spacing: .12em; font-weight: 700; color: var(--rt-sec-on-surface-variant); }
.rt-sec-cta-bento__tile-value { font-size: 17px; font-weight: 700; color: var(--rt-sec-primary); letter-spacing: -.005em; word-wrap: break-word; }

/* ── Backlog post-MVP: location, master-plan, apartments, pricing ───── */

/* Location style-1 */
.rt-sec-location { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-location__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-location__title { font-size: clamp(28px, 3.8vw, 36px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-location__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 992px) { .rt-sec-location__grid { grid-template-columns: 1.4fr 1fr; gap: 28px; align-items: stretch; } }
.rt-sec-location__map-wrap { border-radius: 18px; overflow: hidden; background: #1a1f1f; min-height: 380px; box-shadow: var(--rt-sec-shadow-md); }
.rt-sec-location__embed, .rt-sec-location__canvas { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
.rt-sec-location__placeholder { display: flex; align-items: center; justify-content: center; min-height: 380px; color: var(--rt-sec-outline-variant); }
.rt-sec-location__placeholder .rt-sec-icon { width: 64px; height: 64px; }
.rt-sec-location__side { display: flex; flex-direction: column; gap: 20px; padding: 28px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); border-radius: 18px; }
.rt-sec-location__address { display: flex; gap: 12px; align-items: flex-start; padding-bottom: 16px; border-bottom: 1px solid var(--rt-sec-outline-variant); }
.rt-sec-location__address-icon { display: inline-flex; width: 40px; height: 40px; border-radius: 10px; background: var(--rt-sec-primary-fixed); color: var(--rt-sec-primary-container); align-items: center; justify-content: center; flex: 0 0 auto; }
.rt-sec-location__address-text { font-size: 15px; line-height: 1.5; color: var(--rt-sec-on-surface); font-weight: 600; }
.rt-sec-location__body { font-size: 14px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); }
.rt-sec-location__pois { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.rt-sec-location__poi { display: flex; gap: 12px; align-items: flex-start; padding: 12px; background: var(--rt-sec-surface-low); border-radius: 10px; }
.rt-sec-location__poi-icon { display: inline-flex; width: 32px; height: 32px; border-radius: 8px; background: #fff; color: var(--rt-sec-primary); align-items: center; justify-content: center; flex: 0 0 auto; }
.rt-sec-location__poi-icon .rt-sec-icon { width: 16px; height: 16px; }
.rt-sec-location__poi-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rt-sec-location__poi-label { font-size: 14px; font-weight: 600; color: var(--rt-sec-on-surface); }
.rt-sec-location__poi-type { font-size: 12px; color: var(--rt-sec-outline); }
.rt-sec-location__poi-distance { font-size: 12px; color: var(--rt-sec-secondary); font-weight: 600; }

/* Master-plan style-1 (Stitch refresh) */
.rt-sec-master-plan { padding: 80px 0; background: #fff; }
.rt-sec-master-plan__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-master-plan__title { font-size: clamp(30px, 4vw, 40px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-master-plan__intro { font-size: 16px; line-height: 1.65; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 640px; }
.rt-sec-master-plan__intro p { margin: 0 0 .75em; } .rt-sec-master-plan__intro p:last-child { margin: 0; }
.rt-sec-master-plan__figure { position: relative; margin: 0 0 48px; border-radius: 16px; overflow: hidden; background: var(--rt-sec-surface-low); box-shadow: var(--rt-sec-shadow-md); }
.rt-sec-master-plan__image { display: block; width: 100%; height: auto; }
.rt-sec-master-plan__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--rt-sec-primary); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0,51,49,.35); transition: transform .2s ease, background .2s ease; }
.rt-sec-master-plan__play:hover { transform: translate(-50%, -50%) scale(1.06); background: #fff; }
.rt-sec-master-plan__play-icon .rt-sec-icon { width: 32px; height: 32px; }
.rt-sec-master-plan__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 24px; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,51,49,.85) 100%); color: rgba(255,255,255,.9); font-size: 13px; text-align: center; }
.rt-sec-master-plan__phases { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 18px; counter-reset: phase; }
@media (min-width: 768px) { .rt-sec-master-plan__phases { grid-template-columns: repeat(3, 1fr); gap: 22px; } }
.rt-sec-master-plan__phase { position: relative; padding: 28px 24px; background: var(--rt-sec-surface-low); border: 1px solid var(--rt-sec-outline-variant); border-radius: 14px; display: flex; flex-direction: column; gap: 10px; }
.rt-sec-master-plan__phase--completed { border-left: 4px solid #2a9d8f; background: linear-gradient(135deg, rgba(42,157,143,.05) 0%, var(--rt-sec-surface-low) 100%); }
.rt-sec-master-plan__phase--active { border-left: 4px solid var(--rt-sec-secondary); background: linear-gradient(135deg, rgba(254,212,136,.18) 0%, var(--rt-sec-surface-low) 100%); }
.rt-sec-master-plan__phase--planned { border-left: 4px solid var(--rt-sec-outline-variant); }
.rt-sec-master-plan__phase-step { position: absolute; top: 16px; right: 20px; font-size: 24px; font-weight: 800; color: var(--rt-sec-outline-variant); letter-spacing: -.02em; }
.rt-sec-master-plan__phase-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 9999px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; width: fit-content; }
.rt-sec-master-plan__phase--completed .rt-sec-master-plan__phase-status { color: #2a9d8f; border-color: rgba(42,157,143,.3); }
.rt-sec-master-plan__phase--active .rt-sec-master-plan__phase-status { color: var(--rt-sec-secondary); border-color: var(--rt-sec-secondary-container); }
.rt-sec-master-plan__phase-status-icon .rt-sec-icon { width: 14px; height: 14px; }
.rt-sec-master-plan__phase-name { font-size: 17px; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-master-plan__phase-desc { font-size: 14px; line-height: 1.55; color: var(--rt-sec-on-surface-variant); margin: 0; }

/* Apartments style-1 */
.rt-sec-apartments { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-apartments__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-apartments__title { font-size: clamp(30px, 4vw, 38px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-apartments__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 600px; }
.rt-sec-apartments__grid { list-style: none; padding: 0; margin: 0 0 32px; display: grid; grid-template-columns: 1fr; gap: 22px; }
@media (min-width: 640px) { .rt-sec-apartments__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rt-sec-apartments__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.rt-sec-apartments__card { border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid var(--rt-sec-outline-variant); transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease; }
.rt-sec-apartments__card:hover { transform: translateY(-2px); box-shadow: var(--rt-sec-shadow-md); border-color: var(--rt-sec-primary); }
.rt-sec-apartments__card-inner { display: block; text-decoration: none; color: inherit; }
.rt-sec-apartments__card-media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--rt-sec-surface-low); }
.rt-sec-apartments__card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rt-sec-apartments__card:hover .rt-sec-apartments__card-media img { transform: scale(1.04); }
.rt-sec-apartments__badge { position: absolute; top: 14px; left: 14px; padding: 5px 12px; border-radius: 9999px; background: var(--rt-sec-secondary-container); color: var(--rt-sec-secondary); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rt-sec-apartments__card-body { padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.rt-sec-apartments__card-title { font-size: 18px; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-apartments__card-specs { list-style: none; padding: 0; margin: 0; display: flex; gap: 16px; }
.rt-sec-apartments__card-specs li { display: flex; flex-direction: column; gap: 2px; }
.rt-sec-apartments__spec-label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-sec-outline); }
.rt-sec-apartments__spec-value { font-size: 14px; font-weight: 600; color: var(--rt-sec-on-surface); }
.rt-sec-apartments__card-price { display: flex; align-items: baseline; gap: 6px; padding-top: 12px; border-top: 1px solid var(--rt-sec-outline-variant); }
.rt-sec-apartments__price-label { font-size: 11px; letter-spacing: .08em; font-weight: 700; text-transform: uppercase; color: var(--rt-sec-outline); }
.rt-sec-apartments__price-value { font-size: 20px; font-weight: 700; color: var(--rt-sec-tertiary-container); letter-spacing: -.01em; }
.rt-sec-apartments__footer { text-align: center; }

/* Pricing style-1 */
.rt-sec-pricing { padding: 80px 0; background: #fff; }
.rt-sec-pricing__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-pricing__title { font-size: clamp(30px, 4vw, 40px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-pricing__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 600px; }
.rt-sec-pricing__intro-heading { color: var(--rt-sec-primary); font-size: 20px; font-weight: 700; line-height: 1.35; margin: 8px 0 0; }
/* When __intro embeds a raw <table> (admin pastes real-estate price grid into content field), expand and apply minimal centered styling */
.rt-sec-pricing__intro:has(table) { max-width: 1100px; width: 100%; margin: 24px auto 0; }
.rt-sec-pricing__intro table { width: 100%; border-collapse: collapse; margin: 0 auto; }
.rt-sec-pricing__intro table th { background: transparent; color: #64748b; font-size: 16px; font-weight: 400; text-transform: none; letter-spacing: 0; padding: 14px 16px; text-align: center; vertical-align: bottom; border: 0; white-space: normal; }
.rt-sec-pricing__intro table td { padding: 18px 16px; border: 0; color: #1f2937; font-size: 16px; font-weight: 400; text-align: center; vertical-align: middle; }
.rt-sec-pricing--has-table { padding: 104px 0 80px; background: #fff; scroll-margin-top: 144px; }
.rt-sec-pricing--has-table .rt-sec-pricing__header { max-width: 1320px; margin-bottom: 0; gap: 0; }
.rt-sec-pricing--has-table .rt-sec-eyebrow { color: #f2994a; font-size: 17px; font-weight: 700; letter-spacing: .24em; line-height: 1.2; margin-bottom: 18px; text-transform: uppercase; }
.rt-sec-pricing--has-table .rt-sec-pricing__title { color: #18181b; font-family: Georgia, "Times New Roman", serif; font-size: clamp(40px, 4.2vw, 58px); font-weight: 700; letter-spacing: 0; line-height: 1.08; text-transform: uppercase; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro { color: #1f2937; max-width: min(1080px, 100%); width: 100%; margin: 58px auto 0; overflow: visible; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table th { color: #66758c; font-size: clamp(18px, 1.65vw, 24px); font-weight: 400; line-height: 1.55; padding: 0 16px 30px; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table td { color: #1f2937; font-size: clamp(18px, 1.55vw, 24px); font-weight: 400; line-height: 1.35; padding: 23px 16px; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table th:first-child,
.rt-sec-pricing--has-table .rt-sec-pricing__intro table td:first-child { width: 16%; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table th:nth-child(3),
.rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(3) { width: 20%; }
.rt-sec-pricing--has-table .rt-sec-pricing__intro table th:nth-child(4),
.rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(4) { width: 18%; }
@media (max-width: 991.98px) {
    .rt-sec-pricing--has-table { padding: 88px 0 80px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro { margin-top: 56px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table th,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td { padding-left: 10px; padding-right: 10px; }
}
@media (max-width: 767.98px) {
    .rt-sec-pricing--has-table { padding: 64px 0; scroll-margin-top: 176px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__header { align-items: flex-start; text-align: left; }
    .rt-sec-pricing--has-table .rt-sec-eyebrow { font-size: 13px; letter-spacing: .18em; margin-bottom: 12px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__title { font-size: clamp(30px, 10vw, 42px); line-height: 1.08; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro { margin-top: 32px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table thead,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table tbody,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table tr,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table th,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td { display: block; width: 100%; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:first-child,
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(3),
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(4) { width: 100%; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table thead { display: none; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table tbody { display: grid; gap: 14px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table tr { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; box-shadow: 0 14px 34px rgba(15, 23, 42, .06); padding: 18px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td { display: grid; grid-template-columns: minmax(116px, 42%) 1fr; gap: 12px; padding: 8px 0; text-align: left; font-size: 15px; line-height: 1.45; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:first-child { display: block; color: #111827; font-size: 18px; font-weight: 700; padding: 0 0 10px; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td::before { color: #66758c; content: ""; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:first-child::before { content: none; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(2)::before { content: "Diện tích đất"; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(3)::before { content: "Diện tích xây dựng"; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(4)::before { content: "Mật độ xây dựng"; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(5)::before { content: "Chiều cao"; }
    .rt-sec-pricing--has-table .rt-sec-pricing__intro table td:nth-child(6)::before { content: "Giá bán"; }
}
.rt-sec-pricing__grid { list-style: none; padding: 0; margin: 0 0 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); align-items: stretch; gap: 20px; }
@media (min-width: 768px) { .rt-sec-pricing__grid { gap: 24px; } }
.rt-sec-pricing__card { position: relative; container-type: inline-size; padding: 36px 28px; border-radius: 18px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); display: flex; flex-direction: column; gap: 18px; transition: transform .2s ease, box-shadow .25s ease; }
.rt-sec-pricing__card:hover { transform: translateY(-3px); box-shadow: var(--rt-sec-shadow-md); }
.rt-sec-pricing__card--highlighted { border-color: var(--rt-sec-primary); background: linear-gradient(180deg, var(--rt-sec-primary-fixed) 0%, #fff 60%); box-shadow: 0 24px 56px -28px rgba(0,75,73,.45); transform: translateY(-6px); }
@media (min-width: 768px) { .rt-sec-pricing__card--highlighted { transform: translateY(-12px); } }
.rt-sec-pricing__badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); padding: 6px 16px; border-radius: 9999px; background: var(--rt-sec-tertiary-container); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 8px 16px -6px rgba(122,37,20,.45); }
.rt-sec-pricing__badge--green { background: #16a34a; }
.rt-sec-pricing__badge--gold { background: #c8913c; }
.rt-sec-pricing__badge--red { background: #dc2626; }
.rt-sec-pricing__badge--blue { background: #2563eb; }
.rt-sec-pricing__badge--gray { background: #64748b; }
.rt-sec-pricing__card-name { font-size: 18px; font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-pricing__price { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 4px 8px; min-width: 0; }
.rt-sec-pricing__price-amount { display: block; max-width: 100%; font-size: clamp(26px, 18cqw, 40px); font-weight: 800; line-height: 1.05; color: var(--rt-sec-primary); letter-spacing: 0; overflow-wrap: break-word; text-wrap: balance; }
.rt-sec-pricing__price-amount--text { font-size: clamp(17px, 10cqw, 22px); font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.rt-sec-pricing__price-unit { flex: 0 0 auto; padding-bottom: .22em; font-size: 14px; line-height: 1.2; color: var(--rt-sec-on-surface-variant); }
.rt-sec-pricing__original { color: var(--rt-sec-outline); font-size: 13px; margin: -10px 0 0; }
.rt-sec-pricing__period { color: var(--rt-sec-on-surface-variant); font-size: 14px; font-weight: 600; margin: -8px 0 0; }
.rt-sec-pricing__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.rt-sec-pricing__feature { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--rt-sec-on-surface); }
.rt-sec-pricing__feature--excluded { color: var(--rt-sec-outline); text-decoration: line-through; }
.rt-sec-pricing__feature-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--rt-sec-primary); flex: 0 0 auto; margin-top: 1px; }
.rt-sec-pricing__feature-icon .rt-sec-icon { width: 18px; height: 18px; }
.rt-sec-pricing__feature--excluded .rt-sec-pricing__feature-icon { color: var(--rt-sec-outline); }
.rt-sec-pricing__micro,
.rt-sec-pricing__deadline { color: var(--rt-sec-on-surface-variant); font-size: 13px; line-height: 1.45; margin: 0; }
.rt-sec-pricing__deadline { color: var(--rt-sec-outline); }
.rt-sec-pricing__cta { display: block; padding: 13px 20px; border-radius: 10px; border: 1px solid var(--rt-sec-primary); color: var(--rt-sec-primary); background: transparent; text-align: center; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: background .15s ease, color .15s ease; }
.rt-sec-pricing__cta:hover { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-pricing__cta--primary { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-pricing__cta--primary:hover { background: var(--rt-sec-primary-container); }
.rt-sec-pricing__footnote { text-align: center; font-size: 13px; color: var(--rt-sec-on-surface-variant); margin: 0; }

/* ── Apartments style-2 — Comparison Table ─────────────────────────── */
.rt-sec-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.rt-sec-apartments-table { padding: 80px 0; background: #fff; }
.rt-sec-apartments-table__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-apartments-table__title { font-size: clamp(28px, 3.8vw, 36px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-apartments-table__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 600px; }

.rt-sec-apartments-table__wrap { margin: 0 0 32px; border-radius: 16px; overflow: hidden; border: 1px solid var(--rt-sec-outline-variant); box-shadow: var(--rt-sec-shadow-sm); }
.rt-sec-apartments-table__table { width: 100%; border-collapse: collapse; background: #fff; }
.rt-sec-apartments-table__table thead { background: var(--rt-sec-surface-low); }
.rt-sec-apartments-table__table th { padding: 16px 18px; text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); border-bottom: 1px solid var(--rt-sec-outline-variant); }
.rt-sec-apartments-table__table td { padding: 16px 18px; border-bottom: 1px solid var(--rt-sec-outline-variant); font-size: 15px; color: var(--rt-sec-on-surface); vertical-align: middle; }
.rt-sec-apartments-table__table tbody tr:last-child td { border-bottom: none; }
.rt-sec-apartments-table__table tbody tr:hover { background: var(--rt-sec-surface-low); }
.rt-sec-apartments-table__cell-unit { display: flex; gap: 14px; align-items: center; min-width: 220px; }
.rt-sec-apartments-table__thumb { width: 56px; height: 56px; flex: 0 0 auto; border-radius: 8px; overflow: hidden; background: var(--rt-sec-surface-low); }
.rt-sec-apartments-table__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-sec-apartments-table__name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rt-sec-apartments-table__name > span:first-child { font-weight: 700; color: var(--rt-sec-primary); }
.rt-sec-apartments-table__badge { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-sec-secondary); width: fit-content; }
.rt-sec-apartments-table__cell-price { font-weight: 700; color: var(--rt-sec-tertiary-container); font-size: 16px; }
.rt-sec-apartments-table__cell-action { text-align: right; min-width: 100px; }
.rt-sec-apartments-table__action { display: inline-flex; padding: 8px 14px; border: 1px solid var(--rt-sec-primary); color: var(--rt-sec-primary); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; border-radius: 8px; transition: background .15s ease, color .15s ease; }
.rt-sec-apartments-table__action:hover { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-apartments-table__th-action { width: 110px; }
.rt-sec-apartments-table__footer { text-align: center; }

@media (max-width: 768px) {
    .rt-sec-apartments-table__wrap { border: none; border-radius: 0; box-shadow: none; }
    .rt-sec-apartments-table__table thead { display: none; }
    .rt-sec-apartments-table__table tbody, .rt-sec-apartments-table__table tr, .rt-sec-apartments-table__table td { display: block; width: 100%; }
    .rt-sec-apartments-table__table tr { background: #fff; border: 1px solid var(--rt-sec-outline-variant); border-radius: 12px; padding: 14px; margin: 0 0 14px; box-shadow: var(--rt-sec-shadow-sm); }
    .rt-sec-apartments-table__table td { border: none; padding: 8px 0; display: flex; justify-content: space-between; gap: 12px; }
    .rt-sec-apartments-table__table td::before { content: attr(data-label); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-sec-on-surface-variant); flex: 0 0 auto; align-self: center; }
    .rt-sec-apartments-table__cell-unit { display: flex; padding: 0 0 12px !important; border-bottom: 1px solid var(--rt-sec-outline-variant) !important; margin-bottom: 4px; }
    .rt-sec-apartments-table__cell-unit::before { display: none; }
    .rt-sec-apartments-table__cell-action { padding-top: 12px !important; border-top: 1px solid var(--rt-sec-outline-variant) !important; margin-top: 4px; }
    .rt-sec-apartments-table__cell-action::before { content: ''; }
    .rt-sec-apartments-table__action { width: 100%; justify-content: center; }
}

/* ── Pricing style-2 — Feature Matrix ──────────────────────────────── */
.rt-sec-pricing-matrix { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-pricing-matrix__header { max-width: 760px; margin: 0 auto 40px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.rt-sec-pricing-matrix__title { font-size: clamp(28px, 3.8vw, 36px); font-weight: 700; color: var(--rt-sec-primary); margin: 0; }
.rt-sec-pricing-matrix__intro { font-size: 16px; line-height: 1.6; color: var(--rt-sec-on-surface-variant); margin: 0; max-width: 600px; }

.rt-sec-pricing-matrix__wrap { background: #fff; border-radius: 18px; overflow: hidden; border: 1px solid var(--rt-sec-outline-variant); box-shadow: var(--rt-sec-shadow-md); }
.rt-sec-pricing-matrix__table { width: 100%; border-collapse: collapse; }
.rt-sec-pricing-matrix__table th, .rt-sec-pricing-matrix__table td { padding: 18px 20px; border-bottom: 1px solid var(--rt-sec-outline-variant); }
.rt-sec-pricing-matrix__table thead th { background: var(--rt-sec-surface-low); padding: 24px 20px; text-align: center; }
.rt-sec-pricing-matrix__th-feature { background: var(--rt-sec-surface-low) !important; }
.rt-sec-pricing-matrix__th-tier.is-highlighted { background: var(--rt-sec-primary-fixed) !important; }
.rt-sec-pricing-matrix__tier-name { display: block; font-size: 18px; font-weight: 700; color: var(--rt-sec-primary); letter-spacing: 0; text-transform: none; }
.rt-sec-pricing-matrix__tier-price { display: flex; align-items: baseline; gap: 6px; justify-content: center; margin-top: 4px; font-size: 22px; font-weight: 800; color: var(--rt-sec-primary); }
.rt-sec-pricing-matrix__tier-unit { font-size: 13px; font-weight: 400; color: var(--rt-sec-on-surface-variant); }
.rt-sec-pricing-matrix__feature-label { text-align: left; font-weight: 600; color: var(--rt-sec-on-surface); font-size: 14px; min-width: 220px; }
.rt-sec-pricing-matrix__table tbody td { text-align: center; vertical-align: middle; font-size: 14px; color: var(--rt-sec-on-surface); }
.rt-sec-pricing-matrix__table tbody td.is-highlighted { background: rgba(177,238,234,.18); }
.rt-sec-pricing-matrix__check { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,51,49,.08); color: var(--rt-sec-primary); }
.rt-sec-pricing-matrix__check .rt-sec-icon { width: 16px; height: 16px; }
.rt-sec-pricing-matrix__cross { color: var(--rt-sec-outline-variant); font-size: 18px; font-weight: 700; }
.rt-sec-pricing-matrix__value { font-weight: 700; color: var(--rt-sec-primary); }
.rt-sec-pricing-matrix__table tfoot td { padding: 24px 20px; text-align: center; border-bottom: none; }
.rt-sec-pricing-matrix__foot-spacer { background: var(--rt-sec-surface-low); }
.rt-sec-pricing-matrix__cta { display: inline-block; padding: 12px 22px; border: 1px solid var(--rt-sec-primary); color: var(--rt-sec-primary); background: transparent; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-radius: 8px; transition: background .15s ease, color .15s ease; }
.rt-sec-pricing-matrix__cta:hover { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-pricing-matrix__cta--primary { background: var(--rt-sec-primary); color: #fff; }
.rt-sec-pricing-matrix__cta--primary:hover { background: var(--rt-sec-primary-container); }

@media (max-width: 768px) {
    .rt-sec-pricing-matrix__wrap { border: none; border-radius: 0; box-shadow: none; background: transparent; }
    .rt-sec-pricing-matrix__table { display: flex; flex-direction: column; gap: 16px; }
    .rt-sec-pricing-matrix__table thead, .rt-sec-pricing-matrix__table tfoot { display: none; }
    .rt-sec-pricing-matrix__table tbody { display: contents; }
    .rt-sec-pricing-matrix__table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; padding: 18px; background: #fff; border: 1px solid var(--rt-sec-outline-variant); border-radius: 14px; }
    .rt-sec-pricing-matrix__feature-label { grid-column: 1 / -1; padding: 0; border: none; font-size: 14px; font-weight: 700; color: var(--rt-sec-primary); margin: 0 0 4px; }
    .rt-sec-pricing-matrix__table tbody td { display: flex; align-items: center; justify-content: space-between; padding: 6px 0; border: none; gap: 8px; font-size: 13px; }
    .rt-sec-pricing-matrix__table tbody td::before { content: attr(data-label); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-sec-outline); }
}

/* ── Reduced motion + accessibility ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .rt-sec-block *,
    .rt-sec-block *::before,
    .rt-sec-block *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
    .rt-sec-zone-card:hover,
    .rt-sec-fact-card:hover,
    .rt-sec-cta-split__phone:hover,
    .rt-sec-cta-split__submit:hover { transform: none; }
}
.rt-sec-btn:focus-visible,
.rt-sec-overview__cta:focus-visible,
.rt-sec-gallery-mosaic__cta:focus-visible,
.rt-sec-zone-card__cta:focus-visible,
.rt-sec-zones__nav-btn:focus-visible,
.rt-sec-gallery-mosaic__cell:focus-visible,
.rt-sec-cta-split__phone:focus-visible,
.rt-sec-cta-split__submit:focus-visible {
    outline: 2px solid var(--rt-sec-primary);
    outline-offset: 3px;
}

/* Runtime hero contrast guard: shared heading rules are more specific than the title class. */
.rt-sec-hero .rt-sec-hero__title,
.rt-sec-hero .rt-sec-hero__title--centered {
    color: #fff;
    text-shadow: 0 18px 44px rgba(0, 0, 0, .42), 0 2px 8px rgba(0, 0, 0, .28);
}

.rt-sec-hero .rt-sec-btn--primary {
    background: #fff;
    color: #0f172a;
    border-color: rgba(255, 255, 255, .82);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .22);
}

.rt-sec-hero .rt-sec-btn--primary:hover {
    color: #0f172a;
    transform: translateY(-2px);
}

.rt-sec-hero .rt-sec-btn--ghost {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border-color: rgba(255, 255, 255, .42);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.rt-sec-hero .rt-sec-btn--ghost:hover {
    background: rgba(255, 255, 255, .22);
    color: #fff;
    transform: translateY(-2px);
}

/* ──────────────────────────────────────────────────────────────────────────
   Campaign strip — sales-landing offer banner.
   Reads `re_projects.settings.campaign_offer` JSON, gates by `is_active`.
   Plan P2 F2 / Brainstorm B.12.
   ────────────────────────────────────────────────────────────────────────── */
.rt-sec-campaign-strip {
    margin: 0;
    padding: 28px 0;
    background: linear-gradient(
        135deg,
        var(--rt-sec-primary-container, #001a18) 0%,
        var(--rt-sec-tertiary-container, #7a2514) 100%
    );
    color: #fff;
}

.rt-sec-campaign-strip__inner {
    display: grid;
    gap: 16px;
}

.rt-sec-campaign-strip__title {
    margin: 0;
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -0.01em;
}

.rt-sec-campaign-strip__bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px 24px;
}

.rt-sec-campaign-strip__bullets li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.45;
}

.rt-sec-campaign-strip__bullets .ti {
    flex-shrink: 0;
    font-size: 1.1rem;
    color: var(--rt-sec-secondary, #ffd066);
    margin-top: 2px;
}

.rt-sec-campaign-strip__action {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    margin-top: 4px;
}

.rt-sec-campaign-strip__deadline {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.95rem;
    opacity: 0.92;
}

.rt-sec-campaign-strip__deadline .ti {
    font-size: 1.05rem;
}

.rt-sec-campaign-strip__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 26px;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.24);
}

.rt-sec-campaign-strip__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3);
    color: #0f172a;
}

.rt-sec-campaign-strip__disclaimer {
    margin: 0;
    font-size: 0.825rem;
    opacity: 0.78;
}

@media (max-width: 575.98px) {
    .rt-sec-campaign-strip {
        padding: 20px 0;
    }

    .rt-sec-campaign-strip__action {
        flex-direction: column;
        align-items: stretch;
    }

    .rt-sec-campaign-strip__cta {
        width: 100%;
    }
}

/* ──────────────────────────────────────────────────────────────────────────
   Mortgage calculator wrap — pre/post styling around the fob plugin widget.
   Plan P3 F2 / Brainstorm B.6.
   ────────────────────────────────────────────────────────────────────────── */
.rt-sec-mortgage-wrap {
    padding: 56px 0;
    background: var(--rt-sec-surface, #f8f9fa);
}

.rt-sec-mortgage-wrap__head {
    text-align: center;
    margin-bottom: 28px;
}

.rt-sec-mortgage-wrap__title {
    margin: 0 0 8px;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 700;
}

.rt-sec-mortgage-wrap__subtitle {
    margin: 0;
    color: var(--rt-sec-text-muted, #5a5f66);
    max-width: 640px;
    margin-inline: auto;
}

.rt-sec-mortgage-wrap__widget {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .06);
    padding: 20px;
}

.rt-sec-mortgage-wrap__disclaimer {
    margin-top: 14px;
    font-size: 0.825rem;
    color: var(--rt-sec-text-muted, #5a5f66);
    text-align: center;
}

/* ============================================================
 * Amenities style-4 — "Category Tabs"
 * Zero-JS tab swap via :checked + sibling combinator on radios.
 * ============================================================ */
.rt-sec-amenities-tabs {
    --rt-sec-amenities-tabs-grid-columns: 3;
    padding: 80px 0; background: var(--rt-sec-surface);
}
.rt-sec-amenities-tabs__header { text-align: center; margin-bottom: 32px; }
.rt-sec-amenities-tabs__title { font-size: clamp(1.75rem, 3.2vw, 2.25rem); margin: 8px 0 12px; }
.rt-sec-amenities-tabs__intro { max-width: 640px; margin: 0 auto; color: var(--rt-sec-text-muted, #5a5f66); }
.rt-sec-amenities-tabs__radio { position: absolute; opacity: 0; pointer-events: none; }
.rt-sec-amenities-tabs__nav {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 24px;
}
.rt-sec-amenities-tabs__tab {
    padding: 10px 20px; border-radius: 999px; cursor: pointer; user-select: none;
    background: var(--rt-sec-card, #fff); border: 1px solid var(--rt-sec-border, #e6e7e9);
    color: var(--rt-sec-text, #1a1d22); font-weight: 500; font-size: 0.925rem;
    transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.rt-sec-amenities-tabs__tab:hover { background: var(--rt-sec-accent-soft, #eef4ff); }
.rt-sec-amenities-tabs__panel { display: none; }
.rt-sec-amenities-tabs__grid {
    list-style: none; padding: 0; margin: 0;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;
}
.rt-sec-amenities-tabs--cols-2 .rt-sec-amenities-tabs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rt-sec-amenities-tabs--cols-3 .rt-sec-amenities-tabs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rt-sec-amenities-tabs--cols-4 .rt-sec-amenities-tabs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rt-sec-amenities-tabs__cell {
    background: var(--rt-sec-card, #fff); border: 1px solid var(--rt-sec-border, #e6e7e9);
    border-radius: 14px; padding: 18px; display: flex; gap: 12px; align-items: flex-start;
}
.rt-sec-amenities-tabs__img { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.rt-sec-amenities-tabs__icon {
    width: 56px; height: 56px; border-radius: 10px; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--rt-sec-accent-soft, #eef4ff); color: var(--rt-sec-accent, #2563eb); font-size: 1.5rem;
}
.rt-sec-amenities-tabs__body { flex: 1; min-width: 0; }
.rt-sec-amenities-tabs__cell-title { font-size: 1rem; margin: 0 0 4px; font-weight: 600; }
.rt-sec-amenities-tabs__cell-desc { margin: 0; font-size: 0.875rem; color: var(--rt-sec-text-muted, #5a5f66); }
/* Active tab + active panel — pair each radio with its label and panel by index. */
.rt-sec-amenities-tabs__radio:nth-of-type(1):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--0,
.rt-sec-amenities-tabs__radio:nth-of-type(2):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--1,
.rt-sec-amenities-tabs__radio:nth-of-type(3):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--2,
.rt-sec-amenities-tabs__radio:nth-of-type(4):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--3,
.rt-sec-amenities-tabs__radio:nth-of-type(5):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--4,
.rt-sec-amenities-tabs__radio:nth-of-type(6):checked ~ .rt-sec-amenities-tabs__nav .rt-sec-amenities-tabs__tab--5 {
    background: var(--rt-sec-accent, #2563eb); border-color: var(--rt-sec-accent, #2563eb); color: #fff;
}
.rt-sec-amenities-tabs__radio:nth-of-type(1):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--0,
.rt-sec-amenities-tabs__radio:nth-of-type(2):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--1,
.rt-sec-amenities-tabs__radio:nth-of-type(3):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--2,
.rt-sec-amenities-tabs__radio:nth-of-type(4):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--3,
.rt-sec-amenities-tabs__radio:nth-of-type(5):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--4,
.rt-sec-amenities-tabs__radio:nth-of-type(6):checked ~ .rt-sec-amenities-tabs__panels .rt-sec-amenities-tabs__panel--5 {
    display: block;
}

@media (max-width: 767.98px) {
    .rt-sec-amenities-tabs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .rt-sec-amenities-tabs__grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
 * Gallery style-3 — "Fullscreen Media"
 * Full-bleed media + overlay caption centered.
 * ============================================================ */
.rt-sec-gallery-fullscreen {
    position: relative; width: 100%; height: min(80vh, 720px); overflow: hidden; isolation: isolate;
}
.rt-sec-gallery-fullscreen__media,
.rt-sec-gallery-fullscreen__media > * { position: absolute; inset: 0; width: 100%; height: 100%; }
.rt-sec-gallery-fullscreen__img,
.rt-sec-gallery-fullscreen__video,
.rt-sec-gallery-fullscreen__iframe { width: 100%; height: 100%; object-fit: cover; border: 0; }
.rt-sec-gallery-fullscreen__overlay {
    position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.55) 100%);
    pointer-events: none; color: #fff; text-align: center; padding: 24px;
}
.rt-sec-gallery-fullscreen__caption { max-width: 720px; }
.rt-sec-gallery-fullscreen__eyebrow { color: rgba(255,255,255,0.85); }
.rt-sec-gallery-fullscreen__title {
    font-size: clamp(2rem, 5vw, 3.5rem); color: #fff; margin: 12px 0 0;
    text-shadow: 0 2px 16px rgba(0,0,0,0.45);
}

/* ============================================================
 * Pricing style-3 — "Tier Cards"
 * 3-col grid (mobile: stack), highlighted tier raised + badge.
 * ============================================================ */
.rt-sec-pricing-tiers { padding: 80px 0; background: var(--rt-sec-surface); }
.rt-sec-pricing-tiers__header { text-align: center; margin-bottom: 40px; }
.rt-sec-pricing-tiers__title { font-size: clamp(1.75rem, 3.2vw, 2.25rem); margin: 8px 0 12px; }
.rt-sec-pricing-tiers__intro { max-width: 640px; margin: 0 auto; color: var(--rt-sec-text-muted, #5a5f66); }
.rt-sec-pricing-tiers__grid {
    list-style: none; padding: 0; margin: 0;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px;
    align-items: stretch;
}
.rt-sec-pricing-tiers__card {
    position: relative; background: var(--rt-sec-card, #fff); border: 1px solid var(--rt-sec-border, #e6e7e9);
    border-radius: 16px; padding: 28px 24px; display: flex; flex-direction: column; gap: 16px;
    transition: transform 200ms ease, box-shadow 200ms ease;
}
.rt-sec-pricing-tiers__card.is-highlighted {
    border-color: var(--rt-sec-accent, #2563eb); border-width: 2px;
    box-shadow: 0 12px 36px rgba(37, 99, 235, 0.18); transform: translateY(-4px);
}
.rt-sec-pricing-tiers__badge {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
    background: var(--rt-sec-accent, #2563eb); color: #fff; padding: 4px 14px;
    border-radius: 999px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em;
}
.rt-sec-pricing-tiers__name { font-size: 1.125rem; margin: 0; font-weight: 600; }
.rt-sec-pricing-tiers__price { margin: 8px 0 0; display: flex; align-items: baseline; gap: 4px; }
.rt-sec-pricing-tiers__price-value { font-size: 2rem; font-weight: 700; color: var(--rt-sec-text, #1a1d22); }
.rt-sec-pricing-tiers__price-unit { font-size: 0.875rem; color: var(--rt-sec-text-muted, #5a5f66); }
.rt-sec-pricing-tiers__desc { margin: 4px 0 0; font-size: 0.875rem; color: var(--rt-sec-text-muted, #5a5f66); }
.rt-sec-pricing-tiers__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rt-sec-pricing-tiers__feature { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9rem; }
.rt-sec-pricing-tiers__feature-icon {
    flex-shrink: 0; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center;
    color: var(--rt-sec-accent, #2563eb);
}
.rt-sec-pricing-tiers__feature.is-excluded { color: var(--rt-sec-text-muted, #5a5f66); text-decoration: line-through; }
.rt-sec-pricing-tiers__feature.is-excluded .rt-sec-pricing-tiers__feature-icon { color: #ef4444; }
.rt-sec-pricing-tiers__cta {
    margin-top: auto; display: inline-block; text-align: center; text-decoration: none;
    padding: 12px 20px; border-radius: 10px; font-weight: 600;
    background: var(--rt-sec-card, #fff); color: var(--rt-sec-accent, #2563eb);
    border: 1px solid var(--rt-sec-accent, #2563eb); transition: background 160ms ease, color 160ms ease;
}
.rt-sec-pricing-tiers__cta:hover { background: var(--rt-sec-accent-soft, #eef4ff); }
.rt-sec-pricing-tiers__cta--primary { background: var(--rt-sec-accent, #2563eb); color: #fff; }
.rt-sec-pricing-tiers__cta--primary:hover { background: var(--rt-sec-accent-strong, #1d4ed8); }

/* ── Slider section (generic carousel) ────────────────────────────── */
/* Style-1: fullbleed hero — 1 slide, image bg + caption overlay. */
/* Style-2: 3-up cards — image top + caption below, responsive 1/2/3 grid. */

.rt-sec-slider { position: relative; overflow: hidden; }
.rt-sec-slider .swiper { width: 100%; }
.rt-sec-slider__nav.swiper-button-prev,
.rt-sec-slider__nav.swiper-button-next {
    color: #fff; background: rgba(0, 0, 0, 0.4);
    width: 42px; height: 42px; border-radius: 50%;
    transition: background 160ms ease;
}
.rt-sec-slider__nav.swiper-button-prev:hover,
.rt-sec-slider__nav.swiper-button-next:hover { background: rgba(0, 0, 0, 0.65); }
.rt-sec-slider__nav.swiper-button-prev::after,
.rt-sec-slider__nav.swiper-button-next::after { font-size: 16px; font-weight: 800; }
.rt-sec-slider__pagination.swiper-pagination-bullets { bottom: 16px; }
.rt-sec-slider__pagination .swiper-pagination-bullet { background: rgba(255, 255, 255, 0.6); opacity: 1; }
.rt-sec-slider__pagination .swiper-pagination-bullet-active { background: #fff; }

/* Style-1 — fullbleed hero */
.rt-sec-slider--style-1 .rt-sec-slider__slide {
    position: relative; min-height: 480px;
    display: flex; align-items: flex-end;
}
.rt-sec-slider--style-1 .rt-sec-slider__media { position: absolute; inset: 0; }
.rt-sec-slider--style-1 .rt-sec-slider__media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.rt-sec-slider--style-1 .rt-sec-slider__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 40%, rgba(0,0,0,0.65) 100%);
}
.rt-sec-slider--style-1 .rt-sec-slider__caption {
    position: relative; z-index: 2;
    padding: 32px 24px 56px; color: #fff; max-width: 720px;
}
.rt-sec-slider--style-1 .rt-sec-slider__title {
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    font-weight: 700; margin: 0 0 12px; color: #fff;
}
.rt-sec-slider--style-1 .rt-sec-slider__desc {
    font-size: 1rem; line-height: 1.55; margin: 0 0 20px;
    color: rgba(255, 255, 255, 0.92);
}
.rt-sec-slider--style-1 .rt-sec-slider__cta {
    display: inline-flex; align-items: center;
    padding: 12px 22px; border-radius: 10px;
    background: var(--rt-sec-accent, #2563eb); color: #fff;
    font-weight: 600; text-decoration: none;
    transition: background 160ms ease, transform 160ms ease;
}
.rt-sec-slider--style-1 .rt-sec-slider__cta:hover {
    background: var(--rt-sec-accent-strong, #1d4ed8); transform: translateY(-1px);
}
@media (min-width: 768px) {
    .rt-sec-slider--style-1 .rt-sec-slider__slide { min-height: 600px; }
    .rt-sec-slider--style-1 .rt-sec-slider__caption { padding: 48px 40px 80px; }
}

/* Style-2 — 3-up cards */
.rt-sec-slider--style-2 { padding: 40px 0; }
.rt-sec-slider--style-2 .rt-sec-slider__header { margin-bottom: 24px; text-align: center; }
.rt-sec-slider--style-2 .rt-sec-slider__heading {
    font-size: clamp(1.25rem, 2vw, 1.875rem);
    font-weight: 700; margin: 8px 0 0;
    color: var(--rt-sec-text, #1a1d22);
}
.rt-sec-slider--style-2 .rt-sec-slider__card {
    background: var(--rt-sec-card, #fff);
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    height: 100%; display: flex; flex-direction: column;
    transition: transform 200ms ease, box-shadow 200ms ease;
}
.rt-sec-slider--style-2 .rt-sec-slider__card:hover {
    transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}
.rt-sec-slider--style-2 .rt-sec-slider__media img {
    width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block;
}
.rt-sec-slider--style-2 .rt-sec-slider__caption {
    padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column;
}
.rt-sec-slider--style-2 .rt-sec-slider__card-title {
    font-size: 1.125rem; font-weight: 600; margin: 0 0 8px;
    color: var(--rt-sec-text, #1a1d22);
}
.rt-sec-slider--style-2 .rt-sec-slider__card-desc {
    font-size: 0.9rem; color: var(--rt-sec-text-muted, #5a5f66);
    line-height: 1.5; margin: 0 0 14px;
}
.rt-sec-slider--style-2 .rt-sec-slider__card-cta {
    margin-top: auto; display: inline-flex; align-items: center;
    color: var(--rt-sec-accent, #2563eb); font-weight: 600;
    text-decoration: none; font-size: 0.9rem;
}
.rt-sec-slider--style-2 .rt-sec-slider__card-cta:hover { text-decoration: underline; }
.rt-sec-slider--style-2 .rt-sec-slider__pagination.swiper-pagination-bullets {
    position: relative; bottom: auto; margin-top: 16px;
}
.rt-sec-slider--style-2 .rt-sec-slider__pagination .swiper-pagination-bullet { background: rgba(0, 0, 0, 0.3); }
.rt-sec-slider--style-2 .rt-sec-slider__pagination .swiper-pagination-bullet-active { background: var(--rt-sec-accent, #2563eb); }

/* ── Canvas Section Preview Modal — isolated render outline ────────── */
/* Applied via [data-isolated-preview="true"] wrapper set by HandleFrontPages
 * when ?preview_draft={token}&only_section={N} hits the page. Outline + side
 * margin keep the lone section legible inside the admin preview iframe. */
/* Canvas section appearance controls */
.rt-sec-block--has-bg {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: var(--section-bg-color, transparent);
    background-image: var(--section-bg-image, none);
    background-size: var(--section-bg-size, cover);
    background-position: var(--section-bg-position, center);
    background-attachment: var(--section-bg-attachment, scroll);
    background-repeat: no-repeat;
}
.rt-sec-block--has-bg .rt-sec-block {
    background-color: var(--section-bg-color, transparent) !important;
    background-image: var(--section-bg-image, none) !important;
    background-size: var(--section-bg-size, cover) !important;
    background-position: var(--section-bg-position, center) !important;
    background-attachment: var(--section-bg-attachment, scroll) !important;
    background-repeat: no-repeat !important;
}
[data-template] .rt-sec-block--has-bg,
[data-template] .rt-sec-block--has-bg .rt-wireframe-wrap,
[data-template] .rt-sec-block--has-bg .rt-sec-block {
    background-color: var(--section-bg-color, transparent) !important;
    background-image: var(--section-bg-image, none) !important;
    background-size: var(--section-bg-size, cover) !important;
    background-position: var(--section-bg-position, center) !important;
    background-attachment: var(--section-bg-attachment, scroll) !important;
    background-repeat: no-repeat !important;
}
/* iOS / touch fallback: `background-attachment: fixed` breaks on touch devices.
 * Force scroll so the bg image doesn't zoom / freeze on mobile Safari. */
@media (hover: none) and (pointer: coarse) {
    .rt-sec-block--has-bg,
    .rt-sec-block--has-bg .rt-sec-block,
    [data-template] .rt-sec-block--has-bg,
    [data-template] .rt-sec-block--has-bg .rt-wireframe-wrap,
    [data-template] .rt-sec-block--has-bg .rt-sec-block {
        background-attachment: scroll !important;
    }
}
.rt-sec-block--has-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: var(--section-overlay-color, transparent);
    opacity: var(--section-overlay-opacity, 0);
}
.rt-sec-block--has-bg > * {
    position: relative;
    z-index: 1;
}
.rt-sec-block--tone-light {
    color: #fff;
    --rt-sec-text: #fff;
    --rt-sec-heading: #fff;
    --rt-sec-text-muted: rgba(255, 255, 255, 0.82);
}
.rt-sec-block--tone-light :is(h1, h2, h3, h4, h5, h6, p, li) {
    color: inherit;
}
.rt-sec-block--tone-dark {
    color: #111827;
    --rt-sec-text: #111827;
    --rt-sec-heading: #111827;
    --rt-sec-text-muted: rgba(17, 24, 39, 0.72);
}
.rt-sec-block--tone-dark :is(h1, h2, h3, h4, h5, h6, p, li) {
    color: inherit;
}

[data-isolated-preview="true"] {
    padding: 16px;
}
[data-isolated-preview="true"] .rt-std-section-anchor,
[data-isolated-preview="true"] .rt-template > section,
[data-isolated-preview="true"] .rt-template > div > section,
[data-isolated-preview="true"] > section,
[data-isolated-preview="true"] .rt-sec-block {
    outline: 2px dashed var(--bs-primary, #2563eb);
    outline-offset: 6px;
    border-radius: 4px;
    margin: 16px 0;
}
/* Sidebar slot section renders alone — let it span the iframe width so
 * admin can review the actual content rather than a 30% narrow column. */
[data-isolated-preview="true"] .rt-template__sidebar,
[data-isolated-preview="true"] .rt-template__aside,
[data-isolated-preview="true"] aside {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
}
