/* The public storefront follows the original site's banner-first catalog layout. */
body { background: #fff; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.site-header { box-shadow:0 1px 8px #201b1710; border-bottom:0; }
.header-inner { height:72px; }
.brand { width:250px; }
.brand img { width:250px; max-height:54px; }
.main-nav { display:none; }
.header-actions { gap:12px; }
.icon-button { width:44px; height:44px; color:#171717; }
.icon-button svg { width:28px; height:28px; stroke-width:2.1; }
.mobile-menu-button { display:grid !important; border-radius:8px; margin-left:10px; }
.mobile-menu-button svg { width:34px; height:34px; stroke-width:2.4; }
.status-banner { background:#fff5d7; color:#665022; padding:10px 16px; }
.mobile-bottom-nav { display:none; }

.mobile-menu { top:72px; padding:28px max(22px,calc((100vw - 1200px)/2)); max-height:calc(100vh - 72px); overflow:auto; border-top:1px solid #eee; }
.mobile-menu[hidden] { display:none !important; }
.menu-layout { display:grid; grid-template-columns:1fr 1.2fr .9fr; gap:32px; max-width:1200px; margin:auto; }
.menu-links,.menu-categories,.menu-contact { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.menu-links a { font-size:19px; font-weight:700; }
.menu-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; }
.menu-categories strong { grid-column:1/-1; font-size:19px; margin-bottom:4px; }
.menu-categories a { font-size:14px; }
.menu-contact { border-left:1px solid #ece8e4; padding-left:25px; color:#666; }
.menu-contact a { font-size:21px; color:#292320; font-weight:800; }
.menu-contact small { line-height:1.5; }

.home-banners { position:relative; padding-top:16px; }
.banner-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 28px)/3); gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:3px; }
.banner-track::-webkit-scrollbar { display:none; }
.home-banner { display:block; aspect-ratio:2.04/1; overflow:hidden; border-radius:16px; scroll-snap-align:start; background:#f2ebe6; }
.home-banner img { width:100%; height:100%; display:block; object-fit:cover; }
.home-banner:first-child img { object-position:left center; }
.home-banner:hover img { transform:scale(1.025); }
.home-banner img { transition:transform .25s ease; }
.banner-controls { display:flex; justify-content:flex-end; gap:9px; margin-top:7px; }
.banner-controls button { width:34px; height:34px; border:1px solid #e6e1dc; border-radius:50%; background:#fff; cursor:pointer; font-size:19px; }
.banner-controls button:hover { background:#f5f1ed; }

.mobile-categories { display:none; }
.home-category-nav { display:flex; gap:8px; margin:28px 0 8px; overflow-x:auto; scrollbar-width:none; }
.home-category-nav a { white-space:nowrap; border:1px solid #e5e2df; padding:9px 15px; border-radius:100px; font-size:14px; font-weight:700; }
.home-category-nav a:hover { border-color:#a9292c; color:#a9292c; }
.home-catalog-section { padding:46px 0 18px; scroll-margin-top:80px; }
.home-catalog-section:first-of-type { padding-top:42px; }
.home-section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.home-section-head h2 { margin:0; font-size:38px; line-height:1.1; font-weight:600; letter-spacing:-.035em; }
.home-section-head h2 a { display:inline-block; border-bottom:1px solid #777; padding-bottom:5px; }
.home-see-all { color:#a9292c; font-size:14px; font-weight:700; white-space:nowrap; }
.home-catalog-section .product-grid { gap:18px; }
.home-catalog-section .product-card { position:relative; border:0; border-radius:2px; box-shadow:none; }
.home-catalog-section .product-card:hover { transform:none; box-shadow:none; }
.home-catalog-section .product-image { height:auto; aspect-ratio:1.28/1; background:#f9f9f9; }
.home-catalog-section .product-info { padding:14px 0; }
.favorite-button { position:absolute; z-index:2; top:10px; right:10px; width:38px; height:38px; border:0; border-radius:50%; background:#fff; box-shadow:0 2px 10px #0002; color:#2b2928; font-size:29px; line-height:1; cursor:pointer; }
.favorite-button.is-favorite { color:#af2b31; }
.product-card { position:relative; }
.popular-searches { padding:44px 0 65px; }
.popular-searches h2 { font-size:27px; font-weight:700; }
.popular-searches div { display:flex; gap:10px; flex-wrap:wrap; }
.popular-searches a { border:1px solid #ded9d4; border-radius:100px; padding:10px 15px; }

.promotions-title { background:#f1f4fa; text-align:center; padding:74px 24px; margin:0 calc((1200px - 100vw)/2) 10px; }
.promotions-title h1 { font-size:clamp(30px,4vw,48px); line-height:1.15; margin:0; }
.promos { grid-template-columns:repeat(2,minmax(0,360px)); gap:40px; margin:16px 0 30px; align-items:start; }
.promo-card,.promo-card:nth-child(2) { padding:0; border:0; border-radius:0; min-height:0; background:transparent; display:flex; flex-direction:column; align-items:stretch; }
.promo-card .promo-image { display:block; width:100%; margin:0 0 16px; }
.promo-card .promo-image img { width:100%; aspect-ratio:16/9; display:block; object-fit:cover; }
.promo-term { color:#7aa0c8; font-size:12px; letter-spacing:.2em; margin-bottom:8px; }
.promo-card h3 { font-size:19px; font-weight:600; letter-spacing:0; margin:0 0 13px; }
.promo-card p { font-size:15px; color:#777; margin:0 0 3px; }
.promo-card small { font-size:12px; color:#888; font-style:italic; }
.promo-card > a:last-child { margin-top:16px; }

@media (max-width:1244px) {
  .promotions-title { margin-left:-22px; margin-right:-22px; }
}
@media (max-width:700px) {
  body { padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav { display:grid; grid-template-columns:repeat(4,1fr); position:fixed; z-index:35; left:0; right:0; bottom:0; min-height:62px; padding-bottom:env(safe-area-inset-bottom); background:#fff; border-top:1px solid #ddd; box-shadow:0 -3px 15px #0000000a; }
  .mobile-bottom-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:11px; color:#373331; }
  .mobile-bottom-nav a.active { color:#a9292c; font-weight:800; }
  .mobile-bottom-nav svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
  .header-inner { height:64px; gap:4px; }
  .brand { width:146px; }
  .brand img { width:146px; max-height:42px; }
  .header-actions { gap:1px; }
  .icon-button { width:36px; height:39px; }
  .icon-button svg { width:22px; height:22px; }
  .mobile-menu-button { margin-left:2px; }
  .mobile-menu-button svg { width:28px; height:28px; }
  .mobile-menu { top:64px; padding:22px 18px; max-height:calc(100vh - 64px); }
  .menu-layout { grid-template-columns:1fr; gap:25px; }
  .menu-links { gap:15px; }
  .menu-links a { font-size:18px; }
  .menu-categories { border-top:1px solid #eee; padding-top:20px; }
  .menu-contact { border-left:0; border-top:1px solid #eee; padding:20px 0 0; }
  .home-banners { padding-top:12px; }
  .banner-track { grid-auto-columns:calc(100% - 26px); gap:10px; margin-right:-14px; padding-right:14px; }
  .home-banner { aspect-ratio:1.6/1; border-radius:12px; }
  .banner-controls { margin-top:5px; }
  .banner-controls button { width:30px; height:30px; }
  .mobile-categories { display:block; margin-top:22px; }
  .mobile-categories-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }
  .mobile-categories-head h2 { margin:0; font-size:27px; line-height:1.2; font-weight:700; }
  .mobile-categories-head a { color:#a9292c; font-size:13px; font-weight:700; white-space:nowrap; }
  .mobile-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .mobile-category-tile { position:relative; display:flex; align-items:end; isolation:isolate; aspect-ratio:1.15/1; min-width:0; overflow:hidden; border-radius:13px; background:#f4eee8; }
  .mobile-category-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .mobile-category-tile::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#17110dbf); }
  .mobile-category-tile span { position:relative; z-index:1; display:block; width:100%; padding:18px 12px 12px; color:#fff; font-size:17px; font-weight:800; line-height:1.12; text-shadow:0 1px 3px #0008; }
  .home-category-nav { display:none; }
  .home-catalog-section { padding:30px 0 8px; scroll-margin-top:65px; }
  .home-section-head { margin-bottom:16px; }
  .home-section-head h2 { font-size:30px; }
  .home-see-all { font-size:12px; }
  .home-catalog-section .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .home-catalog-section .product-image { aspect-ratio:1/1; }
  .home-catalog-section .product-info { padding:9px 0; }
  .home-catalog-section .product-title { font-size:14px; }
  .home-catalog-section .product-desc { display:none; }
  .home-catalog-section .price { font-size:14px; }
  .home-catalog-section .old-price { font-size:12px; }
  .favorite-button { width:32px; height:32px; font-size:24px; }
  .popular-searches { padding:28px 0 45px; }
  .promotions-title { margin-left:-14px; margin-right:-14px; padding:45px 18px; }
  .promos { grid-template-columns:1fr; gap:30px; }
  .promo-card .promo-image img { aspect-ratio:16/9; }
}
@media (max-width:370px) {
  .brand,.brand img { width:125px; }
  .icon-button { width:32px; }
}
