/* IMAGE SLIDES */ .img-slider { position: relative; overflow: hidden; width: 100%; aspect-ratio: 4/3; background: linear-gradient(90deg, #e8e8e8 25%, #d0d0d0 50%, #e8e8e8 75%); background-size: 200% 100%; animation: skeleton 1.4s ease infinite; border-top-left-radius: inherit; border-top-right-radius: inherit; } .horizonal-slider { height: 100%; aspect-ratio: auto !important; } @keyframes skeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .img-slider.loaded { animation: none; background: none; } .img-slider .slide-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.4s ease, transform 0.4s ease; transform: scale(1); } .img-slider:hover .slide-img.active { transform: scale(1.04); } .img-slider .slide-img.active { opacity: 1; } .img-slider:hover .slider-prev, .img-slider:hover .slider-next { opacity: 1; } .slider-prev, .slider-next { position: absolute; top: 50%; transform: translateY(-50%); background: var(--color-black); color: var(--color-white); border: none; padding: 6px 10px; cursor: pointer; font-size: 1.4rem; z-index: 10; border-radius: 4px; line-height: 1; opacity: 0; transition: opacity 0.25s ease; } .slider-prev { left: 6px; } .slider-next { right: 6px; } .slider-dots { position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%); display: flex; gap: 5px; z-index: 10; } .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-gray-500); } .dot.active { background: var(--color-white); } .img-slider-options { position: absolute; right: 5px; top: 5px; } .img-slider-option { background: var(--color-white); color: var(--color-gray-700); border-radius: var(--radius-full); aspect-ratio: 1; border: var(--border-thin); right: 10px; top: 10px; display: flex; width: 30px; height: 30px; } .img-slider-option svg { fill: var(--color-gray-700); } .img-slider-option.selected svg { fill: var(--color-white); } .img-slider-option.selected { background: var(--color-primary); color: var(--color-white); } /* LOCATION SLIDE*/ .location-slide { height: 200px; aspect-ratio: 1; display: flex; flex-direction: column; justify-content: space-between; color: var(--color-white); border-radius: var(--radius-lg); font-size: .92rem; font-weight: bold; background-color: var(--color-gray-500); background-position: center; background-size: cover; } .location-slide p { padding: 10px; margin: 0px; border-radius: inherit; } .location-slide:hover { box-shadow: 0 1px 3px 2px rgba(0, 0, 0, .2); transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out; scale: 1.02; } .location-slide-name { background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%); font-weight: 600; } .location-slide-distance { background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%); text-align: end; font-size: 15px; } /* HOTEL SLIDE */ .hotel-slide { position: relative; background: var(--color-bg); color: var(--color-black); border: var(--border-thin); border-radius: var(--radius-lg); width: 16.5rem; cursor: pointer; } .hotel-slide-info { padding: 0px 10px 10px 10px; text-align: start; display: flex; flex-direction: column; justify-content: space-between; background: var(--color-bg); border-bottom-left-radius: inherit; border-bottom-right-radius: inherit; } .hotel-slide-info h3 { margin: 0px; font-size: .92rem; font-weight: 800; line-height: 1.3; } .hotels-slide::-webkit-scrollbar { display: none; } .hotel-slide:hover { scale: 1.02; box-shadow: var(--shadow-sm); transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out; } .hotel-slide-horizontal:hover { scale: 1.02; box-shadow: var(--shadow-sm); transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out; } .slide-category { font-weight: bold; color: var(--color-gray-700); font-size: 14px; } .slide-category p { margin: 8px 0px; text-transform: uppercase; } .slide-address { color: var(--color-black); font-size: 14px; margin-top: 8px; margin-bottom: 8px; display: flex; flex-direction: row; gap: 3px; } .slide-address span { color: var(--color-primary-dark); font-weight: bolder; } p.slide-location { gap: 10px; display: flex; flex-wrap: wrap; } .slide-distance { background: var(--color-primary); padding: var(--padding-xs); border-radius: var(--radius-sm); color: var(--color-white); } /* PROPERTY SLIDE HORIZONTAL */ .property_horizontal { position: relative; display: grid; gap: 10px; border: var(--border-thin); border-radius: var(--radius-md); grid-template-columns: 272px 2fr 1fr; box-shadow: var(--shadow-sm); min-height: 280px; } .property_horizontal_gallery { width: 100%; height: 100%; position: relative; min-height: 250px; } .property_horizontal_info { padding: var(--padding-sm); } .property_horizontal_gallery_image { border-radius: 5px; width: 100%; height: 100%; object-fit: cover; } .property_horizontal_options { padding: 10px; display: flex; flex-direction: column; gap: 15px; justify-content: end; } .selected svg{ fill: var(--color-primary-dark); } /* SCORE */ .puntuation { display: flex; flex-direction: row; align-items: center; align-items: center; gap: 10px; background-color: var(--color-black); color: var(--color-white); border-radius: var(--radius-sm); width: max-content; position: absolute; top: 10px; left: 10px; z-index: 90; } .puntuation_num { margin: 0px !important; display: flex; justify-content: center; align-items: center; padding: var(--padding-xs); font-weight: bold; border-top-left-radius: inherit; border-bottom-left-radius: inherit; color: var(--color-white); width: max-content; } .puntuation_text { color: var(--color-white); background: var(--color-black); font-weight: 700; margin: 0px !important; display: flex; align-items: center; padding-right: 7px; font-size: .8rem; border-top-right-radius: var(--radius-sm); border-bottom-right-radius: var(--radius-sm); } .puntuation-good { background-color: var(--color-green); } .puntuation-mid { background-color: var(--color-amber); } .puntuation-bad { background-color: var(--color-red); } /* TRAVEL GUIDE */ .travel-guide { display: flex; gap: 30px; } .travel-guide:hover { transition: transform 0.3s ease; transform: scale(1.01); } .travel-guide-img { width: 20%; object-fit: cover; rotate: -10deg; border: solid 10px var(--button-color); transition: transform 0.3s ease; cursor: grabbing; } .travel-guide-img:hover { transform: scale(1.2) rotate(10deg); } .travel-guide-text { color: var(--subtitle-color); font-weight: 500; } .travel-guide-country { color: var(--color-primary-dark); } .travel-title { font-weight: bold; font-size: 25px; margin: 0px; color: var(--color-black); } /* FAQ */ #faq { margin: auto; border-radius: var(-radius-md); } #faq h2 { font-size: 28px; line-height: 1.3; margin-bottom: 28px; font-weight: 800; color: var(--color-black); } .faq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; } .faq-item { border: 1px solid var(--color-gray-700); border-radius: 14px; background: var(--color-white); overflow: hidden; transition: all 0.25s ease; } .faq-item:hover { border-color: var(--secondary-color); box-shadow: var(--shadow-md); transform: translateY(-1px); } .faq-question { position: relative; margin: 0; padding: 20px 55px 20px 20px; font-size: 16px; line-height: 1.5; font-weight: 700; color: #111827; cursor: pointer; background: none; border: none; } .faq-question::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--color-primary); color: var(--color-white); display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; transition: .3s; } .faq-answer { display: none; margin: 0; padding: 0 20px 20px 20px; font-size: 15px; line-height: 1.7; color: var(-color-gray-700); border: none; background: none; } .faq-item.active .faq-answer { display: block; } .faq-item.active .faq-question::after { content: "-"; } /* FACILITIES */ .facilities { line-height: 0.2; gap: .35rem; display: flex; flex-direction: row; flex-wrap: wrap; max-width: 800px; } .facility { display: flex; gap: 10px; flex-direction: row; align-items: center; background-color: var(--color-white); padding: var(--padding-sm); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); font-size: .78rem; border: var(--border-thin); } .facility_text { color: var(--color-gray-900); font-weight: 600; margin: 0px; } .facility_icon { width: 20px; height: 20px; } /* MULTI SLIDES */ .multi-slide-options { line-height: 0.2; gap: 4px; display: flex; flex-direction: row; flex-wrap: wrap; position: relative; margin-bottom: 10px; max-width: 800px; } .multi-slide-option { padding: var(--padding-sm); border-radius: var(--radius-xl); cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 7px; font-weight: 500; font-size: .78rem; box-shadow: var(--shadow-sm); padding-top: 20px; padding-bottom: 20px; color: var(--color-black); background-color: var(--color-white); border: var(--border-thin); } .multi-slide-option:hover { background-color: var(--color-white); } .multi-slide-option.selected { background-color: var(--color-primary-light); border: solid 1px var(--color-primary-dark); color: var(--color-primary-dark); font-weight: 600; } /* HORIZONTAL SLIDE */ .hotel-slide-horizontal { position: relative; display: flex; flex-direction: row; color: var(--color-black); border: var(--border-thin); border-radius: var(--radius-sm); } .hotel-slide-horizontal .slide-stars { top: auto !important; bottom: 7px !important; } .hotel-slide-info-horizontal { padding: 10px; text-align: start; display: flex; flex-direction: column; justify-content: space-between; } .hotel-slide-info-horizontal h3 { margin: 0px; line-height: 24px; font-size: 16px; } /* HOTEL ROOMS */ .hotel_room_image { width: 100%; border-top-left-radius: inherit; border-top-right-radius: inherit; object-fit: cover; max-height: 150px; } .room_beds { display: flex; flex-direction: column; gap: 5px; } .room_size { background-color: var(--color-primary); color: var(--color-white); padding: var(--padding-sm); border-radius: var(--radius-lg); width: max-content; font-weight: 500; display: flex; align-items: center; text-align: center; } .opinion { display: flex; gap: 10px; align-items: center; font-size: 1rem; font-style: italic; } .opinion p { margin: 0px; } .general_opinions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; } /* TRAVEL TIPS*/ .tip-call { display: flex; gap: 10px; align-items: center; font-size: 1.2rem; font-weight: 500; color: var(--color-gray-700); } .travel-tip { background-color: white; padding: 10px; margin: 10px 0px; position: relative; } .travel-tip-name { display: flex; align-items: center; gap: 15px; } .travel-tip-name span { padding: 20px; border-radius: 50px; width: 15px; height: 15px; font-weight: bold; font-size: 25px; display: flex; justify-content: center; align-items: center; color: white; } .travel-tip-name p { font-weight: bold; } .travel-tip-content { font-style: italic; display: flex; gap: 10px; align-items: center; } .travel-tip-lang { display: flex; align-items: center; gap: 10px; font-weight: 300; color: #424242; } @media only screen and (max-width: 1000px) { .location-slide { height: 150px; } .travel-guide { flex-direction: column; } .travel-guide img { align-self: center; width: 80%; rotate: -5deg; } .travel-guide-img:hover { transform: scale(1.1) rotate(7deg); } .faq-grid { grid-template-columns: 1fr; } .facility_icon { width: 15px; height: 15px; } .travel-tip-name span { padding: 15px; border-radius: 50px; width: 10px; height: 10px; font-size: 15px; } } @media only screen and (max-width: 700px) { .puntuation { gap: 4px; top: 5px; left: 4px; } .puntuation_num { padding: var(--padding-sm); } .property_horizontal { grid-template-columns: none; min-height: auto; } } /* =================================================================== COMPONENTI CONDIVISI (mappa + luoghi vicini, card tour/hotel) Regole con specificita' alta per vincere sugli