/* ==========================================================
   luccaresidenze – style_lr.css
   ========================================================== */

:root {
	--lr-cream: #fbf8eb;
	--lr-white: #fff;
	--lr-green: #487059;
	--lr-green-dark: #365643;
	--lr-gold: #ac7e2b;       /* decorativo e titoli grandi (3.4:1 su crema) */
	--lr-gold-dark: #87611f;  /* testo piccolo e pulsanti (≥ 4.5:1) */
	--lr-gold-deeper: #6c4d18;
	--lr-sand: #cfb378;
	--lr-ink: #3a332b;
	--lr-ink-soft: #5e5448;
	--lr-error: #a1261f;

	--lr-serif: "Lora", Georgia, "Times New Roman", serif;
	--lr-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;

	--lr-wrap: 56rem;
	--lr-gap: clamp(1.25rem, 4vw, 2rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	background: var(--lr-cream);
	color: var(--lr-ink);
	font-family: var(--lr-serif);
	font-size: 1.0625rem;
	line-height: 1.6;
}

img, svg { max-width: 100%; height: auto; }

a { color: var(--lr-green-dark); text-underline-offset: .15em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--lr-ink);
	outline-offset: 3px;
}
main:focus { outline: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.lr-skip {
	position: absolute;
	top: .5rem; left: .5rem;
	z-index: 1000;
	padding: .75rem 1rem;
	background: var(--lr-ink);
	color: var(--lr-white);
	font-family: var(--lr-sans);
	transform: translateY(-200%);
}
.lr-skip:focus { transform: none; color: var(--lr-white); }

/* ---------- Header / logo ---------- */
.lr-header {
	padding: clamp(2rem, 6vw, 3.5rem) var(--lr-gap) 0;
	text-align: center;
}
.lr-brand { display: inline-block; }
.lr-brand__link { display: block; color: inherit; text-decoration: none; }

.lr-brand__logo {
	display: block;
	width: 281px;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

/* ---------- Intro ---------- */
.lr-intro {
	max-width: 40rem;
	margin: clamp(2rem, 6vw, 3rem) auto 0;
	padding: 0 var(--lr-gap);
	text-align: center;
	font-size: clamp(1.15rem, 2.6vw, 1.35rem);
	line-height: 1.5;
}
.lr-intro p { margin: 0; }
.lr-intro strong { font-weight: 700; }

/* ---------- Guests / Owners ---------- */
.lr-audiences {
	display: grid;
	gap: 3.5rem clamp(2rem, 7vw, 5rem);
	max-width: var(--lr-wrap);
	margin: clamp(2.5rem, 7vw, 4rem) auto 0;
	padding: 0 var(--lr-gap);
}
@media (min-width: 48em) {
	.lr-audiences { grid-template-columns: 1fr 1fr; }
}

.lr-audience { display: flex; flex-direction: column; }
.lr-audience__title {
	margin: 0 0 .5rem;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
}
.lr-audience--guests .lr-audience__title { color: var(--lr-green); }
.lr-audience--owners .lr-audience__title { color: var(--lr-gold); }

.lr-audience__text p { margin: 0 0 .75em; max-width: 34em; }
.lr-audience__cta { margin: 1.25rem 0 0; margin-top: auto; padding-top: 1.25rem; }
.lr-contact__book { text-align: center; }

/* ---------- Buttons ---------- */
.lr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 12rem;
	padding: .6em 1.6em;
	border: 0;
	border-radius: 0;
	color: var(--lr-white);
	font-family: var(--lr-sans);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease;
}
.lr-btn:hover, .lr-btn:focus-visible { color: var(--lr-white); text-decoration: none; }
.lr-btn--green { background: var(--lr-green); }
.lr-btn--green:hover { background: var(--lr-green-dark); }
.lr-btn--gold { background: var(--lr-gold-dark); }
.lr-btn--gold:hover { background: var(--lr-gold-deeper); }
.lr-btn--serif { font-family: var(--lr-serif); font-style: italic; font-weight: 700; min-width: 9rem; }

@media (prefers-reduced-motion: reduce) {
	.lr-btn { transition: none; }
}

/* ---------- Contact form (ACF) ---------- */
.lr-contact {
	max-width: calc(30rem + 2 * var(--lr-gap));
	margin: clamp(4rem, 12vw, 7rem) auto clamp(3.5rem, 9vw, 5.5rem);
	padding: 0 var(--lr-gap);
	scroll-margin-top: 1rem;
}
.lr-contact__title {
	margin: 0 0 1.75rem;
	font-size: clamp(1.4rem, 3.6vw, 1.7rem);
	font-style: italic;
	font-weight: 700;
	text-align: center;
}

.lr-form { font-family: var(--lr-sans); font-size: .95rem; }

.lr-form .acf-fields > .acf-field,
.lr-form .acf-fields.-top > .acf-field {
	margin: 0 0 1.35rem;
	padding: 0;
	border: 0;
}
.lr-form .acf-field .acf-label { margin: 0 0 .3rem; }
.lr-form .acf-field .acf-label label {
	color: var(--lr-ink-soft);
	font-size: .85rem;
	font-weight: 500;
}
.lr-form .acf-required { color: var(--lr-error); }

.lr-form .acf-input :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
	width: 100%;
	min-height: 2.75rem;
	padding: .55rem .75rem;
	border: 1px solid var(--lr-gold);
	border-radius: 0;
	background: var(--lr-white);
	box-shadow: none;
	color: var(--lr-ink);
	font: inherit;
	font-size: 1rem; /* evita lo zoom automatico su iOS */
}
.lr-form .acf-input textarea { min-height: 8rem; resize: vertical; }
.lr-form .acf-input :is(input, select, textarea):focus {
	border-color: var(--lr-ink);
	outline: 3px solid var(--lr-ink);
	outline-offset: 1px;
	box-shadow: none;
}

/* Consenso */
.lr-form .acf-field-true-false .acf-label label {
	font-size: .8rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.lr-form .acf-field-true-false label {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	color: var(--lr-ink-soft);
	font-size: .8rem;
	line-height: 1.5;
}
.lr-form .acf-field-true-false input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.35rem;
	height: 1.35rem;
	margin: .05rem 0 0;
	accent-color: var(--lr-green);
}
.lr-form .acf-field-true-false a { color: var(--lr-green-dark); }

/* Errori e conferma */
.lr-form .acf-field.acf-error .acf-input :is(input, select, textarea) { border: 2px solid var(--lr-error); }
.lr-form .acf-notice,
.lr-form .acf-field .acf-notice {
	margin: 0 0 .75rem;
	padding: .6rem .8rem;
	border-radius: 0;
	font-size: .9rem;
}
.lr-form .acf-notice.-error { background: #fbeceb; border-left: 4px solid var(--lr-error); color: var(--lr-error); }
.lr-form .acf-notice.-error p { margin: 0; }

.lr-form__ok {
	margin: 0 0 1.5rem;
	padding: 1rem 1.2rem;
	background: var(--lr-white);
	border-left: 4px solid var(--lr-green);
	color: var(--lr-ink);
	font-family: var(--lr-serif);
	font-size: 1.05rem;
}
.lr-form__ok p { margin: 0; }

.lr-form .acf-form-submit { text-align: center; margin-top: 2rem; }
.lr-form .acf-spinner { margin-left: .5rem; }

.lr-notice { text-align: center; color: var(--lr-error); font-family: var(--lr-sans); }

/* ---------- Pagine interne (Privacy) ---------- */
.lr-page {
	max-width: 44rem;
	margin: clamp(2.5rem, 7vw, 4rem) auto clamp(3.5rem, 9vw, 5.5rem);
	padding: 0 var(--lr-gap);
}
.lr-entry__title {
	margin: 0 0 1.5rem;
	color: var(--lr-green);
	font-size: clamp(1.7rem, 4.5vw, 2.2rem);
	line-height: 1.2;
}
.lr-entry__content h2,
.lr-entry__content h3 { color: var(--lr-green); line-height: 1.25; margin: 2em 0 .5em; }
.lr-entry__content h2 { font-size: 1.4rem; }
.lr-entry__content h3 { font-size: 1.15rem; }
.lr-entry__content :is(p, ul, ol) { margin: 0 0 1em; }
.lr-entry__content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.lr-entry__content :is(th, td) { padding: .5rem; border: 1px solid var(--lr-sand); text-align: left; }

/* ---------- Footer ---------- */
.lr-footer {
	padding: 2.5rem var(--lr-gap) 1.5rem;
	background: var(--lr-sand);
	color: var(--lr-ink);
	font-family: var(--lr-sans);
	font-size: .9rem;
	line-height: 1.5;
}
.lr-footer a { color: var(--lr-ink); }
.lr-footer p { margin: 0; }

.lr-footer__inner {
	display: grid;
	gap: 1.5rem 4rem;
	max-width: 42rem;
	margin: 0 auto;
}
@media (min-width: 40em) {
	.lr-footer__inner { grid-template-columns: 1fr auto; }
}
.lr-footer__name { font-weight: 600; }
.lr-footer__side { display: grid; gap: .75rem; align-content: start; }

.lr-social { display: flex; align-items: center; gap: .6rem; }
.lr-social__list { display: flex; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.lr-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	color: var(--lr-ink);
}
.lr-social__link svg { width: 1.6rem; height: 1.6rem; }

.lr-footer .lr-footer__legal {
	max-width: var(--lr-wrap);
	margin: 2.5rem auto 0;
	font-size: .75rem;
	text-align: center;
}

/* ---------- Stampa ---------- */
@media print {
	.lr-skip, .lr-contact, .lr-audience__cta { display: none; }
	body { background: #fff; }
}
