/* ЛИС — общая дизайн-система сайта (на основе ФИНАЛ_Пудровый-бутик-с-видео) */
:root{
  --pink:#F6DCE2;
  --pink-2:#FBEAEE;
  --mint:#DCEBE0;
  --mint-2:#EFF6F1;
  --green-deep:#2E6B52;
  --forest:#1E5C4A;
  --rose-deep:#B5677A;
  --terracotta:#C97A63;
  --ink:#3A322F;
  --ink-soft:#68605B;
  --white:#FFFDFB;
  --line:#E7DFDA;
  --radius:22px;
  --font-display:Georgia,'Times New Roman',serif;
  --font-body:'Segoe UI',Verdana,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  overflow-x:hidden;
}
h1,h2,h3,.serif{font-family:var(--font-display); font-weight:400;}
a{text-decoration:none; color:inherit;}
img,video{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
.container{max-width:1180px; margin:0 auto; padding:0 30px;}
@media(max-width:640px){.container{padding:0 20px;}}

/* ---------- HEADER / NAV ---------- */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,253,251,.94); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 30px;}
.logo-wrap{display:flex; align-items:center; gap:10px;}
.logo-wrap img{width:44px; height:44px; border-radius:50%;}
.logo-text{font-family:var(--font-display); font-size:19px; color:var(--rose-deep); line-height:1.1;}
.logo-text span{display:block; font-family:var(--font-body); font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--green-deep);}
.main-nav{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.main-nav a{font-size:13.5px; font-weight:600; color:var(--ink-soft); padding:6px 2px; border-bottom:2px solid transparent; transition:.2s;}
.main-nav a:hover, .main-nav a.active{color:var(--rose-deep); border-color:var(--rose-deep);}
.nav-group{position:relative;}
.nav-group-label{display:flex; align-items:center; gap:4px;}
.nav-group-label::after{content:'▾'; font-size:9px; position:relative; top:1px;}
.nav-dropdown{display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px; min-width:230px; box-shadow:0 16px 32px rgba(58,50,47,.14); z-index:50; flex-direction:column; gap:2px;}
.nav-group:hover .nav-dropdown{display:flex;}
.nav-dropdown a{padding:9px 12px; border-radius:9px; font-size:13px; white-space:nowrap; border-bottom:none; text-align:left;}
.nav-dropdown a:hover{background:var(--mint-2); color:var(--rose-deep);}
.header-right{display:flex; align-items:center; gap:14px;}
.header-phone{font-size:13px; font-weight:700; color:var(--green-deep); white-space:nowrap;}
.cart-btn{position:relative; display:flex; align-items:center; gap:6px; background:var(--rose-deep); color:#fff; padding:9px 16px; border-radius:40px; font-size:13px; font-weight:700;}
.cart-count{background:#fff; color:var(--rose-deep); border-radius:50%; width:20px; height:20px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800;}
.nav-toggle{display:none; background:none; border:none; font-size:22px; color:var(--green-deep); cursor:pointer;}
@media(max-width:900px){
  .main-nav{display:none; position:absolute; top:100%; left:0; right:0; background:rgba(255,255,255,.92); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); flex-direction:column; align-items:center; text-align:center; padding:16px 30px; border-bottom:1px solid var(--line); gap:14px; max-height:80vh; overflow-y:auto;}
  .main-nav.open{display:flex;}
  .nav-toggle{display:block;}
  .nav-group{display:flex; flex-direction:column; align-items:center; gap:8px;}
  .nav-group-label{font-weight:700; color:var(--green-deep);}
  .nav-dropdown{display:flex !important; position:static; transform:none; box-shadow:none; border:none; padding:0; min-width:0; gap:10px; align-items:center;}
  .nav-dropdown a{padding:2px 0; font-size:12.5px; color:var(--ink-soft);}
}

/* ---------- BREADCRUMB / PAGE HEAD ---------- */
.page-head{padding:60px 0 40px; background:var(--mint-2); text-align:center;}
.page-eyebrow{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--rose-deep); font-weight:700; margin-bottom:12px;}
.page-title{font-size:clamp(30px,4.4vw,46px); color:var(--green-deep);}
.page-lead{max-width:560px; margin:14px auto 0; color:var(--ink-soft); font-size:15.5px; line-height:1.7;}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 30px; border-radius:50px; font-weight:700; font-size:14px; transition:.25s; cursor:pointer; border:none; font-family:var(--font-body);}
.btn-primary{background:var(--rose-deep); color:#fff; box-shadow:0 10px 24px rgba(181,103,122,.3);}
.btn-primary:hover{background:var(--green-deep); transform:translateY(-2px);}
.btn-outline{border:1.5px solid var(--rose-deep); color:var(--rose-deep); background:#fff;}
.btn-outline:hover{background:var(--rose-deep); color:#fff;}
.btn-sm{padding:9px 18px; font-size:12.5px;}
.btn:disabled{opacity:.5; cursor:not-allowed;}

/* ---------- SECTIONS ---------- */
.section{padding:90px 0;}
.section.tight{padding:60px 0;}
.section-label{text-align:center; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--rose-deep); font-weight:700; margin-bottom:12px;}
.section-title{text-align:center; font-size:clamp(26px,3.6vw,38px); color:var(--green-deep); margin-bottom:44px;}
.section-title.left, .section-label.left{text-align:left;}

/* ---------- PRODUCT GRID ---------- */
.product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media(max-width:960px){.product-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.product-grid{grid-template-columns:1fr;}}
.product-card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 12px 28px rgba(58,50,47,.07); transition:.3s; display:flex; flex-direction:column;}
.product-card:hover{transform:translateY(-5px); box-shadow:0 18px 36px rgba(58,50,47,.12);}
.product-card .ph{aspect-ratio:1/1; overflow:hidden; position:relative;}
.product-card .ph img{width:100%; height:100%; object-fit:cover; transition:.5s;}
.product-card:hover .ph img{transform:scale(1.06);}
.product-card .badge{position:absolute; top:12px; left:12px; background:var(--mint-2); color:var(--green-deep); font-size:10.5px; font-weight:800; padding:4px 10px; border-radius:20px;}
.product-card .info{padding:16px 16px 18px; display:flex; flex-direction:column; gap:10px; flex:1;}
.product-card h4{font-size:18px; color:var(--ink); margin:0;}
.product-card .price{font-weight:800; color:var(--rose-deep); font-size:16px;}
.product-card .row{display:flex; align-items:center; justify-content:space-between; margin-top:auto;}
.add-btn{background:var(--green-deep); color:#fff; border:none; border-radius:40px; padding:8px 16px; font-size:12.5px; font-weight:700; cursor:pointer; transition:.2s;}
.add-btn:hover{background:var(--rose-deep);}
.add-btn.added{background:var(--forest);}
.wrap-select{width:100%; padding:7px 10px; border-radius:8px; border:1.5px solid var(--line); font-size:12.5px; color:var(--ink-soft); background:#fff; cursor:pointer;}

/* ---------- FILTER ---------- */
.filter-row{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:44px;}
.filter-chip{padding:10px 20px; border-radius:40px; border:1.5px solid var(--line); background:#fff; font-size:13px; font-weight:700; color:var(--ink-soft); cursor:pointer; transition:.2s;}
.filter-chip:hover{border-color:var(--rose-deep);}
.filter-chip.active{background:var(--rose-deep); border-color:var(--rose-deep); color:#fff;}
.empty-state{text-align:center; padding:60px 20px; color:var(--ink-soft); font-size:14.5px;}

/* ---------- VIDEO BANNER ---------- */
.video-banner{position:relative; min-height:60vh; display:flex; align-items:center; overflow:hidden;}
.video-banner video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.video-banner::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(30,20,20,.68) 10%, rgba(30,20,20,.1) 70%);}
.video-banner .content{position:relative; z-index:2; color:#fff; max-width:520px; padding:70px 0;}
.video-banner .content p{opacity:.9; line-height:1.7; margin:14px 0 26px;}

/* ---------- GALLERY ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media(max-width:760px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
.gallery-grid a, .gallery-grid .gcell{border-radius:16px; overflow:hidden; aspect-ratio:1/1.05; display:block; position:relative;}
.gallery-grid img, .gallery-grid video{width:100%; height:100%; object-fit:cover;}

/* ---------- CARDS (florists, news) ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media(max-width:760px){.card-grid{grid-template-columns:1fr;}}
.info-card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 12px 28px rgba(58,50,47,.07);}
.info-card .ph{aspect-ratio:4/3; overflow:hidden;}
.info-card .ph img,.info-card .ph video{width:100%; height:100%; object-fit:cover;}
.info-card .body{padding:20px;}
.info-card h3{font-size:19px; margin:0 0 8px; color:var(--green-deep);}
.info-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin:0;}
.info-card .date{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--rose-deep); font-weight:700; margin-bottom:8px; display:block;}

/* ---------- PROMO CAROUSEL ---------- */
.promo-section{background:var(--white);}
.promo-carousel{position:relative; display:flex; align-items:center; gap:10px;}
.promo-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:6px 2px 14px; -ms-overflow-style:none; scrollbar-width:none;}
.promo-track::-webkit-scrollbar{display:none;}
.promo-card{flex:0 0 auto; width:320px; scroll-snap-align:start; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 12px 28px rgba(58,50,47,.07);}
.promo-ph{position:relative; aspect-ratio:4/3; overflow:hidden;}
.promo-ph img{width:100%; height:100%; object-fit:cover;}
.promo-badge{position:absolute; top:12px; left:12px; font-size:10.5px; font-weight:800; padding:5px 12px; border-radius:20px; color:#fff; letter-spacing:.02em;}
.promo-badge.sale{background:var(--rose-deep);}
.promo-badge.preorder{background:var(--green-deep);}
.promo-card .promo-body{padding:20px;}
.promo-card h3{font-size:18px; margin:0 0 8px; color:var(--green-deep);}
.promo-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin:0 0 16px;}
.promo-nav{flex:0 0 auto; width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line); background:#fff; color:var(--rose-deep); font-size:20px; line-height:1; cursor:pointer; transition:.2s;}
.promo-nav:hover{background:var(--rose-deep); border-color:var(--rose-deep); color:#fff;}
@media(max-width:640px){.promo-nav{display:none;} .promo-card{width:78vw;}}

/* ---------- STATS ---------- */
.stats{background:var(--green-deep); padding:50px 0;}
.stats .container{display:flex; justify-content:space-between; flex-wrap:wrap; gap:26px;}
.stat{text-align:center; flex:1; min-width:140px; color:#fff;}
.stat .n{font-family:var(--font-display); font-size:32px; color:var(--pink);}
.stat .l{font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-top:5px;}

/* ---------- FORMS ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media(max-width:640px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:12.5px; font-weight:700; color:var(--ink);}
.field .hint{font-size:11.5px; color:var(--ink-soft); font-weight:400;}
.field input, .field select, .field textarea{
  border:1.5px solid var(--line); border-radius:12px; padding:12px 14px; font-size:14px; font-family:var(--font-body);
  background:#fff; color:var(--ink); transition:.2s;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--rose-deep);}
.field input.err, .field select.err{border-color:#C0392B;}
.field .err-msg{font-size:11.5px; color:#C0392B; display:none;}
.field.invalid .err-msg{display:block;}
.field.invalid input, .field.invalid select{border-color:#C0392B;}
.radio-row{display:flex; gap:18px;}
.radio-row label{display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; cursor:pointer;}
.checkbox-row{display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--ink-soft); line-height:1.5;}
.checkbox-row input{margin-top:3px;}

/* ---------- CART ---------- */
.cart-line{display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line);}
.cart-line img{width:70px; height:70px; border-radius:12px; object-fit:cover; flex-shrink:0;}
.cart-line .meta{flex:1;}
.cart-line .meta h4{margin:0 0 4px; font-size:15.5px;}
.cart-line .meta .price{color:var(--rose-deep); font-weight:700; font-size:14px;}
.qty-control{display:flex; align-items:center; gap:10px;}
.qty-control button{width:26px; height:26px; border-radius:50%; border:1.5px solid var(--line); background:#fff; cursor:pointer; font-size:14px; line-height:1;}
.remove-line{color:#C0392B; font-size:12px; font-weight:700; cursor:pointer; background:none; border:none;}
.cart-summary{background:var(--mint-2); border-radius:var(--radius); padding:24px; position:sticky; top:90px;}
.cart-summary .row{display:flex; justify-content:space-between; font-size:14px; margin-bottom:10px;}
.cart-summary .total{font-size:19px; font-weight:800; color:var(--green-deep); border-top:1px solid var(--line); padding-top:14px; margin-top:6px;}
.free-delivery-note{font-size:12px; color:var(--ink-soft); background:#fff; border-radius:10px; padding:10px 12px; margin:14px 0;}

/* ---------- ADMIN ---------- */
.admin-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.admin-table th{text-align:left; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); padding:10px 12px; border-bottom:2px solid var(--line);}
.admin-table td{padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle;}
.admin-table img{width:44px; height:44px; border-radius:8px; object-fit:cover;}
.pill{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:20px;}
.pill.on{background:var(--mint-2); color:var(--green-deep);}
.pill.off{background:#F3E4E0; color:#A5453A;}
.icon-btn{border:none; background:var(--mint-2); color:var(--green-deep); border-radius:8px; padding:6px 10px; font-size:12px; cursor:pointer; font-weight:700; margin-right:6px;}
.icon-btn.danger{background:#F3E4E0; color:#A5453A;}
.admin-form{background:var(--mint-2); border-radius:var(--radius); padding:24px; margin-bottom:34px;}

/* ---------- TOAST ---------- */
.toast{position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--forest); color:#fff; padding:14px 24px; border-radius:40px; font-size:13.5px; font-weight:600; box-shadow:0 12px 30px rgba(0,0,0,.2); opacity:0; pointer-events:none; transition:.3s; z-index:999;}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--green-deep); color:#fff; padding:70px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; margin-bottom:50px;}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr;}}
footer h5{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--pink); margin-bottom:16px;}
footer p, footer a{font-size:14px; color:rgba(255,255,255,.85); line-height:2;}
footer a:hover{color:#fff;}
.footer-logo{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.footer-logo img{width:40px; border-radius:50%;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); padding-top:20px; text-align:center; font-size:12px; color:rgba(255,255,255,.55);}
.map-embed{border-radius:var(--radius); overflow:hidden; height:340px; background:var(--mint-2); display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:13.5px; text-align:center; padding:20px;}

.reveal{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
