body{
margin:0;
font-family:Arial, sans-serif;
background:
radial-gradient(circle at top left, rgba(37,99,235,0.18), transparent 30%),
linear-gradient(180deg,#eef5ff 0%,#f7f9fc 36%,#f4f6f8 100%);
color:#102033;
}

*{
box-sizing:border-box;
}

.container{
width:100%;
max-width:none;
margin:auto;
padding-bottom:100px;
background:
linear-gradient(180deg,rgba(255,255,255,0.94) 0%,#ffffff 210px),
linear-gradient(135deg,rgba(37,99,235,0.09),rgba(0,26,71,0.08));
min-height:100vh;
box-shadow:0 0 35px rgba(15,23,42,0.08);
}

.topbar{
display:flex;
align-items:center;
padding:14px clamp(18px,3vw,42px) 10px;
gap:10px;
position:sticky;
top:0;
z-index:50;
background:rgba(255,255,255,0.86);
backdrop-filter:blur(14px);
border-bottom:1px solid rgba(226,232,240,0.75);
}

.logo{
width:100px;
height:70px;
object-fit:contain;
}

.search-bar{
flex:1;
display:flex;
align-items:center;
justify-content:space-between;
background:#ffffff;
border:1px solid #dbe4ef;
border-radius:999px;
padding:10px 14px;
font-size:14px;
color:#7a8798;
cursor:pointer;
box-shadow:0 8px 20px rgba(15,23,42,0.06);
text-decoration:none;
}

.search-bar i{
width:28px;
height:28px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:#001a47;
color:#fff;
font-size:12px;
}

.cart-btn{
position:relative;
background:#fff;
border:1px solid #dbe4ef;
padding:10px;
border-radius:50%;
color:#001a47;
font-size:18px;
text-decoration:none;
box-shadow:0 8px 20px rgba(15,23,42,0.07);
}

.cart-badge{
position:absolute;
top:-4px;
right:-4px;
background:#e74c3c;
color:#fff;
font-size:11px;
font-weight:bold;
padding:2px 6px;
border-radius:50%;
}

.welcome{
position:relative;
font-size:18px;
font-weight:600;
color:#fff;
margin:14px 20px 18px;
padding:20px 22px;
border-radius:20px;
background:
linear-gradient(135deg,rgba(0,26,71,0.96),rgba(15,83,151,0.92)),
url("../images/cover.jpg") center/cover;
box-shadow:0 18px 36px rgba(0,26,71,0.18);
overflow:hidden;
}

.welcome:before,
.welcome:after{
content:"";
position:absolute;
border-radius:50%;
background:rgba(255,255,255,0.12);
pointer-events:none;
}

.welcome:before{
width:110px;
height:110px;
right:28px;
top:-42px;
}

.welcome:after{
width:62px;
height:62px;
right:92px;
bottom:-28px;
}

.home-hero{
position:relative;
display:grid;
grid-template-columns:minmax(0,1fr) 320px;
gap:24px;
align-items:stretch;
margin:18px clamp(18px,3vw,42px) 20px;
padding:28px;
min-height:250px;
border-radius:28px;
background:linear-gradient(110deg,rgba(0,26,71,0.98) 0%,rgba(22,78,155,0.94) 52%,rgba(96,165,250,0.88) 100%);
color:#fff;
box-shadow:0 24px 55px rgba(0,26,71,0.24);
overflow:hidden;
}

.home-hero:before{
content:"";
position:absolute;
inset:0;
background:
radial-gradient(circle at 82% 18%,rgba(255,255,255,0.2),transparent 18%),
linear-gradient(90deg,rgba(255,255,255,0.12) 1px,transparent 1px),
linear-gradient(0deg,rgba(255,255,255,0.1) 1px,transparent 1px);
background-size:auto,36px 36px,36px 36px;
opacity:.34;
pointer-events:none;
}

.home-hero:after{
content:"";
position:absolute;
right:-70px;
bottom:-110px;
width:260px;
height:260px;
border-radius:50%;
background:rgba(147,197,253,0.28);
box-shadow:-86px -78px 0 rgba(255,255,255,0.1);
pointer-events:none;
}

.hero-copy,
.hero-deals{
position:relative;
z-index:1;
}

.hero-copy{
display:flex;
flex-direction:column;
justify-content:center;
max-width:620px;
}

.hero-eyebrow{
display:inline-flex;
width:max-content;
align-items:center;
gap:8px;
padding:7px 11px;
border-radius:999px;
background:rgba(255,255,255,0.16);
border:1px solid rgba(255,255,255,0.28);
font-size:12px;
font-weight:800;
text-transform:uppercase;
letter-spacing:.06em;
backdrop-filter:blur(8px);
}

.hero-eyebrow:before{
content:"\f3c5";
font-family:"Font Awesome 6 Free";
font-weight:900;
color:#bfdbfe;
}

.home-hero h1{
margin:14px 0 8px;
font-size:42px;
line-height:1.05;
letter-spacing:0;
}

.home-hero p{
margin:0;
max-width:520px;
font-size:15px;
line-height:1.6;
color:rgba(255,255,255,0.9);
}

.hero-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-top:20px;
}

.hero-primary,
.hero-secondary{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
min-height:42px;
padding:11px 15px;
border-radius:999px;
font-size:14px;
font-weight:800;
text-decoration:none;
}

.hero-primary{
background:#ffffff;
color:#001a47;
box-shadow:0 12px 24px rgba(255,255,255,0.24);
}

.hero-secondary{
background:rgba(255,255,255,0.15);
color:#fff;
border:1px solid rgba(255,255,255,0.28);
backdrop-filter:blur(8px);
}

.hero-deals{
display:grid;
grid-template-columns:1fr;
gap:10px;
align-content:center;
}

.hero-deal-card{
display:grid;
grid-template-columns:44px 1fr;
grid-template-areas:"icon value" "icon label";
gap:1px 12px;
align-items:center;
padding:14px;
border-radius:18px;
background:rgba(255,255,255,0.18);
border:1px solid rgba(255,255,255,0.28);
box-shadow:0 12px 28px rgba(0,0,0,0.16);
backdrop-filter:blur(12px);
color:#fff;
text-decoration:none;
transition:transform .18s ease, background .18s ease, border-color .18s ease;
}

.hero-event-card:hover{
transform:translateY(-2px);
background:rgba(255,255,255,0.24);
border-color:rgba(255,255,255,0.42);
}

.hero-deal-card i{
grid-area:icon;
width:44px;
height:44px;
display:flex;
align-items:center;
justify-content:center;
border-radius:15px;
background:#fff;
color:#2563eb;
font-size:18px;
}

.hero-deal-card strong{
grid-area:value;
font-size:18px;
line-height:1;
}

.hero-deal-card span{
grid-area:label;
font-size:12px;
font-weight:700;
color:rgba(255,255,255,0.82);
display:-webkit-box;
-webkit-line-clamp:1;
-webkit-box-orient:vertical;
overflow:hidden;
}

.hero-near-events-card{
display:grid;
gap:10px;
padding:14px;
border-radius:18px;
background:rgba(255,255,255,0.18);
border:1px solid rgba(255,255,255,0.28);
box-shadow:0 12px 28px rgba(0,0,0,0.16);
backdrop-filter:blur(12px);
color:#fff;
}

.hero-near-events-title{
display:flex;
align-items:center;
gap:10px;
font-size:15px;
font-weight:800;
}

.hero-near-events-title strong{
min-width:0;
}

.hero-near-events-title i{
width:36px;
height:36px;
display:flex;
align-items:center;
justify-content:center;
border-radius:13px;
background:#fff;
color:#2563eb;
font-size:16px;
}

.hero-near-events-list{
display:grid;
gap:8px;
}

.hero-near-event-item{
display:grid;
grid-template-columns:52px 1fr;
gap:9px;
align-items:center;
padding:9px 10px;
border-radius:13px;
background:rgba(255,255,255,0.14);
color:#fff;
text-decoration:none;
transition:transform .18s ease, background .18s ease;
}

.hero-near-event-item:hover{
transform:translateY(-2px);
background:rgba(255,255,255,0.22);
}

.hero-near-event-date{
font-size:12px;
font-weight:800;
color:#0f4c81;
white-space:nowrap;
}

.hero-near-event-name{
min-width:0;
font-size:12px;
font-weight:700;
line-height:1.25;
color:rgba(255,255,255,0.88);
display:-webkit-box;
-webkit-line-clamp:1;
-webkit-box-orient:vertical;
overflow:hidden;
}

.section-title,
.section-heading{
margin:16px clamp(18px,3vw,42px) 8px;
}

.section-title{
font-size:18px;
font-weight:bold;
color:#001a47;
}

.section-heading{
display:flex;
align-items:flex-end;
justify-content:space-between;
gap:14px;
position:relative;
}

.section-heading-spaced{
margin-top:22px;
}

.section-heading h2{
display:flex;
align-items:center;
gap:9px;
font-size:19px;
line-height:1.2;
font-weight:800;
color:#001a47;
margin:2px 0 0;
letter-spacing:0;
}

.section-heading h2:before{
content:"";
width:10px;
height:24px;
border-radius:999px;
background:linear-gradient(180deg,#2563eb,#60a5fa);
box-shadow:0 6px 14px rgba(37,99,235,0.24);
}

.section-kicker{
font-size:12px;
font-weight:700;
color:#61708a;
text-transform:uppercase;
letter-spacing:.04em;
}

.section-link{
flex-shrink:0;
font-size:13px;
font-weight:700;
color:#fff;
text-decoration:none;
padding:8px 12px;
border-radius:999px;
background:#001a47;
box-shadow:0 8px 18px rgba(0,26,71,0.14);
}

.horizontal{
display:flex;
gap:15px;
overflow-x:auto;
padding:0 clamp(18px,3vw,42px) 10px;
scroll-snap-type:x proximity;
scrollbar-width:thin;
scrollbar-color:#c7d1df transparent;
}

.business-strip{
gap:12px;
padding-bottom:14px;
margin:0 clamp(18px,3vw,42px);
padding:14px;
border-radius:18px;
background:
linear-gradient(180deg,rgba(255,255,255,0.86),rgba(248,250,252,0.96)),
radial-gradient(circle at top right,rgba(37,99,235,0.12),transparent 34%);
border:1px solid #e6edf5;
}

.promo-section{
position:relative;
margin:12px clamp(18px,3vw,42px) 0;
padding:16px 0 14px;
border-radius:22px;
background:
linear-gradient(135deg,rgba(248,251,255,0.98),rgba(239,246,255,0.98)),
radial-gradient(circle at top right,rgba(96,165,250,0.22),transparent 32%);
border:1px solid #d7e6fb;
box-shadow:0 18px 38px rgba(15,76,129,0.1);
overflow:hidden;
}

.promo-section:before,
.promo-section:after{
content:"";
position:absolute;
border-radius:50%;
pointer-events:none;
}

.promo-section:before{
width:150px;
height:150px;
right:-58px;
top:-66px;
background:rgba(37,99,235,0.14);
}

.promo-section:after{
width:92px;
height:92px;
left:-30px;
bottom:-44px;
background:rgba(0,26,71,0.08);
}

.promo-section .section-heading{
margin-top:0;
position:relative;
z-index:1;
}

.promo-spotlight{
position:relative;
z-index:1;
display:grid;
grid-template-columns:1fr 130px;
align-items:center;
gap:14px;
margin:0 20px 14px;
padding:16px;
border-radius:18px;
background:
linear-gradient(135deg,#0f4c81 0%,#2563eb 52%,#001a47 100%);
color:#fff;
box-shadow:0 16px 30px rgba(37,99,235,0.24);
overflow:hidden;
}

.promo-spotlight:before{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(90deg,rgba(255,255,255,0.14) 1px,transparent 1px),
linear-gradient(0deg,rgba(255,255,255,0.1) 1px,transparent 1px);
background-size:28px 28px;
opacity:.28;
}

.promo-spotlight-copy,
.promo-spotlight-art{
position:relative;
z-index:1;
}

.promo-spotlight-copy{
display:grid;
gap:4px;
}

.promo-spotlight-copy span{
font-size:12px;
font-weight:800;
text-transform:uppercase;
letter-spacing:.05em;
opacity:.88;
}

.promo-spotlight-copy strong{
font-size:22px;
line-height:1.1;
}

.promo-spotlight-copy small{
max-width:460px;
font-size:13px;
line-height:1.45;
opacity:.88;
}

.promo-spotlight-art{
height:104px;
}

.deal-bubble{
position:absolute;
display:flex;
align-items:center;
justify-content:center;
border-radius:26px;
background:rgba(255,255,255,0.95);
color:#2563eb;
box-shadow:0 14px 26px rgba(0,0,0,0.18);
}

.deal-bubble-main{
width:78px;
height:78px;
right:22px;
top:8px;
font-size:28px;
transform:rotate(-8deg);
}

.deal-bubble-ticket{
width:48px;
height:48px;
right:82px;
bottom:8px;
font-size:18px;
color:#001a47;
transform:rotate(12deg);
}

.deal-bubble-star{
width:38px;
height:38px;
right:8px;
bottom:2px;
font-size:15px;
color:#bfdbfe;
}

.promo-rail{
position:relative;
z-index:1;
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:12px;
overflow:visible;
padding:0 20px 8px;
scroll-snap-type:none;
scrollbar-width:thin;
scrollbar-color:#c7d1df transparent;
}

.promo-card{
position:relative;
display:grid;
grid-template-columns:auto 1fr;
gap:10px 12px;
align-items:flex-start;
width:100%;
min-height:126px;
padding:14px;
border:1px solid #d7e6fb;
border-radius:14px;
background:
linear-gradient(135deg,#ffffff 0%,#f4f8ff 100%);
box-shadow:0 10px 24px rgba(15,76,129,0.1);
scroll-snap-align:start;
overflow:hidden;
}

.promo-card:before{
content:"";
position:absolute;
top:50%;
left:-9px;
width:18px;
height:18px;
border-radius:50%;
background:#eef6ff;
box-shadow:calc(100vw / 3) 0 0 #eef6ff;
transform:translateY(-50%);
}

.promo-card:after{
content:"";
position:absolute;
top:14px;
bottom:14px;
right:72px;
border-left:1px dashed #9cc7f6;
}

.promo-icon{
width:38px;
height:38px;
border-radius:14px;
display:flex;
align-items:center;
justify-content:center;
background:linear-gradient(135deg,#0f4c81,#60a5fa);
color:#fff;
font-size:17px;
box-shadow:0 8px 16px rgba(37,99,235,0.24);
}

.promo-copy{
display:grid;
gap:3px;
min-width:0;
}

.promo-copy strong{
font-size:14px;
line-height:1.25;
color:#001a47;
}

.promo-copy span{
font-size:12px;
line-height:1.35;
color:#526173;
}

.promo-copy small{
font-size:11px;
font-weight:700;
color:#6a7788;
}

.promo-code{
grid-column:1 / -1;
justify-self:start;
border:none;
background:#001a47;
color:#fff;
border-radius:10px;
padding:8px 12px;
font-size:12px;
font-weight:800;
letter-spacing:.04em;
box-shadow:0 8px 16px rgba(0,26,71,0.16);
}

.featured-card{
background:
linear-gradient(#fff,#fff) padding-box,
linear-gradient(135deg,rgba(96,165,250,0.75),rgba(0,26,71,0.55)) border-box;
border-radius:16px;
width:200px;
border:1px solid transparent;
overflow:hidden;
flex-shrink:0;
display:block;
text-decoration:none;
color:inherit;
box-shadow:0 12px 26px rgba(15,23,42,0.09);
scroll-snap-align:start;
transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.featured-card:hover{
transform:translateY(-2px);
box-shadow:0 12px 28px rgba(15,23,42,0.11);
border-color:#c9d6e4;
}

.compact-card{
width:172px;
}

.card-image-wrap{
position:relative;
height:92px;
background:
linear-gradient(135deg,#e9f2ff,#fff1e5);
overflow:hidden;
}

.card-image-wrap:after{
content:"";
position:absolute;
left:0;
right:0;
bottom:0;
height:48%;
background:linear-gradient(180deg,transparent,rgba(0,26,71,0.34));
pointer-events:none;
}

.featured-card img{
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform .2s ease;
}

.featured-card:hover img{
transform:scale(1.04);
}

.card-badge{
position:absolute;
top:8px;
left:8px;
z-index:1;
border-radius:999px;
padding:4px 8px;
background:rgba(0,26,71,0.9);
color:#fff;
font-size:10px;
font-weight:800;
box-shadow:0 4px 12px rgba(0,0,0,0.18);
}

.card-badge-soft{
background:rgba(37,99,235,0.94);
}

.card-info{
padding:9px 10px 10px;
position:relative;
}

.card-info:before{
content:"";
position:absolute;
top:-16px;
right:10px;
width:30px;
height:30px;
border-radius:50%;
background:#fff;
box-shadow:0 6px 15px rgba(15,23,42,0.16);
}

.card-info:after{
content:"\f54e";
font-family:"Font Awesome 6 Free";
font-weight:900;
position:absolute;
top:-7px;
right:18px;
font-size:12px;
color:#2563eb;
}

.card-row{
display:flex;
justify-content:space-between;
align-items:center;
gap:8px;
margin-top:8px;
}

.card-name{
font-size:14px;
font-weight:800;
color:#001a47;
line-height:1.25;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
min-height:35px;
}

.rating{
display:flex;
align-items:center;
font-size:12px;
color:#333;
gap:4px;
font-weight:700;
min-width:0;
}

.rating-stars{
display:flex;
align-items:center;
gap:1px;
color:#f59e0b;
font-size:10px;
}

.location{
font-size:12px;
color:#627083;
margin-top:6px;
display:flex;
align-items:flex-start;
gap:5px;
line-height:1.25;
min-height:30px;
}

.location i{
font-size:11px;
color:#2563eb;
margin-top:2px;
}

.location span{
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
}

.review-count{
font-size:11px;
font-weight:700;
color:#69788c;
white-space:nowrap;
}

.empty-card{
width:240px;
min-height:112px;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
gap:8px;
flex:0 0 auto;
border:1px dashed #cbd6e4;
border-radius:14px;
background:#f8fafc;
color:#64748b;
font-size:13px;
font-weight:700;
}

.empty-card i{
font-size:20px;
color:#94a3b8;
}

.business-setup-modal{
display:none;
position:fixed;
inset:0;
z-index:3000;
background:rgba(0,0,0,0.52);
padding:16px;
align-items:center;
justify-content:center;
}

.business-setup-modal.is-visible{
display:flex;
}

.business-setup-panel{
width:min(100%, 460px);
background:#fff;
border-radius:24px;
padding:24px 22px;
box-shadow:0 24px 60px rgba(0,0,0,0.18);
position:relative;
}

.business-setup-close{
position:absolute;
top:14px;
right:16px;
border:none;
background:transparent;
color:#64748b;
font-size:22px;
cursor:pointer;
padding:0;
line-height:1;
box-shadow:none;
margin:0;
width:auto;
}

.business-setup-icon{
width:52px;
height:52px;
border-radius:18px;
display:flex;
align-items:center;
justify-content:center;
background:#e6eefc;
color:#001a47;
font-size:22px;
margin-bottom:14px;
}

.business-setup-title{
margin:0 0 8px;
font-size:23px;
line-height:1.2;
color:#001a47;
}

.business-setup-text{
margin:0 0 16px;
font-size:14px;
line-height:1.6;
color:#475569;
}

.business-setup-list{
display:grid;
gap:10px;
margin:0 0 18px;
padding:0;
list-style:none;
}

.business-setup-list li{
display:flex;
gap:10px;
align-items:flex-start;
padding:12px 14px;
border-radius:16px;
background:#f8fafc;
border:1px solid #dbe7f3;
font-size:14px;
color:#334155;
}

.business-setup-list i{
color:#001a47;
margin-top:2px;
}

.business-setup-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.business-setup-link,
.business-setup-dismiss{
flex:1 1 180px;
display:inline-flex;
align-items:center;
justify-content:center;
text-decoration:none;
border-radius:16px;
padding:14px 16px;
font-weight:700;
font-size:14px;
}

.business-setup-link{
background:#001a47;
color:#fff;
}

.business-setup-dismiss{
border:1px solid #cbd5e1;
color:#334155;
background:#fff;
}

.review-card{
position:relative;
width:auto;
margin:14px clamp(18px,3vw,42px) 20px;
padding:16px;
border-radius:18px;
background:
linear-gradient(180deg,rgba(255,255,255,0.94),rgba(248,250,252,0.98)),
radial-gradient(circle at top right,rgba(96,165,250,0.18),transparent 36%);
border:1px solid #dbe7f3;
box-shadow:0 14px 32px rgba(15,23,42,0.09);
overflow:hidden;
}

.review-card:before{
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:4px;
background:linear-gradient(90deg,#2563eb,#60a5fa,#001a47);
}

.review-images{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
grid-auto-rows:190px;
gap:6px;
margin-bottom:14px;
max-width:760px;
}

.review-image-btn{
position:relative;
padding:0;
border:none;
background:#e9f2ff;
cursor:pointer;
display:block;
border-radius:8px;
overflow:hidden;
height:100%;
}

.review-images img{
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform .2s ease;
}

.review-image-more{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:rgba(0,0,0,0.46);
color:#fff;
font-size:26px;
font-weight:800;
line-height:1;
}

.review-image-btn:hover img{
transform:scale(1.03);
}

.review-images-count-1{
grid-template-columns:1fr;
grid-auto-rows:360px;
max-width:560px;
}

.review-images-count-2{
grid-template-columns:repeat(2,minmax(0,1fr));
grid-auto-rows:300px;
max-width:720px;
}

.review-images-count-3{
grid-auto-rows:240px;
max-width:760px;
}

.review-images-count-4{
grid-template-columns:repeat(4,minmax(0,1fr));
grid-auto-rows:190px;
max-width:920px;
}

.review-images-count-5{
grid-template-columns:repeat(6,minmax(0,1fr));
grid-auto-rows:185px;
max-width:820px;
}

.review-images-count-5 .review-image-btn:nth-child(1),
.review-images-count-5 .review-image-btn:nth-child(2){
grid-column:span 3;
}

.review-images-count-5 .review-image-btn:nth-child(n+3){
grid-column:span 2;
}

.review-header{
display:flex;
align-items:flex-start;
gap:12px;
padding-bottom:12px;
border-bottom:1px solid rgba(203,213,225,0.72);
}

.profile-pic{
width:52px;
height:52px;
border-radius:50%;
object-fit:cover;
border:3px solid #fff;
box-shadow:0 8px 18px rgba(15,23,42,0.14);
}

.review-name{
font-weight:800;
font-size:15px;
color:#001a47;
line-height:1.25;
}

.review-business{
display:flex;
align-items:center;
gap:5px;
margin-top:3px;
font-size:13px;
font-weight:700;
max-width:100%;
color:#0057d9 !important;
line-height:1.25;
text-decoration:none;
white-space:normal;
overflow-wrap:anywhere;
min-height:16px;
visibility:visible !important;
opacity:1 !important;
width:fit-content;
}

.review-business:before{
content:"\f54e";
font-family:"Font Awesome 6 Free";
font-weight:900;
font-size:11px;
}

.review-business:hover{
text-decoration:underline;
}

.review-business.is-visible{
display:flex !important;
visibility:visible !important;
opacity:1 !important;
min-height:17px;
}

.review-date{
font-size:12px;
font-weight:700;
color:#7a8798;
margin-top:3px;
}

.review-text{
font-size:14px;
line-height:1.6;
color:#334155;
margin:14px 0 0;
padding:13px 14px;
border-radius:14px;
background:#ffffff;
border:1px solid #e6edf5;
}

.react-bar{
display:flex;
gap:10px;
margin-top:12px;
padding-top:12px;
border-top:1px solid rgba(203,213,225,0.72);
flex-wrap:wrap;
}

.react-btn{
background:#f1f6fd;
border:1px solid #dbe7f3;
cursor:pointer;
font-size:14px;
font-weight:800;
color:#526173;
display:flex;
align-items:center;
gap:6px;
min-height:36px;
padding:8px 12px;
border-radius:999px;
transition:background .18s ease, color .18s ease, border-color .18s ease;
}

.react-btn:hover{
background:#e6eefc;
color:#001a47;
border-color:#c7d9ee;
}

.react-btn.hearted{
color:#e74c3c;
background:#fff1f1;
border-color:#ffd0d0;
}

.comment{
font-size:13px;
line-height:1.45;
margin-top:8px;
padding:10px 12px;
border-radius:13px;
background:#f8fafc;
border:1px solid #e6edf5;
color:#334155;
}

.comment-empty{
color:#8a8f98;
text-align:center;
line-height:1.6;
padding:18px 12px;
}

.comment strong{
color:#001a47;
}

.comment-time{
font-size:11px;
font-weight:700;
color:#7a8798;
margin-top:4px;
}

.comment-box{
margin-top:12px;
display:flex;
align-items:center;
gap:8px;
}

.comment-box input{
flex:1;
min-width:0;
padding:11px 14px;
border-radius:999px;
border:1px solid #d7e6fb;
background:#fff;
font-size:13px;
color:#334155;
box-shadow:0 8px 18px rgba(15,76,129,0.06);
}

.comment-box input:focus{
outline:none;
border-color:#60a5fa;
box-shadow:0 0 0 3px rgba(96,165,250,0.18);
}

.comment-box button{
width:40px;
height:40px;
border:none;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
background:#0057d9;
color:#fff;
font-size:14px;
cursor:pointer;
box-shadow:0 8px 18px rgba(0,87,217,0.22);
transition:background .18s ease, transform .18s ease;
flex:0 0 auto;
}

.comment-box button:hover{
background:#003f9e;
transform:translateY(-1px);
}
.comment-modal{
display:none;
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.6);
z-index:999;
padding:24px;
overflow-y:auto;
align-items:center;
justify-content:center;
opacity:0;
visibility:hidden;
pointer-events:none;
transition:opacity 0.28s ease, visibility 0.28s ease;
overscroll-behavior:contain;
}

.comment-modal.is-visible{
opacity:1;
visibility:visible;
pointer-events:auto;
}

.modal-content{
background:#fff;
width:min(760px,calc(100vw - 48px));
max-height:min(82vh,900px);
overflow-y:auto;
margin:auto;
padding:24px 24px 32px;
border-radius:18px;
box-shadow:0 18px 45px rgba(0,0,0,0.2);
position:relative;
transform:translateY(24px);
opacity:0;
transition:transform 0.28s ease, opacity 0.28s ease;
will-change:transform, opacity;
scroll-padding-bottom:32px;
}

.comment-modal.is-visible .modal-content{
transform:translateY(0);
opacity:1;
}

.close-modal{
float:right;
font-size:22px;
cursor:pointer;
}

.modal-header{
font-weight:bold;
font-size:16px;
margin-bottom:10px;
display:flex;
justify-content:space-between;
align-items:center;
}

.modal-comments{
max-height:52vh;
overflow-y:auto;
margin-bottom:16px;
padding-right:4px;
padding-bottom:18px;
}

.modal-comment-box{
display:flex;
gap:8px;
align-items:center;
}

.modal-comment-box input{
flex:1;
min-width:0;
padding:12px 14px;
border-radius:20px;
border:1px solid #ccc;
}

.modal-comment-box button{
background:#001a47;
color:#fff;
border:none;
border-radius:50%;
width:35px;
height:35px;
cursor:pointer;
}
.react-btn{
background:#f1f6fd;
border:1px solid #dbe7f3;
cursor:pointer;
font-size:14px;
font-weight:800;
color:#526173;
display:flex;
align-items:center;
gap:6px;
min-height:36px;
padding:8px 12px;
border-radius:999px;
}

.image-modal{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.9);
display:none;
align-items:center;
justify-content:center;
z-index:9999;
padding:24px;
}

.image-modal-content{
position:relative;
display:flex;
align-items:center;
justify-content:center;
width:100%;
height:100%;
}

.image-modal-content img{
max-width:min(92vw,1000px);
max-height:88vh;
border-radius:12px;
display:block;
}

.image-nav,
.image-close{
position:absolute;
background:rgba(255,255,255,0.2);
border:none;
color:#fff;
font-size:24px;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
width:48px;
height:48px;
border-radius:999px;
line-height:1;
backdrop-filter:blur(4px);
z-index:2;
}

.image-prev{
left:20px;
top:50%;
transform:translateY(-50%);
}

.image-next{
right:20px;
top:50%;
transform:translateY(-50%);
}

.image-close{
top:20px;
right:20px;
width:52px;
}

.react-bar{
display:flex;
gap:10px;
margin-top:12px;
padding-top:12px;
border-top:1px solid rgba(203,213,225,0.72);
position:relative;
z-index:5;
flex-wrap:wrap;
}

.theme-dark body{
background:#000 !important;
}

.theme-dark .container{
background:#050505 !important;
box-shadow:none;
}

.theme-dark .topbar{
background:#101010;
border-bottom-color:#262626;
}

.theme-dark .search-bar,
.theme-dark .cart-btn{
background:#171717;
border-color:#2d2d2d;
color:#ededed;
}

.theme-dark .search-bar span{
color:#ededed;
}

.theme-dark .section-kicker{
color:#9ca3af;
}

.theme-dark .section-heading h2{
color:#ededed;
}

.theme-dark .section-link{
background:#001a47;
color:#fff;
}

.theme-dark .business-strip{
background:#0f0f0f;
border-color:#2d2d2d;
}

.theme-dark .featured-card,
.theme-dark .review-card,
.theme-dark .empty-card{
background:#141414;
border-color:#2d2d2d;
box-shadow:none;
color:#ededed;
}

.theme-dark .card-info{
background:#141414;
}

.theme-dark .card-info:before{
background:#202020;
}

.theme-dark .card-name,
.theme-dark .review-name,
.theme-dark .comment strong{
color:#f8fafc;
}

.theme-dark .location,
.theme-dark .location span,
.theme-dark .review-count,
.theme-dark .review-date,
.theme-dark .comment-time{
color:#a3a3a3;
}

.theme-dark .rating,
.theme-dark .review-text,
.theme-dark .comment{
color:#d4d4d4;
}

.theme-dark .rating-stars,
.theme-dark .location i,
.theme-dark .review-business,
.theme-dark .card-info:after{
color:#f59e0b;
}

.theme-dark .review-text,
.theme-dark .comment,
.theme-dark .comment-box input,
.theme-dark .modal-content{
background:#171717;
border-color:#2d2d2d;
}

.theme-dark .review-header,
.theme-dark .react-bar{
border-color:#2d2d2d;
}

.theme-dark .react-btn{
background:#171717;
border-color:#2d2d2d;
color:#d4d4d4;
}

.theme-dark .react-btn:hover{
background:#202020;
color:#fff;
}

.theme-dark .hero-primary{
background:#fff;
color:#001a47 !important;
}

.theme-dark .hero-secondary{
background:rgba(255,255,255,0.16);
color:#fff !important;
border-color:rgba(255,255,255,0.32);
}
@media (max-width: 768px){
.topbar{
padding:10px 14px;
}

.logo{
width:78px;
height:56px;
}

.search-bar{
min-width:0;
font-size:13px;
padding:8px 10px;
}

.welcome,
.section-title{
margin-left:14px;
margin-right:14px;
}

.section-heading{
margin-left:14px;
margin-right:14px;
}

.horizontal{
padding:0 14px 10px;
gap:12px;
}

.business-strip{
margin-left:14px;
margin-right:14px;
padding:12px;
}

.promo-section{
margin-left:14px;
margin-right:14px;
border-radius:20px;
}

.home-hero{
grid-template-columns:1fr;
margin-left:14px;
margin-right:14px;
padding:22px;
border-radius:24px;
}

.home-hero h1{
font-size:34px;
}

.hero-deals{
grid-template-columns:1fr;
}

.hero-deal-card{
grid-template-columns:1fr;
grid-template-areas:"icon" "value" "label";
justify-items:center;
text-align:center;
gap:6px;
padding:12px 8px;
}

.hero-deal-card i{
width:38px;
height:38px;
border-radius:13px;
}

.hero-near-events-card{
padding:12px;
}

.hero-near-event-item{
grid-template-columns:48px 1fr;
padding:8px 9px;
}

.promo-spotlight{
grid-template-columns:1fr 96px;
margin-left:14px;
margin-right:14px;
padding:14px;
}

.promo-spotlight-copy strong{
font-size:19px;
}

.promo-spotlight-art{
height:92px;
}

.deal-bubble-main{
width:64px;
height:64px;
right:16px;
font-size:23px;
}

.deal-bubble-ticket{
width:42px;
height:42px;
right:58px;
}

.deal-bubble-star{
width:34px;
height:34px;
}

.promo-rail{
display:flex;
overflow-x:auto;
padding-left:14px;
padding-right:14px;
}

.promo-card{
width:232px;
flex:0 0 auto;
}

.featured-card{
width:180px;
}

.compact-card{
width:160px;
}

.card-image-wrap{
height:88px;
}

.review-card{
margin:14px;
padding:12px;
}

.review-images{
grid-template-columns:repeat(3,minmax(0,1fr));
grid-auto-rows:auto;
max-width:330px;
}

.review-image-btn{
aspect-ratio:1 / 1;
height:auto;
}

.review-images-count-1,
.review-images-count-2,
.review-images-count-3,
.review-images-count-4,
.review-images-count-5{
grid-template-columns:repeat(3,minmax(0,1fr));
grid-auto-rows:auto;
max-width:330px;
}

.review-images-count-5 .review-image-btn:nth-child(1),
.review-images-count-5 .review-image-btn:nth-child(2),
.review-images-count-5 .review-image-btn:nth-child(n+3){
grid-column:auto;
}

.review-header{
align-items:flex-start;
}

.comment-modal{
padding:0;
align-items:flex-end;
}

.modal-content{
width:100%;
max-width:100%;
max-height:min(88dvh,88vh);
margin:0 0 58px;
padding:18px 16px calc(18px + env(safe-area-inset-bottom, 0px));
border-radius:20px 20px 0 0;
}

.modal-comments{
max-height:calc(88dvh - 180px);
padding-bottom:12px;
}

.business-setup-modal{
padding:12px;
align-items:center;
}

.business-setup-panel{
width:min(100%, 460px);
border-radius:22px;
padding:22px 16px 18px;
max-height:calc(100vh - 24px);
overflow-y:auto;
}

.business-setup-title{
font-size:21px;
}

.business-setup-actions{
flex-direction:column;
}

.business-setup-link,
.business-setup-dismiss{
width:100%;
}
}

@media (max-width: 480px){
.topbar{
gap:8px;
padding:10px 12px;
}

.search-bar span{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

.welcome,
.section-title{
margin-left:12px;
margin-right:12px;
}

.welcome{
font-size:16px;
padding:18px 16px;
border-radius:18px;
}

.home-hero{
margin:14px 12px 18px;
padding:16px 14px;
min-height:0;
border-radius:22px;
}

.home-hero h1{
font-size:26px;
margin-top:10px;
}

.home-hero p{
font-size:13px;
line-height:1.45;
}

.hero-actions{
margin-top:12px;
}

.hero-primary,
.hero-secondary{
width:100%;
min-height:36px;
padding:9px 12px;
font-size:13px;
}

.hero-deals{
grid-template-columns:1fr;
gap:8px;
margin-top:4px;
}

.hero-deal-card{
grid-template-columns:40px 1fr;
grid-template-areas:"icon value" "icon label";
justify-items:start;
text-align:left;
padding:11px 12px;
}

.hero-deal-card i{
width:40px;
height:40px;
}

.hero-near-events-card{
padding:10px;
gap:8px;
}

.hero-near-events-title i{
width:34px;
height:34px;
}

.hero-near-event-item{
padding:7px 8px;
}

.section-heading{
margin-left:12px;
margin-right:12px;
align-items:flex-start;
}

.section-heading h2{
font-size:18px;
}

.section-link{
font-size:12px;
padding-top:5px;
}

.horizontal{
padding:0 12px 10px;
}

.business-strip{
margin-left:12px;
margin-right:12px;
padding:10px;
border-radius:16px;
}

.promo-section{
margin-left:12px;
margin-right:12px;
padding-top:14px;
border-radius:18px;
}

.promo-spotlight{
grid-template-columns:1fr;
margin-left:12px;
margin-right:12px;
padding:14px;
}

.promo-spotlight-copy strong{
font-size:18px;
}

.promo-spotlight-copy small{
font-size:12px;
}

.promo-spotlight-art{
display:none;
}

.promo-rail{
display:flex;
overflow-x:auto;
padding-left:12px;
padding-right:12px;
}

.promo-card{
width:220px;
flex:0 0 auto;
min-height:124px;
padding:13px;
}

.featured-card{
width:160px;
}

.compact-card{
width:150px;
}

.card-image-wrap{
height:82px;
}

.card-info{
padding:8px;
}

.card-name{
font-size:13px;
min-height:33px;
}

.location{
font-size:11px;
min-height:29px;
}

.rating span,
.review-count{
font-size:10px;
}

.review-card{
margin:12px;
}

.review-images{
grid-template-columns:repeat(3,minmax(0,1fr));
grid-auto-rows:auto;
max-width:100%;
}

.profile-pic{
width:44px;
height:44px;
}

.review-name,
.review-business,
.review-text,
.react-btn{
font-size:13px;
}

.comment-modal{
padding:0;
}

.modal-content{
width:100vw;
max-height:min(90dvh,90vh);
margin:0 0 62px;
padding:16px 14px calc(18px + env(safe-area-inset-bottom, 0px));
border-radius:22px 22px 0 0;
}

.modal-header{
font-size:15px;
}

.modal-comments{
max-height:calc(90dvh - 176px);
padding-bottom:10px;
}

.modal-comment-box{
gap:6px;
position:sticky;
bottom:0;
padding-top:10px;
padding-bottom:8px;
background:#fff;
}

.modal-comment-box input{
padding:11px 12px;
font-size:13px;
}

.modal-comment-box button{
width:40px;
height:40px;
flex-shrink:0;
}

.image-modal{
padding:16px;
}

.image-nav{
display:none !important;
}

.image-nav,
.image-close{
width:42px;
height:42px;
font-size:20px;
}

.image-prev{
left:12px;
}

.image-next{
right:12px;
}

.image-close{
top:12px;
right:12px;
width:46px;
}

.business-setup-panel{
padding:20px 14px 16px;
}

.business-setup-list li{
padding:11px 12px;
}
}
