:root{
  --bg:#ffffff;
  --text:#111827;
  --muted:#6b7280;

  --card:#ffffff;
  --line:#eef2f7;

  --pink:#e8c2c5;          /* пудра */
  --pink-2:#f3d7da;        /* світліше */
  --accent:#f2d24b;        /* жовтий як кнопка */
  --shadow: 0 18px 60px rgba(17,24,39,.10);
  --radius: 18px;
  --radius2: 22px;

  --safe: env(safe-area-inset-bottom, 0px);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:inherit}

.container{max-width: 740px;margin:0 auto;padding: 0 14px 90px}
.hidden{display:none !important}

.topbar{
  position:sticky;top:0;z-index:20;
  height:64px;padding:0 12px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--line);
}

.iconBtn{
  width:44px;height:44px;border:0;border-radius:999px;
  background: #fff;
  display:grid;place-items:center;
  box-shadow: 0 10px 30px rgba(17,24,39,.08);
  cursor:pointer;
}

.burger{display:block;width:18px;height:2px;background:#111827;border-radius:3px;position:relative}
.burger:before,.burger:after{content:"";position:absolute;left:0;width:18px;height:2px;background:#111827;border-radius:3px}
.burger:before{top:-6px}
.burger:after{top:6px}

.brand{
  font-family:Pacifico, cursive;
  font-size:28px;letter-spacing:.2px;
  display:flex;align-items:center;gap:0;
  user-select:none;
}
.brandText{color:#111827}
.brandBall{
  display:inline-grid;place-items:center;
  width:22px;height:22px;margin:0 2px;
  border-radius:999px;background: #f5d54a;
  box-shadow: 0 10px 22px rgba(242,210,75,.35);
}
.badge{
  position:absolute;transform: translate(14px,-14px);
  min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:#111827;color:#fff;
  font-size:11px;font-weight:800;
  display:grid;place-items:center;
}

.hero{
  position:relative;
  margin: 12px 0 14px;
  border-radius: var(--radius2);
  overflow:hidden;
  box-shadow: var(--shadow);
  background:#f6f7fb;
  min-height: 360px;
}
.heroSlides{position:absolute;inset:0;display:flex;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.heroSlide{
  min-width:100%;
  background-size:cover;background-position:center;
  filter:saturate(1.1);
}
.heroSlide::after{
  content:"";position:absolute;inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.10));
}
.heroOverlay{
  position:relative;z-index:2;
  padding: 22px 18px;
  color:#fff;
  max-width: 520px;
}
.heroOverlay h1{
  margin:0 0 10px;
  font-weight:900;
  font-size: 38px;
  line-height: 1.04;
  letter-spacing: -.6px;
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.heroSub{
  margin:0 0 16px;
  color: rgba(255,255,255,.9);
  font-weight:600;
  line-height:1.35;
}
.heroDots{
  position:absolute;left:0;right:0;bottom:10px;z-index:3;
  display:flex;gap:8px;justify-content:center;align-items:center;
}
.dot{
  width:10px;height:10px;border-radius:999px;
  background: rgba(255,255,255,.45);
  border: 1px solid rgba(255,255,255,.55);
  cursor:pointer;
}
.dot.active{background:#fff}

.primaryBtn{
  border:0;border-radius: 14px;
  padding: 12px 14px;
  font-weight:900;
  background: var(--accent);
  color:#111827;
  box-shadow: 0 18px 40px rgba(242,210,75,.32);
  cursor:pointer;
}
.ghostBtn{
  border:1px solid var(--line);
  background:#fff;
  border-radius: 14px;
  padding: 12px 14px;
  font-weight:800;
  cursor:pointer;
}
.chip{
  border:1px solid rgba(232,194,197,.55);
  background: rgba(232,194,197,.18);
  color:#111827;
  border-radius: 999px;
  padding: 10px 12px;
  font-weight:800;
  cursor:pointer;
}
.quick{margin: 10px 0 12px}
.searchWrap{display:flex;gap:10px;align-items:center}
.search{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius: 999px;
  padding: 12px 14px;
  font-weight:700;
  outline:none;
  box-shadow: 0 12px 40px rgba(17,24,39,.06);
}
.chipsRow{
  display:flex;gap:10px;overflow:auto;padding:12px 2px 2px;
  -webkit-overflow-scrolling: touch;
}
.chipsRow::-webkit-scrollbar{display:none}

.section{margin: 12px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.tile{
  background:#fff;border:1px solid var(--line);
  border-radius: var(--radius2);
  overflow:hidden;
  box-shadow: 0 14px 40px rgba(17,24,39,.06);
  cursor:pointer;
}
.tileImg{height:120px;background:#eee;background-size:cover;background-position:center}
.tileBody{padding: 12px}
.tileTitle{font-weight:900}
.tileSub{color:var(--muted);font-size:12px;margin-top:4px}

.infoCard{
  display:flex;gap:12px;align-items:flex-start;
  padding: 16px;
  background:#fff;border:1px solid var(--line);
  border-radius: var(--radius2);
  box-shadow: 0 14px 40px rgba(17,24,39,.06);
  margin-bottom:12px;
}
.infoIcon{
  width:44px;height:44px;border-radius: 16px;
  background: rgba(232,194,197,.22);
  display:grid;place-items:center;
  border:1px solid rgba(232,194,197,.45);
  font-size:20px;
}
.infoTitle{font-weight:900;margin-bottom:4px}
.infoText{color:var(--muted);line-height:1.4}

.h2{font-size:22px;font-weight:900;margin: 4px 0 6px}
.h3{font-size:16px;font-weight:900;margin: 10px 0}
.sub{color:var(--muted);font-weight:700;font-size:12px}

.catalogTop{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.filters{
  display:flex;gap:10px;flex-wrap:wrap;
  margin-bottom: 12px;
}
.select{
  flex:1;
  min-width: 160px;
  border:1px solid var(--line);
  border-radius: 14px;
  padding: 12px 12px;
  background:#fff;
  font-weight:800;
  outline:none;
}
.toggle{
  display:flex;align-items:center;gap:8px;
  padding: 10px 12px;border-radius: 14px;
  border:1px solid var(--line);background:#fff;
  font-weight:900;
}

.products{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.card{
  background:#fff;border:1px solid var(--line);
  border-radius: var(--radius2);
  overflow:hidden;
  box-shadow: 0 14px 40px rgba(17,24,39,.06);
}
.cardImg{height:150px;background:#eee;background-size:cover;background-position:center}
.cardBody{padding: 12px}
.cardTitle{font-weight:900;line-height:1.25}
.cardMeta{color:var(--muted);font-size:12px;margin-top:4px}
.cardRow{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px}
.price{font-weight:900}
.addBtn{
  border:0;border-radius: 999px;
  background: rgba(232,194,197,.28);
  border: 1px solid rgba(232,194,197,.55);
  padding: 10px 12px;
  font-weight:900;
  cursor:pointer;
}
.pill{
  display:inline-flex;align-items:center;gap:6px;
  padding: 6px 10px;border-radius:999px;
  font-size:12px;font-weight:900;
  background: rgba(242,210,75,.22);
  border: 1px solid rgba(242,210,75,.45);
}

.pager{display:flex;align-items:center;justify-content:center;gap:10px;margin: 14px 0 4px}
.pagerText{font-weight:900;color:var(--muted)}

.paper{
  background:#fff;border:1px solid var(--line);
  border-radius: var(--radius2);
  box-shadow: 0 14px 40px rgba(17,24,39,.06);
  padding: 16px;
  color: #111827;
  line-height:1.5;
}
.contactRow{display:flex;gap:10px;align-items:center;margin: 10px 0;font-weight:800}
.socialRow{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.social{
  text-decoration:none;
  padding: 10px 12px;border-radius:999px;
  border:1px solid var(--line);
  background: rgba(232,194,197,.18);
  font-weight:900;
}

.floatStack{
  position:fixed;right:14px;bottom: calc(14px + var(--safe));
  display:flex;flex-direction:column;gap:12px;z-index:30;
}
.floatBtn{
  width:56px;height:56px;border-radius:999px;
  display:grid;place-items:center;
  text-decoration:none;
  box-shadow: 0 18px 50px rgba(17,24,39,.18);
  font-size:22px;
}
.floatBtn.phone{background: rgba(232,194,197,.95);color:#111827}
.floatBtn.tg{background: rgba(242,210,75,.95);color:#111827}

.drawer{
  position:fixed;top:0;left:0;bottom:0;z-index:50;
  width: 310px;max-width: 86vw;
  transform: translateX(-110%);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
  background:#fff;border-right:1px solid var(--line);
  box-shadow: 0 30px 80px rgba(17,24,39,.18);
  display:flex;flex-direction:column;
}
.drawer.open{transform: translateX(0)}
.drawerHead{display:flex;align-items:center;justify-content:space-between;padding: 12px 12px;border-bottom:1px solid var(--line)}
.drawerTitle{font-weight:900}
.drawerNav{padding: 10px 8px;display:flex;flex-direction:column;gap:8px}
.drawerLink{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius: 14px;
  padding: 12px 12px;
  font-weight:900;
  text-align:left;
  cursor:pointer;
}
.drawerLink.active{
  border-color: rgba(232,194,197,.7);
  background: rgba(232,194,197,.18);
}
.drawerBottom{margin-top:auto;padding: 12px;border-top:1px solid var(--line)}
.miniLine{color:var(--muted);font-weight:700;margin: 6px 0}
.backdrop{
  position:fixed;inset:0;z-index:40;
  background: rgba(17,24,39,.35);
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.backdrop.show{opacity:1;pointer-events:auto}

.modal{
  position:fixed;inset:0;z-index:60;
  background: rgba(17,24,39,.40);
  display:none;
  align-items:center;justify-content:center;
  padding: 14px;
}
.modal.show{display:flex}
.modalCard{
  width:min(780px, 100%);
  background:#fff;border-radius: var(--radius2);
  box-shadow: 0 30px 90px rgba(17,24,39,.28);
  overflow:hidden;
  position:relative;
}
.modalClose{
  position:absolute;top:10px;right:10px;
  width:44px;height:44px;border-radius:999px;border:0;
  background:#fff;box-shadow: 0 18px 50px rgba(17,24,39,.18);
  cursor:pointer;font-weight:900;
}
.modalBody{display:grid;grid-template-columns: 1fr;gap:0}
.modalImg{width:100%;height: 260px;object-fit:cover;background:#eee}
.modalInfo{padding: 14px}
.modalTitle{font-weight:900;font-size:18px}
.modalMeta{color:var(--muted);font-weight:700;font-size:12px;margin-top:6px}
.modalPriceRow{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.modalActions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.modalDesc{color:var(--muted);font-weight:700;line-height:1.45;margin-top:12px}

.cartDrawer{
  position:fixed;top:0;right:0;bottom:0;z-index:55;
  width: 360px;max-width: 92vw;
  transform: translateX(110%);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
  background:#fff;border-left:1px solid var(--line);
  box-shadow: 0 30px 80px rgba(17,24,39,.18);
  display:flex;flex-direction:column;
}
.cartDrawer.open{transform: translateX(0)}
.cartBackdrop{
  position:fixed;inset:0;z-index:54;
  background: rgba(17,24,39,.35);
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.cartBackdrop.show{opacity:1;pointer-events:auto}
.cartHead{display:flex;align-items:center;justify-content:space-between;padding: 12px 12px;border-bottom:1px solid var(--line)}
.cartTitle{font-weight:900}
.cartList{padding: 10px 12px;overflow:auto;flex:1}
.cartItem{
  display:grid;grid-template-columns: 64px 1fr auto;
  gap:10px;
  padding: 10px;
  border:1px solid var(--line);
  border-radius: 16px;
  margin-bottom:10px;
}
.cImg{width:64px;height:64px;border-radius: 14px;background:#eee;background-size:cover;background-position:center}
.cTitle{font-weight:900;font-size:13px;line-height:1.2}
.cMeta{color:var(--muted);font-size:12px;font-weight:700;margin-top:4px}
.cQty{display:flex;align-items:center;gap:8px;margin-top:8px}
.qBtn{
  width:34px;height:34px;border-radius: 12px;
  border:1px solid var(--line);
  background:#fff;font-weight:900;cursor:pointer;
}
.cRight{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}
.rmBtn{
  border:0;background:transparent;cursor:pointer;
  color:#111827;font-weight:900;
}
.cartFoot{padding: 12px;border-top:1px solid var(--line);padding-bottom: calc(12px + var(--safe))}
.totals{display:flex;align-items:center;justify-content:space-between;font-weight:900;margin-bottom:10px}
.totalPrice{font-size:18px}
.checkout{margin-top:10px}
.input{
  width:100%;
  border:1px solid var(--line);
  border-radius: 14px;
  padding: 12px 12px;
  font-weight:800;
  margin: 8px 0;
  outline:none;
}
.hint{color:var(--muted);font-size:12px;font-weight:700;margin-top:8px}

@media (min-width: 640px){
  .products{grid-template-columns: 1fr 1fr 1fr}
  .modalBody{grid-template-columns: 1.2fr 1fr}
  .modalImg{height: 100%}
}