﻿        /* LUXURY COLOR PALETTE */
        :root {
            --bg-white: #FFFFFF;
            --bg-offwhite: #F8F9FA;
            --bg-dark: #0B1120; /* Deep midnight blue-black */
            --text-dark: #1A1A1A;
            --text-gray: #555555;
            --text-light: #F9FAFB;
            
            /* Core Brand Colors */
            --accent-blue: #4A90B8;
            --accent-blue-dark: #2C6385;
            
            /* New Luxury Accent (Champagne / Sand) to kill the "boring" vibe */
            --accent-gold: #D6C2A1; 
            
            --border-color: #E2E8F0;
            
            --font-head: 'Montserrat', sans-serif;
            --font-body: 'Inter', sans-serif;
            --font-cyrillic-accent: 'Playfair Display', Georgia, serif;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }
        
        body {
            font-family: var(--font-body);
            color: var(--text-dark);
            background: var(--bg-offwhite);
            line-height: 1.55;
            font-size: 16px;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

        /* TYPOGRAPHY */
        h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.08; }
        
        .gradient-text {
            background: linear-gradient(135deg, var(--text-dark) 0%, var(--accent-blue) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        
        .gradient-text-gold {
            background: linear-gradient(135deg, var(--accent-gold) 0%, #FFFFFF 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        h1 { font-size: clamp(42px, 7vw, 92px); font-weight: 900; letter-spacing: -0.04em; margin-bottom: 20px; }
        h2 { font-size: clamp(34px, 5vw, 58px); font-weight: 800; letter-spacing: -0.03em; margin-bottom: 20px; color: var(--text-dark);}
        h3 { font-size: clamp(22px, 3vw, 30px); font-weight: 700; margin-bottom: 14px; }
        
        .eyebrow { 
            font-family: var(--font-head); font-size: 13px; letter-spacing: 0.3em; 
            color: var(--accent-blue); text-transform: uppercase; margin-bottom: 24px; display: inline-flex; align-items: center; font-weight: 700;
        }
        .eyebrow::before { content: ''; display: inline-block; width: 40px; height: 2px; background: var(--accent-gold); margin-right: 16px; }
        .hero .eyebrow { display: inline-block; text-align: center; line-height: 1.8; }
        .hero .eyebrow::before { display: none; }

        /* LAYOUT */
        .container { max-width: 1240px; margin: 0 auto; padding: 0 5%; }
        section { padding: 104px 0; position: relative; }

        /* CSS-ONLY SMOOTH FADE ANIMATIONS (NO JS GLITCHES) */
        @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
        .fade-in-element { opacity: 0; animation: fadeInUp 0.8s ease forwards; }
        .delay-1 { animation-delay: 0.2s; }
        .delay-2 { animation-delay: 0.4s; }
        .delay-3 { animation-delay: 0.6s; }

        /* NAVIGATION (GLASS EFFECT) */
        nav {
            position: fixed; top: 0; width: 100%; z-index: 1000; padding: 20px 0; 
            background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 30px rgba(0,0,0,0.03);
            transition: padding 0.3s ease;
        }
        .nav-inner { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
        .logo { display: inline-flex; flex-direction: column; justify-content: center; align-self: center; flex-shrink: 0; min-width: 0; font-family: var(--font-head); font-size: 36px !important; font-weight: 900; text-decoration: none; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-dark); line-height: 0.92;}
        .logo span { display: block; color: var(--accent-blue); font-size: 17px !important; font-weight: 700; letter-spacing: 0.14em; margin-top: 4px;}
        
        .nav-links { display: flex; gap: 40px; margin-left: auto; margin-right: 28px; }
        .nav-links a { text-decoration: none; color: var(--text-dark); font-size: 13px; font-weight: 700; transition: color 0.3s; text-transform: uppercase; letter-spacing: 0.1em;}
        .nav-links a:hover { color: var(--accent-blue); }
        .nav-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; flex-shrink: 0; margin-left: auto; }
        .nav-book {
            padding: 16px 30px;
            font-size: 30px !important;
            letter-spacing: 0.08em;
            white-space: nowrap;
        }
        .lang-toggle {
            font-family: var(--font-head);
            font-size: 30px !important;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            line-height: 1;
            display: inline-flex;
            align-items: center;
            gap: 12px;
            white-space: nowrap;
            margin-right: 24px;
        }
        .lang-toggle button {
            background: none;
            border: 0;
            padding: 0;
            margin: 0;
            color: rgba(26,26,26,0.45);
            font: inherit;
            cursor: pointer;
            transition: color 0.2s ease;
        }
        .lang-toggle .is-active {
            color: var(--text-dark);
        }
        .lang-toggle .lang-separator {
            color: rgba(26,26,26,0.35);
        }
        .lang-toggle button:hover {
            color: var(--accent-blue);
        }

        /* BUTTONS */
        .btn {
            display: inline-flex; justify-content: center; align-items: center;
            padding: 18px 40px; font-family: var(--font-head); font-weight: 800; font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em;
            text-decoration: none; border-radius: 50px; transition: all 0.3s ease; position: relative; overflow: hidden; z-index: 1;
        }
        .btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--text-dark); z-index: -1; transition: transform 0.4s ease; transform: scaleX(0); transform-origin: right; }
        .btn:hover::before { transform: scaleX(1); transform-origin: left; }
        
        .btn-primary { background: var(--accent-blue); color: #FFF; box-shadow: 0 10px 20px rgba(74, 144, 184, 0.2); }
        .btn-primary:hover { color: #FFF; box-shadow: 0 15px 30px rgba(0,0,0,0.15); transform: translateY(-3px);}
        .btn-primary:focus-visible {
            outline: 2px solid rgba(74, 144, 184, 0.52);
            outline-offset: 3px;
        }
        .booking-accent-button.btn::before {
            background: var(--accent-blue);
        }
        .booking-accent-button.btn:hover,
        .booking-accent-button.btn:active,
        .booking-accent-button.btn:focus-visible {
            color: #FFF !important;
        }
        .booking-accent-button.btn:active {
            background: var(--accent-blue);
            border-color: var(--accent-blue);
            transform: translateY(-1px);
            box-shadow: 0 14px 28px rgba(74, 144, 184, 0.24);
        }
        .booking-accent-button.btn:focus-visible {
            outline: 2px solid rgba(74, 144, 184, 0.56);
            outline-offset: 3px;
            box-shadow: 0 0 0 4px rgba(74, 144, 184, 0.16), 0 14px 28px rgba(74, 144, 184, 0.18);
        }
        
        .btn-ghost { background: transparent; color: var(--text-dark); border: 2px solid var(--text-dark); }
        .btn-ghost::before { background: var(--accent-blue); }
        .btn-ghost:hover { color: #FFF; border-color: var(--accent-blue); transform: translateY(-3px);}

        /* HERO SECTION */
        .hero { 
            min-height: 100vh; display: flex; align-items: center; padding-top: 138px; 
            background: radial-gradient(circle at top right, rgba(214, 194, 161, 0.15) 0%, rgba(255,255,255,0) 50%),
                        radial-gradient(circle at bottom left, rgba(74, 144, 184, 0.1) 0%, rgba(255,255,255,0) 50%);
            position: relative;
        }
        .hero-content { text-align: center; max-width: 1000px; margin: 0 auto; position: relative; z-index: 2; }
        
        .hero p.lead { font-size: 20px; color: var(--text-gray); margin-bottom: 38px; line-height: 1.46; font-weight: 400; max-width: 760px; margin-left: auto; margin-right: auto;}
        .hero-ctas { display: flex; gap: 20px; justify-content: center; margin-bottom: 52px; }
        
        .trust-badges { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: 30px auto 0; padding-top: 28px; border-top: 1px solid var(--border-color); width: fit-content;}
        .trust-badges span { font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 12px; width: 100%; }
        .trust-badges span::before { content: '✓'; color: #ffffff; background: #a9c8a7; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; flex: 0 0 24px;}

        /* CSS-ONLY INFINITE MARQUEE */
        .marquee-wrapper { background: var(--text-dark); color: var(--accent-gold); padding: 24px 0; overflow: hidden; display: flex; white-space: nowrap; font-family: var(--font-head); font-weight: 800; font-size: 20px; letter-spacing: 0.15em; border-top: 4px solid var(--accent-blue);}
        .marquee { display: flex; animation: marquee 20s linear infinite; }
        .marquee span { padding: 0 40px; }
        @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

        /* OFFER / STATS SECTION */
        .offer-section { background: var(--bg-offwhite); }
        .offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 0; align-items: stretch;}
        
        /* Floating animation for cards */
        @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } }
        
        .stat-card { 
            background: var(--bg-white); padding: 38px 28px; border-radius: 24px; 
            border: 1px solid var(--border-color); text-align: center;
            box-shadow: 0 20px 40px rgba(0,0,0,0.03); transition: all 0.4s ease;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            min-height: 100%;
        }
        .stat-card:hover { border-color: var(--accent-gold); box-shadow: 0 30px 60px rgba(214, 194, 161, 0.2); transform: translateY(-5px) !important; }
        /* Only float the middle card slightly to break the grid */
        .stat-card:nth-child(2) { animation: float 6s ease-in-out infinite; }
        
        .stat-number { font-family: var(--font-head); font-size: 66px; font-weight: 900; color: var(--accent-blue); line-height: 1; margin-bottom: 12px; display: block; letter-spacing: -0.05em; font-variant-numeric: tabular-nums lining-nums; }
        .stat-card h3, .stat-card h4 { font-size: 20px; margin-bottom: 10px; line-height: 1.12; }
        .stat-card h3:empty, .stat-card h4:empty { display: none; }
        .stat-card p { font-size: 15px; line-height: 1.38; }

        /* ABOUT SECTION (LIZAVETA & DOGS) */
        .about-section { background: var(--bg-white); overflow: hidden; }
        .about-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 64px; align-items: start; }
        
        /* Arch Image Styling */
        .image-arch-container {
            position: relative;
            padding-bottom: 20px;
            width: fit-content;
            max-width: 100%;
            justify-self: center;
        }
        .about-photo-title { color: var(--text-dark); margin: 0 0 22px; }
        .image-arch { 
            display: block;
            width: auto !important;
            max-width: 100%;
            height: auto !important;
            aspect-ratio: auto;
            object-fit: contain;
            margin: 0 auto;
            border-radius: 24px;
            box-shadow: 0 30px 60px rgba(0,0,0,0.1); 
            border: 8px solid var(--bg-white);
            position: relative; z-index: 2;
        }
        /* Background decor shape behind image */
        .image-arch-bg { display: none; }
        
        /* Dogs bubble overlapping */
        .dogs-bubble {
            position: static;
            margin-top: 12px;
            background: var(--bg-white); padding: 11px 13px; border-radius: 18px;
            box-shadow: 0 12px 24px rgba(0,0,0,0.08); display: flex; align-items: center; gap: 11px; max-width: 320px;
            border: 1px solid var(--border-color);
        }
        .dogs-bubble img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 72px; }
        .dogs-bubble p { font-size: 13px; line-height: 1.4; color: var(--text-gray); margin: 0; font-weight: 400; }
        .dogs-bubble strong { color: var(--text-dark); display: block; font-family: var(--font-head); font-size: 12px; margin-bottom: 3px; letter-spacing: 0.06em; text-transform: uppercase;}
        .dogs-bubble strong:empty { display: none; }

        .about-text h2 { color: var(--text-dark); }
        .about-quote { 
            font-family: var(--font-head); font-size: 24px; font-weight: 700; line-height: 1.28; font-style: italic;
            margin: 28px 0; padding: 30px; background: var(--bg-offwhite); border-radius: 0 32px 32px 32px;
            border-left: 6px solid var(--accent-blue); color: var(--text-dark); position: relative;
        }
        .about-quote::before { content: ''; }
        .about-extra-media {
            display: grid;
            gap: 16px;
            margin-top: 32px;
            max-width: 100%;
            justify-self: start;
        }
        .about-extra-media .room-image-container {
            width: fit-content;
            max-width: 100%;
        }
        .about-extra-media .room-image {
            margin-bottom: 12px;
        }
        .about-extra-media .dogs-bubble {
            max-width: 100%;
            margin-top: 0;
        }

        /* HOW IT WORKS (DARK PREMIUM SECTION) */
        .how-it-works { background: var(--bg-dark); color: var(--text-light); }
        .how-it-works .eyebrow { background: rgba(214, 194, 161, 0.1); color: var(--accent-gold); padding: 8px 24px; border-radius: 40px; }
        .how-it-works .eyebrow::before { display: none; }
        .how-it-works h2 { color: var(--text-light); }
        
        .steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 52px; }
        .step-card { 
            background: rgba(255,255,255,0.03); padding: 40px 28px; border-radius: 24px; 
            border: 1px solid rgba(255,255,255,0.05); position: relative; transition: all 0.4s; 
            backdrop-filter: blur(10px);
        }
        .step-card:hover { transform: translateY(-10px); border-color: var(--accent-gold); background: rgba(214, 194, 161, 0.05);}
        .step-num { font-family: var(--font-head); font-size: 80px; font-weight: 900; color: rgba(255,255,255,0.05); position: absolute; top: 10px; right: 20px; line-height: 1; transition: color 0.4s;}
        .step-card:hover .step-num { color: rgba(214, 194, 161, 0.2); }
        .step-card h3, .step-card h4 { margin-bottom: 12px; font-size: 19px; line-height: 1.14; position: relative; z-index: 2; color: #FFF; }
        .step-card p { font-size: 14px; line-height: 1.42; position: relative; z-index: 2; color: #94a3b8; }


        /* BEFORE / AFTER GALLERY */
        .results-section { background: var(--bg-white); padding-top: 72px; }
        .results-intro { max-width: 760px; margin-bottom: 56px; }
        .results-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 24px;
            margin-top: 16px;
        }
        .result-card {
            background: var(--bg-offwhite);
            border: 1px solid var(--border-color);
            border-radius: 28px;
            overflow: hidden;
            box-shadow: 0 18px 40px rgba(0,0,0,0.05);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .result-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 24px 50px rgba(0,0,0,0.08);
        }
        .result-card img {
            width: 100%;
            display: block;
            object-fit: cover;
            aspect-ratio: 1 / 1;
            background: #fff;
        }
        .result-card .result-meta {
            padding: 18px 20px 20px;
        }
        .result-card .result-title {
            font-family: var(--font-head);
            font-size: 18px;
            font-weight: 800;
            margin-bottom: 6px;
            color: var(--text-dark);
        }
        .result-card .result-note {
            font-size: 14px;
            color: var(--text-gray);
            line-height: 1.5;
        }

        /* PRICING */
        .pricing-section { background: var(--bg-offwhite); }
        .pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; max-width: 1080px; margin: 0 auto; justify-items: center; text-align: center;}
        
        .price-box { 
            background: var(--bg-white); padding: 44px 36px; text-align: left; 
            border-radius: 32px; border: 2px solid var(--accent-gold); 
            box-shadow: 0 30px 60px rgba(214, 194, 161, 0.15); position: relative;
        }
        .price-box h3 { font-size: 90px; color: var(--accent-blue); margin-bottom: 0; font-weight: 900; letter-spacing: -0.05em; line-height: 1; font-variant-numeric: tabular-nums lining-nums; }
        .price-box p { font-size: 15px; margin-bottom: 22px; color: var(--text-gray); font-weight: 700; letter-spacing: 0.02em; line-height: 1.4;}
        .price-box p:empty { display: none; }
        .pricing-highlight {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            margin: 0 0 22px;
            padding: 10px 14px;
            border-radius: 999px;
            background: rgba(74, 144, 184, 0.12);
            color: var(--accent-blue);
            font-size: 13px;
            font-weight: 800;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }
        .price-box ul { list-style: none; text-align: left; }
        .price-box li { border-top: 1px dashed var(--border-color); padding: 16px 0; font-size: 15px; font-weight: 600; display: flex; justify-content: space-between; gap: 16px; align-items: baseline;}
        
        .duration-table { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; font-size: 15px; margin-top: 24px; text-align: left;}
        .table-row { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--border-color); padding: 14px 0; transition: all 0.3s; cursor: default; align-items: baseline;}
        .table-row:hover { padding-left: 16px; padding-right: 16px; background: var(--bg-white); border-color: transparent; border-radius: 12px; color: var(--accent-blue); box-shadow: 0 10px 20px rgba(0,0,0,0.05);}
        .table-row span { color: var(--text-gray); font-weight: 500; flex: 1 1 auto; min-width: 0; padding-right: 12px; line-height: 1.32; text-wrap: balance;}
        .table-row strong { font-weight: 800; color: var(--text-dark); flex-shrink: 0; text-align: right; }
        .price-table > div:last-child { display: flex; justify-content: center; }

        /* SAFETY (ROOM PHOTO) */
        .safety { background: var(--bg-white); }
        .safety-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; margin-top: 28px; }
        .safety-grid > :only-child { grid-column: 1 / -1; max-width: 900px; }
        
        .room-image-container {
            position: relative;
            width: fit-content;
            max-width: 100%;
            justify-self: center;
        }
        .room-image {
            display: block;
            width: auto !important;
            max-width: 100%;
            height: auto !important;
            border-radius: 24px;
            box-shadow: 0 30px 60px rgba(0,0,0,0.1);
            object-fit: contain;
            aspect-ratio: auto;
            margin: 0 auto 10px;
        }
        /* Decorative frame */
        .room-image-container::before { content: ''; position: absolute; inset: -16px; border: 2px dashed var(--accent-gold); border-radius: 36px; z-index: -1; }
        
        .safety-card { margin-bottom: 20px; display: flex; gap: 18px; align-items: flex-start; padding: 20px; border-radius: 24px; transition: background 0.3s;}
        .safety-card:hover { background: var(--bg-offwhite); }
        .safety-icon { width: 56px; height: 56px; background: var(--accent-blue); border-radius: 16px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--bg-white); font-weight: 900; font-size: 20px; font-family: var(--font-head); box-shadow: 0 10px 20px rgba(74, 144, 184, 0.3);}
        .safety-card h3, .safety-card h4 { font-size: 18px; margin-bottom: 6px; line-height: 1.16; color: var(--text-dark); }
        .safety-card p { font-size: 15px; line-height: 1.42; color: var(--text-gray); margin: 0;}

        /* FAQ (CSS ONLY ACCORDION - NO JS BUGS) */
        .faq { background: var(--bg-offwhite); }
        .faq-list { max-width: 900px; margin: 48px auto 0; background: var(--bg-white); border-radius: 32px; padding: 20px 42px; box-shadow: 0 20px 40px rgba(0,0,0,0.03); border: 1px solid var(--border-color);}
        
        /* Using native HTML details/summary for 0 bugs */
        details { border-bottom: 1px solid var(--border-color); padding: 20px 0; }
        details:last-child { border-bottom: none; }
        summary { 
            font-family: var(--font-head); font-size: 18px; font-weight: 700; color: var(--text-dark); 
            cursor: pointer; list-style: none; position: relative; padding-right: 40px; transition: color 0.3s;
        }
        summary::-webkit-details-marker { display: none; } /* Hide default arrow */
        summary::after { 
            content: '+'; position: absolute; right: 0; top: -4px; font-size: 32px; font-weight: 300; 
            color: var(--accent-blue); transition: transform 0.3s; 
        }
        details[open] summary::after { transform: rotate(45deg); color: var(--accent-gold); }
        details[open] summary { color: var(--accent-blue); }
        .faq-a { padding-top: 12px; font-size: 15px; color: var(--text-gray); line-height: 1.56; animation: fadeIn 0.4s ease; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

        /* BOOK SECTION */
        .book { text-align: center; background: var(--bg-white); }
        .book-content { max-width: 980px; margin: 0 auto; background: var(--bg-dark); color: #FFF; padding: 64px 36px 46px; border-radius: 40px; position: relative; overflow: hidden; box-shadow: 0 40px 80px rgba(0,0,0,0.2);}
        .book-content::before { content:''; position:absolute; top:-50%; left:-50%; width:200%; height:200%; background: radial-gradient(circle, rgba(214, 194, 161, 0.15) 0%, transparent 60%); z-index:0; pointer-events:none;}
        .book-content > * { position: relative; z-index: 1; }
        .book-content h2 { color: #FFF; }
        .book-intro {
            max-width: 700px;
            margin: 16px auto 0;
            font-size: 18px;
            line-height: 1.55;
            color: #a1a1aa;
        }
        .book-intro:empty { display: none; }
        .book .btn-ghost { border-color: rgba(255,255,255,0.3); color: var(--bg-white); }
        .book .btn-ghost:hover { border-color: var(--accent-gold); color: #FFF; background: rgba(214, 194, 161, 0.1);}
        .booking-shell-simple {
            margin-top: 24px;
        }
        .booking-square-card {
            max-width: 560px;
            margin: 0 auto;
            text-align: center;
            padding: 4px 0 0;
            background: transparent;
            border: 0;
            box-shadow: none;
        }
        .booking-square-note {
            margin: 0;
            color: var(--text-gray);
            font-size: 16px;
            line-height: 1.55;
        }
        .booking-square-link {
            min-width: 240px;
        }
        .booking-actions-center {
            justify-content: center;
            margin-top: 0;
        }
        .booking-contact-note {
            margin: 22px 0 0;
            color: rgba(255,255,255,0.68);
            font-size: 13px;
            line-height: 1.45;
            letter-spacing: 0.02em;
        }
        .book-buttons {
            display: flex;
            gap: 14px;
            flex-wrap: wrap;
            margin-top: 18px;
        }
        .floating-contact {
            position: fixed;
            right: 22px;
            bottom: 22px;
            z-index: 1100;
            display: grid;
            justify-items: end;
            gap: 12px;
        }
        .floating-contact-button {
            border: 1px solid rgba(214, 194, 161, 0.58);
            background: rgba(11, 17, 32, 0.92);
            color: #FFF;
            border-radius: 999px;
            padding: 11px 16px;
            font-family: var(--font-head);
            font-size: 11px;
            font-weight: 800;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            line-height: 1.1;
            cursor: pointer;
            box-shadow: 0 18px 40px rgba(8, 15, 28, 0.26);
            transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
        }
        .floating-contact-button:hover,
        .floating-contact.is-open .floating-contact-button {
            transform: translateY(-2px);
            background: rgba(74, 144, 184, 0.94);
            border-color: rgba(74, 144, 184, 0.94);
            box-shadow: 0 20px 42px rgba(74, 144, 184, 0.24);
        }
        .floating-contact-button:focus-visible {
            outline: 2px solid rgba(74, 144, 184, 0.6);
            outline-offset: 3px;
        }
        .floating-contact-panel {
            position: relative;
            width: min(88vw, 320px);
            padding: 24px 22px 20px;
            border-radius: 26px;
            background: linear-gradient(180deg, rgba(248, 249, 250, 0.98), rgba(242, 246, 250, 0.96));
            border: 1px solid rgba(214, 194, 161, 0.56);
            box-shadow: 0 26px 60px rgba(8, 15, 28, 0.22);
        }
        .floating-contact-panel[hidden] {
            display: none;
        }
        .floating-contact-close {
            position: absolute;
            top: 12px;
            right: 12px;
            width: 34px;
            height: 34px;
            border: 0;
            border-radius: 50%;
            background: rgba(11, 17, 32, 0.08);
            color: var(--text-dark);
            font-size: 22px;
            line-height: 1;
            cursor: pointer;
        }
        .floating-contact-copy {
            margin: 0;
            padding-right: 24px;
            color: var(--text-dark);
            font-size: 15px;
            line-height: 1.5;
        }
        .floating-contact-actions {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
            margin-top: 18px;
        }
        .floating-contact-link {
            width: 100%;
            justify-content: center;
        }
        .booking-shell {
            margin-top: 36px;
            display: grid;
            gap: 20px;
            text-align: left;
        }
        .booking-step-card {
            border: 1px solid rgba(255,255,255,0.1);
            background: rgba(255,255,255,0.04);
            border-radius: 30px;
            padding: 28px;
            backdrop-filter: blur(14px);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
            animation: fadeInUp 0.45s ease both;
        }
        .booking-step-heading {
            display: flex;
            gap: 16px;
            align-items: flex-start;
            margin-bottom: 20px;
        }
        .booking-step-index {
            flex: 0 0 auto;
            width: 42px;
            height: 42px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.14em;
            color: var(--bg-dark);
            background: linear-gradient(135deg, var(--accent-gold), #efe3cf);
        }
        .booking-step-title {
            margin: 0 0 6px;
            color: #FFF;
        }
        .booking-step-copy {
            margin: 0;
            color: #a1a1aa;
            font-size: 15px;
            line-height: 1.5;
        }
        .booking-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 16px;
        }
        .booking-field {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .booking-field-stack { margin-top: 12px; }
        .booking-field label {
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.75);
        }
        .booking-field select,
        .booking-field input,
        .booking-field textarea {
            width: 100%;
            border: 1px solid rgba(255,255,255,0.14);
            background: rgba(255,255,255,0.06);
            color: #FFF;
            border-radius: 18px;
            padding: 14px 16px;
            font-size: 15px;
            outline: none;
            appearance: none;
            -webkit-appearance: none;
            background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,0.75) 50%), linear-gradient(135deg, rgba(255,255,255,0.75) 50%, transparent 50%);
            background-position: calc(100% - 22px) calc(50% - 3px), calc(100% - 16px) calc(50% - 3px);
            background-size: 6px 6px, 6px 6px;
            background-repeat: no-repeat;
        }
        .booking-field input,
        .booking-field textarea {
            background-image: none;
        }
        .booking-field textarea {
            min-height: 110px;
            resize: vertical;
            font-family: var(--font-body);
            line-height: 1.5;
        }
        .booking-field select option {
            color: #111;
        }
        .booking-inline-note,
        .booking-status,
        .booking-response-time,
        .booking-feedback {
            font-size: 13px;
            line-height: 1.45;
            color: #a1a1aa;
        }
        .booking-inline-note {
            margin-bottom: 18px;
        }
        .booking-inline-note + .booking-inline-note {
            margin-top: -6px;
        }
        .booking-slot-header {
            margin-top: 14px;
        }
        .booking-slot-heading {
            display: inline-block;
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.76);
        }
        .booking-date-grid,
        .booking-slot-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
        }
        .booking-date-focus {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 10px 12px;
            align-items: center;
            animation: fadeInUp 0.25s ease both;
        }
        .booking-date-focus-label {
            grid-column: 1 / -1;
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.7);
        }
        .booking-date-chip,
        .booking-slot-button,
        .booking-choice-button {
            border: 1px solid rgba(255,255,255,0.12);
            background: rgba(255,255,255,0.04);
            color: #FFF;
            border-radius: 18px;
            padding: 13px 18px;
            font: inherit;
            cursor: pointer;
            transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
        }
        .booking-date-chip {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 4px;
            min-height: 76px;
            text-align: left;
        }
        .booking-date-chip-selected {
            min-height: 60px;
            justify-content: center;
        }
        .booking-date-chip strong,
        .booking-slot-button,
        .booking-choice-button {
            font-family: var(--font-head);
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0.05em;
        }
        .booking-date-chip span {
            font-size: 12px;
            color: rgba(255,255,255,0.72);
        }
        .booking-date-chip:hover,
        .booking-slot-button:hover,
        .booking-choice-button:hover {
            transform: translateY(-2px);
            border-color: rgba(214, 194, 161, 0.75);
            box-shadow: 0 18px 36px rgba(0,0,0,0.18);
        }
        .booking-date-chip.is-active,
        .booking-slot-button.is-active,
        .booking-choice-button.is-active {
            background: linear-gradient(135deg, rgba(127, 179, 211, 0.34), rgba(127, 179, 211, 0.18));
            border-color: var(--accent-blue);
            color: #FFF;
            box-shadow: 0 18px 36px rgba(69, 124, 173, 0.18);
        }
        .booking-date-chip.is-disabled,
        .booking-slot-button:disabled {
            opacity: 0.34;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
        }
        .booking-slot-grid {
            margin-top: 18px;
        }
        .booking-date-change {
            border: 1px solid rgba(127, 179, 211, 0.34);
            background: rgba(127, 179, 211, 0.08);
            color: #dbe8f2;
            border-radius: 16px;
            padding: 12px 14px;
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.05em;
            cursor: pointer;
            transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease, transform 0.25s ease;
        }
        .booking-date-change:hover,
        .booking-date-change:focus-visible {
            border-color: var(--accent-blue);
            background: rgba(127, 179, 211, 0.18);
            color: #fff;
            transform: translateY(-1px);
            outline: none;
        }
        .booking-slot-button {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 4px;
            justify-content: center;
            width: 100%;
            text-align: center;
        }
        .booking-slot-time {
            display: block;
        }
        .booking-slot-meta {
            display: block;
            font-family: var(--font-head);
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }
        .booking-slot-button.is-unavailable,
        .booking-slot-button.is-unavailable:disabled {
            opacity: 1;
            background: rgba(214, 194, 161, 0.08);
            border-color: rgba(214, 194, 161, 0.42);
            color: rgba(255,255,255,0.84);
            box-shadow: none;
            cursor: not-allowed;
        }
        .booking-slot-button.is-unavailable:hover {
            transform: none;
            border-color: rgba(214, 194, 161, 0.42);
            box-shadow: none;
        }
        .booking-slot-button.is-unavailable .booking-slot-meta {
            color: var(--accent-gold);
        }
        .booking-choice-row {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
            margin-top: 14px;
        }
        .booking-choice-button {
            width: 100%;
            min-height: 52px;
        }
        .booking-date-chip:focus-visible,
        .booking-slot-button:focus-visible,
        .booking-choice-button:focus-visible {
            outline: 2px solid rgba(127, 179, 211, 0.85);
            outline-offset: 2px;
        }
        .booking-status {
            margin: 18px 0 0;
        }
        .booking-summary {
            margin-top: 20px;
            border-top: 1px solid rgba(255,255,255,0.1);
            padding-top: 18px;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px 18px;
        }
        .booking-summary-compact {
            margin-top: 0;
            margin-bottom: 16px;
            padding-top: 0;
            border-top: 0;
        }
        .booking-summary-line {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: center;
            padding-bottom: 10px;
            border-bottom: 1px solid rgba(255,255,255,0.06);
        }
        .booking-summary-line span {
            color: rgba(255,255,255,0.66);
            font-size: 13px;
        }
        .booking-summary-line strong {
            color: #FFF;
            font-size: 14px;
        }
        .booking-summary[hidden] {
            display: none;
        }
        .booking-actions {
            margin-top: 24px;
            display: flex;
            justify-content: flex-start;
        }
        .booking-continue,
        .booking-submit {
            min-width: 220px;
            justify-content: center;
        }
        .booking-continue:disabled,
        .booking-submit:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
        }
        .booking-contact-form {
            display: grid;
            gap: 18px;
        }
        .booking-contact-form-modal {
            margin-top: 18px;
        }
        .booking-grid-modal {
            margin-bottom: 18px;
        }
        .booking-response-time {
            margin: 0;
        }
        .booking-contact-options {
            text-align: center;
        }
        .booking-contact-options-line {
            margin: 0;
            color: rgba(255,255,255,0.74);
            font-size: 15px;
            line-height: 1.42;
        }
        .booking-contact-options-line + .booking-contact-options-line {
            margin-top: 4px;
        }
        .booking-contact-options .booking-step-title {
            margin: 10px 0 0;
        }
        .booking-contact-options .book-buttons {
            justify-content: center;
            margin-top: 20px;
        }
        .booking-feedback {
            min-height: 22px;
            margin-top: 2px;
        }
        .booking-feedback.is-error,
        .booking-modal-error {
            color: #ffb4b4;
        }
        .booking-feedback.is-success {
            color: #cde8b0;
        }
        .booking-form-shell {
            display: grid;
            gap: 20px;
        }
        .booking-step-card-light,
        .booking-success-state {
            background: linear-gradient(180deg, rgba(248, 249, 250, 0.98), rgba(242, 246, 250, 0.96));
            border: 1px solid rgba(214, 194, 161, 0.6);
            box-shadow: 0 24px 56px rgba(8, 15, 28, 0.16);
            color: var(--text-dark);
        }
        .booking-step-card-light .booking-step-title,
        .booking-step-card-light .booking-step-copy,
        .booking-step-card-light .booking-field label,
        .booking-success-state .booking-step-title,
        .booking-success-state .booking-step-copy {
            color: var(--text-dark);
        }
        .booking-step-card-light .booking-step-copy {
            color: var(--text-gray);
        }
        .booking-step-card-light .booking-step-index {
            box-shadow: 0 12px 24px rgba(214, 194, 161, 0.18);
        }
        .booking-step-card-light .booking-field select,
        .booking-step-card-light .booking-field input,
        .booking-step-card-light .booking-field textarea {
            border: 1px solid rgba(74, 144, 184, 0.18);
            background: rgba(255,255,255,0.96);
            color: var(--text-dark);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
        }
        .booking-step-card-light .booking-field select option,
        .booking-step-card-light .booking-field input::placeholder,
        .booking-step-card-light .booking-field textarea::placeholder {
            color: rgba(85, 85, 85, 0.68);
        }
        .booking-step-card-light .booking-field select:focus,
        .booking-step-card-light .booking-field input:focus,
        .booking-step-card-light .booking-field textarea:focus {
            border-color: rgba(74, 144, 184, 0.68);
            box-shadow: 0 0 0 4px rgba(74, 144, 184, 0.12);
        }
        .booking-step-card-light .booking-inline-note,
        .booking-step-card-light .booking-status,
        .booking-step-card-light .booking-response-time,
        .booking-step-card-light .booking-feedback,
        .booking-step-card-light .booking-slot-heading,
        .booking-step-card-light .booking-date-focus-label,
        .booking-step-card-light .booking-summary-line span,
        .booking-step-card-light .booking-date-chip span,
        .booking-step-card-light .booking-modal-label {
            color: rgba(26, 26, 26, 0.66);
        }
        .booking-step-card-light .booking-date-chip,
        .booking-step-card-light .booking-slot-button,
        .booking-step-card-light .booking-choice-button {
            border: 1px solid rgba(74, 144, 184, 0.16);
            background: rgba(255,255,255,0.98);
            color: var(--text-dark);
            box-shadow: 0 10px 24px rgba(8, 15, 28, 0.05);
        }
        .booking-step-card-light .booking-date-chip strong,
        .booking-step-card-light .booking-slot-button,
        .booking-step-card-light .booking-choice-button,
        .booking-step-card-light .booking-summary-line strong,
        .booking-step-card-light .booking-modal-question,
        .booking-step-card-light .booking-modal-list {
            color: var(--text-dark);
        }
        .booking-step-card-light .booking-date-chip:hover,
        .booking-step-card-light .booking-slot-button:hover,
        .booking-step-card-light .booking-choice-button:hover {
            box-shadow: 0 18px 34px rgba(74, 144, 184, 0.12);
        }
        .booking-step-card-light .booking-date-chip.is-active,
        .booking-step-card-light .booking-slot-button.is-active,
        .booking-step-card-light .booking-choice-button.is-active {
            background: linear-gradient(135deg, rgba(74, 144, 184, 0.16), rgba(214, 194, 161, 0.2));
            color: var(--text-dark);
            box-shadow: 0 16px 32px rgba(74, 144, 184, 0.14);
        }
        .booking-step-card-light .booking-date-chip.is-disabled,
        .booking-step-card-light .booking-slot-button:disabled {
            background: rgba(247, 248, 250, 0.82);
            color: rgba(26, 26, 26, 0.42);
        }
        .booking-step-card-light .booking-slot-button.is-unavailable,
        .booking-step-card-light .booking-slot-button.is-unavailable:disabled {
            background: rgba(214, 194, 161, 0.12);
            border-color: rgba(214, 194, 161, 0.42);
            color: rgba(26, 26, 26, 0.7);
        }
        .booking-step-card-light .booking-slot-button.is-unavailable .booking-slot-meta {
            color: var(--accent-blue-dark);
        }
        .booking-step-card-light .booking-date-change {
            border-color: rgba(74, 144, 184, 0.24);
            background: rgba(74, 144, 184, 0.08);
            color: var(--accent-blue-dark);
        }
        .booking-step-card-light .booking-summary {
            border-top-color: rgba(11, 17, 32, 0.08);
        }
        .booking-step-card-light .booking-summary-line {
            border-bottom-color: rgba(11, 17, 32, 0.08);
        }
        .booking-contra-section + .booking-contra-section {
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid rgba(255,255,255,0.08);
        }
        .booking-step-card-light .booking-contra-section + .booking-contra-section {
            border-top-color: rgba(11, 17, 32, 0.08);
        }
        .booking-step-card-light .booking-blocked-note {
            border-color: rgba(74, 144, 184, 0.22);
            background: rgba(74, 144, 184, 0.08);
            color: var(--accent-blue-dark);
        }
        .booking-actions-submit {
            justify-content: flex-end;
        }
        .booking-success-state[hidden] {
            display: none;
        }
        .booking-success-state .booking-success-title {
            color: var(--text-dark);
        }
        .booking-success-state .booking-success-copy {
            color: var(--text-gray);
        }
        .booking-success-state .booking-summary-line {
            border-bottom-color: rgba(11, 17, 32, 0.08);
        }
        .booking-success-state .booking-summary-line span {
            color: rgba(26, 26, 26, 0.66);
        }
        .booking-success-state .booking-summary-line strong {
            color: var(--text-dark);
        }
        .booking-success-state {
            text-align: center;
        }
        .booking-success-state .booking-success-summary {
            max-width: 560px;
            margin-left: auto;
            margin-right: auto;
        }
        .booking-success-address {
            margin: 0;
            color: #6c2e20;
            font-size: 15px;
            line-height: 1.55;
            font-weight: 700;
        }
        .booking-success-notice {
            margin-top: 26px;
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 14px;
            align-items: start;
            padding: 18px 18px 18px 16px;
            border-radius: 22px;
            background: linear-gradient(180deg, rgba(255, 247, 240, 0.98), rgba(255, 241, 233, 0.92));
            border: 1px solid rgba(210, 81, 56, 0.24);
            box-shadow: 0 16px 36px rgba(210, 81, 56, 0.08);
            text-align: left;
        }
        .booking-success-notice-icon {
            width: 34px;
            height: 34px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #d25138;
            color: #fff;
            font-family: var(--font-head);
            font-size: 18px;
            font-weight: 900;
            box-shadow: 0 12px 24px rgba(210, 81, 56, 0.2);
        }
        .booking-modal {
            position: fixed;
            inset: 0;
            z-index: 1000;
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
            padding: 20px 0;
        }
        .booking-modal[hidden] {
            display: none;
        }
        .booking-modal-backdrop {
            position: absolute;
            inset: 0;
            background: rgba(7, 7, 9, 0.76);
            backdrop-filter: blur(6px);
        }
        .booking-modal-dialog {
            position: relative;
            width: min(92vw, 640px);
            margin: min(10vh, 64px) auto;
            background: #101014;
            color: #FFF;
            border-radius: 30px;
            padding: 32px;
            border: 1px solid rgba(255,255,255,0.08);
            box-shadow: 0 30px 80px rgba(0,0,0,0.4);
            animation: fadeInUp 0.3s ease both;
            max-height: calc(100dvh - 40px);
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
            touch-action: pan-y;
        }
        .booking-modal-close {
            position: absolute;
            top: 18px;
            right: 18px;
            width: 38px;
            height: 38px;
            border: 0;
            border-radius: 50%;
            background: rgba(255,255,255,0.08);
            color: #FFF;
            font-size: 26px;
            cursor: pointer;
        }
        .booking-modal-dialog h3 {
            margin-top: 0;
            margin-bottom: 24px;
            color: #FFF;
        }
        .booking-modal-section + .booking-modal-section {
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid rgba(255,255,255,0.08);
        }
        .booking-modal-label {
            margin: 0 0 14px;
            font-family: var(--font-head);
            font-size: 14px;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: rgba(255,255,255,0.82);
        }
        .booking-modal-list {
            margin: 0;
            padding-left: 18px;
            color: #d4d7df;
            font-size: 14px;
            line-height: 1.55;
        }
        .booking-modal-list li + li {
            margin-top: 8px;
        }
        .booking-modal-question {
            margin: 18px 0 0;
            color: #fff;
            font-size: 14px;
            line-height: 1.5;
        }
        .booking-blocked-note {
            margin-top: 16px;
            padding: 16px 18px;
            border-radius: 18px;
            border: 1px solid rgba(127, 179, 211, 0.28);
            background: rgba(127, 179, 211, 0.08);
            color: #dbe8f2;
        }
        .booking-blocked-note p {
            margin: 0;
            line-height: 1.5;
        }
        .booking-modal-contact-buttons {
            margin-top: 14px;
        }
        .booking-modal-error {
            min-height: 20px;
            margin-top: 18px;
            font-size: 13px;
        }
        .booking-modal-copy {
            margin-top: 8px;
        }
        .booking-modal-contact[hidden],
        .booking-modal-success[hidden] {
            display: none;
        }
        .booking-modal-contact {
            margin-top: 18px;
            border-radius: 24px;
            background: linear-gradient(180deg, rgba(248, 249, 250, 0.98), rgba(242, 246, 250, 0.96));
            border: 1px solid rgba(214, 194, 161, 0.58);
            box-shadow: 0 24px 56px rgba(8, 15, 28, 0.16);
            color: var(--text-dark);
            overflow: hidden;
        }
        .booking-modal-section-contact {
            margin-top: 0;
            padding: 22px 22px 24px;
            border-top: 0;
        }
        .booking-modal-contact .booking-modal-label {
            color: var(--accent-blue-dark);
            margin-bottom: 8px;
        }
        .booking-modal-contact .booking-modal-copy {
            color: var(--text-gray);
            margin-top: 0;
        }
        .booking-modal-contact .booking-field label {
            color: rgba(26, 26, 26, 0.64);
        }
        .booking-modal-contact .booking-field input {
            border: 1px solid rgba(74, 144, 184, 0.18);
            background: rgba(255,255,255,0.96);
            color: var(--text-dark);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
        }
        .booking-modal-contact .booking-field input::placeholder {
            color: rgba(85, 85, 85, 0.62);
        }
        .booking-modal-contact .booking-field input:focus {
            border-color: rgba(74, 144, 184, 0.68);
            box-shadow: 0 0 0 4px rgba(74, 144, 184, 0.12);
        }
        .booking-modal-contact .booking-submit {
            min-width: 0;
            width: 100%;
            box-shadow: 0 14px 32px rgba(74, 144, 184, 0.18);
        }
        .booking-success-mark {
            width: 64px;
            height: 64px;
            margin: 6px auto 18px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: var(--font-head);
            font-size: 28px;
            font-weight: 800;
            color: #fff;
            background: linear-gradient(135deg, rgba(127, 179, 211, 0.95), rgba(74, 144, 184, 0.78));
            box-shadow: 0 18px 36px rgba(69, 124, 173, 0.24);
        }
        .booking-modal-success {
            text-align: center;
            padding-top: 10px;
        }
        .booking-success-title {
            margin: 0;
            font-family: var(--font-head);
            font-size: 28px;
            font-weight: 800;
            color: #fff;
        }
        .booking-success-copy {
            margin: 10px 0 20px;
            color: #d4d7df;
            font-size: 15px;
            line-height: 1.5;
        }
        .booking-success-summary {
            display: grid;
            gap: 12px;
            margin-top: 20px;
            text-align: left;
        }
        .booking-success-button {
            width: auto;
            min-width: 220px;
            margin: 26px auto 0;
            justify-content: center;
        }
        .booking-modal-actions {
            display: flex;
            gap: 12px;
            justify-content: flex-end;
            margin-top: 6px;
        }

        /* FOOTER */
        footer { background: #000; color: #FFF; padding: 64px 0 32px; text-align: center; font-size: 14px; }
        footer h4, .footer-brand { margin-bottom: 12px; }
        .footer-brand { margin-top: 0; }
        .footer-brand-method {
            display: block;
            color: #FFF;
            font-family: var(--font-head);
            font-size: 22px;
            font-weight: 900;
            text-decoration: none;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            line-height: 1;
        }
        .footer-brand-sub {
            display: block;
            margin-top: 4px;
            color: var(--accent-blue);
            font-family: var(--font-head);
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.2em;
            text-transform: uppercase;
        }
        footer p { color: #888; margin-bottom: 6px; line-height: 1.42; }
        footer a { color: #FFF; text-decoration: none; margin: 0; transition: color 0.2s; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: 0.08em;}
        footer a:hover { color: var(--accent-blue); }
        .footer-meta { margin-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; color: #444; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; align-items: center; justify-items: center;}
        .footer-meta p { grid-column: 1 / -1; margin-top: 8px; }

        .hero .eyebrow:empty,
        .book-intro:empty { display: none; }

        html[lang="ru"] body { font-size: 15px; line-height: 1.46; }
        html[lang="ru"] section { padding: 84px 0; }
        html[lang="ru"] .nav-links { margin-right: 20px; }
        html[lang="ru"] .lang-toggle { margin-left: 10px; }
        html[lang="ru"] .hero { min-height: auto; padding-top: 138px; }
        html[lang="ru"] .hero-content { max-width: 1000px; }
        html[lang="ru"] .hero h1 { font-size: clamp(42px, 7vw, 92px); line-height: 1.08; margin-bottom: 20px; }
        html[lang="ru"] .hero p.lead { font-size: 18px; line-height: 1.38; margin-bottom: 34px; max-width: 700px; }
        html[lang="ru"] .hero-ctas { margin-bottom: 36px; }
        html[lang="ru"] .stat-card { padding: 30px 22px; }
        html[lang="ru"] .stat-number { font-size: 58px; margin-bottom: 10px; }
        html[lang="ru"] .stat-card p { font-size: 13px; line-height: 1.28; }
        html[lang="ru"] #offer .stat-card:nth-child(1) p { font-size: 12.5px; line-height: 1.24; }
        html[lang="ru"] .about-section .image-arch-container > div { text-align: left !important; }
        html[lang="ru"] .about-section .eyebrow,
        html[lang="ru"] .about-photo-title,
        html[lang="ru"] .about-text p,
        html[lang="ru"] .about-quote {
            font-family: var(--font-head);
        }
        html[lang="ru"] .about-section .eyebrow {
            font-size: 14px;
            letter-spacing: 0.08em;
            text-transform: none;
            font-weight: 700;
        }
        html[lang="ru"] .about-photo-title { font-size: clamp(28px, 4vw, 40px); line-height: 1.06; letter-spacing: -0.02em; font-weight: 700; }
        html[lang="ru"] .about-text p { font-size: 15px; line-height: 1.5; font-weight: 500; letter-spacing: 0.01em; }
        html[lang="ru"] .about-quote { font-size: 21px; line-height: 1.24; margin: 22px 0; padding: 24px 26px; font-style: italic; }
        html[lang="ru"] #pricing { padding-bottom: 56px; }
        html[lang="ru"] #pricing h2 { line-height: 0.98; }
        html[lang="ru"] .price-box h3 { font-size: clamp(42px, 7vw, 64px); white-space: nowrap; }
        html[lang="ru"] .price-box p { color: var(--accent-blue); font-size: 20px; line-height: 1.24; margin-bottom: 18px; letter-spacing: 0; white-space: nowrap; }
        html[lang="ru"] .price-box .pricing-highlight { color: var(--accent-blue); font-size: 13px; line-height: 1.4; margin-bottom: 22px; white-space: normal; }
        html[lang="ru"] .price-box li { font-size: 14px; }
        html[lang="ru"] .duration-table { margin-top: 18px; }
        html[lang="ru"] .duration-table .table-col:last-child .table-row:first-child span { text-wrap: balance; }
        html[lang="ru"] #pricing .price-table p { font-size: 14px; line-height: 1.42; margin-top: 18px; text-align: center; }
        html[lang="ru"] #pricing .price-table p strong { font-weight: 600; }
        html[lang="ru"] #pricing .price-table .btn {
            margin-top: 18px;
            padding: 14px 22px;
            font-size: 12px;
            line-height: 1.25;
            text-align: center;
            justify-content: center;
            max-width: 380px;
            width: auto;
        }
        html[lang="ru"] #safety { padding-top: 56px; }
        html[lang="ru"] .room-image-container { margin-bottom: 0; }
        html[lang="ru"] .room-image { margin-bottom: 6px; }
        html[lang="ru"] .dogs-bubble { margin-top: 8px; }
        html[lang="ru"] .book-content { padding: 54px 28px 40px; }
        html[lang="ru"] .book-content h2 { margin-bottom: 10px; }
        html[lang="ru"] .book-intro { font-size: 15px; line-height: 1.45; }
        html[lang="ru"] footer { padding: 54px 0 28px; }
        html[lang="ru"] footer .container > p:nth-of-type(2) { margin-bottom: 10px; }
        html[lang="en"] .hero { min-height: auto; padding-top: 138px; }
        html[lang="en"] .hero-content { max-width: 940px; }
        html[lang="en"] .hero h1 { font-size: clamp(40px, 6.4vw, 84px); line-height: 1.06; margin-bottom: 18px; }
        html[lang="en"] .hero p.lead { font-size: 18px; line-height: 1.4; margin-bottom: 34px; max-width: 690px; }
        html[lang="en"] .hero-ctas { margin-bottom: 38px; }
        html[lang="en"] #pricing { padding-bottom: 56px; }
        html[lang="en"] #pricing h2 { line-height: 0.98; }
        html[lang="en"] .pricing-grid { max-width: 1030px; gap: 44px; align-items: start; }
        html[lang="en"] .price-info,
        html[lang="en"] .price-table { width: 100%; max-width: 500px; }
        html[lang="en"] .price-box { width: 100%; padding: 40px 32px; }
        html[lang="en"] .price-box h3 { font-size: clamp(42px, 6vw, 64px); white-space: nowrap; }
        html[lang="en"] .price-box p { color: var(--accent-blue); font-size: 20px; line-height: 1.24; margin-bottom: 18px; letter-spacing: 0; white-space: nowrap; }
        html[lang="en"] .price-box .pricing-highlight { color: var(--accent-blue); font-size: 13px; line-height: 1.4; margin-bottom: 22px; white-space: normal; }
        html[lang="en"] .price-box li { font-size: 14px; }
        html[lang="en"] .duration-table { margin-top: 18px; }
        html[lang="en"] #pricing .price-table p { font-size: 14px; line-height: 1.42; margin-top: 18px; text-align: center; }
        html[lang="en"] #pricing .price-table .btn {
            margin-top: 18px;
            padding: 14px 22px;
            font-size: 12px;
            line-height: 1.25;
            text-align: center;
            justify-content: center;
            max-width: 380px;
            width: auto;
        }
        .about-section .eyebrow,
        .how-it-works .eyebrow,
        .pricing-section .eyebrow,
        .safety .eyebrow,
        .results-section .eyebrow,
        .faq .eyebrow {
            justify-content: flex-start;
            text-align: left;
            margin-left: 0;
            margin-right: 0;
        }
        .price-info,
        .price-table {
            text-align: left;
        }
        #how-it-works .container > p:last-of-type {
            max-width: 760px;
            margin: 64px auto 0;
            font-size: 21px;
            line-height: 1.32;
        }
        html[lang="ru"] #how-it-works .container > p:last-of-type {
            max-width: 560px;
            font-size: 15px;
            line-height: 1.28;
            font-style: normal;
        }

        /* MOBILE RESPONSIVE */
        @media (max-width: 900px) {
            .about-grid, .pricing-grid, .safety-grid { grid-template-columns: 1fr; gap: 42px;}
            .steps-grid { grid-template-columns: repeat(2, 1fr); }
            .offer-grid { grid-template-columns: 1fr; }
            .image-arch { border-radius: 24px; }
            .image-arch-bg { display: none; }
            .dogs-bubble { margin-top: 16px; max-width: 100%; }
            .results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
            .dogs-bubble img { width: 76px; height: 76px; flex-basis: 76px; }
            .footer-meta { grid-template-columns: 1fr; }
        }

        .result-card button.result-open {
            display: block;
            width: 100%;
            padding: 0;
            border: 0;
            background: transparent;
            cursor: zoom-in;
        }
        .result-card button.result-open img {
            cursor: zoom-in;
        }
        .lightbox {
            position: fixed;
            inset: 0;
            background: rgba(8, 12, 22, 0.82);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px;
            z-index: 9999;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.25s ease, visibility 0.25s ease;
        }
        .lightbox.is-open {
            opacity: 1;
            visibility: visible;
        }
        .lightbox-dialog {
            position: relative;
            max-width: min(92vw, 900px);
            max-height: 90vh;
            width: auto;
        }
        .lightbox-image {
            display: block;
            max-width: 100%;
            max-height: 90vh;
            border-radius: 20px;
            box-shadow: 0 24px 60px rgba(0,0,0,0.35);
            background: #fff;
        }
        .lightbox-close {
            position: absolute;
            top: -14px;
            right: -14px;
            width: 42px;
            height: 42px;
            border: 0;
            border-radius: 999px;
            background: rgba(255,255,255,0.95);
            color: #111;
            font-size: 26px;
            line-height: 1;
            cursor: pointer;
            box-shadow: 0 10px 24px rgba(0,0,0,0.2);
        }

        @media (max-width: 768px) {
            .floating-contact {
                right: 14px;
                bottom: 14px;
                left: 14px;
                justify-items: end;
            }
            .floating-contact-panel {
                width: min(100%, 320px);
            }
            nav {
                padding: 14px 0;
            }
            nav .container {
                padding: 0 5%;
            }
            .nav-links { display: none; }
            .nav-inner {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto auto;
                align-items: center;
                gap: 8px;
            }
            .logo {
                flex: none;
                font-size: 22px !important;
                letter-spacing: 0.02em;
            }
            .logo span {
                font-size: 10px !important;
                letter-spacing: 0.1em;
                margin-top: 3px;
            }
            .nav-actions {
                display: contents;
            }
            .nav-book {
                box-sizing: border-box;
                padding: 10px 12px;
                font-size: 11px !important;
                letter-spacing: 0.04em;
                line-height: 1.05;
                white-space: nowrap;
                text-align: center;
                min-width: 0;
                max-width: 118px;
                overflow: hidden;
                text-overflow: ellipsis;
                justify-self: end;
            }
            .lang-toggle {
                font-size: 13px !important;
                gap: 6px;
                letter-spacing: 0.03em;
                justify-self: end;
                margin-right: 2px;
            }
            section { padding: 68px 0; }
            h1 { font-size: 40px; }
            h2 { font-size: 30px; }
            .hero-ctas { flex-direction: column; }
            .hero-ctas .btn { width: 100%; }
            .steps-grid, .duration-table { grid-template-columns: 1fr; }
            .pricing-grid { justify-content: center; justify-items: center; width: 100%; }
            .price-info, .price-table { width: 100%; max-width: 100%; box-sizing: border-box; }
            .booking-grid,
            .booking-summary { grid-template-columns: 1fr; }
            .booking-step-card { padding: 22px; border-radius: 24px; }
            .book-buttons,
            .booking-date-grid,
            .booking-slot-grid,
            .booking-modal-actions,
            .booking-actions { flex-direction: column; }
            .booking-date-chip,
            .booking-slot-button,
            .book-buttons .btn,
            .booking-continue,
            .booking-submit,
            .booking-modal-actions .btn { width: 100%; }
            .booking-modal-dialog { width: min(94vw, 640px); padding: 24px; margin: 28px auto; }
            .faq-list { padding: 24px; border-radius: 24px; }
            .trust-badges span { font-size: 14px; }
            .footer-meta { grid-template-columns: 1fr; }
            html[lang="ru"] .lang-toggle { margin-left: 0; }
            html[lang="ru"] .hero h1 { font-size: 40px; line-height: 1.08; }
            html[lang="ru"] .hero p.lead { font-size: 18px; line-height: 1.38; }
            html[lang="ru"] .price-box h3,
            html[lang="ru"] .price-box p { white-space: normal; }
            html[lang="ru"] #pricing .price-table .btn { width: 100%; max-width: 100%; }
            .results-section { padding-top: 56px; }
        }
        @media (max-width: 430px) {
            nav .container { padding: 0 4%; }
            .nav-inner { gap: 6px; }
            .logo {
                font-size: 20px !important;
                letter-spacing: 0.018em;
            }
            .logo span {
                font-size: 9px !important;
                letter-spacing: 0.08em;
            }
            .nav-book {
                padding: 9px 11px;
                font-size: 10px !important;
                letter-spacing: 0.03em;
                max-width: 110px;
            }
            .lang-toggle {
                font-size: 12px !important;
                gap: 5px;
                letter-spacing: 0.03em;
                margin-right: 0;
            }
        }
        @media (max-width: 390px) {
            nav .container { padding: 0 3%; }
            .nav-inner {
                gap: 4px;
            }
            .logo {
                font-size: 18px !important;
                letter-spacing: 0.015em;
            }
            .logo span { font-size: 8px !important; letter-spacing: 0.06em; }
            .lang-toggle {
                font-size: 11px !important;
                gap: 4px;
                letter-spacing: 0.01em;
                margin-right: 0;
            }
            .nav-book {
                padding: 8px 10px;
                font-size: 10px !important;
                letter-spacing: 0.01em;
                max-width: 102px;
            }
            html[lang="ru"] .nav-book {
                padding-left: 8px;
                padding-right: 8px;
            }
        }
        @media (max-width: 768px) {
            .booking-date-grid,
            .booking-slot-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 7px;
            }
            .booking-slot-grid {
                grid-template-rows: repeat(5, minmax(0, auto));
                grid-auto-flow: column;
                align-items: start;
            }
            .booking-date-chip,
            .booking-slot-button {
                min-width: 0;
            }
            .booking-inline-note {
                margin-bottom: 12px;
            }
            .booking-slot-grid {
                margin-top: 10px;
            }
            .booking-status {
                margin-top: 10px;
                font-size: 12px;
            }
            .booking-slot-header {
                margin-top: 10px;
            }
            .booking-date-chip,
            .booking-slot-button,
            .booking-choice-button {
                border-radius: 15px;
                padding: 9px 10px;
            }
            .booking-date-chip {
                min-height: 52px;
                gap: 2px;
            }
            .booking-date-chip-selected {
                min-height: 48px;
            }
            .booking-date-chip strong,
            .booking-slot-button,
            .booking-choice-button {
                font-size: 11px;
                letter-spacing: 0.04em;
            }
            .booking-date-chip span {
                font-size: 11px;
            }
            .booking-slot-button {
                min-height: 40px;
            }
            .booking-date-focus {
                grid-template-columns: minmax(0, 1fr);
                gap: 8px;
            }
            .booking-date-change {
                width: 100%;
                padding: 10px 12px;
                min-height: 40px;
                font-size: 11px;
            }
            .booking-step-card-light,
            .booking-success-state {
                padding: 20px 18px;
            }
            .booking-modal {
                padding: 12px 0;
            }
            .booking-modal-dialog {
                width: min(94vw, 640px);
                padding: 22px 18px 18px;
                margin: 0 auto;
                max-height: calc(100dvh - 24px);
                border-radius: 24px;
            }
            .booking-modal-dialog h3 {
                margin-bottom: 18px;
                padding-right: 36px;
            }
            .booking-success-mark {
                width: 58px;
                height: 58px;
                font-size: 24px;
                margin-bottom: 16px;
            }
            .booking-success-title {
                font-size: 24px;
            }
            .booking-success-copy {
                font-size: 14px;
                margin-bottom: 18px;
            }
            .booking-success-notice {
                gap: 12px;
                padding: 16px 14px;
                border-radius: 18px;
            }
            .booking-success-notice-icon {
                width: 30px;
                height: 30px;
                font-size: 16px;
            }
            .booking-success-address {
                font-size: 14px;
            }
            .booking-contact-form-modal {
                gap: 16px;
            }
            .booking-modal-contact {
                margin-top: 16px;
                border-radius: 22px;
            }
            .booking-modal-section-contact {
                padding: 18px 16px 20px;
            }
            .booking-modal-section + .booking-modal-section {
                margin-top: 16px;
                padding-top: 16px;
            }
            .booking-modal-list {
                font-size: 13px;
                line-height: 1.48;
            }
            .booking-modal-question {
                margin-top: 14px;
                font-size: 13px;
            }
            .booking-choice-row {
                gap: 8px;
                margin-top: 10px;
            }
            .booking-modal-actions {
                position: sticky;
                bottom: 0;
                background: linear-gradient(180deg, rgba(16, 16, 20, 0), rgba(16, 16, 20, 0.94) 24%, rgba(16, 16, 20, 1) 100%);
                padding-top: 14px;
                margin-top: 10px;
            }
        }
    
.result-open{display:block;cursor:zoom-in;}
.result-open img{display:block;}


.results-grid { gap: 18px; }
.result-card { position: relative; }
.result-toggle { position: absolute; opacity: 0; pointer-events: none; }
.result-thumb { display:block; cursor: zoom-in; }
.result-thumb img { display:block; width:100%; height:auto; border-radius: 18px; }
.result-modal { display:none; position: fixed; inset:0; background: rgba(10,10,14,.88); z-index:9999; padding: 24px; cursor: zoom-out; }
.result-modal-inner { width:min(96vw, 980px); max-height:92vh; margin:auto; display:flex; align-items:center; justify-content:center; }
.result-modal img { max-width:100%; max-height:92vh; width:auto; height:auto; border-radius:20px; box-shadow:0 20px 60px rgba(0,0,0,.45); }
.result-toggle:checked + .result-thumb + .result-modal { display:flex; }
@media (max-width: 768px) { .result-modal { padding: 12px; } .result-modal img { border-radius: 14px; } }



/* Static before/after gallery for iPhone preview reliability */
.result-card { overflow: hidden; }
.result-card img,
.result-thumb img { width:100%; display:block; border-radius: 18px; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; }
.results-grid .result-card:nth-child(2) img,
.results-grid .result-card:nth-child(6) img { object-position: center center; }


        .result-card .result-meta {
            padding: 12px 16px 16px;
        }
        .result-card .result-title {
            font-family: var(--font-body);
            font-size: 13px;
            font-weight: 500;
            letter-spacing: 0.01em;
            margin-bottom: 0;
            color: var(--text-gray);
            text-transform: none;
        }
        .result-card .result-note { display: none; }
        .result-link { text-decoration: none; color: inherit; pointer-events: none; }
        .result-card { cursor: default; }

/* Restored static before/after gallery */
.results-intro { margin-bottom: 36px; }
.results-grid { margin-top: 0; }
.result-card { background: transparent; border: 0; box-shadow: none; border-radius: 28px; overflow: hidden; }
.result-card:hover { transform: none; box-shadow: none; }
.result-card img { border-radius: 28px; }


