*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Arial,sans-serif;background:#f4f7f8;color:#202124}
body{min-height:100vh}
body.lightbox-open{overflow:hidden;overscroll-behavior:none}
.page{min-height:100vh;padding:48px 18px}
.map-bg{position:fixed;inset:0 0 auto 0;height:280px;background:linear-gradient(135deg,#e7e8df,#d7e3e5);z-index:-1}
.business-card{max-width:720px;margin:0 auto;background:#fff;border-radius:30px;box-shadow:0 20px 45px rgba(0,0,0,.14);overflow:hidden}
.card-head{display:flex;justify-content:space-between;gap:18px;padding:34px 34px 20px}
.card-head h1{margin:0 0 12px;font-size:40px;line-height:1.15;font-weight:800}
.rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:21px}
.rating strong{font-size:26px;font-weight:800}
.stars{color:#fbbc04;letter-spacing:1px;font-size:22px}
.review-count-button{border:0;background:transparent;padding:0;color:#5f6368;font:inherit;font-size:20px;cursor:pointer}
.category,.open{margin:9px 0}
.category{font-size:22px;font-weight:600;line-height:1.4;color:#404448}
.open{color:#138a4b;font-size:23px;font-weight:800}
.round-button{width:54px;height:54px;flex:0 0 54px;border:0;border-radius:50%;font-size:24px;cursor:pointer}
.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 34px 24px}
.action{min-height:72px;border:0;border-radius:36px;display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;background:#dff4f6;color:#17484c;font-size:23px;font-weight:800;cursor:pointer}
.action.primary{background:#138b8d;color:#fff}
.gallery-section{padding:0 0 20px}
.gallery-slider{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;padding:0 34px 10px;scrollbar-width:none}
.gallery-slider::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
.gallery-item{position:relative;flex:0 0 76%;height:240px;border:0;padding:0;border-radius:18px;overflow:hidden;scroll-snap-align:center;scroll-snap-stop:always;background:#eef1f2;user-select:none;-webkit-user-select:none}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;-webkit-user-drag:none}
.missing-text{display:none}
.gallery-item.missing .missing-text{display:grid;place-items:center;position:absolute;inset:0;padding:20px;font-size:18px}
.gallery-dots{display:flex;align-items:center;justify-content:center;gap:7px;min-height:22px}
.gallery-dot{width:8px;height:8px;flex:0 0 8px;border:0;border-radius:50%;background:#c8cdd0;padding:0;transition:.18s}
.gallery-dot.active{width:10px;height:10px;flex-basis:10px;background:#138b8d}
.tabs{display:flex;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #e5e7e9;padding:0 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tab{position:relative;flex:1 0 auto;min-width:max-content;border:0;background:#fff;padding:20px 15px;font-size:21px;font-weight:800;color:#5f6368;cursor:pointer}
.tab::after{content:"";position:absolute;right:12px;bottom:0;left:12px;height:3px;border-radius:3px 3px 0 0;background:#138b8d;transform:scaleX(0);transition:transform .22s ease}
.tab.active{color:#138b8d}
.tab.active::after{transform:scaleX(1)}
.tab-stage{touch-action:pan-y}
.tab-content{display:none;padding:28px 34px 34px;touch-action:pan-y}
.tab-content.active{display:block;animation:tabOpen .18s ease}
@keyframes tabOpen{from{opacity:.5;transform:translateX(8px)}to{opacity:1;transform:none}}
.info-box{display:flex;gap:18px;background:#edf7fb;border-radius:20px;padding:24px}
.info-icon{font-size:27px}.info-box h2{margin:0 0 10px;font-size:30px}.info-box .open{font-size:25px}.info-box p{margin:8px 0 0;color:#596167;font-size:21px;line-height:1.45}
.details{margin-top:20px;border:1px solid #e2e5e7;border-radius:20px;overflow:hidden}
.details a{display:flex;width:100%;min-height:100px;align-items:center;gap:18px;padding:22px;border:0;background:#fff;text-align:left;text-decoration:none;color:inherit;cursor:pointer}
.details a+a{border-top:1px solid #e2e5e7}
.detail-icon{font-size:29px}.details b,.details small{display:block}.details b{font-size:30px;line-height:1.25;font-weight:800;overflow-wrap:anywhere}.details small{color:#686f74;margin-top:8px;font-size:21px}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-grid article{border:1px solid #e4e7e8;border-radius:16px;padding:20px}.service-grid article>span{font-size:28px}.service-grid h3{margin:10px 0;font-size:23px}.service-grid p{margin:0;color:#5f676c;font-size:19px;line-height:1.5}
.reviews-summary{display:flex;align-items:center;gap:18px;padding-bottom:10px}.reviews-summary>strong{font-size:38px}
.review{display:flex;gap:15px;padding:22px 0;border-bottom:1px solid #e6e8e9}
.avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:grid;place-items:center;background:#dff4f6;font-size:21px;font-weight:800}
.review-main{min-width:0;flex:1}
.review-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.review b{font-size:22px}.review-meta{display:flex;align-items:center;gap:10px;margin-top:5px}.review-meta .stars{font-size:18px}.review-time{font-size:16px;color:#70757a;white-space:nowrap}.review p{font-size:19px;line-height:1.5;margin:12px 0 0}
.photo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-list button{border:0;padding:0;border-radius:14px;overflow:hidden}.photo-list img{display:block;width:100%;height:180px;object-fit:cover}
.lightbox{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;overflow:hidden;background:rgba(0,0,0,.94);overscroll-behavior:none}
.lightbox.open{display:flex}
.lightbox figure{display:flex;width:100%;height:100%;margin:0;align-items:center;justify-content:center;overflow:hidden;pointer-events:none}
#lightboxImage{display:block;max-width:100vw;max-height:calc(100vh - 80px);object-fit:contain;transform-origin:center;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;will-change:transform}
.lightbox figcaption{position:absolute;right:0;bottom:18px;left:0;color:#fff;text-align:center;font-size:18px;pointer-events:none}
.lightbox-close,.lightbox-arrow{position:absolute;z-index:3;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}
.lightbox-close{top:max(12px,env(safe-area-inset-top));right:14px;width:48px;height:48px;border-radius:50%;font-size:30px}
.lightbox-arrow{top:50%;width:48px;height:64px;transform:translateY(-50%);font-size:38px}.lightbox-prev{left:12px}.lightbox-next{right:12px}
@media(max-width:520px){
.page{padding:30px 12px}.business-card{border-radius:24px}.card-head{padding:28px 24px 18px}.card-head h1{font-size:33px}.rating{font-size:18px}.rating strong{font-size:22px}.stars{font-size:19px}.review-count-button{font-size:18px}.category{font-size:20px}.open{font-size:21px}.round-button{width:48px;height:48px;flex-basis:48px}.actions{padding:0 24px 22px;gap:10px}.action{min-height:66px;font-size:20px}.gallery-slider{padding-left:24px;padding-right:24px}.gallery-item{flex-basis:78%;height:210px}.tabs{padding:0 10px}.tab{padding:18px 12px;font-size:18px}.tab-content{padding:24px}.info-box{padding:20px}.info-box h2{font-size:25px}.info-box .open{font-size:22px}.info-box p{font-size:18px}.details a{min-height:92px;padding:20px}.details b{font-size:25px}.details small{font-size:18px}.service-grid{grid-template-columns:1fr}.service-grid p,.review p{font-size:18px}.review b{font-size:21px}.lightbox-arrow{display:none}#lightboxImage{max-height:100vh}
}

.review-panel{margin:18px 0 8px;padding:22px;border:1px solid #e1e5e7;border-radius:20px;background:#fff}
.review-panel h2{margin:0;font-size:26px}
.review-panel-text{margin:8px 0 16px;color:#667075;font-size:17px;line-height:1.45}
.review-star-picker{display:flex;gap:6px;margin-bottom:18px}
.review-star-picker button{border:0;background:transparent;padding:0 2px;color:#fbbc04;font-size:38px;line-height:1;cursor:pointer;transition:transform .15s ease}
.review-star-picker button:hover,.review-star-picker button:focus-visible{transform:scale(1.12);outline:none}
.review-label{display:block;margin-bottom:8px;font-size:17px;font-weight:700}
.review-panel textarea{width:100%;min-height:118px;resize:vertical;border:1px solid #cfd5d8;border-radius:14px;padding:14px;font:inherit;font-size:17px;line-height:1.45;outline:none}
.review-panel textarea:focus{border-color:#138b8d;box-shadow:0 0 0 3px rgba(19,139,141,.12)}
.review-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}
.review-panel-footer small{max-width:280px;color:#6b7377;font-size:13px;line-height:1.4}
.review-publish{border:0;border-radius:999px;background:#138b8d;color:#fff;padding:13px 20px;font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}
.review-publish:active{transform:translateY(1px)}
.review-form-message{min-height:20px;margin:10px 0 0;color:#b3261e;font-size:14px;font-weight:600}
@media(max-width:520px){.review-panel{padding:18px}.review-panel h2{font-size:23px}.review-star-picker button{font-size:34px}.review-panel-footer{align-items:stretch;flex-direction:column}.review-publish{width:100%;min-height:50px}.review-panel-footer small{max-width:none}}
