:root{
/* Головний фон: глибокий чорно-графітовий, м'якший за чистий #000 */
--bg: #121417; 
/* Основна панель/картки: колір темного оббивочного пластику та шкіри */
--panel: #1a1d24; 
/* Друрядна панель: чистий сірий металік, адаптований під Mineral Grey */
--panel-2: #2a2e35; 
/* Акцентний колір: приглушений холодний платиновий металік для кнопок та ховерів */
--accent: #9da4b0; 
/* Текст: чистий, але не засліплюючий білий для максимальної читабельності */
--text: #f3f4f6; 
/* Приглушений текст: матовий сірий для підказок та другорядних деталей */
--muted: #717681;
--line: rgba(255,255,255,0.08);
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior: smooth; }

body{
background: var(--bg);
color: var(--text);
font-family: 'Inter', sans-serif;
overflow-x: hidden;
}

h1,h2,h3,h4{
font-family: 'Fraunces', serif;
font-optical-sizing: auto;
font-weight: 600;
letter-spacing: -0.01em;
}

.mono{
font-family: 'JetBrains Mono', monospace;
}

.eyebrow{
font-family: 'JetBrains Mono', monospace;
text-transform: uppercase;
letter-spacing: 0.2em;
font-size: 0.7rem;
color: var(--accent);
margin-bottom: 1rem;
display: block;
}

/* ---------- NAV ---------- */
nav{
position: fixed;
top: 0; left: 0; right: 0;
z-index: 100;
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.5rem 5%;
background: rgba(14,15,17,0);
-webkit-backdrop-filter: blur(0px);
backdrop-filter: blur(0px);
transition: background 0.4s ease, backdrop-filter 0.4s ease, border-color 0.4s ease;
border-bottom: 1px solid transparent;
}
nav.scrolled{
background: rgba(14,15,17,0.75);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--line);
}
.logo{
font-family: 'Fraunces', serif;
font-weight: 600;
font-size: 1.1rem;
letter-spacing: 0.02em;
}
.logo span{ color: var(--accent); }
.nav-cta{
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--text);
border: 1px solid var(--line);
padding: 0.6rem 1.2rem;
border-radius: 2px;
text-decoration: none;
transition: border-color 0.3s, color 0.3s;
}
.nav-cta:hover{
border-color: var(--accent);
color: var(--accent);
}
.nav-right{
display: flex;
align-items: center;
gap: 1.25rem;
}
.nav-price{
font-size: 0.95rem;
font-weight: 700;
color: var(--accent);
opacity: 0;
transform: translateY(-8px);
transition: opacity 0.35s ease, transform 0.35s ease;
pointer-events: none;
}
nav.scrolled .nav-price{
opacity: 1;
transform: translateY(0);
}

/* ---------- HERO ---------- */
.hero{
height: 100vh;
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 0 5% 6rem;
overflow: hidden;
}
.hero-bg{
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
background: linear-gradient(180deg, rgba(14,15,17,0.2) 0%, rgba(14,15,17,0.55) 60%, var(--bg) 100%),
            url('images/hero_bg.webp') center 40% / cover no-repeat;
transform: scale(1.08);
will-change: transform;
}
.hero-content{
position: relative;
z-index: 2;
max-width: 900px;
}
.hero-eyebrow{
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
letter-spacing: 0.25em;
text-transform: uppercase;
color: var(--accent);
margin-bottom: 1.5rem;
opacity: 0;
transform: translateY(16px);
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.hero h1{
font-size: clamp(3rem, 9vw, 7rem);
line-height: 0.98;
font-weight: 600;
color: var(--text);
opacity: 0;
transform: translateY(24px);
}
.hero h1 em{
font-style: italic;
font-weight: 300;
color: var(--accent);
}
.hero-sub{
margin-top: 1.5rem;
font-size: 1.05rem;
color: var(--muted);
max-width: 480px;
line-height: 1.6;
opacity: 0;
transform: translateY(20px);
}

.price-tag{
position: absolute;
bottom: 6rem;
right: 5%;
z-index: 3;
text-align: right;
border: 1px solid var(--line);
background: rgba(22,24,27,0.55);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
padding: 1.25rem 1.75rem;
border-radius: 2px;
opacity: 0;
transform: translateY(20px);
}
.price-tag .label{
font-family: 'JetBrains Mono', monospace;
font-size: 0.65rem;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--muted);
margin-bottom: 0.4rem;
}
.price-tag .amount{
font-family: 'JetBrains Mono', monospace;
font-size: 2rem;
font-weight: 700;
color: var(--accent);
line-height: 1;
}
.price-tag .amount sup{
font-size: 1rem;
color: var(--muted);
font-weight: 400;
margin-left: 0.3rem;
}

.scroll-cue{
position: absolute;
bottom: 2rem;
left: 5%;
z-index: 3;
display: flex;
align-items: center;
gap: 0.75rem;
font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--muted);
opacity: 0;
}
.scroll-line{
width: 1px;
height: 32px;
background: var(--muted);
position: relative;
overflow: hidden;
}
.scroll-line::after{
content:'';
position: absolute;
top: -100%; left: 0;
width: 100%; height: 100%;
background: var(--accent);
-webkit-animation: scrollLine 2s ease-in-out infinite;
animation: scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{
0%{ top: -100%; }
50%{ top: 0%; }
100%{ top: 100%; }
}

/* ---------- SPEC STRIP ---------- */
.spec-strip{
position: sticky;
/* top: 0; */
top: var(--nav-h, 4.5rem);
z-index: 50;
background: var(--panel);
border-bottom: 1px solid var(--line);
border-top: 1px solid var(--line);
display: grid;
grid-template-columns: repeat(5, 1fr);
}
.spec-item{
padding: 1.5rem 1.5rem;
border-right: 1px solid var(--line);
text-align: left;
}
.spec-item:last-child{ border-right: none; }
.spec-item .spec-label{
font-family: 'JetBrains Mono', monospace;
font-size: 0.62rem;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--muted);
/* Не до кінця розумію ШО це? але був зайвий відступ */
/* margin-bottom: 0.4rem; */
}
.spec-item .spec-value{
font-family: 'JetBrains Mono', monospace;
font-size: 1.1rem;
font-weight: 700;
color: var(--text);
}
.spec-item .spec-value .unit{
font-size: 0.7rem;
color: var(--muted);
font-weight: 400;
margin-left: 0.2rem;
}
.spec-strip.unstuck{
position: static;
}

/* ---------- SECTION GENERIC ---------- */
section{
padding: 1rem 5%;
margin-bottom: 0;
position: relative;
}
.section-head{
max-width: 700px;
margin-bottom: 2rem;
}
.section-head h2{
font-size: clamp(2.2rem, 5vw, 3.8rem);
line-height: 1.05;
color: var(--text);
}
.section-head p{
margin-top: 1.25rem;
color: var(--muted);
font-size: 1.05rem;
line-height: 1.7;
max-width: 540px;
}

/* reveal animation base */
.reveal{
opacity: 0;
transform: translateY(40px);
transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1), transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible{
opacity: 1;
transform: translateY(0);
}
.reveal-delay-1{ transition-delay: 0.08s; }
.reveal-delay-2{ transition-delay: 0.16s; }
.reveal-delay-3{ transition-delay: 0.24s; }
.reveal-delay-4{ transition-delay: 0.32s; }

.responsive-video {
  width: auto;          /* Fills the width of the parent container */
  height: 100%;         /* Maintains correct aspect ratio */
  aspect-ratio: 9/16; /* Forces a standard widescreen container */
  object-fit: contain;    /* Crops the video/poster to fill the container perfectly */
  display: block;
}

/* ---------- GALLERY (horizontal scroll on vertical scroll) ---------- */
.gallery-section{
padding: 2rem 0;
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
}
.gallery-head{
padding: 0 5%;
/* margin-bottom: 3rem; */
}
.filmstrip{
display: flex;
gap: 1.25rem;
padding: 0 5%;
overflow-x: auto;
scroll-snap-type: x proximity;
/* Modern Standard (Firefox/Chrome/Edge) */
scrollbar-width: none;
/* Legacy IE and Edge */
-ms-overflow-style: none; 
padding-bottom: 1rem;
}
.filmstrip::-webkit-scrollbar{ display:none; }
.film-item{
flex: 0 0 auto;
width: 380px;
height: 480px;
border-radius: 3px;
overflow: hidden;
position: relative;
scroll-snap-align: start;
background: var(--panel);
}
.film-item:nth-child(2),
.film-item:nth-child(4){
width: 280px;
}
.film-item img{
width: 100%; height: 100%;
object-fit: cover;
display: block;
filter: saturate(0.92) contrast(1.05);
transition: transform 0.6s ease;
}
.film-item:hover img{
transform: scale(1.04);
}
.film-label{
position: absolute;
bottom: 0; left: 0; right: 0;
padding: 1.2rem;
background: linear-gradient(180deg, transparent, rgba(0,0,0,0.7));
font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--text);
}
.film-label .num{ color: var(--accent); margin-right: 0.5rem; }

/* ---------- LIGHTBOX ---------- */
.lightbox{
position: fixed;
inset: 0;
background: rgba(0,0,0,0.9);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
cursor: zoom-out;
}
.lightbox img{
max-width: 85vw;
max-height: 90vh;
object-fit: contain;
}
.lb-prev, .lb-next{
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(255,255,255,0.1);
border: none;
color: var(--text);
font-size: 2.5rem;
width: 3rem;
height: 3rem;
border-radius: 50%;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s;
}
.lb-prev:hover, .lb-next:hover{
background: rgba(255,255,255,0.2);
}
.lb-prev{ left: 1.5rem; }
.lb-next{ right: 1.5rem; }

/* ---------- HIGHLIGHTS ---------- */
.highlights-section{
    margin-bottom: 2rem;
}
.highlight-row{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
justify-content: space-between;
padding: 2rem 0;
border-bottom: 1px solid var(--line);
}
.highlight-row:last-child{ border-bottom: none; }
.highlight-row:nth-child(even) .highlight-text {
  grid-column: 1;
  grid-row: 1;
}
.highlight-row:nth-child(even) .highlight-img,
.highlight-row:nth-child(even) .highlight-video {
  grid-column: 2;
  grid-row: 1;
}
.highlight-video{
height: 560px;
width: auto;
flex: 1;
justify-content: center;
aspect-ratio: 9/16;
border-radius: 3px;
background: var(--panel);
}
.highlight-img{
width: 100%;
aspect-ratio: 4/3;
border-radius: 3px;
overflow: hidden;
background: var(--panel);
}
.highlight-img img{
width: 100%; height: 100%;
object-fit: cover;
filter: saturate(0.92) contrast(1.05);
}
.highlight-text .index{
font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.2em;
color: var(--accent);
margin-bottom: 1rem;
}
.highlight-text h3{
font-size: clamp(1.7rem, 3.5vw, 2.6rem);
margin-bottom: 1.2rem;
line-height: 1.15;
}
.highlight-text p{
color: var(--muted);
line-height: 1.75;
font-size: 1rem;
max-width: 460px;
}

/* ---------- FULL SPEC TABLE ---------- */
.spec-table-section{
background: var(--panel);
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
}
.spec-table{
width: 100%;
border-collapse: collapse;
}
.spec-table tr{
border-bottom: 1px solid var(--line);
}
.spec-table tr:last-child{ border-bottom: none; }
.spec-table td{
padding: 1.4rem 0;
}
.spec-table td:first-child{
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--muted);
width: 40%;
}
.spec-table td:last-child{
font-size: 1.1rem;
font-weight: 500;
color: var(--text);
text-align: right;
}
.spec-table-grid{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0 4rem;
}
@media (max-width: 800px){
.spec-table-grid{ grid-template-columns: 1fr; }
}

/* ---------- CTA / CONTACT ---------- */
.cta-section{
text-align: center;
padding: 10rem 5%;
position: relative;
}
.cta-section h2{
font-size: clamp(2.4rem, 7vw, 5rem);
line-height: 1.05;
margin-bottom: 1.5rem;
}
.cta-section h2 em{
font-style: italic;
font-weight: 300;
color: var(--accent);
}
.cta-section p{
color: var(--muted);
max-width: 480px;
margin: 0 auto 3rem;
line-height: 1.7;
}
.cta-buttons{
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.btn{
font-family: 'JetBrains Mono', monospace;
font-size: 0.8rem;
letter-spacing: 0.15em;
text-transform: uppercase;
padding: 1.1rem 2.4rem;
border-radius: 2px;
text-decoration: none;
transition: all 0.3s ease;
display: inline-block;
}
.btn-primary{
background: var(--accent);
color: var(--bg);
border: 1px solid var(--accent);
}
.btn-primary:hover{
background: transparent;
color: var(--accent);
}
.btn-secondary{
background: transparent;
color: var(--text);
border: 1px solid var(--line);
}
.btn-secondary:hover{
border-color: var(--text);
}
.show-phone{
    margin-top: 1rem;
    font-size: 0.9rem;
    color: var(--accent);
}
.show-phone-btn{
    text-decoration: underline;
    cursor: pointer;
    color: var(--accent);
}
.show-phone-btn:hover{
    color: var(--text);
}

/* ---------- CONTACT FORM ---------- */
.contact-form{
max-width: 520px;
margin: 4rem auto 0;
text-align: left;
display: grid;
gap: 1.25rem;
}
.form-group{
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.form-group label{
font-family: 'JetBrains Mono', monospace;
font-size: 0.65rem;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--muted);
}
.form-group input,
.form-group textarea{
background: var(--panel);
border: 1px solid var(--line);
color: var(--text);
padding: 0.9rem 1rem;
border-radius: 2px;
font-family: 'Inter', sans-serif;
font-size: 0.95rem;
transition: border-color 0.3s;
resize: vertical;
}
.form-group input:focus,
.form-group textarea:focus{
outline: none;
border-color: var(--accent);
}
.form-submit{
font-family: 'JetBrains Mono', monospace;
font-size: 0.8rem;
letter-spacing: 0.15em;
text-transform: uppercase;
padding: 1.1rem 2.4rem;
border-radius: 2px;
background: var(--accent);
color: var(--bg);
border: 1px solid var(--accent);
cursor: pointer;
transition: all 0.3s ease;
justify-self: start;
}
.form-submit:hover{
background: transparent;
color: var(--accent);
}

/* ---------- FOOTER ---------- */
footer{
padding: 2.5rem 5%;
border-top: 1px solid var(--line);
display: flex;
justify-content: space-between;
align-items: center;
font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.1em;
color: var(--muted);
flex-wrap: wrap;
gap: 1rem;
}

/* ---------- STICKY MOBILE CTA ---------- */
.sticky-cta{
position: fixed;
bottom: 0; left: 0; right: 0;
z-index: 200;
background: rgba(22,24,27,0.85);
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
border-top: 1px solid var(--line);
padding: 1rem 5%;
display: none;
justify-content: space-between;
align-items: center;
transform: translateY(100%);
transition: transform 0.4s ease;
}
.sticky-cta.visible{
transform: translateY(0);
}
.sticky-cta .amount{
font-family: 'JetBrains Mono', monospace;
font-weight: 700;
color: var(--accent);
font-size: 1.1rem;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px){
.spec-strip{ 
    grid-template-columns: repeat(2, 1fr);
    position: static;
}
.spec-item:nth-child(2n){ border-right: none; }
.spec-item{ border-bottom: 1px solid var(--line); }
.highlight-row,
.highlight-row:nth-child(even){
    grid-template-columns: 1fr;
    gap: 2rem;
    direction: ltr;
}
.highlight-row:nth-child(even) .highlight-text {
  grid-column: 1;
  grid-row: 2;
}
.highlight-row:nth-child(even) .highlight-img,
.highlight-row:nth-child(even) .highlight-video {
  grid-column: 1;
  grid-row: 1;
}
.sticky-cta{ display: flex; }
section{ padding: 2rem 5% 0; }
.price-tag{ bottom: 8rem; }
}

@media (max-width: 500px){
.spec-strip{ grid-template-columns: repeat(2, 1fr); }
.price-tag{
    position: static;
    margin-top: 2rem;
    margin-bottom: 2rem;
    text-align: left;
}
.hero{ padding-bottom: 4rem; }
.price-tag .amount{ font-size: 1.6rem; }
.nav-right {
max-width: 200;
/* Smooth transition for when it fades back in */
transition: opacity 0.3s ease, visibility 0.3s ease, max-width 0.3s ease;
}
.hide-right {
max-width: 0;
opacity: 0;
visibility: hidden;
pointer-events: none; /* Prevents accidental clicks while hidden */
}
nav.scrolled .nav-price{
opacity: 0;
visibility: hidden;
}
}

@media (prefers-reduced-motion: reduce){
*{
    animation: none !important;
    transition: none !important;
}
.reveal{ opacity: 1; transform: none; }
.hero-eyebrow, .hero h1, .hero-sub, .price-tag, .scroll-cue{
    opacity: 1; transform: none;
}
}

/* keyboard focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
outline: 2px solid var(--accent);
outline-offset: 2px;
}