/* Pagina matrimoni: il contenuto e le immagini sono blocchi modificabili.
 *
 * Le misure sono quelle del PDF di progetto (Wedding.pdf), largo 1730px. --u vale 1px a 1730px e scala
 * in proporzione sotto questa larghezza (la misura è quella del contenitore .wedding-page, non della finestra).
 * Sotto i 767px valgono le regole mobile in fondo.
 */

.wedding-page {
  --u: calc(min(100cqw, 1730px) / 1730);
  --wedding-ink: #34302e;
  --wedding-rose: #a85f6b;
  --wedding-paper: #f5f1eb;
  --wedding-sage: #778475;
  --wedding-gold: #dfc092;
  --wedding-rule: #bc8189;
  container-type: inline-size;
  background: var(--wedding-paper);
  color: var(--wedding-ink);
  font-family: Manrope, sans-serif;
  font-size: max(14px, calc(var(--u) * 16));
  line-height: 1.75;
}

/* ---------- Base ---------- */

.wedding-page *,
.wedding-page *::before,
.wedding-page *::after {
  box-sizing: border-box;
}

/* Titoli in Cinzel: le maiuscole e le minuscole sono quelle del testo, come nel PDF (le minuscole sono maiuscoletto). */
.wedding-page h1,
.wedding-page h2,
.wedding-page h3 {
  margin: 0;
  font-family: Cinzel, Georgia, serif;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: none;
}

.wedding-page .wedding-hero h1,
.wedding-page .wedding-intro__copy h2,
.wedding-page .wedding-features h2,
.wedding-page .wedding-villa__copy h2,
.wedding-page .wedding-location > h2 {
  letter-spacing: -0.03em;
}

.wedding-page h1 {
  font-size: max(48px, calc(var(--u) * 88));
  line-height: 0.9;
}

.wedding-page h2 {
  font-size: max(36px, calc(var(--u) * 75));
}

.wedding-page h3 {
  font-size: max(14px, calc(var(--u) * 20));
  font-weight: 600;
}

/* :where() tiene questa regola a specificità zero: le regole dei singoli blocchi possono cambiare il margine. */
:where(.wedding-page) p {
  margin: 0;
}

.wedding-page figure {
  margin: 0;
}

.wedding-page figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Le ancore del menu e delle quicklinks non finiscono sotto la barra fissa. */
.wedding-page [id] {
  scroll-margin-top: calc(var(--u) * 96);
}

.wedding-page a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.wedding-page .wedding-kicker {
  margin: 0 0 calc(var(--u) * 4);
  color: var(--wedding-rose);
  font-size: max(10px, calc(var(--u) * 11.3));
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* Le sezioni occupano tutta la larghezza: le posizioni interne sono quelle del PDF. */
.wedding-page .wedding-wrap {
  width: 100%;
  margin: 0;
}

/* ---------- Hero ---------- */

.wedding-page .wedding-hero {
  position: relative;
  isolation: isolate;
  height: calc(var(--u) * 896);
  padding: calc(var(--u) * 464) 4.5% 0 calc(var(--u) * 72);
  color: #fff;
}

.wedding-page .wedding-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.58), transparent 75%);
}

.wedding-page .wedding-hero .wedding-hero__image {
  position: absolute;
  inset: 0;
  z-index: -2;
}

.wedding-page .wedding-hero__image img {
  object-position: center 53%;
}

.wedding-page .wedding-hero__copy {
  max-width: calc(var(--u) * 760);
}

.wedding-page .wedding-hero__location {
  margin: 0 0 calc(var(--u) * 20);
  font-size: max(10px, calc(var(--u) * 11.3));
  letter-spacing: 0.1em;
}

.wedding-page .wedding-hero h1 {
  margin: 0 0 calc(var(--u) * 38);
}

.wedding-page .wedding-hero__copy > p:not(.wedding-hero__location) {
  max-width: calc(var(--u) * 760);
  margin: 0 0 calc(var(--u) * 57);
  font-size: max(12px, calc(var(--u) * 15.3));
  line-height: 1.6;
}

.wedding-page .wedding-button {
  display: inline-block;
  margin: 0;
  padding: calc(var(--u) * 13) calc(var(--u) * 22);
  border: 1px solid #fff;
  border-radius: 99px;
  background: transparent;
  color: #fff;
  font-size: max(10px, calc(var(--u) * 13.3));
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  text-decoration: none;
}

.wedding-page .wedding-button::after {
  content: " →";
}

/* Accessi rapidi dell'hero: scorrimento, posizione, email e telefono (icone del PDF). */
.wedding-page .wedding-hero__quick {
  position: absolute;
  top: calc(var(--u) * 764);
  left: calc(var(--u) * 1386);
  width: calc(var(--u) * 270);
  height: calc(var(--u) * 74);
  color: #fff;
}

.wedding-page .wedding-hero__quick a,
.wedding-page .wedding-hero__quick span {
  position: absolute;
  display: block;
  color: inherit;
}

.wedding-page .wedding-hero__quick svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wedding-page .wedding-hero__scroll {
  top: calc(var(--u) * 4);
  left: calc(var(--u) * 4);
  font-size: max(8px, calc(var(--u) * 9.3));
  letter-spacing: 0.08em;
}

.wedding-page .wedding-hero__mouse {
  top: calc(var(--u) * 28);
  left: calc(var(--u) * 12);
  width: calc(var(--u) * 22);
  height: calc(var(--u) * 40);
}

.wedding-page .wedding-hero__divider {
  top: calc(var(--u) * 36);
  left: calc(var(--u) * 80);
  width: 1px;
  height: calc(var(--u) * 30);
  background: #fff;
}

.wedding-page .wedding-hero__pin {
  top: calc(var(--u) * 34);
  left: calc(var(--u) * 112);
  width: calc(var(--u) * 24);
  height: calc(var(--u) * 34);
}

.wedding-page .wedding-hero__mail {
  top: calc(var(--u) * 40);
  left: calc(var(--u) * 170);
  width: calc(var(--u) * 28);
  height: calc(var(--u) * 22);
}

.wedding-page .wedding-hero__tel {
  top: calc(var(--u) * 40);
  left: calc(var(--u) * 236);
  width: calc(var(--u) * 26);
  height: calc(var(--u) * 26);
}

/* ---------- Link con freccia ---------- */

.wedding-page .wedding-link {
  display: inline-block;
  vertical-align: top;
  margin: 0;
  padding: 0 0 calc(var(--u) * 6);
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: none;
  color: inherit;
  font-size: max(10px, calc(var(--u) * 13.3));
  font-weight: 600;
  line-height: 1.3;
  text-transform: uppercase;
  text-decoration: none;
}

.wedding-page .wedding-link::after {
  content: " ↗";
}

.wedding-page .wp-block-buttons {
  margin: 0;
}

/* ---------- Intro con ritratto sovrapposto ---------- */

.wedding-page .wedding-intro {
  position: relative;
  height: calc(var(--u) * 905);
}

.wedding-page .wedding-intro__copy {
  position: absolute;
  top: calc(var(--u) * 153);
  left: calc(var(--u) * 215);
  width: calc(var(--u) * 540);
  padding: 0;
}

.wedding-page .wedding-intro__copy h2 {
  margin: calc(var(--u) * 17) 0 calc(var(--u) * 22);
}

.wedding-page .wedding-intro__copy > p {
  max-width: calc(var(--u) * 500);
  line-height: 1.7;
}

.wedding-page .wedding-intro__portrait {
  position: absolute;
  top: calc(var(--u) * 150);
  left: calc(var(--u) * 904);
  z-index: 2;
  width: calc(var(--u) * 630);
  height: calc(var(--u) * 944);
  margin: 0 !important;
  border: 4px solid #fff;
  box-shadow: 0 6px 30px #0005;
}

/* ---------- Immagine wide ---------- */

.wedding-page .wedding-wide {
  position: relative;
  height: calc(var(--u) * 935);
}

/* La figura riempie la sezione: senza altezza l'immagine sborda e copre lo statement. */
.wedding-page .wedding-wide figure {
  height: 100%;
}

.wedding-page .wedding-wide img {
  object-position: center;
}

.wedding-page .wedding-statement {
  padding: calc(var(--u) * 54) 0 0 calc(var(--u) * 76);
  color: var(--wedding-rose);
  font-family: Cinzel, Georgia, serif;
  font-size: max(16px, calc(var(--u) * 35.3));
  line-height: 1.05;
  text-align: center;
}

/* ---------- La villa ---------- */

.wedding-page .wedding-villa {
  position: relative;
  width: 100%;
  height: calc(var(--u) * 932);
  padding: 0;
}

.wedding-page .wedding-villa__copy {
  position: absolute;
  top: calc(var(--u) * 188);
  left: calc(var(--u) * 192);
  width: calc(var(--u) * 520);
  padding: 0;
}

.wedding-page .wedding-villa__copy h2 {
  margin: calc(var(--u) * 26) 0 calc(var(--u) * 37);
}

.wedding-page .wedding-villa__copy ul {
  margin: 0;
  padding-left: calc(var(--u) * 30);
  list-style: disc;
  line-height: calc(var(--u) * 35);
}

.wedding-page .wedding-villa__image {
  position: absolute;
  top: calc(var(--u) * 137);
  left: calc(var(--u) * 810);
  width: calc(var(--u) * 810);
  height: calc(var(--u) * 695);
  margin: 0;
}

/* ---------- Percorso: 4 step numerati con connettori ---------- */

.wedding-page .wedding-journey {
  position: relative;
  width: 100%;
  height: calc(var(--u) * 1285);
  padding: 0;
  border-top: 1px solid var(--wedding-rule);
  border-bottom: 1px solid var(--wedding-rule);
  text-align: center;
}

.wedding-page .wedding-journey > .wedding-kicker {
  position: absolute;
  top: calc(var(--u) * 63);
  right: 0;
  left: 0;
  margin: 0;
  font-size: max(10px, calc(var(--u) * 20));
}

.wedding-page .wedding-journey > h2 {
  position: absolute;
  top: calc(var(--u) * 103);
  right: 0;
  left: 0;
  font-size: max(24px, calc(var(--u) * 40));
  text-transform: uppercase;
}

.wedding-page .wedding-journey > .wedding-journey__sub {
  position: absolute;
  top: calc(var(--u) * 190);
  right: 0;
  left: 0;
  margin: 0;
  color: var(--wedding-rose);
  font-size: max(14px, calc(var(--u) * 30));
  line-height: 1.2;
}

.wedding-page .wedding-journey > p:not(.wedding-kicker):not(.wedding-journey__sub) {
  position: absolute;
  top: calc(var(--u) * 256);
  left: calc(50% - var(--u) * 465);
  width: calc(var(--u) * 930);
}

.wedding-page .wedding-steps {
  position: absolute;
  top: calc(var(--u) * 441);
  left: calc(50% - var(--u) * 679);
  width: calc(var(--u) * 1326);
  height: calc(var(--u) * 660);
  margin: 0;
}

.wedding-page .wedding-step {
  position: absolute;
  top: 0;
  width: calc(var(--u) * 282);
  text-align: center;
}

.wedding-page .wedding-step:nth-child(1) {
  left: 0;
}

.wedding-page .wedding-step:nth-child(2) {
  left: calc(var(--u) * 336);
}

.wedding-page .wedding-step:nth-child(3) {
  left: calc(var(--u) * 686);
}

.wedding-page .wedding-step:nth-child(4) {
  left: calc(var(--u) * 1044);
}

.wedding-page .wedding-step h3 {
  margin: 0;
  font-size: max(14px, calc(var(--u) * 20));
  font-weight: 700;
  text-transform: uppercase;
}

.wedding-page .wedding-step > p:not(.wedding-step__number) {
  max-width: calc(var(--u) * 170);
  margin: calc(var(--u) * 5) auto 0;
  text-transform: capitalize;
  font-size: max(10px, calc(var(--u) * 10));
  line-height: calc(var(--u) * 14);
}

.wedding-page .wedding-step__number {
  position: relative;
  z-index: 1;
  width: calc(var(--u) * 46);
  height: calc(var(--u) * 46);
  margin: 0 auto;
  border: 1px solid var(--wedding-rose);
  border-radius: 50%;
  background: var(--wedding-paper);
  color: var(--wedding-ink);
  font-size: max(12px, calc(var(--u) * 25.3));
  line-height: calc(var(--u) * 44);
}

.wedding-page .wedding-step figure {
  position: absolute;
  top: calc(var(--u) * 171);
  left: 0;
  width: 100%;
  height: calc(var(--u) * 420);
}

.wedding-page .wedding-step:nth-child(even) figure {
  top: calc(var(--u) * 240);
}

/* Connettore tra un numero e il successivo, con la punta: la linea passa dietro i cerchi. */
.wedding-page .wedding-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: calc(var(--u) * 22.5);
  left: calc(var(--u) * 171);
  width: calc(var(--u) * 276);
  height: 1px;
  background: var(--wedding-rose);
}

.wedding-page .wedding-step:nth-child(2)::before {
  width: calc(var(--u) * 290);
}

.wedding-page .wedding-step:nth-child(3)::before {
  width: calc(var(--u) * 298);
}

.wedding-page .wedding-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: calc(var(--u) * 19);
  left: calc(var(--u) * 441);
  width: calc(var(--u) * 7);
  height: calc(var(--u) * 7);
  border-top: 1px solid var(--wedding-rose);
  border-right: 1px solid var(--wedding-rose);
  transform: rotate(45deg);
}

.wedding-page .wedding-step:nth-child(2)::after {
  left: calc(var(--u) * 455);
}

.wedding-page .wedding-step:nth-child(3)::after {
  left: calc(var(--u) * 463);
}

/* ---------- Quattro feature alternate ---------- */

.wedding-page .wedding-features {
  width: 100%;
  padding: calc(var(--u) * 184) 0 calc(var(--u) * 65);
}

.wedding-page .wedding-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  width: calc(var(--u) * 1354);
  margin: 0 0 0 calc(50% - var(--u) * 679);
}

.wedding-page .wedding-feature figure {
  height: max(300px, calc(var(--u) * 602));
}

.wedding-page .wedding-feature__copy {
  align-self: end;
  padding: 0 0 calc(var(--u) * 135) calc(var(--u) * 74);
}

.wedding-page .wedding-feature .wedding-kicker {
  margin-bottom: calc(var(--u) * 25);
}

.wedding-page .wedding-feature__copy h2 {
  margin: 0 0 calc(var(--u) * 40);
}

.wedding-page .wedding-feature__copy p:not(.wedding-kicker) {
  max-width: calc(var(--u) * 446);
}

/* Il tema toglie il contenitore dei pulsanti: il margine va sul link stesso. */
.wedding-page .wedding-feature .wedding-link {
  margin-top: calc(var(--u) * 27);
}

.wedding-page .wedding-feature--reverse figure {
  order: 2;
}

.wedding-page .wedding-feature--reverse .wedding-feature__copy {
  padding: 0 calc(var(--u) * 56) calc(var(--u) * 135) 0;
  text-align: right;
}

.wedding-page .wedding-feature--reverse .wedding-feature__copy p {
  margin-left: auto;
}

.wedding-page .wedding-feature--reverse .wedding-feature__copy p:not(.wedding-kicker) {
  max-width: calc(var(--u) * 460);
}

.wedding-page .wedding-feature--reverse .wp-block-buttons {
  justify-content: flex-end;
}

/* ---------- Citazione ---------- */

.wedding-page .wedding-quote {
  position: relative;
  width: 100%;
  height: calc(var(--u) * 516);
  padding: 0;
  background: var(--wedding-sage);
  color: #fff;
}

.wedding-page .wedding-quote figure {
  position: absolute;
  top: calc(var(--u) * 98);
  left: calc(var(--u) * 74);
  width: calc(var(--u) * 361);
  height: calc(var(--u) * 320);
}

.wedding-page .wedding-quote__copy {
  position: absolute;
  top: calc(var(--u) * 171);
  left: calc(var(--u) * 506);
  width: calc(var(--u) * 1030);
}

.wedding-page .wedding-quote__mark {
  position: absolute;
  top: calc(var(--u) * -93);
  left: 0;
  color: var(--wedding-gold);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: max(56px, calc(var(--u) * 180));
  line-height: 1;
}

.wedding-page .wedding-quote__text {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: max(20px, calc(var(--u) * 40));
  line-height: 1.125;
}

.wedding-page .wedding-quote__credit {
  margin: calc(var(--u) * 49) 0 0;
  font-size: max(10px, calc(var(--u) * 11.3));
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.wedding-page .wedding-quote__credit::before {
  content: "";
  display: inline-block;
  width: calc(var(--u) * 44);
  height: 1px;
  margin-right: calc(var(--u) * 14);
  background: currentColor;
  vertical-align: middle;
}

/* ---------- Spazi: slider orizzontale con frecce e miniature ---------- */

.wedding-page .wedding-location {
  position: relative;
  width: 100%;
  padding: calc(var(--u) * 102) calc(var(--u) * 36) calc(var(--u) * 409) 0;
  text-align: center;
}

.wedding-page .wedding-location > .wedding-kicker {
  margin: 0;
  font-size: max(10px, calc(var(--u) * 20));
}

.wedding-page .wedding-location > h2 {
  margin: calc(var(--u) * 25) 0 calc(var(--u) * 34);
}

.wedding-page .wedding-location > p:not(.wedding-kicker) {
  margin: 0 0 calc(var(--u) * 53);
}

/* ---------- Galleria masonry e FAQ ---------- */

.wedding-page .wedding-gallery {
  width: 100%;
  padding: calc(var(--u) * 38) 0 calc(var(--u) * 95) calc(var(--u) * 261);
}

.wedding-page .wedding-gallery h2,
.wedding-page .wedding-faq h2 {
  margin: calc(var(--u) * 15) 0 0;
  font-size: max(27px, calc(var(--u) * 50));
}

/* Filetto con due puntini alle estremità, come nel PDF, sopra la galleria e le FAQ. */
.wedding-page .wedding-gallery::before,
.wedding-page .wedding-faq::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(var(--u) * 261);
  width: calc(var(--u) * 1148);
  height: 1px;
  background: var(--wedding-rose);
}

.wedding-page .wedding-gallery::after,
.wedding-page .wedding-faq::after {
  content: "";
  position: absolute;
  top: -3px;
  left: calc(var(--u) * 258);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wedding-rose);
  box-shadow: calc(var(--u) * 1148) 0 0 var(--wedding-rose);
}

.wedding-page .wedding-gallery,
.wedding-page .wedding-faq {
  position: relative;
}

.wedding-page .wedding-gallery .wedding-link {
  margin-top: calc(var(--u) * 46);
}

/* Quattro colonne come nel PDF: larghezze, distanze e altezze delle tessere sono quelle del disegno. */
.wedding-page .wedding-gallery__grid {
  display: flex;
  align-items: flex-start;
  width: calc(var(--u) * 1239);
  margin: calc(var(--u) * 98) 0 0 calc(var(--u) * -41);
}

.wedding-page .wedding-gallery__col {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 21);
  width: calc(var(--u) * 290);
}

.wedding-page .wedding-gallery__col:nth-child(1) {
  width: calc(var(--u) * 292);
}

.wedding-page .wedding-gallery__col:nth-child(2) {
  margin-left: calc(var(--u) * 22);
}

.wedding-page .wedding-gallery__col:nth-child(3) {
  margin-left: calc(var(--u) * 26);
}

.wedding-page .wedding-gallery__col:nth-child(4) {
  margin-left: calc(var(--u) * 24);
}

.wedding-page .wedding-gallery__col figure {
  margin: 0;
  overflow: hidden;
}

.wedding-page .wedding-gallery__col figure img {
  height: 100%;
}

.wedding-page .wedding-gallery__col:nth-child(1) figure:nth-child(1) { height: calc(var(--u) * 366); }
.wedding-page .wedding-gallery__col:nth-child(1) figure:nth-child(2) { height: calc(var(--u) * 292); }
.wedding-page .wedding-gallery__col:nth-child(1) figure:nth-child(3) { height: calc(var(--u) * 392); }
.wedding-page .wedding-gallery__col:nth-child(1) figure:nth-child(4) { height: calc(var(--u) * 209); }
.wedding-page .wedding-gallery__col:nth-child(2) figure:nth-child(1) { height: calc(var(--u) * 324); }
.wedding-page .wedding-gallery__col:nth-child(2) figure:nth-child(2) { height: calc(var(--u) * 214); }
.wedding-page .wedding-gallery__col:nth-child(2) figure:nth-child(3) { height: calc(var(--u) * 364); }
.wedding-page .wedding-gallery__col:nth-child(2) figure:nth-child(4) { height: calc(var(--u) * 246); }
.wedding-page .wedding-gallery__col:nth-child(3) figure:nth-child(1) { height: calc(var(--u) * 364); }
.wedding-page .wedding-gallery__col:nth-child(3) figure:nth-child(2) { height: calc(var(--u) * 294); }
.wedding-page .wedding-gallery__col:nth-child(3) figure:nth-child(3) { height: calc(var(--u) * 390); }
.wedding-page .wedding-gallery__col:nth-child(3) figure:nth-child(4) { height: calc(var(--u) * 209); }
.wedding-page .wedding-gallery__col:nth-child(4) figure:nth-child(1) { height: calc(var(--u) * 324); }
.wedding-page .wedding-gallery__col:nth-child(4) figure:nth-child(2) { height: calc(var(--u) * 212); }
.wedding-page .wedding-gallery__col:nth-child(4) figure:nth-child(3) { height: calc(var(--u) * 364); }
.wedding-page .wedding-gallery__col:nth-child(4) figure:nth-child(4) { height: calc(var(--u) * 242); }

.wedding-page .wedding-faq {
  width: 100%;
  padding: calc(var(--u) * 40) 0 calc(var(--u) * 43) calc(var(--u) * 261);
}

.wedding-page .wedding-faq > p:not(.wedding-kicker) {
  margin: calc(var(--u) * 48) 0 0;
  font-size: max(12px, calc(var(--u) * 15.3));
}

.wedding-page .wedding-faq__list {
  max-width: calc(var(--u) * 1206);
  margin-top: calc(var(--u) * 10);
}

.wedding-page .wedding-faq details {
  padding: calc(var(--u) * 12) 0;
  border-bottom: 1px solid #d5c7bd;
}

.wedding-page .wedding-faq summary {
  position: relative;
  display: block;
  padding: 0 calc(var(--u) * 32) 0 0;
  font-size: max(12px, calc(var(--u) * 15.3));
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}

.wedding-page .wedding-faq summary::-webkit-details-marker {
  display: none;
}

.wedding-page .wedding-faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
}

.wedding-page .wedding-faq details[open] summary::after {
  content: "−";
}

.wedding-page .wedding-faq details p {
  max-width: 75ch;
  padding: calc(var(--u) * 16) 0 0;
}

/* ---------- Mobile: sotto i 767px ---------- */

@media (max-width: 767px) {
  .wedding-page {
    font-size: 15px;
  }

  .wedding-page h1 {
    font-size: 46px;
    line-height: 1;
  }

  .wedding-page h2 {
    font-size: 36px;
    line-height: 1.1;
  }

  .wedding-page .wedding-kicker {
    margin-bottom: 12px;
    font-size: 11px;
  }

  .wedding-page .wedding-hero,
  .wedding-page .wedding-intro,
  .wedding-page .wedding-villa,
  .wedding-page .wedding-journey,
  .wedding-page .wedding-features,
  .wedding-page .wedding-quote,
  .wedding-page .wedding-location,
  .wedding-page .wedding-gallery,
  .wedding-page .wedding-faq {
    position: relative;
    height: auto;
  }

  .wedding-page .wedding-hero {
    min-height: 88svh;
    padding: 112px 6% 64px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .wedding-page .wedding-hero__copy {
    max-width: none;
  }

  .wedding-page .wedding-hero h1 {
    margin-bottom: 24px;
  }

  .wedding-page .wedding-hero__copy > p:not(.wedding-hero__location) {
    max-width: none;
    margin-bottom: 20px;
    font-size: 15px;
  }

  .wedding-page .wedding-button {
    padding: 14px 22px;
  }

  .wedding-page .wedding-hero__quick {
    position: static;
    display: flex;
    gap: 22px;
    align-items: center;
    width: auto;
    height: auto;
    margin-top: 32px;
  }

  .wedding-page .wedding-hero__quick a,
  .wedding-page .wedding-hero__quick span {
    position: static;
  }

  .wedding-page .wedding-hero__scroll,
  .wedding-page .wedding-hero__divider {
    display: none;
  }

  .wedding-page .wedding-hero__mouse,
  .wedding-page .wedding-hero__pin,
  .wedding-page .wedding-hero__mail,
  .wedding-page .wedding-hero__tel {
    width: 22px;
    height: 22px;
  }

  .wedding-page .wedding-intro {
    padding: 80px 6% 0;
  }

  .wedding-page .wedding-intro__copy {
    position: static;
    width: auto;
  }

  .wedding-page .wedding-intro__copy > p {
    max-width: none;
  }

  .wedding-page .wedding-intro__portrait {
    position: relative;
    top: auto;
    left: auto;
    width: 78%;
    height: 520px;
    margin: 32px 0 0 auto !important;
  }

  .wedding-page .wedding-wide {
    height: 420px;
  }

  .wedding-page .wedding-statement {
    padding: 64px 6%;
    font-size: 26px;
  }

  .wedding-page .wedding-villa {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 0 6% 64px;
  }

  .wedding-page .wedding-villa__copy,
  .wedding-page .wedding-villa__image {
    position: static;
    width: auto;
    margin: 0;
  }

  .wedding-page .wedding-villa__image {
    height: 360px;
  }

  .wedding-page .wedding-journey {
    padding: 64px 6%;
    height: auto;
    text-align: center;
  }

  .wedding-page .wedding-journey > .wedding-kicker,
  .wedding-page .wedding-journey > h2,
  .wedding-page .wedding-journey > .wedding-journey__sub,
  .wedding-page .wedding-journey > p:not(.wedding-kicker):not(.wedding-journey__sub) {
    position: static;
    width: auto;
    margin-left: 0;
    margin-right: 0;
  }

  .wedding-page .wedding-steps {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 48px 16px;
    width: auto;
    height: auto;
    margin: 48px 0 0;
    left: auto;
  }

  .wedding-page .wedding-step {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
  }

  .wedding-page .wedding-step > p:not(.wedding-step__number) {
    max-width: none;
  }

  .wedding-page .wedding-step figure {
    position: relative;
    top: auto;
    left: auto;
    height: 240px;
    margin-top: 16px;
  }

  .wedding-page .wedding-step:nth-child(even) figure {
    top: auto;
  }

  .wedding-page .wedding-step::before,
  .wedding-page .wedding-step::after {
    display: none;
  }

  .wedding-page .wedding-features {
    padding: 80px 6%;
  }

  .wedding-page .wedding-feature {
    width: 100%;
    margin: 0 0 48px;
    grid-template-columns: 1fr;
  }

  .wedding-page .wedding-feature figure {
    height: 350px;
  }

  .wedding-page .wedding-feature--reverse figure {
    order: 0;
  }

  .wedding-page .wedding-feature__copy,
  .wedding-page .wedding-feature--reverse .wedding-feature__copy {
    padding: 32px 0;
    text-align: left;
  }

  .wedding-page .wedding-feature--reverse .wedding-feature__copy p {
    margin-left: 0;
  }

  .wedding-page .wedding-feature--reverse .wp-block-buttons {
    justify-content: flex-start;
  }

  .wedding-page .wedding-quote {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    height: auto;
    padding: 48px 6%;
  }

  .wedding-page .wedding-quote figure,
  .wedding-page .wedding-quote__copy {
    position: static;
    top: auto;
    left: auto;
    width: auto;
  }

  .wedding-page .wedding-quote figure {
    width: 55%;
    height: 220px;
  }

  .wedding-page .wedding-quote__mark {
    position: static;
    font-size: 64px;
  }

  .wedding-page .wedding-quote__credit {
    margin-left: 0;
  }

  .wedding-page .wedding-location {
    padding: 80px 6%;
  }

  .wedding-page .wedding-location > h2,
  .wedding-page .wedding-location > p:not(.wedding-kicker) {
    margin-left: 0;
    margin-right: 0;
  }

  .wedding-page .wedding-gallery,
  .wedding-page .wedding-faq {
    padding: 64px 6% 80px;
  }

  .wedding-page .wedding-gallery__grid {
    columns: 2;
    width: auto;
    margin: 40px 0 0;
  }
}

/* Mobile: annulla le posizioni e le misure del disegno (che dipendono da --u) sotto i 767px. */
@media (max-width: 767px) {
  .wedding-page .wedding-step:nth-child(n) {
    left: auto;
  }

  .wedding-page .wedding-step__number {
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 18px;
  }

  .wedding-page .wedding-gallery__grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: auto;
    margin: 40px 0 0;
  }

  .wedding-page .wedding-gallery__col {
    width: auto !important;
    margin-left: 0 !important;
    gap: 12px;
  }

  .wedding-page .wedding-gallery__col figure {
    height: auto !important;
    aspect-ratio: 4 / 5;
  }
}

/* Galleria degli spazi: lo stesso carosello della home, centrato sulla larghezza del disegno (1286 px a 1730). */
.wedding-page .wedding-location .carousel--spaces {
  width: min(100%, calc(var(--u) * 1286));
  margin-inline: auto;
}
@media (max-width: 767px) {
  .wedding-page .wedding-location .carousel--spaces {
    width: 100%;
  }
}

/* Ritocchi di confronto con il PDF (disegno a 1730 px). */
.wedding-page .wedding-journey {
  border-top: 0;
  border-bottom: 0;
  background-image: linear-gradient(var(--wedding-rule), var(--wedding-rule)), linear-gradient(var(--wedding-rule), var(--wedding-rule));
  background-repeat: no-repeat;
  background-size: calc(var(--u) * 1290) 1px;
  background-position: center top, center bottom;
}
.wedding-page .wedding-villa__copy ul {
  font-size: max(15px, calc(var(--u) * 20));
}
.wedding-page .wedding-hero__scroll {
  text-transform: uppercase;
}
.wedding-page .wedding-hero__copy > p:not(.wedding-hero__location) {
  max-width: calc(var(--u) * 740);
}

/* ---------- Telefono (sotto i 767px): ritocchi in fondo al foglio ----------
 * Stanno in fondo perché alcune regole del desktop, più avanti nel foglio, avevano la meglio sulle regole mobile.
 * Tutto è dentro la media query: a 767px e oltre la pagina non cambia. */
@media (max-width: 767px) {
  /* Hero: il paragrafo era limitato a 740 unità del disegno, cioè circa 165 px sul telefono. */
  .wedding-page .wedding-hero__copy > p:not(.wedding-hero__location) {
    max-width: none;
  }

  .wedding-page .wedding-hero__location {
    font-size: 11px;
  }

  /* "Scopri" e il filetto restano nascosti: la regola .wedding-hero__quick span li rendeva visibili. */
  .wedding-page .wedding-hero__quick .wedding-hero__scroll,
  .wedding-page .wedding-hero__quick .wedding-hero__divider {
    display: none;
  }

  .wedding-page .wedding-button,
  .wedding-page .wedding-link {
    font-size: 12px;
  }

  /* Villa: l'interlinea del disegno (35 unità, circa 8 px) faceva sovrapporre le righe dell'elenco. */
  .wedding-page .wedding-villa__copy ul {
    padding-left: 1.2em;
    line-height: 1.6;
  }

  /* Percorso: il testo dei passi era a 10 px con un'interlinea di 3 px. */
  .wedding-page .wedding-step > p:not(.wedding-step__number) {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.5;
  }

  /* Titolo del percorso: evita che il trattino finisca in testa alla riga. */
  .wedding-page .wedding-journey > h2 {
    text-wrap: balance;
  }

  /* Feature: i paragrafi erano larghi 446 unità, cioè circa 100 px sul telefono. */
  .wedding-page .wedding-feature__copy p:not(.wedding-kicker),
  .wedding-page .wedding-feature--reverse .wedding-feature__copy p:not(.wedding-kicker) {
    max-width: none;
  }

  .wedding-page .wedding-quote__credit {
    font-size: 11px;
  }

  /* Galleria e FAQ: il filetto con i due puntini parte e finisce sui margini del testo. */
  .wedding-page .wedding-gallery::before,
  .wedding-page .wedding-faq::before {
    left: 6%;
    width: 88%;
  }

  .wedding-page .wedding-gallery::after,
  .wedding-page .wedding-faq::after {
    left: calc(6% - 3.5px);
    box-shadow: calc(100cqw * 0.88) 0 0 var(--wedding-rose);
  }

  /* FAQ: lista a tutta larghezza, testo più grande, righe più comode da toccare. */
  .wedding-page .wedding-faq__list {
    max-width: none;
  }

  .wedding-page .wedding-faq > p:not(.wedding-kicker) {
    font-size: 15px;
  }

  .wedding-page .wedding-faq summary {
    padding-right: 32px;
    font-size: 15px;
  }

  .wedding-page .wedding-faq details {
    padding: 14px 0;
  }

  .wedding-page .wedding-faq details p {
    max-width: none;
    padding-top: 10px;
    font-size: 15px;
  }
}
