/* ============================================================
   ОСНОВНЫЕ СТИЛИ САЙТА
   Менять цвета — в переменных :root в начале.
   ============================================================ */

:root {
    --bg:        #FAF8F6;   /* фон сайта */
    --bg-soft:   #F1EAE3;   /* фон блоков */
    --text:      #1F1D1C;   /* основной текст */
    --accent:    #C9A961;   /* золото — акцент */
    --wa:        #25D366;   /* зелёный WhatsApp */
    --ig:        #E1306C;   /* розовый Instagram */
    --sidebar-l: 250px;     /* ширина левого сайдбара */
    --sidebar-r: 300px;     /* ширина правого сайдбара */
    --font-h:    'Cormorant Garamond', Georgia, serif;
    --font-b:    'Inter', Arial, sans-serif;
    --font-accent: 'Great Vibes', cursive;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family: var(--font-b);
    color: var(--text);
    background: var(--bg);
    line-height: 1.7;
    font-size: 16px;
}

h1, h2, h3 { font-family: var(--font-h); font-weight: 400; line-height: 1.2; }
h1 { font-size: 3rem; }
h2 { font-size: 2.2rem; margin-bottom: 1rem; }
h3 { font-size: 1.4rem; }

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ---------- КНОПКИ ---------- */
.btn {
    display: inline-block; padding: 14px 30px; border-radius: 2px;
    font-size: .9rem; letter-spacing: .08em; text-transform: uppercase;
    text-align: center; transition: .3s; font-weight: 500;
}
.btn-whatsapp { background: var(--wa); color: #fff; }
.btn-whatsapp:hover { background: #1da851; }
.btn-instagram { background: linear-gradient(45deg,#F77737,#E1306C,#C13584); color:#fff; }
.btn-outline { border: 1px solid var(--text); background: transparent; }
.btn-outline:hover { background: var(--text); color: var(--bg); }
.btn-lg { padding: 18px 40px; font-size: 1rem; }
.btn-sm { padding: 8px 16px; font-size: .75rem; }
.btn-block { display: block; width: 100%; margin-bottom: 10px; }
.btn-center { display: block; width: max-content; margin: 30px auto 0; }

/* ---------- ШАПКА ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(250,248,246,.97); backdrop-filter: blur(8px); border-bottom: 1px solid var(--bg-soft); }
.header-top { display:flex; justify-content:space-between; align-items:center; padding:8px 4%; font-size:.8rem; background:var(--text); color:#fff; }
.header-contacts { display:flex; gap:10px; }
.header-main { display:flex; justify-content:space-between; align-items:center; padding:18px 4%; }
.logo-name { font-family: var(--font-h); font-size: 1.8rem; }
.logo-dot { color: var(--accent); }

/* ---------- МЕНЮ ---------- */
.menu { display:flex; gap:26px; list-style:none; }
.menu li { position: relative; }
.menu > li > a { font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 0; }
.menu > li > a:hover { color: var(--accent); }
.submenu { display:none; position:absolute; top:100%; left:0; min-width:230px; background:#fff; box-shadow:0 8px 30px rgba(0,0,0,.08); padding:8px 0; list-style:none; z-index:50; }
.has-submenu:hover > .submenu { display:block; }
.submenu a { display:block; padding:9px 18px; font-size:.88rem; }
.submenu a:hover { background: var(--bg-soft); color: var(--accent); }
.submenu .has-submenu > .submenu { top:0; left:100%; }

/* ---------- СЕТКА САЙДБАРОВ ---------- */
.layout { display: grid; grid-template-columns: var(--sidebar-l) 1fr var(--sidebar-r); gap: 34px; max-width: 1500px; margin: 0 auto; padding: 34px 4%; align-items: start; }
.sidebar { position: sticky; top: 120px; }
.content { min-width: 0; }

/* ---------- САЙДБАРЫ ---------- */
.sb-photo img { width:110px; height:110px; border-radius:50%; object-fit:cover; margin:0 auto 10px; }
.sb-name { font-family:var(--font-h); font-size:1.2rem; text-align:center; }
.sb-role { text-align:center; font-size:.8rem; color:#888; margin-bottom:22px; }
.sb-nav h4, .sb-block h4 { font-family:var(--font-b); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:12px; }
.sb-nav ul, .sb-block ul { list-style:none; }
.sb-nav li, .sb-block li { padding:6px 0; font-size:.9rem; border-bottom:1px solid var(--bg-soft); }
.sb-block { margin-bottom:26px; }
.sb-card { background:#fff; padding:22px; box-shadow:0 4px 22px rgba(0,0,0,.05); margin-bottom:26px; }
.sb-gallery { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.sb-gallery img { height:80px; object-fit:cover; width:100%; }
.sb-stats .stat { text-align:center; padding:10px 0; border-bottom:1px solid var(--bg-soft); }
.sb-stats b { display:block; font-family:var(--font-h); font-size:1.7rem; color:var(--accent); }
.sb-stats span { font-size:.75rem; color:#888; }
.sb-reviews blockquote { font-style:italic; font-size:.88rem; border-left:2px solid var(--accent); padding-left:14px; margin-bottom:16px; }
.sb-reviews cite { display:block; font-style:normal; font-size:.75rem; color:#888; margin-top:5px; }
.sb-qr { width:130px; margin:14px auto 0; }

/* ---------- HERO ---------- */
.hero { position:relative; margin-bottom:40px; }
.hero img { width:100%; height:70vh; object-fit:cover; }
.hero-text { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; color:#fff; background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.45)); padding:20px; }
.hero-text h1 { font-size:4rem; margin-bottom:10px; }
.hero-btns { display:flex; gap:14px; margin-top:24px; flex-wrap:wrap; justify-content:center; }

/* ---------- БЛОКИ И ГАЛЕРЕЯ ---------- */
.block { margin-bottom:52px; }
.block h2 { text-align:center; }
.lead { font-size:1.1rem; color:#555; font-style:italic; margin-bottom:24px; }
.gallery { display:grid; gap:14px; }
.gallery-2 { grid-template-columns:repeat(2,1fr); }
.gallery-3 { grid-template-columns:repeat(3,1fr); }
.g-item { overflow:hidden; cursor:zoom-in; }
.g-item img { width:100%; height:340px; object-fit:cover; transition:.5s; }
.g-item:hover img { transform:scale(1.06); }
.cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card { background:#fff; overflow:hidden; box-shadow:0 4px 22px rgba(0,0,0,.05); transition:.3s; }
.card:hover { transform:translateY(-5px); box-shadow:0 12px 34px rgba(0,0,0,.1); }
.card img { width:100%; height:270px; object-fit:cover; }
.card h3, .card p, .card .card-price { padding:0 18px; }
.card p { font-size:.9rem; color:#666; }
.card-price { display:block; padding:12px 18px 18px; color:var(--accent); font-weight:500; }

/* ---------- ПРОЧИЕ БЛОКИ ---------- */
.checklist { list-style:none; }
.checklist li { padding:9px 0 9px 28px; position:relative; border-bottom:1px solid var(--bg-soft); }
.checklist li::before { content:'✓'; position:absolute; left:0; color:var(--accent); font-weight:bold; }
.price-box { background:#fff; padding:34px; text-align:center; box-shadow:0 4px 22px rgba(0,0,0,.05); margin-bottom:34px; }
.price { display:block; font-family:var(--font-h); font-size:3rem; color:var(--accent); margin-bottom:16px; }
.price-label { font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:#888; }
.tarif-nav { display:flex; justify-content:space-between; padding:20px 0; border-top:1px solid var(--bg-soft); font-size:.9rem; }
.breadcrumbs { font-size:.82rem; color:#888; margin-bottom:18px; }
.filter-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.filter-tabs a { padding:8px 20px; border:1px solid var(--bg-soft); font-size:.85rem; }
.filter-tabs a.active { background:var(--text); color:var(--bg); border-color:var(--text); }
.reviews { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.reviews blockquote { background:#fff; padding:26px; font-style:italic; box-shadow:0 4px 22px rgba(0,0,0,.05); }
.reviews cite { display:block; margin-top:10px; font-style:normal; font-size:.8rem; color:var(--accent); }
.about-photo { width:100%; max-width:500px; margin:0 auto 20px; border-radius:4px; }
.contact-btns { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:20px; }

/* ---------- БЛОГ ---------- */
.blog-list { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.blog-card { background:#fff; overflow:hidden; box-shadow:0 4px 22px rgba(0,0,0,.05); transition:.3s; }
.blog-card:hover { transform:translateY(-5px); box-shadow:0 12px 34px rgba(0,0,0,.1); }
.blog-card img { width:100%; height:220px; object-fit:cover; }
.blog-card h3 { padding:16px 18px 4px; font-size:1.2rem; }
.blog-card p { padding:0 18px; font-size:.9rem; color:#666; }
.blog-card .blog-date { color:var(--accent); font-size:.8rem; padding-top:6px; }
.blog-card .link-more { display:block; padding:12px 18px 18px; color:var(--accent); }
.blog-post h2 { margin-top:34px; }
.blog-post .blog-date { color:var(--accent); margin-bottom:20px; }
.blog-post p { margin-bottom:16px; }

/* ---------- CTA-ПОЛОСА И ПОДВАЛ ---------- */
.cta-band { background: var(--text); color:#fff; padding:52px 4%; text-align:center; }
.cta-band h2 { margin-bottom:20px; }
.cta-inline { text-align:center; }
.cta-inline .btn { margin:0 6px 10px; }
.footer-cols { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding:52px 4% 30px; max-width:1500px; margin:0 auto; }
.f-col h5 { font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
.f-col ul { list-style:none; }
.f-col li { padding:4px 0; font-size:.9rem; }
.f-col p { font-size:.9rem; color:#666; }
.footer-bottom { border-top:1px solid var(--bg-soft); padding:18px 4%; display:flex; justify-content:space-between; font-size:.8rem; color:#888; flex-wrap:wrap; gap:10px; }

/* ---------- LIGHTBOX ---------- */
.lightbox { position:fixed; inset:0; background:rgba(0,0,0,.95); display:none; align-items:center; justify-content:center; z-index:1000; }
.lightbox.open { display:flex; }
.lightbox img { max-width:92vw; max-height:88vh; object-fit:contain; }
.lb-close, .lb-prev, .lb-next { position:absolute; background:none; border:none; color:#fff; font-size:2.4rem; cursor:pointer; z-index:10; }
.lb-close { top:18px; right:26px; }
.lb-prev { left:22px; }
.lb-next { right:22px; }
.lb-counter { position:absolute; bottom:22px; color:#fff; font-size:.9rem; }

/* ---------- БУРГЕР ---------- */
.burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; }
.burger span { width:26px; height:2px; background:var(--text); }

/* ============================================================
   АДАПТИВНОСТЬ
   ============================================================ */

/* ПЛАНШЕТ: убираем левый сайдбар, оставляем правый */
@media (max-width: 1199px) {
    .layout { grid-template-columns: 1fr var(--sidebar-r); }
    .sidebar-left { display:none; }
    .cards-3 { grid-template-columns:repeat(2,1fr); }
    .footer-cols { grid-template-columns:repeat(2,1fr); }
    .blog-list { grid-template-columns:1fr; }
}

/* МОБИЛЬНЫЙ: одна колонка, меню-бургер */
@media (max-width: 767px) {
    .layout { grid-template-columns: 1fr; padding:20px 5%; }
    .sidebar-right { position:static; }
    .hero img { height:56vh; }
    .hero-text h1 { font-size:2.4rem; }
    .cards-3, .reviews, .footer-cols, .gallery-3 { grid-template-columns:1fr; }
    .gallery-2 { grid-template-columns:1fr; }
    .g-item img { height:280px; }
    .header-top .location { display:none; }
    .header-top { justify-content:center; }

    /* Бургер-меню */
    .burger { display:flex; }
    .main-nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.1); }
    .main-nav.open { display:block; }
    .menu { flex-direction:column; gap:0; padding:10px 0; }
    .menu > li > a { display:block; padding:12px 20px; }
    .submenu { display:none; position:static; box-shadow:none; background:var(--bg-soft); }
    .has-submenu.open > .submenu { display:block; }
    .has-submenu:hover > .submenu { display:none; }
    .has-submenu.open:hover > .submenu { display:block; }
}