.private-meetings-page { overflow: hidden; }
.private-meetings-page .section { position: relative; }
.pm-hero { padding-top: clamp(3rem, 7vw, 6.5rem); }
.pm-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem; align-items: center; }
.pm-hero__grid > * { min-width: 0; width: 100%; }
.pm-hero__content { position: relative; display: flex; flex-direction: column; gap: var(--space-4); max-width: 36.875rem; }
.pm-hero__content::before { position: absolute; z-index: -1; width: 15rem; height: 15rem; top: -3rem; left: -6rem; border-radius: 48% 52% 44% 56%; background: rgb(174 185 163 / .24); content: ""; }
.pm-hero__content h1, .pm-hero__content p { margin: 0; }
.pm-hero__content h1 { font-size: clamp(3rem, 5.3vw, 4rem); }
.pm-hero__actions { align-items: center; }
.pm-text-link { display: inline-flex; width: fit-content; min-height: 2.75rem; align-items: center; font-weight: 700; }
.pm-hero__note { max-width: 34rem; padding-top: var(--space-4); border-top: 1px solid var(--color-sage-wash); color: var(--color-olive-muted); font-size: var(--text-sm); line-height: var(--leading-small); }
.pm-hero__figure, .pm-seasonal__figure, .pm-space__figure, .pm-gallery__item { margin: 0; }
.pm-hero__figure img { width: 100%; aspect-ratio: 3 / 2; border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); object-fit: cover; }
.pm-occasions__intro { max-width: 40rem; }
.pm-occasions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.pm-occasions__grid > * { min-width: 0; width: 100%; }
.pm-occasion-card { display: flex; flex-direction: column; gap: var(--space-3); }
.pm-occasion-card > * { margin: 0; }
.pm-occasion-card h3 { font-size: var(--text-h4); }
.pm-seasonal__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: start; }
.pm-seasonal__grid > * { min-width: 0; width: 100%; }
.pm-seasonal__figure img { width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); object-fit: cover; }
.pm-seasonal__content { display: flex; flex-direction: column; gap: var(--space-4); max-width: 35rem; }
.pm-seasonal__content > * { margin: 0; }
.pm-seasonal__callout { display: flex; flex-direction: column; gap: var(--space-2); max-width: 26.875rem; margin-top: var(--space-3); padding: var(--space-4); border: 1px solid var(--color-border-lavender); border-radius: var(--radius-md); background: var(--color-lavender-mist); }
.pm-seasonal__callout > * { margin: 0; }
.pm-space::before, .pm-games::after { position: absolute; z-index: 0; pointer-events: none; border-radius: 48% 52% 58% 42%; content: ""; }
.pm-space::before { width: 17rem; height: 10rem; right: -7rem; bottom: 1rem; background: rgb(174 185 163 / .2); }
.pm-space > .container, .pm-games > .container { position: relative; z-index: 1; }
.pm-space__top { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem; align-items: start; }
.pm-space__top > * { min-width: 0; width: 100%; }
.pm-space__intro { max-width: 36.875rem; }
.pm-space__figure img { width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--color-border-lavender); border-radius: var(--radius-lg); object-fit: cover; }
.pm-space__notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.pm-space__notes > * { min-width: 0; width: 100%; }
.pm-space-note { max-width: 19.375rem; }
.pm-space-note:nth-child(2) { margin-top: var(--space-5); }
.pm-space-note > * { margin-bottom: var(--space-3); }
.pm-space-note > :last-child { margin-bottom: 0; }
.pm-step-number, .pm-process-number { color: var(--color-dusty-rose-dark); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }
.pm-games::after { width: 14rem; height: 14rem; right: -6rem; top: 5rem; background: rgb(185 130 131 / .13); }
.pm-games__intro { max-width: 38.75rem; }
.pm-games__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.pm-games__grid > * { min-width: 0; width: 100%; }
.pm-game-card { display: flex; flex-direction: column; gap: var(--space-3); border-color: var(--color-border-lavender); }
.pm-game-card > * { margin: 0; }
.pm-game-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--color-sage-wash); border-radius: 50%; color: var(--color-olive-ink); font-size: 1.25rem; }
.pm-games__boundary { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--space-3); width: min(100%, 45rem); margin: var(--space-6) auto 0; padding: var(--space-4); border: 1px solid var(--color-border-paper); border-radius: var(--radius-md); background: var(--color-paper-warm); }
.pm-games__boundary > * { min-width: 0; margin: 0; }
.pm-boundary-mark { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: 50%; background: var(--color-sage-wash); }
.pm-process__intro { max-width: 40rem; }
.pm-process__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-7); }
.pm-process__grid > * { min-width: 0; width: 100%; }
.pm-process-card { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: var(--color-paper-warm); }
.pm-process-card > * { margin: 0; }
.pm-process-card h3 { font-size: var(--text-h4); }
.pm-gallery__intro { max-width: 32.5rem; }
.pm-gallery__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-6); align-items: start; margin-top: var(--space-7); }
.pm-gallery__grid > * { min-width: 0; width: 100%; }
.pm-gallery__item--detail { margin-top: var(--space-7); grid-column: 1; grid-row: 1; }
.pm-gallery__item--wide { grid-column: 2; grid-row: 1; }
.pm-gallery__trigger { display: block; width: 100%; padding: 0; overflow: hidden; border: 1px solid var(--color-border-lavender); border-radius: var(--radius-lg); background: transparent; }
.pm-gallery__trigger img { width: 100%; object-fit: cover; transition: transform var(--transition-base); }
.pm-gallery__item--wide img { aspect-ratio: 3 / 2; }
.pm-gallery__item--detail img { aspect-ratio: 4 / 3; }
.pm-gallery__trigger:hover img { transform: translateY(-2px); }
.pm-gallery__item figcaption { max-width: 100%; }
.pm-query-tips__intro { max-width: 38.125rem; }
.pm-query-tips__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.pm-query-tips__grid > * { min-width: 0; width: 100%; }
.pm-tip-card { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: var(--color-paper-warm); }
.pm-tip-card--sage { background: color-mix(in srgb, var(--color-sage-wash) 28%, var(--color-paper-warm)); }
.pm-tip-card > * { margin: 0; }
.pm-tip-symbol { color: var(--color-dusty-rose-dark); font-size: 1.5rem; }
.pm-tip-card h3 { font-size: var(--text-h4); }
.pm-faq { background: var(--color-paper-warm); }
.pm-faq__intro { max-width: 40.625rem; }
.pm-faq__panel { width: min(100%, 53.75rem); margin-top: var(--space-6); border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: var(--color-paper-milk); overflow: hidden; }
.pm-faq-item + .pm-faq-item { border-top: 1px solid var(--color-border-paper); }
.pm-faq-item h3 { margin: 0; font-family: var(--font-body); font-size: var(--text-base); letter-spacing: 0; }
.pm-faq-button { display: flex; width: 100%; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); border: 0; background: transparent; color: var(--color-olive-ink); font-weight: 700; text-align: left; }
.pm-faq-button span { flex: 0 0 auto; color: var(--color-dusty-rose-dark); font-size: 1.5rem; transition: transform var(--transition-base); }
.pm-faq-button[aria-expanded="true"] span { transform: rotate(45deg); }
.pm-faq-answer { max-width: 38.75rem; padding: 0 var(--space-5) var(--space-5); }
.pm-faq-answer p { margin: 0; }
.pm-contact__intro { max-width: 37.5rem; }
.pm-contact__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-7); align-items: start; margin-top: var(--space-6); }
.pm-contact__grid > * { min-width: 0; width: 100%; }
.pm-contact-form { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: var(--color-paper-warm); }
.pm-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.pm-form-row > * { min-width: 0; width: 100%; }
.pm-consent { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.pm-consent input { width: 1.25rem; height: 1.25rem; margin-top: .2rem; }
.pm-consent label { min-width: 0; font-size: var(--text-sm); line-height: var(--leading-small); }
.pm-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.pm-form-actions > * { min-width: 0; }
.pm-form-status { margin: 0; color: var(--color-success); font-weight: 700; }
.pm-contact-note { display: flex; flex-direction: column; gap: var(--space-3); max-width: 18.75rem; padding: var(--space-5); border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--color-sage-wash) 22%, var(--color-paper-warm)); }
.pm-contact-note > * { margin: 0; }
.pm-contact-note address { line-height: 1.8; }
.pm-gallery-modal[hidden] { display: none; }
.pm-gallery-modal { position: fixed; z-index: 1001; inset: 0; display: grid; place-items: center; padding: var(--space-4); }
.pm-gallery-modal__backdrop { position: absolute; inset: 0; background: rgb(53 66 53 / .7); }
.pm-gallery-modal__dialog { position: relative; display: flex; width: min(100%, 60rem); max-height: calc(100vh - 2rem); flex-direction: column; gap: var(--space-4); padding: var(--space-4); overflow: auto; border: 1px solid var(--color-border-paper); border-radius: var(--radius-lg); background: var(--color-paper-warm); box-shadow: var(--shadow-soft); }
.pm-gallery-modal__toolbar, .pm-gallery-modal__controls { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.pm-gallery-modal__toolbar p, .pm-gallery-modal__caption { margin: 0; }
.pm-modal-button { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid var(--color-border-paper); border-radius: var(--radius-md); background: var(--color-paper-milk); font-size: 2rem; line-height: 1; }
.pm-gallery-modal__image { width: 100%; max-height: 70vh; object-fit: contain; }
body.pm-gallery-open { overflow: hidden; }
@media (max-width: 62.5rem) { .pm-hero__grid, .pm-seasonal__grid, .pm-space__top { grid-template-columns: 1fr; gap: var(--space-6); } .pm-hero__content, .pm-seasonal__content { max-width: none; } .pm-hero__figure { order: 2; } .pm-seasonal__figure { order: 1; } .pm-seasonal__content { order: 2; } .pm-space__notes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pm-space-note:nth-child(2) { margin-top: 0; } .pm-space-note:nth-child(3) { grid-column: 1 / -1; } .pm-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pm-contact__grid { grid-template-columns: 1fr; gap: var(--space-6); } .pm-contact-note { max-width: none; } }
@media (max-width: 56.25rem) { .pm-occasions__grid, .pm-games__grid, .pm-query-tips__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pm-occasions__grid > :last-child, .pm-games__grid > :last-child, .pm-query-tips__grid > :last-child { grid-column: 1 / -1; } .pm-gallery__grid { grid-template-columns: 1fr; gap: var(--space-6); } .pm-gallery__item--wide, .pm-gallery__item--detail { grid-column: auto; grid-row: auto; margin-top: 0; } .pm-gallery__item--wide { order: 1; } .pm-gallery__item--detail { order: 2; } }
@media (max-width: 40rem) { .pm-hero { padding-top: var(--section-space); } .pm-hero__content h1 { font-size: clamp(2.625rem, 12vw, 3rem); } .pm-hero__figure img { aspect-ratio: 4 / 3; } .pm-occasions__grid, .pm-games__grid, .pm-space__notes, .pm-process__grid, .pm-query-tips__grid { grid-template-columns: 1fr; gap: var(--space-4); } .pm-occasions__grid > :last-child, .pm-games__grid > :last-child, .pm-query-tips__grid > :last-child, .pm-space-note:nth-child(3) { grid-column: auto; } .pm-space__notes { margin-top: var(--space-6); } .pm-games__grid, .pm-query-tips__grid, .pm-process__grid { margin-top: var(--space-6); } .pm-games__boundary { grid-template-columns: 1fr; } .pm-form-row { grid-template-columns: 1fr; } .pm-contact-form { padding: var(--space-4); } .pm-form-actions .button { width: 100%; } .pm-faq-button { min-height: 3rem; padding: var(--space-4); } .pm-faq-answer { padding: 0 var(--space-4) var(--space-4); } .pm-gallery-modal__controls { align-items: stretch; flex-direction: column; } .pm-gallery-modal__controls .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .pm-gallery__trigger img, .pm-faq-button span { transition: none; } }