.pp-box { margin: 8px 0 24px; max-width: 460px; }
.pp-info { list-style: none; margin: 0 0 24px; padding: 20px 24px; background: #F4F1EC; font-size: 15px; line-height: 1.8; }
.pp-info strong { font-weight: 500; }
.pp-field { margin: 0 0 18px; }
.pp-field label, .pp-label { display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; }
.pp-field select {
	width: 100%; min-height: 52px; padding: 0 14px;
	border: 1px solid #CFC8BB; border-radius: 0; background: #fff;
	font-family: inherit; font-size: 16px; color: inherit;
}
.pp-field--persone { margin-bottom: 8px; }
.pp-msg { min-height: 1.4em; margin: -6px 0 16px; font-size: 14px; color: #8A2A1E; }

/* Calendario */
.pp-cal { display: block; border: 1px solid #CFC8BB; background: #fff; padding: 12px; }
.pp-cal__testa { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.pp-cal__mese { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 24px; text-transform: capitalize; }
.pp-cal__nav { width: 44px; height: 44px; border: 1px solid #E6E1D8; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; color: #1A1A1A; }
.pp-cal__nav:disabled { opacity: .3; cursor: default; }
.pp-cal__griglia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.pp-cal__gs { text-align: center; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #6A6A6A; padding: 6px 0; }
.pp-cal__g { height: 44px; border: 1px solid transparent; background: transparent; font-family: inherit; font-size: 15px; color: #B5AEA3; cursor: default; }
.pp-cal__g--libero { background: #EEF2E8; border-color: #C9D3BC; color: #1A1A1A; cursor: pointer; font-weight: 500; }
.pp-cal__g--libero:hover { border-color: #3F5A2E; }
.pp-cal__g--pieno { background: #F4F1EC; color: #9A8F80; text-decoration: line-through; }
.pp-cal__g--caricamento { background: #FAF8F4; color: #CFC8BB; }
.pp-cal__g.is-scelto { background: #1A1A1A; border-color: #1A1A1A; color: #fff; }
.pp-legenda { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 10px; font-size: 13px; color: #4A4A4A; }
.pp-leg::before { content: ''; display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border: 1px solid #CFC8BB; }
.pp-leg--libero::before { background: #EEF2E8; border-color: #C9D3BC; }
.pp-leg--pieno::before { background: #F4F1EC; }
.pp-leg--no::before { background: #fff; }
