/* Base */
body {
    padding-top: 0; /* navbar trasparente → niente spazio sopra */
    font-family: "Poppins", Arial, sans-serif;
	font-family: "Work Sans", sans-serif;
	
	background-color: #000 !important;
	font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #a0a0a0;
	
	background-image: radial-gradient(ellipse closest-corner at 30% 40%, rgba(242, 0, 123, .07), transparent 80%), radial-gradient(ellipse closest-corner at 50% 60%, rgba(111, 41, 201, .1), transparent 80%), radial-gradient(ellipse closest-corner at 70% 50%, rgba(38, 160, 248, .09), transparent 80%);
}

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {font-family: "Josefin Sans", sans-serif; text-transform:uppercase; font-weight:700; color: rgb(255, 255, 255);}
.title .title-left h1, .title .title-center h1, .title .title-right h1 {border-bottom: 1px solid var(--bs-white);}
.title .title-left h2, .title .title-center h2, .title .title-right h2 {border-bottom: 1px solid var(--bs-white);}
.title .title-left h3, .title .title-center h3, .title .title-right h3 {border-bottom: 1px solid var(--bs-white);}

h1, .h1, h2, .h2 {font-size: 2.5rem;}

body .text-primary {color: #e41779 !important;}
body .page-content a {color:#e41779;}
body .page-content a:hover {color:#fff;}

/*.title {margin-bottom: 2rem;}*/
.title .title-center {text-align: center; margin-bottom: 2rem;}
.title .title-left {text-align: left; margin-bottom: 2rem;}
.title .title-right {text-align: right; margin-bottom: 2rem;}

.title .title-left, .title .title-center, .title .title-right {
    display: inline-block;
    /*text-transform: uppercase;*/
    overflow: hidden;
}

.title .title-left h5, .title .title-center h5, .title .title-right h5 {
    position: relative;
    display: inline-block;
    font-size: 18px;
    font-weight: 300;
}

.btn {
    font-weight: 600;
    transition: .5s;
    border-radius: 50px;
}

p.foot {margin-top: 20px;}

/*cards*/
footer .card-body {padding:4rem;}

/* Rende tutte le card alte uguali */
.card {
    display: flex;
    flex-direction: column;
	    border-top-width: 0px;
    border-right-width: 0px;
    border-bottom-width: 0px;
    border-left-width: 0px;
	border-radius:20px;
	background-color: #000;

}

/* Rende tutte le immagini della stessa altezza */
.fixed-img {
    height: 220px;         /* Puoi cambiare valore */
    object-fit: cover;
    width: 100%;
}

/* Evita che le card crescano disordinate */
.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
	background-color: #e41779;
	color: #fff;
	border-bottom-right-radius:20px; 
	border-bottom-left-radius:20px;
	padding:4rem;
}

.card-img, .card-img-top {border-top-right-radius:20px; border-top-left-radius:20px;}

/* card di intro */
.fullwidth-intro {
    width: 100%;
    margin: 0;
    padding: 0;
	border-bottom:1px solid #e41779;
	
	background-color: #1a1a1a !important;
}

.intro-wrapper {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    min-height: 400px;
}

.intro-img {
    flex: 1 1 50%;
    background-image: url('img/551.jpg');
    background-size: cover;
    background-position: center;
	background-repeat: no-repeat;
    min-height: 400px;
}

body.chisiamo .intro-img {background-image: url('img/1079858361Slide4.png');}
body.chisiamo .page-header {background-image:linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)), url("img/1079858361Slide2.png");}
body.lavorazioni .intro-img {background-image: url('img/552.jpg');}
body.lavorazioni .page-header {background-image:linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)), url("img/1079858361Slide0.png");}
body.privacy .intro-img {background-image: url('img/1079858361Slide4.png');}
body.privacy .page-header {background-image:linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)), url("img/57.jpg");}

/* =========================
   CARD ORIZZONTALI ALLINEATE
   ========================= */
.row.card-orientata .card-img {padding-left:0px; padding-right:0px;}

body.chisiamo .card-horizontal {
    display: flex;
    align-items: stretch;
    border-radius: 22px;
    overflow: hidden;
    background: #000;
    min-height: 420px;
}

/* INVERSIONE CARD 2 */
body.chisiamo .card-horizontal.reverse {
    flex-direction: row-reverse;
}

/* TESTO */
body.chisiamo .card-text {
    width: 50%;
    background: #e41779;
    color: #fff;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.blocchiorizz.picc .card-body {padding:1rem; text-align:center; padding-top:2rem;}
.bg-dark .info-card.h-100 {text-align:center;} 

/* IMMAGINE */
body.chisiamo .card-img {
    width: 50%;
}

body.chisiamo .card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.intro-text {
    flex: 1 1 50%;
    /*background: #ffffff;*/
    padding: 8rem 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/*.intro-text h2 {
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 28px;
}*/

/*.intro-text p {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: 10px;
}*/

/* RESPONSIVE */
@media (max-width: 900px) {
    .intro-wrapper {
        flex-direction: column;
    }

    .intro-img, .intro-text {
        flex-basis: 100%;
    }
}

/* PAGE HEADER */
.page-header.inter {
    position: relative;
    min-height: 60vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}

/* Testo sopra immagine */
.page-header h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.page-header p {
    font-size: 1.25rem;
    max-width: 720px;
    margin: 0 auto;
    opacity: 0.9;
}

/* ------------------------------ */
/* NAVBAR TRASPARENTE ALL'INIZIO */
/* ------------------------------ */
#mainNav {
    transition: all 0.35s ease;
    background: transparent !important;
    /*padding: 1.2rem 0;*/
	text-transform:uppercase;
}

#mainNav .navbar-brand img {
    height: 100px;
    transition: height 0.35s ease;
}

#mainNav .nav-link {
    color: #ffffff;
    font-weight: 500;
    transition: color 0.35s ease;
}

#mainNav .nav-link:hover, #mainNav .nav-link.active {
    color: #e41779;
}

#mainNav .nav-link {
    margin-right: 25px;
    padding: 40px 0;
    color: var(--bs-white);
    font-size: 17px;
    text-transform: uppercase;
    outline: none;
    transition: .5s;
}

/* ------------------------------ */
/* NAVBAR SHRINK DOPO SCROLL */
/* ------------------------------ */
#mainNav.shrink {
    background: #000 !important;
    box-shadow: 0 2px 9px rgba(0,0,0,0.15);
    padding: 0.4rem 0;
}

#mainNav.shrink .nav-link {
    /*color: #333 !important;*/
	padding: 20px 0;
}

#mainNav.shrink .navbar-brand img {
    height: 48px;
}

#mainNav .container, #mainNav .container-lg, #mainNav .container-md, #mainNav .container-sm, #mainNav .container-xl, #mainNav .container-xxl {max-width: 100%;}

/*#mainNav .navbar.bg-dark .navbar-nav .nav-link {padding: 20px 0;}*/

/* Hamburger icon visibility fix */
/*
.navbar-toggler {
    border-color: rgba(255,255,255,0.7);
}
#mainNav.shrink .navbar-toggler {
    border-color: rgba(0,0,0,0.4);
}
*/

/* ------------------------------ */
/* SLIDER + OVERLAY OSCURANTE */
/* ------------------------------ */
.carousel-item {
    height: 100vh;
    min-height: 480px;
    position: relative;
}

.carousel-item img {
    object-fit: cover;
    height: 100%;
    filter: brightness(70%);
}

/* overlay extra per leggibilità */
.carousel-item::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.45); /* regolabile */
    z-index: 1;
}

/* caption sopra overlay */
.carousel-caption {
    z-index: 2;
}

.carousel-caption h2 {
    font-size: 3rem;
}
.carousel-caption p {
    font-size: 1.3rem;
}

.carousel-item.start-animation .carousel-caption .animated {
    animation-play-state: running !important;
    opacity: 1 !important;
}

.carousel-caption .animated {
    opacity: 0;
    animation-play-state: paused;
}


/* CENTRA CAPTIONS IN MODO PERFETTO */
.carousel-item .carousel-caption {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 800px;
    padding: 0 20px;
    text-align: center;
}

.btn-outline-primary {
    color: #e41779;
    border-color: #e41779;
}

.btn-outline-primary:hover {
    color: #000;
    background-color: #e41779;
    border-color: #e41779;
}

.title .title-center, .carousel-caption.text-start {
    text-align: center !important;
}

.title .title-right {
    text-align: right !important;
}


/* ANIMAZIONE DOLCE (dall’alto verso il basso) */
.carousel-caption .slider-title,
.carousel-caption .slider-text {
    opacity: 0;
    transform: translateY(-20px);
    animation: slideDown 1s ease-out forwards;
}

.carousel-caption .slider-title {
    animation-delay: 0.2s;
}

.carousel-caption .slider-text {
    animation-delay: 0.5s;
}

@keyframes slideDown {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* FOOTER */
#footer.py-4 {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}
#footer.bg-dark {background-color: #e41779 !important;}
#footer a {color:#a0a0a0;}
#footer a:hover {color:#fff;}

#backToTop {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 48px;
    height: 48px;
    background: #e41779;
    color: #fff;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 22px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 9999;
}

#backToTop.show {
    opacity: 1;
    visibility: visible;
}

/* Full page */
.page-content {
    padding: 60px 20px;
}

.privacy-content {
    /*background-color: #fff;*/
}

.privacy-content .container {
    max-width: 900px;
    margin: 0 auto;
}

.privacy-content h2 {
    margin-top: 40px;
    font-size: 1.6rem;
}

.privacy-content p,
.privacy-content li {
    line-height: 1.7;
    font-size: 1rem;
}

.privacy-content ul {
    margin: 15px 0 25px 20px;
}


/* =========================
   GALLERY
   ========================= */
/*
.gallery-section {
    background-color: #000;
}
*/

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    transition: transform 0.6s ease, filter 0.6s ease;
    display: block;
}

/* Hover elegante */
.gallery-item:hover img {
    transform: scale(1.05);
    filter: brightness(85%);
}

/* ===========================
   FIX GENERALI PER MOBILE
   =========================== */
@media (max-width: 768px) {
	
	.row {--bs-gutter-x: 0;}
	h1, .h1, h2, .h2 {font-size: 5vw; font-size: calc(1.375rem + 1.5vw);}
	.blocchiorizz .blocc {margin-top: 20px;}
	/*.blocchiorizz .blocc.init {margin-top: 0px;}*/
	#mainNav .navbar-brand h2 {font-size: 5vw;}
	#mainNav .navbar-brand img {height: 70px;}
	
	.title .title-left {text-align: center;}
	/*.page-content p, .intro-text {text-align: justify; text-justify: inter-word;}*/
	
	/* card horizontal */
	.card-horizontal,
    .card-horizontal.reverse {
        flex-direction: column;
        min-height: auto;
    }

    .card-text,
    .card-img {
        width: 100%;
    }

    .card-img img {
        height: 260px;
    }

    .card-text {
        padding:0rem;
        text-align: center;
    }
	
	.card-title {text-align:center;}
	
	body.chisiamo .card-text {width:100%; padding:0.5rem;}

    /* --- SLIDES: evita che le caption vengano tagliate --- */
    .carousel-caption {
        bottom: 20px !important;
        padding: 10px 15px;
        width: 100%;
        left: 50%;
        transform: translateX(-50%);
        white-space: normal !important;
        text-align: center;
		height:100%;
    }

    .carousel-caption h1,
    .carousel-caption h2 {
        font-size: 1.8rem !important;
        line-height: 1.2 !important;
        word-break: break-word;
    }
	
	
    .carousel-caption p {
        font-size: 1rem !important;
        line-height: 1.2 !important;
        word-break: break-word;
    }
	
	#headerSlider .carousel-caption .px-5, #headerSlider .carousel-caption .mx-5 {padding-left:0px !important; padding-right:0px !important;}
	#headerSlider .carousel-caption a.px-5 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
	}

    /* --- NAVBAR: aumenta la visibilità dell'hamburger --- */
    .navbar-toggler {
        /*border: 2px solid #fff !important;*/
        padding: 6px 8px;
    }

    .navbar-toggler-icon {
        background-image: none !important;
        width: 24px;
        height: 2px;
        background-color: white;
        position: relative;
    }

    .navbar-toggler-icon::before,
    .navbar-toggler-icon::after {
        content: "";
        background-color: white;
        width: 24px;
        height: 2px;
        position: absolute;
        left: 0;
    }

    .navbar-toggler-icon::before {
        top: -7px;
    }
    .navbar-toggler-icon::after {
        top: 7px;
    }

    /* --- MENU MOBILE: sfondo opaco --- */
    .navbar-collapse {
        background: rgba(0, 0, 0, 0.85) !important;
        padding: 15px;
        border-radius: 8px;
    }

    .navbar-nav .nav-link {
        /*color: #fff !important;*/
        padding: 10px 0;
        font-size: 1.1rem;
        text-align: center;
    }
	
/* -------------------------------
   HAMBURGER → X (animazione)
---------------------------------- */
.navbar-toggler {
    border: none;
    padding: 10px;
    z-index: 9999;
}

.navbar-toggler:focus {
    box-shadow: none;
}

.navbar-toggler-icon {
    width: 28px;
    height: 2px;
    background: white;
    position: relative;
    display: block;
    transition: background 0.3s ease;
}

.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 28px;
    height: 2px;
    background: white;
    transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease;
}

.navbar-toggler-icon::before {
    top: -8px;
}

.navbar-toggler-icon::after {
    top: 8px;
}

/* Quando il menu è aperto → trasformiamo le linee in una X */
.navbar-toggler.open .navbar-toggler-icon {
    background: transparent;
}

.navbar-toggler.open .navbar-toggler-icon::before {
    top: 0;
    transform: rotate(45deg);
}

.navbar-toggler.open .navbar-toggler-icon::after {
    top: 0;
    transform: rotate(-45deg);
}


    /* --- Opzionale: aumenta la leggibilità se hai immagini dietro --- */
    #mainNav.shrink,
    #mainNav {
        background: rgba(0, 0, 0, 0.9) !important;
    }
	
	#mainNav .nav-link, #mainNav.shrink .nav-link {
    margin-right: 0px;
    padding: 10px 0;
}
	
	.card-body {padding-left: 2rem; padding-right: 2rem;}
	
	#footer.bg-dark {
		padding-left: 10%;
		padding-right: 10%;
	}
	
	.page-header {
        min-height: 45vh;
        padding: 3rem 1rem;
    }

    .page-header h1 {
        font-size: 2.2rem;
    }

    .page-header p {
        font-size: 1.05rem;
    }
	
	.gallery-item img {min-height: 220px;}
	
	form .mb-3 {margin-bottom: 0rem !important;}
	form .mb-3 .col-md-6 {margin-bottom: 1rem;}
}

/* Forza le due colonne a essere alte uguali tra 768 e 991px */
@media (min-width: 768px) and (max-width: 991px) {
	
	.blocchiorizz .blocc {margin-top: 0px;}

    /* La row deve comportarsi da flex-container orizzontale */
    .blocchiorizz {
        display: flex !important;
        flex-wrap: nowrap !important; 
        align-items: stretch !important;
        gap: 20px; /* distanza tra card */
    }

    /* Le colonne devono espandersi alla stessa altezza */
    .blocchiorizz .col-md-6 {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 50% !important;
        padding: 0 !important; /* evita differenze di altezza */
    }

    /* La card deve riempire tutta la colonna */
    .blocchiorizz .card {
        flex: 1 1 auto !important;
        height: 100% !important;
        display: flex;
        flex-direction: column;
    }

    /* L'immagine rimane fissa */
    .blocchiorizz .card-img-top {
        height: 260px !important;
        object-fit: cover;
        width: 100%;
    }

    /* Il corpo occupa lo spazio rimanente */
    .blocchiorizz .card-body {
        flex: 1 1 auto !important;
        display: flex;
        flex-direction: column;
    }
	
	.fullwidth-intro .intro-wrapper .intro-text {width:100%; text-align:center;}
	.card-image {width:100%;}
	body .horizontal-card .card-text {width:100%;}
	
	
}

/* ===========================
   CARD ORIZZONTALI
   =========================== */

.horizontal-card {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 24px;
    background: #000;
}

/* immagine */
.horizontal-card .card-image {
    overflow: hidden;
}

.horizontal-card .card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* testo */
.horizontal-card .card-text {
    display: flex;
}

.horizontal-card .card-content {
    background-color: #e41779;
    color: #fff;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.horizontal-card h3 {
    margin-bottom: 1rem;
    text-transform: uppercase;
}

/* ===========================
   MOBILE: impilamento
   =========================== */

@media (max-width: 767px) {

    .horizontal-card {
        flex-direction: column;
    }

    .horizontal-card .card-image img {
        height: 240px;
    }

    .horizontal-card .card-content {
        padding: 2rem;
        text-align: center;
    }
}
