/*
Theme Name: Ripamonti99
Author: Neiko srl
Author URI: http://www.neiko.it/
Description: Ripamonti99 - 2026
Version: 1.0
License: GNU General Public License v2 or later
*/

@font-face {
  font-family: 'Druk';
  src: url('/wp-content/themes/ripamonti99/fonts/DrukCond-Super.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/*  FONTS e COLORI */
:root {
	
	--primary: #617860; 
	--primary-light: #7AA079;
	--primary-dark: #394441;
	--dark: #2E3835;
	--light: #F9FFEB; 
	
	--font-family-title: 'Druk', Arial, sans-serif;
	--font-family-text: "Roboto", sans-serif;
	--font-family-mono: "Roboto Mono", monospace;
	--regular: 400; /* Light */
	--medium: 500; /* Medium */
	--bold: 700;
	
	--500: clamp(10rem, 26.042vw, 31.250rem);
	--155: clamp(5.000rem, 8.073vw, 9.688rem);
	--120: clamp(3.700rem, 6.250vw, 7.500rem);
	--100: clamp(1.875rem, 5.208vw, 6.250rem);
	--60: clamp(2.250rem, 3.125vw, 3.750rem);
	--40: clamp(2.000rem, 2.083vw, 2.500rem);
	--24: clamp(1.250rem, 1.250vw, 1.500rem);
	--22: clamp(1.250rem, 1.146vw, 1.375rem);
	--20: clamp(1.125rem, 1.042vw, 1.250rem);
	--18: clamp(1.000rem, 0.938vw, 1.125rem);
	--12: clamp(0.500rem, 0.625vw, 0.750rem);
	
	--transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);;
	
	
}

/* GENERAL */
html,body { 
	margin: 0;
	padding: 0;
	background-color: var(--light);
	color:var(--primary-dark);
	font-family: var(--font-family-text);
	font-weight: var(--font-weight-regular);
	font-size: 16px !important;
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-font-smoothing:antialiased;
	-o-font-smoothing:antialiased;
}

@media (min-width: 1400px){ 
	html,body {
		font-size: 18px !important;
	}
}

.container-fluid {
	padding-left: var(--100);
	padding-right: var(--100);
}


img,a img {
	border:none!important;
}

::-moz-selection {
	background:none repeat scroll 0 0 #FFF;
	color:#000;
}

* {
	outline:0!important;
}

b,strong,.bold { 
	font-weight:var(--bold);
}

a,a:visited { 
	outline-style: none;
	text-decoration: none;
	color: var(--light);
}

a:hover { 
	cursor: pointer !important;
	color: inherit;
	text-decoration: none;
}

/* TYPO */

.big{
	font-size: 1.1rem;
}
.small{
	font-size: 0.9rem;
}

h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{ 
	font-family: var(--font-family-title);
	margin: 0;
}

h1,.h1 {
	font-size: var(--155);
	line-height: 80%;
	text-transform: uppercase;
}

h2,.h2 {
	font-size: var(--120);
	line-height: 100%;
	text-transform: uppercase;
}

h3,.h3 {
	font-size: var(--60);
	line-height: 100%;
	text-transform: uppercase;
}

h4,.h4 {
	font-size: var(--24);
	font-family: var(--font-family-mono);
	font-weight: 500;
	text-transform: uppercase;
}

h5,.h5 {
	font-size: var(--24);
	font-family: var(--font-family-text);
	font-weight: 400;
	text-transform: uppercase;
}

p,.p {
	font-size: var(--18);
	font-family: var(--font-family-text);
	font-weight: 400;
	margin: 0;
}

.label-small {
	font-size: var(--20);
	font-family: var(--font-family-mono);
	font-weight: 300;
	text-transform: uppercase;
}

.table-text {
	font-size: var(--22);
	font-family: var(--font-family-text);
	font-weight: 500;
	text-transform: none;
}

.title-icon {
	font-size: var(--40);
	font-family: var(--font-family-text);
	font-weight: 700;
	text-transform: uppercase;
}

.specifiche-title {
	font-size: var(--20);
	font-family: var(--font-family-mono);
	font-weight: 400;
	text-transform: uppercase;
}

/* PADDING E MARGIN */

.pl20 {
	padding-left: clamp(1.125rem, 1.042vw, 1.250rem); 
}

.pt15 {
	padding-top: clamp(0.625rem, 0.781vw, 0.938rem);
}

.pt20 {
	padding-top: clamp(0.938rem, 1.042vw, 1.250rem);
}

.pt30 {
	padding-top: clamp(1.250rem, 1.563vw, 1.875rem);
}

.pt50 {
	padding-top: clamp(2.000rem, 2.604vw, 3.125rem);
}

.pt70 {
	padding-top: clamp(2rem, 3.646vw, 4.375rem);
}

.pt100 {
	padding-top: clamp(3.5rem, 5.208vw, 6.250rem);
}

.py150 {
	padding-top: clamp(6.250rem, 7.813vw, 9.375rem);
	padding-bottom: clamp(6.250rem, 7.813vw, 9.375rem);
}

.py100 {
	padding-top: clamp(3.5rem, 5.208vw, 6.250rem);
	padding-bottom: clamp(3.5rem, 5.208vw, 6.250rem);
}

.pb15 {
	padding-bottom: clamp(0.625rem, 0.781vw, 0.938rem);
}

.pb30 {
	padding-bottom: clamp(1.250rem, 1.563vw, 1.875rem);
}

.pb50 {
	padding-bottom: clamp(1.875rem, 2.604vw, 3.125rem);
}

.pb70 {
	padding-bottom: clamp(2rem, 3.646vw, 4.375rem);
}

.pb100 {
	padding-bottom: clamp(3.5rem, 5.208vw, 6.250rem);
}

.mb30 {
	margin-bottom: clamp(1.250rem, 1.563vw, 1.875rem) !important; 
}

.mt50 {
	margin-top: clamp(1.875rem, 2.604vw, 3.125rem) !important;
}

.my30 {
	margin-top: clamp(1.250rem, 1.563vw, 1.875rem);
	margin-bottom: clamp(1.250rem, 1.563vw, 1.875rem);
}

.my50 {
	margin-top: clamp(1.875rem, 2.604vw, 3.125rem) !important;
	margin-bottom: clamp(1.875rem, 2.604vw, 3.125rem) !important;
}

/* ANIMAZIONE TESTI */

.animated-text {
	overflow: hidden;
	display: block;
}

.animated-text span {
	display: inline-block;
	transform: translateY(100%);
	opacity: 0;
	transition: transform 1.5s cubic-bezier(0.08,0.82,0.17,1), opacity 1s cubic-bezier(0.08,0.82,0.17,1);
}

.animated-text.visible span {
	transform: translateY(0);
	opacity: 1;
}

/* LOADER */

#loader {
	position: fixed;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.8);
	z-index: 9999; 
	display: flex;
	justify-content: center;
	align-items: center;
}

.loader-inner {
	border: 8px solid #fff; /* Colore di sfondo del loader */
	border-top: 8px solid #000; /* Colore del loader */
	border-radius: 50%;
	width: 50px;
	height: 50px;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* COLORI */

.light {
	color: var(--light);
}

.green {
	color: var(--primary);
}

.light-green {
	color: var(--primary-light);
}

.dark-green-bg {
	background-color: var(--primary-dark);
}

.light-green-bg {
	background-color: var(--primary-light);
}

.green-bg {
	background-color: var(--primary);
}

.light-bg {
	background-color: var(--light) !important;
}

/* BUTTONS */

.primary-btn {
	width: fit-content;
	height: auto;
	font-size: var(--20);
	font-family: var(--font-family-text);
	color: var(--light);
	background-color: var(--primary);
	padding: var(--12) var(--18);
	border-radius: var(--12);
	text-transform: uppercase;
	transition: var(--transition);
}

.primary-btn:hover {
	color: var(--light);
	background-color: var(--primary-dark);
}

/* HEADER */

#header {
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	padding: 0;
	margin: 0;
	transition: var(--transition);
}

.navbar {
	padding: 0;
}

.navbar .container-fluid {
	padding-top: var(--40);
	padding-bottom: var(--40);
	transition: var(--transition);
}

.logo-main {
	transition: var(--transition);
}

/* Stato compatto */
#header.scrolled {
	background-color: var(--primary);
	border-bottom: 2px solid var(--primary-dark);
}

#header.scrolled .container-fluid {
	padding-top: var(--20);
	padding-bottom: var(--20);
}

#header.scrolled .logo-main {
	max-height: 80px;
	transition: var(--transition);
}

.custom-menu {
	display: flex;
	align-items: center;
}

.custom-menu ul {
	display: flex;
	flex-direction: row;
	gap: var(--40);
	list-style: none;
	margin: 0;
	padding: 0;
}

.custom-menu li {
	align-content: center;
}

.custom-menu li a {
	color: var(--light);
	font-family: var(--font-family-text);
	font-size: var(--20);
	text-decoration: none;
	transition: var(--transition);
}

.custom-menu li a:hover {
	color: var(--primary);
}

#header.scrolled .custom-menu li a:hover {
	color: var(--primary-dark);
}

.custom-menu li a #text {
	z-index: 10;
}


.custom-toggle {
	display: none;
}


@media (max-width: 767.99px) {
	
	#header .logo-main {
		max-height: 100px;
		transition: var(--transition);
	}
	
	#header.scrolled .logo-main {
		max-width: 80px;
		transition: var(--transition);
	}
	
	.custom-menu {
		display: flex;
	}
	
	.custom-toggle {
		display: flex !important;
		z-index: 101;
	}
	
	.custom-menu {
		position: fixed;
		top: 0;
		right: -101%;
		width: 101%;
		height: 100vh;
		background-color: var(--primary);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		transition: 0.3s cubic-bezier(0.22, 1, 0.36, 1);
		z-index: 100;
	}
	
	.custom-menu.open {
		right: 0;
	}
	
	.custom-menu ul {
		flex-direction: column;
		gap: var(--40);
	}
	
	.custom-menu ul li a {
		font-size: var(--60);
	}
	
	.custom-toggle {
		display: flex;
		width: 32px;
		height: 22px;
		position: relative;
		background: none;
		border: none;
		cursor: pointer;
		display: none;
		flex-direction: column;
		justify-content: space-between;
		padding: 0;
		z-index: 101;
	}
	
	.custom-toggle .line {
		display: block;
		height: 2px;
		width: 100%;
		background-color: var(--light);
		border-radius: 2px;
		transition: 0.4s cubic-bezier(0.22, 1, 0.36, 1);
		transform-origin: center;
	}
	
	/* Stato aperto (diventa X) */
	.custom-toggle.open .line-1 {
		transform: rotate(45deg) translate(6px, 7px);
	}
	
	.custom-toggle.open .line-2 {
		opacity: 0;
	}
	
	.custom-toggle.open .line-3 {
		transform: rotate(-45deg) translate(6px, -7px);
	}	
	
}

@media (max-width: 575.99px) {
	.custom-menu ul li a {
		font-size: var(--24);
	}
	
	#header .logo-main {
		max-height: 80px;
		transition: var(--transition);
	}
	
	#header.scrolled .logo-main {
		max-width: 50px;
		transition: var(--transition);
	}
}



/* WPML */

.wpml-ls-legacy-list-horizontal {
	padding: 0;
}

.wpml-ls-link {
	padding: 0;
}


/* FOOTER */

.logo-footer {
	width: 100%;
	height: auto;
}

.container-contact-footer {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.contact-footer {
	font-family: var(--font-family-text);
	font-size: var(--20);
	width: fit-content;
	color: var(--light);
	margin: 0;
	transition: var(--transition);
}

.contact-footer:hover {
	color: var(--primary-light);
}

.contact-span {
	font-family: var(--font-family-text);
	font-size: var(--20);
	width: fit-content;
	color: var(--light);
	margin: 0;
	transition: var(--transition);
}

.border-light-primary {
	width: 100%;
	height: 1px;
	margin-top: 15px;
	background-color: var(--primary-light) !important;
	border: none !important;
}

/* PAGINE */

/* HERO */

.container-hero {
	width: 100%;
	height: 100vh;
	position: relative;
	margin: 0;
	padding: 0;
}

.wrapper-hero {
	width: fit-content;
	position: absolute;
	left: var(--100);
	bottom: var(--100);
	z-index: 2;
}

.container-hero video {
	width: 100%;
	height: 100vh;
	object-fit: cover;
}

.overlay {
	width: 100%;
	height: 100%;
	background: rgba(46, 56, 53, 0.4);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	pointer-events: none;
}

.sub {
	font-size: var(--20);
	font-family: var(--font-family-text);
	font-weight: 400;
}

.border {
	width: 100%;
	height: 1px;
	margin-top: 15px;
	background-color: var(--primary) !important;
	border: none !important;
}

@media (max-width: 767.99px) {
	.container-hero {
		width: 100%;
		height: 60vh;
		position: relative;
		margin: 0;
		padding: 0;
	}
	
	.container-hero video {
		width: 100%;
		height: 60vh;
		object-fit: cover;
	}
	
	.border {
		margin-top: 10px;
	}
}

/* VIRTUAL TOUR */

.container-virtual {
	z-index: 1;
}

.wrapper-virtual {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: absolute;
	width: 100%;
	z-index: 2;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.r99-small {
	position: absolute;
	right: 0;
	bottom: 0;
	transform: translate(50%, 50%);
	z-index: 2;
}

.r99-big {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 0;
	height: var(--500);
}

@media (max-width: 767.99px) {
	.r99-small {
		display: none;
	}
	
	.r99-big {
		position: absolute;
		right: 0;
		bottom: 0;
		z-index: 0;
	}
}

/* SEZIONE PROGETTO */

.carousel-img {
	border: 2px solid var(--light) !important;
	border-radius: 50%;
}

.infinite-carousel {
  will-change: transform;
}

/* SPAZI */

.border-light {
	width: 100%;
	height: 1px;
	margin-top: 15px;
	background-color: var(--light) !important;
	border: none !important;
}

/* LOCATION */

/* WRAPPER SCROLL MOBILE */
.table-scroll-mobile {
	width: 100%;
}


.table {
	background-color: var(--light) !important;
}

.table>:not(caption)>*>* {
	padding: .5rem .5rem;
	color: var(--primary) !important;
	background-color: var(--light) !important;
	border-bottom-width: 1px !important;
	border-bottom: 1px solid var(--primary) !important;
	box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
}

@media (max-width: 575.99px) {

  /* wrapper che esce dal container */
  .table-full-bleed {
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	width: 100vw;
  }

  /* scroll */
  .table-scroll-mobile {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	padding: 0 20px; /* respiro visivo */
  }

  /* forza scroll */
  .table {
	width: 150%;
  }
}


.feature-item {
  flex: 0 0 20%;
  max-width: 22%;
  min-width: 16.66%;
}


@media (max-width: 1200px) {
  .feature-item {
	flex: 0 0 25%;
  }
}




@media (max-width: 767.99px) {
	.feature-item {
		flex: 0 0 50%;
		max-width: 50%;
		min-width: 10%;
	  }
	  
	  .feature-item .icon {
		  width: var(--120);
	  }
}

/* SUPERFICI */

.table-superfici {
	width: 100%;
	overflow: scroll;
}

.table-superfici>:not(caption)>*>* {
	table-layout: fixed;
	padding: .8rem .5rem;
	color: var(--primary) !important;
	background-color: var(--light) !important;
	border-bottom-width: 1px !important;
	border-bottom: 1px solid var(--primary) !important;
	box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
}

.table-superfici td:last-child,
.table-superfici th:last-child {
  border-bottom: none !important;
}

.table-superfici > tbody > tr:last-child > td p {
  font-weight: 700 !important;
}

.table-piano>:not(caption)>*>* {
	width: 100%;
	padding: .5rem .5rem;
	color: var(--dark) !important;
	background-color: var(--primary-light) !important;
	border-bottom-width: 1px !important;
	border-bottom: 1px solid var(--primary) !important;
	box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
}

.table-piano {
  width: 100%;
  table-layout: fixed;
}

.table-piano td:first-child {
  width: 60%;
}

.table-piano td:last-child {
  width: 40%;
  white-space: nowrap;
}

.fancybox__slide {
	padding: 30px 100px !important;
}

.fancybox__content>.carousel__button.is-close
 {
	position: absolute;
	top: 20px;
	right: 20px;
	color: var(--dark);
	box-shadow: none;
}

@media (max-width: 575.99px) {
	.icon-sost {
		width: var(--500);
	}
	
	.fancybox__slide {
		padding: var(--40) var(--100) !important;
	}
	
	.fancybox__content>.carousel__button.is-close
	 {
		position: absolute;
		top: 20px;
		right: 20px;
		color: var(--dark);
		box-shadow: none;
	}
	
	.fancybox__content {
		padding: var(--20) 0;
	}
 }


/* GALLERIA */

.gallery-slider {
  overflow: hidden;
}

.gallery-slide img {
  width: 100%;
  display: block;
}

.gallery-arrows {
  position: absolute;
  top: 50%;
  left: -100px;
  right: -100px;
  z-index: 10;
  transform: translateY(-50%);
  pointer-events: none;
}

.gallery-arrows button {
  background: none;
  border: 0;
  padding: 0;
  pointer-events: all;
  cursor: pointer;
}

@media (max-width: 767.99px) {
	.gallery-arrows {
	  position: absolute;
	  top: 50%;
	  left: 0;
	  right: 0;
	  z-index: 10;
	  transform: translate(-50%. -50%);
	  pointer-events: none;
	}
	
	.gallery-arrows button {
	  background: none;
	  border: 0;
	  padding: 0;
	  pointer-events: all;
	  cursor: pointer;
	}
	
	.gallery-arrows button img {
		width: var(--24);
		height: auto;
	}
}

/* CONTATTI */

/* CONTACT FORM 7 */

.wpcf7-form {
	display: flex;
	flex-direction: column;
	max-width: 100%;
}

/* Stile per gli input di base e textarea */
.wpcf7-form p {
	margin: 0;
	font-size: var(--20);
	color: var(--primary);
	font-family: var(--font-family-text);
}

/* Placeholder per gli input e textarea */
.wpcf7-form input {
	width: 100%;
	padding: 10px;
	border: none;
	border-bottom: 1px solid var(--primary);
	background-color: transparent;
}

.contact-form-btn {
	margin-top: var(--40);
	display: inline-block;
	height: fit-content;
}

.contact-form-btn p {
  margin: 0;
}
.contact-form-btn input[type="submit"] {
  padding: var(--12) var(--18);
  border-radius: var(--12);
  background: var(--primary);
  color: var(--light);
  border: none;
  text-transform: uppercase;
  width: fit-content;
  transition: var(--transition);
}

.contact-form-btn input[type="submit"]:hover {
  background: var(--primary-dark);
}

.wpcf7-form textarea {
	width: 100%;
	max-height: 100px;
	padding: 10px;
	margin-top: 20px;
	border: 1px solid var(--primary);
	background-color: transparent;
}

/* Specifico per il checkbox */
.wpcf7-form input[type="checkbox"] {
	margin-right: 10px; /* Spazio tra checkbox e testo */
}
.wpcf7-form label {
	display: inline; /* Per evitare che l'etichetta occupi un'intera riga */
}

.wpcf7-form input[type="checkbox"] {
	margin-right: 10px;
	width: fit-content;
}

/* Stile per i placeholders */
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
	color: var(--primary-dark);
	opacity: 1; /* Firefox */
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
	color: var(--primary-dark);
}

::-ms-input-placeholder { /* Microsoft Edge */
	color: var(--primary-dark);
}

#maps {
	width: 100%;
	height: 80vh;
	object-fit: cover;
}

@media (max-width: 767.99px) {
	#maps {
		width: 100%;
		height: 40vh;
		object-fit: cover;
	}
}

@media (max-width: 575.99px) {
	#maps {
		width: 100%;
		height: 50vh;
		object-fit: cover;
	}
	
}

/* WPML */

.otgs-development-site-front-end {
display: none;
}

.wpml-ls-legacy-list-horizontal.wpml-ls-statics-footer {
	margin-bottom: 30px;
	display: none;
}

