/* Nasi Lemak Kukus Bilal v2 - responsive multi-page  */
:root{--g950:#052b13;--g900:#093a1a;--g800:#0f5425;--g700:#176b2d;--g600:#298941;--yellow:#ffd72d;--cream:#fffaf0;--ink:#17221a;--muted:#69736b;--white:#fff;--line:#e2e7df;--red:#c7241c;--shadow:0 22px 65px rgba(6,50,20,.14);--shadow-sm:0 9px 30px rgba(6,50,20,.08);--container:min(1200px,calc(100% - 34px))}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.62;overflow-x:hidden}body.lock{overflow:hidden}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4{font-family:"Manrope",sans-serif;line-height:1.1;margin:0}p{margin:0}.container{width:var(--container);margin:auto}.section{padding:86px 0}.section-sm{padding:60px 0}.bg-white{background:#fff}.bg-green{background:var(--g950);color:#fff}.muted{color:var(--muted)}
.kicker{display:inline-flex;align-items:center;gap:8px;background:#e9f6eb;color:var(--g700);padding:8px 13px;border-radius:999px;font-size:.74rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;margin-bottom:14px}.bg-green .kicker{background:rgba(255,255,255,.12);color:var(--yellow)}.section-title{font-size:clamp(2rem,4.8vw,3.8rem);letter-spacing:-.055em;max-width:860px}.section-title em{font-style:normal;color:var(--g600)}.section-lead{font-size:1.03rem;color:var(--muted);max-width:720px;margin-top:15px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.section-head .section-lead{max-width:480px}
.btn{border:0;min-height:47px;padding:0 19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:900;transition:.2s;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--g700);color:#fff;box-shadow:0 10px 24px rgba(23,107,45,.24)}.btn-yellow{background:var(--yellow);color:#172018}.btn-white{background:#fff;color:var(--g800)}.btn-dark{background:#122018;color:#fff}.btn-outline{background:transparent;border:1px solid rgba(23,107,45,.24);color:var(--g800)}.btn-soft{background:#e9f6eb;color:var(--g700)}.btn-danger{background:#ffebea;color:#b71e17}.btn-sm{min-height:37px;padding:0 13px;font-size:.78rem}.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink)}
.topbar{background:var(--g950);color:#e0eee3;font-size:.78rem}.topbar .container{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar i{color:var(--yellow);margin-right:6px}.topbar-right{display:flex;gap:17px}.header{position:sticky;top:0;z-index:90;background:rgba(255,250,240,.94);backdrop-filter:blur(17px);border-bottom:1px solid rgba(8,55,22,.08)}.navbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:17px}.brand{display:flex;align-items:center;gap:11px}.brand img{width:53px;height:53px;border-radius:50%;object-fit:cover;background:var(--yellow);box-shadow:0 7px 20px rgba(8,55,22,.18)}.brand strong{display:block;color:var(--g900);font:800 .96rem/1.05 "Manrope"}.brand small{font-size:.61rem;color:var(--muted);font-weight:900;letter-spacing:.07em;text-transform:uppercase}.nav{display:flex;align-items:center;gap:2px}.nav>a,.drop>button{border:0;background:transparent;padding:10px 10px;border-radius:999px;font-size:.82rem;font-weight:800;color:#344238}.nav>a:hover,.nav>a.active,.drop>button:hover{background:#e9f5e9;color:var(--g800)}.drop{position:relative}.drop>button{display:flex;gap:6px;align-items:center}.drop-menu{position:absolute;top:47px;left:0;width:220px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:8px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-7px);transition:.2s}.drop:hover .drop-menu,.drop:focus-within .drop-menu{opacity:1;visibility:visible;transform:none}.drop-menu a{display:block;padding:10px;border-radius:11px;font-size:.8rem;font-weight:800}.drop-menu a:hover{background:#edf7ee}.nav-actions{display:flex;gap:8px;align-items:center}.cart-btn{position:relative}.cart-count{position:absolute;right:-6px;top:-6px;min-width:20px;height:20px;border-radius:999px;background:var(--red);color:#fff;font-size:.65rem;font-weight:900;display:grid;place-items:center;border:2px solid var(--cream)}.menu-btn{display:none}.mobile-nav{display:none}
.hero{background:#072d15;position:relative;overflow:hidden}.hero-slider{position:relative;min-height:690px}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:.65s}.hero-slide.active{opacity:1;visibility:visible}.hero-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,27,10,.94) 0%,rgba(3,27,10,.76) 43%,rgba(3,27,10,.23) 77%,rgba(3,27,10,.08) 100%)}.hero-inner{position:relative;z-index:2;min-height:690px;display:flex;align-items:center;padding:70px 0 112px}.hero-copy{max-width:720px;color:#fff}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border-radius:999px;font-weight:900;font-size:.74rem;text-transform:uppercase;letter-spacing:.065em;margin-bottom:18px}.hero-copy h1{font-size:clamp(3.15rem,7.4vw,6.65rem);letter-spacing:-.067em}.hero-copy h1 em{font-style:normal;color:var(--yellow)}.hero-copy p{font-size:clamp(.98rem,2vw,1.14rem);max-width:650px;color:#e2ede4;margin-top:19px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.hero-facts{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}.hero-fact{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#dbe8dd}.hero-fact i{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.11);display:grid;place-items:center;color:var(--yellow)}.hero-arrow{position:absolute;top:50%;z-index:4;transform:translateY(-50%);width:47px;height:47px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.18);backdrop-filter:blur(8px);color:#fff;border-radius:50%}.hero-arrow.prev{left:18px}.hero-arrow.next{right:18px}.hero-dots{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:7px;padding:9px 12px;border-radius:999px;background:rgba(0,0,0,.24);backdrop-filter:blur(8px)}.hero-dot{width:8px;height:8px;border:0;border-radius:20px;padding:0;background:rgba(255,255,255,.44)}.hero-dot.active{width:29px;background:var(--yellow)}.hero-count{position:absolute;z-index:4;right:max(24px,calc((100vw - 1200px)/2));bottom:45px;background:#fff;color:var(--ink);padding:13px 16px;border-radius:16px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:center}.hero-count strong{font:900 1.7rem/1 "Manrope";color:var(--g700)}.hero-count span{font-size:.68rem;color:var(--muted)}
.page-hero{position:relative;min-height:390px;background-size:cover;background-position:center;display:flex;align-items:center;color:#fff;overflow:hidden}.page-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,28,11,.94),rgba(4,28,11,.58),rgba(4,28,11,.16))}.page-hero .container{position:relative;z-index:2;padding:70px 0}.page-hero h1{font-size:clamp(2.7rem,6vw,5.3rem);letter-spacing:-.06em;max-width:850px}.page-hero h1 em{font-style:normal;color:var(--yellow)}.page-hero p{max-width:690px;color:#dce9df;font-size:1.03rem;margin-top:16px}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.75rem;font-weight:800;color:#c7d9ca;margin-bottom:17px}.breadcrumb i{font-size:.55rem;color:var(--yellow)}
.trust{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-bottom:1px solid var(--line)}.trust-item{display:flex;gap:12px;align-items:center;padding:21px;border-right:1px solid var(--line)}.trust-item:last-child{border-right:0}.trust-item i{font-size:1.35rem;color:var(--g600)}.trust-item strong{display:block;font-size:.87rem}.trust-item span{font-size:.73rem;color:var(--muted)}
.announcement-strip{padding:24px 0;background:#fff}.announcement-feature{display:grid;grid-template-columns:230px 1fr auto;gap:20px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm)}.announcement-feature img{width:100%;height:130px;object-fit:cover;border-radius:16px}.meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:7px}.tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e9f6eb;color:var(--g700);font-size:.67rem;font-weight:900}.tag.red{background:#ffebea;color:#b8231a}.tag.yellow{background:#fff1b6;color:#866500}.announcement-feature h3{font-size:1.22rem}.announcement-feature p{font-size:.84rem;color:var(--muted);margin-top:7px}.announcement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.announcement-card{background:#fff;border:1px solid var(--line);border-radius:21px;overflow:hidden;box-shadow:var(--shadow-sm)}.announcement-card img{width:100%;height:205px;object-fit:cover}.announcement-card-body{padding:19px}.announcement-card h3{font-size:1.05rem;margin-top:8px}.announcement-card p{font-size:.82rem;color:var(--muted);margin-top:8px}.announcement-card time{font-size:.69rem;color:var(--muted);font-weight:800}
.menu-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:24px}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px;font-size:.77rem;font-weight:900;white-space:nowrap}.chip.active{background:var(--g700);color:#fff;border-color:var(--g700)}.search{height:44px;min-width:min(100%,280px);background:#fff;border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:9px;padding:0 14px}.search input{border:0;outline:0;background:transparent;width:100%}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:21px}.menu-card{background:#fff;border:1px solid rgba(8,55,22,.08);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.24s;display:flex;flex-direction:column}.menu-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.menu-media{height:220px;position:relative;overflow:hidden;background:#edf2eb}.menu-media img{width:100%;height:100%;object-fit:cover;transition:.4s}.menu-card:hover .menu-media img{transform:scale(1.05)}.menu-badge{position:absolute;left:12px;top:12px;padding:6px 9px;border-radius:999px;background:rgba(12,80,34,.9);color:#fff;font-size:.65rem;font-weight:900}.menu-badge.hot{background:rgba(194,37,28,.92)}.fav{position:absolute;right:12px;top:12px;width:37px;height:37px;border:0;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}.fav.active{color:var(--red)}.menu-body{padding:18px;display:flex;flex-direction:column;flex:1}.menu-cat{font-size:.67rem;font-weight:900;color:var(--g600);text-transform:uppercase;letter-spacing:.075em}.menu-card h3{font-size:1.07rem;margin-top:5px}.menu-card p{font-size:.81rem;color:var(--muted);margin-top:8px;min-height:42px}.menu-foot{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.price{font:900 1.18rem/1 "Manrope";color:var(--g800)}.add{width:41px;height:41px;border:0;border-radius:13px;background:var(--yellow);display:grid;place-items:center}.note{display:flex;gap:11px;padding:16px 18px;border-radius:16px;background:#fff1c1;color:#665009;font-size:.79rem;margin-top:24px}
.carousel-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 18px}.carousel-track::-webkit-scrollbar{display:none}.hot-card{min-width:330px;scroll-snap-align:start;background:#fff;border-radius:23px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);position:relative}.hot-card img{width:100%;height:220px;object-fit:cover}.hot-card-body{padding:18px}.hot-card h3{font-size:1.1rem}.hot-card p{font-size:.81rem;color:var(--muted);margin-top:7px}.rank{position:absolute;left:13px;top:13px;background:var(--yellow);width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font:900 .95rem "Manrope";z-index:2}.carousel-controls{display:flex;gap:8px}
.benefit-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.benefit-card{background:#fff;border:1px solid var(--line);border-radius:21px;overflow:hidden;box-shadow:var(--shadow-sm)}.benefit-card img{height:175px;width:100%;object-fit:cover}.benefit-body{padding:17px}.benefit-num{width:37px;height:37px;border-radius:12px;background:var(--yellow);display:grid;place-items:center;font-weight:900;margin-bottom:12px}.benefit-card h3{font-size:.98rem}.benefit-card p{font-size:.77rem;color:var(--muted);margin-top:7px}.detail-benefit{display:grid;grid-template-columns:1fr 1.05fr;gap:0;margin-bottom:24px;background:#fff;border:1px solid var(--line);border-radius:27px;overflow:hidden;box-shadow:var(--shadow-sm)}.detail-benefit:nth-child(even){grid-template-columns:1.05fr 1fr}.detail-benefit:nth-child(even) .detail-img{order:2}.detail-img{min-height:330px;background-size:cover;background-position:center}.detail-copy{padding:35px;display:flex;flex-direction:column;justify-content:center}.detail-copy h2{font-size:1.72rem}.detail-copy p{color:var(--muted);margin-top:11px}.pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.pill{padding:7px 10px;border-radius:999px;background:#e9f6eb;color:var(--g700);font-size:.68rem;font-weight:900}
.split{display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.split-img{min-height:500px;background-size:cover;background-position:center}.split-copy{padding:42px;display:flex;flex-direction:column;justify-content:center}.split-copy h2{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.045em}.split-copy p{color:var(--muted);margin-top:15px}.feature-list{display:grid;gap:12px;margin-top:22px}.feature{display:flex;gap:12px;padding:13px;border-radius:15px;background:#f3f8f1}.feature i{color:var(--g600);margin-top:4px}
.catering-banner{display:grid;grid-template-columns:.95fr 1.05fr;border-radius:31px;overflow:hidden;background:linear-gradient(135deg,#c81f18,#98110d);color:#fff;box-shadow:var(--shadow)}.catering-img{min-height:580px;background:url('../images/bilal-catering.jpg') center/contain no-repeat;background-color:#f5e7ce;padding:18px}.catering-copy{padding:43px;display:flex;flex-direction:column;justify-content:center}.catering-copy h2{font-size:clamp(2rem,4.5vw,3.75rem);letter-spacing:-.05em}.catering-copy p{color:#ffe3e1;margin-top:16px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.mini{display:flex;gap:9px;padding:12px;border-radius:14px;background:rgba(255,255,255,.09);font-size:.78rem;font-weight:800}.mini i{color:var(--yellow)}.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.package{background:#fff;border:1px solid var(--line);border-radius:22px;padding:23px;box-shadow:var(--shadow-sm)}.package.featured{border:2px solid var(--yellow);transform:translateY(-8px)}.package h3{font-size:1.23rem}.package-price{font:900 2.15rem "Manrope";color:var(--g700);margin:14px 0}.package-price small{font-size:.73rem;color:var(--muted)}.package ul{padding-left:18px;color:var(--muted);font-size:.82rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.step{padding:21px;background:#fff;border:1px solid var(--line);border-radius:19px}.step span{width:41px;height:41px;border-radius:13px;background:var(--yellow);display:grid;place-items:center;font-weight:900;margin-bottom:13px}.step p{font-size:.79rem;color:var(--muted);margin-top:7px}
.member-banner{display:grid;grid-template-columns:1.05fr .95fr;border-radius:31px;overflow:hidden;background:var(--g900);color:#fff;box-shadow:var(--shadow)}.member-img{min-height:520px;background-size:cover;background-position:center center}.member-copy{padding:43px}.member-copy h2{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.05em}.member-copy h2 em{font-style:normal;color:var(--yellow)}.member-copy>p{color:#d2e3d4;margin-top:16px}.member-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.member-feature{display:flex;gap:9px;padding:12px;border-radius:14px;background:rgba(255,255,255,.09);font-size:.78rem;font-weight:800}.member-feature i{color:var(--yellow)}
.form-card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:26px;box-shadow:var(--shadow-sm)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.group{display:grid;gap:6px}.group.full{grid-column:1/-1}.group label{font-size:.74rem;font-weight:900}.control{width:100%;min-height:46px;border:1px solid #dce2d9;background:#fcfdf9;border-radius:12px;padding:10px 12px;outline:0}.control:focus{border-color:var(--g600);box-shadow:0 0 0 4px rgba(62,168,88,.1)}textarea.control{min-height:116px;resize:vertical}.form-note{font-size:.71rem;color:var(--muted);margin-top:11px}.form-message{margin-top:12px;font-size:.79rem;font-weight:800}.coupon-result{padding:18px;border:2px dashed var(--g600);border-radius:17px;background:#eef9ed;text-align:center}.coupon-code{font:900 1.8rem "Manrope";letter-spacing:.14em;color:var(--g800)}
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.testimonial{background:#fff;border:1px solid var(--line);border-radius:21px;padding:22px;box-shadow:var(--shadow-sm)}.stars{color:#efb200;letter-spacing:2px}.testimonial blockquote{margin:14px 0 18px;font-size:.9rem}.person{display:flex;align-items:center;gap:11px}.avatar{width:43px;height:43px;border-radius:50%;background:#e9f5e9;display:grid;place-items:center;font-weight:900;color:var(--g700)}.person strong{display:block}.person small{color:var(--muted)}
.location-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px}.info-card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:27px;box-shadow:var(--shadow-sm)}.info-list{display:grid;gap:16px;margin-top:20px}.info{display:flex;gap:11px}.info i{width:38px;height:38px;border-radius:12px;background:#e9f6eb;color:var(--g700);display:grid;place-items:center;flex:0 0 auto}.info strong{display:block;font-size:.81rem}.info span{font-size:.78rem;color:var(--muted)}.map{width:100%;min-height:440px;border:0;border-radius:23px;box-shadow:var(--shadow-sm)}.gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:230px 230px;gap:14px}.gallery img{width:100%;height:100%;object-fit:cover;border-radius:20px}.gallery img:first-child{grid-row:1/3}
.cta{padding:45px;border-radius:30px;background:linear-gradient(90deg,rgba(5,45,17,.97),rgba(18,108,45,.82)),url('../images/kedai-bilal-premium.jpg') center/cover;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:25px;box-shadow:var(--shadow)}.cta h2{font-size:clamp(2rem,4vw,3.15rem);letter-spacing:-.05em;max-width:720px}.cta p{color:#d9e7db;margin-top:11px}.cta-actions{display:flex;gap:9px;flex-wrap:wrap}
footer{background:#082d15;color:#d8e7db;padding:54px 0 23px}.footer-grid{display:grid;grid-template-columns:1.4fr .85fr .85fr 1fr;gap:31px}.footer-brand p{font-size:.81rem;color:#a9c1ae;margin-top:14px;max-width:380px}.footer-title{color:#fff;font-size:.87rem;margin-bottom:14px}.footer-links{display:grid;gap:9px}.footer-links a,.footer-links button,.footer-links span{color:#c2d6c5!important;font-size:.8rem}.footer-links a:hover,.footer-links button:hover{color:var(--yellow)!important}.footer-links button{border:0;background:transparent;padding:0;text-align:left}.socials{display:flex;gap:8px;margin-top:17px}.socials a{width:39px;height:39px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff!important}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:19px;display:flex;justify-content:space-between;gap:15px;color:#8fab94;font-size:.72rem}
.agent{position:fixed;right:17px;bottom:18px;z-index:120}.agent-button{border:0;background:#fff;border-radius:22px;padding:8px 13px 8px 8px;display:flex;align-items:center;gap:10px;box-shadow:0 17px 50px rgba(4,40,16,.25);color:var(--ink)}.agent-button img{width:52px;height:52px;border-radius:17px;object-fit:cover;object-position:center 22%}.agent-button strong{display:block;font-size:.81rem;text-align:left}.agent-button span{display:flex;align-items:center;gap:5px;font-size:.68rem;color:#4e6653}.online{width:7px;height:7px;border-radius:50%;background:#25d366}.agent-button>i{font-size:1.35rem;color:#25d366}.agent-chat{position:absolute;right:0;bottom:75px;width:320px;background:#fff;border-radius:22px;box-shadow:0 22px 75px rgba(3,30,11,.28);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transition:.2s}.agent-chat.open{opacity:1;visibility:visible;transform:none}.agent-head{background:var(--g800);color:#fff;padding:17px;display:flex;gap:11px;align-items:center}.agent-head img{width:48px;height:48px;border-radius:15px;object-fit:cover;object-position:center 22%}.agent-head strong{display:block}.agent-head small{color:#c9dfcd}.agent-body{padding:16px}.chat-message{background:#eff5ef;border-radius:15px 15px 15px 4px;padding:12px;font-size:.79rem}.chat-options{display:grid;gap:8px;margin-top:12px}.chat-options a{padding:10px 11px;border:1px solid var(--line);border-radius:12px;font-size:.75rem;font-weight:800}.chat-options a:hover{background:#e9f6eb}
.overlay{position:fixed;inset:0;background:rgba(3,24,9,.58);backdrop-filter:blur(4px);z-index:139;opacity:0;visibility:hidden;transition:.2s}.overlay.open{opacity:1;visibility:visible}.cart{position:fixed;right:0;top:0;bottom:0;width:min(430px,100%);background:#fff;z-index:140;transform:translateX(100%);transition:.26s;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.2)}.cart.open{transform:none}.drawer-head{padding:19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.drawer-body{padding:19px;overflow:auto;flex:1}.drawer-foot{padding:19px;border-top:1px solid var(--line)}.cart-empty{text-align:center;padding:55px 15px;color:var(--muted)}.cart-empty i{font-size:2.8rem;color:#cdd7ce}.cart-item{display:grid;grid-template-columns:63px 1fr auto;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}.cart-item img{width:63px;height:63px;border-radius:12px;object-fit:cover}.cart-item h4{font-size:.82rem}.cart-item small{color:var(--muted)}.qty{display:flex;align-items:center;gap:7px;margin-top:6px}.qty button{width:25px;height:25px;border:1px solid var(--line);border-radius:8px;background:#fff}.cart-total{display:flex;justify-content:space-between;font-weight:900;margin-bottom:13px}.modal{position:fixed;left:50%;top:50%;z-index:141;transform:translate(-50%,-47%) scale(.98);width:min(660px,calc(100% - 26px));max-height:91vh;overflow:auto;background:#fff;border-radius:23px;box-shadow:0 30px 100px rgba(0,0,0,.28);opacity:0;visibility:hidden;transition:.2s}.modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.modal-body{padding:22px}.toasts{position:fixed;right:16px;top:90px;z-index:170;display:grid;gap:9px}.toast{min-width:275px;max-width:360px;padding:13px 15px;border-radius:14px;background:#122319;color:#fff;box-shadow:var(--shadow);display:flex;gap:10px}.toast i{color:#62d77a}.toast.warning i{color:var(--yellow)}
/* dashboards */.dashboard-body{background:#f3f6f1}.dash-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#093718;color:#fff;padding:21px 16px;overflow:auto;display:flex;flex-direction:column;z-index:50}.dash-brand{display:flex;gap:10px;align-items:center;padding:4px 6px 21px}.dash-brand img{width:46px;height:46px;border-radius:50%;object-fit:cover}.dash-brand strong{font:800 .9rem "Manrope"}.dash-brand small{color:#a9c9af;font-size:.64rem}.dash-nav{display:grid;gap:4px}.dash-nav .nav-label{color:#74a27e;font-size:.63rem;text-transform:uppercase;letter-spacing:.085em;padding:16px 11px 6px}.dash-nav button,.dash-nav a{border:0;background:transparent;color:#c4dac8;border-radius:11px;padding:11px 12px;display:flex;gap:10px;align-items:center;text-align:left;font-weight:800;font-size:.8rem}.dash-nav button:hover,.dash-nav button.active,.dash-nav a:hover{background:rgba(255,255,255,.1);color:#fff}.spacer{flex:1}.side-note{background:rgba(255,255,255,.08);padding:14px;border-radius:14px;font-size:.71rem;color:#c2d8c6}.side-note strong{color:var(--yellow);display:block;margin-bottom:4px}.dash-main{min-width:0}.dash-top{height:74px;position:sticky;top:0;z-index:45;background:rgba(243,246,241,.92);backdrop-filter:blur(15px);border-bottom:1px solid #e2e7df;display:flex;align-items:center;justify-content:space-between;padding:0 25px}.dash-heading h1{font-size:1.27rem}.dash-heading p{font-size:.71rem;color:var(--muted)}.dash-user{display:flex;align-items:center;gap:10px}.dash-content{padding:24px;max-width:1500px;margin:auto}.dash-menu-btn{display:none}.dash-slider{position:relative;min-height:300px;border-radius:25px;overflow:hidden;background:#082d15;box-shadow:var(--shadow-sm)}.dash-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:.5s}.dash-slide.active{opacity:1;visibility:visible}.dash-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,29,11,.93),rgba(4,29,11,.51),rgba(4,29,11,.14))}.dash-slide-copy{position:relative;z-index:2;min-height:300px;padding:34px;display:flex;flex-direction:column;justify-content:center;color:#fff;max-width:660px}.dash-slide-copy small{font-weight:900;color:var(--yellow);text-transform:uppercase;letter-spacing:.08em}.dash-slide-copy h2{font-size:clamp(1.75rem,3.5vw,3rem);margin-top:7px}.dash-slide-copy p{color:#dce8de;margin-top:10px}.dash-slide-copy .btn{align-self:flex-start;margin-top:18px}.dash-dots{position:absolute;z-index:3;right:19px;bottom:17px;display:flex;gap:6px}.dash-dot{border:0;width:8px;height:8px;border-radius:20px;padding:0;background:rgba(255,255,255,.43)}.dash-dot.active{width:25px;background:var(--yellow)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:18px}.stat{background:#fff;border:1px solid #e1e6de;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(15,65,28,.05)}.stat-icon{width:41px;height:41px;border-radius:12px;background:#e9f6eb;color:var(--g700);display:grid;place-items:center;margin-bottom:13px}.stat strong{display:block;font:900 1.62rem/1 "Manrope"}.stat span{font-size:.71rem;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:17px;margin-top:18px}.panel{background:#fff;border:1px solid #e1e6de;border-radius:19px;padding:20px;box-shadow:0 8px 24px rgba(15,65,28,.05);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.panel-head h3{font-size:.98rem}.panel-head span{font-size:.68rem;color:var(--muted)}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-card{border:1px solid #e2e7df;background:#fbfcf9;border-radius:14px;padding:15px;text-align:left}.quick-card i{font-size:1.18rem;color:var(--g700)}.quick-card strong{display:block;font-size:.77rem;margin-top:8px}.quick-card span{font-size:.66rem;color:var(--muted)}.data-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th,.table td{padding:11px 9px;border-bottom:1px solid #edf0ea;text-align:left;font-size:.73rem}.table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.64rem}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.63rem;font-weight:900}.status.success{background:#e7f7e8;color:#197438}.status.pending{background:#fff2c8;color:#8c6500}.status.info{background:#e7efff;color:#2459aa}.status.danger{background:#ffebea;color:#ad211a}.dash-section{display:none}.dash-section.active{display:block}.dash-section-title{margin-bottom:16px}.dash-section-title h2{font-size:1.38rem}.dash-section-title p{font-size:.75rem;color:var(--muted);margin-top:4px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:17px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid #edf0ea;font-size:.74rem}.list li:last-child{border:0;padding-bottom:0}.manage-list{display:grid;gap:9px}.manage-row{display:grid;grid-template-columns:50px 1fr auto auto;gap:10px;align-items:center;padding:9px;border:1px solid #e3e8e0;border-radius:13px}.manage-row img{width:50px;height:50px;object-fit:cover;border-radius:11px}.manage-row strong{display:block;font-size:.73rem}.manage-row span{font-size:.65rem;color:var(--muted)}.switch{position:relative;width:41px;height:23px}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;inset:0;border-radius:999px;background:#ccd5ca}.switch-slider:before{content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.switch-slider{background:var(--g600)}.switch input:checked+.switch-slider:before{transform:translateX(18px)}.admin-list{display:grid;gap:10px}.admin-row{padding:13px;border:1px solid #e2e7df;border-radius:14px;display:grid;grid-template-columns:70px 1fr auto;gap:11px;align-items:center}.admin-row img{width:70px;height:58px;object-fit:cover;border-radius:10px}.admin-row h4{font-size:.76rem}.admin-row p{font-size:.65rem;color:var(--muted)}.row-actions{display:flex;gap:6px}
@media(max-width:1100px){.nav{display:none}.menu-btn{display:grid}.mobile-nav{position:fixed;display:grid;left:15px;right:15px;top:118px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;box-shadow:var(--shadow);z-index:100;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.2s}.mobile-nav.open{opacity:1;visibility:visible;transform:none}.mobile-nav a{padding:11px;border-radius:10px;font-weight:800;font-size:.82rem}.mobile-nav a:hover{background:#e9f6eb}.menu-grid{grid-template-columns:repeat(2,1fr)}.benefit-grid{grid-template-columns:repeat(3,1fr)}.testimonials{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.25fr 1fr 1fr}.footer-grid>div:last-child{grid-column:1/-1}.dash-shell{grid-template-columns:230px minmax(0,1fr)}.quick{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.section{padding:69px 0}.section-head{display:block}.hero-slider,.hero-inner{min-height:640px}.hero-slide:before{background:linear-gradient(90deg,rgba(3,27,10,.92),rgba(3,27,10,.58))}.hero-arrow{display:none}.hero-count{right:15px;bottom:64px}.trust{grid-template-columns:1fr 1fr}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.announcement-feature{grid-template-columns:170px 1fr}.announcement-feature>.btn{grid-column:1/-1}.announcement-grid{grid-template-columns:1fr 1fr}.split,.catering-banner,.member-banner,.location-grid{grid-template-columns:1fr}.split-img{min-height:390px}.catering-img{min-height:520px}.benefit-grid{grid-template-columns:1fr 1fr}.detail-benefit,.detail-benefit:nth-child(even){grid-template-columns:1fr}.detail-benefit:nth-child(even) .detail-img{order:0}.detail-img{min-height:280px}.packages{grid-template-columns:1fr}.package.featured{transform:none}.steps{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:260px 200px}.gallery img:first-child{grid-column:1/-1;grid-row:auto}.cta{display:block}.cta-actions{margin-top:20px}.dash-shell{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;transform:translateX(-100%);transition:.24s;z-index:70}.sidebar.open{transform:none}.dash-menu-btn{display:grid}.dash-top{padding:0 15px}.dash-content{padding:15px}.dash-grid,.two-col{grid-template-columns:1fr}.dash-slider,.dash-slide-copy{min-height:330px}}
@media(max-width:600px){:root{--container:min(100% - 24px,1200px)}.topbar .container{justify-content:center}.topbar-right{display:none}.navbar{min-height:70px}.brand img{width:46px;height:46px}.brand strong{font-size:.82rem}.brand small{font-size:.55rem}.nav-actions>.btn{display:none}.hero-slider,.hero-inner{min-height:660px}.hero-copy h1{font-size:3.02rem}.hero-actions{display:grid}.hero-actions .btn{width:100%}.hero-facts{display:grid;gap:9px}.hero-count{left:12px;right:12px;bottom:62px;justify-content:center}.hero-dots{bottom:23px}.trust{grid-template-columns:1fr}.trust-item{border-right:0!important;border-bottom:1px solid var(--line)!important}.trust-item:last-child{border-bottom:0!important}.announcement-feature{grid-template-columns:1fr}.announcement-feature img{height:190px}.announcement-grid,.menu-grid,.benefit-grid,.testimonials{grid-template-columns:1fr}.menu-media{height:225px}.menu-toolbar{display:block}.search{margin-top:12px;min-width:100%}.hot-card{min-width:85vw}.split-copy,.catering-copy,.member-copy{padding:27px}.member-grid,.form-grid{grid-template-columns:1fr}.group.full{grid-column:auto}.steps{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-template-rows:repeat(3,220px)}.gallery img:first-child{grid-column:auto}.footer-grid{grid-template-columns:1fr}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span:last-child{display:block;margin-top:7px}.agent-button{width:58px;height:58px;padding:4px;border-radius:19px}.agent-button img{width:50px;height:50px}.agent-button>div,.agent-button>i{display:none}.agent-chat{width:min(320px,calc(100vw - 24px))}.toasts{left:11px;right:11px;top:80px}.toast{min-width:0;max-width:none}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:1.33rem}.quick,.three-col{grid-template-columns:1fr}.dash-user-copy{display:none}.dash-heading p{display:none}.dash-slide-copy{padding:25px}.manage-row{grid-template-columns:46px 1fr auto}.manage-row .edit{display:none}.admin-row{grid-template-columns:60px 1fr}.admin-row .row-actions{grid-column:1/-1}}


/* ================================================================
   STANDARDISASI TYPOGRAPHY UNTUK PAPARAN LIVE
   ================================================================ */
html{font-size:16px}
body{font-size:1rem}
p,li,input,select,textarea,button,a{font-size:1rem}
small{font-size:.875rem}
.topbar{font-size:.9rem}
.brand strong{font-size:1rem}
.brand small{font-size:.78rem}
.nav>a,.drop>button{font-size:.94rem}
.drop-menu a,.mobile-nav a{font-size:.94rem}
.kicker,.hero-badge{font-size:.84rem}
.breadcrumb{font-size:.9rem}
.hero-copy p,.page-hero p,.section-lead{font-size:1.08rem}
.hero-fact{font-size:.94rem}
.hero-count span{font-size:.85rem}
.trust-item strong{font-size:1rem}
.trust-item span{font-size:.9rem}
.tag{font-size:.8rem}
.announcement-feature h3{font-size:1.35rem}
.announcement-feature p,.announcement-card p{font-size:.96rem}
.announcement-card h3{font-size:1.18rem}
.announcement-card time{font-size:.84rem}
.chip{font-size:.9rem}
.search input{font-size:1rem}
.menu-cat{font-size:.82rem}
.menu-badge{font-size:.8rem}
.menu-card h3{font-size:1.18rem}
.menu-card p{font-size:.97rem;line-height:1.55;min-height:48px}
.price{font-size:1.3rem}
.hot-card h3{font-size:1.2rem}
.hot-card p{font-size:.96rem}
.benefit-card h3{font-size:1.12rem}
.benefit-card p,.step p,.package li,.feature-item span{font-size:.94rem}
.testimonial blockquote{font-size:1rem}
.person strong{font-size:1rem}
.person small{font-size:.88rem}
.info-row strong{font-size:.96rem}
.info-row span{font-size:.92rem}
.footer-brand p,.footer-links a,.footer-links button,.footer-links span{font-size:.92rem}
.footer-bottom{font-size:.86rem}
.btn-sm{font-size:.9rem}
.form-note{font-size:.86rem}
.group label{font-size:.9rem}
.control{font-size:1rem}

/* Panel Admin dan Panel Ahli */
.side-note{font-size:.9rem}
.side-note strong{font-size:.96rem}
.dash-nav .nav-label{font-size:.8rem}
.dash-nav button,.dash-nav a{font-size:.96rem}
.dash-heading h1{font-size:1.55rem}
.dash-heading p{font-size:.94rem}
.dash-slide-copy small{font-size:.88rem}
.dash-slide-copy p{font-size:1rem}
.stat strong{font-size:1.8rem}
.stat span{font-size:.94rem}
.panel-head h3{font-size:1.12rem}
.panel-head span{font-size:.88rem}
.quick-card strong{font-size:.98rem}
.quick-card span{font-size:.88rem}
.table th{font-size:.82rem}
.table td{font-size:.94rem}
.status{font-size:.8rem}
.dash-section-title h2{font-size:1.6rem}
.dash-section-title p{font-size:.96rem}
.list li{font-size:.94rem}
.manage-row strong{font-size:.94rem}
.manage-row span{font-size:.84rem}
.admin-row h4{font-size:.96rem}
.admin-row p{font-size:.84rem}

/* Gambar menu lebih jelas dan seragam */
.menu-media{height:250px;background:#f0f3ed}
.menu-media img{width:100%;height:100%;object-fit:cover;image-rendering:auto}
.manage-row img{width:64px;height:64px}
.manage-row{grid-template-columns:64px 1fr auto auto}

@media(max-width:600px){
  html{font-size:15px}
  .menu-media{height:240px}
  .table th{font-size:.78rem}
  .table td{font-size:.9rem}
}


/* ================================================================
   KEMAS KINI LAYOUT MENU: 5 REKOD SETIAP BARIS
   ================================================================ */
.menu-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.menu-card{min-width:0}
.menu-media{
  height:auto;
  aspect-ratio:1 / .92;
}
.menu-card h3{
  font-size:1.05rem;
  line-height:1.3;
}
.menu-card p{
  font-size:.92rem;
  min-height:70px;
}
.menu-body{padding:15px}
.menu-footer{gap:8px}
.price{font-size:1.15rem}

@media(max-width:1280px){
  .menu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1040px){
  .menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .menu-card p{min-height:58px}
}
@media(max-width:470px){
  .menu-grid{grid-template-columns:1fr}
  .menu-card p{min-height:auto}
}

/* ================================================================
   UPGRADE HALAMAN LOKASI
   ================================================================ */
.location-hero:before{
  background:linear-gradient(90deg,rgba(3,31,12,.96) 0%,rgba(3,31,12,.76) 52%,rgba(3,31,12,.28) 100%);
}
.location-hero-copy{max-width:760px}
.location-open-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  margin-bottom:17px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  font-size:.95rem;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.location-open-pill i{font-size:.6rem;color:#58dc78}
.location-section{
  position:relative;
  background:
    radial-gradient(circle at 8% 12%,rgba(255,217,47,.13),transparent 28%),
    radial-gradient(circle at 92% 78%,rgba(54,163,79,.10),transparent 30%),
    var(--cream);
}
.location-layout{
  display:grid;
  grid-template-columns:.9fr 1.2fr;
  gap:24px;
  align-items:stretch;
}
.location-details-card,
.location-map-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:30px;
  box-shadow:var(--shadow-sm);
}
.location-details-card{padding:30px}
.location-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.location-card-top h2{font-size:2rem}
.location-card-top p{
  margin-top:10px;
  color:var(--muted);
  font-size:1rem;
}
.location-logo-wrap{
  width:88px;
  height:88px;
  flex:0 0 auto;
  padding:7px;
  border-radius:24px;
  background:linear-gradient(145deg,#fff7c7,#d8f2dc);
  box-shadow:0 13px 30px rgba(9,55,24,.13);
}
.location-logo-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:19px;
}
.location-contact-list{
  display:grid;
  gap:18px;
  margin-top:24px;
}
.location-contact-item{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:14px;
  align-items:flex-start;
}
.location-contact-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#e9f7eb;
  color:var(--g700);
  font-size:1.18rem;
}
.location-contact-item strong{
  display:block;
  font-size:1.05rem;
  margin-bottom:4px;
}
.location-contact-item p,
.location-contact-item a{
  color:var(--muted);
  font-size:1rem;
  line-height:1.6;
}
.location-contact-item a:hover{color:var(--g700)}
.location-action-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:26px;
}
.location-action{
  min-height:74px;
  padding:13px 15px;
  border-radius:18px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  transition:.2s;
}
.location-action:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.location-action>i{font-size:1.5rem}
.location-action span{display:grid}
.location-action strong{font-size:1rem}
.location-action small{font-size:.83rem}
.location-action.primary{background:var(--g700);color:#fff;border-color:var(--g700)}
.location-action.whatsapp{background:#effbf2;color:#126b2d;border-color:#bfe5c7}
.location-map-card{
  min-height:620px;
  overflow:hidden;
  position:relative;
  padding:10px;
}
.location-map-frame{
  width:100%;
  height:100%;
  min-height:600px;
  border:0;
  border-radius:23px;
}
.location-map-badge{
  position:absolute;
  left:30px;
  bottom:30px;
  z-index:2;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 17px;
  border-radius:17px;
  background:rgba(255,255,255,.94);
  box-shadow:0 16px 40px rgba(7,44,18,.18);
  backdrop-filter:blur(12px);
}
.location-map-pin{
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  background:var(--g700);
}
.location-map-badge strong{display:block;font-size:1rem}
.location-map-badge small{color:var(--muted);font-size:.86rem}
.location-service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:24px;
}
.location-service-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px;
  box-shadow:var(--shadow-sm);
}
.location-service-card>span{
  width:50px;
  height:50px;
  border-radius:16px;
  background:#e9f7eb;
  color:var(--g700);
  display:grid;
  place-items:center;
  font-size:1.2rem;
  margin-bottom:15px;
}
.location-service-card h3{font-size:1.15rem}
.location-service-card p{
  margin-top:8px;
  color:var(--muted);
  font-size:.98rem;
}
.location-gallery{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  grid-template-rows:260px 260px;
  gap:16px;
}
.location-gallery figure{
  margin:0;
  overflow:hidden;
  border-radius:24px;
  position:relative;
  box-shadow:var(--shadow-sm);
}
.location-gallery-main{grid-row:1/3}
.location-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.4s;
}
.location-gallery figure:hover img{transform:scale(1.04)}
.location-gallery figcaption{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  padding:13px 15px;
  border-radius:15px;
  color:#fff;
  background:rgba(5,38,15,.78);
  backdrop-filter:blur(10px);
}
.location-gallery figcaption strong{display:block;font-size:1rem}
.location-gallery figcaption span{font-size:.86rem;color:#d9e8dc}

@media(max-width:920px){
  .location-layout{grid-template-columns:1fr}
  .location-map-card{min-height:500px}
  .location-map-frame{min-height:480px}
}
@media(max-width:700px){
  .location-service-grid{grid-template-columns:1fr}
  .location-gallery{
    grid-template-columns:1fr;
    grid-template-rows:320px 230px 230px;
  }
  .location-gallery-main{grid-row:auto}
  .location-action-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .location-details-card{padding:22px}
  .location-card-top{display:block}
  .location-logo-wrap{margin-top:18px}
  .location-contact-item{grid-template-columns:46px 1fr}
  .location-contact-icon{width:46px;height:46px}
  .location-map-badge{left:20px;right:20px;bottom:20px}
}

/* ================================================================
   UPGRADE LOGO PANEL ADMIN DAN AHLI
   ================================================================ */
.dash-brand{
  position:relative;
  gap:14px;
  padding:13px;
  margin-bottom:17px;
  border-radius:21px;
  background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 15px 35px rgba(0,0,0,.13);
}
.dash-brand-logo{
  width:66px;
  height:66px;
  flex:0 0 66px;
  border-radius:20px;
  padding:5px;
  background:linear-gradient(145deg,#ffe857,#a9e8b5);
  box-shadow:0 9px 24px rgba(0,0,0,.2);
}
.dash-brand-logo img{
  width:100%;
  height:100%;
  border-radius:16px;
  object-fit:cover;
}
.dash-brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.dash-brand-copy>span{
  color:var(--yellow);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
}
.dash-brand-copy strong{
  color:#fff;
  font-size:1.02rem;
  line-height:1.28;
}
.dash-brand-copy small{
  color:#b7d0bc;
  font-size:.82rem;
}
@media(max-width:820px){
  .dash-brand{margin-top:5px}
}

/* ================================================================
   UPGRADE DOMPET KUPON
   ================================================================ */
.coupon-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
  padding:24px 26px;
  border-radius:23px;
  background:
    linear-gradient(120deg,rgba(8,57,25,.97),rgba(25,119,52,.91)),
    url("../images/kedai-bilal-enhanced.jpg") center/cover;
  color:#fff;
  box-shadow:var(--shadow-sm);
}
.coupon-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--yellow);
  font-size:.84rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.075em;
}
.coupon-page-head h2{
  margin-top:7px;
  font-size:2rem;
}
.coupon-page-head p{
  margin-top:7px;
  color:#d9e8dc;
  font-size:1rem;
}
.coupon-balance{
  min-width:115px;
  padding:15px;
  text-align:center;
  border-radius:18px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.17);
  backdrop-filter:blur(8px);
}
.coupon-balance span{display:block;font-size:.86rem}
.coupon-balance strong{display:block;font-size:2rem;color:var(--yellow)}
.coupon-ticket-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.coupon-ticket{
  --coupon-a:#176b2d;
  --coupon-b:#36a34f;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) 116px;
  min-height:285px;
  border-radius:25px;
  color:#fff;
  background:linear-gradient(145deg,var(--coupon-a),var(--coupon-b));
  box-shadow:0 18px 43px rgba(15,62,27,.17);
}
.coupon-ticket:before,
.coupon-ticket:after{
  content:"";
  position:absolute;
  right:104px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#f3f6f1;
  z-index:2;
}
.coupon-ticket:before{top:-12px}
.coupon-ticket:after{bottom:-12px}
.coupon-ticket-orange{--coupon-a:#ea8b04;--coupon-b:#ffb014}
.coupon-ticket-purple{--coupon-a:#6844a9;--coupon-b:#9c63db}
.coupon-ticket-main{
  padding:24px 22px;
  display:flex;
  flex-direction:column;
}
.coupon-ticket-top{
  display:flex;
  align-items:center;
  gap:11px;
}
.coupon-ticket-icon{
  width:43px;
  height:43px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.16);
  font-size:1.1rem;
}
.coupon-ticket-label{
  font-size:.9rem;
  font-weight:800;
  color:rgba(255,255,255,.88);
}
.coupon-ticket h3{
  margin-top:24px;
  font-size:1.7rem;
  letter-spacing:-.02em;
}
.coupon-ticket p{
  margin-top:9px;
  color:rgba(255,255,255,.84);
  font-size:.9rem;
  line-height:1.5;
}
.coupon-code-box{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px 9px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.15);
  border:1px dashed rgba(255,255,255,.65);
}
.coupon-code-box>span{
  font-size:1.18rem;
  font-weight:900;
  letter-spacing:.09em;
}
.coupon-code-box button{
  border:0;
  padding:9px 11px;
  border-radius:10px;
  background:#fff;
  color:var(--coupon-a);
  font-size:.82rem;
  font-weight:900;
}
.coupon-ticket-side{
  position:relative;
  padding:22px 15px;
  border-left:2px dashed rgba(255,255,255,.44);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.coupon-ticket-side:before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:16px;
  background:rgba(255,255,255,.08);
}
.coupon-ticket-side>*{position:relative;z-index:1}
.coupon-valid-label{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:rgba(255,255,255,.74);
}
.coupon-ticket-side strong{
  margin-top:8px;
  font-size:1rem;
}
.coupon-status-dot{
  margin-top:18px;
  font-size:.76rem;
  color:#fff;
}
.coupon-info-panel{
  display:grid;
  grid-template-columns:50px 1fr auto;
  gap:15px;
  align-items:center;
  margin-top:20px;
  padding:20px;
  border-radius:20px;
  background:#fff;
  border:1px solid #e1e6de;
  box-shadow:var(--shadow-sm);
}
.coupon-info-icon{
  width:50px;
  height:50px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#e9f7eb;
  color:var(--g700);
  font-size:1.2rem;
}
.coupon-info-panel strong{font-size:1.02rem}
.coupon-info-panel p{
  margin-top:4px;
  color:var(--muted);
  font-size:.92rem;
}
@media(max-width:1200px){
  .coupon-ticket-grid{grid-template-columns:1fr}
  .coupon-ticket{min-height:245px}
}
@media(max-width:620px){
  .coupon-page-head{display:block;padding:22px}
  .coupon-balance{margin-top:18px}
  .coupon-ticket{grid-template-columns:1fr}
  .coupon-ticket:before,.coupon-ticket:after{display:none}
  .coupon-ticket-side{
    border-left:0;
    border-top:2px dashed rgba(255,255,255,.42);
    flex-direction:row;
    justify-content:space-between;
    gap:12px;
  }
  .coupon-ticket-side:before{display:none}
  .coupon-status-dot{margin-top:0}
  .coupon-info-panel{grid-template-columns:45px 1fr}
  .coupon-info-panel .btn{grid-column:1/-1}
}

/* ================================================================
   PENGURUSAN MENU BOLEH EDIT
   ================================================================ */
.admin-menu-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  gap:20px;
  align-items:start;
}
.admin-menu-list-panel{padding:22px}
.admin-menu-list-head{align-items:flex-end}
.admin-menu-search{
  min-width:265px;
  height:44px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid #dce3d9;
  border-radius:13px;
  background:#fbfcf9;
}
.admin-menu-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  font-size:.92rem;
}
.admin-menu-count{
  margin-bottom:12px;
  color:var(--muted);
  font-size:.88rem;
  font-weight:800;
}
.admin-menu-scroll{
  max-height:875px;
  overflow:auto;
  padding-right:5px;
}
.manage-row{
  grid-template-columns:68px 1fr auto auto;
  padding:11px;
}
.manage-row img{
  width:68px;
  height:68px;
  border-radius:15px;
}
.manage-row-copy strong{font-size:.98rem}
.manage-row-copy span{font-size:.86rem}
.manage-row-copy small{
  display:block;
  margin-top:4px;
  color:#e4511e;
  font-size:.75rem;
  font-weight:800;
}
.admin-menu-form-panel{
  position:sticky;
  top:94px;
  padding:24px;
}
.menu-image-preview{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:14px;
  align-items:center;
  margin-bottom:19px;
  padding:12px;
  border:1px solid #e1e6de;
  border-radius:17px;
  background:#f8fbf6;
}
.menu-image-preview img{
  width:90px;
  height:90px;
  object-fit:cover;
  border-radius:14px;
}
.menu-image-preview strong{display:block;font-size:1rem}
.menu-image-preview span{display:block;margin-top:4px;color:var(--muted);font-size:.86rem}
.menu-checkbox-label{
  display:flex;
  gap:11px;
  align-items:flex-start;
  padding:14px;
  border:1px solid #dfe6dc;
  border-radius:14px;
  background:#fbfcf9;
}
.menu-checkbox-label input{margin-top:4px}
.menu-checkbox-label span{display:grid}
.menu-checkbox-label strong{font-size:.95rem}
.menu-checkbox-label small{color:var(--muted);font-size:.83rem}
.admin-menu-form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.admin-menu-empty{
  display:grid;
  place-items:center;
  gap:7px;
  min-height:240px;
  text-align:center;
  color:var(--muted);
}
.admin-menu-empty i{font-size:2rem;color:#aab5aa}
@media(max-width:1120px){
  .admin-menu-layout{grid-template-columns:1fr}
  .admin-menu-form-panel{position:static}
}
@media(max-width:640px){
  .admin-menu-list-head{display:block}
  .admin-menu-search{min-width:100%;margin-top:13px}
  .manage-row{grid-template-columns:58px 1fr auto}
  .manage-row img{width:58px;height:58px}
  .manage-row .switch{display:none}
  .admin-menu-scroll{max-height:none}
}


/* ================================================================
   BERITA TERKINI CAROUSEL
   ================================================================ */
.latest-news-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(255,217,47,.16),transparent 26%),
    radial-gradient(circle at 94% 76%,rgba(35,139,65,.12),transparent 28%),
    linear-gradient(180deg,#fffaf0,#f6f3e8);
}
.latest-news-controls{display:flex;gap:9px}
.latest-news-shell{position:relative}
.latest-news-track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:5px 3px 24px;
}
.latest-news-track::-webkit-scrollbar{display:none}
.latest-news-card{
  flex:0 0 calc((100% - 40px)/3);
  min-width:0;
  scroll-snap-align:start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:.25s;
}
.latest-news-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
}
.latest-news-media{
  position:relative;
  height:235px;
  overflow:hidden;
  background:#edf2eb;
}
.latest-news-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.4s;
}
.latest-news-card:hover .latest-news-media img{transform:scale(1.055)}
.latest-news-category{
  position:absolute;
  left:14px;
  top:14px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(8,62,26,.9);
  color:#fff;
  font-size:.8rem;
  font-weight:900;
  backdrop-filter:blur(8px);
}
.latest-news-card-body{
  padding:20px;
  display:flex;
  flex-direction:column;
  min-height:265px;
}
.latest-news-card-body time{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--g700);
  font-size:.86rem;
  font-weight:800;
}
.latest-news-card-body h3{
  margin-top:11px;
  font-size:1.24rem;
  line-height:1.28;
}
.latest-news-card-body p{
  margin-top:10px;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.58;
}
.latest-news-read{
  margin-top:auto;
  padding:13px 0 0;
  border:0;
  background:transparent;
  color:var(--g700);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-weight:900;
  font-size:.94rem;
}
.latest-news-read i{transition:.2s}
.latest-news-read:hover i{transform:translateX(5px)}

.latest-news-modal-overlay{
  position:fixed;
  inset:0;
  z-index:180;
  background:rgba(3,26,10,.65);
  backdrop-filter:blur(6px);
  opacity:0;
  visibility:hidden;
  transition:.22s;
}
.latest-news-modal-overlay.open{opacity:1;visibility:visible}
.latest-news-modal{
  position:fixed;
  z-index:181;
  left:50%;
  top:50%;
  width:min(760px,calc(100% - 28px));
  max-height:92vh;
  overflow:auto;
  transform:translate(-50%,-46%) scale(.98);
  background:#fff;
  border-radius:28px;
  box-shadow:0 35px 110px rgba(0,0,0,.32);
  opacity:0;
  visibility:hidden;
  transition:.22s;
}
.latest-news-modal.open{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%) scale(1);
}
.latest-news-modal>img{
  width:100%;
  height:330px;
  object-fit:cover;
}
.latest-news-modal-close{
  position:absolute;
  right:15px;
  top:15px;
  width:44px;
  height:44px;
  border:0;
  border-radius:14px;
  background:rgba(255,255,255,.93);
  box-shadow:var(--shadow-sm);
  z-index:2;
}
.latest-news-modal-content{padding:27px}
.latest-news-modal-content h2{
  margin-top:11px;
  font-size:2rem;
}
.latest-news-modal-content>p{
  margin:14px 0 22px;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.7;
}

/* ================================================================
   AVATAR MUSLIM / HIJAB
   ================================================================ */
.person .avatar{
  width:54px;
  height:54px;
  padding:0;
  overflow:hidden;
  border:3px solid #fff;
  box-shadow:0 8px 22px rgba(11,75,28,.15);
  background:#e9f5e9;
}
.person .avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ================================================================
   PANEL ADMIN BERITA TERKINI
   ================================================================ */
.latest-news-admin-layout{
  display:grid;
  grid-template-columns:minmax(400px,.88fr) minmax(0,1.12fr);
  gap:20px;
  align-items:start;
}
.latest-news-admin-form{
  position:sticky;
  top:94px;
}
.latest-news-image-preview{
  display:grid;
  grid-template-columns:105px 1fr;
  gap:14px;
  align-items:center;
  padding:12px;
  margin-bottom:18px;
  border:1px solid #e1e6de;
  border-radius:17px;
  background:#f8fbf6;
}
.latest-news-image-preview img{
  width:105px;
  height:88px;
  object-fit:cover;
  border-radius:14px;
}
.latest-news-image-preview strong{display:block;font-size:1rem}
.latest-news-image-preview span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.86rem;
}
.latest-news-admin-list{
  display:grid;
  gap:11px;
  max-height:920px;
  overflow:auto;
  padding-right:5px;
}
.latest-news-admin-row{
  display:grid;
  grid-template-columns:105px 1fr auto;
  gap:13px;
  align-items:center;
  padding:11px;
  border:1px solid #e1e6de;
  border-radius:16px;
  background:#fff;
}
.latest-news-admin-row>img{
  width:105px;
  height:82px;
  object-fit:cover;
  border-radius:13px;
}
.latest-news-admin-row h4{
  margin-top:5px;
  font-size:.98rem;
}
.latest-news-admin-row p{
  margin-top:5px;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.45;
}
.latest-news-admin-row .row-actions{
  display:flex;
  gap:6px;
}

@media(max-width:1050px){
  .latest-news-card{flex-basis:calc((100% - 20px)/2)}
  .latest-news-admin-layout{grid-template-columns:1fr}
  .latest-news-admin-form{position:static}
}
@media(max-width:650px){
  .latest-news-card{flex-basis:86vw}
  .latest-news-media{height:220px}
  .latest-news-card-body{min-height:245px}
  .latest-news-modal>img{height:240px}
  .latest-news-modal-content{padding:22px}
  .latest-news-modal-content h2{font-size:1.55rem}
  .latest-news-admin-row{
    grid-template-columns:82px 1fr;
  }
  .latest-news-admin-row>img{
    width:82px;
    height:74px;
  }
  .latest-news-admin-row .row-actions{
    grid-column:1/-1;
  }
}


.person .avatar{width:58px;height:58px;padding:0;overflow:hidden;border:3px solid #fff;box-shadow:0 8px 22px rgba(11,75,28,.15);background:#eef4ea}
.person .avatar img{width:100%;height:100%;object-fit:cover;display:block}
