:root {
  --ink: #12242b;
  --logo-blue: #3098b7;
  --softub-grey: #476068;
  --forest: #476068;
  --forest-2: #58585a;
  --sage: #dff4f8;
  --cream: #e0d9d1;
  --sand: #d2b48b;
  --water: #dff4f8;
  --white: #fff;
  --radius: 1.5rem;
  --shadow: 0 24px 70px rgba(12, 67, 84, .14);
}

html { scroll-behavior: smooth; }
body {
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
p { font-size: 1.125rem; }
h1, h2, h3 { font-weight: 650; letter-spacing: -.035em; line-height: 1.04; }
h1 { font-size: clamp(2.7rem, 6vw, 5.5rem); }
h2 { font-size: clamp(2.25rem, 4.5vw, 4rem); }
h3 { font-size: 1.25rem; }
.softub-underline { text-decoration: underline; text-decoration-color: var(--logo-blue); text-decoration-thickness: .2em; text-underline-offset: .16em; }
.registered-mark { font-size: .5em; line-height: 0; vertical-align: super; }
section { scroll-margin-top: 7rem; }

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 1100;
  padding: .65rem 1rem;
  background: var(--cream);
  transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); }

.topbar {
  padding: .45rem 0;
  color: #fff;
  background: var(--forest);
  font-size: .82rem;
  letter-spacing: .025em;
}
.navbar {
  min-height: 76px;
  background: var(--white);
  border-bottom: 1px solid rgba(24, 37, 31, .08);
  backdrop-filter: blur(12px);
}
.navbar-brand img { width: 128px; height: auto; }
.nav-link { color: var(--ink); font-size: .94rem; font-weight: 600; }
.nav-link:hover, .nav-link:focus { color: var(--forest-2); }
.navbar-toggler { border: 0; box-shadow: none !important; }

.btn {
  --bs-btn-padding-x: 1.35rem;
  --bs-btn-padding-y: .78rem;
  --bs-btn-font-weight: 700;
  --bs-btn-border-radius: 999px;
}
.btn-lg { --bs-btn-padding-x: 1.6rem; --bs-btn-padding-y: .95rem; --bs-btn-font-size: 1rem; }
.btn-brand {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--forest);
  --bs-btn-border-color: var(--forest);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--forest-2);
  --bs-btn-hover-border-color: var(--forest-2);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #083b4c;
  --bs-btn-active-border-color: #083b4c;
}
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid #62c2da;
  outline-offset: 3px;
}

.hero { position: relative; overflow: hidden; background: #a7b999; }
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 38%, rgba(8, 49, 63, .08));
  pointer-events: none;
}
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% center; }
.min-vh-hero { min-height: min(790px, calc(100svh - 110px)); padding: 4rem 0; }
.hero-card {
  position: relative;
  z-index: 1;
  max-width: 650px;
  margin-left: auto;
  padding: clamp(1.7rem, 4vw, 3.4rem);
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: var(--radius);
  background: #ffffffde;
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}
.hero-title { margin: .7rem 0 1.25rem; font-size: clamp(2.7rem, 6vw, 5.5rem); }
.hero-title span { color: var(--forest-2); font-weight: 450; }
.hero-lead { max-width: 58ch; margin-bottom: 1.8rem; font-size: 1.2rem; }
.hero-note { margin-top: 1rem; color: #59645f; font-size: .82rem; }
.hero-price {
  display: inline-flex;
  align-items: baseline;
  gap: .55rem;
  margin: 0 0 1.4rem;
  padding: .55rem .9rem;
  border: 1px solid #b9dfe9;
  border-radius: 999px;
  background: var(--sage);
  color: var(--forest);
}
.hero-price span, .hero-price small { font-size: .75rem; }
.hero-price strong { font-size: 1.25rem; }
.hero-price small { color: #55717b; }

.eyebrow {
  margin-bottom: .8rem;
  color: var(--forest-2);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: inherit;
  text-transform: uppercase;
}
.eyebrow-light { color: #a8dcea; }
.section-space { padding: clamp(3rem, 6vw, 5rem) 0; }
.section-intro { color: #64706a; font-size: 1.2rem; }
.section-heading { max-width: 760px; }

.facts { position: relative; z-index: 2; background: var(--forest); color: #fff; }
.fact { display: grid; gap: .2rem; padding: 1.7rem 1rem; border-right: 1px solid rgba(255,255,255,.15); }
.fact:last-child { border-right: 0; }
.fact strong { font-size: clamp(1.2rem, 2.4vw, 1.7rem); }
.fact span { color: rgba(255,255,255,.68); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }

.intro-section { background: var(--cream); }
.intro-section .section-intro { color: var(--ink); }

.benefit-card {
  padding: 2rem;
  border: 1px solid #e5e9e5;
  border-radius: var(--radius);
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease;
}
.benefit-card:hover { transform: translateY(-5px); box-shadow: 0 18px 50px rgba(12,83,106,.1); }
.benefit-card h3 { margin: 1.4rem 0 .7rem; }
.benefit-card p { margin: 0; color: #64706a; font-size: 1rem; }
.icon-circle {
  display: grid;
  width: 3.3rem;
  height: 3.3rem;
  place-items: center;
  border-radius: 50%;
  background: var(--sage);
  color: var(--softub-grey);
}
.icon-circle svg { width: 1.55rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.split-feature { overflow: hidden; border-radius: calc(var(--radius) * 1.2); background: var(--cream); }
.split-feature img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.split-copy { padding: clamp(2.2rem, 6vw, 4.6rem); }
.split-copy h2 { margin-bottom: 1.3rem; font-size: clamp(2.2rem, 4vw, 3.6rem); }
.check-list { display: grid; gap: .65rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.check-list li { position: relative; padding-left: 1.8rem; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--forest-2); font-weight: 900; }
.text-link { color: var(--forest); font-weight: 800; text-decoration: none; border-bottom: 1px solid currentColor; }

.finish-picker { width: min(100%, 400px); margin-inline: auto; }
.finish-preview { margin: 0; }
.finish-image { overflow: hidden; aspect-ratio: 1 / 1; border: 3px solid #fff; border-radius: 50%; box-shadow: var(--shadow); }
.finish-image img { width: 100%; height: 100%; object-fit: cover; transition: opacity .2s ease; }
.finish-image img.is-changing { opacity: 0; }
.finish-caption { padding: 0 1.5rem 1.25rem; text-align: center; }
.finish-caption span { display: block; color: var(--forest-2); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.finish-caption strong { display: block; margin-top: .25rem; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.1; }
.finish-palette { display: flex; justify-content: center; gap: .65rem; margin-top: 1.5rem; }
.finish-palette .finish-dot { box-sizing: border-box; width: 1.65rem; height: 1.65rem; padding: 0; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #bdc7c2; }
.finish-palette .finish-dot.active { box-shadow: 0 0 0 3px var(--forest); transform: scale(1.08); }
.finish-dot-almond { background: #d8c7aa; }
.finish-dot-camel { background: #aa7953; }
.finish-dot-mocca { background: #655047; }
.finish-dot-taupe { background: #93877a; }
.finish-dot-graphite { background: #464b4c; }
.finish-dot-off-white { background: #eee9dd; }
.finish-dot-sky { background: #a9b4b6; }
.finish-dot-white { background: #fff; }
.finish-dot-anthracite { background: #333638; }
.finish-note { color: #6e7a74; }
.finish-note { margin-top: 1rem; font-size: .75rem; }

.models-section { background: var(--cream); color: var(--ink); }
.models-heading { position: absolute; z-index: 3; top: 50%; left: 0; width: 44%; padding: clamp(2rem, 4vw, 3.5rem); transform: translateY(-50%); border-radius: calc(var(--radius) * .7); background: rgba(255,255,255,.94); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.models-heading h2 { margin: 0 0 1.25rem; }
.models-heading h2, #vantaggi h2, .finishes-section h2, #bordi h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.models-intro { margin: 0; color: #64706a; }
.models-intro, #vantaggi .section-intro, .finishes-section .section-intro, #bordi .section-intro { font-size: 1rem; }
.model-carousel { position: relative; }
.model-showcases { display: flex; gap: 1rem; overflow-x: auto; border-radius: var(--radius); opacity: 1; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; cursor: grab; scrollbar-width: none; transition: opacity .3s ease; }
.model-showcases::-webkit-scrollbar { display: none; }
.model-showcases.is-fading { opacity: 0; }
.model-showcases.is-dragging { cursor: grabbing; user-select: none; scroll-snap-type: none; }
.model-showcases img { pointer-events: none; }
.model-showcase { flex: 0 0 100%; overflow: hidden; margin: 0; border-radius: var(--radius); background: var(--cream); scroll-snap-align: start; box-shadow: var(--shadow); }
.models-section .model-showcase { background: transparent; box-shadow: none; }
.model-showcase-media { position: relative; width: 68%; height: auto; aspect-ratio: 3 / 2; margin: 0 0 0 auto; overflow: hidden; border-radius: var(--radius); }
.model-showcase-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.model-showcase:hover .model-showcase-media img { transform: scale(1.02); }
.model-showcase-title { position: absolute; z-index: 1; right: clamp(1.25rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 1.75rem); margin: 0; color: #fff; font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 650; letter-spacing: -.035em; line-height: 1; text-shadow: 0 2px 18px rgba(0,0,0,.65); }
.model-arrow { position: absolute; z-index: 4; top: 50%; display: grid; width: 3rem; height: 3rem; padding: 0; place-items: center; transform: translateY(-50%); border: 0; border-radius: 50%; background: #fff; color: var(--forest); box-shadow: 0 8px 24px rgba(9,45,57,.22); }
.model-arrow:hover { background: #fff; }
.model-arrow:focus-visible { outline: 3px solid var(--sage); outline-offset: 3px; }
.model-arrow svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.model-arrow-prev { left: 1rem; }
.model-arrow-next { right: 1rem; }
.models-section .model-carousel { padding-bottom: 4.25rem; }
.models-section .model-arrow { top: auto; bottom: 0; transform: none; }
.models-section .model-arrow-prev { left: calc(66% - 3.5rem); }
.models-section .model-arrow-next { right: calc(34% - 3.5rem); }
.ai-label {
  position: absolute;
  top: .75rem;
  right: .75rem;
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: rgba(9,45,57,.82);
  color: #fff;
  font-size: .55rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.model-contact-panel { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-top: clamp(2.5rem, 6vw, 5rem); padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius); background: var(--forest); color: #fff; }
.model-contact-panel .eyebrow { color: var(--sage); }
.model-contact-panel h3 { max-width: 18ch; margin: 0 0 1rem; color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); }
.model-contact-panel p:not(.eyebrow) { max-width: 52ch; margin: 0; color: rgba(255,255,255,.76); }
.model-contact-actions { display: flex; flex: none; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }

.gallery-section { background: var(--cream); }
.gallery-season + .gallery-season { margin-top: 1rem; }
.masonry-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; grid-auto-rows: 90px; gap: 1rem; }
.masonry-grid figure { position: relative; grid-row: span 3; overflow: hidden; margin: 0; border-radius: var(--radius); }
.masonry-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transform-origin: center; transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.masonry-grid .masonry-wide { grid-column: span 2; grid-row: span 4; }
.masonry-grid .masonry-large { grid-column: span 2; grid-row: span 6; }
.masonry-grid .masonry-full { grid-column: 1 / -1; grid-row: span 7; }
.masonry-grid .masonry-portrait { grid-row: span 5; }
.masonry-copy { display: flex; grid-column: span 2; grid-row: span 3; align-items: center; padding: clamp(1.5rem, 3vw, 3rem); }
.masonry-copy-long { grid-row: span 4; }
.masonry-copy p { margin: 0; color: #64706a; }
.masonry-copy strong { color: var(--ink); }
.masonry-grid .masonry-focus-right img { object-position: 70% center; }
.masonry-grid figure:hover img, .alt-gallery-media:hover img { transform: scale(1.12); }

.gallery-reveal { opacity: 0; transform: translateY(2rem); transition: opacity .65s ease, transform .65s ease; }
.gallery-reveal.is-visible { opacity: 1; transform: none; }

.alt-gallery-section { overflow: hidden; background: var(--cream); }
.alt-gallery-stack { display: grid; gap: clamp(6rem, 12vw, 10rem); }
.alt-gallery-card { position: relative; }
.alt-gallery-media { position: relative; width: 68%; aspect-ratio: 3 / 2; overflow: hidden; margin: 0; border-radius: var(--radius); }
.alt-gallery-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.alt-gallery-copy { position: absolute; z-index: 1; top: 50%; right: 0; width: 44%; padding: clamp(2rem, 4vw, 3.5rem); transform: translateY(-50%); border: 1px solid #e5e9e5; border-radius: calc(var(--radius) * .7); background: #fff; box-shadow: var(--shadow); }
.alt-gallery-card:nth-child(even) .alt-gallery-media { margin-left: auto; }
.alt-gallery-card:nth-child(even) .alt-gallery-copy { right: auto; left: 0; }
.alt-gallery-kicker { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.25rem; color: var(--forest-2); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.alt-gallery-kicker::before { content: ""; width: 3rem; border-top: 1px solid #9eaaa5; }
.alt-gallery-copy h3 { margin-bottom: 1.25rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.alt-gallery-copy p:last-child { margin: 0; color: #64706a; font-size: 1rem; }
.alt-gallery-copy strong { color: var(--ink); }

.border-card { display: flex; flex-direction: column; }
.border-card img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.border-card:hover { transform: none; box-shadow: none; }
.border-showcases .model-showcase { background: #fff; box-shadow: none; }
.border-color-name { color: #64706a; font-size: .65em; font-weight: 500; }
.border-color-name::before { content: "— "; }
.border-palette { margin-top: auto; padding-top: 1.5rem; }

.faq-section { background: #fff; }
.contact-line { display: inline-grid; margin-top: 1rem; text-decoration: none; }
.contact-line span { color: #64706a; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.contact-line strong { font-size: 1.5rem; }
.accordion { --bs-accordion-border-color: #dfe4df; --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-active-bg: transparent; --bs-accordion-active-color: var(--forest); }
.accordion-button { padding: 1.4rem 0; font-size: 1.08rem; font-weight: 750; }
.accordion-body { padding: 0 2rem 1.5rem 0; color: #64706a; }

.brochure-section { position: relative; overflow: hidden; padding: clamp(3rem, 6vw, 5rem) 0; background: var(--cream); }
.brochure-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.brochure-content { min-height: 800px; }
.form-panel { position: relative; z-index: 1; margin: 0; padding: clamp(2rem, 5vw, 4.2rem); border: 1px solid rgba(255,255,255,.65); border-radius: var(--radius); background: #ffffffde; box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.form-panel h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.form-panel > p:not(.eyebrow) { color: #64706a; }
.form-label { margin-bottom: .4rem; font-size: .86rem; font-weight: 750; }
.form-label span { color: #738079; font-weight: 500; }
.form-control, .form-select { min-height: 52px; border-color: #d8ded9; border-radius: .75rem; }
.form-control:focus, .form-select:focus { border-color: var(--softub-grey); box-shadow: 0 0 0 .2rem rgba(48,152,183,.14); }
.form-check-input:checked { background-color: var(--forest); border-color: var(--forest); }
.form-check-label a { color: var(--forest); font-weight: 700; }
.form-reassurance { margin-top: .75rem; color: #738079; font-size: .78rem; }
.bot-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.events-hero { padding: clamp(4rem, 9vw, 7rem) 0 clamp(12rem, 18vw, 15rem); background: linear-gradient(120deg, #083b4c, var(--forest-2)); color: #fff; }
.events-hero h1 { max-width: 11ch; margin-bottom: 1.25rem; color: #fff; }
.events-hero > .container > p:last-child { max-width: 650px; margin: 0; color: rgba(255,255,255,.78); font-size: 1.2rem; }
.events-main { position: relative; z-index: 2; margin-top: -10rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.events-carousel-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; color: #fff; }
.events-carousel-heading h2 { margin: 0; color: #fff; font-size: clamp(2rem, 4vw, 3.2rem); }
.events-carousel-controls { display: flex; gap: .65rem; }
.events-arrow { display: grid; width: 3rem; height: 3rem; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: #fff; color: var(--forest); box-shadow: 0 8px 24px rgba(9,45,57,.2); }
.events-arrow svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.events-rail { display: flex; gap: 1.5rem; overflow-x: auto; padding: .25rem .25rem 2.5rem; margin: -.25rem; cursor: grab; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.events-rail::-webkit-scrollbar { display: none; }
.events-rail .event-card { flex: 0 0 30%; min-width: 280px; scroll-snap-align: start; }
.events-rail .event-card-body { padding: 1.35rem 1.5rem 1.5rem; }
.events-rail .event-place { margin-bottom: .6rem; }
.events-rail .event-card-body h3 { margin-bottom: 1.25rem; }
.events-rail a, .events-rail img { -webkit-user-drag: none; user-select: none; }
.events-rail img { pointer-events: none; }
.events-rail.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.events-history { margin-top: clamp(3.5rem, 7vw, 6rem); }
.events-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.events-history-heading h2 { margin: 0; }
#past-events-title { scroll-margin-top: 7rem; }
.events-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.event-card { display: flex; overflow: hidden; flex-direction: column; border: 1px solid #e2e7e3; border-radius: var(--radius); background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.event-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.event-card-media { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--sage); }
.event-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.event-card:hover .event-card-media img { transform: scale(1.04); }
.event-date { position: absolute; top: 1rem; left: 1rem; display: grid; min-width: 4rem; padding: .65rem .75rem; border-radius: .85rem; background: #fff; color: var(--forest); line-height: 1; text-align: center; box-shadow: 0 8px 24px rgba(9,45,57,.18); }
.event-date strong { font-size: 1.6rem; }
.event-date > span { margin-top: .25rem; font-size: .7rem; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }
.event-date small { font-size: .62rem; letter-spacing: .03em; opacity: .7; }
.event-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.6rem; }
.event-card-body h3 { margin-bottom: .65rem; font-size: 1.45rem; }
.event-place { margin-bottom: 1rem; color: var(--forest); font-size: .9rem; font-weight: 750; }
.event-place::before { content: ""; display: inline-block; width: .55rem; height: .55rem; margin-right: .45rem; border-radius: 50%; background: var(--softub-grey); }
.event-excerpt { margin-bottom: 1.4rem; color: #64706a; font-size: .95rem; }
.event-card-body .text-link { margin-top: auto; }
.events-empty { grid-column: 1 / -1; padding: 2rem; border-radius: var(--radius); background: #fff; color: #64706a; }
.events-status:not(:empty) { margin: 1.5rem 0 0; color: #64706a; font-size: .9rem; }
.events-pagination { display: flex; justify-content: center; gap: .5rem; margin-top: 2.5rem; }
.events-pagination-inline { flex-shrink: 0; margin-top: 0; }
.events-pagination[hidden] { display: none; }
.events-pagination span { display: flex; gap: .5rem; }
.events-pagination button { min-width: 2.7rem; height: 2.7rem; padding: 0 .65rem; border: 1px solid #ccd6d2; border-radius: 999px; background: #fff; color: var(--forest); font-weight: 750; }
.events-pagination button:hover:not(:disabled), .events-pagination button.active { border-color: var(--forest); background: var(--forest); color: #fff; }
.events-pagination button:disabled { opacity: .4; cursor: not-allowed; }
.events-cta { padding: clamp(3rem, 6vw, 5rem) 0; background: var(--forest); color: #fff; }
.events-cta h2 { max-width: 18ch; margin: 0; color: #fff; font-size: clamp(2rem, 4vw, 3.2rem); }

.single-event-hero { position: relative; overflow: hidden; padding: clamp(3.5rem, 8vw, 7rem) 0; background: linear-gradient(120deg, #083b4c, var(--forest-2)); color: #fff; }
.single-event-hero.has-image::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(120deg, rgba(8,59,76,.9), rgba(23,111,137,.7)); content: ""; }
.single-event-hero-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.single-event-hero > .container { position: relative; z-index: 2; }
.single-event-hero h1 { max-width: 16ch; margin: 1rem 0 1.5rem; color: #fff; }
.single-event-back { display: inline-block; margin-bottom: 2.5rem; color: rgba(255,255,255,.78); font-size: .9rem; font-weight: 700; text-decoration: none; }
.single-event-back:hover { color: #fff; }
.single-event-meta { display: flex; flex-wrap: wrap; gap: .75rem; }
.single-event-meta time, .single-event-meta span { padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(255,255,255,.1); font-size: .9rem; font-weight: 700; }
.single-event { background: var(--cream); }
.single-event-layout { max-width: 900px; margin-inline: auto; }
.single-event-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid #e2e7e3; border-radius: var(--radius); background: #fff; text-align: center; }
.single-event-copy > * { grid-column: 1 / -1; }
.single-event-copy > .wp-block-image, .single-event-copy > .event-gallery-item { grid-column: auto; margin: 0; }
.single-event-copy .wp-block-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.single-event-copy .wp-block-gallery > * { width: auto !important; margin: 0 !important; }
.single-event-copy > :first-child { margin-top: 0; }
.single-event-copy > :last-child { margin-bottom: 0; }
.single-event-copy h2, .single-event-copy h3 { margin: 2rem 0 1rem; }
.single-event-copy h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.single-event-copy strong { color: #3098b7; }
.single-event-copy img { max-width: 100%; height: auto; border-radius: calc(var(--radius) / 2); }
.single-event-copy a:not(.btn) { color: var(--forest-2); font-weight: 700; }
.event-gallery-link { display: block; overflow: hidden; border-radius: calc(var(--radius) / 2); cursor: zoom-in; }
.event-gallery-link img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.event-gallery-link:hover img { transform: scale(1.03); }
.event-lightbox { overflow: visible; width: min(92vw, 1200px); max-width: none; padding: 0; border: 0; background: transparent; }
.event-lightbox::backdrop { background: rgba(3,21,28,.9); backdrop-filter: blur(4px); }
.event-lightbox img { display: block; max-width: 92vw; max-height: 86vh; margin: auto; border-radius: calc(var(--radius) / 2); object-fit: contain; box-shadow: var(--shadow); }
.event-lightbox-close { position: absolute; right: 0; bottom: calc(100% + .75rem); display: grid; width: 2.75rem; height: 2.75rem; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: #fff; color: var(--forest); font-size: 1.65rem; line-height: 1; }
.single-event-not-found { max-width: 680px; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius); background: #fff; }

.site-footer { padding: 3rem 0 1.5rem; background: #58585a; color: rgba(255,255,255,.7); }
.footer-logo { margin-bottom: 1.2rem; filter: brightness(0) invert(1); opacity: .92; }
.site-footer h2 { color: #fff; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer ul { display: grid; gap: .45rem; padding: 0; margin: 0; list-style: none; }
.site-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.site-footer a:hover { color: #fff; }
.footer-social { display: flex; gap: .5rem; margin-top: 1rem; }
.footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid currentColor; border-radius: 50%; }
.footer-social a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 4rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .78rem; }
.mobile-cta { display: block; position: fixed; right: .75rem; bottom: .65rem; z-index: 1040; box-shadow: 0 12px 30px rgba(0,0,0,.22); }

@media (min-width: 992px) {
  .hero { background: #a7b999; }
  .hero-image { width: 100%; object-position: center; }
  .min-vh-hero { min-height: min(890px, calc(100svh - 110px)); }
}

.bg-cream { background: var(--cream); }
.success-title { max-width: 13ch; margin: 0 auto 1.5rem; }
.success-mark { display: grid; width: 4.5rem; height: 4.5rem; place-items: center; border-radius: 50%; background: var(--sage); color: var(--forest); font-size: 2rem; font-weight: 900; }
.legal-copy { max-width: 820px; }
.legal-copy > h1 { margin-bottom: 1.5rem; font-size: clamp(2.6rem, 6vw, 4.7rem); }
.legal-copy > h2 { margin: 3rem 0 1rem; font-size: 1.45rem; letter-spacing: -.02em; }
.legal-copy a { color: var(--forest-2); font-weight: 700; }

@media (max-width: 991.98px) {
  .navbar-collapse { padding: 1rem 0 1.25rem; }
  .hero .row { margin-right: 0; margin-left: 0; }
  .hero::after { background: linear-gradient(0deg, rgba(7,37,48,.28), transparent 60%); }
  .hero-image { object-position: 36% center; }
  .min-vh-hero { align-items: end !important; min-height: 760px; padding: 12rem 0 2rem; }
  .hero-card { margin: 0 auto; }
  .fact:nth-child(2) { border-right: 0; }
  .fact:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.15); }
  .split-feature img { min-height: 420px; }
  .model-contact-panel { align-items: flex-start; flex-direction: column; }
  .model-contact-actions { justify-content: flex-start; }
  .alt-gallery-stack { gap: 5rem; }
  .alt-gallery-media { width: 100%; }
  .alt-gallery-copy, .alt-gallery-card:nth-child(even) .alt-gallery-copy { position: relative; top: auto; right: auto; left: auto; width: calc(100% - 3rem); margin: -4rem auto 0; transform: none; }
  .masonry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .masonry-grid .masonry-full { grid-row: span 5; }
  .events-rail .event-card { flex-basis: 46%; }
  .events-history-heading { align-items: flex-start; flex-direction: column; }
  .events-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  body { padding-bottom: 64px; }
  h1 { font-size: clamp(2.55rem, 12vw, 3.7rem); }
  .topbar { font-size: .72rem; }
  .hero { background: var(--cream); }
  .hero::after { display: none; }
  .hero-image { position: relative; width: 100%; height: auto; object-fit: contain; object-position: center; }
  .hero-card { padding: 1.5rem; }
  .hero-card .btn { width: 100%; }
  .min-vh-hero { min-height: 0; margin-top: -1.5rem; padding: 0 0 3.5rem; }
  .hero-price { display: flex; width: fit-content; flex-wrap: wrap; }
  .facts .container { padding: 0; }
  .fact { padding: 1.35rem .5rem; }
  .model-showcase-media { width: 100%; }
  .models-heading { position: relative; top: auto; left: auto; width: calc(100% - 1.5rem); margin: 1rem auto 0; padding: 1.35rem; transform: none; }
  .model-showcase-title { font-size: 1.8rem; }
  .models-section .model-arrow-prev { left: calc(50% - 3.5rem); }
  .models-section .model-arrow-next { right: calc(50% - 3.5rem); }
  .model-contact-actions, .model-contact-actions .btn { width: 100%; }
  .alt-gallery-stack { gap: 4rem; }
  .alt-gallery-media { width: 100%; }
  .alt-gallery-copy, .alt-gallery-card:nth-child(even) .alt-gallery-copy { position: relative; top: auto; right: auto; left: auto; width: calc(100% - 1.5rem); margin: -2rem auto 0; padding: 1.5rem; transform: none; box-shadow: none; }
  .masonry-grid { grid-template-columns: 1fr; }
  .masonry-grid .masonry-wide, .masonry-grid .masonry-large, .masonry-grid .masonry-full { grid-column: auto; }
  .masonry-grid .masonry-copy { grid-column: auto; grid-row: span 3; }
  .masonry-grid .masonry-wide { grid-row: span 2; }
  .masonry-grid .masonry-large { grid-row: span 3; }
  .masonry-grid .masonry-full { grid-row: span 3; }
  .events-hero { padding-bottom: 12rem; }
  .events-main { margin-top: -9rem; }
  .events-carousel-heading { align-items: center; }
  .events-rail { gap: 1rem; }
  .events-rail .event-card { flex-basis: 84%; }
  .events-pagination { max-width: 100%; justify-content: flex-start; overflow-x: auto; padding-bottom: .25rem; }
  .events-grid { grid-template-columns: 1fr; }
  .single-event-copy { grid-template-columns: 1fr; padding: 1.5rem; }
  .single-event-copy .wp-block-gallery { grid-template-columns: 1fr; }
  .brochure-section { padding: 0 0 3rem; }
  .brochure-bg { position: relative; height: auto; object-fit: contain; }
  .brochure-content { min-height: 0; margin-top: -1.5rem; }
  .brochure-section .container { padding: 0 .75rem; }
  .form-panel { padding: 1.5rem; box-shadow: none; }
  .footer-bottom { flex-direction: column; }
  .mobile-cta { left: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .gallery-reveal { opacity: 1; transform: none; }
  .masonry-grid figure:hover img, .alt-gallery-media:hover img { transform: none; }
}
