/*=========================================================
  CERNOBBIO LIMOUSINE SERVICE
  VERSION 3.0
=========================================================*/

/*=========================================================
ROOT
=========================================================*/

:root{

--gold:#C5A46D;
--gold-dark:#A8874F;

--black:#151515;
--text:#303030;
--grey:#777777;

--white:#ffffff;
--light:#f8f8f8;

--radius:18px;

--shadow-sm:0 8px 25px rgba(0,0,0,.06);
--shadow:0 18px 45px rgba(0,0,0,.10);
--shadow-lg:0 30px 70px rgba(0,0,0,.18);

--transition:.35s ease;

--container:1280px;

}

/*=========================================================
RESET
=========================================================*/

*{

margin:0;
padding:0;
box-sizing:border-box;

}

html{

scroll-behavior:smooth;

}

body{

font-family:'Inter',sans-serif;

background:var(--white);

color:var(--text);

line-height:1.7;

overflow-x:hidden;

}

img{

display:block;

max-width:100%;

height:auto;

}

a{

text-decoration:none;

color:inherit;

transition:var(--transition);

}

ul{

list-style:none;

}

button{

font-family:inherit;

cursor:pointer;

border:none;

background:none;

}

/*=========================================================
CONTAINER
=========================================================*/

.container{

width:min(92%,var(--container));

margin:auto;

}

/*=========================================================
TYPOGRAPHY
=========================================================*/

h1,h2,h3,h4{

font-family:'Playfair Display',serif;

font-weight:600;

color:#1c1c1c;

}

h1{

font-size:84px;

line-height:1.05;

}

h2{

font-size:56px;

margin-bottom:20px;

}

h3{

font-size:34px;

}

p{

font-size:18px;

color:#666;

line-height:1.8;

}

/*=========================================================
SECTION
=========================================================*/

section{

padding:120px 0;

}

.section-title{

max-width:760px;

margin:0 auto 70px;

text-align:center;

}

.section-title span{

display:block;

margin-bottom:16px;

font-size:13px;

font-weight:600;

letter-spacing:4px;

color:var(--gold);

text-transform:uppercase;

}

.section-title h2{

margin-bottom:22px;

}

.section-title p{

font-size:20px;

}

/*=========================================================
TOP BAR
=========================================================*/

.topbar{

height:42px;

background:#111;

color:white;

display:flex;

align-items:center;

}

.topbar .container{

display:flex;

justify-content:space-between;

align-items:center;

font-size:13px;

letter-spacing:1px;

}

/*=========================================================
HEADER
=========================================================*/

header{

position:fixed;

top:0;

left:0;

width:100%;

z-index:9999;

background:rgba(255,255,255,.94);

backdrop-filter:blur(14px);

-webkit-backdrop-filter:blur(14px);

transition:.35s;

}

header.scrolled{

background:rgba(255,255,255,.97);

box-shadow:0 12px 35px rgba(0,0,0,.08);

}

header .container{

height:92px;

display:flex;

align-items:center;

justify-content:space-between;

}

/*=========================================================
LOGO
=========================================================*/

.logo img{

height:58px;

transition:.35s;

}

header.scrolled .logo img{

height:54px;

}

/*=========================================================
NAVIGATION
=========================================================*/

nav ul{

display:flex;

align-items:center;

gap:42px;

}

nav ul li a{

position:relative;

font-size:15px;

font-weight:600;

letter-spacing:.5px;

padding-bottom:8px;

}

nav ul li a::after{

content:"";

position:absolute;

left:50%;

bottom:0;

width:0;

height:2px;

background:var(--gold);

transition:.35s;

transform:translateX(-50%);

}

nav ul li a:hover{

color:var(--gold);

}

nav ul li a:hover::after{

width:100%;

}

/*=========================================================
HEADER ACTIONS
=========================================================*/

.header-actions{

display:flex;

align-items:center;

gap:16px;

}

.flag{

display:flex;

align-items:center;

justify-content:center;

}

.flag img{

width:30px;

height:30px;

border-radius:50%;

object-fit:cover;

box-shadow:0 6px 14px rgba(0,0,0,.15);

transition:.3s;

}

.flag:hover img{

transform:scale(1.12);

}

/*=========================================================
WHATSAPP BUTTON
=========================================================*/

.btn-whatsapp{

background:var(--gold);

color:white;

padding:16px 34px;

border-radius:50px;

font-weight:600;

box-shadow:0 12px 30px rgba(197,164,109,.25);

transition:.35s;

}

.btn-whatsapp:hover{

background:var(--gold-dark);

transform:translateY(-3px);

box-shadow:0 18px 40px rgba(197,164,109,.35);

}

/*=========================================================
HERO
=========================================================*/

.hero{

position:relative;

min-height:90vh;

min-height:780px;

display:flex;

align-items:center;

justify-content:center;

overflow:hidden;

text-align:center;

}

.hero-image{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

z-index:1;

}

.hero-image img{

width:100%;
height:100%;

object-fit:cover;

transform:scale(1.03);

}

.hero-overlay{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:linear-gradient(
rgba(0,0,0,.30),
rgba(0,0,0,.58)
);

z-index:2;

}

.hero-content{

position:relative;

z-index:2;

max-width:760px;

margin-top:-60px;

}

.hero-subtitle{

display:block;

margin-bottom:24px;

font-size:15px;

letter-spacing:6px;

font-weight:600;

text-transform:uppercase;

color:#fff;

opacity:.95;

}

.hero h1{

font-size:88px;

line-height:1.05;

margin-bottom:28px;

color:#fff;

}

.hero p{

font-size:26px;

font-weight:300;

margin-bottom:55px;

color:#fff;

}

/*=========================================================
HERO BUTTONS
=========================================================*/

.hero-buttons{

display:flex;

justify-content:center;

align-items:center;

gap:22px;

flex-wrap:wrap;

}

.btn-gold{

display:inline-flex;

align-items:center;

justify-content:center;

padding:18px 42px;

border-radius:50px;

background:var(--gold);

color:#fff;

font-weight:600;

transition:var(--transition);

box-shadow:var(--shadow);

}

.btn-gold:hover{

background:var(--gold-dark);

transform:translateY(-4px);

}

.btn-white{

display:inline-flex;

align-items:center;

justify-content:center;

padding:18px 42px;

border-radius:50px;

border:2px solid rgba(255,255,255,.85);

color:#fff;

font-weight:600;

transition:var(--transition);

}

.btn-white:hover{

background:#fff;

color:#111;

}

/*=========================================================
GLOBAL HOVER
=========================================================*/

img{

transition:.45s ease;

}

.card:hover img,

.service-card:hover img,

.destination-item:hover img,

.fleet-photo:hover img{

transform:scale(1.05);

}

/*=========================================================
RESPONSIVE HEADER
=========================================================*/

@media(max-width:1100px){

nav{

display:none;

}

header .container{

height:82px;

}

.logo img{

height:50px;

}

}

@media(max-width:768px){

h1{

font-size:58px;

}

h2{

font-size:40px;

}

.hero{

min-height:650px;

}

.hero h1{

font-size:58px;

}

.hero p{

font-size:21px;

}

.hero-buttons{

flex-direction:column;

width:100%;

}

.btn-gold,
.btn-white{

width:100%;

max-width:320px;

}

.topbar{

display:none;

}

header .container{

height:76px;

}

.flag img{

width:28px;

height:28px;

}

}

/* ==========================
SECTION TITLE
==========================*/

section{

padding:110px 0;

}

.section-title{

text-align:center;

margin-bottom:70px;

}

.section-title span{

display:block;

color:var(--gold);

font-size:14px;

letter-spacing:3px;

margin-bottom:12px;

font-weight:600;

}

.section-title p{

max-width:760px;

margin:auto;

}

/* ===== FINE PARTE 1 ===== */

/* ===========================
   HERO
=========================== */

.hero{

position:relative;

height:100vh;

min-height:700px;

display:flex;

align-items:center;

justify-content:center;

text-align:center;

overflow:hidden;

background:url('../img/lake-como-hero.jpg') center center/cover no-repeat;

}

.hero-overlay{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:linear-gradient(
rgba(0,0,0,.45),
rgba(0,0,0,.45)
);

}

.hero-content{

position:relative;

z-index:2;

color:#fff;

max-width:900px;

padding:20px;

}

.hero-subtitle{

display:block;

letter-spacing:6px;

text-transform:uppercase;

font-size:15px;

margin-bottom:30px;

opacity:.9;

}

.hero h1{

font-family:"Cormorant Garamond",serif;

font-size:90px;

font-weight:600;

line-height:1;

margin-bottom:30px;

}

.hero p{

font-size:28px;

font-weight:300;

margin-bottom:55px;

}

.hero-buttons{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

.btn-gold{

background:#cfa85b;

color:#fff;

padding:18px 42px;

border-radius:40px;

font-weight:600;

text-decoration:none;

transition:.35s;

}

.btn-gold:hover{

background:#b99142;

transform:translateY(-3px);

}

.btn-white{

border:2px solid white;

padding:18px 42px;

border-radius:40px;

color:white;

text-decoration:none;

transition:.35s;

}

.btn-white:hover{

background:white;

color:#111;

}

@media(max-width:768px){

.hero h1{

font-size:58px;

}

.hero p{

font-size:22px;

}

.hero{

min-height:600px;

}

}

/*=========================================================
ABOUT
=========================================================*/

.about{

padding:130px 0;

background:#fff;

}

.about-container{

display:grid;

grid-template-columns:1fr 1fr;

gap:90px;

align-items:center;

}

.about-image img{

width:100%;

height:560px;

object-fit:cover;

border-radius:24px;

box-shadow:0 30px 60px rgba(0,0,0,.18);

}

.about-image:hover img{

transform:scale(1.02);

}

.about-text h2{

font-size:56px;

margin-bottom:30px;

}

.about-text p{

font-size:18px;

color:#666;

margin-bottom:24px;

line-height:1.9;

}

.about-features{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

margin:45px 0;

}

.about-features div{

background:#faf8f5;

padding:18px 22px;

border-left:4px solid var(--gold);

border-radius:10px;

font-weight:500;

box-shadow:var(--shadow-sm);

transition:.3s;

}

.about-features div:hover{

transform:translateY(-4px);

box-shadow:var(--shadow);

}

/*=========================================================
NUMBERS
=========================================================*/

.numbers{

padding:90px 0;

background:#151515;

}

.numbers .container{

display:grid;

grid-template-columns:repeat(6,1fr);

gap:35px;

text-align:center;

}

.number{

padding:10px;

}

.number h2{

font-size:52px;

color:var(--gold);

margin-bottom:12px;

}

.number p{

font-size:15px;

letter-spacing:1px;

color:#ddd;

text-transform:uppercase;

}

/*=========================================================
FLEET
=========================================================*/

.fleet{

padding:140px 0;

background:#fff;

}

.fleet-row{

display:grid;

grid-template-columns:1.2fr 1fr;

align-items:center;

gap:60px;

margin:90px 0;

}

.fleet-row:last-child{

margin-bottom:0;

}

.fleet-row.reverse{

grid-template-columns:45% 55%;

}

.fleet-row.reverse .fleet-photo{

order:2;

}

.fleet-row.reverse .fleet-info{

order:1;

}

.fleet-photo{

overflow:hidden;

border-radius:22px;

box-shadow:var(--shadow-lg);

}

.fleet-photo img{

width:100%;

height:560px;

object-fit:cover;

display:block;

}

.fleet-photo:hover img{

transform:scale(1.05);

}

.fleet-info h3{

font-size:44px;

margin-bottom:25px;

}

.fleet-info p{

font-size:18px;

line-height:1.9;

margin-bottom:28px;

color:#666;

}

.fleet-info ul{

padding-left:22px;

margin-bottom:35px;

}

.fleet-info li{

margin-bottom:12px;

list-style:disc;

color:#555;

}

/*=========================================================
ABOUT - RESPONSIVE
=========================================================*/

@media(max-width:1200px){

.about-container{

grid-template-columns:1fr;

gap:60px;

}

.about-image{

order:1;

}

.about-text{

order:2;

}

.about-text h2{

font-size:46px;

}

}

/*=========================================================
NUMBERS - RESPONSIVE
=========================================================*/

@media(max-width:1100px){

.numbers .container{

grid-template-columns:repeat(3,1fr);

gap:40px;

}

}

@media(max-width:650px){

.numbers{

padding:70px 0;

}

.numbers .container{

grid-template-columns:1fr;

gap:30px;

}

.number h2{

font-size:42px;

}

.number p{

font-size:14px;

}

}

/*=========================================================
FLEET - RESPONSIVE
=========================================================*/

@media(max-width:1200px){

.fleet-row,

.fleet-row.reverse{

grid-template-columns:1fr;

gap:50px;

}

.fleet-row.reverse .fleet-photo,

.fleet-row.reverse .fleet-info{

order:unset;

}

}

@media(max-width:768px){

.fleet{

padding:90px 0;

}

.fleet-info h3{

font-size:36px;

}

.fleet-info p{

font-size:17px;

}

.fleet-photo{

border-radius:18px;

}

}

/*=========================================================
COMMON IMAGE EFFECT
=========================================================*/

.about-image img,
.fleet-photo img{

will-change:transform;

}

/*=========================================================
SECTION SPACING
=========================================================*/

.about,
.fleet{

overflow:hidden;

}

.about .container,
.fleet .container{

position:relative;

z-index:2;

}

/*=========================================================
SERVICES
=========================================================*/

.services{

padding:140px 0;

background:#fafafa;

overflow:hidden;

}

.services-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;

margin-top:70px;

}

.service-card{

background:#fff;

border-radius:22px;

overflow:hidden;

box-shadow:var(--shadow-sm);

transition:.40s;

position:relative;

}

.service-card:hover{

transform:translateY(-10px);

box-shadow:var(--shadow-lg);

}

.service-card img{

width:100%;

height:280px;

object-fit:cover;

transition:.45s;

}

.service-card:hover img{

transform:scale(1.06);

}

.service-content{

padding:35px;

}

.service-content h3{

font-size:30px;

margin-bottom:18px;

}

.service-content p{

font-size:17px;

line-height:1.85;

margin-bottom:28px;

color:#666;

}

.service-content a{

display:inline-flex;

align-items:center;

gap:8px;

font-weight:600;

color:var(--gold);

transition:.30s;

}

.service-content a:hover{

gap:14px;

color:var(--gold-dark);

}

/*=========================================================
DESTINATIONS
=========================================================*/

.destinations{

padding:140px 0;

background:#f7f7f7;

overflow:hidden;

}

.destination-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;

margin-top:70px;

}

.destination-item{

position:relative;

overflow:hidden;

height:400px;

border-radius:22px;

cursor:pointer;

box-shadow:var(--shadow);

}

.destination-item img{

width:100%;

height:100%;

object-fit:cover;

transition:.55s;

}

.destination-item:hover img{

transform:scale(1.08);

}

.destination-overlay{

position:absolute;

left:0;

bottom:0;

width:100%;

padding:36px;

background:linear-gradient(

transparent,

rgba(0,0,0,.88)

);

color:#fff;

}

.destination-overlay h3{

font-size:34px;

margin-bottom:12px;

color:#fff;

}

.destination-overlay p{

font-size:17px;

color:#fff;

opacity:.92;

line-height:1.6;

}

/*=========================================================
SERVICES RESPONSIVE
=========================================================*/

@media(max-width:1100px){

.services-grid{

grid-template-columns:repeat(2,1fr);

}

.destination-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.services{

padding:90px 0;

}

.destinations{

padding:90px 0;

}

.services-grid,

.destination-grid{

grid-template-columns:1fr;

}

.service-card img{

height:240px;

}

.destination-item{

height:320px;

}

.destination-overlay{

padding:28px;

}

.destination-overlay h3{

font-size:28px;

}

}

/*=========================================================
COMMON CARD EFFECT
=========================================================*/

.service-card,
.destination-item{

will-change:transform;

backface-visibility:hidden;

}

/*=========================================================
QUOTE
=========================================================*/

.quote{

padding:140px 0;

background:#151515;

position:relative;

overflow:hidden;

}

.quote::before{

content:"";

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:linear-gradient(
135deg,
rgba(197,164,109,.08),
transparent
);

pointer-events:none;

}

.quote .section-title h2{

color:#fff;

}

.quote .section-title p{

color:#d7d7d7;

}

.quote-wrapper{

max-width:1050px;

margin:auto;

background:#fff;

border-radius:24px;

padding:60px;

box-shadow:0 35px 80px rgba(0,0,0,.25);

position:relative;

z-index:2;

}

.quote-form{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:24px;

}

.quote-form .full{

grid-column:1 / -1;

}

.quote-form input,
.quote-form select,
.quote-form textarea{

width:100%;

padding:18px 22px;

border:1px solid #ddd;

border-radius:12px;

font-size:16px;

font-family:inherit;

background:#fff;

transition:.30s;

outline:none;

}

.quote-form textarea{

min-height:170px;

resize:vertical;

}

.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{

border-color:var(--gold);

box-shadow:0 0 0 4px rgba(197,164,109,.12);

}

.quote-form button{

padding:18px 40px;

background:var(--gold);

color:#fff;

font-size:16px;

font-weight:600;

border:none;

border-radius:50px;

cursor:pointer;

transition:.35s;

box-shadow:0 15px 35px rgba(197,164,109,.25);

}

.quote-form button:hover{

background:var(--gold-dark);

transform:translateY(-4px);

box-shadow:0 22px 45px rgba(197,164,109,.35);

}

/*=========================================================
QUOTE RESPONSIVE
=========================================================*/

@media(max-width:900px){

.quote-wrapper{

padding:40px 28px;

}

.quote-form{

grid-template-columns:1fr;

}

.quote-form .full{

grid-column:auto;

}

}

@media(max-width:768px){

.quote{

padding:90px 0;

}

.quote-wrapper{

border-radius:18px;

padding:28px;

}

.quote-form button{

width:100%;

}

}

/*=========================================================
FOOTER
=========================================================*/

.footer{

background:#111;

color:#d8d8d8;

padding:90px 0 30px;

position:relative;

overflow:hidden;

}

.footer::before{

content:"";

position:absolute;

top:0;
left:0;

width:100%;
height:4px;

background:linear-gradient(
90deg,
transparent,
var(--gold),
transparent
);

}

.footer-grid{

display:grid;

grid-template-columns:2fr 1fr 1fr 1fr;

gap:60px;

margin-bottom:70px;

}

.footer-logo img{

max-width:220px;

margin-bottom:25px;

}

.footer h4{

font-size:22px;

margin-bottom:25px;

color:#fff;

}

.footer p{

color:#bdbdbd;

font-size:16px;

line-height:1.8;

margin-bottom:14px;

}

.footer ul{

padding:0;

margin:0;

}

.footer ul li{

margin-bottom:16px;

}

.footer ul li a{

color:#d2d2d2;

transition:.3s;

}

.footer ul li a:hover{

color:var(--gold);

padding-left:6px;

}

.footer-contact{

display:flex;

flex-direction:column;

gap:18px;

}

.footer-contact div{

display:flex;

align-items:flex-start;

gap:12px;

}

.footer-contact i{

color:var(--gold);

font-size:18px;

margin-top:4px;

min-width:18px;

}

.footer-social{

display:flex;

gap:16px;

margin-top:20px;

}

.footer-social a{

width:46px;

height:46px;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

background:rgba(255,255,255,.06);

transition:.35s;

font-size:18px;

color:#fff;

}

.footer-social a:hover{

background:var(--gold);

transform:translateY(-5px);

}

.footer-bottom{

padding-top:30px;

border-top:1px solid rgba(255,255,255,.08);

display:flex;

justify-content:space-between;

align-items:center;

flex-wrap:wrap;

gap:20px;

}

.footer-bottom p{

margin:0;

font-size:15px;

color:#999;

}

.footer-bottom a{

color:#cfcfcf;

margin-left:18px;

transition:.3s;

}

.footer-bottom a:hover{

color:var(--gold);

}

/*=========================================================
FOOTER RESPONSIVE
=========================================================*/

@media(max-width:1100px){

.footer-grid{

grid-template-columns:repeat(2,1fr);

gap:50px;

}

}

@media(max-width:768px){

.footer{

padding:70px 0 25px;

}

.footer-grid{

grid-template-columns:1fr;

gap:40px;

text-align:center;

}

.footer-contact div{

justify-content:center;

}

.footer-social{

justify-content:center;

}

.footer-bottom{

flex-direction:column;

text-align:center;

}

.footer-bottom a{

margin:0 10px;

}

}

/*=========================================================
ANIMATIONS
=========================================================*/

.fade-up{

opacity:0;

transform:translateY(45px);

transition:opacity .8s ease, transform .8s ease;

}

.fade-up.show{

opacity:1;

transform:translateY(0);

}

.fade{

opacity:0;

transition:opacity .8s ease;

}

.fade.show{

opacity:1;

}

.slide-left{

opacity:0;

transform:translateX(-60px);

transition:.8s;

}

.slide-left.show{

opacity:1;

transform:translateX(0);

}

.slide-right{

opacity:0;

transform:translateX(60px);

transition:.8s;

}

.slide-right.show{

opacity:1;

transform:translateX(0);

}

/*=========================================================
GLOBAL HOVER
=========================================================*/

.service-card,
.destination-item,
.fleet-photo,
.about-image{

transition:.35s ease;

}

.service-card:hover,
.destination-item:hover{

transform:translateY(-8px);

}

img{

backface-visibility:hidden;

-webkit-backface-visibility:hidden;

}

/*=========================================================
SCROLLBAR
=========================================================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#efefef;

}

::-webkit-scrollbar-thumb{

background:var(--gold);

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:var(--gold-dark);

}

/*=========================================================
SELECTION
=========================================================*/

::selection{

background:var(--gold);

color:#fff;

}

/*=========================================================
FOCUS
=========================================================*/

input:focus,
textarea:focus,
select:focus,
button:focus{

outline:none;

}

/*=========================================================
LAZY IMAGES
=========================================================*/

img{

image-rendering:auto;

}

/*=========================================================
HELPERS
=========================================================*/

.text-center{

text-align:center;

}

.mt-20{

margin-top:20px;

}

.mt-40{

margin-top:40px;

}

.mt-60{

margin-top:60px;

}

.mb-20{

margin-bottom:20px;

}

.mb-40{

margin-bottom:40px;

}

.mb-60{

margin-bottom:60px;

}

/*=========================================================
SMOOTH
=========================================================*/

html{

scroll-behavior:smooth;

}

/*=========================================================
FINAL FIX
=========================================================*/

section{

position:relative;

z-index:2;

}

.container{

position:relative;

z-index:2;

}

button,
a{

transition:all .35s ease;

}

.service-card,
.destination-item,
.fleet-photo,
.quote-wrapper,
.footer-social a{

will-change:transform;

}

/*=========================================================
END
=========================================================*/