:root{
  --navy:#1a2b4c; --navy-dark:#132038; --accent:#a6823e; --accent-dark:#8c6322;
  --bg:#f5f6f8; --card:#ffffff; --text:#222; --muted:#6b7280; --border:#e6e8ec;
  --green:#1f9d55; --red:#c0392b;
  --header-h:100px; --footer-h:52px;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  --gold-grad:linear-gradient(180deg,#c9a45a 0%,#a6823e 55%,#8c6322 100%);
  --navy-grad:linear-gradient(180deg,#24406f 0%,#1a2b4c 100%);
}
*{box-sizing:border-box}
html,body{height:100%}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--sat) + 8px)}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(180deg,#e9edf4 0,#f6f7fa 380px,#f1f3f7 100%) fixed;background-color:var(--bg);color:var(--text);
  padding-top:calc(var(--header-h) + var(--sat)); padding-bottom:calc(var(--footer-h) + var(--sab)); min-height:100vh; min-height:100dvh}
/* Website (desktop) view: header and footer are pinned to the viewport; body padding keeps content clear of them.
   Phones/touch devices use a different approach - see the last block of this file. */
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.site-header{background:linear-gradient(135deg,#243f6c 0%,#1a2b4c 50%,#132038 100%);color:#fff;position:fixed;top:0;left:0;right:0;height:calc(var(--header-h) + var(--sat));padding-top:var(--sat);z-index:100;display:flex;align-items:center;border-bottom:1px solid rgba(217,184,102,.4);box-shadow:0 6px 20px rgba(10,18,34,.3)}
.site-header .inner{max-width:1180px;margin:0 auto;padding:0 20px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.site-header .brand{font-weight:700;font-size:19px;letter-spacing:.3px}
.logo-img{height:50px;width:auto;max-width:none}
.site-header .brand span{color:var(--accent)}
.site-header nav{display:flex;align-items:center;gap:22px;font-size:15px}
.site-header nav a{opacity:.92}
.site-header nav a:hover{opacity:1;text-decoration:underline}
.cart-pill{background:var(--gold-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 3px 10px rgba(0,0,0,.25);color:#fff;border-radius:20px;padding:7px 16px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.cart-pill svg{width:20px;height:20px;flex:0 0 20px;color:#fff}

.site-footer{
  position:fixed;bottom:0;left:0;right:0;height:calc(var(--footer-h) + var(--sab));padding-bottom:var(--sab);z-index:100;
  background:var(--navy-dark);color:#c8d0e0;
  display:flex;align-items:center;justify-content:space-between;
  padding-left:20px;padding-right:20px;font-size:13px;margin:0
}
.footer-left, .footer-right{display:flex;align-items:center; gap:6px}

.wrap{max-width:1180px;margin:0 auto;padding:28px 20px 40px}

.hero{
  position:relative;color:#fff;padding:60px 20px 86px;
  background:
    radial-gradient(640px 300px at 88% -10%,rgba(217,184,102,.38),transparent 70%),
    radial-gradient(520px 280px at 0% 115%,rgba(60,120,180,.4),transparent 70%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 2px,transparent 2px 14px),
    linear-gradient(135deg,#243f6c 0%,#1a2b4c 45%,#0d172a 100%)
}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#d9b866 25%,#a6823e 50%,#d9b866 75%,transparent)}
.hero .wrap{padding:0}
.hero h1{margin:0 0 12px;font-size:clamp(26px,4vw,40px);line-height:1.15;letter-spacing:-.01em;max-width:24em;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.hero p{margin:0;color:#d5dbe8;font-size:17px;line-height:1.55;max-width:52ch}
.hero-actions{margin-top:26px}
.btn.lg{padding:14px 30px;font-size:15.5px;border-radius:10px}

.perks{position:relative;z-index:2;max-width:1180px;margin:-46px auto 0;padding:0 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.perk{
  display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;
  background:linear-gradient(180deg,#fff,#f4f6fa);border:1px solid rgba(255,255,255,.8);
  box-shadow:0 14px 30px -12px rgba(13,23,42,.45)
}
.perk-icon{
  width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;color:#fff;
  background:linear-gradient(145deg,#dcbb6c,#8c6322);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 4px 10px rgba(140,99,34,.35)
}
.perk-icon svg{width:22px;height:22px}
.perk strong{display:block;font-size:15px;color:var(--navy);line-height:1.25}
.perk span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}

.section-head{margin-bottom:4px;scroll-margin-top:calc(var(--header-h) + var(--sat) + 16px)}
.section-head h2{display:flex;align-items:center;gap:16px;margin:0 0 4px;font-size:24px;color:var(--navy)}
.section-head h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#c9a45a,rgba(201,164,90,0))}
.section-head p{margin:0;color:var(--muted);font-size:14.5px}

.grid-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px;margin-top:22px}
.cat-card{
  position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid transparent;border-radius:18px;
  background:linear-gradient(180deg,#fff,#f6f7fa) padding-box,linear-gradient(160deg,#e6e9f0,#cdd4e0) border-box;
  box-shadow:0 1px 2px rgba(19,32,56,.06),0 12px 26px -10px rgba(19,32,56,.22);
  transition:transform .18s ease,box-shadow .18s ease
}
.cat-card:hover,.cat-card:focus-within{
  transform:translateY(-4px);
  background:linear-gradient(180deg,#fff,#f6f7fa) padding-box,linear-gradient(160deg,#e2c476,#8c6322) border-box;
  box-shadow:0 2px 4px rgba(19,32,56,.06),0 20px 36px -12px rgba(19,32,56,.35)
}
.cat-card .thumb{
  position:relative;aspect-ratio:1/1;overflow:hidden;color:#9aa3b0;font-size:13px;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 38%,#fff 0%,#f3f5f9 60%,#e6eaf2 100%)
}
.cat-card .thumb img{
  position:absolute;top:18px;left:18px;width:calc(100% - 36px);height:calc(100% - 36px);
  object-fit:contain;mix-blend-mode:multiply;transition:transform .25s ease
}
.cat-card:hover .thumb img{transform:scale(1.05)}
.cat-card .body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;border-top:1px solid #e9edf3}
.cat-card h3{margin:0 0 8px;font-size:18px;color:var(--navy);line-height:1.25}
.count-pill{
  align-self:flex-start;color:#7a561b;border-radius:20px;padding:3px 11px;font-size:12.5px;font-weight:600;
  background:linear-gradient(180deg,#fbf3df,#f1e1b9);box-shadow:inset 0 0 0 1px rgba(166,130,62,.25)
}
.cat-card .visit-btn{
  margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 16px;font-size:15px;line-height:1.2;border-radius:10px;
  height:auto;min-height:44px;flex:0 0 auto
}
.cat-card .visit-btn svg{width:16px;height:16px;max-width:16px;max-height:16px;flex:0 0 16px;transition:transform .18s ease}
.cat-card:hover .visit-btn{filter:brightness(1.08)}
.cat-card:hover .visit-btn svg{transform:translateX(4px)}
.cat-card .visit-btn::after{content:"";position:absolute;inset:0}
.cat-card .visit-btn:focus-visible{outline:none}

@media (prefers-reduced-motion:reduce){
  .cat-card,.cat-card .thumb img,.cat-card .visit-btn svg{transition:none}
  .cat-card:hover{transform:none}
  .cat-card:hover .thumb img,.cat-card:hover .visit-btn svg{transform:none}
}

.crumbs{color:var(--muted);font-size:13px;margin-bottom:16px}
.crumbs a:hover{text-decoration:underline}

.grid-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:18px}
.prod-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.prod-card .thumb{height:220px;position:relative;overflow:hidden;background:#eef1f5;display:flex;align-items:center;justify-content:center;color:#9aa3b0;font-size:13px}
.prod-card .thumb-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(20px) brightness(.95);transform:scale(1.5)}
.prod-card .thumb-img{position:relative;z-index:1;max-width:100%;max-height:100%;object-fit:contain;display:block}
.prod-card .body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.prod-card h3{margin:0;font-size:15.5px;line-height:1.3}
.prod-card .desc{color:var(--muted);font-size:13px;line-height:1.4;flex:1}
.prod-card .price{font-size:18px;font-weight:700;color:var(--navy)}
/* Keep price + Buy Now pinned to the bottom of every card, so buttons line up even when titles wrap to 2 or 3 lines. */
.prod-card .body > .price{margin-top:auto}
.prod-card .price small{font-weight:400;color:var(--muted);font-size:12px}
.stock-note{font-size:12px}
.stock-note.ok{color:var(--green)}
.stock-note.low{color:var(--accent-dark)}
.stock-note.out{color:var(--red)}

.addform{display:flex;gap:8px;margin-top:4px}
.addform input[type=number]{width:64px;padding:8px;border:1px solid var(--border);border-radius:8px;text-align:center}

.btn{display:inline-block;background:var(--navy-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2px 6px rgba(19,32,56,.25);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.btn.accent{background:var(--gold-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 4px 12px rgba(140,99,34,.4);text-shadow:0 1px 1px rgba(0,0,0,.25)}
.btn.accent:hover{background:var(--gold-grad)}
.btn.outline{background:transparent;color:var(--navy);border:1px solid var(--navy)}
.btn.block{width:100%;text-align:center}
.btn:disabled{background:#c8ccd3;cursor:not-allowed}

.card{background:linear-gradient(180deg,#fff,#f8f9fb);box-shadow:0 8px 22px -10px rgba(19,32,56,.2);border:1px solid var(--border);border-radius:12px;padding:20px}
.alert{padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:16px}
.alert.error{background:#fdecea;color:var(--red);border:1px solid #f5c6c0}
.alert.success{background:#e9f8ee;color:var(--green);border:1px solid #bfe9cd}

table.cart-table{width:100%;border-collapse:collapse}
table.cart-table th{text-align:left;font-size:12px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 8px}
table.cart-table td{padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
table.cart-table .qty-input{width:56px;padding:6px;border:1px solid var(--border);border-radius:6px;text-align:center}
.row-thumb{width:52px;height:52px;border-radius:8px;background:#eef1f5 center/cover no-repeat;display:inline-block;vertical-align:middle;margin-right:10px}

.totals{margin-left:auto;max-width:320px}
.totals div{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}
.totals .grand{font-size:18px;font-weight:700;border-top:1px solid var(--border);margin-top:6px;padding-top:10px}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#374151}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:10px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px}
.form-grid .full{grid-column:1/-1}

.pay-options{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.pay-option{flex:1;min-width:160px;border:2px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;display:flex;align-items:center;gap:10px}
.pay-option input{width:auto}
.pay-option.selected{border-color:var(--accent);background:#fff7ef}


.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state a{color:var(--accent);font-weight:600}

@media(max-width:840px){
  :root{ --header-h:64px; --footer-h:64px; }

  .site-header .inner{padding:0 12px;gap:8px}
  .brand{padding:4px 10px;border-radius:10px}
  .logo-img{height:35px}
  .site-header nav{gap:10px;font-size:13px}
  .cart-pill{padding:6px 10px;font-size:13px}
  .cart-pill svg{width:18px;height:18px;flex-basis:18px}

  .site-footer{flex-direction:column;justify-content:center;gap:2px;padding:8px 12px calc(8px + var(--sab));font-size:11px;text-align:center}
  .footer-left,.footer-right{gap:4px}

  .hero{padding:32px 16px 62px}
  .hero h1{font-size:23px}
  .hero p{font-size:14.5px}
  .hero-actions{margin-top:20px}
  .btn.lg{padding:13px 24px;font-size:15px}
  .perks{grid-template-columns:1fr;gap:10px;margin-top:-34px;padding:0 14px}
  .perk{padding:12px 14px}
  .perk-icon{width:40px;height:40px}
  .section-head h2{font-size:20px}
  .wrap{padding:18px 14px 30px}

  .grid-cats,.grid-products{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
  .cat-card .thumb img{top:10px;left:10px;width:calc(100% - 20px);height:calc(100% - 20px)}
  .cat-card{border-radius:14px}
  .cat-card .body{padding:12px 12px 14px}
  .cat-card h3{font-size:15px}
  .count-pill{font-size:12px;padding:2px 9px}
  .cat-card .body{gap:0}
  .cat-card h3{margin-bottom:6px;overflow-wrap:anywhere}
  .cat-card .visit-btn{margin-top:12px;padding:10px 12px;font-size:14px;min-height:42px;gap:6px}
  .cat-card .visit-btn svg{width:14px;height:14px;max-width:14px;max-height:14px;flex-basis:14px}
  .prod-card .thumb{height:160px}

  table.cart-table{display:block;overflow-x:auto;white-space:nowrap}
  .totals{max-width:100%}
}

@media(max-width:380px){
  .logo-img{height:30px}
  .site-header nav a:not(.cart-pill){font-size:12px}
  .cart-pill{padding:5px 8px;font-size:12px}
}

/* Phones and touch devices (incl. iPhone Safari).
   iPhone Safari moves position:fixed bars whenever the PAGE scrolls (the address bar collapses and the
   viewport resizes). So here the page itself is locked and never scrolls; the header and footer stay
   pinned to the top/bottom of the screen, and only <main class="page-scroll"> scrolls between them.
   The website (desktop) view is untouched. */
@media (max-width:840px),(pointer:coarse){
  html,body{height:100%;overflow:hidden;overscroll-behavior:none}
  body{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;min-height:0;padding:0;background-attachment:scroll}
  .page-scroll{
    position:fixed;left:0;right:0;
    top:calc(var(--header-h) + var(--sat));
    bottom:calc(var(--footer-h) + var(--sab));
    overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain
  }
}