:root{
  --bg:#ffffff; --bg-2:#f7f9fc; --text:#0b1220; --muted:#5b667a;
  --card:#ffffff; --border:#e4e8ef;
  --shadow:0 12px 30px rgba(16,24,40,.10);
  --shadow-2:0 20px 60px rgba(16,24,40,.18);
  --primary:#0f3d5e; --primary-2:#0b6b8a; --accent:#1b7fff;
  --danger:#a30000; --danger-bg:#fff2f2;
  --success:#106b42; --success-bg:#effaf3;
  --radius:18px; --radius-sm:12px; --ring:0 0 0 3px rgba(27,127,255,.22);
  --max:1160px;
}
[data-theme="dark"]{
  --bg:#0b1220; --bg-2:#0f1a2e; --text:#e8eefc; --muted:#a9b4cc;
  --card:#0f1a2e; --border:#24314b;
  --shadow:0 12px 30px rgba(0,0,0,.35);
  --shadow-2:0 20px 60px rgba(0,0,0,.45);
  --primary:#2b7bb3; --primary-2:#2aa6c2; --accent:#65a8ff;
  --danger:#ff6b6b; --danger-bg:#2a0f12;
  --success:#38d996; --success-bg:#0c2a1a;
}
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
img,svg{max-width:100%; height:auto}
body{
  margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg); color:var(--text); line-height:1.5; letter-spacing:.1px;
}
a{color:inherit; text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(var(--max), 92vw); margin:0 auto}
.muted{color:var(--muted)}
.small{font-size:13px}
.lead{font-size:18px; margin:0 0 14px; color:var(--muted)}
.skip-link{position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip-link:focus{
  left:16px; top:16px; width:auto; height:auto; padding:10px 12px;
  background:var(--card); border:2px solid var(--accent); border-radius:var(--radius-sm);
  z-index:9999; box-shadow:var(--shadow)
}
.sr-only{position:absolute!important; width:1px;height:1px; padding:0;margin:-1px; overflow:hidden;clip:rect(0,0,0,0); white-space:nowrap;border:0}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px; border-radius:var(--radius-sm);
  border:1px solid transparent; font-weight:850; cursor:pointer; user-select:none;
  text-decoration:none!important; transition: transform .06s ease, background .15s ease, border-color .15s ease;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary); color:#fff}
.btn-ghost{background:transparent; border-color:var(--border); color:var(--text)}
.btn-soft{background:var(--bg-2); border-color:var(--border); color:var(--text)}
.btn:focus, input:focus, select:focus, button:focus{outline:none; box-shadow:var(--ring); border-color:var(--accent)}
.pill{
  display:inline-flex; align-items:center; gap:8px; padding:6px 10px;
  border-radius:999px; border:1px solid var(--border);
  background: color-mix(in srgb, var(--bg-2) 70%, transparent);
  font-weight:850; font-size:12px; max-width:100%; white-space:normal; overflow-wrap:anywhere;
}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50;
  background: color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--border);
}
.header-inner{display:flex; align-items:center; gap:16px; padding:14px 0}
.brand{display:flex; gap:10px; align-items:center; line-height:1.05; text-decoration:none!important; font-weight:950; min-width:0}
.brand .stack{display:flex; flex-direction:column; min-width:0}
.brand-mark{letter-spacing:.6px; font-size:18px}
.brand-sub{font-weight:900; font-size:14px; color:var(--primary-2); overflow-wrap:anywhere}
.brand-logo{width:264px; height:264px; border-radius:50%; object-fit:cover; flex-shrink:0}
.nav{display:flex; gap:8px; margin-left:auto; flex-wrap:wrap}
.nav a{
  padding:10px 10px; border-radius:12px; border:1px solid transparent;
  transition: background .15s ease, border-color .15s ease;
}
.nav a:hover{background: color-mix(in srgb, var(--bg-2) 80%, transparent); border-color:var(--border); text-decoration:none}
.nav a.active{background: color-mix(in srgb, var(--primary) 12%, var(--bg-2));
  border-color: color-mix(in srgb, var(--primary) 22%, var(--border));}
.header-actions{display:flex; gap:10px; align-items:center}
.icon-btn{
  width:40px; height:40px; border-radius:12px;
  border:1px solid var(--border); background:transparent; cursor:pointer;
  display:inline-grid; place-items:center;
  transition: background .15s ease, transform .06s ease;
}
.icon-btn:hover{background: color-mix(in srgb, var(--bg-2) 80%, transparent)}
.icon-btn:active{transform:translateY(1px)}
.nav-toggle{display:none; margin-left:auto; width:44px; height:44px; border-radius:14px; border:1px solid var(--border); background:transparent; cursor:pointer; font-weight:950; font-size:18px}
.mobile-nav{border-top:1px solid var(--border); background:var(--bg); padding:10px 0 16px; display:none}
.mobile-nav .grid{display:grid; gap:8px}
.mobile-nav a{padding:12px 12px; border-radius:14px; border:1px solid var(--border); background: color-mix(in srgb, var(--bg-2) 60%, transparent); font-weight:900}

/* Hero */
.hero{
  background: radial-gradient(1200px 600px at 25% 0%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 55%),
              linear-gradient(180deg, var(--bg-2), var(--bg));
  border-bottom:1px solid var(--border);
  padding:34px 0 22px;
}
.hero-inner{display:grid; grid-template-columns: 1.2fr .8fr; gap:22px; align-items:start}
h1{font-size:clamp(28px, 4vw, 46px); line-height:1.08; margin:0 0 10px; letter-spacing:.4px}
.panel{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px}
.hero-photo{border-radius:var(--radius); border:1px solid var(--border); overflow:hidden; box-shadow:var(--shadow); background:var(--bg-2); position:relative; aspect-ratio: 4/3}
.hero-photo img{width:100%; height:100%; object-fit:cover; display:block}
.hero-photo .badge{
  position:absolute; left:12px; top:12px; padding:8px 10px; border-radius:999px;
  background: color-mix(in srgb, var(--bg) 82%, transparent); border:1px solid var(--border);
  font-weight:950; backdrop-filter: blur(8px)
}
.hero-photo .dots{position:absolute; right:10px; bottom:10px; display:flex; gap:8px}
.dot{width:10px; height:10px; border-radius:99px; border:1px solid var(--border); background: color-mix(in srgb, var(--bg) 70%, transparent); cursor:pointer}
.dot.active{background:var(--accent); border-color: color-mix(in srgb, var(--accent) 65%, var(--border))}

.section{padding:34px 0}
.section-head{display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:16px}
.cards{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px}
.card{
  border-radius:var(--radius); border:1px solid var(--border); background:var(--card);
  box-shadow:var(--shadow); padding:16px;
}
.card .icon{font-weight:950; font-size:18px}
.card h3{margin:10px 0 6px}
.card p{margin:0; color:var(--muted)}

.photo-grid{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px}
.photo-card{border-radius:var(--radius); border:1px solid var(--border); overflow:hidden; box-shadow:var(--shadow); background:var(--bg-2); aspect-ratio: 16/10; position:relative}
.photo-card img{width:100%; height:100%; object-fit:cover; display:block}
.photo-card .cap{position:absolute; left:12px; bottom:12px; padding:8px 10px; border-radius:999px;
  background: color-mix(in srgb, var(--bg) 82%, transparent); border:1px solid var(--border); font-weight:950; backdrop-filter: blur(8px)}

/* Shop */
.layout{display:grid; grid-template-columns: 310px 1fr; gap:16px; align-items:start}
.filters{position:sticky; top:92px}
.filter-block{padding:12px 0; border-bottom:1px solid var(--border)}
.filter-block:last-child{border-bottom:none; padding-bottom:2px}
.filter-block label{display:flex; gap:10px; align-items:center; padding:8px 0; font-weight:750}
.filter-row{display:grid; gap:10px}
.filter-row select, .filter-row input[type="search"]{
  width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:14px; font-weight:850; background:var(--card); color:var(--text)
}
.filter-row input[type="range"]{width:100%}

.results{padding:14px}
.results-bar{display:flex; justify-content:space-between; gap:12px; align-items:center; padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:14px; flex-wrap:wrap}
.chips{display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 0}
.chip{display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px; border:1px solid var(--border); background: color-mix(in srgb, var(--bg-2) 75%, transparent); font-weight:900; font-size:12px}
.chip button{border:none; background:transparent; cursor:pointer; font-weight:950; color:var(--muted)}
.chip button:hover{color:var(--text)}
.select{padding:9px 10px; border-radius:14px; border:1px solid var(--border); background:transparent; font-weight:900; color:var(--text)}
.toolbar{display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:flex-end}
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:14px}

.product-grid{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:14px; margin-top:14px}
.product-card{
  border-radius:var(--radius); border:1px solid var(--border); background:var(--card);
  overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; min-height:330px;
  transition: transform .08s ease, border-color .15s ease;
}
.product-card:hover{transform:translateY(-2px); border-color: color-mix(in srgb, var(--primary) 22%, var(--border))}
.product-media{height:160px; background:var(--bg-2); border-bottom:1px solid var(--border); position:relative}
.product-media img{width:100%; height:100%; object-fit:cover; display:block}
.tag{position:absolute; left:10px; top:10px; padding:6px 10px; border-radius:999px; border:1px solid var(--border);
  background: color-mix(in srgb, var(--bg) 82%, transparent); font-weight:950; font-size:12px; backdrop-filter: blur(8px)}
.product-body{padding:12px; display:flex; flex-direction:column; gap:8px; flex:1}
.product-title{margin:0; font-size:16px; line-height:1.2}
.price-row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:4px}
.price{font-weight:950; font-size:16px}
.stock{font-weight:900; font-size:12px; padding:6px 10px; border-radius:999px; border:1px solid var(--border);
  background: color-mix(in srgb, var(--bg-2) 75%, transparent); color:var(--muted)}
.stock.ok{color:var(--success); border-color: color-mix(in srgb, var(--success) 40%, var(--border)); background:var(--success-bg)}
.stock.low{color:#b36b00; border-color: color-mix(in srgb, #b36b00 45%, var(--border)); background: color-mix(in srgb, #fff6e8 65%, var(--bg))}
.stock.out{color:var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); background:var(--danger-bg)}
.product-actions{display:flex; gap:10px; margin-top:auto}
.product-actions .btn{flex:1}

/* Product details modal */
.product-modal-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; z-index:110}
.product-modal{
  position:fixed; left:50%; top:50%; transform:translate(-50%, -50%) scale(.98);
  width:min(640px, 92vw); max-height:88vh; overflow:auto;
  background:var(--bg); border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow-2);
  display:none; z-index:120;
}
.product-modal.open{display:block; transform:translate(-50%, -50%) scale(1)}
.product-modal-backdrop.open{display:block}
.product-modal-head{padding:14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:12px}
.product-modal-head h3{margin:0; font-size:20px; line-height:1.2}
.product-modal-body{padding:14px; display:grid; grid-template-columns:180px 1fr; gap:14px; align-items:start}
.product-modal-body img{width:100%; border-radius:14px; border:1px solid var(--border); background:var(--bg-2); aspect-ratio:1/1; object-fit:cover}
.product-modal-copy{display:grid; gap:10px}
.product-modal-description{margin:0; color:var(--muted)}
.product-modal-price{font-weight:950}
.product-modal-field{display:grid; gap:6px; font-weight:850}
.product-modal-field select{
  width:100%; padding:10px 12px; border:1px solid var(--border);
  border-radius:12px; font-weight:850; background:var(--card); color:var(--text)
}
.product-modal-foot{padding:14px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:10px}

/* Drawer (reservation list) */
.drawer-backdrop{position:fixed; inset:0; background: rgba(0,0,0,.45); display:none; z-index:90}
.drawer{position:fixed; top:0; right:0; width:min(420px, 92vw); height:100%;
  background:var(--bg); border-left:1px solid var(--border); box-shadow:var(--shadow-2);
  transform:translateX(105%); transition: transform .18s ease; z-index:100; display:flex; flex-direction:column;
}
.drawer.open{transform:translateX(0)}
.drawer-backdrop.open{display:block}
.drawer-head{padding:14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:10px}
.drawer-body{padding:14px; overflow:auto; display:grid; gap:10px}
.cart-item{border:1px solid var(--border); border-radius:16px; background:var(--card); padding:10px;
  display:grid; grid-template-columns: 56px 1fr auto; gap:10px; align-items:center
}
.cart-item img{width:56px; height:56px; border-radius:12px; object-fit:cover; border:1px solid var(--border); background:var(--bg-2); display:block}
.cart-item h4{margin:0; font-size:14px; line-height:1.2}
.qty{display:flex; align-items:center; gap:6px}
.qty button{width:32px; height:32px; border-radius:12px; border:1px solid var(--border); background:transparent; font-weight:950; cursor:pointer}
.drawer-foot{margin-top:auto; padding:14px; border-top:1px solid var(--border); display:grid; gap:10px; background: color-mix(in srgb, var(--bg) 92%, transparent)}
.total-row{display:flex; align-items:center; justify-content:space-between; font-weight:950}
.reserve-form{display:grid; gap:8px}
.reserve-form input{
  width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:12px;
  font-weight:750; background:var(--card); color:var(--text); font-size:14px;
}
.reserve-form input::placeholder{color:var(--muted); font-weight:700}
.reserve-msg{font-size:13px; font-weight:800; min-height:20px}
.reserve-msg.error{color:var(--danger)}
.reserve-msg.success{color:var(--success)}
.reserve-msg.warning{color:#b36b00}

/* FAQ */
.faq{display:grid; gap:10px}
details{
  border:1px solid var(--border); border-radius:16px; background:var(--card); box-shadow:var(--shadow);
  padding:12px 14px;
}
summary{cursor:pointer; font-weight:950}
details p{margin:10px 0 0; color:var(--muted)}

/* Reviews */
.reviews{display:grid; gap:12px}
.review{border:1px solid var(--border); border-radius:16px; background:var(--card); box-shadow:var(--shadow); padding:14px}
.review-head{display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap}
.review-meta{display:inline-flex; align-items:center; gap:10px; font-weight:850}
.rating-stars{font-weight:950; letter-spacing:.08em; color:#c38800}
.rating-value{font-weight:900; color:var(--muted)}
.review-age{font-weight:850}
.reviews-carousel{display:grid; gap:12px}
.reviews-carousel .reviews-controls{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap}
.reviews-carousel .controls-group{display:flex; gap:8px; align-items:center}
.reviews-carousel .control-btn{min-width:44px; padding:10px 12px}
.reviews-carousel .review-count{font-weight:850; color:var(--muted)}
.reviews.is-carousel .review{display:none}
.reviews.is-carousel .review.active{display:block}

/* About page */
.about-block{margin-bottom:28px}
.about-block h2{margin:0 0 4px}
.about-block p{margin:8px 0 0}
.about-subtitle{margin:0 0 8px!important; font-size:15px}
.about-map{margin:22px 0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow)}
.about-map iframe{width:100%; height:400px; display:block}
.fact-cards{display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:16px}

/* Footer */
footer{border-top:1px solid var(--border); padding:26px 0; background: linear-gradient(180deg, var(--bg), var(--bg-2))}

/* Responsive */
@media (max-width: 980px){
  .header-inner{flex-wrap:wrap}
  .header-actions{margin-left:auto}
  .hero-inner{grid-template-columns:1fr}
  .layout{grid-template-columns:1fr}
  .filters{position:static}
  .product-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .photo-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .fact-cards{grid-template-columns: repeat(2, minmax(0,1fr))}
}
@media (max-width: 720px){
  .header-inner{padding:10px 0; gap:10px}
  .brand-logo{width:216px; height:216px}
  .brand-mark{font-size:16px}
  .brand-sub{font-size:12px}
  .nav{display:none}
  .nav-toggle{display:inline-grid; place-items:center}
  .nav-toggle{order:2; margin-left:0}
  .header-actions{order:3; width:100%; justify-content:space-between}
  .header-actions .small{display:none}
  .hero{padding:24px 0 18px}
  .section{padding:26px 0}
  .page-head{align-items:flex-start}
  .mobile-nav.show{display:block}
  .product-grid{grid-template-columns:1fr}
  .product-actions{flex-direction:column}
  .product-actions .btn{width:100%}
  .product-modal-body{grid-template-columns:1fr}
  .reviews-carousel .reviews-controls{justify-content:center}
  .reviews-carousel .review-count{width:100%; text-align:center}
  .fact-cards{grid-template-columns:1fr}
  .about-map iframe{height:300px}
}
@media (max-width: 480px){
  .drawer{width:100vw}
  .icon-btn{width:38px; height:38px}
}
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto!important; transition:none!important; animation:none!important}
}
