 :root{--brown:#4a2c1d;--dark:#2b1a12;--light:#f8f5f0;--cream:#eee7dc;--muted:#756c65;--border:#e5ddd2}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;color:#2d2723;background:#fff;font-family:"DM Sans",sans-serif}
h1,h2,h3,.navbar-brand,.footer-logo{font-family:"Playfair Display",serif}.site-header{background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid #eee}.navbar{min-height:72px}
.navbar-brand{color:var(--dark);font-size:1.35rem;font-weight:700}.logo-placeholder{width:42px;height:42px;border:1px dashed #80573c;color:#80573c;border-radius:50%;display:grid;place-items:center;font:600 .58rem "DM Sans"}
.nav-link{color:var(--dark);font-weight:600}.btn-brown{background:var(--brown);border-color:var(--brown);color:#fff}.btn-brown:hover{background:var(--dark);color:#fff}
.hero-section{min-height:72vh;display:flex;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(43,26,18,.98),rgba(43,26,18,.7),rgba(43,26,18,.4)),linear-gradient(135deg,#62402d,#2b1a12)}
.hero-content{max-width:680px;padding:7rem 0 6rem}.eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.18em;font-weight:700;margin-bottom:1rem}.eyebrow.brown{color:#80573c}.eyebrow.light{color:#eee7dc}
.hero-section h1{font-size:clamp(3.2rem,8vw,6.5rem);line-height:.95;margin:0 0 1.4rem}.hero-section h1 em{font-style:normal;color:#ead7c4}.hero-text{max-width:540px;color:#eee;font-size:1.05rem;line-height:1.75}
.hero-btn{border-radius:999px;padding:.85rem 1.35rem;font-weight:700}.hero-meta{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:2rem;color:#ddd;font-size:.82rem}
.quick-info{background:var(--brown);color:#fff}.info-item{padding:1rem .5rem;min-height:82px;display:flex;justify-content:center;align-items:center;gap:.65rem;border-right:1px solid #ffffff22;font-size:.76rem;line-height:1.25;text-align:left}.info-item:last-child{border:0}
.section-padding{padding:5.5rem 0}.section-heading{margin-bottom:2rem}.section-heading h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:.55rem}.section-heading p{color:var(--muted)}
.menu-section{background:var(--light)}.search-wrap{max-width:620px;position:relative}.search-wrap>i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--muted);z-index:2}.search-wrap input{height:52px;border-radius:999px;padding:0 3.2rem;border:1px solid var(--border)}
.search-wrap input:focus{border-color:#9b6a48;box-shadow:0 0 0 .2rem rgba(128,87,60,.12)}.search-clear{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#756c65;font-size:1.3rem}
.category-scroll{display:flex;gap:.55rem;overflow-x:auto;padding:.25rem 0 1rem;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}.category-btn{flex:0 0 auto;border:1px solid var(--border);background:#fff;color:var(--brown);border-radius:999px;padding:.62rem 1rem;font-size:.8rem;font-weight:700}.category-btn.active,.category-btn:hover{background:var(--brown);border-color:var(--brown);color:#fff}
.menu-result-label{display:flex;justify-content:space-between;margin:1rem 0;color:var(--muted);font-size:.82rem}.menu-result-label span:first-child{color:var(--dark);font-weight:700;font-size:1.05rem}
.menu-card{height:100%;background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;transition:.2s}.menu-card:hover{transform:translateY(-4px);box-shadow:0 12px 35px rgba(53,34,22,.08)}

/* Menu card images */
.menu-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

/* Keep image area fixed and clean */
.menu-image {
    width: 100%;
    aspect-ratio: 1.45 / 1;
    overflow: hidden;
    position: relative;
    background: linear-gradient(135deg, #e9dfd2, #d7c5b3);
}

/* Prevent broken/empty images from affecting card layout */
.menu-image img[src=""],
.menu-image img:not([src]) {
    display: none;
}

.menu-body{padding:1rem}.menu-category{color:#80573c;font-size:.65rem;letter-spacing:.1em;font-weight:700;text-transform:uppercase}.menu-name{font-size:1.18rem;margin:.3rem 0}.menu-description{color:var(--muted);font-size:.78rem;line-height:1.5;min-height:2.35em}.menu-price{color:var(--dark);font-weight:700}
.empty-state{text-align:center;padding:4rem}.reviews-section{background:var(--cream)}.review-panel{background:var(--brown);color:#fff;border-radius:28px;padding:clamp(2rem,5vw,4rem)}.review-panel h2{font-size:clamp(2rem,4vw,3.2rem)}.stars,.review-stars{color:#f1c85b;letter-spacing:.1em}.rating-placeholder{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}.rating-placeholder strong{font-size:2rem}
.review-card{background:#ffffff12;border:1px solid #ffffff26;border-radius:20px;padding:1.5rem}.review-quote{font:1.3rem/1.55 "Playfair Display";margin:1rem 0}.review-author{display:flex;align-items:center;gap:.75rem}.review-author small{display:block;color:#ffffff99}.review-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--brown);font-weight:700}.btn-review{border:1px solid #ffffff55;color:#fff;border-radius:999px;padding:.75rem 1.1rem;font-weight:700}.btn-review:hover{background:#fff;color:var(--brown)}
.visit-section{background:#fff}.visit-card{height:100%;border:1px solid var(--border);border-radius:20px;padding:1.5rem;background:var(--light)}.visit-icon{font-size:1.5rem;color:#80573c}.visit-card h3{font-size:1.3rem;margin:1rem 0 .5rem}.visit-card p{color:var(--muted);font-size:.86rem;line-height:1.7}.visit-card a{color:var(--brown);font-weight:700;font-size:.82rem;text-decoration:none}
.footer{background:var(--dark);color:#ffffffbb;padding:3rem 0 5rem}.footer-logo{color:#fff;font-size:1.8rem}.mobile-action-bar{position:fixed;z-index:1050;bottom:0;left:0;right:0;background:#fffffff5;border-top:1px solid var(--border);height:62px;display:grid;grid-template-columns:repeat(3,1fr);box-shadow:0 -8px 25px #2b1a1214}.mobile-action-bar a{color:var(--brown);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;font-size:.65rem;font-weight:700}
@media(max-width:575.98px){.navbar{min-height:64px}.navbar-brand{font-size:1.1rem}.logo-placeholder{width:36px;height:36px}.hero-section{min-height:78vh}.hero-content{padding:5.5rem 0 4rem}.hero-section h1{font-size:3.4rem}.hero-text{font-size:.92rem}.hero-btn{font-size:.82rem;padding:.75rem 1rem}.hero-meta{flex-direction:column;gap:.55rem;font-size:.75rem}.section-padding{padding:4rem 0}.info-item{font-size:.62rem;min-height:72px}.menu-body{padding:.85rem}.menu-name{font-size:1.05rem}.menu-description{font-size:.72rem}.review-panel{border-radius:20px}}

.cafe-logo {
    width: 52px;
    height: 52px;
    object-fit: contain;
    background: transparent;
    display: block;
}
/* =========================================
   FEEDBACK SECTION
========================================= */

.feedback-section {
    background: #f7f3ed;
}

.feedback-heading {
    max-width: 700px;
    margin: 0 auto 45px;
    text-align: center;
}

.feedback-heading h2 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    margin: 15px 0;
}

.feedback-heading p {
    color: #765f51;
}


.feedback-card {
    max-width: 650px;
    margin: auto;
    background: #fff;
    border-radius: 24px;
    padding: 35px;
    box-shadow: 0 15px 45px rgba(60, 35, 20, 0.08);
}


.form-group {
    margin-bottom: 25px;
}


.form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 9px;
}


.form-group label span {
    font-weight: 400;
    opacity: 0.6;
}


.form-group input,
.form-group textarea {
    width: 100%;
    border: 1px solid #dfd4ca;
    border-radius: 12px;
    padding: 14px 16px;
    font-family: inherit;
    font-size: 1rem;
    outline: none;
    background: #fff;
}


.form-group input:focus,
.form-group textarea:focus {
    border-color: #5b321f;
}


.rating-stars {
    display: flex;
    gap: 6px;
}


.rating-stars button {
    border: none;
    background: transparent;
    font-size: 2rem;
    color: #d7ccc3;
    cursor: pointer;
    padding: 0;
    transition: transform 0.15s ease;
}


.rating-stars button:hover {
    transform: scale(1.1);
}


.rating-stars button.active {
    color: #c58a35;
}


.feedback-submit {
    width: 100%;
    border: none;
    border-radius: 12px;
    background: #5b321f;
    color: white;
    padding: 15px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
}


.feedback-submit:hover {
    background: #452515;
}


.feedback-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}


.feedback-message {
    margin-top: 18px;
    text-align: center;
    font-weight: 600;
}


@media (max-width: 576px) {

    .feedback-card {
        padding: 25px 20px;
        border-radius: 18px;
    }

    .rating-stars button {
        font-size: 1.8rem;
    }

}

/* =====================================
   CUSTOMER REVIEWS SCROLL CONTAINER
   ===================================== */

.reviews-wrapper {
    width: 100%;
}

.reviews-scroll-container {
    height: 420px;
    overflow-y: auto;
    overflow-x: hidden;

    padding: 18px;

    border-radius: 22px;

    background: rgba(255, 255, 255, 0.08);

    border: 1px solid rgba(255, 255, 255, 0.18);

    scroll-behavior: smooth;
}


/* Individual review */

.review-card {
    background: #ffffff;

    color: #382117;

    border-radius: 16px;

    padding: 20px;

    margin-bottom: 14px;

    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.review-card:last-child {
    margin-bottom: 0;
}


/* Review header */

.review-header {
    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 15px;

    margin-bottom: 7px;
}

.review-name {
    font-size: 16px;

    font-weight: 700;
}

.review-date {
    font-size: 12px;

    color: #8b7569;
}


/* Stars */

.review-stars {
    color: #d79b35;

    font-size: 18px;

    letter-spacing: 2px;

    margin-bottom: 8px;
}


/* Review text */

.review-message {
    color: #66544a;

    font-size: 14px;

    line-height: 1.6;
}


/* Loading */

.reviews-loading {
    height: 100%;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #ffffff;

    font-size: 15px;
}


/* Empty */

.reviews-empty {
    height: 100%;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    color: #ffffff;

    padding: 30px;
}


/* Scrollbar */

.reviews-scroll-container::-webkit-scrollbar {
    width: 7px;
}

.reviews-scroll-container::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.08);

    border-radius: 10px;
}

.reviews-scroll-container::-webkit-scrollbar-thumb {
    background: #8b4b2d;

    border-radius: 10px;
}

.reviews-scroll-container::-webkit-scrollbar-thumb:hover {
    background: #66351f;
}


/* =====================================
   MOBILE
   ===================================== */

@media (max-width: 768px) {

    .reviews-scroll-container {
        height: 350px;

        padding: 14px;

        border-radius: 18px;
    }

    .review-card {
        padding: 16px;

        border-radius: 14px;
    }

    .review-header {
        align-items: flex-start;

        flex-direction: column;

        gap: 4px;
    }

    .review-message {
        font-size: 14px;
    }
}