/* 🌈 Основний стиль */
body {
    font-family: 'Segoe UI', system-ui, sans-serif;
    color: #222;
    overflow-x: hidden;
    padding-top: 90px; /* запас під шапку */
    margin: 0;

    /* ✅ фон має покривати всю висоту вікна і не повторюватись "полосками" */
    min-height: 100vh;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* ✅ Живий фон на весь сайт (поза "тілом" контенту) */
body {
    background:
        radial-gradient(1200px 600px at 10% 10%, rgba(255, 193, 7, 0.25), transparent 60%),
        radial-gradient(900px 500px at 90% 20%, rgba(230, 57, 70, 0.18), transparent 55%),
        radial-gradient(1100px 700px at 50% 90%, rgba(25, 135, 84, 0.16), transparent 60%),
        linear-gradient(180deg, #f6f7fb 0%, #ffffff 45%, #f7f5f5 100%);

    /* ключове: робимо фон більшим за екран, щоб не було повторів */
    background-size: 220% 220%;
    background-position: 50% 0%;
    animation: siteBgDrift 18s ease-in-out infinite;
}

@keyframes siteBgDrift {
    0% { background-position: 0% 0%; }
    50% { background-position: 100% 35%; }
    100% { background-position: 0% 0%; }
}

/* Контентна "підкладка" (тіло сайту) */
.page-container {
    padding-left: clamp(16px, 4vw, 60px);
    padding-right: clamp(16px, 4vw, 60px);
    padding-bottom: 60px;
}

.content-area {
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 18px;
    padding: clamp(12px, 2vw, 22px);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

/* На випадок, якщо користувач просить менше руху */
@media (prefers-reduced-motion: reduce) {
    body { animation: none; background-size: auto; }
    .content-area { backdrop-filter: none; -webkit-backdrop-filter: none; }
}

@media (max-width: 768px) {
    body {
        padding-top: 100px;
    }
}

/* 🔹 Шапка */
.navbar {
    transition: background 0.3s, box-shadow 0.3s;
}
.navbar:hover {
    background-color: #fff !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.navbar .nav-link {
    transition: color 0.3s;
}
.navbar .nav-link:hover {
    color: #e63946 !important; /* акцент */
}

/* 🔹 Hero секція */
.hero {
    position: relative;
    text-align: center;
    color: #fff;
}
.hero h1 {
    font-size: clamp(1.8rem, 4vw, 3rem);
}
.hero p {
    font-size: clamp(1rem, 2.5vw, 1.25rem);
}

/* 🔹 Кнопка */
.btn-warning {
    background-color: #ffc107;
    border: none;
    color: #222;
    transition: transform 0.2s, box-shadow 0.2s;
}
.btn-warning:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

/* 🔹 Особливості */
.features img {
    filter: drop-shadow(0 3px 6px rgba(0,0,0,0.15));
    transition: transform 0.3s ease;
}
.features img:hover {
    transform: scale(1.1);
}

/* 🔹 Липка шапка */
#mainNav {
    background-color: rgba(255, 255, 255, 0.9);
    transition: all 0.3s ease-in-out;
    box-shadow: none;
}
#mainNav.navbar-scrolled {
    background-color: #fff !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.1);
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
}

/* 🔹 Toast */
.toast img {
    border-radius: 8px;
}

/* 🔹 Контейнер контенту */
.page-container {
    padding-left: clamp(16px, 4vw, 60px);
    padding-right: clamp(16px, 4vw, 60px);
    padding-bottom: 60px;
}
main, section, .content-wrapper {
    display: block;
    max-width: 1400px;
    margin: 0 auto;
}

/* 🌅 Банер — широка панорама */
.hero-banner {
    width: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.hero-image {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 🔹 Секція під банером */
.welcome {
    background-color: #fff;
    color: #222;
}

.welcome h1 {
    font-weight: 700;
    color: #333;
}

.welcome p {
    font-size: 1.1rem;
    color: #555;
}

.welcome .btn-warning {
    background-color: #ffc107;
    border: none;
    color: #222;
    transition: 0.3s;
}
.welcome .btn-warning:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

/* 📱 Адаптивність */
@media (max-width: 768px) {
    .welcome h1 {
        font-size: 1.6rem;
    }
    .welcome p {
        font-size: 0.95rem;
    }
}

/* 🧩 Product card hover shadow & lift */
.product-card{
    position: relative;
    border-radius: 14px;
    overflow: hidden;              /* зберігаємо обрізання фото по радіусу */
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);       /* базова, ледь помітна */
    transition: transform .25s ease, box-shadow .25s ease;
    will-change: transform, box-shadow;
}

.product-card:hover,
.product-card:focus-within{
    transform: translateY(-6px);                 /* підйом (залишаємо як було) */
    box-shadow:
            0 10px 24px rgba(0,0,0,.18),             /* основна м’yка тінь */
            0 2px 8px rgba(0,0,0,.08);               /* додатковий шар */
    z-index: 2;                                  /* щоб картка була над сусідами */
}

/* масштаб фото при наведенні (у тебе вже є — нагадаю для повноти) */
.product-card .product-image{
    transition: transform .3s ease;
}
.product-card:hover .product-image{
    transform: scale(1.04);
}

/* на випадок, якщо колонки випадково обрізають тінь */
.row > [class*="col"]{
    overflow: visible;
}

/* ✅ Parallax (візуально), без зміни даних/редактора */
.parallax-hero {
 position: relative;
 overflow: hidden;
}

.parallax-hero .hero-image.parallax-img {
 will-change: transform;
 transform: translate3d(0,0,0) scale(1.10);
 transition: transform120ms linear;
}

.parallax-card {
 position: relative;
 overflow: hidden;
 border-radius:1rem; /* відповідає rounded-4 */
}

.parallax-card .parallax-img {
 display: block;
 width:100%;
 height: auto;
 will-change: transform;
 transform: translate3d(0,0,0) scale(1.14);
 transition: transform120ms linear;
}

@media (prefers-reduced-motion: reduce) {
 .parallax-hero .hero-image.parallax-img,
 .parallax-card .parallax-img {
 transition: none;
 transform: none;
 }
}


/* 📱 Mobile fixes: gallery images + product cards */
@media (max-width:576px) {
 /* Home page: нижні3 зображення (галерея) */
 .gallery .parallax-card {
 border-radius:14px;
 }

 .gallery .parallax-card .parallax-img {
 /* робимо плитку нижчою на мобільному */
 height:160px;
 object-fit: cover;
 }

 /* Menu: картки товару компактніші */
 .product-card {
 border-radius:12px;
 }

 .product-card .card-body {
 padding:0.75rem;
 }

 .product-card .product-image {
 height:190px; /* було280px у View, піджимаємо на мобільному */
 }

 .product-desc {
 min-height:0;
 display: -webkit-box;
 -webkit-line-clamp:3;
 -webkit-box-orient: vertical;
 overflow: hidden;
 }

 .qty-input {
 width:62px !important;
 }
}

@media (max-width:360px) {
 .gallery .parallax-card .parallax-img {
 height:140px;
 }

 .product-card .product-image {
 height:170px;
 }
}

/* =============================
 Global Site Menu (overlay)
 - Desktop: right-side rail, fixed over content
 - Mobile: bottom tab bar
 Does NOT touch the top navbar or existing category buttons.
 ============================= */

.site-menu{
 position: fixed;
 inset:0;
 pointer-events: none; /* only menu surfaces receive events */
 z-index:1040;
}

.site-menu__rail,
.site-menu__tabs{
 pointer-events: auto;
}

/* Desktop rail */
.site-menu__rail{
 display:none;
 position: fixed;
 top:110px;
 right:14px;
 width:86px; /* was72px (bigger on desktop) */
 max-height: calc(100vh -140px);
 overflow: auto;
 padding:13px; /* was11px */
 border-radius:24px; /* slightly larger */

 /* ensure stable look (no expand on hover) */
 background: rgba(255,255,255,0.62);
 backdrop-filter: blur(12px);
 -webkit-backdrop-filter: blur(12px);
 border:1px solid rgba(0,0,0,0.08);
 box-shadow:014px40px rgba(0,0,0,0.10);
}

.site-menu__title{
 font-size:11px;
 text-transform: uppercase;
 opacity:.75;
 margin-bottom:8px;
 text-align:center;
}

.site-menu__item{
 display:flex;
 align-items:center;
 gap:10px;
 justify-content:center;
 text-decoration:none;
 color:#111;
 padding:13px; /* was11px */
 border-radius:16px; /* was14px */
 transition: background .2s ease, transform .18s ease, padding .18s ease;
}

/* ✅ no "expand" — only make the whole menu item larger on hover */
.site-menu__item:hover{
 background: rgba(255,255,255,0.78);
 transform: translateY(-1px) scale(1.05);
 padding-top:15px;
 padding-bottom:15px;
}

.site-menu__item.active{
 background: rgba(255,255,255,0.86);
 box-shadow:010px22px rgba(0,0,0,0.10);
 border:1px solid rgba(0,0,0,0.06);
}

.site-menu__text{
 display:none;
}

/* ❌ Disable premium expand-on-hover behavior entirely */
@media (hover:hover) and (pointer:fine){
 .site-menu__rail:hover{
 width:86px;
 padding:13px;
 transition:none;
 }

 .site-menu__rail:hover .site-menu__item{
 justify-content:center;
 padding:13px;
 flex-direction: column;
 gap:8px; /* was6px */
 }

 .site-menu__rail:hover .site-menu__text{
 display:block;
 }
}

.site-menu__ico svg{ display:block; }

/* Mobile bottom tabs */
.site-menu__tabs{
 display:none;
 position: fixed;
 left:12px;
 right:12px;
 bottom: calc(12px + env(safe-area-inset-bottom,0px));
 padding:11px; /* was10px */
 gap:9px; /* was8px */

 background: rgba(255,255,255,0.74);
 backdrop-filter: blur(12px);
 -webkit-backdrop-filter: blur(12px);
 border:1px solid rgba(0,0,0,0.08);
 border-radius:18px;
 box-shadow:014px40px rgba(0,0,0,0.16);

 animation: siteMenuIn220ms ease-out;
}

@keyframes siteMenuIn{
 from{ transform: translateY(16px); opacity:0; }
 to{ transform: translateY(0); opacity:1; }
}

.site-menu__tab{
 flex:1;
 min-width:0;
 text-decoration:none;
 color:#111;
 text-align:center;
 padding:11px7px; /* was10px6px */
 border-radius:14px;

 /* ✅ align icon + text perfectly */
 display:flex;
 flex-direction: column;
 align-items:center;
 justify-content:center;
 gap:6px; /* was5px */

 transition: background .2s ease, transform .2s ease;
}
.site-menu__tab:hover{ transform: translateY(-1px); }
.site-menu__tab.active{
 background: rgba(255,255,255,0.86);
 box-shadow:010px22px rgba(0,0,0,0.10);
}

.site-menu__tab .tab-ico{
 display:flex;
 align-items:center;
 justify-content:center;
 line-height:1;
}

.site-menu__tab .tab-text{
 display:block;
 font-size:12px; /* was11px */
 line-height:1.1;
 margin:0;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 max-width:100%;
}

@media (min-width:992px){
 .site-menu__rail{ display:block; }
}

@media (max-width:991.98px){
 /* keep space so the fixed tabs don't cover important UI */
 .page-container{ padding-bottom:140px; }
 .site-menu__tabs{ display:flex; }
}

@media (prefers-reduced-motion: reduce){
 .site-menu__tabs{ animation:none; }
 .site-menu__item, .site-menu__tab{ transition:none; }
}

/* Site menu icon polish */
.site-menu__ico,
.site-menu__tab .tab-ico{
 color:#111;
}

.site-menu__svg{
 width:24px; /* was22px (+~10%) */
 height:24px;
 display:block;
}

/* sample-like layout: icon centered, label under (desktop rail default) */
.site-menu__rail .site-menu__item{
 flex-direction: column;
 gap:6px;
}

.site-menu__rail .site-menu__text{
 display:block;
 font-size:12px; /* was11px */
 line-height:1.1;
 color:#1f1f1f;
 opacity:.85;
 text-align:center;
}

/* ✅ Larger icon when hovering the item (instead of rail expansion) */
.site-menu__item:hover .site-menu__svg{
 width:34px; /* was29px */
 height:34px;
}

/* ✅ Mobile: slightly bigger bar + icon, keep text aligned */
@media (max-width:480px){
 .site-menu__tabs{
 padding:13px; /* was12px */
 gap:11px; /* was10px */
 border-radius:20px;
 }

 .site-menu__tab{
 padding:13px7px; /* was12px6px */
 gap:7px; /* was6px */
 }

 .site-menu__tab .tab-text{
 font-size:11.5px; /* was10.5px */
 }

 .site-menu__svg{
 width:26px; /* was24px */
 height:26px;
 }
}

@media (max-width:360px){
 .site-menu__tab .tab-text{ font-size:11px; } /* was10px */
 .site-menu__svg{ width:24px; height:24px; } /* was22px */
}


