.home-page {
  background: var(--color-ivory-canvas);
}

.home-page .label { margin-bottom: var(--space-3); }
.home-page .button { white-space: normal; }
.home-page .home-text-link { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; color: var(--color-terracotta-deep); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: 700; text-decoration: none; }
.home-page .home-text-link:hover { color: var(--color-graphite); }

.home-hero { isolation: isolate; overflow: clip; padding: var(--space-12) 0 var(--space-20); background: var(--color-deep-plum); color: var(--color-on-dark); }
.home-hero__grid { display: grid; grid-template-columns: minmax(28.125rem, 5fr) minmax(29.375rem, 7fr); gap: var(--space-5); align-items: center; }
.home-hero__invitation { position: relative; z-index: 2; display: flex; min-width: 0; flex-direction: column; gap: var(--space-6); min-height: 34rem; padding: clamp(2rem, 4vw, 3rem); border-radius: var(--radius-2xl); transform-style: preserve-3d; transition: transform 120ms ease-out; }
.home-hero__copy { width: min(100%, 32.5rem); min-width: 0; }
.home-hero__copy h1 { margin-bottom: var(--space-5); }
.home-hero__lead { margin-bottom: 0; font-size: var(--text-lead); line-height: var(--leading-lead);color:black; }
.home-hero__details { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-hero__meta { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-2); color: var(--color-slate); font-size: var(--text-xs); line-height: var(--leading-xs); }
.home-hero__meta span:not(:last-child)::after { margin-left: var(--space-2); color: var(--color-terracotta); content: "•"; }
.home-hero__notice { margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--color-deep-plum); color: var(--color-on-dark); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: 700; line-height: var(--leading-sm); }
.home-hero__actions { margin-top: auto; }
.home-hero__scene { position: relative; min-width: 0; height: 34rem; overflow: hidden; border-radius: var(--radius-2xl); }
.home-hero__panel { position: absolute; overflow: hidden; border: 1px solid var(--color-glass-highlight); border-radius: var(--radius-xl); background: rgba(255,255,255,.62); box-shadow: inset 0 1px 0 rgba(255,255,255,.72), var(--shadow-md); transition: transform 120ms ease-out; -webkit-backdrop-filter: blur(22px) saturate(115%); backdrop-filter: blur(22px) saturate(115%); }
.home-hero__panel img { width: 100%; height: 100%; object-fit: cover; opacity: .8; }
.home-hero__panel--one { top: 2rem; right: 1rem; width: 75%; height: 54%; }
.home-hero__panel--one img { object-position: 70% 40%; }
.home-hero__panel--two { bottom: 1.5rem; left: 1rem; width: 58%; height: 42%; }
.home-hero__panel--two img { object-position: 35% 60%; }
.home-hero__panel--three { right: 1.5rem; bottom: 3.5rem; width: 36%; height: 31%; }
.home-hero__panel--three img { object-position: 80% 80%; }
.home-hero__object { position: absolute; z-index: 2; top: 44%; left: 47%; width: 11rem; height: 8rem; transform: translate(-50%, -50%) rotate(-8deg); border-radius: 1.5rem; background: linear-gradient(145deg, #fffdf8, #d7ccc2); box-shadow: inset 0 2px 2px rgba(255,255,255,.9), 0 1.2rem 2rem rgba(25,18,24,.32); }
.home-hero__object span { position: absolute; display: block; border-radius: 999px; background: var(--color-terracotta); box-shadow: inset 0 2px 2px rgba(255,255,255,.45); }
.home-hero__object span:nth-child(1) { top: 1.65rem; left: 2rem; width: 6.5rem; height: 1rem; }
.home-hero__object span:nth-child(2) { top: 3.45rem; left: 2rem; width: 4.4rem; height: 1rem; background: var(--color-sage); }
.home-hero__object span:nth-child(3) { top: 5.25rem; left: 2rem; width: 5.5rem; height: .75rem; background: var(--color-deep-plum); }

.home-offers__intro { width: min(100%, 38.75rem); min-width: 0; }
.home-offers__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.home-offer { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-offer h3, .home-offer p { margin: 0; }
.home-offer__icon { position: relative; width: 4rem; height: 4rem; flex: 0 0 4rem; border-radius: 1.25rem; background: rgba(197,215,220,.72); box-shadow: inset 0 2px 2px rgba(255,255,255,.82), var(--shadow-sm); }
.home-offer--guests .home-offer__icon { background: rgba(169,182,164,.64); }
.home-offer--calendar .home-offer__icon span { position: absolute; inset: 1rem; border: 2px solid var(--color-graphite); border-radius: .55rem; }
.home-offer--calendar .home-offer__icon span::before { position: absolute; top: .55rem; left: .45rem; width: 1.3rem; height: 2px; background: var(--color-terracotta); box-shadow: 0 .55rem 0 var(--color-terracotta); content: ""; }
.home-offer--guests .home-offer__icon span { position: absolute; bottom: 1rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--color-graphite); }
.home-offer--guests .home-offer__icon span:nth-child(1) { left: 1.45rem; }.home-offer--guests .home-offer__icon span:nth-child(2) { left: 2.4rem; transform: scale(.78); }.home-offer--guests .home-offer__icon span:nth-child(3) { left: .7rem; transform: scale(.78); }
.home-offer--table .home-offer__icon span:first-child { position: absolute; top: 1.25rem; left: .65rem; width: 2.7rem; height: 1.35rem; border-radius: 50%; background: var(--color-graphite); }.home-offer--table .home-offer__icon span:last-child { position: absolute; top: 2.25rem; left: 1.15rem; width: 1.7rem; height: 1.3rem; border-bottom: 3px solid var(--color-terracotta); border-left: 3px solid var(--color-terracotta); border-right: 3px solid var(--color-terracotta); }

.home-program { background: linear-gradient(180deg, rgba(197,215,220,.34), rgba(244,240,233,0)); }
.home-program__intro { width: min(100%, 37.5rem); min-width: 0; }
.home-program__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.home-program__card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-program__card h3, .home-program__card p { margin: 0; }
.home-program__card--sage { background: linear-gradient(180deg, rgba(169,182,164,.28), rgba(255,255,255,.04)), var(--color-porcelain); }
.home-program__meta { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-3); color: var(--color-slate); font-size: var(--text-xs); }
.home-program__summary { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: center; }
.home-program__summary-copy { width: min(100%, 32.5rem); min-width: 0; }
.home-program__summary-copy h3, .home-program__summary-copy p { margin-bottom: var(--space-4); }
.home-program__summary .button { justify-self: end; }

.home-venue__heading { width: min(100%, 38rem); min-width: 0; }
.home-venue__layout { display: grid; grid-template-columns: minmax(32.5rem, 7fr) minmax(23.75rem, 5fr); gap: var(--space-8); align-items: center; }
.home-venue__image { min-width: 0; margin: 0; }.home-venue__image img { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--radius-xl); object-fit: cover; box-shadow: var(--shadow-md); }.home-venue__image figcaption { margin-bottom: 0; }
.home-venue__copy { display: flex; min-width: 0; flex-direction: column; gap: var(--space-6); }
.home-venue__block { width: min(100%, 30rem); min-width: 0; }.home-venue__block h3, .home-venue__block p { margin: 0; }.home-venue__block { display: flex; flex-direction: column; gap: var(--space-3); }
.home-venue__block--table { position: relative; padding-left: 4.5rem; }.home-venue__mini-icon { position: absolute; top: .25rem; left: 0; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--color-mist-blue); box-shadow: inset 0 2px 2px rgba(255,255,255,.8), var(--shadow-sm); }.home-venue__mini-icon::after { position: absolute; inset: .8rem; border: 2px solid var(--color-graphite); border-radius: 50%; content: ""; }
.home-venue__cta { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); }.home-venue__cta h4, .home-venue__cta p { margin: 0; }

.home-process__intro { width: min(100%, 38.75rem); min-width: 0; }
.home-process__grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.home-process__grid::before { position: absolute; z-index: 0; top: 3.5rem; right: 12%; left: 12%; height: 1px; background: rgba(185,99,77,.35); content: ""; }
.home-process__step { position: relative; z-index: 1; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }.home-process__step h3, .home-process__step p { margin: 0; }.home-process__step--raised { transform: translateY(-.75rem); }
.home-process__number { display: inline-flex; width: 2.25rem; height: 2.25rem; align-items: center; justify-content: center; border-radius: var(--radius-pill); background: var(--color-terracotta); color: #fff; font-family: var(--font-heading); font-weight: 700; }.home-process__number--sage { background: var(--color-sage); color: var(--color-graphite); }.home-process__number--blue { background: var(--color-mist-blue); color: var(--color-graphite); }

.home-gallery__intro { width: min(100%, 35rem); min-width: 0; }
.home-gallery__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.home-gallery__item { position: relative; display: block; min-width: 0; min-height: 18rem; overflow: hidden; border-radius: var(--radius-xl); color: var(--color-on-dark); text-decoration: none; box-shadow: var(--shadow-md); }.home-gallery__item--wide { grid-column: span 2; }.home-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: filter var(--transition-fast); }.home-gallery__item::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36,37,42,.03) 42%, rgba(36,37,42,.68)); content: ""; pointer-events: none; }.home-gallery__item:hover img { filter: brightness(1.06); }.home-gallery__item span { position: absolute; z-index: 1; right: var(--space-5); bottom: var(--space-5); left: var(--space-5); display: flex; min-width: 0; flex-direction: column; gap: var(--space-1); color: var(--color-on-dark); font-size: var(--text-xs); line-height: var(--leading-xs); }.home-gallery__item strong { font-family: var(--font-heading); font-size: var(--text-sm); }
.home-gallery__cta { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }.home-gallery__cta h3, .home-gallery__cta p { margin: 0; }

.home-faq__intro { width: min(100%, 37.5rem); min-width: 0; }.home-faq__list { display: flex; width: min(100%, 56.25rem); min-width: 0; flex-direction: column; gap: var(--space-3); }.home-faq__item { min-width: 0; border: 1px solid var(--color-glass-highlight); border-radius: var(--radius-lg); background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.04)), var(--color-porcelain); box-shadow: inset 0 1px 0 rgba(255,255,255,.76), var(--shadow-sm); }.home-faq__item h3 { margin: 0; }.home-faq__item button { display: flex; width: 100%; min-width: 0; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5); border: 0; border-radius: var(--radius-lg); background: transparent; color: var(--color-graphite); font-family: var(--font-heading); font-size: var(--text-lead); font-weight: 700; line-height: var(--leading-lead); text-align: left; }.home-faq__item button span { display: inline-flex; width: 2.75rem; height: 2.75rem; flex: 0 0 2.75rem; align-items: center; justify-content: center; border-radius: 50%; background: rgba(185,99,77,.12); color: var(--color-terracotta-deep); }.home-faq__item.is-open button span { background: var(--color-terracotta); color: #fff; }.home-faq__answer { width: min(100%, 47.5rem); min-width: 0; padding: 0 var(--space-5) var(--space-5); }.home-faq__answer p { margin: 0; }

.home-location__card { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); align-items: center; }.home-location__address { width: min(100%, 26.25rem); min-width: 0; }.home-location__address address { margin: 0 0 var(--space-5); font-family: var(--font-heading); font-size: var(--text-lead); font-style: normal; font-weight: 700; line-height: var(--leading-lead); }.home-location__map { position: relative; min-width: 0; height: 15rem; }.home-location__map-sheet { position: absolute; top: 1rem; right: 10%; bottom: 1rem; left: 10%; overflow: hidden; transform: rotate(-5deg); border-radius: var(--radius-xl); background: var(--color-mist-blue); box-shadow: inset 0 2px 2px rgba(255,255,255,.84), var(--shadow-md); }.home-location__map-sheet span { position: absolute; width: 130%; height: 1.1rem; transform: rotate(-24deg); background: rgba(255,253,248,.8); }.home-location__map-sheet span:first-child { top: 30%; left: -20%; }.home-location__map-sheet span:nth-child(2) { top: 65%; left: -8%; }.home-location__map-sheet i { position: absolute; top: 10%; right: 32%; width: 1rem; height: 110%; transform: rotate(35deg); background: rgba(169,182,164,.72); }.home-location__pin { position: absolute; top: 42%; left: 49%; width: 3.5rem; height: 3.5rem; transform: rotate(45deg); border-radius: 50% 50% 50% 0; background: var(--color-terracotta); box-shadow: inset 0 2px 2px rgba(255,255,255,.42), var(--shadow-sm); }.home-location__pin::after { position: absolute; top: .9rem; left: .9rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--color-porcelain); content: ""; }.home-location__brief { display: flex; min-width: 0; justify-content: space-between; gap: var(--space-6); align-items: center; margin-top: var(--space-5); padding: var(--space-5) var(--space-6); }.home-location__brief > div { width: min(100%, 26.25rem); min-width: 0; }.home-location__brief h3, .home-location__brief p { margin: 0; }.home-location__brief p { margin-top: var(--space-2); }

.home-contact__intro { width: min(100%, 36.875rem); min-width: 0; }.home-contact__layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(17.5rem, 4fr); gap: var(--space-5); align-items: start; }.home-contact__form { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }.home-contact__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }.home-contact__fields > * { min-width: 0; }.home-contact__message { grid-column: 1 / -1; }.home-contact__consent { min-width: 0; }.home-contact__consent label { display: flex; min-width: 0; align-items: flex-start; gap: var(--space-3); font-size: var(--text-sm); line-height: var(--leading-sm); }.home-contact__consent input { width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; margin-top: .15rem; }.home-contact__consent .form-error { margin: var(--space-2) 0 0; }.home-contact__submit { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); }.home-contact__submit .form-help { margin: 0; }.home-contact__status { min-height: 1.5rem; margin: 0; font-weight: 700; }.home-contact__status.is-success { padding: var(--space-4); border-radius: var(--radius-md); background: rgba(169,182,164,.38); }.home-contact__direct { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }.home-contact__direct h3, .home-contact__direct p { margin: 0; }.home-contact__direct dl { display: flex; width: 100%; min-width: 0; flex-direction: column; gap: var(--space-4); }.home-contact__direct dd { margin: 0; }.home-contact__direct a { color: var(--color-terracotta-deep); font-weight: 700; }

.home-closing__card { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: center; padding: clamp(var(--space-6), 5vw, var(--space-10)); border-radius: var(--radius-2xl); }.home-closing__copy { width: min(100%, 33.75rem); min-width: 0; }.home-closing__copy h2, .home-closing__copy p { color: var(--color-on-dark); }.home-closing__copy p { margin-bottom: 0; }.home-closing__actions { display: flex; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-3); }.home-closing__actions .button--secondary { background: rgba(255,255,255,.14); color: var(--color-on-dark); border-color: rgba(255,255,255,.28); }

@media (max-width: 61.25rem) { .home-hero__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.home-hero__invitation { min-height: 32rem; }.home-hero__scene { height: 32rem; }.home-offers__grid, .home-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.home-offers__grid > :last-child, .home-process__grid > :last-child { grid-column: 1 / -1; }.home-process__grid::before { display: none; }.home-process__step--raised { transform: none; }.home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.home-gallery__item--wide { grid-column: 1 / -1; }.home-gallery__cta { grid-column: 1 / -1; } }
@media (max-width: 56.25rem) { .home-venue__layout, .home-contact__layout { grid-template-columns: 1fr; }.home-venue__image { grid-row: 1; }.home-venue__copy { grid-row: 2; }.home-contact__direct { width: 100%; }.home-contact__direct dl { flex-direction: row; }.home-contact__direct dl > div { min-width: 0; flex: 1 1 0; }.home-contact__direct dd { overflow-wrap: anywhere; } }
@media (max-width: 51.25rem) { .home-hero { padding: var(--space-8) 0 var(--space-16); }.home-hero__grid { grid-template-columns: 1fr; }.home-hero__invitation { min-height: 0; }.home-hero__scene { height: 18rem; }.home-hero__panel--one { width: 74%; }.home-hero__panel--two { width: 58%; }.home-program__grid { grid-template-columns: 1fr; }.home-program__summary { grid-template-columns: 1fr; }.home-program__summary .button { justify-self: start; }.home-venue__layout { gap: var(--space-6); }.home-location__card { grid-template-columns: 1fr; }.home-location__map { height: 11.25rem; }.home-location__brief { flex-direction: column; align-items: stretch; }.home-location__brief .button { width: 100%; }.home-closing__card { grid-template-columns: 1fr; }.home-closing__actions { justify-content: flex-start; } }
@media (max-width: 37.5rem) { .home-hero__invitation { padding: var(--space-5); }.home-hero__copy h1 { font-size: 2.125rem; line-height: 2.5rem; }.home-hero__lead { font-size: var(--text-base); line-height: var(--leading-base); }.home-hero__actions { flex-direction: column; align-items: stretch; }.home-hero__actions .button { width: 100%; }.home-hero__scene { height: 16.25rem; }.home-hero__object { width: 8.5rem; height: 6.25rem; }.home-hero__object span:nth-child(1) { top: 1.25rem; left: 1.45rem; width: 5rem; }.home-hero__object span:nth-child(2) { top: 2.75rem; left: 1.45rem; width: 3.4rem; }.home-hero__object span:nth-child(3) { top: 4.25rem; left: 1.45rem; width: 4rem; }.home-offers__grid, .home-process__grid, .home-gallery__grid, .home-contact__fields { grid-template-columns: 1fr; }.home-offers__grid > :last-child, .home-process__grid > :last-child, .home-gallery__item--wide, .home-gallery__cta { grid-column: auto; }.home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }.home-gallery__item--wide, .home-gallery__cta { grid-column: 1 / -1; }.home-gallery__item { min-height: 13rem; }.home-gallery__item--wide { min-height: 16rem; }.home-gallery__item span { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); }.home-faq__item button { padding: var(--space-4); font-size: var(--text-base); line-height: var(--leading-base); }.home-faq__answer { padding: 0 var(--space-4) var(--space-4); }.home-contact__message { grid-column: auto; }.home-contact__submit { align-items: stretch; flex-direction: column; }.home-contact__submit .button { width: 100%; }.home-contact__direct dl { flex-direction: column; }.home-closing__actions { flex-direction: column; }.home-closing__actions .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .home-hero__invitation, .home-hero__panel { transform: none !important; transition: none; }.home-process__step--raised { transform: none; } }
