body{color:#1d1d1f;margin:0;-webkit-font-smoothing:antialiased}.restaurant-page,body{background-color:#f5f5f7}.restaurant-page{min-height:100vh}.restaurant-main{padding:3rem 1.5rem 5rem;max-width:1200px;margin:0 auto}.restaurant-header{margin-bottom:3rem;padding-top:1rem}@media (max-width:768px){.restaurant-header{padding-top:2rem}}.restaurant-header-title{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;color:#1d1d1f;line-height:1.2;margin-bottom:.5rem}.restaurant-header-subtitle{color:#9ca3af}@media (min-width:768px){.restaurant-header-title{font-size:3rem}}.restaurant-banner-section{margin-bottom:4rem}.restaurant-banner-wrapper{position:relative;width:100%;border-radius:1rem;overflow:hidden;height:200px;box-shadow:0 4px 20px rgba(0,0,0,.1)}@media (min-width:768px){.restaurant-banner-wrapper{height:500px;border-radius:1.5rem}}.restaurant-banner-carousel{display:flex;overflow-x:hidden;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.restaurant-banner-carousel:active{cursor:-webkit-grabbing;cursor:grabbing}.restaurant-banner-carousel::-webkit-scrollbar{display:none}@media (min-width:768px){.restaurant-banner-carousel{height:500px}}.restaurant-banner-slide{position:relative;flex-shrink:0;scroll-snap-align:center;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-decoration:none;overflow:hidden}.restaurant-banner-blur-bg{position:absolute;inset:0;background-size:cover;background-position:50%;filter:blur(20px);transform:scale(1.1);opacity:.6;z-index:1}.restaurant-banner-image{position:relative;width:100%;height:100%;object-fit:contain;z-index:2}.restaurant-banner-slide-1{background-image:linear-gradient(135deg,#667eea,#764ba2)}.restaurant-banner-slide-2{background-image:linear-gradient(135deg,#f6d365,#fda085)}.restaurant-banner-slide-3{background-image:linear-gradient(135deg,#84fab0,#8fd3f4)}.restaurant-banner-overlay{position:absolute;inset:0;background:rgba(0,0,0,.3)}.restaurant-banner-content{position:relative;z-index:10;text-align:center;color:white;padding:2rem}.restaurant-banner-title{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;text-shadow:0 2px 10px rgba(0,0,0,.3)}@media (min-width:768px){.restaurant-banner-title{font-size:3.5rem}}.restaurant-banner-description{font-size:1.125rem;opacity:.95;text-shadow:0 1px 5px rgba(0,0,0,.3)}.restaurant-banner-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background-color:rgba(255,255,255,.8);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:#1d1d1f;transition:all .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;opacity:0}.restaurant-banner-wrapper:hover .restaurant-banner-nav{opacity:1}.restaurant-banner-nav:hover{background-color:white;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,.15)}.restaurant-banner-nav.prev{left:1rem}.restaurant-banner-nav.next{right:1rem}.restaurant-banner-indicators{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;justify-content:center;gap:.5rem;z-index:20}.restaurant-banner-indicator{width:8px;height:8px;border-radius:50%;background-color:rgba(0,0,0,.4);border:none;padding:0;cursor:pointer;transition:all .3s ease;box-shadow:0 1px 2px rgba(255,255,255,.3)}.restaurant-banner-indicator.active{background-color:#1d1d1f;transform:scale(1.2);width:24px;border-radius:4px}.restaurant-cuisine-section{margin-bottom:4rem}.restaurant-section-subtitle{font-size:.875rem;color:#86868b;margin-top:.25rem}.restaurant-cuisine-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}@media (min-width:768px){.restaurant-cuisine-grid{grid-template-columns:repeat(4,1fr);gap:16px}}.restaurant-cuisine-card{background:#ffffff;border:1px solid #e5e5e5;border-radius:8px;padding:20px 16px;text-decoration:none;color:inherit;transition:all .2s ease;min-height:110px;display:flex;flex-direction:column;justify-content:space-between}.restaurant-cuisine-card:hover{border-color:#d1d1d1;box-shadow:0 4px 12px rgba(0,0,0,.08)}.restaurant-cuisine-number{font-size:11px;font-weight:600;color:#0071e3;letter-spacing:.05em;margin-bottom:8px}.restaurant-cuisine-name{font-size:15px;font-weight:600;color:#1d1d1f;margin-bottom:4px;line-height:1.3}.restaurant-cuisine-desc{font-size:12px;color:#86868b;line-height:1.4}@media (max-width:768px){.restaurant-cuisine-card{padding:16px 14px;min-height:100px}.restaurant-cuisine-number{font-size:10px}.restaurant-cuisine-name{font-size:14px}.restaurant-cuisine-desc{font-size:11px}}.restaurant-trending-section{margin-bottom:4rem}.restaurant-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-left:.25rem;padding-right:.25rem}.restaurant-section-title{font-size:1.5rem;font-weight:700;color:#1d1d1f}.restaurant-see-all{color:#0071e3;font-size:.875rem;font-weight:500;text-decoration:none}.restaurant-see-all:hover{text-decoration:underline}.restaurant-trending-container{display:flex;gap:1.5rem;overflow-x:auto;padding-bottom:2rem;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.restaurant-trending-container::-webkit-scrollbar{display:none}.restaurant-trending-card{scroll-snap-align:center;flex-shrink:0;width:85vw;position:relative;cursor:pointer;overflow:hidden;border-radius:1rem;box-shadow:0 10px 30px rgba(0,0,0,.15);height:400px}@media (min-width:768px){.restaurant-trending-card{width:400px}}.restaurant-trending-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.restaurant-trending-card:hover .restaurant-trending-image{transform:scale(1.05)}.restaurant-trending-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.2) 50%,transparent)}.restaurant-trending-content{position:absolute;bottom:0;left:0;padding:1.5rem;color:white;width:100%}.restaurant-trending-badge{font-size:.75rem;font-weight:700;color:#fb923c;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.restaurant-trending-name{font-size:1.875rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.restaurant-trending-subname{font-size:1.125rem;opacity:.8;margin-bottom:.75rem;font-family:serif}.restaurant-trending-description{font-size:.875rem;color:#d1d5db;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.restaurant-filter-section{margin-bottom:1.5rem}.restaurant-filter-label{font-size:.875rem;font-weight:600;color:#1d1d1f;margin-bottom:.75rem;padding-left:.25rem}.restaurant-filter-tabs{display:flex;gap:.75rem;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:.5rem}.restaurant-filter-tabs::-webkit-scrollbar{display:none}@media (min-width:768px){.restaurant-filter-tabs{flex-wrap:wrap}}.restaurant-tab{padding:.5rem 1.25rem;border-radius:9999px;background-color:white;color:#6b7280;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid rgba(229,231,235,.5);font-size:.875rem;white-space:nowrap;cursor:pointer;transition:all .3s ease;font-weight:500}.restaurant-tab:hover{background-color:#f9fafb}.restaurant-tab.active{background-color:#1d1d1f;color:white;font-weight:600}.restaurant-grid{display:grid;grid-template-columns:1fr;grid-gap:2.5rem 1.5rem;gap:2.5rem 1.5rem}@media (min-width:768px){.restaurant-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.restaurant-grid{grid-template-columns:repeat(3,1fr)}}.restaurant-card{cursor:pointer;border-radius:1rem;transition:all .4s cubic-bezier(.4,0,.2,1);animation:fadeIn .5s ease-out forwards;opacity:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.restaurant-card:hover{transform:translateY(-8px)}.restaurant-card:hover .restaurant-card-image{transform:scale(1.08)}.restaurant-card:hover .restaurant-card-name{color:#0071e3}.restaurant-card-image-wrapper{position:relative;aspect-ratio:4/3;border-radius:1rem;overflow:hidden;background-color:#e5e7eb;margin-bottom:1rem}.restaurant-card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}.restaurant-card-region-badge{position:absolute;top:.75rem;right:.75rem;background-color:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:white;font-size:.75rem;font-weight:700;padding:.25rem .625rem;border-radius:9999px}.restaurant-card-content{padding:0}.restaurant-card-name{font-size:1.125rem;font-weight:700;color:#111827;line-height:1.3;transition:color .3s ease}.restaurant-card-subname{font-size:.875rem;color:#6b7280;font-weight:500;margin-top:.125rem}.restaurant-card-description{font-size:.875rem;color:#6b7280;margin-top:.5rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.restaurant-card-tags{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.restaurant-card-tag{font-size:.6875rem;color:#9ca3af;border:1px solid #e5e7eb;padding:.125rem .5rem;border-radius:9999px}.restaurant-load-more{display:flex;justify-content:center;margin-top:3rem;padding-bottom:2rem}.restaurant-load-more-btn{padding:.875rem 2.5rem;background-color:#1d1d1f;color:white;border:none;border-radius:9999px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px rgba(0,0,0,.15)}.restaurant-load-more-btn:hover:not(:disabled){background-color:#2d2d2f;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.2)}.restaurant-load-more-btn:disabled{background-color:#d1d5db;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.restaurant-loading-state{text-align:center;padding:5rem 0}.restaurant-loading-state p{color:#6b7280;font-size:1.125rem;font-weight:500}.restaurant-empty-state{text-align:center;padding:5rem 0}.restaurant-empty-state p{color:#9ca3af;font-size:1.125rem}.restaurant-footer{background-color:white;border-top:1px solid #e5e7eb;padding-top:2.5rem;padding-bottom:2.5rem}.restaurant-footer p{max-width:1200px;margin:0 auto;padding:0 1.5rem;text-align:center;font-size:.75rem;color:#9ca3af}@media (min-width:768px){.restaurant-footer p{text-align:left}}