@font-face {
  font-family: "Playfair Display";
  src: url("/media/spizzichina/fonts/playfair-display-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("/media/spizzichina/fonts/playfair-display-latin-400-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("/media/spizzichina/fonts/playfair-display-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("/media/spizzichina/fonts/playfair-display-latin-600-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("/media/spizzichina/fonts/playfair-display-latin-700-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* Adattamento non visivo per Joomla/Gridbox: impedisce margini aggiunti dal modulo HTML. */
.spz-gridbox-host,
.spz-gridbox-host > .content,
.spz-gridbox-host .ba-html-content { width: 100%; max-width: none; margin: 0; padding: 0; }
[hidden] { display: none !important; }

:root {
  --spz-ink: #1e241e;
  --spz-forest: #25362c;
  --spz-moss: #5c6958;
  --spz-paper: #f2eee5;
  --spz-ivory: #faf7f0;
  --spz-stone: #d9d0c1;
  --spz-earth: #8d6650;
  --spz-bronze: #ab8f68;
  --spz-line: rgba(30, 36, 30, .18);
  --font-brand: "Playfair Display";
  --spz-display: var(--font-brand), "Times New Roman", serif;
  --spz-sans: var(--font-brand), "Times New Roman", serif;
  --spz-pad: clamp(1.25rem, 4vw, 5.5rem);
  --spz-section: clamp(6rem, 12vw, 11rem);
  --spz-ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { background: var(--spz-paper); scroll-behavior: auto; scrollbar-gutter: stable; }
body { --spz-display: var(--font-brand), "Times New Roman", serif; --spz-sans: var(--font-brand), "Times New Roman", serif; margin: 0; background: var(--spz-paper); color: var(--spz-ink); font-family: var(--spz-display); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
body.spz-menu-lock, body.spz-lightbox-lock { overflow: hidden; }
::selection { background: var(--spz-forest); color: var(--spz-paper); }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--spz-bronze); outline-offset: 4px; }

.spz-site { min-height: 100vh; overflow: clip; background: var(--spz-paper); }
.spz-main { min-height: 70vh; view-transition-name: page; }
.spz-section { padding: var(--spz-section) var(--spz-pad); }
.spz-kicker { margin: 0 0 1.4rem; font-size: .67rem; line-height: 1; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.spz-skip { position: fixed; z-index: 1000; top: .5rem; left: .5rem; padding: .8rem 1rem; background: white; color: black; transform: translateY(-150%); transition: transform .2s; }
.spz-skip:focus { transform: translateY(0); }

.spz-header { position: fixed; z-index: 90; top: 0; left: 0; width: 100%; height: 94px; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--spz-pad); color: var(--spz-ivory); transition: color .32s ease; }
.spz-header[data-spz-header-tone="dark"] { color: var(--spz-ink); }
.spz-brand { display: flex; align-items: center; gap: .85rem; font-family: var(--spz-display); font-size: .98rem; line-height: .92; letter-spacing: .02em; }
.spz-brand-logo { width: auto; height: 66px; object-fit: contain; filter: brightness(0) invert(1); transition: filter .32s ease; }
.spz-header[data-spz-header-tone="dark"] .spz-brand-logo { filter: brightness(0); }
.spz-brand-mark { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: var(--spz-display); font-size: 1.6rem; font-style: italic; }
.spz-header-actions { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.5rem); }
.spz-lang { font-size: .66rem; letter-spacing: .18em; }
.spz-header-cta { position: relative; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.spz-header-cta::after { content: ""; position: absolute; left: 0; bottom: -.5rem; width: 100%; height: 1px; background: currentColor; transform-origin: left; transition: transform .45s var(--spz-ease); }
.spz-header-cta:hover::after { transform: scaleX(.35); }
.spz-menu-toggle { display: flex; align-items: center; gap: .9rem; padding: .5rem 0; background: transparent; color: inherit; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.spz-menu-toggle i { position: relative; width: 30px; height: 12px; display: block; }
.spz-menu-toggle b { position: absolute; left: 0; width: 100%; height: 1px; background: currentColor; transition: transform .45s var(--spz-ease), top .45s var(--spz-ease); }
.spz-menu-toggle b:first-child { top: 2px; }
.spz-menu-toggle b:last-child { top: 10px; }
.spz-menu-toggle[aria-expanded="true"] b:first-child { top: 6px; transform: rotate(30deg); }
.spz-menu-toggle[aria-expanded="true"] b:last-child { top: 6px; transform: rotate(-30deg); }

.spz-menu { position: fixed; z-index: 80; inset: 0; display: grid; grid-template-columns: minmax(260px, .72fr) 2fr; background: #17221b; color: var(--spz-paper); visibility: hidden; opacity: 0; transform: translateY(-2%); transition: opacity .45s, transform .65s var(--spz-ease), visibility .45s; pointer-events: none; }
.spz-menu.is-open { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
.spz-menu-image { min-height: 100%; overflow: hidden; opacity: .68; }
.spz-menu-image img { height: 100%; object-fit: cover; transform: scale(1.05); transition: transform 1.2s var(--spz-ease); }
.spz-menu.is-open .spz-menu-image img { transform: scale(1); }
.spz-menu-grid { align-self: center; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 5rem); padding: 8rem clamp(2rem, 6vw, 7rem) 5rem; }
.spz-menu-group { opacity: 0; transform: translateY(20px); transition: opacity .6s var(--spz-ease) var(--delay), transform .6s var(--spz-ease) var(--delay); }
.spz-menu.is-open .spz-menu-group { opacity: 1; transform: translateY(0); }
.spz-menu-group > p { padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.52); font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; }
.spz-menu-group a { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .25rem 0; font-family: var(--spz-display); font-size: clamp(1.35rem, 2.15vw, 2.35rem); line-height: 1.18; }
.spz-menu-group a span { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--spz-ease); }
.spz-menu-group a:hover span { background-size: 100% 1px; }
.spz-menu-group a small { opacity: 0; transform: translate(-8px, 8px); transition: .35s; font-family: var(--spz-sans); font-size: .75rem; }
.spz-menu-group a:hover small { opacity: .7; transform: translate(0); }
.spz-menu-foot { position: absolute; right: var(--spz-pad); bottom: 2rem; display: flex; gap: 3rem; color: rgba(255,255,255,.55); font-size: .66rem; letter-spacing: .08em; }

.spz-home-hero, .spz-page-hero { position: relative; height: max(740px, 100svh); color: var(--spz-ivory); background: var(--spz-forest); overflow: hidden; }
.spz-home-hero-media, .spz-page-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; transform: scale(1.03); animation: spz-hero-in 1.8s var(--spz-ease) both; }
.spz-home-hero-shade, .spz-page-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,18,14,.78) 0%, rgba(11,18,14,.36) 52%, rgba(11,18,14,.18)), linear-gradient(0deg, rgba(10,15,12,.52), transparent 48%); }
.spz-home-hero-copy, .spz-page-hero-copy { position: absolute; z-index: 2; left: var(--spz-pad); bottom: clamp(5.5rem, 10vh, 8.5rem); width: min(880px, calc(100% - 2 * var(--spz-pad))); }
.spz-home-hero-copy h1, .spz-page-hero-copy h1 { margin: 0; max-width: 950px; font-family: var(--spz-display); font-size: clamp(4rem, 8.8vw, 9.5rem); line-height: .79; font-weight: 400; letter-spacing: -.045em; text-wrap: balance; }
.spz-home-hero-copy h1 em, .spz-page-hero-copy h1 em { font-weight: 400; }
.spz-home-hero-copy > p:not(.spz-kicker), .spz-page-hero-copy > p:not(.spz-kicker) { max-width: 610px; margin: 2.4rem 0 0; font-size: clamp(.95rem, 1.25vw, 1.14rem); line-height: 1.75; }
.spz-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.8rem; }
.spz-hero-index { position: absolute; z-index: 2; right: var(--spz-pad); bottom: 3rem; font-size: .59rem; letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; }
.spz-page-hero { height: min(84svh, 850px); }
.spz-page-hero-copy h1 { font-size: clamp(4rem, 8vw, 8.8rem); }
.spz-page-hero--center .spz-page-hero-copy { left: 50%; text-align: center; transform: translateX(-50%); }
.spz-page-hero--center .spz-page-hero-copy > p { margin-inline: auto; }
.spz-scroll-note { position: absolute; z-index: 2; right: var(--spz-pad); bottom: 2rem; display: flex; align-items: center; gap: 1rem; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; }
.spz-scroll-note i { display: block; width: 4.5rem; height: 1px; background: currentColor; }

.spz-button { --btn: var(--spz-ink); position: relative; width: fit-content; min-height: 49px; display: inline-flex; align-items: center; justify-content: space-between; gap: 2.3rem; padding: .9rem 1.1rem; border: 1px solid color-mix(in srgb, var(--btn) 35%, transparent); color: var(--btn); overflow: hidden; font-size: .64rem; line-height: 1.15; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; transition: color .5s, border-color .5s; }
.spz-button::before { content: ""; position: absolute; inset: 0; background: var(--btn); transform: translateX(-102%); transition: transform .55s var(--spz-ease); }
.spz-button span, .spz-button i { position: relative; z-index: 1; font-style: normal; }
.spz-button:hover { color: var(--spz-paper); border-color: var(--btn); }
.spz-button:hover::before { transform: translateX(0); }
.spz-button--fill { background: var(--spz-ink); color: var(--spz-paper); border-color: var(--spz-ink); }
.spz-button--fill::before { background: var(--spz-earth); }
.spz-button--light { --btn: var(--spz-paper); }
body .spz-button--light:hover,
body .spz-button--light:focus-visible {
  color: var(--spz-ink) !important;
}
.spz-signature { display: grid; grid-template-columns: repeat(4, 1fr); padding: 2.8rem var(--spz-pad); border-bottom: 1px solid var(--spz-line); background: var(--spz-ivory); }
.spz-signature div { min-height: 90px; display: flex; align-items: end; gap: 1rem; padding: 0 2rem; border-right: 1px solid var(--spz-line); }
.spz-signature div:first-child { padding-left: 0; }
.spz-signature div:last-child { border: 0; }
.spz-signature strong { font-family: var(--spz-display); font-size: clamp(2rem, 3.7vw, 4.2rem); line-height: .8; font-weight: 400; }
.spz-signature span { max-width: 140px; font-size: .65rem; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }

.spz-manifesto { display: grid; grid-template-columns: 1.45fr .65fr; gap: clamp(4rem, 12vw, 12rem); align-items: end; }
.spz-manifesto-title > span { display: block; margin-bottom: 3.5rem; font-family: var(--spz-display); font-size: clamp(5rem, 14vw, 15rem); line-height: .7; color: rgba(30,36,30,.07); white-space: nowrap; transform: translateX(-.07em); }
.spz-manifesto h2, .spz-section-title h2, .spz-feature h2, .spz-cuisine-copy h2, .spz-business-call h2, .spz-closing-cta h2, .spz-final-inline h2, .spz-contact h2 { margin: 0; font-family: var(--spz-display); font-size: clamp(3rem, 5.2vw, 6rem); line-height: .95; font-weight: 400; letter-spacing: -.035em; }
.spz-manifesto h2 em, .spz-feature h2 em { font-weight: 400; }
.spz-manifesto-copy > p { margin: 0 0 2.5rem; font-size: clamp(1rem, 1.25vw, 1.14rem); }

.spz-editorial-grid { display: grid; grid-template-columns: .75fr .75fr .42fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; background: var(--spz-ivory); }
.spz-image { margin: 0; }
.spz-image > div { overflow: hidden; background: var(--spz-stone); }
.spz-image img { aspect-ratio: 4/5; object-fit: cover; transition: transform 1.2s var(--spz-ease); }
.spz-image:hover img { transform: scale(1.025); }
.spz-image figcaption { margin-top: 1rem; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.spz-image--portrait { transform: translateY(-2rem); }
.spz-image--small { align-self: end; transform: translateY(5rem); }
.spz-image--small img { aspect-ratio: 3/4; }
.spz-section-title h2 { font-size: clamp(3rem, 4.8vw, 5.4rem); }
.spz-section-lead { margin: 2.2rem 0 0; font-size: 1rem; line-height: 1.8; }
.spz-editorial-grid-copy .spz-button { margin-top: 2.5rem; }
.spz-mini-list { display: grid; margin-top: 3rem; border-top: 1px solid var(--spz-line); }
.spz-mini-list span { padding: .85rem 0; border-bottom: 1px solid var(--spz-line); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }

.spz-feature { display: grid; grid-template-columns: 1fr 1fr; min-height: 850px; }
.spz-feature--dark { background: var(--spz-forest); color: var(--spz-paper); }
.spz-feature--paper { background: var(--spz-ivory); }
.spz-feature .spz-feature-copy { align-self: center; padding: var(--spz-section) var(--spz-pad); }
.spz-feature .spz-feature-copy > p:not(.spz-kicker) { max-width: 530px; margin: 2.5rem 0; }
.spz-feature > .spz-image, .spz-feature > .spz-image > div, .spz-feature > .spz-image img { height: 100%; }
.spz-feature > .spz-image img { aspect-ratio: auto; }

.spz-wedding-story { background: var(--spz-paper); }
.spz-wedding-story > .spz-section-title { max-width: 900px; }
.spz-journey { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 6rem; border-top: 1px solid var(--spz-line); border-bottom: 1px solid var(--spz-line); }
.spz-journey article { min-height: 310px; padding: 2rem; border-right: 1px solid var(--spz-line); }
.spz-journey article:first-child { padding-left: 0; }
.spz-journey article:last-child { border: 0; }
.spz-journey span, .spz-card-grid article > span, .spz-service-grid article > span { font-size: .61rem; letter-spacing: .12em; }
.spz-journey h3, .spz-card-grid h3, .spz-team-grid h2 { margin: 5rem 0 1.2rem; font-family: var(--spz-display); font-size: 2.4rem; line-height: 1; font-weight: 400; }
.spz-journey p { margin: 0; font-size: .85rem; }
.spz-centered-action { display: flex; justify-content: center; margin-top: 4rem; }

.spz-cuisine-band { display: grid; grid-template-columns: 1.2fr .8fr; background: #d7d0c3; }
.spz-cuisine-band > .spz-image, .spz-cuisine-band > .spz-image > div, .spz-cuisine-band > .spz-image img { height: 100%; }
.spz-cuisine-band > .spz-image img { aspect-ratio: auto; }
.spz-cuisine-copy { align-self: center; padding: var(--spz-section) var(--spz-pad); }
.spz-cuisine-copy > p:not(.spz-kicker) { margin: 2.3rem 0; }
.spz-business-call { display: grid; grid-template-columns: 1.1fr .65fr; gap: 12vw; align-items: end; }
.spz-business-call > div:last-child > p { margin: 0 0 2.5rem; }
.spz-closing-cta { position: relative; min-height: 800px; display: grid; place-items: center; overflow: hidden; color: var(--spz-paper); text-align: center; }
.spz-closing-cta > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.spz-closing-cta::after { content: ""; position: absolute; inset: 0; background: rgba(12,18,14,.58); }
.spz-closing-cta > div { position: relative; z-index: 1; max-width: 820px; padding: 5rem var(--spz-pad); }
.spz-closing-cta > div > p:not(.spz-kicker) { max-width: 560px; margin: 2rem auto; }
.spz-closing-cta .spz-button { margin: 2rem auto 0; }

.spz-intro-columns { display: grid; grid-template-columns: 1fr .7fr; gap: 10vw; align-items: start; }
.spz-intro-columns > div:last-child { font-size: 1.04rem; }
.spz-intro-columns > div:last-child p { margin: 0 0 1.8rem; }
.spz-inline-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.5rem; }
.spz-duo-images { display: grid; grid-template-columns: 1.25fr .75fr; gap: 3vw; padding-top: 0; }
.spz-duo-images .spz-image:last-child { margin-top: 9rem; }
.spz-duo-images .spz-image:first-child img { aspect-ratio: 5/4; }
.spz-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 5rem; border-top: 1px solid var(--spz-line); }
.spz-card-grid article { min-height: 300px; padding: 2rem; border-right: 1px solid var(--spz-line); }
.spz-card-grid article:first-child { padding-left: 0; }
.spz-card-grid article:last-child { border: 0; }
.spz-card-grid h3 { margin-top: 5rem; }
.spz-card-grid p { font-size: .83rem; }
.spz-final-inline { text-align: center; background: var(--spz-ivory); }
.spz-final-inline h2 { max-width: 1000px; margin: 0 auto; }
.spz-final-inline > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 3rem; }

.spz-timeline { max-width: 1280px; margin: 0 auto; }
.spz-timeline article { display: grid; grid-template-columns: .65fr 1fr 1fr; gap: 4vw; padding: 4rem 0; border-top: 1px solid var(--spz-line); align-items: start; }
.spz-timeline article:last-child { border-bottom: 1px solid var(--spz-line); }
.spz-timeline article > div { display: flex; gap: 2rem; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.spz-timeline article h2 { margin: 0; font-family: var(--spz-display); font-size: clamp(2.4rem, 4vw, 4.8rem); line-height: .95; font-weight: 400; }
.spz-timeline article p { margin: 0; }
.spz-history-note { display: grid; grid-template-columns: 1.1fr .75fr; gap: 8vw; align-items: center; background: var(--spz-ivory); }
.spz-history-note .spz-image img { aspect-ratio: 5/4; }
.spz-history-note h2 { margin: 0; font-family: var(--spz-display); font-size: clamp(3rem, 5vw, 5.5rem); line-height: .95; font-weight: 400; }
.spz-history-note > div > p:not(.spz-kicker) { margin: 2rem 0; }

.spz-space-list > article { display: grid; grid-template-columns: 1.1fr .9fr; gap: 8vw; align-items: center; padding: 5rem 0; border-top: 1px solid var(--spz-line); }
.spz-space-list > article.is-reverse .spz-image { order: 2; }
.spz-space-list > article > div:last-child > span { display: block; margin-bottom: 7rem; font-family: var(--spz-display); font-size: 2rem; }
.spz-space-list h2 { margin: 0; font-family: var(--spz-display); font-size: clamp(3rem, 5vw, 5.8rem); line-height: .92; font-weight: 400; }
.spz-space-list article > div > p:not(.spz-kicker) { margin: 2rem 0 1rem; }
.spz-space-list small { display: block; margin: 0 0 2rem; padding-left: 1rem; border-left: 1px solid var(--spz-earth); color: var(--spz-moss); font-size: .7rem; }
.spz-space-list .spz-image img { aspect-ratio: 5/4; }

.spz-team-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8vw; max-width: 1200px; margin: 0 auto; }
.spz-team-grid article:nth-child(2) { margin-top: 9rem; }
.spz-team-placeholder { aspect-ratio: 4/5; display: grid; place-items: center; margin-bottom: 2rem; background: #d8d0c1; color: rgba(30,36,30,.22); font-family: var(--spz-display); font-size: clamp(8rem, 17vw, 17rem); font-style: italic; }
.spz-team-photo { aspect-ratio: 1; overflow: hidden; margin-bottom: 2rem; background: #d8d0c1; }
.spz-team-photo img { width: 100%; height: 100%; object-fit: contain; }
.spz-team-grid h2 { margin: 0 0 1rem; font-size: 3.4rem; }

.spz-day-flow { max-width: 1220px; margin: 0 auto; }
.spz-day-flow article { display: grid; grid-template-columns: .2fr 1fr; padding: 2.5rem 0; border-top: 1px solid var(--spz-line); }
.spz-day-flow article:last-child { border-bottom: 1px solid var(--spz-line); }
.spz-day-flow article > span { font-size: .65rem; letter-spacing: .12em; }
.spz-day-flow article > div { display: grid; grid-template-columns: .6fr 1fr; gap: 4vw; }
.spz-day-flow h2 { margin: 0; font-family: var(--spz-display); font-size: clamp(2.4rem, 4.5vw, 4.5rem); line-height: .9; font-weight: 400; }
.spz-day-flow p { margin: 0; }
.spz-gallery-strip { display: grid; grid-template-columns: repeat(3, 1fr); }
.spz-gallery-strip .spz-image img { aspect-ratio: 3/4; }

.spz-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.spz-service-grid article { min-height: 340px; padding: 2.5rem; border-top: 1px solid var(--spz-line); border-right: 1px solid var(--spz-line); }
.spz-service-grid article:nth-child(3n) { border-right: 0; }
.spz-service-grid article:nth-last-child(-n + 3) { border-bottom: 1px solid var(--spz-line); }
.spz-service-grid h2 { margin: 6rem 0 1.5rem; font-family: var(--spz-display); font-size: clamp(2.2rem, 3.5vw, 4rem); line-height: .95; font-weight: 400; }
.spz-business-visual { padding-top: 0; }
.spz-business-visual .spz-image img { aspect-ratio: 16/7; object-fit: cover; }

.spz-destination-steps { background: var(--spz-ivory); }
.spz-cuisine-process { display: grid; grid-template-columns: 1fr .9fr; gap: 8vw; align-items: center; }
.spz-cuisine-process .spz-image img { aspect-ratio: 4/5; }
.spz-cuisine-process > div:last-child article { display: grid; grid-template-columns: .2fr 1fr; padding: 1.7rem 0; border-top: 1px solid var(--spz-line); }
.spz-cuisine-process article h3 { margin: 0; font-family: var(--spz-display); font-size: 2rem; font-weight: 400; }
.spz-cuisine-process article p { grid-column: 2; margin: .5rem 0 0; font-size: .82rem; }

.spz-filters { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 4rem; }
.spz-filters button, .spz-form-tabs button { padding: .65rem 1rem; border: 1px solid var(--spz-line); background: transparent; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; transition: background .3s, color .3s; }
.spz-filters button.is-active, .spz-filters button:hover, .spz-form-tabs button.is-active { background: var(--spz-ink); color: var(--spz-paper); }
.spz-gallery-masonry { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; align-items: start; }
.spz-gallery-masonry button { position: relative; padding: 0; background: var(--spz-stone); overflow: hidden; text-align: left; }
.spz-gallery-masonry img { aspect-ratio: 4/3; object-fit: cover; transition: transform .9s var(--spz-ease), filter .6s; }
.spz-gallery-masonry button.is-tall img { aspect-ratio: 3/4; }
.spz-gallery-masonry button:hover img { transform: scale(1.03); filter: brightness(.82); }
.spz-gallery-masonry span { position: absolute; left: 1rem; bottom: 1rem; padding: .5rem .7rem; background: rgba(250,247,240,.9); font-size: .57rem; letter-spacing: .1em; text-transform: uppercase; }
.spz-lightbox { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; padding: 4rem; background: rgba(12,18,14,.94); color: white; }
.spz-lightbox-content { display: grid; place-items: center; max-width: 90vw; max-height: 88vh; }
.spz-lightbox img { width: auto; max-width: 90vw; max-height: 80vh; object-fit: contain; }
.spz-lightbox button { position: absolute; top: 1rem; right: 2rem; background: transparent; color: white; font-family: var(--spz-display); font-size: 3rem; }
.spz-lightbox p { margin: .8rem 0 0; text-align: center; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }

.spz-faq-page { max-width: 1200px; margin: 0 auto; }
.spz-faq-page .spz-section-title { max-width: 700px; margin-bottom: 5rem; }
.spz-accordion { border-top: 1px solid var(--spz-line); }
.spz-accordion details { border-bottom: 1px solid var(--spz-line); }
.spz-accordion summary { position: relative; display: grid; grid-template-columns: .12fr 1fr auto; gap: 2rem; align-items: center; padding: 2.3rem 0; list-style: none; cursor: pointer; font-family: var(--spz-display); font-size: clamp(1.6rem, 2.5vw, 2.7rem); line-height: 1.1; }
.spz-accordion summary::-webkit-details-marker { display: none; }
.spz-accordion summary span { font-family: var(--spz-sans); font-size: .62rem; letter-spacing: .12em; }
.spz-accordion summary i { font-family: var(--spz-sans); font-size: 1rem; font-style: normal; transition: transform .35s; }
.spz-accordion details[open] summary i { transform: rotate(45deg); }
.spz-accordion details > p { max-width: 720px; margin: -1rem 0 2.5rem 12%; }

.spz-contact { display: grid; grid-template-columns: .7fr 1.3fr; gap: 9vw; }
.spz-contact-details { display: flex; flex-direction: column; align-items: flex-start; }
.spz-contact-details address { margin: 2rem 0; font-style: normal; }
.spz-contact-details > a { margin: .2rem 0; border-bottom: 1px solid var(--spz-line); }
.spz-contact-details .spz-map-link { margin-top: 2rem; }
.spz-contact-details small { margin-top: 3rem; color: var(--spz-moss); font-size: .67rem; }
.spz-form { padding: clamp(1.5rem, 4vw, 4rem); background: var(--spz-ivory); }
.spz-form-tabs { display: flex; gap: .6rem; margin-bottom: 3rem; }
.spz-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
.spz-form label { display: block; margin-bottom: 1.4rem; }
.spz-form label > span { display: block; margin-bottom: .55rem; font-size: .6rem; letter-spacing: .11em; text-transform: uppercase; }
.spz-form input:not([type="checkbox"]), .spz-form textarea { width: 100%; border: 0; border-bottom: 1px solid var(--spz-line); border-radius: 0; outline: 0; background: transparent; transition: border-color .3s; }
.spz-form input { height: 48px; }
.spz-form textarea { resize: vertical; }
.spz-form input:focus, .spz-form textarea:focus { border-bottom-color: var(--spz-earth); }
.spz-form .spz-consent { display: grid; grid-template-columns: auto 1fr; gap: .7rem; margin-top: 2rem; align-items: start; }
.spz-form .spz-consent span { margin: 0; font-size: .62rem; line-height: 1.6; letter-spacing: 0; text-transform: none; }
.spz-submit { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 1.2rem; background: var(--spz-ink); color: var(--spz-paper); font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; transition: background .3s; }
.spz-submit:hover { background: var(--spz-earth); }
.spz-form-status { padding: 1rem; background: #e5ecdf; font-size: .74rem; }

.spz-footer { padding: 8rem var(--spz-pad) 2rem; background: #18221b; color: var(--spz-paper); }
.spz-footer-top { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10vw; padding-bottom: 7rem; }
.spz-footer-brand h2 { margin: 2rem 0; font-family: var(--spz-display); font-size: clamp(3.5rem, 6.5vw, 7rem); line-height: .75; font-weight: 400; }
.spz-footer-logo { width: min(360px, 80vw); height: auto; margin-bottom: 2rem; filter: brightness(0) invert(1); }
.spz-footer-brand p { color: rgba(255,255,255,.55); }
.spz-footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.spz-footer-nav > div { display: flex; flex-direction: column; align-items: flex-start; }
.spz-footer-nav p { margin-bottom: 2rem; color: rgba(255,255,255,.4); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.spz-footer-nav a { padding: .3rem 0; font-family: var(--spz-display); font-size: 1.4rem; }
.spz-footer-bottom { display: grid; grid-template-columns: 1fr auto auto; gap: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.45); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.spz-mobile-actions { display: none; }

.spz-scroll-progress { position: fixed; z-index: 95; top: 0; right: 0; width: 2px; height: calc(var(--spz-scroll-progress, 0) * 100%); background: var(--spz-bronze); transform-origin: top; pointer-events: none; }

/* Motion system: progressive enhancement, one observer and CSS-only reveals. */
.spz-motion-ready [data-reveal]:not([data-motion="hero-copy"]) {
  --motion-x: 0px;
  --motion-y: 32px;
  --motion-scale: 1;
  --motion-duration: .9s;
  opacity: 0;
  transform: translate3d(var(--motion-x), var(--motion-y), 0) scale(var(--motion-scale));
  transition:
    opacity var(--motion-duration) var(--spz-ease) var(--delay, var(--motion-delay, 0ms)),
    transform var(--motion-duration) var(--spz-ease) var(--delay, var(--motion-delay, 0ms)),
    clip-path calc(var(--motion-duration) + .16s) var(--spz-ease) var(--delay, var(--motion-delay, 0ms));
  will-change: opacity, transform;
}
.spz-motion-ready [data-reveal]:not([data-motion="hero-copy"]).is-visible { opacity: 1; transform: translate3d(0, 0, 0) scale(1); will-change: auto; }
.spz-motion-ready [data-motion="card"] { --motion-y: 42px; --motion-scale: .985; }
.spz-motion-ready [data-motion="headline"] { --motion-y: 0px; clip-path: inset(0 0 105% 0); }
.spz-motion-ready [data-motion="headline"].is-visible { clip-path: inset(-8% 0 -8% 0); }
.spz-motion-ready [data-motion="line"] { --motion-x: -22px; --motion-y: 0px; }
.spz-motion-ready [data-motion="media"] { --motion-x: 0px; --motion-y: 0px; opacity: 1; clip-path: inset(0 0 100% 0); }
.spz-motion-ready [data-motion="media"].is-visible { clip-path: inset(0); }

.spz-motion-ready [data-motion="hero-copy"] > * { opacity: 0; transform: translate3d(0, 1.1em, 0); transition: opacity .7s var(--spz-ease), transform .85s var(--spz-ease); }
.spz-motion-ready [data-motion="hero-copy"].is-visible > * { opacity: 1; transform: translate3d(0, 0, 0); }
.spz-motion-ready [data-motion="hero-copy"].is-visible > :nth-child(2) { transition-delay: .1s; }
.spz-motion-ready [data-motion="hero-copy"].is-visible > :nth-child(3) { transition-delay: .2s; }

.spz-motion-ready .spz-image[data-reveal] { --motion-x: 0px; --motion-y: 0px; opacity: 1; }
.spz-motion-ready .spz-image[data-motion="wipe-left"] > div { clip-path: inset(0 100% 0 0); }
.spz-motion-ready .spz-image[data-motion="wipe-right"] > div { clip-path: inset(0 0 0 100%); }
.spz-motion-ready .spz-image[data-reveal] > div { transition: clip-path 1.08s var(--spz-ease) var(--delay, var(--motion-delay, 0ms)); }
.spz-motion-ready .spz-image[data-reveal].is-visible > div { clip-path: inset(0); }
.spz-motion-ready .spz-image[data-reveal] img { transform: scale(1.075); transition: transform 1.35s var(--spz-ease) var(--delay, var(--motion-delay, 0ms)); }
.spz-motion-ready .spz-image[data-reveal].is-visible img { transform: scale(1); }
.spz-motion-ready .spz-image[data-reveal].is-visible:hover img { transform: scale(1.025); }

/* Page-specific rhythm: same engine, different editorial behaviour. */
:is(.spz-main[data-page="history"], body[data-spz-page="history"]) .spz-timeline article { --motion-x: -32px; --motion-y: 0px; }
:is(.spz-main[data-page="history"], body[data-spz-page="history"]) .spz-timeline article:nth-child(even) { --motion-x: 32px; }
:is(.spz-main[data-page="spaces"], body[data-spz-page="spaces"]) .spz-space-list article:nth-child(odd) [data-reveal]:not(.spz-image) { --motion-x: 36px; --motion-y: 0px; }
:is(.spz-main[data-page="spaces"], body[data-spz-page="spaces"]) .spz-space-list article:nth-child(even) [data-reveal]:not(.spz-image) { --motion-x: -36px; --motion-y: 0px; }
:is(.spz-main[data-page="church"], body[data-spz-page="church"]) [data-reveal] { --motion-duration: 1.08s; }
:is(.spz-main[data-page="church"], body[data-spz-page="church"]) .spz-feature-copy { --motion-y: 22px; }
:is(.spz-main[data-page="team"], body[data-spz-page="team"]) .spz-team-grid article:first-child { --motion-x: -28px; --motion-y: 0px; }
:is(.spz-main[data-page="team"], body[data-spz-page="team"]) .spz-team-grid article:last-child { --motion-x: 28px; --motion-y: 0px; }
:is(.spz-main[data-page="weddings"], body[data-spz-page="weddings"]) .spz-day-flow article { --motion-x: -28px; --motion-y: 0px; }
:is(.spz-main[data-page="weddings"], body[data-spz-page="weddings"]) .spz-day-flow article:nth-child(even) { --motion-x: 28px; }
:is(.spz-main[data-page="inclusive"], body[data-spz-page="inclusive"]) .spz-service-grid article,
:is(.spz-main[data-page="business"], body[data-spz-page="business"]) .spz-service-grid article { --motion-scale: .97; --motion-y: 24px; }
:is(.spz-main[data-page="destination"], body[data-spz-page="destination"]) .spz-journey article { --motion-y: 48px; }
:is(.spz-main[data-page="cuisine"], body[data-spz-page="cuisine"]) .spz-cuisine-process [data-reveal]:nth-child(even) { --motion-x: 26px; --motion-y: 0px; }
:is(.spz-main[data-page="gallery"], body[data-spz-page="gallery"]) .spz-gallery-masonry button { --motion-scale: .965; --motion-y: 20px; }
:is(.spz-main[data-page="faq"], body[data-spz-page="faq"]) .spz-accordion details { --motion-x: -24px; --motion-y: 0px; }
:is(.spz-main[data-page="contact"], body[data-spz-page="contact"]) .spz-contact-details { --motion-x: -26px; --motion-y: 0px; }
:is(.spz-main[data-page="contact"], body[data-spz-page="contact"]) .spz-form { --motion-x: 26px; --motion-y: 0px; }

.spz-cursor-dot, .spz-cursor-ring { position: fixed; z-index: 300; top: 0; left: 0; opacity: 0; pointer-events: none; border-radius: 50%; will-change: transform; transition: opacity .15s, width .3s, height .3s, margin .3s, background .3s; }
.spz-cursor-dot.is-active, .spz-cursor-ring.is-active { opacity: 1; }
.spz-cursor-dot { width: 4px; height: 4px; margin: -2px; background: white; mix-blend-mode: difference; }
.spz-cursor-ring { width: 36px; height: 36px; margin: -18px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.8); color: white; mix-blend-mode: difference; }
.spz-cursor-ring span { font-size: 0; }
.spz-cursor-ring.has-label { width: 74px; height: 74px; margin: -37px; background: white; color: black; }
.spz-cursor-ring.has-label span { font-size: .52rem; letter-spacing: .08em; text-transform: uppercase; }

@keyframes spz-hero-in { from { transform: scale(1.12); filter: brightness(.7); } to { transform: scale(1.03); filter: brightness(1); } }

/* Home · slider ricostruito dai media e dai testi del sito originale */
.spz-home-slider { position: relative; min-height: 760px; height: 100svh; overflow: hidden; background: #101710; color: var(--spz-ivory); }
.spz-home-slider-track, .spz-home-slide { position: absolute; inset: 0; }
.spz-home-slide { visibility: hidden; opacity: 0; transition: opacity 1.1s var(--spz-ease), visibility 1.1s; }
.spz-home-slide.is-active { visibility: visible; opacity: 1; z-index: 1; }
.spz-home-slide > img { position: absolute; inset: 0; height: 100%; object-fit: cover; transform: scale(1.085); transition: transform 7.5s cubic-bezier(.2,.6,.2,1); }
.spz-home-slide.is-active > img { transform: scale(1.015); }
.spz-home-slide-copy { position: absolute; z-index: 2; top: 52%; left: 50%; width: min(1180px, calc(100% - 2 * var(--spz-pad))); text-align: center; transform: translate(-50%, -50%); }
.spz-home-slide-copy > * { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--spz-ease), transform .8s var(--spz-ease); }
.spz-home-slide.is-active .spz-home-slide-copy > * { opacity: 1; transform: translateY(0); }
.spz-home-slide.is-active .spz-home-slide-copy h1 { transition-delay: .12s; }
.spz-home-slide.is-active .spz-home-slide-copy > p:not(.spz-kicker) { transition-delay: .2s; }
.spz-home-slide.is-active .spz-home-slide-copy .spz-hero-actions { transition-delay: .28s; }
.spz-home-slide-copy h1 { margin: 0; font-size: clamp(5rem, 11.5vw, 12.8rem); line-height: .77; font-weight: 400; letter-spacing: -.055em; text-wrap: balance; }
.spz-home-slide-copy > p:not(.spz-kicker) { margin: 2rem auto 0; font-size: clamp(1rem, 1.45vw, 1.4rem); font-style: italic; letter-spacing: .03em; }
.spz-home-slide-copy .spz-hero-actions { justify-content: center; }
.spz-home-slider-controls { position: absolute; z-index: 4; left: 50%; bottom: 2.2rem; display: flex; align-items: center; gap: 1rem; transform: translateX(-50%); font-size: .58rem; letter-spacing: .16em; }
.spz-home-slider-dots { display: flex; gap: .5rem; }
.spz-home-slider-dots button { width: 42px; height: 18px; display: grid; place-items: center; padding: 0; background: transparent; }
.spz-home-slider-dots i { width: 100%; height: 1px; display: block; background: rgba(255,255,255,.35); }
.spz-home-slider-dots button.is-active i { height: 2px; background: white; }
.spz-home-slider-arrows { position: absolute; z-index: 4; right: var(--spz-pad); bottom: 1.7rem; display: flex; }
.spz-home-slider-arrows button { width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.38); background: transparent; color: white; font-size: 1.1rem; transition: background .3s, color .3s; }
.spz-home-slider-arrows button + button { border-left: 0; }
.spz-home-slider-arrows button:hover { background: white; color: var(--spz-ink); }

/* Video originale */
.spz-film-section { background: #17231b; color: var(--spz-paper); }
.spz-film-heading { display: grid; grid-template-columns: .35fr 1fr; gap: 6vw; align-items: end; margin-bottom: clamp(3rem, 7vw, 7rem); }
.spz-film-heading h2 { max-width: 1040px; margin: 0; font-size: clamp(3.7rem, 7vw, 8.4rem); line-height: .86; font-weight: 400; letter-spacing: -.045em; }
.spz-film-frame { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #080b09; clip-path: inset(0); }
.spz-film-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Servizi · pannelli interattivi */
.spz-home-services { background: var(--spz-ivory); }
.spz-home-services-head { display: grid; grid-template-columns: .7fr 1.3fr .75fr; gap: 5vw; align-items: end; margin-bottom: clamp(3.5rem, 6vw, 6.5rem); }
.spz-home-services-head h2 { margin: 0; font-size: clamp(3.8rem, 6.2vw, 7.2rem); line-height: .86; font-weight: 400; letter-spacing: -.045em; }
.spz-home-services-head > p:last-child { margin: 0; }
.spz-service-panels { height: min(72vw, 760px); min-height: 620px; display: flex; gap: 1px; overflow: hidden; background: var(--spz-paper); }
.spz-service-panel { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; color: white; isolation: isolate; transition: flex .9s var(--spz-ease); }
.spz-service-panel.is-featured { flex: 1.45 1 0; }
.spz-service-panel:hover, .spz-service-panel:focus-visible { flex: 3.1 1 0; outline: 0; }
.spz-service-panel > img { position: absolute; inset: 0; height: 100%; object-fit: cover; filter: saturate(.76); transform: scale(1.08); transition: transform 1.2s var(--spz-ease), filter .8s; }
.spz-service-panel:hover > img, .spz-service-panel:focus-visible > img { filter: saturate(1); transform: scale(1.015); }
.spz-service-panel-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg, rgba(8,12,9,.9), rgba(8,12,9,.04) 68%), linear-gradient(90deg, rgba(8,12,9,.36), transparent); }
.spz-service-panel-number { position: absolute; z-index: 2; top: 1.8rem; left: 1.8rem; font-size: .62rem; letter-spacing: .15em; }
.spz-service-panel-copy { position: absolute; z-index: 2; right: 1.8rem; bottom: 2rem; left: 1.8rem; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .8rem; }
.spz-service-panel-copy strong { display: block; font-size: clamp(2rem, 3.2vw, 4.2rem); line-height: .88; font-weight: 400; writing-mode: vertical-rl; transform: rotate(180deg); transition: transform .8s var(--spz-ease), writing-mode 0s .4s; }
.spz-service-panel-copy small { position: absolute; left: 0; bottom: 0; width: min(300px, 72%); opacity: 0; transform: translateY(18px); font-size: .8rem; line-height: 1.55; transition: opacity .4s .18s, transform .6s var(--spz-ease) .18s; }
.spz-service-panel-copy i { font-style: normal; font-size: 1.2rem; }
.spz-service-panel:hover .spz-service-panel-copy strong, .spz-service-panel:focus-visible .spz-service-panel-copy strong { writing-mode: horizontal-tb; transform: none; }
.spz-service-panel:hover .spz-service-panel-copy small, .spz-service-panel:focus-visible .spz-service-panel-copy small { opacity: 1; transform: translateY(-4.8rem); }

@media (hover: none) {
  .spz-service-panels { height: auto; min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spz-service-panel, .spz-service-panel:hover, .spz-service-panel:focus-visible { min-height: 360px; flex: none; }
  .spz-service-panel.is-featured { grid-column: 1 / -1; min-height: 500px; }
  .spz-service-panel-copy strong,
  .spz-service-panel:hover .spz-service-panel-copy strong,
  .spz-service-panel:focus-visible .spz-service-panel-copy strong { writing-mode: horizontal-tb; transform: none; font-size: clamp(2.2rem, 6vw, 4.6rem); }
  .spz-service-panel-copy small,
  .spz-service-panel:hover .spz-service-panel-copy small,
  .spz-service-panel:focus-visible .spz-service-panel-copy small { position: static; grid-column: 1; width: min(88%, 420px); opacity: 1; transform: none; }
}

/* Focus matrimoni */
.spz-wedding-focus { position: relative; min-height: 920px; height: 100svh; overflow: hidden; background: #141714; color: white; }
.spz-wedding-focus > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: 50% 42%; transform: scale(1.02); }
.spz-wedding-focus-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,15,12,.14), rgba(12,15,12,.72)), linear-gradient(0deg, rgba(10,12,10,.65), transparent 55%); }
.spz-wedding-focus-title { position: absolute; z-index: 1; top: 12%; left: var(--spz-pad); display: flex; flex-direction: column; font-size: clamp(7rem, 18vw, 20rem); line-height: .6; letter-spacing: -.075em; }
.spz-wedding-focus-title span { font-style: italic; font-weight: 400; }
.spz-wedding-focus-title strong { margin-left: .45em; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.82); font-weight: 400; }
.spz-wedding-focus-copy { position: absolute; z-index: 2; right: var(--spz-pad); bottom: clamp(4rem, 8vh, 7rem); width: min(520px, 42vw); }
.spz-wedding-focus-copy h2 { margin: 0; font-size: clamp(3rem, 5vw, 6rem); line-height: .88; font-weight: 400; letter-spacing: -.04em; }
.spz-wedding-focus-copy > p:not(.spz-kicker) { margin: 2rem 0; }

/* Testate magazine · ogni pagina ha una composizione propria */
.spz-page-hero--magazine { position: relative; min-height: 760px; height: 100svh; overflow: hidden; background: var(--spz-forest); color: white; }
.spz-page-hero-media { position: absolute; inset: 0; overflow: hidden; animation: spz-media-curtain 1.25s var(--spz-ease) both; }
.spz-page-hero-media img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--spz-parallax-y, 0px), 0) scale(1.08); animation: spz-editorial-image 1.8s var(--spz-ease) .12s both; will-change: transform; }
.spz-page-hero--magazine .spz-page-hero-copy { z-index: 3; }
.spz-page-hero--magazine .spz-page-hero-copy h1 { max-width: none; font-size: clamp(4.8rem, 8.2vw, 9.8rem); line-height: .79; letter-spacing: -.06em; }
.spz-page-hero--magazine .spz-page-hero-copy > p:not(.spz-kicker) { max-width: 530px; }
.spz-magazine-folio { position: absolute; z-index: 3; top: 7.8rem; right: var(--spz-pad); display: flex; gap: 2rem; padding-top: .75rem; border-top: 1px solid currentColor; font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; }
.spz-magazine-folio b { font-weight: 400; opacity: .58; }

.spz-page-hero--castle .spz-page-hero-copy { bottom: 6rem; }
.spz-page-hero--castle .spz-page-hero-shade { background: linear-gradient(90deg, rgba(9,14,10,.7), transparent 68%), linear-gradient(0deg, rgba(9,14,10,.55), transparent 55%); }
.spz-page-hero--castle .spz-page-hero-copy h1 { width: 85vw; }

.spz-page-hero--history { background: var(--spz-paper); color: var(--spz-ink); }
.spz-page-hero--history .spz-page-hero-media { left: 44%; }
.spz-page-hero--history .spz-page-hero-shade { z-index: 1; background: linear-gradient(90deg, var(--spz-paper) 0 31%, rgba(242,238,229,.94) 42%, transparent 68%); }
.spz-page-hero--history .spz-page-hero-copy { bottom: 8%; width: min(760px, 58vw); }
.spz-page-hero--history .spz-page-hero-copy h1 { font-size: clamp(5rem, 9vw, 10.5rem); }

.spz-page-hero--spaces .spz-page-hero-media { inset: 0 26% 0 0; }
.spz-page-hero--spaces .spz-page-hero-shade { background: linear-gradient(90deg, rgba(9,14,10,.66), rgba(9,14,10,.06) 64%); }
.spz-page-hero--spaces .spz-page-hero-copy { left: auto; right: var(--spz-pad); bottom: 6%; width: min(820px, 67vw); text-align: right; }
.spz-page-hero--spaces .spz-page-hero-copy > p { margin-left: auto; }
.spz-page-hero--spaces .spz-magazine-folio { top: 7.8rem; right: 2.5rem; bottom: auto; writing-mode: vertical-rl; }

.spz-page-hero--church .spz-page-hero-shade { background: rgba(12,15,12,.5); }
.spz-page-hero--church .spz-page-hero-copy { left: 50%; bottom: 11%; width: min(1180px, calc(100% - 2 * var(--spz-pad))); text-align: center; transform: translateX(-50%); }
.spz-page-hero--church .spz-page-hero-copy h1 { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.92); font-size: clamp(5.2rem, 10vw, 12rem); }
.spz-page-hero--church .spz-page-hero-copy > p { margin-inline: auto; }

.spz-page-hero--team { background: var(--spz-ivory); color: var(--spz-ink); }
.spz-page-hero--team .spz-page-hero-media { right: 52%; }
.spz-page-hero--team .spz-page-hero-shade { display: none; }
.spz-page-hero--team .spz-page-hero-copy { left: 55%; bottom: 12%; width: min(650px, 40vw); }
.spz-page-hero--team .spz-page-hero-copy h1 { font-size: clamp(4.6rem, 7vw, 8rem); }

.spz-page-hero--weddings .spz-page-hero-shade { background: linear-gradient(0deg, rgba(11,13,11,.74), transparent 65%), linear-gradient(90deg, rgba(11,13,11,.45), transparent); }
.spz-page-hero--weddings .spz-page-hero-copy { bottom: 4rem; width: calc(100% - 2 * var(--spz-pad)); }
.spz-page-hero--weddings .spz-page-hero-copy h1 { width: 100%; font-size: clamp(5.5rem, 10.5vw, 12.5rem); }
.spz-page-hero--weddings .spz-page-hero-copy > p { margin-left: auto; }

.spz-page-hero--inclusive { background: #14221a; }
.spz-page-hero--inclusive .spz-page-hero-media { left: 47%; clip-path: polygon(18% 0,100% 0,100% 100%,0 100%); }
.spz-page-hero--inclusive .spz-page-hero-shade { background: linear-gradient(90deg, #14221a 0 37%, rgba(20,34,26,.8) 51%, transparent 70%); }
.spz-page-hero--inclusive .spz-page-hero-copy { bottom: 10%; width: min(720px, 51vw); }

.spz-page-hero--destination { padding: 1.6rem; background: var(--spz-paper); }
.spz-page-hero--destination .spz-page-hero-media { inset: 1.6rem; }
.spz-page-hero--destination .spz-page-hero-shade { inset: 1.6rem; background: rgba(11,16,12,.43); }
.spz-page-hero--destination .spz-page-hero-copy { left: 50%; bottom: 12%; width: min(1020px, calc(100% - 6rem)); text-align: center; transform: translateX(-50%); }
.spz-page-hero--destination .spz-page-hero-copy > p { margin-inline: auto; }
.spz-page-hero--destination .spz-magazine-folio { top: 3.2rem; right: 3.2rem; }

.spz-page-hero--cuisine { background: #e6ded0; color: var(--spz-ink); }
.spz-page-hero--cuisine .spz-page-hero-media { bottom: 31%; }
.spz-page-hero--cuisine .spz-page-hero-shade { background: linear-gradient(0deg, #e6ded0 0 22%, transparent 55%); }
.spz-page-hero--cuisine .spz-page-hero-copy { bottom: 2.4rem; width: calc(100% - 2 * var(--spz-pad)); }
.spz-page-hero--cuisine .spz-page-hero-copy h1 { width: 64%; font-size: clamp(4.4rem, 7.25vw, 8.4rem); }
.spz-page-hero--cuisine .spz-page-hero-copy > p:not(.spz-kicker) { position: absolute; right: 0; bottom: .5rem; width: 29%; margin: 0; }
.spz-page-hero--cuisine .spz-scroll-note { display: none; }

.spz-page-hero--business .spz-page-hero-media img { filter: grayscale(1) contrast(1.04); }
.spz-page-hero--business .spz-page-hero-shade { background: linear-gradient(90deg, rgba(4,7,5,.85), rgba(4,7,5,.22)); }
.spz-page-hero--business .spz-page-hero-copy { top: 32%; bottom: auto; }
.spz-page-hero--business .spz-page-hero-copy h1 { max-width: 1150px; text-transform: uppercase; font-size: clamp(4.5rem, 8vw, 9rem); }

.spz-page-hero--gallery .spz-page-hero-shade { background: rgba(8,12,9,.32); }
.spz-page-hero--gallery .spz-page-hero-copy { top: 50%; bottom: auto; width: calc(100% - 2 * var(--spz-pad)); transform: translateY(-48%); text-align: center; }
.spz-page-hero--gallery .spz-page-hero-copy h1 { font-size: clamp(7rem, 16vw, 19rem); line-height: .62; }
.spz-page-hero--gallery .spz-page-hero-copy > p { margin-inline: auto; }

.spz-page-hero--faq { background: var(--spz-paper); color: var(--spz-ink); }
.spz-page-hero--faq::before { content: "?"; position: absolute; z-index: 2; left: 2vw; top: 42%; color: rgba(30,36,30,.06); font-size: 42vw; line-height: .5; }
.spz-page-hero--faq .spz-page-hero-media { left: 64%; }
.spz-page-hero--faq .spz-page-hero-shade { background: linear-gradient(90deg, var(--spz-paper) 0 58%, transparent 82%); }
.spz-page-hero--faq .spz-page-hero-copy { bottom: 12%; width: min(830px, 63vw); }

.spz-page-hero--contact { background: var(--spz-paper); color: var(--spz-ink); }
.spz-page-hero--contact .spz-page-hero-media { bottom: 33%; }
.spz-page-hero--contact .spz-page-hero-shade { background: linear-gradient(0deg, rgba(10,14,11,.55), transparent 70%); bottom: 33%; }
.spz-page-hero--contact .spz-page-hero-copy { bottom: 0; left: 0; width: min(980px, 76vw); padding: 3rem var(--spz-pad) 3.6rem; background: var(--spz-paper); }
.spz-page-hero--contact .spz-page-hero-copy h1 { font-size: clamp(4rem, 6.5vw, 7.2rem); }
.spz-page-hero--contact .spz-page-hero-copy > p:not(.spz-kicker) { margin-top: 1.1rem; }

@keyframes spz-media-curtain { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0); } }
@keyframes spz-editorial-image {
  from { transform: translate3d(0, var(--spz-parallax-y, 0px), 0) scale(1.16); }
  to { transform: translate3d(0, var(--spz-parallax-y, 0px), 0) scale(1.045); }
}

/* Magazine headers receive distinct, lightweight entrances per route. */
.spz-page-hero--castle .spz-page-hero-media,
.spz-page-hero--business .spz-page-hero-media { animation-name: spz-wipe-left; }
.spz-page-hero--history .spz-page-hero-media,
.spz-page-hero--faq .spz-page-hero-media { animation-name: spz-wipe-right; }
.spz-page-hero--spaces .spz-page-hero-media { animation-name: spz-wipe-diagonal; }
.spz-page-hero--church .spz-page-hero-media { animation-name: spz-wipe-centre; }
.spz-page-hero--team .spz-page-hero-media { animation-name: spz-wipe-split; }
.spz-page-hero--weddings .spz-page-hero-media,
.spz-page-hero--cuisine .spz-page-hero-media,
.spz-page-hero--contact .spz-page-hero-media { animation-name: spz-wipe-bottom; }
.spz-page-hero--inclusive .spz-page-hero-media { animation-name: spz-wipe-inclusive; }
.spz-page-hero--destination .spz-page-hero-media { animation-name: spz-wipe-frame; }
.spz-page-hero--gallery .spz-page-hero-media { animation-name: spz-wipe-circle; }

@keyframes spz-wipe-left { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes spz-wipe-right { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0); } }
@keyframes spz-wipe-bottom { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0); } }
@keyframes spz-wipe-centre { from { clip-path: inset(48% 48% 48% 48%); } to { clip-path: inset(0); } }
@keyframes spz-wipe-split { from { clip-path: inset(0 50%); } to { clip-path: inset(0); } }
@keyframes spz-wipe-diagonal { from { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); } to { clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%); } }
@keyframes spz-wipe-inclusive { from { clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%); } to { clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); } }
@keyframes spz-wipe-frame { from { clip-path: inset(42% 46%); } to { clip-path: inset(0); } }
@keyframes spz-wipe-circle { from { clip-path: circle(0% at 50% 50%); } to { clip-path: circle(75% at 50% 50%); } }

.spz-motion-ready .spz-wedding-focus > img,
.spz-motion-ready .spz-closing-cta > img { transform: translate3d(0, var(--spz-parallax-y, 0px), 0) scale(1.055); will-change: transform; }

@media (max-width: 1100px) {
  .spz-menu { grid-template-columns: 1fr; }
  .spz-menu-image { position: absolute; inset: 0; opacity: .16; }
  .spz-menu-grid { position: relative; grid-template-columns: repeat(3, 1fr); }
  .spz-editorial-grid { grid-template-columns: 1fr 1fr; }
  .spz-editorial-grid .spz-image--small { display: none; }
  .spz-signature div { flex-direction: column; align-items: start; justify-content: end; }
  .spz-journey { grid-template-columns: repeat(2, 1fr); }
  .spz-journey article:nth-child(2) { border-right: 0; }
  .spz-journey article:nth-child(-n + 2) { border-bottom: 1px solid var(--spz-line); }
  .spz-card-grid { grid-template-columns: repeat(2, 1fr); }
  .spz-card-grid article:nth-child(2) { border-right: 0; }
  .spz-card-grid article:nth-child(-n + 2) { border-bottom: 1px solid var(--spz-line); }
  .spz-service-grid { grid-template-columns: repeat(2, 1fr); }
  .spz-service-grid article:nth-child(3n) { border-right: 1px solid var(--spz-line); }
  .spz-service-grid article:nth-child(2n) { border-right: 0; }
  .spz-service-grid article:nth-last-child(-n + 3) { border-bottom: 0; }
  .spz-service-grid article:nth-last-child(-n + 2) { border-bottom: 1px solid var(--spz-line); }
  .spz-home-services-head { grid-template-columns: .45fr 1.15fr; }
  .spz-home-services-head > p:last-child { grid-column: 2; }
  .spz-service-panels { min-height: 570px; }
  .spz-service-panel-copy strong { font-size: clamp(1.7rem, 3vw, 3rem); }
  .spz-page-hero--magazine .spz-page-hero-copy h1 { font-size: clamp(4.5rem, 9vw, 7.5rem); }
}

@media (max-width: 768px) {
  :root { --spz-pad: 1.25rem; --spz-section: 5.8rem; }
  body { padding-bottom: 64px; }
  .spz-header { height: 72px; }
  .spz-brand { font-size: .82rem; }
  .spz-brand-logo { height: 52px; }
  .spz-brand-mark { width: 2rem; height: 2rem; font-size: 1.25rem; }
  .spz-header-cta { display: none; }
  .spz-header-actions { gap: 1rem; }
  .spz-menu-toggle > span { display: none; }
  .spz-menu-grid { grid-template-columns: 1fr; align-content: start; gap: 1.7rem; max-height: calc(100svh - 90px); padding: 7rem var(--spz-pad) 5rem; overflow-y: auto; }
  .spz-menu-group > p { margin: 0 0 .6rem; padding: 0 0 .5rem; }
  .spz-menu-group a { padding: .05rem 0; font-size: 1.55rem; }
  .spz-menu-foot { display: none; }
  .spz-home-hero, .spz-page-hero { min-height: 720px; height: 100svh; }
  .spz-home-hero-shade, .spz-page-hero-shade { background: linear-gradient(0deg, rgba(10,15,12,.7), rgba(10,15,12,.12) 80%); }
  .spz-home-hero-copy, .spz-page-hero-copy { bottom: 5.5rem; width: calc(100% - 2.5rem); }
  .spz-home-hero-copy h1, .spz-page-hero-copy h1 { font-size: clamp(3.45rem, 16.5vw, 5rem); line-height: .84; }
  .spz-home-hero-copy > p:not(.spz-kicker), .spz-page-hero-copy > p:not(.spz-kicker) { margin-top: 1.5rem; font-size: .88rem; line-height: 1.6; }
  .spz-hero-actions { margin-top: 1.7rem; }
  .spz-hero-actions .spz-button { width: 100%; }
  .spz-hero-index, .spz-scroll-note { display: none; }
  .spz-page-hero { min-height: 630px; height: 82svh; }
  .spz-signature { grid-template-columns: repeat(2, 1fr); padding-top: 2rem; padding-bottom: 2rem; }
  .spz-signature div { min-height: 110px; padding: 1rem; border-bottom: 1px solid var(--spz-line); }
  .spz-signature div:nth-child(2) { border-right: 0; }
  .spz-signature div:nth-last-child(-n + 2) { border-bottom: 0; }
  .spz-signature div:nth-child(3) { padding-left: 0; }
  .spz-signature strong { font-size: 2.8rem; }
  .spz-signature span { font-size: .56rem; }
  .spz-manifesto, .spz-intro-columns, .spz-business-call, .spz-history-note, .spz-contact { grid-template-columns: 1fr; gap: 3rem; }
  .spz-manifesto-title > span { margin-bottom: 2.5rem; font-size: 22vw; }
  .spz-manifesto h2, .spz-section-title h2, .spz-feature h2, .spz-cuisine-copy h2, .spz-business-call h2, .spz-closing-cta h2, .spz-final-inline h2, .spz-contact h2 { font-size: clamp(2.8rem, 13.5vw, 4.2rem); }
  .spz-editorial-grid { grid-template-columns: 1fr; }
  .spz-editorial-grid .spz-image--portrait { transform: none; }
  .spz-editorial-grid-copy { padding: 2rem 0; }
  .spz-feature, .spz-cuisine-band { grid-template-columns: 1fr; min-height: auto; }
  .spz-feature .spz-feature-copy { padding: 5rem var(--spz-pad); }
  .spz-feature > .spz-image { min-height: 520px; }
  .spz-cuisine-band > .spz-image { min-height: 480px; }
  .spz-journey { grid-template-columns: 1fr; }
  .spz-journey article { min-height: 230px; padding: 1.8rem 0; border-right: 0; border-bottom: 1px solid var(--spz-line); }
  .spz-journey article:nth-child(-n + 2) { border-bottom: 1px solid var(--spz-line); }
  .spz-journey article:last-child { border-bottom: 0; }
  .spz-journey h3 { margin-top: 3rem; }
  .spz-closing-cta { min-height: 650px; }
  .spz-duo-images { grid-template-columns: 1fr; }
  .spz-duo-images .spz-image:last-child { margin: 0; }
  .spz-card-grid, .spz-service-grid { grid-template-columns: 1fr; }
  .spz-card-grid article, .spz-service-grid article { min-height: 240px; padding: 1.7rem 0; border-right: 0 !important; border-bottom: 1px solid var(--spz-line) !important; }
  .spz-card-grid h3, .spz-service-grid h2 { margin-top: 3rem; }
  .spz-timeline article { grid-template-columns: 1fr; gap: 1.5rem; padding: 3rem 0; }
  .spz-timeline article h2 { font-size: 3.4rem; }
  .spz-space-list > article, .spz-space-list > article.is-reverse { grid-template-columns: 1fr; gap: 2.5rem; padding: 3.5rem 0; }
  .spz-space-list > article.is-reverse .spz-image { order: 0; }
  .spz-space-list > article > div:last-child > span { margin-bottom: 2rem; }
  .spz-team-grid { grid-template-columns: 1fr; }
  .spz-team-grid article:nth-child(2) { margin-top: 2rem; }
  .spz-day-flow article { grid-template-columns: .16fr 1fr; }
  .spz-day-flow article > div { grid-template-columns: 1fr; gap: 1.2rem; }
  .spz-gallery-strip { grid-template-columns: 1fr; }
  .spz-cuisine-process { grid-template-columns: 1fr; gap: 4rem; }
  .spz-gallery-masonry { grid-template-columns: 1fr; }
  .spz-gallery-masonry img, .spz-gallery-masonry button.is-tall img { aspect-ratio: 4/5; }
  .spz-lightbox { padding: 1rem 1rem 5rem; }
  .spz-lightbox-content { max-width: 100%; max-height: 80vh; }
  .spz-lightbox img { max-width: 100%; max-height: 72vh; }
  .spz-lightbox button { top: .25rem; right: .8rem; }
  .spz-accordion summary { grid-template-columns: .12fr 1fr auto; gap: .8rem; padding: 1.6rem 0; font-size: 1.55rem; }
  .spz-accordion details > p { margin-left: 0; }
  .spz-field-row { grid-template-columns: 1fr; gap: 0; }
  .spz-footer { padding-top: 6rem; }
  .spz-footer-top { grid-template-columns: 1fr; gap: 4rem; padding-bottom: 4rem; }
  .spz-footer-brand h2 { font-size: 4.1rem; }
  .spz-footer-bottom { grid-template-columns: 1fr; gap: .5rem; }
  .spz-mobile-actions { position: fixed; z-index: 70; left: 0; bottom: 0; width: 100%; height: 64px; display: grid; grid-template-columns: repeat(3, 1fr); background: var(--spz-ivory); border-top: 1px solid var(--spz-line); }
  .spz-mobile-actions a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; border-right: 1px solid var(--spz-line); font-size: .52rem; letter-spacing: .07em; text-transform: uppercase; }
  .spz-mobile-actions a:last-child { background: var(--spz-forest); color: var(--spz-paper); border: 0; }
  .spz-mobile-actions span { font-size: .95rem; }
  .spz-home-slider { min-height: 720px; }
  .spz-home-slide-copy { top: auto; bottom: 7rem; width: calc(100% - 2.5rem); transform: translateX(-50%); }
  .spz-home-slide-copy h1 { font-size: clamp(4.4rem, 19vw, 6.8rem); line-height: .78; }
  .spz-home-slide-copy > p:not(.spz-kicker) { margin-top: 1.2rem; font-size: .92rem; }
  .spz-home-slide-copy .spz-hero-actions { display: none; }
  .spz-home-slider-controls { bottom: 2rem; gap: .6rem; }
  .spz-home-slider-dots button { width: 22px; }
  .spz-home-slider-arrows { display: none; }
  .spz-film-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .spz-film-heading h2 { font-size: clamp(3.2rem, 14vw, 5rem); }
  .spz-film-frame { width: calc(100% + 2.5rem); margin-left: -1.25rem; aspect-ratio: 9/14; }
  .spz-home-services-head { grid-template-columns: 1fr; gap: 1.4rem; }
  .spz-home-services-head > p:last-child { grid-column: auto; }
  .spz-home-services-head h2 { font-size: clamp(3.2rem, 14vw, 5rem); }
  .spz-service-panels { height: auto; min-height: 0; display: grid; grid-template-columns: 1fr; gap: 1px; }
  .spz-service-panel, .spz-service-panel.is-featured { min-height: 200px; flex: none; }
  .spz-service-panel.is-featured { min-height: 330px; }
  .spz-service-panel:hover, .spz-service-panel:focus-visible { flex: none; }
  .spz-service-panel-copy strong, .spz-service-panel:hover .spz-service-panel-copy strong, .spz-service-panel:focus-visible .spz-service-panel-copy strong { writing-mode: horizontal-tb; transform: none; font-size: 2.4rem; }
  .spz-service-panel-copy small, .spz-service-panel:hover .spz-service-panel-copy small, .spz-service-panel:focus-visible .spz-service-panel-copy small { position: static; grid-column: 1; width: 88%; opacity: 1; transform: none; }
  .spz-service-panel-copy { right: 1.2rem; bottom: 1.2rem; left: 1.2rem; }
  .spz-service-panel-number { top: 1.2rem; left: 1.2rem; }
  .spz-wedding-focus { min-height: 820px; height: 100svh; }
  .spz-wedding-focus-title { top: 12%; left: 1rem; font-size: 27vw; }
  .spz-wedding-focus-copy { right: 1.25rem; bottom: 4.2rem; left: 1.25rem; width: auto; }
  .spz-wedding-focus-copy h2 { font-size: clamp(3rem, 14vw, 4.7rem); }
  .spz-wedding-focus-copy .spz-button { width: 100%; }
  .spz-page-hero--magazine { min-height: 700px; height: 92svh; color: white; background: var(--spz-forest); padding: 0; }
  .spz-page-hero--magazine .spz-page-hero-media { inset: 0; clip-path: none; }
  .spz-page-hero--magazine .spz-page-hero-media { animation-name: spz-media-curtain; }
  .spz-page-hero--magazine .spz-page-hero-media img { filter: none; object-position: center; }
  .spz-page-hero--magazine .spz-page-hero-shade { display: block; inset: 0; background: linear-gradient(0deg, rgba(7,11,8,.82), rgba(7,11,8,.04) 78%); }
  .spz-page-hero--magazine .spz-page-hero-copy { top: auto; right: auto; bottom: 4.4rem; left: 1.25rem; width: calc(100% - 2.5rem); padding: 0; background: transparent; color: white; text-align: left; transform: none; }
  .spz-page-hero--magazine .spz-page-hero-copy h1 { width: auto; font-size: clamp(3.8rem, 16vw, 5.5rem); line-height: .8; color: white; -webkit-text-stroke: 0; text-transform: none; }
  .spz-page-hero--magazine .spz-page-hero-copy > p:not(.spz-kicker) { position: static; max-width: 92%; margin: 1.2rem 0 0; font-size: .86rem; }
  .spz-page-hero--magazine .spz-magazine-folio { display: none; }
  .spz-page-hero--faq::before { display: none; }
}

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .spz-cursor-dot, .spz-cursor-ring { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal], [data-reveal].is-visible { opacity: 1; transform: none; clip-path: none; }
  .spz-image[data-reveal] > div { clip-path: none; }
  .spz-motion-ready [data-motion="hero-copy"] > * { opacity: 1; clip-path: none; transform: none; }
  .spz-page-hero-media, .spz-page-hero-media img { animation: none; }
  .spz-motion-ready .spz-wedding-focus > img, .spz-motion-ready .spz-closing-cta > img { transform: scale(1.02); }
  .spz-scroll-progress { display: none; }
}

@media (forced-colors: active) {
  .spz-button, .spz-menu-toggle, .spz-submit { border: 1px solid ButtonText; }
}

@supports (view-transition-name: page) {
  ::view-transition-old(page) { animation: .35s var(--spz-ease) both spz-page-out; }
  ::view-transition-new(page) { animation: .55s var(--spz-ease) both spz-page-in; }
}
@keyframes spz-page-out { to { opacity: 0; transform: translateY(-12px); } }
@keyframes spz-page-in { from { opacity: 0; transform: translateY(16px); } }
/* ==================================================
   COMPATIBILITÀ GRIDBOX
   ================================================== */

body .spz-gridbox-host :is(h1, h2, h3, h4, h5, h6) {
  color: inherit;
  text-align: inherit;
}

body .spz-gridbox-host a:not(.spz-button):not(.spz-service-panel),
body .spz-header a,
body .spz-footer a {
  color: inherit !important;
}
body .spz-gridbox-host a.spz-service-panel,
body .spz-gridbox-host a.spz-service-panel:hover,
body .spz-gridbox-host a.spz-service-panel:focus-visible {
  color: #fff !important;
}

/* Logo modificato automaticamente da Gridbox */
body .spz-gridbox-host img.spz-brand-logo[width="100"][height="100"] {
  width: auto !important;
  height: 66px !important;
  max-width: 180px !important;
  object-fit: contain;
}

/* Immagini che devono riempire il contenitore */
body .spz-gridbox-host .spz-home-slide > img[width="100"][height="100"],
body .spz-gridbox-host .spz-feature .spz-image img[width="100"][height="100"],
body .spz-gridbox-host .spz-cuisine-band .spz-image img[width="100"][height="100"],
body .spz-gridbox-host .spz-closing-cta > img[width="100"][height="100"] {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Titoli su fondi scuri */
body .spz-home-slide-copy h1,
body .spz-film-section h2,
body .spz-feature--dark h2,
body .spz-closing-cta h2 {
  color: inherit !important;
  text-align: inherit;
}

/* Footer */
body .spz-footer,
body .spz-footer p,
body .spz-footer a {
  font-family: var(--spz-display);
}

body .spz-footer a {
  color: inherit !important;
}

@media (max-width: 768px) {
  body .spz-gridbox-host img.spz-brand-logo[width="100"][height="100"] {
    width: auto !important;
    height: 52px !important;
    max-width: 145px !important;
  }
}

/* ================================================================
   RESPONSIVE HARDENING 2026-08-13
   Correzioni verificate sulla struttura Gridbox pubblicata.
   ================================================================ */

.spz-gridbox-host,
.spz-gridbox-host .spz-site,
.spz-gridbox-host .spz-main,
.spz-gridbox-host section,
.spz-gridbox-host article,
.spz-gridbox-host figure,
.spz-gridbox-host form,
.spz-gridbox-host :is(.spz-menu-grid, .spz-editorial-grid, .spz-feature, .spz-journey, .spz-card-grid, .spz-service-grid, .spz-contact, .spz-footer-top, .spz-footer-nav) > * {
  min-width: 0;
}

.spz-gridbox-host :is(img, video, iframe, svg) {
  max-width: 100%;
}

.spz-gridbox-host :is(h1, h2, h3, h4, p, a, span, strong) {
  max-width: 100%;
}

/* Gridbox applica 25px a ogni sezione sotto i 1280px: il reset vale
   solo per le sezioni che contengono i moduli SPZ e mai nell'editor. */
@media (max-width: 1280px) {
  body:not(.gridbox):not(.ba-edit-mode) .ba-section:has(.spz-gridbox-host) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Tablet verticali e finestre intermedie. */
@media (max-width: 900px) {
  .spz-menu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    max-height: 100dvh;
    overflow-y: auto;
  }

  .spz-contact,
  .spz-history-note,
  .spz-intro-columns,
  .spz-business-call {
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }

  .spz-contact-details { max-width: 42rem; }
  .spz-form { width: 100%; }
  .spz-footer-top { gap: 5vw; }
}

@media (max-width: 768px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body { padding-bottom: 0; }
  body:has(.spz-mobile-actions) {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }

  body:not(.gridbox):not(.ba-edit-mode) .ba-section:has(.spz-gridbox-host),
  body:not(.gridbox):not(.ba-edit-mode) .spz-gridbox-host,
  body:not(.gridbox):not(.ba-edit-mode) .spz-gridbox-host > .custom-html {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .spz-site,
  .spz-main,
  .spz-section,
  .spz-page-hero,
  .spz-page-hero--magazine,
  .spz-home-slider,
  .spz-wedding-focus,
  .spz-closing-cta {
    width: 100%;
    max-width: 100%;
  }

  .spz-header {
    width: 100%;
    max-width: 100vw;
    padding-right: max(var(--spz-pad), env(safe-area-inset-right, 0px));
    padding-left: max(var(--spz-pad), env(safe-area-inset-left, 0px));
  }

  .spz-brand-logo {
    max-width: min(145px, 42vw);
  }

  .spz-header-actions,
  .spz-menu-toggle { min-width: 0; }

  .spz-menu {
    width: 100% !important;
    max-width: 100vw;
    height: 100dvh !important;
    overflow: hidden;
  }

  .spz-menu-grid {
    width: 100%;
    height: 100%;
    max-height: none;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 1.6rem;
    padding: 6.5rem max(var(--spz-pad), env(safe-area-inset-right, 0px)) calc(3rem + env(safe-area-inset-bottom, 0px)) max(var(--spz-pad), env(safe-area-inset-left, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .spz-menu-group,
  .spz-menu-group a,
  .spz-menu-group a span { min-width: 0; }
  .spz-menu-group a span {
    word-break: normal;
    overflow-wrap: break-word;
  }

  .spz-page-hero--magazine {
    min-height: 100svh;
    height: auto;
  }

  @supports (height: 100dvh) {
    .spz-page-hero--magazine {
      min-height: 100dvh;
    }
  }

  .spz-page-hero--magazine .spz-page-hero-copy {
    bottom: max(4.4rem, calc(2.5rem + env(safe-area-inset-bottom, 0px)));
  }

  .spz-home-slider {
    min-height: 100svh;
    height: 100svh;
  }

  @supports (height: 100dvh) {
    .spz-home-slider {
      min-height: 100dvh;
      height: 100dvh;
    }
  }

  .spz-wedding-focus {
    min-height: 100svh;
    height: auto;
  }

  @supports (height: 100dvh) {
    .spz-wedding-focus { min-height: 100dvh; }
  }

  .spz-home-slide > img,
  .spz-page-hero-media img,
  .spz-wedding-focus > img,
  .spz-closing-cta > img,
  .spz-feature .spz-image img,
  .spz-cuisine-band .spz-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
  }

  .spz-home-slide-copy,
  .spz-page-hero--magazine .spz-page-hero-copy,
  .spz-wedding-focus-copy {
    max-width: calc(100% - 2.5rem);
  }

  .spz-gridbox-host :is(h1, h2, h3, h4, .spz-service-panel-copy strong) {
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
  }

  .spz-home-slide-copy h1 {
    font-size: clamp(3.55rem, 18vw, 5.8rem);
  }

  .spz-page-hero--magazine .spz-page-hero-copy h1 {
    font-size: clamp(3.35rem, 15.5vw, 5.2rem);
  }

  .spz-manifesto h2,
  .spz-section-title h2,
  .spz-feature h2,
  .spz-cuisine-copy h2,
  .spz-business-call h2,
  .spz-closing-cta h2,
  .spz-final-inline h2,
  .spz-contact h2 {
    font-size: clamp(2.65rem, 12.8vw, 4.1rem);
  }

  .spz-section { padding-inline: var(--spz-pad); }
  .spz-signature {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-inline: var(--spz-pad);
  }
  .spz-signature div,
  .spz-signature div:nth-child(3) { padding: 1rem; }

  .spz-feature > .spz-image { min-height: clamp(360px, 125vw, 520px); }
  .spz-cuisine-band > .spz-image { min-height: clamp(340px, 115vw, 480px); }

  .spz-button {
    width: fit-content;
    max-width: 100%;
    gap: clamp(1rem, 7vw, 2.3rem);
    white-space: normal;
  }

  .spz-hero-actions,
  .spz-inline-actions {
    width: 100%;
    flex-direction: column;
  }
  .spz-hero-actions .spz-button,
  .spz-inline-actions .spz-button { width: 100%; }

  .spz-service-panels,
  .spz-service-panel,
  .spz-service-panel.is-featured {
    width: 100%;
    min-width: 0;
  }
  .spz-service-panels { overflow: clip; }
  .spz-service-panel-copy strong { font-size: clamp(1.85rem, 9.5vw, 2.4rem); }

  .spz-day-flow article {
    grid-template-columns: minmax(2rem, .16fr) minmax(0, 1fr);
    gap: .8rem;
  }

  .spz-accordion summary {
    grid-template-columns: minmax(1.5rem, .12fr) minmax(0, 1fr) auto;
  }

  .spz-form { padding: clamp(1.25rem, 5vw, 2rem); }
  .spz-form-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .spz-form-tabs button { min-width: 0; }

  .spz-footer {
    padding-right: max(var(--spz-pad), env(safe-area-inset-right, 0px));
    padding-left: max(var(--spz-pad), env(safe-area-inset-left, 0px));
  }
  .spz-footer-brand h2 { font-size: clamp(3rem, 15vw, 4.1rem); }
  .spz-footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.5rem;
  }
  .spz-footer-bottom { overflow-wrap: anywhere; }

  .spz-mobile-actions {
    height: calc(64px + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .spz-lightbox {
    width: 100%;
    height: 100dvh;
    padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
  }
}

/* Telefoni stretti: 320–380px. */
@media (max-width: 380px) {
  :root { --spz-pad: 1rem; --spz-section: 5rem; }

  .spz-header-actions { gap: .7rem; }
  .spz-brand-logo { max-width: 120px; }
  .spz-lang { font-size: .6rem; }
  .spz-menu-toggle i { width: 26px; }

  .spz-home-slide-copy h1 { font-size: clamp(3.15rem, 17vw, 4.2rem); }
  .spz-page-hero--magazine .spz-page-hero-copy h1 { font-size: clamp(3rem, 15vw, 4rem); }
  .spz-home-slide-copy > p:not(.spz-kicker),
  .spz-page-hero--magazine .spz-page-hero-copy > p:not(.spz-kicker) { font-size: .8rem; }

  .spz-signature strong { font-size: 2.35rem; }
  .spz-footer-nav { grid-template-columns: 1fr; }
  .spz-mobile-actions a { font-size: .48rem; }
}

/* Smartphone in orizzontale: evita hero e menu più alti del dispositivo. */
@media (max-height: 560px) and (orientation: landscape) and (pointer: coarse) {
  .spz-header { height: 64px; }
  .spz-brand-logo { height: 44px; max-width: 132px; }
  .spz-header-cta { display: none; }

  .spz-menu-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    padding: 4.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
  }
  .spz-menu-group > p { margin-bottom: .35rem; }
  .spz-menu-group a { font-size: 1.15rem; }

  .spz-home-slider,
  .spz-page-hero--magazine,
  .spz-wedding-focus {
    min-height: 100dvh;
    height: 100dvh;
  }

  .spz-home-slide-copy {
    top: 50%;
    bottom: auto;
    width: calc(100% - 5rem);
    transform: translate(-50%, -44%);
  }
  .spz-home-slide-copy h1 { font-size: clamp(3rem, 13vh, 4.4rem); }
  .spz-home-slide-copy > p:not(.spz-kicker) { margin-top: .7rem; font-size: .78rem; }
  .spz-home-slide-copy .spz-hero-actions { display: none; }
  .spz-home-slider-controls { bottom: .75rem; }

  .spz-page-hero--magazine .spz-page-hero-copy {
    bottom: 1.35rem;
    width: calc(100% - 5rem);
    max-width: 46rem;
  }
  .spz-page-hero--magazine .spz-page-hero-copy h1 { font-size: clamp(3rem, 14vh, 4.5rem); }
  .spz-page-hero--magazine .spz-page-hero-copy > p:not(.spz-kicker) { margin-top: .65rem; font-size: .76rem; }
  .spz-page-hero--magazine .spz-page-hero-copy .spz-hero-actions { display: none; }

  .spz-wedding-focus-title { top: 16%; font-size: 18vh; }
  .spz-wedding-focus-copy { bottom: 1.25rem; }
  .spz-wedding-focus-copy h2 { font-size: clamp(2.5rem, 12vh, 3.8rem); }
}
/* Correzione colori ereditati da Gridbox */
body .spz-home-slider p,
body .spz-film-section p,
body .spz-wedding-focus-copy p,
body .spz-feature--dark p,
body .spz-closing-cta p,
body .spz-page-hero--magazine .spz-page-hero-copy p {
  color: inherit !important;
}
@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }
}
/* Immagini pannelli servizi: override Gridbox */
body .spz-gridbox-host .spz-service-panel > img,
body .spz-gridbox-host .spz-service-panel > img[width="100"][height="100"] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
/* Menu fullscreen sopra i contenuti Gridbox */
body .spz-header-shell {
  position: relative !important;
  z-index: 9990 !important;
  overflow: visible !important;
}

body .spz-header {
  z-index: 9992 !important;
}

body .spz-menu {
  z-index: 9991 !important;
  width: 100vw !important;
  height: 100dvh !important;
}

body.spz-menu-lock .spz-header {
  color: var(--spz-paper);
  mix-blend-mode: normal;
}

body.spz-menu-lock .spz-header .spz-brand-logo {
  filter: brightness(0) invert(1);
}

/* Correzioni isolate verificate sulla home online. */
@media (max-width: 1280px) {
  body:not(.gridbox):not(.ba-edit-mode)[data-spz-page="home"] .ba-section:has(.spz-gridbox-host) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

@media (max-width: 768px) {
  body:not(.gridbox):not(.ba-edit-mode)[data-spz-page="home"] .spz-home-slider {
    min-height: 100svh;
    height: 100svh;
  }

  @supports (height: 100dvh) {
    body:not(.gridbox):not(.ba-edit-mode)[data-spz-page="home"] .spz-home-slider {
      min-height: 100dvh;
      height: 100dvh;
    }
  }

  body[data-spz-page="home"] .spz-home-slide-copy h1,
  body[data-spz-page="home"] .spz-home-services-head h2,
  body[data-spz-page="home"] .spz-wedding-focus-copy h2 {
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
  }
}

/* ================================================================
   MOBILE FINAL AUDIT 2026-08-13
   Rifiniture isolate: touch, form, hero bassi, gallery e footer.
   ================================================================ */
@media (max-width: 768px) {
  /* Evita lo zoom automatico di iOS e le larghezze intrinseche dei campi. */
  .spz-form :is(input, select, textarea, button) {
    min-width: 0;
    max-width: 100%;
    font-size: 16px;
  }

  .spz-form :is(input:not([type="checkbox"]), select) {
    min-height: 48px;
  }

  .spz-form textarea {
    min-height: 132px;
  }

  /* Aree tattili affidabili su menu, filtri, tab e navigazione. */
  .spz-lang,
  .spz-menu-toggle,
  .spz-menu-group a,
  .spz-filters button,
  .spz-form-tabs button,
  .spz-footer-nav a,
  .spz-mobile-actions a {
    min-height: 44px;
  }

  .spz-lang,
  .spz-menu-toggle {
    display: inline-flex;
    align-items: center;
  }

  .spz-menu-group a {
    padding-block: .42rem;
  }

  .spz-filters {
    gap: .5rem;
    margin-bottom: 2.5rem;
  }

  .spz-filters button,
  .spz-form-tabs button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.25;
  }

  /* Titoli lunghi IT/EN: nessun taglio laterale, mantenendo le parole leggibili. */
  .spz-home-slide-copy h1,
  .spz-page-hero--magazine .spz-page-hero-copy h1,
  .spz-section-title h2,
  .spz-closing-cta h2,
  .spz-footer-brand h2 {
    max-width: 100%;
    text-wrap: balance;
    overflow-wrap: break-word;
  }

  /* I contenuti incorporati non possono allargare la pagina. */
  .spz-gridbox-host :is(iframe, video) {
    width: 100% !important;
    max-width: 100% !important;
  }

  .spz-contact-details :is(a, address),
  .spz-footer-bottom,
  .spz-lightbox p {
    overflow-wrap: anywhere;
  }

  /* Lightbox realmente sopra header e barra mobile. */
  .spz-lightbox {
    z-index: 10020;
    padding-top: max(3.75rem, env(safe-area-inset-top, 0px));
  }

  .spz-lightbox button {
    top: max(.35rem, env(safe-area-inset-top, 0px));
    right: max(.8rem, env(safe-area-inset-right, 0px));
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
  }

  /* Il footer resta interamente leggibile sopra la barra azioni fissa. */
  .spz-footer {
    padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
  }
}

/* Telefoni bassi (SE e browser con barre aperte): evita sovrapposizioni nell'hero. */
@media (max-width: 768px) and (max-height: 680px) {
  .spz-home-slide-copy {
    bottom: 5rem;
  }

  .spz-home-slide-copy h1,
  .spz-page-hero--magazine .spz-page-hero-copy h1 {
    font-size: clamp(2.9rem, 14vw, 4rem);
    line-height: .84;
  }

  .spz-home-slide-copy > p:not(.spz-kicker),
  .spz-page-hero--magazine .spz-page-hero-copy > p:not(.spz-kicker) {
    margin-top: .7rem;
    font-size: .78rem;
    line-height: 1.45;
  }

  .spz-page-hero--magazine .spz-page-hero-copy {
    bottom: 2rem;
  }

  .spz-page-hero--magazine .spz-hero-actions {
    display: none;
  }
}

/* La 404 ha CSS incorporato nel modulo Gridbox: queste regole allineano
   anche il suo intervallo 761–768px al breakpoint mobile generale. */
@media (max-width: 768px) {
  body .spz-error404__frame {
    inset: 88px 1.25rem 1.25rem;
  }

  body .spz-error404__brandbar {
    height: 72px;
  }

  body .spz-error404__brand img {
    height: 52px !important;
    max-width: 145px !important;
  }

  body .spz-error404__number {
    top: 28%;
    left: .5rem;
    font-size: clamp(11rem, 58vw, 17rem);
  }

  body .spz-error404__content {
    padding: 8rem 1.5rem calc(5.5rem + env(safe-area-inset-bottom, 0px));
  }

  body .spz-error404__copy {
    width: calc(100% - 1.5rem);
    margin-left: 0;
  }

  body .spz-error404 h1 {
    font-size: clamp(3.35rem, 17vw, 5.7rem);
    line-height: .82;
    overflow-wrap: break-word;
  }

  body .spz-error404__text {
    max-width: 92%;
  }

  body .spz-error404__actions {
    width: 100%;
    flex-direction: column;
    gap: .7rem;
  }

  body .spz-error404__button {
    width: 100%;
  }

  body .spz-error404__folio {
    display: none;
  }

  body .spz-legal-table-wrap {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
}
