
html, body {
    height: 100%; /* serve per ancorare il 100% */
    margin: 0;
    overflow: hidden; /* disabilita lo scroll del body */
}

/*PAGE*/
.page {
    height: 100vh; /* occupa tutto il viewport */
    overflow-y: auto; /* abilita lo scroll verticale */
    scroll-snap-type: y proximity; /* oppure: y mandatory */
    scroll-behavior: smooth; /* scorrimento fluido (opzionale) */
    scroll-padding-top: var(--header-height);
    overflow-x:hidden;
}
.snap-section {
    height: 100vh; /* ogni sezione una “pagina” */
    scroll-snap-align: start; /* snap all'inizio della sezione */
    /* opzionale, utile per forzare lo stop: */
    /* scroll-snap-stop: always; */
}
/*============HEADER=================================*/
.site-header{background:transparent;transition:background-color 200ms ease-in-out;}
.site-header.scrolled{background-color:rgba(255,255,255,0.95);transition:background 200ms ease-in-out;}
.site-header.white{color:var(--ink);background-color:rgba(255,255,255,0.95);transition:background-color 200ms ease-in-out;}
.header-row{background:transparent}
/*HERO========================*/
.page{scroll-snap-type:none !important}
.snap-section{height:max-content;}
.hero-container{width:90vw;margin:auto;height:600px}
body{background-color:white;}
/*#hero{background-color:white;height:100vh;position:relative;padding-top:var(--header-height)}*/
.hero-background{position:absolute;height:100%}
.hero-background img{height:100%;object-fit:cover;}
#hero {
    background-color: #FBFBFB;
    height: 100vh;
    position: relative;
    padding-top: var(--header-height);
}
.hero-bar {
    position: absolute;
    left: 0;
    bottom: -220px;
    width: 70%;
    padding:0px 170px;
    transform:translateX(-100%);
    height: 440px;
    background-color: var(--ink);
    z-index: 2;
    display: flex;
    align-items: center;
    border-top-right-radius: 120px;
    border-bottom-right-radius: 120px;
    transition:transform 600ms ease-in-out;
}
.hero-bar.expand{transform:translateX(0px);transition:transform 600ms ease-in-out;}
.hero-bar-text{color:white;opacity:0;transition:opacity 600ms ease-in-out;}
.hero-bar.expand .hero-bar-text{opacity:1;transition:opacity 600ms ease-in-out;}
.hero-bar-text p{font-size:1.5rem; line-height:1.8rem;margin-bottom:30px;}
.hero-row{display:flex;padding:80px 0px 0px 20px;}
.right-hero {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: end;
    
}
.hero-text {
    font-size: clamp(1rem, 2vw, 1rem);
    width: 50%;
    padding: 60px 0px;
}
.hero-text p{font-size:1.125rem;margin-bottom:20px;line-height:1.4375rem}
.hero-eyebrow {
    display: block;
    font-weight: 700;
    font-size: 4.25rem;
    line-height: 4.5rem;
    letter-spacing: -.01em;
    margin-bottom: 30px;
}
.hero-title {
    font-size: 4.25rem;
    color: var(--nav-color);
    font-weight: 400;
    line-height: 0.35;
    margin-bottom: 65px;
}
.cta-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 1.4rem
}
/*===============certificazione=============*/
#certificazione{height:max-content;position:relative;background-color:#E3EFF4;padding:400px 0px;}
.certificazione-container{display:flex;align-items:center;height:100%}
.certificazione-container-row{display:flex;gap:20px;}
.left-certificazione{width:50%;display:flex;align-items:center;}
.left-certificazione-img{display:flex;justify-content:center;}
.left-certificazione-img img{height:100%;}
.right-certificazione{width:40%; display:flex;flex-direction:column; gap:50px;}
.certificazione h3{font-size:2.625rem;}
.certificazione p {font-size: 1.1rem;line-height:1.5rem;}
.certificazione-bar {
    position: absolute;
    right: 0;
    bottom: -220px;
    width: 60%;
    transform: translateX(100%);
    transition: transform 600ms ease-in-out;
    height: 440px;
    background-color: #0180B7;
    z-index: 2;
    padding: 10px 170px;
    display: flex;
    align-items: center;
    border-top-left-radius: 120px;
    border-bottom-left-radius: 120px;
    color: white;
}
.certificazione-bar p{font-size:2rem;line-height:2.3rem}
.certificazione-bar.expand{transform:translateX(0px);transition:transform 600ms ease-in-out;}
.s-cta {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: #7a7aea;
    font-weight: 700;
    font-size: .9rem;
}
.s-cta .dot {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg,#b59cff,#a98dff)
}
.s-cta .dot svg {
    width: 16px;
    height: 16px;
    fill: #fff
}
.learn-more {
    position: relative;
    cursor: pointer;
    outline: 0;
    border: 0;
    vertical-align: middle;
    text-decoration: none;
    background: transparent;
    width: 12rem;
    height: 3rem;
    border-radius: 1.625rem;
    display: flex;
    align-items: center;
}

.learn-more .circle {
    transition: all .45s cubic-bezier(0.65,0,.076,1);
    width: 2rem;
    height: 2rem;
    background: var(--rosaScuro);
    border-radius: 1rem;
    z-index: 1;
    pointer-events: none;
}

.learn-more .circle .icon {
    transition: all .45s cubic-bezier(0.65,0,.076,1);
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    background: #fff
}

.learn-more .circle .icon.arrow {
    left: .625rem;
    width: 1.125rem;
    height: .125rem;
    background: none
}

.learn-more .circle .icon.arrow::before {
    content: "";
    position: absolute;
    top: -.25rem;
    right: 0.5rem;
    width: .625rem;
    height: .625rem;
    border-top: .125rem solid #fff;
    border-right: .125rem solid #fff;
    transform: rotate(45deg)
}

.learn-more .button-text {
    transition: all .45s cubic-bezier(0.65,0,.076,1);
    position: absolute;
    inset: 0;
    padding: .75rem 0;
    margin: 0 0 0 2rem;
    color: var(--rosaScuro);
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    z-index: 2;
}

.learn-more:hover .circle {
    width: 100%
}

.learn-more:hover .circle .icon.arrow {
    transform: translate(1rem,0)
}

.learn-more:hover .button-text {
    color: #fff
}
/*====PINK ROW=========*/
.man-pink-row {
    justify-content: center;
}
.man-pink-row .btn-secondary{background-color:transparent;}

/*================FAQ===============*/
#faq {
    padding: 400px 0px 200px;
    height: max-content;
    background-color: #FBFBFB;
    position: relative;
}
.faq-container {
    height: 100%;
    padding:50px 140px;
    display:flex;
    flex-direction:column;
}
.faq-text{text-align:center;margin-bottom:40px;}
.faq-text h3{font-size: 2.625rem}
.faq-drops{
    display:flex;
    flex-direction:column;
    flex-grow:1
}
.faq-drop {
    height: 90px;
    width: 100%;
    background-color: #EFF3F4;
    margin: 10px 0px;
    border-radius: 30px;
    box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
    overflow: hidden;
    display: flex;
    padding: 23px 40px 23px 40px;
    cursor: pointer;
    transition: height 0.3s ease;
    justify-content:space-between;
}

.faq-drop.expand {
    height: 200px;
    width: 100%;
    transition: height 0.3s ease;
}
.faq-drop-text{
    flex-grow:0;
    width:85%;
}
.faq-drop-text h4 {
    font-size: 1.5rem;
    margin-bottom:30px;
    line-height: 1.6rem;
}
.faq-drop-text p {
    opacity: 0;
    font-size: 1.125rem;
    transition: opacity 0.8s ease;
}
.faq-drop.expand p {
    opacity: 1;
    transition: opacity 0.8s ease;
}

.drop-circle > .circle {
    transition: all .45s cubic-bezier(0.65,0,.076,1);
    width: 2rem;
    height: 2rem;
    background: var(--ink);
    border-radius: 1rem;
    z-index: 2;
    pointer-events: none;
    position: relative
}
.drop-circle.expand > .circle{
    background-color:var(--rosaScuro)
}

.drop-circle > .circle .icon.arrow {
    left: .625rem;
    width: 1.125rem;
    height: .125rem;
    background: none
}

.drop-circle >.circle .icon.arrow::before {
    content: "";
    position: absolute;
    top: 10px;
    right: 11px;
    width: .5rem;
    height: .5rem;
    border-top: .125rem solid #fff;
    border-right: .125rem solid #fff;
    transform: rotate(135deg);
    transition: transform 0.3s ease;
}

.drop-circle.expand >.circle .icon.arrow::before {
    content: "";
    position: absolute;
    top: 12px;
    right: 11px;
    width: .5rem;
    height: .5rem;
    border-top: .125rem solid #fff;
    border-right: .125rem solid #fff;
    transform: rotate(-45deg)
}
.img-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;

  display: none; /* nascosto di default */
  align-items: center;
  justify-content: center;

  /* effetto leggero, ma non blocca click */
  background: rgba(0, 0, 0, 0.15);
  backdrop-filter: blur(2px);

  /* importantissimo: clicchi attraverso */
  pointer-events: none;
}

/* Quando č aperto */
.img-modal.is-open {
  display: flex;
}

/* Contenitore immagine: questo invece deve ricevere click */
.img-modal__content {
  pointer-events: auto;
  height: 90vh;
}

/* Immagine dentro: cover + bordi */
.img-modal__content img {
  height: 100%;
  display: block;
  object-fit: cover;

  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}


@media (max-width: 1700px) {
    .hero-container{width:95vw;height:525px;}
    /*==========HERO================*/
    .hero-text{padding:40px 0px;width:75%}
    .hero-eyebrow {font-size:3.5rem;line-height:3.8rem;}
    .hero-text p{font-size:1.1rem;margin-bottom:20px;line-height:1.25rem}
    .hero-row{padding:50px 0px 0px 20px;}
    .hero-text {width: 53%;}
    .hero-bar {bottom: -170px;width: 70%;height: 340px;border-top-right-radius: 100px;border-bottom-right-radius: 100px;}
    .hero-bar-text p {font-size: 1.225rem;line-height: 1.5rem;}
    /*==========certificazione=================*/
    .certificazione-bar {bottom: -200px;height: 400px;padding: 10px 140px;}
    /*=============FAQ==================*/
    .faq-container {padding: 30px 140px;}
    .faq-drop.expand {height: 210px;}
    .faq-text {margin-bottom: 20px;}
    .faq-drop {height: 90px;margin: 8px 0px;padding: 23px 40px 23px 40px;;border-radius:20px;}
    .faq-drop-text h4{font-size:1.2rem;margin-bottom:15px;}
    .faq-drop-text p{font-size:1rem;}
    #forma-pink-row {right: 5%;top: -17%; height: 160px;}
    #forma-pink-row img{height:100%}
}

@media (max-width: 1450px) {
    /*==========HERO================*/
    .hero-text{padding:40px 0px;}
    .hero-eyebrow {font-size:2.85rem;}
    .hero-title {font-size: 2.85rem;margin-bottom:40px;}
    .hero-text p{font-size:1rem;margin-bottom:20px;line-height:1.25rem}
    .hero-row{padding:50px 0px 0px 20px;}
    .right-hero{padding-right:100px;}
    .btn-primary{font-size:1rem}
    .btn-secondary{font-size:1rem}
    .hero-bar {bottom: -150px;height: 300px;border-bottom-right-radius: 100px;padding:0px 80px;}
    .hero-bar-text p {font-size: 1.15rem;margin-bottom: 20px;}
    /*=============certificazione==================*/
    .certificazione-bar {
        bottom: -170px;
        height: 340px;
        border-top-left-radius: 90px;
        border-bottom-left-radius: 90px;
        padding: 0px 80px;
        width: 70%;
    }
    /*=============FAQ==================*/
    .faq-container {padding: 30px 0px;}
    #forma-pink-row {height: 120px;}
    #forma-pink-row img{height:100%}
}

@media(max-width:1300px){
    /*=========LEFT HERO===============*/
    .right-hero{padding-right:0px;}
}

@media(max-width:1100px) {
    /*=========LEFT HERO===============*/
    .right-hero {width: 90%}
    .hero-row {padding: 50px 0px 0px 50px;justify-content: end;height: 470px;}
    .hero-text {width: 100%;}
    /*==========certificazione====================*/
    .certificazione-bar {width: 76%;}
    .left-certificazione-img {height: 130px;}
}

@media(max-width:870px){
    /*=====HERO========*/
    .hero-eyebrow{font-size:2.6rem;line-height:2.8rem;}
    .hero-title {font-size: 2.5rem;line-height:2.8rem;margin-bottom:15px;}
    .hero-row{height:380px;}
    .hero-row {padding: 50px 0px 0px 00px;}
    .hero-text {padding: 0px 0px;max-width: 80%;width: 70%;}
    .hero-text p{font-size:1rem;}
    .right-hero {width: 100%;}
    .hero-bar-text p {font-size: 1.45rem;line-height: 1.8rem;}
    .hero-bar {width: 100%;bottom: -240px;height: max-content;border-radius: 30px;padding:80px 50px;}
    /*=========certificazione=============*/
    .certificazione-bar {width: 90%;bottom: -160px;height: 320px;padding: 0px 30px;}
    .certificazione-bar {border-top-left-radius: 70px;border-bottom-left-radius: 70px;}
    .certificazione-container-row{display:block;}
    .left-certificazione{width:100%;}
    .right-certificazione{width:100%;}
    #certificazione {padding: 335px 0px;}
    /*============FAQ=====================*/
    .faq-drop.expand {height: 160px;}
}
@media(max-width:576px){
    .page{scroll-snap-type:none !important}
    .snap-section{height:max-content;}
    /*=========HERO===============*/
    #hero{height:max-content;padding-bottom:50px;}
    .hero-container{width:90%;}
    .hero-row {
        display: block;
        padding: 0px 0px 0px 0px;
        position: relative;
        height: calc(100vh - var(--header-height));
        display: flex;
        align-items: center;
    }
    .right-hero {
        display: block;
        padding: 0px;
        width: 100%;
        position:relative;
        z-index:5;
        background: rgba(255, 255, 255, 0.09);
    }
    .hero-text{max-width:100%;}
    .hero-text {width: 100%;}
    .hero-eyebrow {font-size: 2.4rem;margin-bottom: 0px;line-height:2.5rem}
    .hero-title{font-size:2.2rem}
    .hero-text p {margin-bottom: 30px;font-size: 1.125rem;line-height: 1.5rem;}
    .btn-primary,.btn-secondary{width:240px;text-align:center}
    .hero-bar {width: 100%;transform:translateX(0);padding: 50px 20px;height:max-content;bottom:-150px}
    #hero {padding-bottom: 320px;}
    .hero-bar-text {opacity: 1;}
    .hero-bar-text p {font-size: 1.125rem;line-height: 1.5rem;}
    /*.hero-background{display:none}*/
    /*==========certificazione===============*/
    .certificazione-container {
        width: 338px;
    }
    .certificazione-container-row {display: block;}
    .left-certificazione{width:100%;margin-bottom:30px;}
    .left-certificazione-img {justify-content: center;height: 120px;}
    .right-certificazione{width:100%;}
    #certificazione {height: max-content;padding: 280px 0px 570px 0px;}
    .certificazione-bar {transform: translateX(0);width: 100%;border-radius: 20px;height:max-content ;padding:100px 50px 100px 50px;}
    .certificazione-bar p {
        font-size: 1.5rem;
        line-height: 1.75rem;
    }
    /*==========FAQ===============*/
    #faq {height: max-content;padding: 180px 0px 90px 0px;}
    .faq-container {padding: 90px 0px;}
    .faq-drop-text h4{font-size:1.125rem;line-height:1.5rem;}
    .faq-drop-text p{font-size:0.9rem;}
    .faq-drop {
        height: 75px;
        margin: 8px 0px;
        padding: 18px 10px 23px 15px;
        border-radius: 10px;
    }
    #custom-size1{height:100px;}
    #custom-size1.expand{height:220px;}
    #forma-pink-row {
        right: 5%;
        top: -15%;
        height: 85px;
    }
    /*=============MODAL 9001========*/
    .img-modal__content {height: 70vh;}
}

