/*
 * wireframe-pattern.css — production + admin-preview CSS rules cho
 * `data-wireframe-pattern` attribute trên section root.
 *
 * Selectors scoped trên `[data-wireframe-pattern="..."]` (attr stamped trên
 * `<section>` wrapper qua section router blades, hoặc trên `<body>` ở admin
 * preview iframe single-section page).
 *
 * Whitelist match SectionLayoutStyleForm::wireframePatternChoices() (11 values):
 *   '', split, fullbleed, bento, grid-3col, grid-2col, stack, tabs, slider, timeline, accordion
 *
 * Loaded:
 *   - Production: project detail page (`templates/projects/show.blade.php`).
 *   - Preview: SectionLayoutStylePreviewController::prepareThemeAssets().
 */

/* =============================================================================
 * GRID-2COL — 2-column grid cho mọi container grid quen thuộc
 * ========================================================================== */
[data-wireframe-pattern="grid-2col"] .top-amenities-showcase__grid,
[data-wireframe-pattern="grid-2col"] .financial-benefits__ribbon {
    grid-template-columns: repeat(2, 1fr);
}
[data-wireframe-pattern="grid-2col"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="grid-2col"] .gallery-grid > [class*="col-"],
[data-wireframe-pattern="grid-2col"] .pricing-grid > [class*="col-"] {
    flex: 0 0 auto;
    width: 50%;
    max-width: 50%;
}

/* =============================================================================
 * GRID-3COL — 3-column grid
 * ========================================================================== */
[data-wireframe-pattern="grid-3col"] .top-amenities-showcase__grid,
[data-wireframe-pattern="grid-3col"] .financial-benefits__ribbon {
    grid-template-columns: repeat(3, 1fr);
}
[data-wireframe-pattern="grid-3col"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="grid-3col"] .gallery-grid > [class*="col-"],
[data-wireframe-pattern="grid-3col"] .pricing-grid > [class*="col-"] {
    flex: 0 0 auto;
    width: 33.3333%;
    max-width: 33.3333%;
}

/* =============================================================================
 * STACK — 1-column dọc, content full-width
 * ========================================================================== */
[data-wireframe-pattern="stack"] .top-amenities-showcase__grid,
[data-wireframe-pattern="stack"] .financial-benefits__ribbon {
    grid-template-columns: 1fr;
}
[data-wireframe-pattern="stack"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="stack"] .gallery-grid > [class*="col-"],
[data-wireframe-pattern="stack"] .pricing-grid > [class*="col-"] {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
}

/* =============================================================================
 * FULLBLEED — full-width media/heading edge-to-edge, KHÔNG container padding
 * ========================================================================== */
[data-wireframe-pattern="fullbleed"] .container,
[data-wireframe-pattern="fullbleed"] .container-1180,
[data-wireframe-pattern="fullbleed"] .container-fluid {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
[data-wireframe-pattern="fullbleed"] .top-amenities-showcase__grid {
    grid-template-columns: 1fr;
    gap: 0;
}
[data-wireframe-pattern="fullbleed"] #related-projects .row,
[data-wireframe-pattern="fullbleed"]#related-projects .row {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-left: 0;
    margin-right: 0;
}
[data-wireframe-pattern="fullbleed"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="fullbleed"]#related-projects .row > [class*="col-"] {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
[data-wireframe-pattern="fullbleed"] #related-projects .related-project-card,
[data-wireframe-pattern="fullbleed"]#related-projects .related-project-card {
    display: grid;
    grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
    border-radius: 0 !important;
}
[data-wireframe-pattern="fullbleed"] #related-projects .related-project-card .ratio,
[data-wireframe-pattern="fullbleed"]#related-projects .related-project-card .ratio {
    min-height: 260px;
}
[data-wireframe-pattern="fullbleed"] #related-projects .related-project-card .p-3,
[data-wireframe-pattern="fullbleed"]#related-projects .related-project-card .p-3 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(24px, 4vw, 48px) !important;
}
[data-wireframe-pattern="fullbleed"] .hero-banner img,
[data-wireframe-pattern="fullbleed"] .hero-banner__image,
[data-wireframe-pattern="fullbleed"] [class*="hero-"] img {
    width: 100%;
    height: auto;
}

@media (max-width: 767.98px) {
    [data-wireframe-pattern="fullbleed"] #related-projects .related-project-card,
    [data-wireframe-pattern="fullbleed"]#related-projects .related-project-card {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
 * SPLIT — dual mode:
 *   • Hero-style: media + text song song (.rt-sec-hero, .overview).
 *   • Section thường: 2 cột grid (giống grid-2col) — cho gallery/top-amenities/cta-form/...
 * ========================================================================== */
[data-wireframe-pattern="split"] [class*="hero-"] .row,
[data-wireframe-pattern="split"] .overview .row {
    align-items: center;
}
[data-wireframe-pattern="split"] [class*="hero-"] .row > [class*="col-"]:first-child,
[data-wireframe-pattern="split"] [class*="hero-"] .row > [class*="col-"]:last-child,
[data-wireframe-pattern="split"] .overview .row > [class*="col-"]:first-child,
[data-wireframe-pattern="split"] .overview .row > [class*="col-"]:last-child {
    flex: 0 0 auto;
    width: 50%;
    max-width: 50%;
}
/* Split-as-grid-2col cho section thường — cùng selector set như grid-2col */
[data-wireframe-pattern="split"] .top-amenities-showcase__grid,
[data-wireframe-pattern="split"] .financial-benefits__ribbon {
    grid-template-columns: repeat(2, 1fr);
}
[data-wireframe-pattern="split"] .gallery-grid > [class*="col-"],
[data-wireframe-pattern="split"] .pricing-grid > [class*="col-"],
[data-wireframe-pattern="split"] .cta-form-grid > [class*="col-"] {
    flex: 0 0 auto;
    width: 50%;
    max-width: 50%;
}

/* =============================================================================
 * HERO-BANNER overrides — `.rt-sec-hero__inner` là custom flex layout chứ KHÔNG
 * dùng Bootstrap row/col → cần selector riêng. Hero default đã là 2-col split
 * (copy bên trái, panel stats bên phải) → grid-2col = "no visible change".
 * Override TỪNG pattern để mọi lựa chọn đều produce visible diff (UX feedback).
 * ========================================================================== */

/* grid-2col → đảo vị trí copy/panel (visible reorder), giữ tỉ lệ 50/50 */
[data-wireframe-pattern="grid-2col"] .rt-sec-hero__inner {
    flex-direction: row-reverse !important;
}

/* grid-3col → 1/3 copy, 2/3 panel (rebalance widths) */
[data-wireframe-pattern="grid-3col"] .rt-sec-hero__copy {
    flex: 0 0 33.3333% !important;
    max-width: 33.3333% !important;
}
[data-wireframe-pattern="grid-3col"] .rt-sec-hero__panel {
    flex: 0 0 66.6666% !important;
    max-width: 66.6666% !important;
}

/* stack → collapse copy + panel vertical, full-width mỗi block */
[data-wireframe-pattern="stack"] .rt-sec-hero__inner {
    flex-direction: column !important;
    align-items: stretch !important;
}
[data-wireframe-pattern="stack"] .rt-sec-hero__copy,
[data-wireframe-pattern="stack"] .rt-sec-hero__panel {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 24px;
}

/* fullbleed → hide stats panel, copy chiếm full-width edge-to-edge */
[data-wireframe-pattern="fullbleed"] .rt-sec-hero__panel {
    display: none !important;
}
[data-wireframe-pattern="fullbleed"] .rt-sec-hero__copy {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center;
}
[data-wireframe-pattern="fullbleed"] .rt-sec-hero__inner {
    justify-content: center !important;
}

/* bento → outline panel như bento card, copy compact 60% */
[data-wireframe-pattern="bento"] .rt-sec-hero__copy {
    flex: 0 0 60% !important;
    max-width: 60% !important;
}
[data-wireframe-pattern="bento"] .rt-sec-hero__panel {
    flex: 0 0 40% !important;
    max-width: 40% !important;
    border: 2px solid var(--gold, #d4a056);
    border-radius: 18px;
    padding: 18px !important;
    box-shadow: 0 14px 32px rgba(212, 160, 86, 0.18);
}

/* =============================================================================
 * BENTO — asymmetric grid với 1 card lớn span 2x
 * ========================================================================== */
[data-wireframe-pattern="bento"] .top-amenities-showcase__grid {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: minmax(200px, auto);
}
[data-wireframe-pattern="bento"] .top-amenities-showcase__grid > :nth-child(1) {
    grid-column: span 2;
    grid-row: span 2;
}
[data-wireframe-pattern="bento"] .top-amenities-showcase__grid > :nth-child(4) {
    grid-column: span 2;
}
[data-wireframe-pattern="bento"] .financial-benefits__ribbon {
    grid-template-columns: repeat(4, 1fr);
}
[data-wireframe-pattern="bento"] .financial-benefits__ribbon > :nth-child(1) {
    grid-column: span 2;
}

/* =============================================================================
 * TABS — section blade render dạng nav-tabs + panes
 * (markup: _shared/wireframe/_tabs.blade.php)
 * ========================================================================== */
.wireframe-tabs {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.wireframe-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border-bottom: 2px solid rgba(0, 0, 0, 0.06);
    padding-bottom: 8px;
    margin: 0;
    list-style: none;
}
.wireframe-tabs__nav-btn {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 10px 18px;
    border-radius: 999px;
    font: 600 14px/1 system-ui, -apple-system, sans-serif;
    color: var(--rt-text-muted, #64748b);
    cursor: pointer;
    transition: background 0.18s, color 0.18s;
}
.wireframe-tabs__nav-btn:hover {
    background: rgba(212, 160, 86, 0.12);
}
.wireframe-tabs__nav-btn.is-active {
    background: var(--gold, #d4a056);
    color: #fff;
}
.wireframe-tabs__panel {
    display: none;
}
.wireframe-tabs__panel.is-active {
    display: block;
}

/* =============================================================================
 * SLIDER — horizontal scroll-snap container (CSS-only, no JS needed)
 * ========================================================================== */
.wireframe-slider {
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
}
.wireframe-slider > * {
    flex: 0 0 auto;
    width: min(320px, 80vw);
    scroll-snap-align: start;
}
.wireframe-slider::-webkit-scrollbar {
    height: 8px;
}
.wireframe-slider::-webkit-scrollbar-thumb {
    background: rgba(212, 160, 86, 0.5);
    border-radius: 4px;
}

/* =============================================================================
 * Generic grid → SLIDER conversion (CSS-only fallback cho sections không có
 * semantic slider blade — top-amenities-showcase, financial-benefits, ...).
 * ========================================================================== */
[data-wireframe-pattern="slider"] .top-amenities-showcase__grid,
[data-wireframe-pattern="slider"] .financial-benefits__ribbon {
    display: flex !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 18px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 12px;
    grid-template-columns: none;
}
[data-wireframe-pattern="slider"] .top-amenities-showcase__grid > *,
[data-wireframe-pattern="slider"] .financial-benefits__ribbon > * {
    flex: 0 0 auto;
    width: min(320px, 75vw);
    scroll-snap-align: start;
}

/* =============================================================================
 * Generic grid → TIMELINE conversion (horizontal flex + connecting line)
 * ========================================================================== */
[data-wireframe-pattern="timeline"] .top-amenities-showcase__grid,
[data-wireframe-pattern="timeline"] .financial-benefits__ribbon {
    display: flex !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 24px;
    padding-top: 48px;
    position: relative;
    grid-template-columns: none;
}
[data-wireframe-pattern="timeline"] .top-amenities-showcase__grid::before,
[data-wireframe-pattern="timeline"] .financial-benefits__ribbon::before {
    content: "";
    position: absolute;
    top: 70px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold, #d4a056) 8%, var(--gold, #d4a056) 92%, transparent);
    z-index: 0;
    pointer-events: none;
}
[data-wireframe-pattern="timeline"] .top-amenities-showcase__grid > *,
[data-wireframe-pattern="timeline"] .financial-benefits__ribbon > * {
    flex: 0 0 auto;
    width: min(260px, 70vw);
    position: relative;
    z-index: 1;
}

/* =============================================================================
 * Generic grid → ACCORDION conversion (1-col stack, collapse-feel via spacing)
 * ========================================================================== */
[data-wireframe-pattern="accordion"] .top-amenities-showcase__grid,
[data-wireframe-pattern="accordion"] .financial-benefits__ribbon {
    grid-template-columns: 1fr;
    gap: 10px;
}
[data-wireframe-pattern="accordion"] .top-amenities-showcase__grid > *,
[data-wireframe-pattern="accordion"] .financial-benefits__ribbon > * {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    padding: 14px 18px;
}

/* =============================================================================
 * Generic grid → TABS conversion (first item highlighted full-width as active
 * "panel", remaining items as small thumb row simulating tab nav).
 * ========================================================================== */
[data-wireframe-pattern="tabs"] .top-amenities-showcase__grid,
[data-wireframe-pattern="tabs"] .financial-benefits__ribbon {
    grid-template-columns: 1fr;
    gap: 20px;
}
[data-wireframe-pattern="tabs"] .top-amenities-showcase__grid > :nth-child(n+2),
[data-wireframe-pattern="tabs"] .financial-benefits__ribbon > :nth-child(n+2) {
    display: inline-flex;
    width: auto;
    border-radius: 999px;
    padding: 8px 16px;
    background: rgba(212, 160, 86, 0.1);
    color: var(--gold, #d4a056);
    font-weight: 600;
    margin-right: 8px;
}

/* =============================================================================
 * RELATED-PROJECTS — force each picker option to produce visible preview changes.
 * ========================================================================== */
[data-wireframe-pattern="split"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="split"]#related-projects .row > [class*="col-"] {
    flex: 0 0 auto;
    width: 50%;
    max-width: 50%;
}

[data-wireframe-pattern="bento"] #related-projects .row,
[data-wireframe-pattern="bento"]#related-projects .row {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-left: 0;
    margin-right: 0;
}
[data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
[data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"]:nth-child(1),
[data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"]:nth-child(1) {
    grid-column: span 2;
    grid-row: span 2;
}
[data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"]:nth-child(4),
[data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"]:nth-child(4) {
    grid-column: span 2;
}
[data-wireframe-pattern="bento"] #related-projects .related-project-card,
[data-wireframe-pattern="bento"]#related-projects .related-project-card {
    height: 100%;
}
[data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"]:nth-child(1) .ratio,
[data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"]:nth-child(1) .ratio {
    min-height: 360px;
}

[data-wireframe-pattern="tabs"] #related-projects .row,
[data-wireframe-pattern="tabs"]#related-projects .row {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-left: 0;
    margin-right: 0;
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:first-child,
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:first-child {
    grid-column: 1 / -1;
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:first-child .related-project-card,
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:first-child .related-project-card {
    display: grid;
    grid-template-columns: minmax(260px, 40%) minmax(0, 1fr);
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:nth-child(n+2) .ratio,
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:nth-child(n+2) .ratio {
    display: none !important;
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:nth-child(n+2) .related-project-card,
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:nth-child(n+2) .related-project-card {
    border-radius: 999px !important;
    background: rgba(212, 160, 86, 0.1);
}
[data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:nth-child(n+2) .p-3,
[data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:nth-child(n+2) .p-3 {
    padding: 12px 16px !important;
}

[data-wireframe-pattern="slider"] #related-projects .row,
[data-wireframe-pattern="slider"]#related-projects .row,
[data-wireframe-pattern="timeline"] #related-projects .row,
[data-wireframe-pattern="timeline"]#related-projects .row {
    display: flex !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    margin-left: 0;
    margin-right: 0;
    padding-bottom: 16px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
[data-wireframe-pattern="slider"] #related-projects .row,
[data-wireframe-pattern="slider"]#related-projects .row {
    gap: 18px;
}
[data-wireframe-pattern="slider"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="slider"]#related-projects .row > [class*="col-"] {
    flex: 0 0 min(360px, 82vw);
    width: min(360px, 82vw);
    max-width: min(360px, 82vw);
    padding-left: 0;
    padding-right: 0;
    scroll-snap-align: start;
}

[data-wireframe-pattern="timeline"] #related-projects .row,
[data-wireframe-pattern="timeline"]#related-projects .row {
    gap: 28px;
    padding-top: 56px;
    position: relative;
}
[data-wireframe-pattern="timeline"] #related-projects .row::before,
[data-wireframe-pattern="timeline"]#related-projects .row::before {
    content: "";
    position: absolute;
    top: 28px;
    left: 20px;
    right: 20px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold, #d4a056) 10%, var(--gold, #d4a056) 90%, transparent);
    pointer-events: none;
}
[data-wireframe-pattern="timeline"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="timeline"]#related-projects .row > [class*="col-"] {
    flex: 0 0 min(300px, 72vw);
    width: min(300px, 72vw);
    max-width: min(300px, 72vw);
    padding-left: 0;
    padding-right: 0;
    position: relative;
    scroll-snap-align: start;
}
[data-wireframe-pattern="timeline"] #related-projects .row > [class*="col-"]::before,
[data-wireframe-pattern="timeline"]#related-projects .row > [class*="col-"]::before {
    content: "";
    position: absolute;
    top: -35px;
    left: 18px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--gold, #d4a056);
    box-shadow: 0 0 0 6px rgba(212, 160, 86, 0.16);
    z-index: 1;
}

[data-wireframe-pattern="accordion"] #related-projects .row,
[data-wireframe-pattern="accordion"]#related-projects .row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-left: 0;
    margin-right: 0;
}
[data-wireframe-pattern="accordion"] #related-projects .row > [class*="col-"],
[data-wireframe-pattern="accordion"]#related-projects .row > [class*="col-"] {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
[data-wireframe-pattern="accordion"] #related-projects .related-project-card,
[data-wireframe-pattern="accordion"]#related-projects .related-project-card {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    border-radius: 10px !important;
}
[data-wireframe-pattern="accordion"] #related-projects .related-project-card .ratio,
[data-wireframe-pattern="accordion"]#related-projects .related-project-card .ratio {
    min-height: 100%;
}
[data-wireframe-pattern="accordion"] #related-projects .related-project-card .p-3,
[data-wireframe-pattern="accordion"]#related-projects .related-project-card .p-3 {
    padding: 16px 20px !important;
}

@media (max-width: 575.98px) {
    [data-wireframe-pattern="grid-3col"] #related-projects .row > [class*="col-"],
    [data-wireframe-pattern="grid-3col"]#related-projects .row > [class*="col-"],
    [data-wireframe-pattern="split"] #related-projects .row > [class*="col-"],
    [data-wireframe-pattern="split"]#related-projects .row > [class*="col-"] {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 767.98px) {
    [data-wireframe-pattern="bento"] #related-projects .row,
    [data-wireframe-pattern="bento"]#related-projects .row,
    [data-wireframe-pattern="tabs"] #related-projects .row,
    [data-wireframe-pattern="tabs"]#related-projects .row {
        grid-template-columns: 1fr;
    }
    [data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"]:nth-child(1),
    [data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"]:nth-child(1),
    [data-wireframe-pattern="bento"] #related-projects .row > [class*="col-"]:nth-child(4),
    [data-wireframe-pattern="bento"]#related-projects .row > [class*="col-"]:nth-child(4),
    [data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:first-child,
    [data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:first-child {
        grid-column: auto;
        grid-row: auto;
    }
    [data-wireframe-pattern="tabs"] #related-projects .row > [class*="col-"]:first-child .related-project-card,
    [data-wireframe-pattern="tabs"]#related-projects .row > [class*="col-"]:first-child .related-project-card,
    [data-wireframe-pattern="accordion"] #related-projects .related-project-card,
    [data-wireframe-pattern="accordion"]#related-projects .related-project-card {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
 * PAYMENT-SCHEDULE timeline mode — horizontal steps với numbered circles.
 * Markup: .payment-schedule__h-timeline > .payment-schedule__h-timeline-step
 * ========================================================================== */
.payment-schedule__h-timeline {
    list-style: none;
    margin: 0;
    padding: 56px 0 24px;
    display: flex;
    flex-wrap: nowrap;
    gap: 24px;
    overflow-x: auto;
    position: relative;
}
.payment-schedule__h-timeline::before {
    content: "";
    position: absolute;
    top: 78px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold, #d4a056) 8%, var(--gold, #d4a056) 92%, transparent);
    z-index: 0;
}
.payment-schedule__h-timeline-step {
    flex: 0 0 auto;
    width: min(260px, 72vw);
    position: relative;
    z-index: 1;
    padding-top: 40px;
    text-align: center;
}
.payment-schedule__h-timeline-num {
    position: absolute;
    top: -32px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--gold, #d4a056);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 14px/1 system-ui, sans-serif;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.payment-schedule__h-timeline-title {
    font: 700 16px/1.35 system-ui, sans-serif;
    margin: 0 0 6px;
}
.payment-schedule__h-timeline-amount {
    display: inline-block;
    font: 700 14px/1 system-ui, sans-serif;
    color: var(--gold, #d4a056);
    margin-bottom: 6px;
}
.payment-schedule__h-timeline-desc {
    font: 400 13px/1.5 system-ui, sans-serif;
    color: var(--rt-text-muted, #64748b);
    margin: 0;
}

/* =============================================================================
 * MASTER-PLAN timeline override — section đã có `.rt-sec-master-plan__phases`
 * (vertical <ol>). Khi wireframe = timeline → convert sang horizontal flex với
 * connecting line behind step-number markers.
 * ========================================================================== */
[data-wireframe-pattern="timeline"] .rt-sec-master-plan__phases {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 24px;
    overflow-x: auto;
    padding: 56px 0 24px;
    position: relative;
    list-style: none;
}
[data-wireframe-pattern="timeline"] .rt-sec-master-plan__phases::before {
    content: "";
    position: absolute;
    top: 78px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold, #d4a056) 8%, var(--gold, #d4a056) 92%, transparent);
    z-index: 0;
}
[data-wireframe-pattern="timeline"] .rt-sec-master-plan__phase {
    flex: 0 0 auto;
    width: min(280px, 72vw);
    position: relative;
    z-index: 1;
    padding-top: 40px;
}
[data-wireframe-pattern="timeline"] .rt-sec-master-plan__phase-step {
    position: absolute;
    top: -32px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--gold, #d4a056);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 14px/1 system-ui, sans-serif;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* =============================================================================
 * TIMELINE — horizontal flex với connecting line behind markers
 * ========================================================================== */
.wireframe-timeline {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    gap: 24px;
    overflow-x: auto;
    padding: 32px 0 16px;
}
.wireframe-timeline::before {
    content: "";
    position: absolute;
    top: 56px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold, #d4a056) 12%, var(--gold, #d4a056) 88%, transparent);
    z-index: 0;
}
.wireframe-timeline__item {
    flex: 0 0 auto;
    width: min(240px, 70vw);
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.wireframe-timeline__marker {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--gold, #d4a056);
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
    margin-bottom: 16px;
}
.wireframe-timeline__label {
    font: 700 14px/1.3 system-ui, sans-serif;
    margin-bottom: 6px;
}
.wireframe-timeline__content {
    font: 400 13px/1.5 system-ui, sans-serif;
    color: var(--rt-text-muted, #64748b);
}

/* =============================================================================
 * ACCORDION — native <details><summary> (zero JS, accessible)
 * ========================================================================== */
.wireframe-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.wireframe-accordion__item {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}
.wireframe-accordion__item[open] {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
.wireframe-accordion__summary {
    list-style: none;
    cursor: pointer;
    padding: 16px 20px;
    font: 600 15px/1.3 system-ui, sans-serif;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.wireframe-accordion__summary::-webkit-details-marker {
    display: none;
}
.wireframe-accordion__summary::after {
    content: "+";
    font: 700 22px/1 system-ui, sans-serif;
    color: var(--gold, #d4a056);
    transition: transform 0.2s;
}
.wireframe-accordion__item[open] .wireframe-accordion__summary::after {
    content: "−";
}
.wireframe-accordion__content {
    padding: 0 20px 18px;
    color: var(--rt-text-muted, #64748b);
    font: 400 14px/1.6 system-ui, sans-serif;
}

/* =============================================================================
 * Debug marker — admin preview iframe ONLY (production page KHÔNG render badge).
 * Scope `body.wireframe-preview-iframe` stamp ở preview-iframe.blade.php.
 * ========================================================================== */
body.wireframe-preview-iframe[data-wireframe-pattern]:before,
body.wireframe-preview-iframe [data-wireframe-pattern]:before {
    content: "wireframe: " attr(data-wireframe-pattern);
    position: fixed;
    top: 6px;
    right: 6px;
    z-index: 9999;
    padding: 3px 8px;
    background: rgba(15, 118, 110, 0.92);
    color: #fff;
    font: 600 10px/1.2 system-ui, -apple-system, sans-serif;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    pointer-events: none;
}

/* ============================================================================
 * DB PATTERN KEYS — bổ sung từ WireframePatternSeeder (col-2-50-50, grid-2-equal,
 * grid-3-equal, ...). Legacy section partials (location, zones, master-plan,
 * amenities, hero-banner, cta-form, floor-plans, overview, ...) dùng path
 * `<div data-wireframe-pattern="key">` + CSS rule này; partial mới (financial-benefits,
 * gallery, pricing, related-projects, top-amenities-showcase) đã migrate sang
 * wireframe-canvas (grid-template-areas inline) nên không phụ thuộc block này.
 *
 * Universal grid selector `[class*="rt-sec-"][class*="__grid"]` cover toàn bộ
 * section grid containers theo naming convention `.rt-sec-{type}__grid`.
 * Bento patterns không list ở đây — bento cần grid-template-areas, dùng
 * wireframe-canvas path để render đúng.
 * ============================================================================ */

/* 2-COL EQUAL — col-2-50-50, grid-2-equal */
[data-wireframe-pattern="col-2-50-50"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="col-2-50-50"] .top-amenities-showcase__grid,
[data-wireframe-pattern="col-2-50-50"] .financial-benefits__ribbon,
[data-wireframe-pattern="grid-2-equal"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="grid-2-equal"] .top-amenities-showcase__grid,
[data-wireframe-pattern="grid-2-equal"] .financial-benefits__ribbon {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

/* 2-COL SIDEBAR LEFT (4-8) — col-2-sidebar-left, tabs-content-side */
[data-wireframe-pattern="col-2-sidebar-left"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="tabs-content-side"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 16px;
}

/* MEDIA/COPY (7-5) — col-media-copy */
[data-wireframe-pattern="col-media-copy"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 18px;
}

/* HERO SPLIT MEDIA RIGHT (5-7) — hero-split-media-right, slider-hero-thumbs (9-3) */
[data-wireframe-pattern="hero-split-media-right"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 24px;
}
[data-wireframe-pattern="slider-hero-thumbs"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
    gap: 12px;
}

/* 3-COL EQUAL — grid-3-equal, cards-3-feature, pricing-3-tiers */
[data-wireframe-pattern="grid-3-equal"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="cards-3-feature"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="pricing-3-tiers"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

/* 4-COL — cards-4-compact */
[data-wireframe-pattern="cards-4-compact"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

/* STACK (1-col) — col-1-full, col-stack-vertical, accordion-stack, timeline-vertical */
[data-wireframe-pattern="col-1-full"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="col-stack-vertical"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="accordion-stack"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="timeline-vertical"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

/* FULLBLEED — hero-centered-fullbleed, cta-centered (strip container max-width) */
[data-wireframe-pattern="hero-centered-fullbleed"] .container,
[data-wireframe-pattern="hero-centered-fullbleed"] .container-1180,
[data-wireframe-pattern="cta-centered"] .container,
[data-wireframe-pattern="cta-centered"] .container-1180 {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

/* MEDIA-TEXT-CARD-ROW — 3 cols + 1 row spanning full (cần grid-template-areas, fallback 3-col) */
[data-wireframe-pattern="media-text-card-row"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

/* V1.1 expansion patterns — column/grid rules for non-canvas sections (rt-wireframe-wrap). */

/* HERO SPLIT MEDIA LEFT (7-5) — mirror of hero-split-media-right */
[data-wireframe-pattern="hero-split-media-left"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 24px;
}

/* 4-COL EQUAL — grid-4-equal, timeline-horizontal, pricing-4-tiers */
[data-wireframe-pattern="grid-4-equal"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="timeline-horizontal"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="pricing-4-tiers"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

/* 2-COL LARGE / FAQ — cards-2-large, faq-2col */
[data-wireframe-pattern="cards-2-large"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="faq-2col"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

/* 6-CARD COMPACT — cards-6-compact: 6 cols ≥ lg, 3 cols ≥ md */
[data-wireframe-pattern="cards-6-compact"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
@media (min-width: 1200px) {
    [data-wireframe-pattern="cards-6-compact"] [class*="rt-sec-"][class*="__grid"] {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

/* BENTO ASYM (8:4 split + stacked right) — grid-bento-asym */
[data-wireframe-pattern="grid-bento-asym"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: 16px;
}

/* MASONRY-LIKE 3 cols — grid-masonry-3, gallery-mosaic.
   Pure grid fallback (3 equal cols, content rows auto). True masonry needs
   subgrid or column-count layout; rt-sec-*__grid keeps the simpler 3-col approach. */
[data-wireframe-pattern="grid-masonry-3"] [class*="rt-sec-"][class*="__grid"],
[data-wireframe-pattern="gallery-mosaic"] [class*="rt-sec-"][class*="__grid"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

/* MOBILE FALLBACK — collapse multi-col patterns xuống 1 col dưới 768px */
@media (max-width: 767.98px) {
    [data-wireframe-pattern="col-2-50-50"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="col-2-sidebar-left"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="col-media-copy"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="grid-2-equal"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="grid-3-equal"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="cards-3-feature"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="cards-4-compact"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="pricing-3-tiers"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="hero-split-media-right"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="hero-split-media-left"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="slider-hero-thumbs"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="tabs-content-side"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="media-text-card-row"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="grid-4-equal"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="grid-bento-asym"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="grid-masonry-3"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="cards-2-large"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="cards-6-compact"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="timeline-horizontal"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="pricing-4-tiers"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="faq-2col"] [class*="rt-sec-"][class*="__grid"],
    [data-wireframe-pattern="gallery-mosaic"] [class*="rt-sec-"][class*="__grid"] {
        grid-template-columns: 1fr;
    }
}

/* Section-level column settings must win over broad wireframe grid patterns. */
[data-wireframe-pattern] .rt-sec-amenities-icons--cols-2 .rt-sec-amenities-icons__grid,
[data-wireframe-pattern].rt-sec-amenities-icons--cols-2 .rt-sec-amenities-icons__grid,
.rt-sec-amenities-icons--cols-2 [data-wireframe-pattern] .rt-sec-amenities-icons__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-wireframe-pattern] .rt-sec-amenities-icons--cols-3 .rt-sec-amenities-icons__grid,
[data-wireframe-pattern].rt-sec-amenities-icons--cols-3 .rt-sec-amenities-icons__grid,
.rt-sec-amenities-icons--cols-3 [data-wireframe-pattern] .rt-sec-amenities-icons__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
[data-wireframe-pattern] .rt-sec-amenities-icons--cols-4 .rt-sec-amenities-icons__grid,
[data-wireframe-pattern].rt-sec-amenities-icons--cols-4 .rt-sec-amenities-icons__grid,
.rt-sec-amenities-icons--cols-4 [data-wireframe-pattern] .rt-sec-amenities-icons__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
[data-wireframe-pattern] .rt-sec-amenities-tabs--cols-2 .rt-sec-amenities-tabs__grid,
[data-wireframe-pattern].rt-sec-amenities-tabs--cols-2 .rt-sec-amenities-tabs__grid,
.rt-sec-amenities-tabs--cols-2 [data-wireframe-pattern] .rt-sec-amenities-tabs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-wireframe-pattern] .rt-sec-amenities-tabs--cols-3 .rt-sec-amenities-tabs__grid,
[data-wireframe-pattern].rt-sec-amenities-tabs--cols-3 .rt-sec-amenities-tabs__grid,
.rt-sec-amenities-tabs--cols-3 [data-wireframe-pattern] .rt-sec-amenities-tabs__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
[data-wireframe-pattern] .rt-sec-amenities-tabs--cols-4 .rt-sec-amenities-tabs__grid,
[data-wireframe-pattern].rt-sec-amenities-tabs--cols-4 .rt-sec-amenities-tabs__grid,
.rt-sec-amenities-tabs--cols-4 [data-wireframe-pattern] .rt-sec-amenities-tabs__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
