/*-----------------------------------------------------------------------------------
    AGIOMAR - Beachwear Como
    CSS Semplificato e Ottimizzato
-----------------------------------------------------------------------------------*/

/* ===== GOOGLE FONTS ===== */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:wght@400;600;700&display=swap');

/* ===== RESET BASE ===== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


html {
  scroll-behavior: smooth;
}

body {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  color: #5A5872;
  line-height: 1.6;
/* previeni spostamento modale */
  overflow-x: hidden;
  padding-right: 0 !important;
 }


.accent {
    background-color: #0891b2;
}

.green {
    background-color: #04c55bfd;
}


img {
  max-width: 100%;
  vertical-align: middle;
}

a {
  text-decoration: none;
  display: inline-block;
}

a:focus, a:hover {
  text-decoration: none;
  outline: none;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ===== TIPOGRAFIA ===== */
h1, h2, h3, h4 {
  font-family: "Playfair Display", serif;
  font-weight: 600;
  color: #2B2A3D;
  margin: 0;
}

h1 { font-size: 48px; }
h2 { font-size: 36px; }
h3 { font-size: 28px; }
h4 { font-size: 22px; }

h5, h6 {
  font-family: "Elms-sans", sans-serif;
  font-weight: 600;
  margin: 0;
}

h5 { 
  font-size: 18px; 
  color: #0891b2; 
  margin-top: 15px;
}

h6 { 
  font-size: 16px; 
  color: #2B2A3D;
}

p {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  color: #000000;
  margin: 0;
}

.font-elms-sans {
    font-family: "Elms Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400; /* Oppure il peso che preferisci, es. 300, 700 */
    font-style: normal;
}

@media (max-width: 767px) {
  h1 { font-size: 36px; }
  h2 { font-size: 28px; }
  h3 { font-size: 24px; }
  h4 { font-size: 20px; }
}

.plight  { 
    font-weight: 300;
}

.bg_cover {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
}


/* ===== BUTTONS ===== */
.main-btn, .main-btn-prenota {
  font-family: "Montserrat", sans-serif;
  display: inline-block;
  font-weight: 500;
  text-align: center;
  padding: 0 38px;
  font-size: 16px;
  height: 45px;
  line-height: 45px;
  text-transform: uppercase;

  color: #fff;
  border: 0;
  cursor: pointer;
  transition: all 0.3s ease;
}

.main-btn:hover, .main-btn-prenota:hover {
  background-color: #ffffff;
  color: #000000;
}

.out-btn {
  font-family: "Montserrat", sans-serif;
  display: inline-block;
  font-weight: 500;
  text-align: center;
  padding: 0 38px;
  font-size: 16px;
  height: 45px;
  line-height: 45px;
  text-transform: uppercase;
  color: #fff;
  background: transparent;
  border: 1px solid #fff;
  cursor: pointer;
  transition: all 0.3s ease;
}

.out-btn:hover {
  background-color: #0891b2;
  color: #fff;
  border-color: #0891b2;
}


/* ===== SECTION TITLE ===== */
.section_title .title {
  font-size: 40px;
  font-weight: 700;
}

.section_title p {
  margin-top: 15px;
  font-size: 18px;
  color: #555555;
  }

.section_title.section_title_2 .title,
.section_title.section_title_2 p {
  color: #fff;
}

@media (max-width: 767px) {
  .section_title .title {
    font-size: 26px;
  }
}

/*===========================
    HEADER / NAVBAR
===========================*/
.header_navbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transition: all 0.3s ease;
}

.sticky {
  position: fixed;
  background-color: #fff;
  box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.05);
}

.navbar {
  padding: 20px 0;
  transition: all 0.3s ease;
}

.sticky .navbar {
  padding: 15px 0;
}

.navbar-brand {
  padding: 0;
}

.navbar-brand img {
  width: 200px;
  height: auto;
  display: block;
  filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.3));
  transition: all 0.3s ease;
}

.sticky .navbar-brand img {
  filter: none;
}

@media (max-width: 767px) {
  .navbar-brand img {
    width: 130px;
  }
}

/* HAMBURGER */
.navbar-toggler {
  padding: 0;
  border: none;
}

.navbar-toggler:focus {
  box-shadow: none;
}

.navbar-toggler .toggler-icon {
  width: 30px;
  height: 2px;
  background-color: #fff;
  display: block;
  margin: 5px 0;
  transition: all 0.3s ease;
}

.navbar-toggler.active .toggler-icon:nth-of-type(1) {
  transform: rotate(45deg);
  top: 7px;
  position: relative;
}

.navbar-toggler.active .toggler-icon:nth-of-type(2) {
  opacity: 0;
}

.navbar-toggler.active .toggler-icon:nth-of-type(3) {
  transform: rotate(135deg);
  top: -7px;
  position: relative;
}

.sticky .navbar-toggler .toggler-icon {
  background-color: #222;
}

/* MENU MOBILE */
@media (max-width: 991px) {
  .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: #fff;
    box-shadow: 0px 15px 20px rgba(0, 0, 0, 0.1);
    padding: 5px 12px;
  }
}

/* NAV ITEMS */

/*===========================
    NAVBAR LOGO
===========================*/

.navbar-brand img {
  width: 200px;
  height: auto;
  display: block;
  filter: brightness(0) invert(1); /* TUTTO BIANCO */
  transition: all 0.3s ease;
}

/* Logo NORMALE quando sticky */
.sticky .navbar-brand img {
  filter: none;
}
/* Mobile */
@media (max-width: 767px) {
  .navbar-brand img {
    width: 130px;
  }
}


.navbar-nav .nav-item {
  margin-left: 40px;
}

.navbar-nav .nav-item a {
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  padding: 10px 0;
  position: relative;
  transition: all 0.3s ease;
}

.navbar-nav .nav-item a::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background-color: #0891b2;
  transition: all 0.3s ease;
}

.navbar-nav .nav-item a:hover::before,
.navbar-nav .nav-item a.active::before {
  width: 100%;
}

.sticky .navbar-nav .nav-item a {
  color: #222;
}

.sticky .navbar-nav .nav-item a:hover,
.sticky .navbar-nav .nav-item a.active {
  color: #0891b2;
}

@media (max-width: 991px) {
  .navbar-nav .nav-item {
    margin: 0;
  }
  
  .navbar-nav .nav-item a {
    color: #222;
    padding: 4px 0;
  }
  
  .navbar-nav .nav-item a::before {
    display: none;
  }
  
  .navbar-nav .nav-item a:hover,
  .navbar-nav .nav-item a.active {
    color: #0891b2;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .navbar-nav .nav-item {
    margin-left: 30px;
  }
}

/*===========================
    HERO CON TESTO FISSO
===========================*/

.hero_area {
  position: relative;
  overflow: hidden;
  height: 1200px;
}

/* Slider sfondo */
.hero_area::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  
  /* Aggiunta transizione di cross-fade per ammorbidire */
  transition: background-image 1s ease-in-out; 
  animation: heroSlide 20s infinite ease-in-out;
  
  z-index: 0; /* Portato a 0 per stare sotto l'overlay e il testo */
}

/* Overlay scuro */
.hero_area::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1; /* Sopra lo sfondo, sotto il testo */
}

/* Animazione immagini con sfumatura morbida (Mantenute le tue 4 immagini) */
@keyframes heroSlide {
  0%, 20% {
    background-image: url("/assets/images/agiomar_beachwear_hero_01.jpg");
  }
  25%, 45% {
    background-image: url("/assets/images/agiomar_beachwear_hero_02.jpg");
  }
  50%, 70% {
    background-image: url("/assets/images/agiomar_beachwear_hero_03.jpg");
  }
  75%, 95% {
    background-image: url("/assets/images/agiomar_beachwear_hero_04.jpg");
  }
  100% {
    background-image: url("/assets/images/agiomar_beachwear_hero_01.jpg");
  }
}

/* Testo sopra */
.hero_content_fixed {
  position: relative;
  z-index: 2; /* Sopra a tutto */
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero_content {
  text-align: center;
}

.hero_content .hero_title {
  font-size: 60px;
  line-height: 1.2;
  color: #fff;
  margin-bottom: 20px;
}

.hero_content p {
  color: #fff;
  font-size: 18px;
  line-height: 1.7;
}

/* Mobile */
@media (max-width: 767px) {
  .hero_area {
    height: 500px;
  }
  .hero_content .hero_title {
    font-size: 36px;
  }
  .hero_content p {
    font-size: 14px;
  }
}



/*===========================
      03.FEATURES css 
===========================*/
.single_features i {
  font-size: 60px;
  line-height: 60px;
  color: #df5322;
  transition: all 0.3s ease-out 0s;
}

@media (max-width: 767px) {
  .single_features i {
    font-size: 40px;
    line-height: 45px;
  }
}

.single_features .features_title {
  color: #df5322;
  margin-top: 15px;
  font-size: 24px;
  font-weight: 600;
  transition: all 0.3s ease-out 0s;
}

@media (max-width: 767px) {
  .single_features .features_title {
    font-size: 24px;
  }
}

.single_features p {
  margin-top: 15px;
  padding: 0 14px 0 14px;

}

.single_features:hover i {
  color: #df5322;
}
/*===========================
    1. CONFIGURAZIONE GENERALE GALLERY
===========================*/

.portfolio_area {
  overflow: hidden;
  padding: 70px 0;
}

#gallery {
  width: 100%;
  overflow: hidden;
}

/* Stile comune per le immagini (Rapporto 4:5 nativo) */
.single_portfolio {
  position: relative;
  flex: 0 0 auto;
  width: 400px;
  height: 500px; /* Crop 4:5 perfetto */
  overflow: hidden;
}

.single_portfolio img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* --- Effetti Hover (Overlay e Titolo) --- */
.single_portfolio::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(8, 145, 178, 0.75);
  opacity: 0;
  transition: all 0.3s ease;
  z-index: 1;
}

.single_portfolio:hover::before {
  opacity: 1;
}

.single_portfolio .portfolio_content {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  transform: translateY(-50%);
  text-align: center;
  z-index: 2;
}

.single_portfolio .portfolio_content .portfolio_title {
  font-family: "Oswald", sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: #fff;
  margin-top: 25px;
  transform: translateY(100%);
  opacity: 0;
  transition: all 0.3s ease 0.2s;
}

.single_portfolio:hover .portfolio_content .portfolio_title {
  transform: translateY(0);
  opacity: 1;
}


/*===========================
    2. LE STRISCE (Wrapper e Animazioni Singole)
===========================*/

/* --- STRISCIA BASE (Se usi la classe generica) --- */
.portfolio_wrapper {
  display: flex;
  flex-wrap: nowrap !important;
  width: max-content;
  animation: infiniteScroll 80s linear infinite;
}
.portfolio_wrapper:hover {
  animation-play-state: paused;
}

@keyframes infiniteScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-400px * 12)); } /* Modifica il 12 in base al numero di foto */
}


/* --- STRISCIA 1: SFILATA (Scorre a sinistra - Regolata per essere Elegante/Lenta) --- */
.sfilata-wrapper {
  display: flex;
  flex-wrap: nowrap !important;
  width: max-content;
  animation: sfilataScrollLeft 100s linear infinite; /* Aumentato a 100s per renderla decisamente più lenta */
}
.sfilata-wrapper:hover {
  animation-play-state: paused;
}

@keyframes sfilataScrollLeft {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-400px * 12)); } /* Calcolo preciso sui 400px delle foto */
}


/* --- STRISCIA 2: MANICHINO (Scorre a destra - Ok) --- */
.manichino-wrapper {
  display: flex;
  flex-wrap: nowrap !important;
  width: max-content;
  animation: manichinoScrollRight 90s linear infinite;
}
.manichino-wrapper:hover {
  animation-play-state: paused;
}

@keyframes manichinoScrollRight {
  0% { transform: translateX(calc(-400px * 12)); } /* Parte già traslato */
  100% { transform: translateX(0); }              /* Torna a zero verso destra */
}


/*===========================
    3. RESPONSIVE (Adatta le animazioni alle nuove larghezze)
===========================*/

@media (max-width: 1199px) {
  .single_portfolio {
    width: 350px;
    height: 438px;
  }
  .single_portfolio .portfolio_content .portfolio_title { font-size: 20px; }

  /* Ricalcolo animazioni a 350px */
  @keyframes infiniteScroll { 100% { transform: translateX(calc(-350px * 12)); } }
  @keyframes sfilataScrollLeft { 100% { transform: translateX(calc(-350px * 12)); } }
  @keyframes manichinoScrollRight { 0% { transform: translateX(calc(-350px * 12)); } 100% { transform: translateX(0); } }
}

@media (max-width: 767px) {
  .single_portfolio {
    width: 300px;
    height: 375px;
  }
  .single_portfolio .portfolio_content .portfolio_title { font-size: 18px; }

  /* Ricalcolo animazioni a 300px */
  @keyframes infiniteScroll { 100% { transform: translateX(calc(-300px * 12)); } }
  @keyframes sfilataScrollLeft { 100% { transform: translateX(calc(-300px * 12)); } }
  @keyframes manichinoScrollRight { 0% { transform: translateX(calc(-300px * 12)); } 100% { transform: translateX(0); } }
}


/*===========================
    4. VARI / DIVISORI
===========================*/
.colore-divisore {
  width: 100%;
  padding: 40px 20px;
  text-align: center;
  color: #fff;
  letter-spacing: 2px;
  text-transform: uppercase;
}


/*===========================
    ABOUT css 
===========================*/
.about_area {
 background-color: #F9F9F9; 
  position: relative;
}

.about_image {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .about_image {
    width: 100%;
    height: 500px;
    position: relative;
  }
}

@media (max-width: 767px) {
  .about_image {
    width: 100%;
    height: 400px;
    position: relative;
  }
}

.about_image .image_content {
width: 280px;
    height: 100px;
    background-color: #3b9dee;
    display: table;
    text-align: center;
    position: relative;
    left: -140px;
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .about_image .image_content {
    width: 140px;
    height: 70px;
    left: -70px;
  }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .about_image .image_content {
    left: 0;
  }
}

@media (max-width: 767px) {
  .about_image .image_content {
    left: 0;
    width: 140px;
    height: 100px;
  }
}

.about_image .image_content .experience {
  font-size: 24px;
  color: #fff;
  font-weight: 500;
  display: table-cell;
  vertical-align: middle;
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .about_image .image_content .experience {
    font-size: 18px;
  }
}

@media (max-width: 767px) {
  .about_image .image_content .experience {
    font-size: 18px;
  }
}

.about_image .image_content .experience span {
  font-size: 44px;
  font-weight: 700;
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .about_image .image_content .experience span {
    font-size: 36px;
  }
}

@media (max-width: 767px) {
  .about_image .image_content .experience span {
    font-size: 36px;
  }
}

.about_content {
  padding-right: 50px;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .about_content {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .about_content {
    padding-right: 0;
  }
}

.about_content .main-btn {
  margin-top: 30px;
}

/*===========================
      06.PRICING css 
===========================*/
.pricing_area {
  background-color: #F9F9F9;
}

.single_pricing {
  background-color: #fff;
  padding: 60px 50px;
}

@media (max-width: 767px) {
  .single_pricing {
    padding: 40px 30px;
  }
}

.single_pricing .pricing_title {
  font-size: 26px;
  font-weight: 600;
}

@media (max-width: 767px) {
  .single_pricing .pricing_title {
    font-size: 20px;
  }
}

.single_pricing .price {
  color: #df5322;
  font-size: 44px;
  margin-top: 25px;
  font-weight: 700;
}

@media (max-width: 767px) {
  .single_pricing .price {
    font-size: 38px;
  }
}

.single_pricing .pricing_list li {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 300;
}

.single_pricing .out-btn {
    height: 45px;
    border: 1px solid #fff;
    line-height: 43px;
    text-align: center;
    padding: 0 25px;
    color: #fff;
    transition: all 0.3s ease-out 0s;
    margin-top: 30px;
}

.single_pricing .out-btn:hover {
  background-color: #df5322;
}

.single_pricing.active {
  background-color: #df5322;
}

.single_pricing.active .pricing_title {
  color: #fff;
}

.single_pricing.active .price {
  color: #fff;
}

.single_pricing.active .pricing_list li {
  color: #fff;
}

.single_pricing.active .out-btn {
  background-color: #fff;
  border-color: #fff;
}

/*===========================
        07.TEAM css 
===========================*/
.single_team {
  position: relative;
}

.single_team img {
  width: 100%;
}

.single_team .team_content {
  position: absolute;
  background-color: #fff;
  left: 0;
  bottom: 0;
  width: 85%;
  padding: 25px;
  padding-right: 60px;
}

.single_team .team_content .team_name a {
  font-size: 20px;
  font-weight: 500;
  color: #2B2A3D;
  transition: all 0.3s ease-out 0s;
}

.single_team .team_content .team_name a:hover {
  color: #df5322;
}

.single_team .team_content p {
  margin-top: 5px;
}

.single_team .team_content .social {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

.single_team .team_content .social li {
  margin: 3px 0;
}

.single_team .team_content .social li a {
  color: #5A5872;
  font-size: 16px;
  transition: all 0.3s ease-out 0s;
}

.single_team .team_content .social li a:hover {
  color: #df5322;
}


/*===========================
    TESTIMONIAL
===========================*/
.testimonial_area {
  position: relative;
}

.testimonial_area::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(8, 145, 178, 0.85);
}

.testimonial_active_wrapper {
  position: relative;
  padding-bottom: 60px;
}

.testimonial_active_wrapper .tns-nav {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
}

.testimonial_active_wrapper .tns-nav button {
  margin: 0 5px;
  width: 18px;
  height: 5px;
  border-radius: 50px;
  font-size: 0;
  border: 0;
  background-color: #ECECEC;
  transition: all 0.3s ease;
}

.testimonial_active_wrapper .tns-nav button.tns-nav-active {
  background-color: #fff;
}

.single_testimonial img {
  display: inline-block;
  border-radius: 50%;
}

.single_testimonial .author_name {
  font-size: 20px;
  font-weight: 600;
  color: #fff;
  margin-top: 25px;
}

.single_testimonial span {
  font-size: 14px;
  color: #fff;
}

.single_testimonial p {
  color: #fff;
  margin-top: 15px;
}

@media (max-width: 767px) {
  .single_testimonial img {
    width: 120px;
  }
}
/*===========================
    BLOG / NEWS
===========================*/
.single_blog .blog_image img {
  width: 100%;
}

.single_blog .blog_content {
  margin-top: 25px;
}

.single_blog .blog_content .blog_title {
  font-size: 24px;
  font-weight: 600;
  color: #2B2A3D;
  transition: all 0.3s ease;
}

.single_blog .blog_content .blog_title:hover {
  color: #0891b2;
}

.single_blog .blog_content p {
  margin-top: 15px;
}

@media (max-width: 767px) {
  .single_blog .blog_content .blog_title {
    font-size: 20px;
  }
}

/*===========================
    CONTACT
===========================*/
.contact_area {
  position: relative;
}

.contact_area::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(43, 42, 61, 0.9);
  z-index: -1;
}

/*===========================
    FOOTER
===========================*/
.footer_area {
 background-color: #f2eee6;
 color: #2B2A3D;
  padding: 10px 0;
}

.fixed_footer {
background-color: #0891b2;
}


.footer_wrapper {
  text-align: center;
}

.footer_social ul li {
  display: inline-block;
  margin: 0 14px;
}

.footer_social ul li a {
  font-size: 26px;
  color: rgba(255, 255, 255, 0.9);
  transition: all 0.3s ease;
}

.footer_social ul li a:hover {
  color: #fff;
}

@media (max-width: 767px) {
  .footer_social ul li a {
    font-size: 20px;
  }
}

/*===========================
    BACK TO TOP
===========================*/
.back-to-top {
  font-size: 20px;
  color: #fff;
  position: fixed;
  right: 20px;
  bottom: 10px;
  width: 40px;
  height: 40px;
  line-height: 40px;
  background-color: #0891b2;
  text-align: center;
  z-index: 9999;
  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
  display: none;
  transition: all 0.3s ease;
}

.back-to-top:hover {
  color: #fff;
  background-color: #0e7490;
}

/*===========================
 PALETTE ==================*/
.palette-section { background: var(--dark); padding: 1.5rem 2rem; }
.palette-label { font-family: 'Oswald', sans-serif; font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 1rem; }
.palette-row { display: flex; gap: 8px; }
.swatch { height: 36px; flex: 1; border-radius: 2px; }


/*===========================
 Avatar ==================*/

.avatar-icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #e6b720;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

.avatar-icon i {
  font-size: 50px;
  color: #fff;
}

 
.rassegna_area {
  background-color: #faf9f6;
}
 
.rassegna_slider_outer {
  position: relative;
  overflow: hidden;
  padding: 0 10px;
}
 
.rassegna_slider {
  display: flex;
  gap: 24px;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
 
.rassegna_card {
  flex: 0 0 calc(33.333% - 16px);
  background: #fff;
  border: 1px solid #e8e4dc;
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
 
.rassegna_card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  transform: translateY(-4px);
}
 
.rassegna_card_link {
  display: block;
  color: inherit;
  text-decoration: none;
}
 
.rassegna_card_image {
  position: relative;
  height: 220px;
  overflow: hidden;
  background: #f0ece4;
}
 
.rassegna_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.4s ease;
}
 
.rassegna_card:hover .rassegna_card_image img {
  transform: scale(1.04);
}
 
.rassegna_card_image--text {
  background: linear-gradient(135deg, #2B2A3D 0%, #0891b2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
 
.rassegna_logo_placeholder {
  text-align: center;
}
 
.rassegna_magazine_name {
  font-family: "Playfair Display", serif;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.05em;
  opacity: 0.9;
}
 
.rassegna_overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 145, 178, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
 
.rassegna_card:hover .rassegna_overlay {
  opacity: 1;
}
 
.rassegna_readmore {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
 
.rassegna_card_body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
 
.rassegna_source {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: #0891b2;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
 
.rassegna_title {
  font-family: "Playfair Display", serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #2B2A3D !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}
 
.rassegna_date {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  color: #999;
}
 
.rassegna_nav {
  position: absolute;
  top: 50%;
  transform: translateY(-60%);
  background: #fff;
  border: 1px solid #e8e4dc;
  width: 40px;
  height: 40px;
  font-size: 18px;
  cursor: pointer;
  color: #2B2A3D;
  transition: all 0.2s ease;
  z-index: 10;
  display: none;
}
 
.rassegna_nav:hover {
  background: #0891b2;
  color: #fff;
  border-color: #0891b2;
}
 
.rassegna_nav--prev { left: 0; }
.rassegna_nav--next { right: 0; }
 
.rassegna_dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
}
 
.rassegna_dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  transition: background 0.3s ease;
}
 
.rassegna_dot.active {
  background: #0891b2;
}
 
.rassegna_lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.88);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
}
 
.rassegna_lightbox img {
  max-height: 90vh;
  max-width: 90vw;
  object-fit: contain;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
 
.rassegna_lightbox_close {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 36px;
  color: #fff;
  cursor: pointer;
  line-height: 1;
}
 
@media (max-width: 991px) {
  .rassegna_card {
    flex: 0 0 calc(50% - 12px);
  }
  .rassegna_nav {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
 
@media (max-width: 600px) {
  .rassegna_card {
    flex: 0 0 85vw;
  }
}
 


/* cataloghi */ 
 
.catalogo_card {
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  background: #fff;
  border: 1px solid #e8e4dc;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
 
.catalogo_card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
  transform: translateY(-4px);
}
 
.catalogo_cover {
  position: relative;
  overflow: hidden;
}
 
.catalogo_cover img {
  width: 100%;
  display: block;
  transition: transform 0.4s ease;
}
 
.catalogo_card:hover .catalogo_cover img {
  transform: scale(1.04);
}
 
.catalogo_overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 145, 178, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
 
.catalogo_card:hover .catalogo_overlay {
  opacity: 1;
}
 
.catalogo_btn_sfoglia {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 2px solid #fff;
  padding: 10px 24px;
  transition: background 0.2s ease;
}
 
.catalogo_btn_sfoglia:hover {
  background: #fff;
  color: #0891b2;
}
 
.catalogo_body {
  padding: 16px 20px 20px;
  text-align: center;
}
 
.catalogo_body h5 {
  font-family: "Playfair Display", serif;
  font-size: 16px;
  color: #2B2A3D;
  margin-bottom: 8px;
}


.cookie_banner {
  display: none;
  position: fixed;
  bottom: 70px; /* sopra il fixed footer */
  left: 0;
  width: 100%;
  background: #2B2A3D;
  z-index: 9990;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}
 
.cookie_banner_inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
 
.cookie_text {
  flex: 1;
  min-width: 260px;
}
 
.cookie_text strong {
  font-family: "Playfair Display", serif;
  font-size: 16px;
  color: #fff;
  display: block;
  margin-bottom: 6px;
}
 
.cookie_text p {
  color: rgba(255,255,255,0.85);
  font-size: 12px;
  line-height: 1.6;
  margin-bottom: 4px;
}
 
.cookie_text p a {
  color: #0891b2;
  text-decoration: underline;
}
 
.cookie_text_en {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 4px;
  margin-top: 4px;
}
 
.cookie_actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
 
.mappa_bloccata {
  width: 100%;
  height: 450px;
  background: #f0ece4;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e8e4dc;
}
 
.mappa_bloccata_inner {
  text-align: center;
  padding: 20px;
}
 
.mappa_bloccata_inner p {
  margin: 12px 0 6px;
  color: #2B2A3D;
}
 
@media (max-width: 767px) {
  .cookie_banner_inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .cookie_actions {
    width: 100%;
  }
  .cookie_actions .main-btn {
    width: 100%;
    text-align: center;
  }
}
 


/* taglie */ 
 
.taglie_ticker {
  width: 100%;
  background-color: #df5322;
  overflow: hidden;
  padding: 12px 0;
  border-top: 2px solid rgba(255,255,255,0.15);
  border-bottom: 2px solid rgba(255,255,255,0.15);
}
 
.taglie_ticker_track {
  display: flex;
  white-space: nowrap;
  animation: tickerScroll 22s linear infinite;
}
 
.taglie_ticker_track:hover {
  animation-play-state: paused;
}
 
.taglie_ticker_content {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding-right: 40px;
  flex-shrink: 0;
}
 
.taglie_label {
  font-family: "Playfair Display", serif;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.75);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
 
.taglie_sizes {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
}
 
.taglie_sep {
  font-size: 12px;
  color: rgba(255,255,255,0.4);
  padding: 0 8px;
}
 
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-33.333%); }
}




/* ============================================================
  CSS — SOSTITUISCE i blocchi .rassegna_* in style.css
       (puoi tenere .rassegna_lightbox e .rassegna_lightbox_close)
  ============================================================ */
 
.rassegna_area {
  overflow: hidden;
}
 
.peek_slider_outer {
  position: relative;
  overflow: hidden;
  padding: 10px 0 20px;
}
 
.peek_slider_track {
  display: flex;
  gap: 24px;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
 
.peek_card {
  flex: 0 0 60%;
  max-width: 480px;
  background: #fff;
  border: 1px solid #e8e4dc;
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  overflow: hidden;
  opacity: 0.45;
  transform: scale(0.96);
  transition: opacity 0.4s ease, transform 0.4s ease, box-shadow 0.3s ease;
}
 
.peek_card--active {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
}
 
.peek_card_link {
  display: block;
  color: inherit;
  text-decoration: none;
}
 
.peek_card_image {
  position: relative;
  height: 220px;
  overflow: hidden;
  background: #f0ece4;
}
 
.peek_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.4s ease;
}
 
.peek_card--active .peek_card_image img {
  transform: scale(1.03);
}
 
.peek_card_image--magazine {
  background: linear-gradient(135deg, #2B2A3D 0%, #0891b2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
 
.peek_mag_name {
  font-family: "Playfair Display", serif;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  opacity: 0.9;
}
 
.peek_overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 145, 178, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
 
.peek_card--active:hover .peek_overlay {
  opacity: 1;
}
 
.peek_overlay span {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
 
.peek_card_body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
 
.peek_source {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: #0891b2;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
 
.peek_title {
  font-family: "Playfair Display", serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #2B2A3D !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}
 
.peek_date {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  color: #999;
}
 
.peek_nav {
  position: absolute;
  top: 40%;
  transform: translateY(-50%);
  background: #fff;
  border: 1px solid #e8e4dc;
  width: 40px;
  height: 40px;
  font-size: 18px;
  cursor: pointer;
  color: #2B2A3D;
  transition: all 0.2s ease;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
 
.peek_nav:hover {
  background: #0891b2;
  color: #fff;
  border-color: #0891b2;
}
 
.peek_nav--prev { left: 4px; }
.peek_nav--next { right: 4px; }
 
.peek_dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
}
 
.peek_dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  transition: background 0.3s ease;
}
 
.peek_dot.active {
  background: #0891b2;
}
 
@media (max-width: 767px) {
  .peek_card {
    flex: 0 0 78%;
  }
}
 

/* Focus totale sul costume, via le scritte del contest e i piedi */
.sfilata-palette .look-crop img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%; /* Stringe l'inquadratura sul capo */
    filter: saturate(112%) contrast(105%); /* Esalta la palette della cliente senza stravolgerla */
}

/* Le tessere di puro colore che danno ritmo allo scorrimento */
.portfolio_color_block {
    height: auto;
    flex-shrink: 0;
}