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

html{
scroll-behavior:smooth;
}

body{
background:#090909;
color:#f3f3f3;
font-family:'Inter',sans-serif;
overflow-x:hidden;
}

img{
max-width:100%;
display:block;
}

[hidden]{
display:none !important;
}

.container{
width:92%;
max-width:1400px;
margin:auto;
}

nav{
position:fixed;
width:100%;
top:0;
z-index:100;
background:rgba(0,0,0,0.92);
backdrop-filter:none;
border-bottom:1px solid rgba(255,255,255,0.05);
}

.nav-inner{
display:flex;
justify-content:space-between;
align-items:center;
padding:3px 0;
}

.logo{
font-family:'Anton',sans-serif;
font-size:2rem;
letter-spacing:4px;
}

.nav-links{
display:flex;
gap:40px;
}

.nav-links a{
color:#ddd;
text-decoration:none;
font-size:14px;
text-transform:uppercase;
letter-spacing:2px;
}

.hero{
height:100vh;
position:relative;
display:flex;
align-items:center;
overflow:hidden;
}

.hero-bg{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
filter:brightness(0.35);
transition:opacity 0.8s ease-in-out;
}

.overlay{
position:absolute;
inset:0;
background:linear-gradient(to bottom, rgba(0,0,0,.3), rgba(0,0,0,.8));
}

.hero-content{
position:relative;
z-index:2;
}

.small{
letter-spacing:3px;
margin-bottom:20px;
font-size:12px;
color:#aaa;
}

h1{
font-family:'Anton',sans-serif;
font-size:clamp(5rem,12vw,10rem);
line-height:.9;
letter-spacing:3px;
margin-bottom:30px;
}

.hero-text{
max-width:700px;
font-size:1.2rem;
line-height:1.8;
color:#c2c2c2;
margin-bottom:40px;
}

.buttons{
display:flex;
gap:20px;
flex-wrap:wrap;
}

.btn{
padding:18px 30px;
cursor:pointer;
border:1px solid white;
text-decoration:none;
color:white;
letter-spacing:2px;
font-size:13px;
transition:.3s;
display:inline-block;
}

.btn:hover{
background:white;
color:black;
}

.red{
background:#9d1212;
border:none;
}

.red:hover{
background:#c41717;
color:white;
}

.section{
padding:120px 0;
}

.dark{
background:#111;
}

h2{
font-family:'Anton',sans-serif;
font-size:clamp(3rem,7vw,6rem);
line-height:.9;
margin-bottom:60px;
letter-spacing:3px;
}

.services{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:25px;
}

.card{
background:#121212;
padding:40px;
border:1px solid rgba(255,255,255,0.08);
}

.card h3{
font-family:'Anton',sans-serif;
font-size:2rem;
margin-bottom:20px;
}

.card p{
line-height:1.8;
color:#bbb;
}

.gallery{
columns:3 320px;
gap:18px;
}

.gallery img{
margin-bottom:18px;
border-radius:2px;
transition:.3s;
}

.gallery img:hover{
transform:scale(1.01);
}

.about{
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
align-items:center;
}

.about p{
font-size:1.1rem;
line-height:1.9;
color:#bbb;
margin-bottom:25px;
}

.contact{
text-align:center;
}

.contact p{
line-height:2;
margin-bottom:30px;
color:#bbb;
}

footer{
padding:40px;
text-align:center;
border-top:1px solid rgba(255,255,255,0.08);
color:#666;
}

@media(max-width:900px){

.nav-links{
display:none;
}

.about{
grid-template-columns:1fr;
}

.section{
padding:80px 0;
}

}



.logo img{
width:clamp(170px, 16vw, 270px);
height:auto;
display:block;
object-fit:contain;
}


.logo{
display:flex;
align-items:center;
}





nav{
padding:3px 0;
}

.nav-inner{
padding:16px 0;
}

}



/* LOGO */

.logo{
display:flex;
align-items:center;
justify-content:flex-start;
text-decoration:none;
z-index:100;
position:relative;
}


.logo img{
width:clamp(170px, 16vw, 270px);
height:auto;
display:block;
object-fit:contain;
}



.logo:hover img{
transform:none;
}


@media(max-width:768px){


.logo img{
width:clamp(170px, 16vw, 270px);
height:auto;
display:block;
object-fit:contain;
}


.nav-inner{
padding:2px 0;
}

}


.logo-text{
font-family:'Anton',sans-serif;
font-size:2rem;
letter-spacing:4px;
text-decoration:none;
color:white;
}

.footer-logo{
width:min(420px, 80vw);
margin:0 auto 30px auto;
display:block;
opacity:0.95;
}

footer p{
color:#666;
letter-spacing:2px;
font-size:13px;
}

@media(max-width:768px){

.logo-text{
font-size:1.4rem;
letter-spacing:3px;
}

.footer-logo{
width:260px;
}

}


.footer-links{
margin-bottom:30px;
}

.footer-links a{
color:#bdbdbd;
text-decoration:none;
letter-spacing:2px;
font-size:13px;
text-transform:uppercase;
transition:0.3s;
}

.footer-links a:hover{
color:white;
}


@media(max-width:768px){

.gallery{
display:grid !important;
grid-template-columns:repeat(3,1fr);
gap:8px;
columns:unset;
}

.gallery img{
width:100%;
height:120px;
object-fit:cover;
margin-bottom:0;
}

}


/* MOBILE GALLERY FIX */

@media screen and (max-width: 768px){

.gallery{
display:grid !important;
grid-template-columns:repeat(3,minmax(0,1fr)) !important;
gap:6px !important;
columns:unset !important;
column-count:unset !important;
}

.gallery img{
width:100% !important;
height:115px !important;
object-fit:cover !important;
display:block !important;
margin:0 !important;
break-inside:avoid !important;
}

}



/* QUOTE WIZARD */

body.quote-open{
overflow:hidden;
}

.quote-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,0.82);
z-index:9998;
}

.quote-overlay.active{
display:block;
}

.quote-popup{
position:fixed;
top:50%;
left:50%;
transform:translate(-50%,-50%);
width:min(94vw,860px);
max-height:92vh;
overflow:auto;
background:#111;
border:1px solid rgba(255,255,255,0.1);
padding:42px;
z-index:9999;
box-shadow:0 25px 70px rgba(0,0,0,0.7);
}

.quote-close{
position:absolute;
top:14px;
right:18px;
width:38px;
height:38px;
background:none;
border:1px solid rgba(255,255,255,0.14);
color:white;
font-size:1.2rem;
line-height:1;
cursor:pointer;
text-transform:uppercase;
}

.quote-close:hover{
background:white;
color:black;
}

.quote-head h3,
.quote-step h4,
.quote-success h3{
font-family:'Anton',sans-serif;
letter-spacing:3px;
font-weight:400;
text-transform:uppercase;
}

.quote-head h3{
font-size:clamp(2.8rem,6vw,5.2rem);
line-height:.9;
margin-bottom:24px;
}

.quote-progress{
height:6px;
background:#252525;
margin-bottom:12px;
overflow:hidden;
}

.quote-progress span{
display:block;
width:12.5%;
height:100%;
background:#9d1212;
transition:width 0.25s ease;
}

.quote-step-count,
.quote-subject{
color:#aaa;
font-size:12px;
letter-spacing:2px;
text-transform:uppercase;
}

.quote-step{
padding-top:24px;
}

.quote-step h4{
font-size:clamp(2rem,4vw,3.4rem);
line-height:1;
margin-bottom:28px;
}

.quote-options{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:14px;
}

.quote-options label{
display:flex;
align-items:center;
gap:14px;
min-height:64px;
padding:18px;
background:#181818;
border:1px solid rgba(255,255,255,0.08);
cursor:pointer;
transition:0.25s;
}

.quote-options label:hover,
.quote-options label:has(input:checked){
border-color:#9d1212;
background:#1f1111;
}

.quote-options input{
width:18px;
height:18px;
accent-color:#9d1212;
flex:0 0 auto;
}

.quote-options span{
color:white;
font-weight:700;
letter-spacing:1px;
text-transform:uppercase;
overflow-wrap:anywhere;
}

.quote-fields{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:16px;
}

.quote-fields input,
.quote-fields textarea,
.quote-drop{
background:#181818;
border:1px solid rgba(255,255,255,0.08);
color:white;
font-family:'Inter',sans-serif;
outline:none;
}

.quote-fields input,
.quote-fields textarea{
width:100%;
padding:16px;
font-size:15px;
}

.quote-fields input:focus,
.quote-fields textarea:focus{
border-color:#9d1212;
}

.quote-fields textarea{
grid-column:1 / -1;
min-height:130px;
resize:vertical;
}

.quote-drop{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:12px;
min-height:220px;
padding:30px;
border-style:dashed;
text-align:center;
cursor:pointer;
transition:0.25s;
}

.quote-drop.dragging,
.quote-drop:hover{
border-color:#9d1212;
background:#1f1111;
}

.quote-drop strong{
font-family:'Anton',sans-serif;
font-size:2rem;
letter-spacing:3px;
font-weight:400;
}

.quote-drop span{
color:#bbb;
line-height:1.7;
}

.quote-drop em{
color:#fff;
font-style:normal;
font-weight:700;
overflow-wrap:anywhere;
}


.quote-file-list{
display:flex;
flex-direction:column;
gap:10px;
width:100%;
max-width:620px;
}

.quote-file-list[hidden]{
display:none !important;
}

.quote-file-row{
display:flex;
align-items:center;
justify-content:center;
gap:12px;
max-width:100%;
padding:8px 10px;
background:rgba(0,0,0,0.22);
border:1px solid rgba(255,255,255,0.08);
border-radius:4px;
}

.quote-file-preview{
width:42px;
height:42px;
display:flex;
align-items:center;
justify-content:center;
flex:0 0 auto;
background:#090909;
border:1px solid rgba(255,255,255,0.08);
color:#aaa;
font-size:9px;
font-weight:700;
letter-spacing:1px;
overflow:hidden;
}

.quote-file-preview img{
width:100%;
height:100%;
object-fit:cover;
}

.quote-file-info{
display:flex;
flex-direction:column;
min-width:0;
text-align:left;
}

.quote-file-info em{
font-style:normal;
font-weight:700;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}

.quote-file-info small{
color:#aaa;
font-size:12px;
margin-top:3px;
}

.quote-file-counter{
margin-top:4px;
color:#bdbdbd;
font-size:13px;
font-weight:700;
letter-spacing:1px;
}

.quote-file-counter.warning{
color:#ffb3b3;
}

.quote-file-counter[hidden]{
display:none !important;
}

.quote-file-remove{
width:26px;
height:26px;
border:1px solid rgba(255,255,255,0.25);
background:#9d1212;
color:white;
border-radius:50%;
cursor:pointer;
font-size:18px;
line-height:20px;
display:inline-flex;
align-items:center;
justify-content:center;
flex:0 0 auto;
margin-left:auto;
}

.quote-file-remove:hover{
background:#c81818;
}

.quote-file,
.quote-hp{
position:absolute;
width:1px;
height:1px;
margin:-1px;
overflow:hidden;
clip:rect(0 0 0 0);
clip-path:inset(50%);
opacity:0;
pointer-events:none;
}

.quote-summary{
display:grid;
gap:0;
border:1px solid rgba(255,255,255,0.08);
background:#151515;
}

.quote-summary div{
display:grid;
grid-template-columns:180px minmax(0,1fr);
gap:16px;
padding:14px 16px;
border-bottom:1px solid rgba(255,255,255,0.07);
}

.quote-summary div:last-child{
border-bottom:0;
}

.quote-summary b{
color:#aaa;
letter-spacing:1px;
text-transform:uppercase;
}

.quote-summary span{
color:white;
overflow-wrap:anywhere;
}

.quote-status{
display:none;
margin-top:20px;
padding:16px;
background:#2a1111;
border:1px solid #9d1212;
color:white;
font-weight:700;
}

.quote-status.active{
display:block;
}

.quote-actions{
display:flex;
justify-content:space-between;
gap:16px;
padding-top:28px;
margin-top:28px;
border-top:1px solid rgba(255,255,255,0.08);
}

.quote-actions button{
cursor:pointer;
}

.quote-actions button:disabled{
opacity:0.45;
cursor:not-allowed;
}

.quote-success{
position:fixed;
inset:0;
display:flex;
align-items:center;
justify-content:center;
padding:24px;
background:rgba(0,0,0,0.82);
z-index:10000;
}

.quote-success div{
width:min(92vw,520px);
background:#111;
border:1px solid rgba(255,255,255,0.1);
padding:42px;
text-align:center;
}

.quote-success h3{
font-size:3rem;
line-height:1;
margin-bottom:20px;
}

.quote-success p{
color:#bbb;
line-height:1.8;
margin-bottom:28px;
}

@media(max-width:768px){

.quote-popup{
width:100vw;
height:100vh;
max-height:none;
padding:76px 20px 24px;
}

.quote-options,
.quote-fields,
.quote-summary div{
grid-template-columns:1fr;
}

.quote-options label{
min-height:58px;
}

.quote-actions{
flex-direction:column;
}

.quote-actions .btn{
width:100%;
text-align:center;
}

.quote-drop strong{
font-size:1.7rem;
}

}


/* V29 quote button safety */
button.btn{font-family:inherit;background:transparent;}
button.btn.red{background:#9d1212;}
button.btn.red:hover{background:#c41717;color:white;}
.quote-popup[hidden], .quote-overlay[hidden], .quote-success[hidden]{display:none !important;}
.quote-popup.active{position:fixed !important;top:50% !important;left:50% !important;transform:translate(-50%,-50%) !important;}


/* V32 fixes */
.btn,
button.btn,
.js-quote-open,
.quote-drop {
  cursor: pointer !important;
}

.quote-file-remove {
  cursor: pointer !important;
}


/* V39 DATE PICKER VISIBILITY */
.quote-date-picker{
position:relative;
display:flex;
align-items:center;
gap:14px;
width:100%;
background:#181818;
border:1px solid rgba(255,255,255,0.12);
color:white;
font-family:'Inter',sans-serif;
cursor:pointer;
}

.quote-date-picker span{
position:absolute;
left:16px;
top:50%;
transform:translateY(-50%);
z-index:1;
pointer-events:none;
color:#d8d8d8;
font-size:13px;
letter-spacing:1px;
font-weight:800;
text-transform:uppercase;
}

.quote-date-picker input[type="date"]{
position:relative;
z-index:2;
background:transparent;
border:0;
padding:16px 48px 16px 190px;
color:white;
cursor:pointer;
}

.quote-date-picker input[type="date"]::-webkit-calendar-picker-indicator{
filter:invert(1) brightness(1.8);
opacity:1;
width:24px;
height:24px;
cursor:pointer;
}

.quote-date-picker:hover,
.quote-date-picker:focus-within{
border-color:#9d1212;
background:#1f1111;
}

@media(max-width:768px){
.quote-date-picker input[type="date"]{
padding-left:16px;
padding-top:42px;
}
.quote-date-picker span{
top:14px;
transform:none;
}
}

/* BUTTON CURSOR FIX */
button,.btn,.js-quote-open,.quote-actions button,.quote-close,.quote-drop{cursor:pointer;}


/* =========================
   V46 NAVIGATION DROPDOWN
========================= */

.nav-links{
align-items:center;
}

.nav-dropdown{
position:relative;
display:flex;
align-items:center;
}

.nav-dropdown-button{
display:flex;
align-items:center;
gap:7px;
padding:18px 0;
border:0;
background:transparent;
color:#ddd;
font-family:'Inter',sans-serif;
font-size:14px;
font-weight:400;
letter-spacing:2px;
text-transform:uppercase;
cursor:pointer;
transition:color .2s ease;
}

.nav-dropdown-button:hover,
.nav-dropdown-button:focus-visible,
.nav-dropdown-button.active{
color:#fff;
outline:none;
}

.dropdown-arrow{
font-size:11px;
line-height:1;
transition:transform .2s ease;
}

.nav-dropdown-menu{
position:absolute;
top:100%;
right:0;
min-width:285px;
padding:8px;
background:rgba(8,8,8,.99);
border:1px solid rgba(255,255,255,.12);
box-shadow:0 18px 45px rgba(0,0,0,.45);
opacity:0;
visibility:hidden;
transform:translateY(10px);
pointer-events:none;
transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
z-index:1000;
}

.nav-dropdown-menu::before{
content:"";
position:absolute;
left:0;
bottom:100%;
width:100%;
height:12px;
}

.nav-dropdown-menu a{
display:block;
padding:15px 16px;
color:#bbb;
font-size:12px;
line-height:1.45;
letter-spacing:1.5px;
white-space:nowrap;
transition:color .2s ease, background-color .2s ease;
}

.nav-dropdown-menu a:hover,
.nav-dropdown-menu a:focus-visible,
.nav-dropdown-menu a.active-page{
color:#fff;
background:#9d1212;
outline:none;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
opacity:1;
visibility:visible;
transform:translateY(0);
pointer-events:auto;
}

.nav-dropdown:hover .dropdown-arrow,
.nav-dropdown:focus-within .dropdown-arrow{
transform:rotate(180deg);
}


/* =========================
   V47 MOBILE HAMBURGER MENU
========================= */

.menu-toggle{
display:none;
width:46px;
height:46px;
padding:10px;
border:0;
background:transparent;
position:relative;
z-index:1102;
cursor:pointer;
}

.menu-toggle span{
display:block;
width:26px;
height:2px;
margin:6px auto;
background:#fff;
transition:transform .25s ease, opacity .2s ease;
transform-origin:center;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1){
transform:translateY(8px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2){
opacity:0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3){
transform:translateY(-8px) rotate(-45deg);
}

@media(max-width:900px){
body.menu-open{
overflow:hidden;
}

nav{
z-index:1100;
}

.nav-inner{
position:relative;
}

.menu-toggle{
display:block;
}

.nav-links{
display:flex;
position:fixed;
top:73px;
left:0;
right:0;
bottom:0;
flex-direction:column;
align-items:stretch;
gap:0;
padding:24px 4% 40px;
background:rgba(8,8,8,.99);
border-top:1px solid rgba(255,255,255,.08);
overflow-y:auto;
opacity:0;
visibility:hidden;
transform:translateY(-14px);
pointer-events:none;
transition:opacity .22s ease, visibility .22s ease, transform .22s ease;
}

.nav-links.is-open{
opacity:1;
visibility:visible;
transform:translateY(0);
pointer-events:auto;
}

.nav-links > a,
.nav-dropdown-button{
width:100%;
min-height:62px;
padding:18px 4px;
border-bottom:1px solid rgba(255,255,255,.09);
font-family:'Anton',sans-serif;
font-size:clamp(1.65rem,7vw,2.35rem);
line-height:1;
letter-spacing:2px;
text-align:left;
color:#eee;
}

.nav-links > a{
display:flex;
align-items:center;
}

.nav-dropdown{
display:block;
width:100%;
}

.nav-dropdown-button{
justify-content:space-between;
}

.dropdown-arrow{
font-family:'Inter',sans-serif;
font-size:16px;
}

.nav-dropdown-menu{
position:static;
min-width:0;
width:100%;
max-height:0;
padding:0;
border:0;
box-shadow:none;
background:#111;
opacity:1;
visibility:visible;
transform:none;
pointer-events:none;
overflow:hidden;
transition:max-height .3s ease, padding .3s ease;
}

.nav-dropdown.is-open .nav-dropdown-menu{
max-height:260px;
padding:7px 0;
pointer-events:auto;
}

.nav-dropdown-menu::before{
display:none;
}

.nav-dropdown-menu a{
padding:17px 20px;
font-size:13px;
line-height:1.5;
white-space:normal;
border-left:3px solid #9d1212;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
transform:none;
}

.nav-dropdown.is-open .dropdown-arrow{
transform:rotate(180deg);
}
}

@media(max-width:480px){
.nav-links{
top:69px;
}
}

/* =========================
   V48 — BACK TO TOP + GALLERY LIGHTBOX
========================= */

html{
scroll-behavior:smooth;
}

.footer-logo-link{
display:inline-block;
line-height:0;
border-radius:4px;
transition:transform .2s ease, opacity .2s ease;
}

.footer-logo-link:hover{
transform:translateY(-4px);
opacity:.88;
}

.footer-logo-link:focus-visible{
outline:2px solid #c41717;
outline-offset:7px;
}

.gallery img{
cursor:pointer;
}

.gallery img:focus-visible{
outline:3px solid #c41717;
outline-offset:-3px;
}

body.lightbox-open{
overflow:hidden;
}

.lightbox[hidden]{
display:none;
}

.lightbox{
position:fixed;
inset:0;
z-index:5000;
display:flex;
align-items:center;
justify-content:center;
padding:72px 90px 58px;
background:rgba(0,0,0,.94);
backdrop-filter:blur(8px);
opacity:0;
visibility:hidden;
transition:opacity .22s ease, visibility .22s ease;
touch-action:pan-y;
}

.lightbox.is-open{
opacity:1;
visibility:visible;
}

.lightbox-figure{
position:relative;
width:min(1200px,100%);
height:100%;
margin:0;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
}

.lightbox-image{
max-width:100%;
max-height:calc(100vh - 155px);
width:auto;
height:auto;
object-fit:contain;
box-shadow:0 20px 70px rgba(0,0,0,.55);
transition:opacity .1s ease;
transform-origin:center center;
cursor:zoom-in;
touch-action:none;
user-select:none;
-webkit-user-drag:none;
}

.lightbox-image.is-changing{
opacity:.25;
}

.lightbox-image.is-zoomed{
cursor:grab;
}

.lightbox-image.is-dragging{
cursor:grabbing;
}

.lightbox-caption{display:none;}

.lightbox-close,
.lightbox-arrow{
position:absolute;
z-index:2;
border:1px solid rgba(255,255,255,.16);
background:rgba(15,15,15,.72);
color:#fff;
cursor:pointer;
transition:background .18s ease, border-color .18s ease, transform .18s ease;
}

.lightbox-close:hover,
.lightbox-arrow:hover{
background:#9d1212;
border-color:#c41717;
}

.lightbox-close:focus-visible,
.lightbox-arrow:focus-visible{
outline:2px solid #fff;
outline-offset:3px;
}

.lightbox-close{
top:20px;
right:24px;
width:50px;
height:50px;
font-size:37px;
line-height:43px;
font-family:Arial,sans-serif;
font-weight:200;
}

.lightbox-arrow{
top:50%;
width:56px;
height:72px;
transform:translateY(-50%);
font-size:34px;
line-height:1;
}

.lightbox-arrow:hover{
transform:translateY(-50%) scale(1.04);
}

.lightbox-prev{
left:22px;
}

.lightbox-next{
right:22px;
}

.lightbox-counter{
position:absolute;
bottom:20px;
left:50%;
transform:translateX(-50%);
color:#aaa;
font-size:12px;
font-weight:700;
letter-spacing:2px;
}

@media(max-width:700px){
.lightbox{
padding:70px 14px 74px;
}

.lightbox-image{
max-height:calc(100vh - 175px);
}

.lightbox-close{
top:14px;
right:14px;
width:46px;
height:46px;
}

.lightbox-arrow{
top:auto;
bottom:14px;
width:54px;
height:46px;
transform:none;
font-size:26px;
}

.lightbox-arrow:hover{
transform:none;
}

.lightbox-prev{
left:14px;
}

.lightbox-next{
right:14px;
}

.lightbox-counter{
bottom:30px;
}

.lightbox-caption{display:none;}
}
