/* =====================================================
   INK & SNOW
   CONTACT + FINAL CTA + FOOTER
===================================================== */



/* =========================
   CONTACT SECTION
========================= */


.contact{

background:

#f8fafc;

}



.contact-container{


max-width:1300px;


margin:auto;


display:grid;


grid-template-columns:

repeat(4,1fr);


gap:30px;


}

@media(max-width:1100px){


.contact-container{

grid-template-columns:repeat(2,1fr);

}


}




.contact-card{


background:white;


padding:40px 30px;


border-radius:

var(--radius);


box-shadow:

var(--shadow);


text-align:center;


transition:

var(--transition);


}





.contact-card:hover{


transform:

translateY(-12px);


}





.contact-icon{


font-size:3rem;


margin-bottom:20px;


}





.contact-card h3{


font-size:1.4rem;


color:

var(--navy);


margin-bottom:15px;


}





.contact-card a{


color:

var(--gold);


font-weight:700;


}


/* =========================
   QR CONTACT CARDS (WhatsApp + WeChat
========================= */


.contact-card--qr{

padding: 30px 25px;

display: flex;
flex-direction: column;
align-items: center;

position: relative;
overflow: hidden;

}


.contact-card--qr::before{

content: "";
position: absolute;
top: 0; left: 0; right: 0;
height: 5px;

opacity: .9;

}


.contact-card--whatsapp::before{
background: linear-gradient(90deg,#25D366,#128C7E);
}


.contact-card--wechat::before{
background: linear-gradient(90deg,#07C160,#02B875);
}


.contact-card--qr .contact-icon{
font-size: 2.5rem;
margin-bottom: 12px;
}


.contact-name{

color: var(--navy);
font-weight: 700;
font-size: 1rem;
margin-bottom: 18px !important;
line-height: 1.4 !important;

}


.qr-wrapper{

width: 100%;
max-width: 220px;
aspect-ratio: 1 / 1;
margin: 0 auto 18px;

border-radius: 18px;
background: #fafbfc;
border: 1px solid #e5e8ec;

display: flex;
align-items: center;
justify-content: center;

overflow: hidden;
box-shadow: inset 0 2px 8px rgba(0,0,0,.04);
padding: 12px;

}


.qr-image{

width: 100%;
height: 100%;
object-fit: contain;
border-radius: 10px;

}


.qr-fallback{

display: none;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
color: #8c939b;
text-align: center;
font-size: .85rem;
gap: 8px;

}


.qr-fallback span{
font-size: 2.5rem;
opacity: .6;
}


.qr-fallback p{
margin: 0;
line-height: 1.4;
}


.contact-hint{

font-size: .9rem;
line-height: 1.55;
color: #5d6674;
max-width: 230px;
margin: 0 auto !important;

}


/* =========================
   CLICKABLE QR AFFORDANCE
========================= */


.qr-clickable{

cursor: zoom-in;
transition: transform .35s ease, box-shadow .35s ease;

}


.qr-clickable:hover{

transform: scale(1.04);
box-shadow:
0 0 0 2px var(--gold),
0 20px 45px rgba(0,0,0,.12),
inset 0 2px 8px rgba(0,0,0,.04);

}


.qr-clickable:active{

transform: scale(.99);

}


@media (hover:none){

.qr-clickable:hover{

transform: none;
box-shadow: none;

}

}


/* =========================
   QR LIGHTBOX MODAL
========================= */


.qr-lightbox{

position: fixed;
inset: 0;
z-index: 99999;

display: flex;
align-items: center;
justify-content: center;

background: rgba(12,18,27,.78);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);

opacity: 0;
visibility: hidden;
pointer-events: none;

transition:
opacity .35s ease,
visibility .35s ease;

padding: 5%;

}


.qr-lightbox.is-open{

opacity: 1;
visibility: visible;
pointer-events: auto;

}


.qr-lightbox__content{

max-width: min(560px, 92vw);
max-height: 92vh;

background: white;
border-radius: 26px;
padding: 30px 30px 26px;

box-shadow:
0 40px 100px rgba(0,0,0,.45),
0 0 0 1px rgba(255,255,255,.06);

text-align: center;

transform: scale(.85);
transition: transform .4s cubic-bezier(.2,.9,.3,1.3);

}


.qr-lightbox.is-open .qr-lightbox__content{

transform: scale(1);

}


.qr-lightbox__image{

width: 100%;
height: auto;
max-height: 65vh;
object-fit: contain;

border-radius: 18px;

display: block;

background: #fafbfc;
border: 1px solid #e5e8ec;
padding: 14px;

}


.qr-lightbox__caption{

margin: 20px 0 0;
color: var(--navy);
font-weight: 700;
font-size: 1.1rem;
line-height: 1.4;

}


.qr-lightbox__close{

position: absolute;
top: 24px;
right: 26px;

width: 46px;
height: 46px;

border-radius: 50%;
border: none;
cursor: pointer;

background: rgba(255,255,255,.15);
backdrop-filter: blur(6px);
color: white;

font-size: 2rem;
line-height: 1;

display: flex;
align-items: center;
justify-content: center;

transition:
background .25s ease,
transform .2s ease;

}


.qr-lightbox__close:hover{

background: var(--gold);
transform: rotate(90deg);

}


@media(max-width:600px){


.qr-lightbox__close{
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    font-size: 1.7rem;
}


.qr-lightbox__content{
    padding: 22px 20px 20px;
    border-radius: 20px;
}


.qr-lightbox__caption{
    margin-top: 16px;
    font-size: 1rem;
}


}





/* =========================
   FINAL CALL TO ACTION
========================= */


.final-cta{


background:


linear-gradient(
135deg,
#1C2533,
#10151D
);


text-align:center;


color:white;


padding:100px 5%;


}





.final-cta h2{


font-size:

clamp(2rem,4vw,3.5rem);


margin-bottom:25px;


}





.final-cta p{


color:#d9dde3;


max-width:650px;


margin:0 auto 40px;


font-size:1.1rem;


}





.final-cta .primary-btn{


display:inline-flex;


}





/* =========================
   FOOTER
========================= */



.footer{


background:

#0b1017;


color:white;


padding:80px 5% 30px;


}





.footer-container{


max-width:1200px;


margin:auto;


display:grid;


grid-template-columns:

2fr 1fr 1fr 1fr;


gap:40px;


}





.footer-brand{


display:flex;

flex-direction:column;

gap:18px;


}


.footer-logo-link{
display:inline-flex;
text-decoration:none;
max-width:210px;
width:100%;
}


.footer-logo{

width: auto !important;
max-width: 210px !important;
height: auto !important;
max-height: 180px !important;
object-fit: contain;

filter:
drop-shadow(0 6px 18px rgba(0,0,0,.35));

transition:
transform var(--transition),
filter var(--transition);

display: block;

}


.footer-logo:hover{
transform: translateY(-3px) scale(1.03);
filter:
drop-shadow(0 10px 24px rgba(198,155,60,.35));
}


.footer-logo-fallback{

font-size:2.2rem;
font-weight:800;
letter-spacing:-.5px;
margin:0 0 4px;
color:white;

}


.footer-logo-fallback span{
color: var(--gold);
}


.footer-tag{

font-size: .8rem;
letter-spacing: 5px;
font-weight: 700;
color: var(--gold);
margin: 0 !important;
text-transform: uppercase;
padding: 0 !important;

}


.footer-brand p{


color:#aeb5be;


max-width:350px;
margin: 0;
line-height: 1.7;


}





.footer-links{


display:flex;


flex-direction:column;


gap:15px;


}





.footer-links h3{


color:

white;


margin-bottom:15px;


}





.footer-links a{


color:#aeb5be;


transition:

var(--transition);


}





.footer-links a:hover{


color:

var(--gold);


transform:

translateX(5px);


}





.copyright{


border-top:

1px solid rgba(255,255,255,.1);


margin-top:50px;


padding-top:25px;


text-align:center;


}





.copyright p{


color:#8c939b;


font-size:.9rem;


}







/* =========================
   RESPONSIVE
========================= */


@media(max-width:900px){



.contact-container{


grid-template-columns:

1fr;


}



.footer-container{


grid-template-columns:

1fr 1fr;


}


}





@media(max-width:600px){



.footer-container{


grid-template-columns:

1fr;


}


}