/*==================== CHI TIẾT DỰ ÁN ====================*/
.project-page {
    --project-accent: var(--brand-olive);
    --project-soft: #fffdf5;
    --project-line: #e9dfb5;
}

.project-container { max-width: 1140px; }
.project-hero { padding: 28px 0 48px; }

.project-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 26px;
    color: #777;
    font-size: 13px;
}

.project-breadcrumb a { color: var(--project-accent); text-decoration: none; }
.project-breadcrumb a:hover { color: var(--brand-black); }
.project-kicker,
.section-eyebrow { margin: 0 0 8px; color: var(--project-accent); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.project-hero h1 {
    width: fit-content;
    margin: 0;
    background: linear-gradient(90deg, var(--brand-olive), var(--brand-gold));
    background-clip: text;
    color: transparent;
    font-size: clamp(32px, 4vw, 48px);
    -webkit-background-clip: text;
}
.project-lead { margin: 10px 0 18px; color: #555; font-size: 18px; }

.hero-facts { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-bottom: 20px; }
.hero-facts span { color: #555; font-size: 14px; }
.hero-facts i { margin-right: 6px; color: var(--project-accent); }

.hero-image { margin: 0; }
.hero-image img { display: block; width: 100%; max-height: 600px; object-fit: cover; object-position: center 52%; }
.hero-image figcaption { padding: 7px 10px; background: #f2f2f2; color: #555; font-size: 13px; font-style: italic; text-align: center; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; padding-top: 24px; }
.hero-actions .primarybutton { width: 180px; }

.project-section { padding: 64px 0; scroll-margin-top: 96px; }
.section-soft { background: var(--project-soft); }
.section-heading { margin: 0 auto 30px; text-align: center; scroll-margin-top: 100px; }
.section-heading h2 {
    display: inline-block;
    margin: 0 0 12px;
    background: linear-gradient(90deg, var(--brand-olive), var(--brand-gold));
    background-clip: text;
    color: transparent;
    font-size: clamp(28px, 3.2vw, 38px);
    -webkit-background-clip: text;
}
.section-rule { display: block; width: min(100%, 820px); height: 2px; margin: 0 auto; background: linear-gradient(90deg, var(--brand-black), var(--brand-gold)); }
.section-intro { max-width: 780px; margin: 0 auto 28px; color: #555; text-align: center; }

.overview-layout,
.location-layout,
.pricing-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 38px; }
.overview-copy p,
.location-layout p,
.pricing-copy p { margin-bottom: 16px; }
.overview-copy .secondarybutton { margin-top: 8px; width:50% }
.overview-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.fact-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 34px 0 0; border-top: 1px solid var(--project-line); border-left: 1px solid var(--project-line); }
.fact-grid div { min-height: 112px; padding: 18px; border-right: 1px solid var(--project-line); border-bottom: 1px solid var(--project-line); background: #fff; }
.fact-grid dt { margin-bottom: 6px; color: var(--project-accent); font-family: headingsemibold, sans-serif; font-size: 14px; }
.fact-grid dd { margin: 0; color: #454545; font-size: 14px; }

.location-layout { grid-template-columns: 1.1fr .9fr; }
.location-list { display: grid; gap: 10px; margin: 20px 0; padding: 0; list-style: none; }
.location-list li { display: flex; gap: 10px; color: #444; }
.location-list i { margin-top: 5px; color: var(--project-accent); }
.location-visual { margin: 0; background: #fff; }
.location-visual img { display: block; width: 100%; max-height: 430px; object-fit: contain; }
.location-visual figcaption { padding-top: 8px; color: #777; font-size: 12px; text-align: center; }

.amenity-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.amenity-card { overflow: hidden; margin: 0; border: 1px solid #0000000d; border-radius: 6px; background: #fff; box-shadow: 0 4px 18px #0000000d; }
.amenity-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .3s ease; }
.amenity-card:hover img { transform: scale(1.025); }
.amenity-grid.is-reveal-ready .amenity-card { opacity: 0; transform: translateY(18px); transition: opacity .45s ease, transform .45s ease; }
.amenity-grid.is-reveal-ready .amenity-card.is-visible { opacity: 1; transform: translateY(0); }
.amenity-grid.is-reveal-ready .amenity-card:nth-child(2) { transition-delay: .06s; }
.amenity-grid.is-reveal-ready .amenity-card:nth-child(3) { transition-delay: .12s; }
.amenity-grid.is-reveal-ready .amenity-card:nth-child(4) { transition-delay: .18s; }
.amenity-grid.is-reveal-ready .amenity-card:nth-child(5) { transition-delay: .24s; }
.amenity-card figcaption { display: flex; min-height: 58px; align-items: center; padding: 12px 16px; color: #333; font-family: headingsemibold, sans-serif; font-size: 14px; }
.amenity-card:first-child { grid-column: 1 / -1; }
.amenity-card:first-child figcaption { justify-content: center; text-align: center; }
.amenity-card:not(:first-child) { grid-column: span 6; }

.unit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 18px; }
.unit-card { display: flex; min-height: 190px; flex-direction: column; overflow: hidden; padding: 16px; border: 1px solid var(--project-line); background: #fff; }
.unit-card-heading { display: flex; align-items: center; gap: 12px; min-height: 66px; margin-bottom: 12px; }
.unit-card-heading > span { display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; align-items: center; justify-content: center; border-radius: 50%; background: var(--brand-gold); color: var(--brand-black); font-family: headingbold, sans-serif; }
.unit-card h3 { margin: 0 0 4px; color: #242424; font-size: 17px; }
.unit-card-heading p { margin: 0; color: #666; font-size: 13px; }
.unit-card > .tetiarybutton { display: inline-block; margin-top: auto; padding-top: 18px; font-size: 13px; }
.detail-note { margin: 22px 0 0; color: #777; font-size: 12px; }

.pricing-layout { grid-template-columns: .9fr 1.1fr; }
.pricing-copy h3 { margin: 0 0 12px; color: var(--project-accent); font-size: 24px; }
.pricing-copy ul { margin: 18px 0 24px; padding-left: 20px; }
.pricing-copy li { margin-bottom: 7px; }
.pricing-layout > img { display: block; width: 100%; max-height: 440px; object-fit: contain; background: #fff9df; }

.project-contact { padding-bottom: 52px; background: #fff; }
.project-contact-form { max-width: 720px; }
.project-contact-form .primarybutton { width: 160px; }
.form-note { max-width: 680px; margin-right: auto; margin-left: auto; text-align: center; }

@media (max-width: 991px) {
    .project-container { max-width: 760px; }
    .project-hero { padding-top: 22px; }
    .hero-image img { max-height: 500px; }
    .project-section { padding: 52px 0; }
    .overview-layout, .location-layout, .pricing-layout { gap: 24px; }
    .fact-grid { grid-template-columns: repeat(2, 1fr); }
    .unit-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
    .project-container { width: min(calc(100% - 30px), 620px); padding-right: 0; padding-left: 0; }
    .project-hero { padding: 18px 0 34px; }
    .project-breadcrumb { margin-bottom: 20px; font-size: 12px; }
    .project-lead { font-size: 16px; }
    .hero-facts { gap: 8px 16px; }
    .hero-facts span { font-size: 12px; }
    .hero-image img { min-height: 250px; max-height: 390px; object-fit: cover; }
    .project-section { padding: 42px 0; }
    .section-heading { margin-bottom: 24px; }
    .overview-layout, .location-layout, .pricing-layout { grid-template-columns: 1fr; }
    .overview-image { grid-row: 1; }
    .overview-image img { aspect-ratio: 16 / 9; }
    .location-visual img { max-height: 360px; }
    .amenity-grid { gap: 16px; }
    .unit-grid { grid-template-columns: 1fr; }
    .pricing-layout > img { max-height: 340px; }
}

@media (max-width: 480px) {
    .hero-actions { justify-content: flex-start; gap: 12px; }
    .hero-actions .primarybutton { width: 160px; }
    .hero-actions .tetiarybutton { font-size: 13px; }
    .hero-image img { min-height: 220px; }
    .fact-grid div { min-height: 100px; padding: 13px; }
    .fact-grid dt, .fact-grid dd { font-size: 12px; }
    .amenity-grid { grid-template-columns: 1fr; }
    .amenity-card:first-child,
    .amenity-card:not(:first-child) { grid-column: 1; }
    .unit-card { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .amenity-grid.is-reveal-ready .amenity-card,
    .amenity-card img { transition: none; }
}
