/*
 * Residenza Stampace: stili del sito (misurati sul sito Astra 4.13 + Elementor 4.3 del 17/10/2026).
 *
 * Breakpoint come il sito originale:
 *  - contenuti (ex Elementor): mobile <= 767, tablet 768-1024, desktop >= 1025;
 *  - header (ex Astra): menu mobile <= 921 (Customizer), testo 13.68px <= 768 (html 85.5% come Astra).
 * Le pagine a sezioni usano classi rs-* (contenuto in post_content / meta _2pweb_content).
 */

:root {
	--rs-brown: #49342e;
	--rs-tan: #af7c4b;
	--rs-sand: #e6d6c3;
	--rs-navy: #000f23;
	--rs-veil: rgba(255, 255, 255, .77); /* #FFFFFFC4 */
	--rs-card-shadow: 0 0 35px 0 rgba(93, 114, 128, .15);
	--rs-soft: rgba(93, 114, 128, .05);
}

/* ---------- Testo e titoli (Astra) ---------- */
body { font-weight: 400; }
b, strong { font-weight: 700; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; }
h5 { font-size: 18px; line-height: 1.2; }
/* 1.0.1: Astra riduce il carattere (html 85.5%, testo 13.68px, h5 1.2rem) gia' sotto 768 px, non solo sotto 544. */
@media (max-width: 768px) { h5 { font-size: 1.2rem; } html { font-size: 85.5%; } :root { --p2w-fs-body: 13.68px; } }
@media (min-width: 769px) { html { font-size: 93.75%; } }

/* Pagine a sezioni: i titoli si comportano come i widget titolo di Elementor */
/* specificita' minima (:where): vincono su main.css ma cedono a qualunque classe rs-* */
:where(.entry-content--full) :is(h1, h2, h3, h4, h5, h6) { margin: 0; line-height: 1; }
:where(.entry-content--full) h5 { line-height: 1.2; }
:where(.entry-content--full) p { margin: 0 0 1.6em; }
:where(.entry-content--full) img { max-width: 100%; height: auto; }
.rs-center { text-align: center; }
.rs-h2 { font-size: 35px; }
@media (max-width: 544px) { .rs-h2 { font-size: 25px; } } /* 1.0.1: come h2 di Astra (35px fino a 545, 25px sotto), non il 767 di Elementor */
.rs-fs18 { font-size: 18px; }

/* ---------- Header (come Astra header layout 1) ---------- */
.site-header__inner { padding-top: 15px; padding-bottom: 15px; min-height: 0; gap: 0; }
.site-branding { min-height: 105px; padding-top: 22px; line-height: 0; } /* 22 + logo bianco 83 px, anche con il logo scuro (80 px) */
.main-navigation { font-size: 1rem; }
.main-navigation .menu > li > a { padding: 0 20px; line-height: 36px; font-weight: 400; }
.main-navigation .menu > li > a:hover,
.main-navigation .menu > li:focus-within > a,
.main-navigation .current-menu-item > a { color: var(--rs-sand); }
.p2w-header-transparent .site-header:not(.is-stuck) .main-navigation .menu > li > a:hover,
.p2w-header-transparent .site-header:not(.is-stuck) .main-navigation .menu > li.current-menu-item > a,
.p2w-header-transparent .site-header:not(.is-stuck) .main-navigation .menu > li.current-menu-ancestor > a { color: var(--rs-sand) !important; font-weight: 700 !important; }
.site-header__button { margin: 0 20px; }
.site-header__button:hover, .site-header__button:focus { background: #e04700; color: #fff; }
.p2w-header-transparent .site-header:not(.is-stuck) .site-header__button { color: #fff; }

@media (max-width: 921px) {
	/* 1.0.1: tra 769 e 921 px Astra tiene l'header desktop (logo a 37 px, alto 135) e un toggle 45x47;
	   da 768 in giu' header con padding 1.5em (1em sotto 545) e toggle 41x43. */
	.menu-toggle,
	.p2w-header-transparent .site-header .menu-toggle,
	.p2w-menu-open .menu-toggle { width: 45px; height: 47px; border-radius: 3px; background: #fff; color: #000 !important; }
	.menu-toggle svg { width: 20px; height: 20px; }
	.p2w-mobile-menu--dropdown .main-navigation__panel { top: calc(100% - 1em); background: #f9f9f9; box-shadow: none; max-height: none; }
	.main-navigation__panel .menu > li { border-top: 0; }
	.main-navigation__panel .menu a,
	.p2w-header-transparent .site-header .main-navigation__panel .menu > li > a {
		display: block;
		padding: 0 20px;
		font-size: 2em;
		line-height: 3em;
		color: #1d1e1d;
		border-bottom: 1px solid #ddd;
	}
	.main-navigation__panel .menu > li.current-menu-item > a,
	.p2w-header-transparent .site-header .main-navigation__panel .menu > li.current-menu-item > a { color: var(--rs-sand) !important; font-weight: 700 !important; }
}
@media (min-width: 769px) and (max-width: 921px) {
	/* 1.0.1: voci del menu a tendina piu' piccole come Astra tra 769 e 921 px (15px, righe da 46 px). Astra le
	   mostrava bianche sul fondo chiaro (illeggibili): qui restano scure. */
	.main-navigation__panel .menu a,
	.p2w-header-transparent .site-header .main-navigation__panel .menu > li > a { font-size: 1em; line-height: 3em; }
}
@media (max-width: 768px) {
	.site-header__inner { padding-top: 1.5em; padding-bottom: 1.5em; }
	.site-branding { min-height: 83px; padding-top: 0; }
	.menu-toggle,
	.p2w-header-transparent .site-header .menu-toggle,
	.p2w-menu-open .menu-toggle { width: 41px; height: 43px; }
	.p2w-mobile-menu--dropdown .main-navigation__panel { top: calc(100% - 1.5em); }
}
@media (max-width: 544px) {
	.site-header__inner { padding-top: 1em; padding-bottom: 1em; }
	.p2w-mobile-menu--dropdown .main-navigation__panel { top: calc(100% - 1em); }
}

/* ---------- Footer (Astra small footer layout 2) ---------- */
.site-footer__inner { max-width: 1240px; padding: 40px 0; gap: 0; align-items: center; }
.site-footer__credits, .site-footer__logo { flex: 0 0 50%; max-width: 50%; padding: 0 20px; }
.site-footer__credits { line-height: var(--p2w-lh-body); }
.site-footer__logo { text-align: right; line-height: 0; }
.site-footer__logo img { width: 50%; max-height: none; height: auto; }
.site-footer__bottom { padding-bottom: 1.5em; }
/* 1.0.1: prima riga del footer su una riga come in Astra (il nome "Soimm Srl Unipersonale" la allunga di 99 px:
   sborda nello spazio vuoto a sinistra del logo, allineato a destra). Sotto 1058 px va a capo anche in Astra. */
@media (min-width: 1058px) { .site-footer__credits .p2w-nowrap { white-space: nowrap; } }
@media (max-width: 767px) {
	.site-footer__credits, .site-footer__logo { flex-basis: 100%; max-width: 100%; text-align: center; }
	.site-footer__logo { padding-top: 1em; }
	/* 1.0.1: in Astra la colonna del testo e' larga al massimo 486 px e resta a sinistra (testo centrato al suo interno). */
	.site-footer__credits { max-width: min(100%, 486px); align-self: flex-start; }
}
@media (min-width: 768px) and (max-width: 768px) { .site-footer__credits, .site-footer__logo { text-align: center; } } /* 1.0.1: Astra centra gia' a 768 */
/* 1.0.2: la riga delle pagine legali, l'ultima della pagina, non deve finire sotto i pulsanti fissi:
   WhatsApp (Joinchat) a sinistra fino a 88 px (74 su mobile), chat SOIMM e "torna su" a destra
   (da 84 px dal bordo). Sopra 1383 px il contenitore parte gia' oltre i pulsanti. */
@media (max-width: 1383px) { .site-footer__legal { padding-left: 76px; } }
@media (max-width: 767px) { .site-footer__legal { padding-left: 64px; padding-right: 72px; } }
.site-footer__legal a { white-space: nowrap; } /* 1.0.2: a 390 px "Note legali" non si spezza su due righe */
.p2w-scroll-top { background: var(--rs-brown); width: 42px; height: 42px; }
.p2w-scroll-top:hover, .p2w-scroll-top:focus { background: var(--rs-tan); }

/* ---------- Mattoni comuni (righe e colonne come Elementor) ---------- */
.rs-sec { position: relative; }
.rs-row { position: relative; display: flex; max-width: 1140px; margin-left: auto; margin-right: auto; }
.rs-col { position: relative; display: flex; flex-wrap: wrap; align-content: flex-start; width: 100%; min-width: 0; }
.rs-row--gap > .rs-col { padding: 10px; }
.rs-stack > * { width: 100%; }
.rs-stack > *:not(:last-child) { margin-bottom: 20px; }
@media (max-width: 1024px) { .rs-row { max-width: 1024px; } }
@media (max-width: 767px) { .rs-row { flex-wrap: wrap; } }

/* Testi (widget "editor di testo"): l'ultimo paragrafo tiene il margine, come prima */
.rs-text > p:last-child { margin-bottom: 1.6em; }
.rs-text a { text-decoration: underline; }

/* Riquadro titolo con fondo marroncino ("Dal 1 dicembre...") */
.rs-banner {
	margin: 0;
	padding: 18px 22px;
	border-radius: 12px;
	background: var(--rs-tan);
	color: #fff;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}
@media (max-width: 767px) { .rs-banner { font-size: 19px; } }

/* Bottoni: 16px in rem come Astra (14.59px sotto 544px) */
.p2w-btn { font-size: 1.0667rem; }
/* Bottoni */
.rs-btn { font-weight: 700; text-transform: uppercase; letter-spacing: -.5px; box-shadow: 0 0 20px 0 rgba(0, 15, 35, .12); }
.rs-btn--phone::before {
	content: "";
	display: inline-block;
	width: .875em;
	height: 1em;
	margin-right: 5px;
	vertical-align: -2px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.rs-btn:hover, .rs-btn:focus { background: var(--rs-brown); }

/* Riquadro con logo (velo bianco) */
.rs-logo-box { padding: 20px; border-radius: 20px 20px 0 0; background: var(--rs-veil); text-align: center; line-height: 0; }
.rs-logo-box img { width: 68%; }

/* ---------- Hero (home e contatti) ---------- */
.rs-hero { position: relative; overflow: hidden; }
.rs-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--rs-navy); pointer-events: none; }
.rs-hero > .rs-row { z-index: 2; }
.rs-hero__slides { z-index: 0; }
.rs-hero__main { align-content: center; align-items: center; }
.rs-hero__main > * { width: 100%; margin: 0; }

/* Home */
.rs-hero--home { background: #fff; }
.rs-hero--home::before { opacity: .45; mix-blend-mode: multiply; }
/* padding in % della colonna (65% della riga), come il widget-wrap di Elementor */
.rs-hero--home .rs-hero__main { width: 65%; padding: 16.25% 6.5% 2.6% 0; }
.rs-hero--home .rs-hero__aside { width: 35%; padding-top: 170px; align-content: flex-end; align-items: flex-end; }
.rs-hero--home .rs-hero__aside > * { width: 100%; }
.rs-hero__kicker { padding: 5px 0 5px 10px; background: #fff; color: var(--rs-brown); font-size: 2em; text-align: left; }
.rs-hero__title { margin: 20px 0 10px !important; color: #fff; font-size: 3.6em; line-height: 1.2 !important; letter-spacing: .3px; text-align: left; }
.rs-hero__banner { margin: 10px 0 25px !important; }
.rs-hero__divider { padding: 0 0 0 5px; background: var(--rs-veil); }
.rs-hero__divider span { display: block; width: 80%; margin: 14px 0; border-top: 3.9px solid var(--rs-brown); }
.rs-hero__text { padding: 20px; background: var(--rs-veil); color: #000; font-size: 1.4em; text-align: left; }
.rs-hero__text > p:last-child { margin-bottom: 1.6em; }
.rs-hero__cta { margin: 9px 0 2px !important; text-align: left; line-height: 0; }
.rs-hero__cta .p2w-btn { line-height: 1; }

@media (max-width: 1024px) {
	.rs-hero--home { padding: 125px 50px 0; }
	.rs-hero--home .rs-hero__main { padding: 0 10px 50px 0; }
	.rs-hero--home .rs-hero__aside { padding-top: 0; }
}
@media (max-width: 767px) {
	.rs-hero--home { padding: 150px 25px 0; }
	.rs-hero--home .rs-hero__main, .rs-hero--home .rs-hero__aside { width: 100%; padding: 0; }
	.rs-hero--home .rs-hero__aside { margin-top: 50px; }
	.rs-hero__kicker { font-size: 1.5em; text-align: center; }
	.rs-hero__title { font-size: 2.3em; text-align: center; }
	.rs-hero__divider { padding: 5px; }
	.rs-hero__divider span { margin: 15px auto; }
	.rs-hero__text { padding: 5px; text-align: center; line-height: 1.7em; }
	.rs-hero__cta { margin: 50px 0 0 !important; text-align: center; }
	.rs-hero--home .rs-logo-box { padding: 13px 5px 5px; }
	.rs-hero--home .rs-logo-box img { width: 200px; }
}

/* Contatti */
.rs-hero--contatti {
	padding: 30px 0 0;
	background: #fff url("/wp-content/uploads/2025/05/fronte-scaled-e1747419741361-1536x864.jpg") center / cover no-repeat;
}
@media (min-width: 1025px) { .rs-hero--contatti { background-attachment: fixed; } }
.rs-hero--contatti::before { opacity: .65; }
.rs-hero--contatti .rs-hero__main { padding: 15% 10% 5% 0; }
.rs-hero__kicker5 { margin-bottom: 20px !important; color: var(--rs-sand); text-align: left; }
.rs-hero__title--contatti { margin: 30px 0 0 !important; font-size: 3.6em; line-height: 1 !important; letter-spacing: 0; }
.rs-shape { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 3; aspect-ratio: 700 / 10; background: #fff; clip-path: polygon(48.5714% 100%, 51.4286% 100%, 50% 0); pointer-events: none; }
@media (max-width: 1024px) {
	.rs-hero--contatti { padding: 125px 50px 0; }
	.rs-hero--contatti .rs-hero__main { width: 65%; padding: 0 10px 50px 0; }
}
@media (max-width: 767px) {
	.rs-hero--contatti { padding: 150px 25px 0; }
	.rs-hero--contatti .rs-hero__main { width: 100%; padding: 0; }
	.rs-hero__kicker5, .rs-hero__title--contatti { text-align: center; }
}

/* ---------- Il Progetto ---------- */
.rs-progetto { padding: 50px 0; }
.rs-progetto__img { width: 99.394% !important; margin-bottom: 0 !important; line-height: 0; } /* larghezza "iniziale" in Elementor: niente spazio sotto */
.rs-progetto__img img { width: 100%; }

/* Caroselli (Swiper di Elementor -> p2w-carousel) */
.rs-carousel { --p2w-carousel-gap: 20px; }
.rs-carousel .p2w-carousel__slide { text-align: center; }
.rs-carousel .p2w-carousel__slide img { display: inline-block; width: auto; max-width: 100%; } /* dimensione naturale, come Swiper di Elementor */
.rs-carousel--progetto { --p2w-pv: 4; --p2w-pv-t: 4; --p2w-pv-m: 1; padding: 0 30px; line-height: 0; }
.rs-carousel--progetto .p2w-carousel__slide img { width: 300px; border-radius: 5px; } /* miniature "medium" 300 px, ridotte se la slide e' piu' stretta */
.rs-carousel .p2w-carousel__nav { width: 25px; height: 25px; padding: 0; border-radius: 0; background: transparent; color: #3a3a3a; }
.rs-carousel .p2w-carousel__nav svg { width: 25px; height: 25px; }
.rs-carousel .p2w-carousel__nav--prev { left: 0; }
.rs-carousel .p2w-carousel__nav--next { right: 0; }
@media (max-width: 767px) { .rs-carousel--progetto { padding: 0 30px; } }
/* 1.0.1: Swiper di Elementor usa breakpoint "da ... in su": 2 per vista da 767 a 1023 px, 4 da 1024 px. */
@media (min-width: 767px) and (max-width: 1023px) { .rs-carousel--progetto .p2w-carousel__slide { flex-basis: calc((100% - var(--p2w-carousel-gap)) / 2); } }

/* ---------- Gli Appartamenti ---------- */
.rs-units { padding: 125px 0 100px; background: var(--rs-soft); }
.rs-units__kicker { color: var(--rs-brown); }
.rs-units__title { color: var(--rs-tan); }
.rs-units__banner { width: auto !important; margin: 15px 20px 55px !important; flex: 1 1 100%; } /* 35 + 20 dello spazio tra widget */
.rs-units__row { display: flex; margin-top: 20px; margin-bottom: 0 !important; }
.rs-units__row + .rs-units__row { margin-top: 20px; }
.rs-unit { display: flex; width: 50%; }
.rs-card {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	width: 100%;
	margin: -20px 20px 40px;
	padding: 30px;
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--rs-card-shadow);
}
.rs-card > * { width: 100%; margin: 0 0 20px; }
.rs-card > :last-child { margin-bottom: 0; }
.rs-card__type { padding: 0 0 0 7px; background: var(--rs-tan); color: #fff; font-size: 20px; font-weight: 700; line-height: 1; text-align: center; text-transform: uppercase; }
.rs-card__title { color: var(--rs-brown); font-size: 27px; line-height: 20px !important; }
.rs-card__plan { line-height: 0; text-align: center; }
.rs-card__plan img { width: auto; max-width: 100%; }
.rs-card__floor { width: auto !important; margin-bottom: 0 !important; padding: 0 6px 0 7px; background: var(--rs-sand); color: var(--rs-brown); font-size: 20px; font-weight: 700; line-height: 1; text-transform: uppercase; }
.rs-card__data { font-size: 18px; }
.rs-card__data > p:last-child { margin-bottom: 1.6em; }
.rs-card__price { padding: 10px 0; background: var(--rs-brown); color: #fff; font-size: 24px; font-weight: 700; line-height: 1; text-align: center; text-transform: uppercase; }
.rs-card > .rs-card__price { margin-bottom: 0; }
.rs-card--pricegap > .rs-card__price { margin-bottom: 20px; }

/* Etichetta VENDUTO (ex icon-box in posizione assoluta) */
.rs-sold {
	position: absolute;
	top: 0;
	left: var(--rs-sold-x, 0px);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
	width: 100%;
	margin: 0 !important;
	padding: 50% 0 0;
	background: rgba(175, 124, 75, .71); /* #AF7C4BB5 */
	color: #fff;
	text-align: center;
}
.rs-sold__icon {
	display: block;
	width: 50px;
	height: 50px;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.rs-sold__title { width: 100%; margin: 0 0 var(--rs-sold-gap, 14.3em) !important; color: #fff; font-size: 25px; font-weight: 700; line-height: 1.4; }
.rs-sold__text { width: 100%; margin: calc(-1 * 15px) 0 0 !important; font-size: 15px; font-weight: 700; line-height: var(--p2w-lh-body); }

@media (max-width: 1024px) {
	.rs-units { padding: 80px 30px; }
	.rs-unit--first .rs-card { margin: 0 20px 20px; }
	.rs-sold__title { margin-bottom: var(--rs-sold-gap-t, 15.5em) !important; }
}
@media (max-width: 767px) {
	.rs-units { padding: 50px 20px; }
	.rs-units__row { flex-wrap: wrap; padding-top: 15px; }
	.rs-unit { width: 100%; }
	.rs-card, .rs-unit--first .rs-card { margin: 0; }
	.rs-unit:not(.rs-unit--first) .rs-card { margin-bottom: 30px; }
	.rs-card__title { font-size: 22px; }
	.rs-card--compact > * { margin-bottom: 0; }
	.rs-card--compact.rs-card--pricegap > .rs-card__price { margin-bottom: 0; }
	.rs-card--spaced .rs-card__title { padding: 15px 0; }
	.rs-card--spaced .rs-card__floor { margin-top: 20px; }
	.rs-sold__title { margin-bottom: var(--rs-sold-gap-m, 7.4em) !important; font-size: 39px; }
}

/* ---------- Capitolato ---------- */
.rs-capitolato { padding: 50px 0; background: var(--rs-sand); }
@media (max-width: 767px) { .rs-capitolato__col { padding: 0 20px !important; } }

/* ---------- Sezione modulo (home) ---------- */
.rs-formsec {
	position: relative;
	padding: 125px 0 0;
	background: var(--rs-tan) url("/wp-content/uploads/2020/06/IMG_4171-scaled.jpg") center / cover no-repeat;
}
@media (min-width: 1025px) { .rs-formsec { background-attachment: fixed; } }
.rs-formsec::before { content: ""; position: absolute; inset: 0; background: var(--rs-navy); opacity: .65; pointer-events: none; }
.rs-formsec__row { z-index: 1; }
.rs-formsec__logo { width: 50%; margin-top: -27px; align-content: flex-end; align-items: flex-end; }
.rs-formsec__logo > * { width: 100%; }
.rs-formsec__card {
	width: calc(50% - 40px);
	margin-left: 40px;
	padding: 50px;
	border-radius: 20px 20px 0 0;
	background: #fff;
}
.rs-formsec__card > * { width: 100%; }
.rs-formsec__title, .rs-crec__h3 { margin: 0 0 20px; color: var(--rs-brown); font-size: 25px; text-align: left; }
@media (max-width: 768px) { .rs-formsec__title, .rs-crec__h3 { font-size: 22px; } } /* 1.0.1: h3 di Astra a 768 px */
.rs-crec__h3 { color: var(--rs-tan); }
.rs-formsec__intro, .rs-crec__intro { margin: 0 0 20px; color: var(--rs-navy); font-size: 18px; font-weight: 400; line-height: 1.3 !important; text-align: left; }
@media (max-width: 1024px) {
	.rs-formsec { padding: 80px; }
	.rs-formsec__row { flex-direction: column-reverse; }
	.rs-formsec__logo { display: none; }
	.rs-formsec__card { width: 100%; margin: 0; border-radius: 20px; }
}
@media (max-width: 767px) {
	.rs-formsec { padding: 50px 25px 0; }
	.rs-formsec__logo { display: flex; width: 100%; margin-top: 50px; }
	.rs-formsec__logo .rs-logo-box { padding: 5px; }
	.rs-formsec__logo .rs-logo-box img { width: 200px; }
	.rs-formsec__card { padding: 30px; border-radius: 40px; }
	.rs-formsec__title, .rs-crec__h3 { font-size: 18px; line-height: 1.2 !important; text-align: center; }
}

/* ---------- Contatti ---------- */
.rs-cintro { padding: 125px 0 100px; background: var(--rs-soft); }
.rs-cintro__kicker { color: var(--rs-tan); }
.rs-cintro__text { font-size: 18px; line-height: 1.6; text-align: justify; }
.rs-crec { margin: 30px 0; }
.rs-crec__info, .rs-crec__card { width: calc(50% - 40px); margin: 0 20px; padding: 0 !important; }
.rs-crec__card { border-radius: 20px 20px 0 0; background: #fff; }
.rs-crec__h3 { color: var(--rs-tan); }
.rs-crec__h5 { color: var(--rs-tan); }
.rs-crec__intro { padding-bottom: 35px; }
.rs-map { line-height: 0; }
@media (max-width: 1024px) {
	.rs-cintro { padding: 80px 30px; }
	.rs-crec > .rs-row { flex-wrap: wrap; }
	.rs-crec__card { width: 100%; margin: 0; padding: 50px !important; border-radius: 20px; }
}
@media (max-width: 767px) {
	.rs-cintro { padding: 50px 20px; }
	.rs-crec__info { width: 100%; }
	.rs-crec__card { padding: 30px !important; border-radius: 40px; }
	.rs-crec__intro { padding-bottom: 0; }
}

/* ---------- Pagina /appartamenti/ (senza header e footer) ---------- */
.rs-units--page { padding: 125px 0 100px; }
.rs-units__pagetitle { color: var(--rs-brown); }
@media (max-width: 1024px) { .rs-units--page { padding: 80px 30px; } }
.rs-carousel--app { --p2w-pv: 3; --p2w-pv-t: 3; --p2w-pv-m: 1; --p2w-carousel-gap: 0px; line-height: 0; }
.rs-carousel--app .p2w-carousel__slide img { width: 100%; }
@media (max-width: 767px) {
	.rs-units--page { padding: 50px 20px; }
	.rs-units__pagetitle { font-size: 15px; }
	.rs-carousel--app { width: 95% !important; margin-top: -19px; }
}

/* ---------- Modulo contatti (aspetto del vecchio WPForms 226) ---------- */
.p2w-form__grid { display: block; }
.p2w-form .p2w-field { padding: 10px 0; margin: 0; }
.p2w-form input[type="text"], .p2w-form input[type="email"], .p2w-form input[type="tel"] {
	display: block;
	height: 44px;
	padding: .75em;
	border: 1px solid #ddd;
	border-radius: 2px;
	background: #fafafa;
	color: #666;
	font-size: 1em;
	line-height: 1em;
}
.p2w-form input:focus { border-color: #999; outline: 0; }
@media (max-width: 544px) { .p2w-form input[type="text"], .p2w-form input[type="email"], .p2w-form input[type="tel"] { height: 39px; } }
.p2w-form ::placeholder { color: #666; opacity: 1; }
.p2w-form .p2w-field__group legend,
.p2w-field--privacy > .p2w-field__label { display: block; margin: 0; padding: 0; color: #000; font-size: 1em; font-weight: 700; line-height: var(--p2w-lh-body); }
.p2w-form .p2w-check { display: block; margin: 0; line-height: var(--p2w-lh-body); }
.p2w-form .p2w-check input { display: inline-block; width: 13px; height: 13px; margin: 2px 6px 0 3px; vertical-align: -1px; }
.p2w-field--privacy .p2w-check .p2w-req { display: none; }
.p2w-req { color: #ff0000; }
.p2w-form__actions { margin: 0; padding-top: 10px; }
.p2w-form__submit { padding: 10px 20px; }
.p2w-form__notice { margin-top: 10px; }
.rs-formsec__form > .p2w-form-wrap, .rs-crec__form > .p2w-form-wrap { margin-bottom: 26px; } /* come il contenitore WPForms */

/* ---------- 404 e ricerca (come Astra, contenitore "boxed" su fondo grigio) ---------- */
body.error404, body.search, body.archive, body:has(.rs-page) { background: #f5f5f5; }
.rs-boxed { width: calc(100% - 40px); max-width: 1200px; margin: 60px auto; }
.rs-box { padding: 5.34em 6.67em; background: #fff; }
.rs-404 { text-align: center; }
.rs-404 .page-header { margin: 0 0 1.5em; }
.rs-404 .page-title { margin: 0; color: var(--rs-brown); font-size: 80px; font-weight: 400; line-height: 1.2; }
.rs-404 .page-sub-title { margin: 0; color: #000; font-size: 1.5em; font-weight: 700; line-height: var(--p2w-lh-body); }
.rs-404__search { margin-top: 1.5em; }
.search-form { position: relative; display: block; max-width: 370px; margin: 0 auto; }
.search-form .search-field { width: 100%; height: 45px; padding: 12px 45px 12px 15px; border: 1px solid #ddd; border-radius: 2px; background: transparent; color: #666; font-size: 15px; line-height: 1; }
.search-form .search-submit { position: absolute; top: 0; right: 0; display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; padding: 0; border: 0; background: transparent; color: #000; cursor: pointer; }
.rs-archive-head { padding: 75px 6.67em 50px; background: #eee; }
.rs-archive-head .page-title { margin: 0 0 4px; color: var(--rs-brown); font-size: 2.857em; font-weight: 400; line-height: 1.2; } /* 1.0.1: Astra chiede 300 ma il vecchio sito caricava solo Montserrat 400/700, quindi si vedeva 400 */
.rs-result__thumb { display: block; margin-bottom: 1.5em; line-height: 0; }
.rs-result__thumb img { width: 100%; height: auto; }
.rs-result__title { margin: 0 0 1em; font-size: 30px; font-weight: 400; line-height: 1.23; }
.rs-result__title a { color: #000; }
.rs-result__title a:hover { color: var(--rs-brown); }
.rs-result__excerpt p { margin: 0 0 .8em; }
.rs-result__more { margin: 0; }
.rs-result + .rs-result { margin-top: 2em; }
/* 1.0.1: archivio (categoria) e riquadri senza risultati come Astra. */
.rs-archive-desc { padding: 3em; background: #fff; }
.rs-archive-desc .page-title { margin: 0 0 4px; color: var(--rs-brown); font-size: 2.6667rem; font-weight: 400; line-height: 1.4; text-transform: capitalize; } /* 400 visibile come sopra */
.rs-noresults p { margin: 0 0 1.75em; }
.search-form.rs-search-classic { position: static; display: block; max-width: none; margin: 0; }
.rs-search-classic label { display: inline; }
.search-form.rs-search-classic .search-field { display: inline-block; box-sizing: content-box; width: auto; height: auto; padding: .75em; border: 1px solid #ddd; border-radius: 2px; background: #fafafa; color: #666; font: inherit; line-height: 1; -webkit-appearance: textfield; }
.search-form.rs-search-classic .search-submit { position: static; display: inline-block; width: auto; height: auto; padding: 10px 20px; border: 0; border-radius: 3px; background: var(--rs-tan); color: #fff; font-family: inherit; font-size: 1.0667rem; font-weight: 700; line-height: 1; cursor: pointer; }
.search-form.rs-search-classic .search-submit:hover, .search-form.rs-search-classic .search-submit:focus { background: var(--rs-brown); }
.search .search-form.rs-search-classic { margin-bottom: 3em; }
.search .search-form.rs-search-classic .search-submit { padding: 10px 15px; border-radius: 2px; line-height: 1.8571428571; }
@media (max-width: 1200px) { .rs-box { padding: 3.34em 2.4em; } .rs-archive-head { padding: 3.34em 2.4em; } }
@media (max-width: 992px) { .rs-archive-head { padding: 2.14em; } }
@media (max-width: 921px) {
	.rs-404 .page-title { font-size: 50px; }
}
@media (max-width: 768px) { .rs-box { padding: 1.5em 2.14em; } }
@media (max-width: 544px) {
	.rs-boxed { width: calc(100% - 1.08em); margin: 1.5em auto; } /* 1.0.1: come #primary di Astra (contenitore 0.54em, margine 1.5em) */
	.rs-box { padding: 1.5em 1em; }
	.rs-archive-head { padding: 1.5em 1em; }
	.rs-404 .page-title { font-size: 40px; }
}

/* Pagine standard (legali) */
.rs-page .entry-header { margin-bottom: 1.5em; }
.rs-page .entry-title { margin: 0; color: var(--rs-navy); font-size: 30px; line-height: 1.23; }
.rs-page .entry-content h2 { margin: 1.6em 0 .6em; font-size: 25px; line-height: 1.3; }
.rs-page .entry-content h3 { margin: 1.4em 0 .5em; font-size: 20px; line-height: 1.3; }
.rs-page .entry-content ul { margin: 0 0 1.6em 1.5em; }
.rs-page .entry-content a { text-decoration: underline; }
.rs-legal-note { padding: .75em 1em; border-left: 4px solid var(--rs-tan); background: #faf6f1; }
/* 1.0.1: tabelle della cookie policy (bordi come le tabelle di Astra). Su mobile ogni riga diventa una scheda:
   prima cella in evidenza, le altre con l'intestazione della colonna (attributo data-label nel contenuto). */
.rs-page .entry-content table { font-size: .93em; }
.rs-page .entry-content th, .rs-page .entry-content td { padding: .6em .75em; border: 1px solid #e2e2e2; text-align: left; vertical-align: top; }
.rs-page .entry-content th { background: #faf6f1; }
@media (max-width: 767px) {
	.rs-page .entry-content table, .rs-page .entry-content tbody, .rs-page .entry-content tr, .rs-page .entry-content td { display: block; width: 100%; }
	.rs-page .entry-content thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.rs-page .entry-content tr { margin-bottom: .75em; border: 1px solid #e2e2e2; }
	.rs-page .entry-content td { border: 0; border-top: 1px solid #eee; padding: .45em .75em; overflow-wrap: break-word; }
	.rs-page .entry-content td:first-child { border-top: 0; background: #faf6f1; font-weight: 700; }
	.rs-page .entry-content td[data-label]::before { content: attr(data-label) ": "; font-weight: 600; }
}

/* 1.0.3 (19/10/2026): su mobile la riga legale resta sopra etichetta e pulsante fissi della chat SOIMM (arrivano a ~92 px dal fondo), cosi' Privacy, Cookie policy, Note legali e Preferenze cookie restano cliccabili. */
@media (max-width: 767px) { .site-footer__legal { padding-bottom: 104px; } }
