:root{
  --teal:#2c7498;
  --yellow:#ffdd4f;
  --ink:#16232b;
  --muted:#6b7280;
  --bg:#f6f8fb;
}

*{box-sizing:border-box}
html,body{margin:0}
body{font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
.container{width:min(1200px,92%);margin-inline:auto}
body.no-scroll {
  overflow: hidden;
}

/* ===== HEADER (sticky + mobile-dropdown kanan) ===== */
.dk-header{
  --h:64px;
  position:sticky; top:0; z-index:60;
  background:rgba(44,116,152,.98);
  backdrop-filter:blur(6px);
  box-shadow:0 10px 30px rgba(17,62,84,.18);
}
.hwrap{min-height:var(--h); display:flex; align-items:center; gap:18px; padding:8px 0}
.logo{height:60px} .logo.small{height:38px}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none}
.brand-text{color:#fff; font-weight:700; letter-spacing:.3px}
.nav{margin-left:auto; display:flex; gap:26px}
.nav a{color:#eaf3f8; text-decoration:none; font-weight:600; opacity:.92}
.nav a:hover{opacity:1}
.hamburger{display:none; margin-left:auto; border:0; background:0; width:44px; height:44px; position:relative}
.hamburger span{position:absolute; left:10px; right:10px; height:2px; background:#fff; border-radius:2px; transition:.2s}
.hamburger span:nth-child(1){top:13px}
.hamburger span:nth-child(2){top:21px}
.hamburger span:nth-child(3){top:29px}

@media (max-width:980px){
  .nav{
    display:none; position:fixed; top:var(--h); right:0; left:auto;
    width:min(74vw,360px); flex-direction:column; gap:0;
    background:var(--teal); border-radius:0 0 0 14px;
    box-shadow:-12px 14px 30px rgba(0,0,0,.18); overflow:hidden;
  }
  .nav a{padding:12px 18px; border-bottom:1px solid rgba(255,255,255,.08)}
  .hamburger{display:block}
  .dk-header.open .nav{display:flex}
}

/* ===== BANNER (1920x1080 / 16:9 full-bleed) ===== */
.banner{
  position:relative; color:#fff; background:var(--teal);
  overflow:hidden; padding:0;
}
.banner.full-bleed{ left:50%; width:100vw; transform:translateX(-50%); position:relative; }
.banner .slider{
  --idx:0; display:grid; grid-auto-flow:column; grid-auto-columns:100%;
  transform:translateX(calc(var(--idx)*-100%)); transition:transform .6s ease;
}
.banner .slide{ position:relative; height:clamp(360px,56.25vw,720px); }
.banner .slide-media{ position:absolute; inset:0; }
.banner .slide-media img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.banner .dots{ display:flex; justify-content:center; gap:10px; margin:10px 0 14px; }
.banner .dot{ width:10px; height:10px; border-radius:999px; border:2px solid #fff; background:transparent; opacity:.6; cursor:pointer }
.banner .dot.active{ background:#fff; opacity:1 }
@media (max-width:600px){
  .banner .slide{ height:56.25vw; }
  .banner .slide-media img{ object-fit:contain; background:#113e54; }
}

/* ===== SECTIONS ===== */
.section{padding:64px 0}
.section.alt{background:#fff}
.sec-head{text-align:center; margin-bottom:18px}
.sec-head h2{margin:0 0 6px}

/* ===== ABOUT ===== */
.two-col{display:grid; grid-template-columns:1.1fr .9fr; gap:30px; align-items:center}
@media (max-width:900px){.two-col{grid-template-columns:1fr; gap:22px}}
.ticks{list-style:none; padding-left:0; margin:14px 0 0}
.ticks li{margin:8px 0; padding-left:26px; position:relative}
.ticks li::before{content:"✔"; position:absolute; left:0; color:var(--teal); font-weight:700}
.about-photo,.about-art{
  position:relative; aspect-ratio:4/3; background:#ecf3f7; border-radius:22px;
  overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.08);
}
.about-photo img,.about-art img{width:100%; height:100%; object-fit:cover; object-position:center; display:block}
.about-photo .dot-grid,.about-art .dot-grid{
  pointer-events:none; position:absolute; inset:0;
  background-image:radial-gradient(rgba(44,116,152,.18) 1.2px, transparent 1.2px);
  background-size:16px 16px; mix-blend-mode:overlay;
}
.about-photo .badge,.about-art .badge{
  position:absolute; right:16px; bottom:16px; background:var(--yellow); color:#16232b;
  font-weight:800; padding:10px 14px; border-radius:12px; box-shadow:0 6px 16px rgba(0,0,0,.12);
}

/* ===== FEATURES ===== */
.features{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.feat{background:#fff; border-radius:16px; padding:18px; box-shadow:0 10px 28px rgba(0,0,0,.07)}
.feat .ic{font-size:22px}
@media (max-width:900px){.features{grid-template-columns:1fr}}

/* ===== FILTER BAR & INPUTS ===== */
.filterbar{display:flex; align-items:center; gap:16px; justify-content:space-between; flex-wrap:wrap; margin:16px 0 10px}
.input{border:2px solid rgba(44,116,152,.25); border-radius:14px; padding:10px 14px; background:#fff; font:inherit}
.chips{display:flex; gap:10px; flex-wrap:wrap}
.chip{border:1px solid rgba(44,116,152,.22); background:#fff; color:var(--ink); padding:8px 14px; border-radius:999px; font-weight:600; cursor:pointer}
.chip.active{background:var(--teal); color:#fff; border-color:var(--teal)}
.search{min-width:240px; flex:1; max-width:360px}
#search{min-width:0; max-width:none; width:100%}
@media (max-width:680px){
  .filterbar{display:grid; grid-template-columns:1fr; gap:12px}
  .search{min-width:0; max-width:none; width:100%}
  #search{min-width:0; max-width:none; width:100%}
}

/* ===== CARDS ===== */
.grid{display:grid; gap:22px}
.cards{grid-template-columns:repeat(4,1fr)}
@media (max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:800px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:repeat(2,1fr)}}
.card{display: flex;
flex-direction: column;
background:#fff; border-radius:18px; box-shadow:0 10px 26px rgba(0,0,0,.08); overflow:hidden; transition:.18s transform,.18s box-shadow}
.card:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.12)}
.thumb{aspect-ratio:4/3; background:#ecf3f7; position:relative}
.thumb img{width:100%; height:100%; object-fit:cover; display:block}
.thumb-ph{display:flex; align-items:center; justify-content:center; height:100%; color:#7aa9bf; font-weight:700}
.card-body{padding:14px; display: flex;
flex-direction: column; flex: 1; 
}
.card-body .btn-cart {
  margin-top: auto;   /* dorong tombol ke paling bawah */
}
.title{font-weight:700}
.meta{color:var(--muted); font-size:.92rem}
.price{margin-top:6px; font-weight:700; margin-bottom: 15px;}

/* ===== EMPTY STATE ===== */
.empty{padding:28px 0}
.empty-box{display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--muted)}
.empty .emoji{font-size:28px}

/* ===== CONTACT ===== */
.contact{background:linear-gradient(180deg,#fff,#f7f9fb)}
.contact-wrap{display:grid; place-items:center}
.contact-card{background:#fff; border:1px solid rgba(44,116,152,.12); border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.06); padding:24px 22px; max-width:520px; width:100%; text-align:center}
.contact-card .phone{margin-top:6px; font-weight:800; color:var(--teal); font-size:22px}

/* ===== FOOTER ===== */
.footer{background:#113e54; color:#cfe3ec; padding:18px 0}
.footer .fwrap{display:flex; align-items:center; gap:12px}
.footer .left{display:flex; align-items:center; gap:10px}

/* ===== CART (Swal) — mobile-first card layout ===== */
/* --- Floating cart (FAB) --- */
.fab-cart{
  position:fixed;
  right:20px; 
  bottom:22px;
  z-index:120;
  background:var(--teal);
  color:#fff;
  border:0;
  border-radius:999px;
  padding:18px 22px;      /* lebih besar padding */
  font-size:26px;         /* lebih besar icon */
  box-shadow:0 14px 34px rgba(0,0,0,.22);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.fab-cart .badge{
  margin-left:10px;
  background:#ffdd4f;
  color:#16232b;
  border-radius:14px;
  padding:4px 10px;
  font-weight:800;
  font-size:14px;        /* badge juga dibesarkan */
}

.swal-cart-list{
  display:flex; flex-direction:column; gap:12px;
  max-height:52vh; overflow:auto; margin-bottom:8px;
}
.cart-row{
  display:grid; gap:10px; align-items:center;
  grid-template-areas:
    "info sub"
    "qty  del";
  grid-template-columns:1fr auto;
  background:#fff; border:1px solid #eef2f5; border-radius:14px; padding:12px;
}
.cart-info{ grid-area:info; min-width:0; }
.cart-name{ font-weight:800; line-height:1.2; }
.cart-cat{ color:var(--muted); font-weight:600; margin-left:4px; font-size:.92em; }
.cart-price{ color:var(--muted); font-size:.9em; margin-top:2px; }

.cart-qty{ grid-area:qty; }
.cart-qty .qty{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid #dfe7eb; border-radius:12px; padding:6px 8px;
}
.cart-qty .qty input{ width:54px; text-align:center; border:0; outline:0; font-weight:700; }
.cart-qty .qty button{ border:0; background:#f2f6f8; border-radius:10px; padding:6px 10px; cursor:pointer; }

.cart-sub{ grid-area:sub; justify-self:end; text-align:right; font-weight:800; }
.cart-del{ grid-area:del; justify-self:end; border:0; background:#fbe9ea; color:#c0392b; border-radius:10px;
  padding:6px 10px; cursor:pointer; font-weight:700; }

.swal-total{ text-align:right; margin-top:6px; font-weight:800; }

.btn-cart{
  margin-top:10px;
  padding:8px 14px;
  border:0;
  border-radius:10px;
  background:var(--teal);
  color:#fff;
  font-weight:600;
  cursor:pointer;
}
.btn-cart:hover{ background:#245c77; }

/* Tablet/desktop: sejajar 1 baris */
@media (min-width:520px){
  .cart-row{
    grid-template-areas:"info qty sub del";
    grid-template-columns:1fr auto auto auto;
    padding:12px 14px;
  }
  .cart-qty{ justify-self:start; }
}
/* Stepper di dalam SweetAlert */
.swal-qty-wrap{ text-align:center; margin-top:.5rem; }
.swal-label{ margin-bottom:.5rem; font-weight:600; opacity:.8; }
.swal-stepper{
  display:inline-flex; align-items:center; gap:0;
  border:2px solid #e7edf2; border-radius:12px; overflow:hidden;
}
.swal-stepper button{
  border:0; background:#eef2f7; padding:10px 14px; font-size:20px; font-weight:800; cursor:pointer;
}
.swal-stepper .qval{
  width:72px; text-align:center; border:0; outline:0; font-weight:800; font-size:18px;
  background:#fff;
}

/* info kategori di swal */
.swal-cat{
  margin: 4px 0 10px;
  color:#6b7280;
  font-size:.95rem;
}
.badge{
  display:inline-block; background:#eef2f7; color:#245c77;
  padding:4px 10px; border-radius:999px; font-weight:700; font-size:.8em;
}

.swal2-image {
  max-width: 90vw !important;
  max-height: 80vh !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  border-radius: 8px;
}

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;
}
.lightbox[hidden] { display: none; }

.lightbox-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  transform-origin: center center;
  transition: transform 0.15s ease-out;
}
.lightbox img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
}

.lightbox .close {
  position: absolute;
  top: 20px; right: 30px;
  font-size: 32px;
  font-weight: bold;
  color: #fff;
  cursor: pointer;
  z-index: 1000;
}
