﻿:root {
    --bg: #f8ebdc;
    --text: #222;
    --dot: #000;
    --dot-bg: #fff;
    --radius: 50px;
    --side-padding: 48px;
    --page-max: 1200px;
    --bg-beige: #fbf3ea;
    --text-dark: #222;
    --muted: #6f6f6f;
    --accent: #fff;
}

* {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: Poppins, Regular, sans-serif;
    background: var(--bg);
    color: var(--text);
}

/* Header */
.top-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(248, 235, 220, 0.44);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    width: 100%;
}

.top-header .header-container {
    max-width: 1200px;
    /* giá»›i háº¡n ná»™i dung á»Ÿ giá»¯a */
    margin: 0 auto;
    padding: 18px var(--side-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* PC nav */
.nav-pc {
    display: flex;
    gap: 24px;
    align-items: center;
}

.nav-pc a {
    text-decoration: none;
    color: var(--text);
    font-weight: 500;
}

/* Logo */
.logo img {
    height: 48px;
    width: auto;
    display: block;
}

/* Buttons header */
.header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.header-actions button {
    padding: 10px 20px;
    border-radius: 999px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.header-actions .primary {
    background: #85552D;
    color: #fff;
}

.header-actions .primary:hover {
    background: #000;
}

.nav-mobile button {
    padding: 10px 20px;
    border-radius: 999px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.nav-mobile .primary {
    background: #42413a;
    color: #fff;
}

.nav-mobile .primary:hover {
    background: #000;
}
/* Hamburger button */
.menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    cursor: pointer;
    display: none;
}

.menu-toggle .menu-icon {
    width: 26px;
    height: 26px;
    color: #333;
    /* Ä‘á»•i mÃ u dá»… dÃ ng */
}

/* Mobile nav (áº©n máº·c Ä‘á»‹nh) */
.nav-mobile {
    display: none;
    flex-direction: column;
    gap: 16px;
    background: var(--bg);
    /* dÃ¹ng mÃ u ná»n cá»§a site */
    padding: 24px;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);

    /* hiá»‡u á»©ng trÆ°á»£t */
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s ease;
}

.nav-mobile a {
    text-decoration: none;
    color: var(--text);
    font-weight: 500;
    font-size: 1.1rem;
    padding: 8px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.nav-mobile a:last-child {
    border-bottom: none;
}

/* Khi má»Ÿ menu */
.nav-mobile.show {
    display: flex;
    max-height: 400px;
    /* Ä‘á»§ lá»›n Ä‘á»ƒ chá»©a menu */
    padding: 24px;
}

/* Responsive */

/* Footer bottom */
footer {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--side-padding) 40px;
    color: #6b5f57;
}

/* Title */
.hero {
    text-align: center;
    padding: 30px 16px 8px;
}

.home-hero-banner {
    background-image: url('/assets/images/banner-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    margin-top: -86px;
    padding-top: 86px;
    padding-bottom: 40px;
}

.hero h1 {
    margin: 0;
    font-size: 2.8rem;
    font-weight: 400;
}

.hero p {
    margin: 8px 0 0;
    color: #5b5046;
}

/* Slider wrapper (centered) */
.slider-wrap {
    position: relative;
    /* Ä‘á»ƒ pagination-wrap absolute relative tá»›i Ä‘Ã¢y */
    max-width: 1200px;
    margin: 28px auto 0px;
    padding: 0 24px;
    /* chá»«a 2 bÃªn Ä‘á»ƒ lá»™ áº£nh káº¿ */
}

/* chá»‰ Ã¡p dá»¥ng cho slider áº£nh */
.slider-wrap .swiper {
    position: relative;
    overflow: visible;
    /* cho lá»™ áº£nh 2 bÃªn */
    height: clamp(260px, 45vw, 520px);
    /* responsive height */
}

.slider-wrap .swiper-slide {
    width: 70%;
    /* luÃ´n set má»—i slide chiáº¿m 70% */
    max-width: 950px;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(255, 255, 255, 0.08);
}

.swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Pagination wrapper: náº±m chÃ­nh giá»¯a trÃªn áº£nh (chiá»u rá»™ng = 70% -> báº±ng vá»›i slide giá»¯a) */
.pagination-wrap {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 18px;
    /* chá»‰nh náº¿u muá»‘n cao/tháº¥p */
    width: 70%;
    /* khá»›p vá»›i .swiper-slide width */
    max-width: 950px;
    display: flex;
    justify-content: center;
    pointer-events: none;
    /* máº·c Ä‘á»‹nh Ä‘á»ƒ trÃ¡nh cháº·n kÃ©o */
    z-index: 30;
}

/* Báº­t láº¡i pointer events cho bullets */
.pagination-wrap .swiper-pagination {
    pointer-events: auto;
}

.pagination-wrap .swiper-pagination {
    text-align: center;
}

.pagination-wrap .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    /* background: var(--dot-bg); */
    background: #dddcdc;
    /* border: 2px solid var(--dot); */
    opacity: 0.95;
    margin: 0 6px !important;
}

.pagination-wrap .swiper-pagination-bullet-active {
    background: #747474;
    border-color: #fff;
}

/* Footer info */
.info-grid {
    max-width: 1200px;
    margin: auto auto;
    padding: 40px var(--side-padding);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    /* tÄƒng khoáº£ng cÃ¡ch cá»™t cho thoÃ¡ng */
}

.info-grid h3 {
    margin: 0 0 8px;
    font-weight: 500;
    font-size: 1.5rem;
    color: var(--text);
}

.info-grid p {
    margin: 0px;
    line-height: 1.7;
    font-size: 0.95rem;
    color: #4a4037;
}

/* Map box theo máº«u */
.map-box {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.map-box iframe {
    width: 100%;
    height: 180px;
    border: 0;
    display: block;
}

.social-icons {
    margin-top: 10px;
    display: flex;
    gap: 14px;
}

.social-icons a {
    color: var(--text);
    /* hoáº·c mÃ u khÃ¡c */
    transition: color 0.3s ease;
}

.social-icons svg {
    width: 19px;
    height: 19px;
}

/* Responsive */
@media (max-width: 992px) {
    .swiper-slide {
        width: 80%;
    }

    .pagination-wrap {
        width: 80%;
    }

    .info-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .top-header .header-container {
        padding: 12px 16px;
        /* nhá» padding cho mobile */
    }

    .nav-pc {
        display: none;
    }

    /* áº¨n menu PC */
    .menu-toggle {
        display: flex;
    }

    /* Hiá»‡n nÃºt hamburger */
    .header-actions button,
    .nav-mobile button {
        white-space: nowrap;
    }

}

@media (max-width: 600px) {
    .home-hero-banner {
        margin-top: -72px;
        padding-top: 72px;
    }

    .swiper-slide {
        width: 90%;
    }

    .pagination-wrap {
        width: 90%;
        bottom: 14px;
    }

    .info-grid {
        grid-template-columns: 1fr;
    }

    .nav-pc {
        display: none;
    }

    /* áº¨n menu PC */
    .menu-toggle {
        display: flex;
    }

    /* Hiá»‡n nÃºt hamburger */
    .header-actions button,
    .nav-mobile button {
        padding: 8px 14px;
    }
}

/* ---------- HERO vÃ  BANNER ---------- */
.hero-about {
    height: 240px;
    background-size: cover;
    background-position: center;
    position: relative;
    box-shadow: inset 0 -40px 60px rgba(0, 0, 0, 0.15);
}

/* banner "About Us" â€” pill bo trÃ²n vÃ  phá»§ xuá»‘ng dÆ°á»›i */
.about-banner {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -18px;
    /* phá»§ xuá»‘ng dÆ°á»›i hero */
    background: var(--bg-beige);
    padding: 14px 44px;
    border-radius: 35px;
    /* box-shadow: 0 12px 30px rgba(23,23,23,0.12); */
    font-weight: 600;
    font-size: 36px;
    color: var(--text-dark);
    letter-spacing: 0.2px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* kiá»ƒu thÃªm: má»™t viá»n máº£nh mÃ u be Ä‘á»ƒ giá»‘ng thiáº¿t káº¿ */
.about-banner::before {
    content: "";
    position: absolute;
    inset: -2px;
    /* táº¡o viá»n máº£nh xung quanh */
    border-radius: 40px;
    background: #f8ebdc;
    z-index: -1;
}

/* ---------- Ná»™i dung chÃ­nh ---------- */
.container {
    max-width: var(--page-max);
    margin: 0 auto;
    padding: 70px 20px 40px;
    /* top lá»›n Ä‘á»ƒ chá»«a chá»— banner */
    position: relative;
}

.about-row {
    display: flex;
    gap: 34px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.about-left {
    flex: 1 1 520px;
    min-width: 280px;
}

.small-label {
    color: var(--muted);
    font-size: 13px;
    margin-bottom: 8px;
}

.about-left h1 {
    font-size: 30px;
    margin: 0 0 18px;
    font-weight: 500;
}

.about-left p {
    color: #5a5a5a;
    line-height: 1.7;
    margin-bottom: 14px;
    font-size: 15px;
}

.btn-appoint {
    display: inline-block;
    background: #85552D;
    color: #fff;
    padding: 12px 20px;
    border-radius: 999px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    margin-top: 10px;
    box-shadow: 0 6px 14px rgba(59, 59, 59, 0.12);
}

.about-right {
    flex: 0 0 550px;
    min-width: 260px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.about-image {
    width: 100%;
    max-width: 550px;
    border-radius: 18px;
    overflow: hidden;
    /* background: #fff; */
    /* box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); */
}

.about-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* Homepage About section (scoped, does not affect about.php) */
.home-about {
    background-image: url('/assets/images/about-home-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
}

.home-about .home-about-container {
    border-radius: 18px;
}

.home-about .about-row {
    display: flex;
    gap: 44px;
    align-items: center;
    flex-wrap: nowrap;
}
.home-about .about-right .small-label {
    font-size: 20px;
}
.home-about .about-left {
    flex: 0 0 40%;
    min-width: 320px;
}

.home-about .about-right {
    flex: 1;
    min-width: 320px;
    display: block;
}

.home-about .about-right h1 {
    font-size: 30px;
    line-height: 1.2;
    margin: 0 0 20px;
    font-weight: 500;
}

.home-about .about-right p {
    color: #2f2f2f;
    line-height: 1.6;
    margin-bottom: 14px;
    font-size: 15px;
}

.home-about .about-image {
    max-width: 100%;
}

.home-services {
    background-image: url('/assets/images/services-home-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    padding: 56px 0;
}

.home-services .home-services-container {
    text-align: center;
}

.home-services .home-services-container h2 {
    margin: 0 0 30px;
    font-size: 30px;
    font-weight: 500;
}

.home-services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.home-service-card {
    background: #ffffff;
    border-radius: 10px;
    padding: 26px 18px 24px;
    display: block;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
    cursor: pointer;
}

.home-service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.14);
    background: #ffffff;
}

.home-service-card:focus-visible {
    outline: 2px solid #85552D;
    outline-offset: 3px;
}

.home-service-image {
    display: block;
    width: 100%;
    height: auto;
    max-width: 150px;
    margin: 0 auto 16px;
}

.home-service-card h3 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 500;
}

.home-service-card p {
    margin: 0;
    color: #2e2e2e;
    font-size: 17px;
    line-height: 1.45;
}

.home-services-cta {
    margin-top: 26px;
}

.home-services-btn {
    display: inline-block;
    background: #85552D;
    color: #fff;
    padding: 12px 28px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
}

.home-booking {
    width: 100%;
    background-image: linear-gradient(rgba(20, 10, 8, 0.35), rgba(20, 10, 8, 0.35)), url('/assets/images/book-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    margin-top: 30px;
}

.home-booking-container {
    min-height: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 24px;
    padding-bottom: 24px;
}

.home-booking-logo {
    width: 86px;
    height: auto;
    display: block;
    margin-bottom: 12px;
}

.home-booking-container h2 {
    color: #fff;
    margin: 0 0 14px;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.12;
}

.home-booking-link {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.home-gallery {
    width: 100%;
}

.home-gallery-container h2 {
    margin: 0 0 28px;
    text-align: center;
    font-size: 30px;
    font-weight: 500;
}

.home-gallery-grid {
    display: grid;
    grid-template-columns: 1.35fr 1.15fr 0.95fr;
    grid-template-rows: 0.92fr 0.92fr;
    gap: 18px;
    max-height: 575px;
}

.home-gallery-item {
    overflow: hidden;
    position: relative;
    border-radius: 8px;
    transform: translateY(0);
    transition: transform 0.25s ease-out, box-shadow 0.25s ease-out;
    cursor: pointer;
}

.home-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.001);
    transform-origin: center center;
    will-change: transform;
    transition: transform 0.75s cubic-bezier(0.22, 0.61, 0.36, 1), filter 0.65s ease;
}

.home-gallery .home-gallery-item:hover img,
.home-gallery .home-gallery-item:active img,
.home-gallery .home-gallery-item.is-zoomed img {
    transform: scale(1.06);
}

.home-gallery .home-gallery-item:hover,
.home-gallery .home-gallery-item:active,
.home-gallery .home-gallery-item.is-zoomed {
    transform: translateY(-6px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.16);
    outline: 2px solid rgba(133, 85, 45, 0.35);
    outline-offset: -2px;
}

.home-gallery .home-gallery-item:hover img,
.home-gallery .home-gallery-item:active img,
.home-gallery .home-gallery-item.is-zoomed img {
    filter: brightness(1.05) saturate(1.08);
}

.home-gallery-container.is-visible .home-gallery-item {
    animation: galleryFadeUp 0.45s ease-out both;
}

.home-gallery-container.is-visible .home-gallery-item-lg {
    animation-delay: 0.04s;
}

.home-gallery-container.is-visible .home-gallery-item-top {
    animation-delay: 0.14s;
}

.home-gallery-container.is-visible .home-gallery-item-bottom-left {
    animation-delay: 0.22s;
}

.home-gallery-container.is-visible .home-gallery-item-bottom-right {
    animation-delay: 0.3s;
}

@keyframes galleryFadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.home-about .about-image img {
    transition: transform 0.35s ease;
}

.home-about .about-image:hover img {
    transform: scale(1.03);
}

.home-booking-logo {
    transition: transform 0.3s ease;
}

.home-booking:hover .home-booking-logo {
    transform: translateY(-4px);
}

.home-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.85s ease, transform 0.85s ease;
    transition-delay: var(--reveal-delay, 0ms);
}

.home-reveal-left {
    transform: translateX(-42px);
}

.home-reveal-right {
    transform: translateX(42px);
}

.home-reveal-up {
    transform: translateY(28px);
}

.home-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .home-reveal {
        transform: none;
        transition: opacity 0.25s ease;
    }

    .home-gallery-item,
    .home-gallery-item img {
        transition: none;
        animation: none !important;
    }
}

.home-gallery-item-lg {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
}

.home-gallery-item-top {
    grid-column: 2 / 4;
    grid-row: 1 / 2;
}

.home-gallery-item-bottom-left {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
}

.home-gallery-item-bottom-right {
    grid-column: 3 / 4;
    grid-row: 2 / 3;
}

@media (max-width: 1100px) {
    .home-services .home-services-container h2 {
        font-size: 30px;
    }

    .home-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-about .about-row {
        gap: 28px;
    }

    .home-about .about-right h1 {
        font-size: 42px;
    }

    .home-about .about-right p {
        font-size: 18px;
    }
}

@media (max-width: 900px) {
    .home-about .about-row {
        flex-wrap: wrap;
    }

    .home-about .about-left,
    .home-about .about-right {
        flex: 1 1 100%;
        min-width: 0;
    }

    .home-about .about-right h1 {
        font-size: 34px;
    }

    .home-about .about-right p {
        font-size: 16px;
    }

    .home-booking-container h2 {
        font-size: 36px;
    }

    .home-gallery-container h2 {
        font-size: 36px;
    }

    .home-gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        max-height: none;
    }

    .home-gallery-item-lg {
        grid-column: 1 / 3;
        grid-row: auto;
    }

    .home-gallery-item-top,
    .home-gallery-item-bottom-left,
    .home-gallery-item-bottom-right {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 700px) {
    .home-services {
        padding: 0px;
    }

    .home-services .home-services-container h2 {
        font-size: 30px;
    }

    .home-services-grid {
        grid-template-columns: 1fr;
    }

    .home-service-card p {
        font-size: 16px;
    }

    .home-booking-container {
        min-height: 240px;
    }

    .home-booking-logo {
        width: 66px;
    }

    .home-booking-container h2 {
        font-size: 28px;
    }

    .home-booking-link {
        font-size: 14px;
    }

    .home-gallery {
        padding-top: 34px;
    }

    .home-gallery-container h2 {
        font-size: 30px;
    }

    .home-gallery-grid {
        grid-template-columns: 1fr;
    }

    .home-gallery-item-lg {
        grid-column: auto;
    }
}

/* ---------- Reviews (giá»¯ Ä‘Æ¡n giáº£n) ---------- */
.reviews {
    background: linear-gradient(180deg,
            rgba(255, 255, 255, 0.25),
            rgba(250, 245, 240, 0.7));
    padding:  20px;
    margin-top: 40px;
    margin-bottom: 40px;
}

.reviews .inner {
    max-width: var(--page-max);
    margin: 0 auto;
    text-align: center;
    padding: 0 20px;
}

.reviews h2 {
    font-size: 26px;
    margin: 0 0 8px;
    font-weight: 500;
}

.reviews p {
    color: var(--muted);
    margin: 0 0 30px;
}

.review-swiper {
    padding-bottom: 40px;
    /* chá»«a chá»— cho dots */
}

.review-wrapper {
    display: flex;
}

.review-slide {
    display: flex;
    height: auto;
    /* Ä‘áº£m báº£o auto */
}

.review-swiper .swiper-pagination-bullet {
    background: #dddcdc;
    opacity: 1;
    width: 14px;
    /* tÄƒng size ngang */
    height: 14px;
    /* tÄƒng size dá»c */
    margin: 0 6px !important;
    border-radius: 50%;
    transition: all 0.3s ease;
    /* hiá»‡u á»©ng mÆ°á»£t khi Ä‘á»•i tráº¡ng thÃ¡i */
}

/* cháº¥m active */
.review-swiper .swiper-pagination-bullet-active {
    background: #747474;
}

.review-swiper .swiper-slide {
    width: auto;
    /* quan trá»ng: Ä‘á»ƒ Swiper quyáº¿t Ä‘á»‹nh */
    max-width: none;
    box-shadow: none;
    /* tÃ¹y Ã½, náº¿u báº¡n muá»‘n bá» shadow */
}

.card {
    background: #fff;
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
    text-align: left;
    display: flex;
    flex-direction: column;
}

.card-header {
    display: flex;
    align-items: center;
    /* cÄƒn giá»¯a avatar vÃ  info theo chiá»u dá»c */
    margin-bottom: 12px;
}

.card .avatar {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 12px;
    /* khoáº£ng cÃ¡ch avatar â†” info */
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.card .info h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}

.card .info .stars {
    color: #f1c40f;
    margin-top: 4px;
    font-size: 14px;
}

.card p {
    color: #5b5b5b;
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

/* Responsive */
@media (max-width: 900px) {
    .about-row {
        gap: 20px;
    }

    .about-right {
        order: 2;
    }

    .about-left {
        order: 1;
    }

    .about-banner {
        padding: 10px 28px;
        font-size: 22px;
        bottom: -30px;
    }

    .container {
        padding-top: 60px;
    }
}

@media (max-width: 520px) {
    .about-banner {
        bottom: -24px;
        padding: 8px 20px;
        font-size: 20px;
    }

    .about-right {
        flex-basis: 100%;
    }

    .about-left {
        flex-basis: 100%;
    }

    .card {
        width: 100%;
    }
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  max-width: 1000px;
  margin: 60px auto; /* cÄƒn giá»¯a gallery */
}

.gallery-item {
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  background: #fff;
}

.gallery-item a {
  display: block; /* cho link chiáº¿m toÃ n bá»™ khung */
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.gallery-item:hover img {
  transform: scale(1.05);
}


/* Responsive */
@media (max-width: 900px) {
    .gallery {
        grid-template-columns: repeat(2, 1fr);
        /* 2 cá»™t */
        padding: 0 var(--side-padding);

    }
}

@media (max-width: 600px) {
    .gallery {
        grid-template-columns: 1fr;
        /* 1 cá»™t */
        padding: 0 var(--side-padding);

    }
}

.service-wrapper {
    background: url('/assets/images/service/backgroup-service.png') no-repeat center center fixed;
    background-size: cover;
    padding-top: 0px;
    padding-bottom: 10px;
}
.menu-section{
    opacity: 0.8;
}
.menu-container {
    max-width: 1200px;
    margin: 0 auto 60px;
    background: #f8ebdc;
    padding: 40px;
    border-radius: 16px;
    backdrop-filter: blur(6px);
    /* hiá»‡u á»©ng blur nháº¹ */
}

h2 {
    text-align: center;
    margin-bottom: 30px;
    font-size: 36px;
    letter-spacing: 1px;
}

/* 2 cá»™t */
.menu-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 30px; 
    row-gap: 0;
}

.menu-subsection {
    margin-bottom: 30px;
}

.menu-subsection h3 {
    margin-bottom: 10px;
    font-size: 28px;
    border-bottom: 2px solid #ccc;
    padding-bottom: 5px;
    font-weight: 600;

}
.menu-subsection small {
    font-size: 18px;
    font-style: italic;
}
.menu-item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 6px 0;
    border-bottom: 1px dotted #ddd;
}

.menu-item span {
    font-size: 22px;
    /* font-weight: 700; */
}
.menu-item small {
    font-weight: 500;
    font-size: 18px;
    font-style: italic;

}
.price {
    font-weight: bold;
    white-space: nowrap;
}
.menu-item-feature {
    margin-top: 12px;
    border-bottom-color: #c7b6a6;
}
.menu-item-feature span {
    font-weight: 600;
}
.menu-details {
    margin: 8px 0 18px;
    padding-left: 22px;
    color: #4a4037;
}
.menu-details li {
    margin: 4px 0;
    font-size: 17px;
    line-height: 1.45;
}

/* Responsive */
@media (max-width: 900px) {
    .menu-container {
        padding: 30px;
        margin: 0 auto 10px;
    }

    h2 {
        font-size: 1.7rem;
    }
.menu-subsection h3{
        font-size: 1.3rem;

}
.menu-subsection small{
        font-size: 0.9rem;

}
    .menu-item span {
        font-size: 1rem;
    }
    .menu-item small {
        font-size: 0.9rem;
    }
    .menu-details li {
        font-size: 0.95rem;
    }
}

@media (max-width: 600px) {
    .menu-section {
        /* padding: 40px var(--side-padding); */
    }

    .menu-grid {
        grid-template-columns: 1fr;
        /* 1 cá»™t */
    }

    h2 {
        font-size: 1.5rem;
    }
}

.contact-section {
    max-width: 1200px;
    margin: 40px auto;
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.contact-left {
    flex: 1;
}

.contact-left img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.contact-right {
    flex: 1;
    background: url('/assets/images/contact/bacgroud-contact.png') no-repeat center center/cover;
    color: #333;
    padding: 40px;
}

.contact-right h2 {
    margin-top: 0;
    margin-bottom: 15px;
}

.contact-info p {
    margin: 6px 0;
    line-height: 1.8;

}

.contact-info a {
    color: inherit;
    text-decoration: none;
}

.business-hours {
    margin-top: 20px;
}

.business-hours p {
    margin: 5px 0;
    line-height: 1.8;
}

.social-icons {
    margin-top: 20px;
}

.social-icons a {
    margin-right: 10px;
    font-size: 20px;
    text-decoration: none;
    color: #333;
}


.map-section {
    max-width: 1200px;
    margin: 20px auto;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.map-section iframe {
    width: 100%;
    height: 350px;
    border: none;
}

/* Responsive dÆ°á»›i 900px */
@media (max-width: 900px) {
    .contact-section {
        flex-direction: column;
    }

    .contact-left,
    .contact-left img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    .contact-right {
        min-height: auto;
    }
}

/* Responsive dÆ°á»›i 600px */
@media (max-width: 600px) {
    .contact-right {
        padding: 20px;
        font-size: 14px;
    }

    .contact-right h2 {
        font-size: 20px;
    }

    .business-hours h3 {
        font-size: 16px;
    }

    .social-icons a {
        font-size: 18px;
    }
}
.lb-close {
    display: none !important;
}

/* tráº¡ng thÃ¡i máº·c Ä‘á»‹nh (PC) */
.btn-egift  { display: inline-block; }
.btn-services { display: none; }
@media (max-width: 900px) {
  .btn-egift  { display: none !important; }   /* !important Ä‘á»ƒ override inline style náº¿u cÃ³ */
  .btn-services{ display: inline-block !important; }
}

/* Unified hover/focus states for buttons and button-like links */
.btn-appoint,
.home-services-btn,
.btn-egift,
.btn-services,
.header-actions .primary,
.nav-mobile .primary {
    transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.btn-appoint:hover,
.home-services-btn:hover,
.btn-egift:hover,
.btn-services:hover,
.header-actions .primary:hover,
.nav-mobile .primary:hover {
    transform: translateY(-2px);
    background: #6f4423;
    box-shadow: 0 10px 22px rgba(45, 26, 12, 0.26);
}

.btn-appoint:active,
.home-services-btn:active,
.btn-egift:active,
.btn-services:active,
.header-actions .primary:active,
.nav-mobile .primary:active {
    transform: translateY(0);
}

.btn-appoint:focus-visible,
.home-services-btn:focus-visible,
.btn-egift:focus-visible,
.btn-services:focus-visible,
.header-actions .primary:focus-visible,
.nav-mobile .primary:focus-visible,
.home-booking-link:focus-visible {
    outline: 2px solid #85552D;
    outline-offset: 2px;
}

.home-booking-link {
    transition: color 0.25s ease, text-decoration-color 0.25s ease, opacity 0.25s ease;
}

.home-booking-link:hover {
    color: #ffe9cf;
    text-decoration-color: #ffe9cf;
}



