.concierge-page { background: var(--ivory); color: var(--ink); }
.concierge-page .site-header { color: var(--ink); }
.desktop-nav button, .mobile-menu button { padding: 0; border: 0; background: transparent; text-transform: inherit; letter-spacing: inherit; font-size: inherit; cursor: pointer; }
.foyer { min-height: 100svh; padding-top: 7rem; padding-bottom: 2rem; display: grid; grid-template-columns: minmax(0, .85fr) minmax(25rem, .72fr); align-items: center; gap: 7vw; position: relative; overflow: hidden; }
.foyer-copy { position: relative; z-index: 3; width: min(42rem, 100%); }
.foyer-copy .eyebrow { font-size: .52rem; letter-spacing: .24em; }
.foyer-copy h1 { margin: 0; font-family: var(--serif); font-size: clamp(3.8rem, 6.3vw, 6.8rem); font-weight: 400; line-height: .82; letter-spacing: -.045em; }
.foyer-copy h1 em { font-size: .7em; font-weight: 400; letter-spacing: -.018em; }
.foyer-services { margin: 2.6rem 0 0; font-size: .5rem; text-transform: uppercase; letter-spacing: .22em; }
.foyer-actions { margin-top: 2.6rem; display: flex; align-items: center; gap: 2.75rem; }
.foyer-actions button { background: transparent; color: inherit; cursor: pointer; }
.quiet-book { padding-bottom: .45rem; border-bottom: 1px solid currentColor; font-size: .54rem; text-transform: uppercase; letter-spacing: .16em; }
.package-gift { position: relative; z-index: 3; width: min(21rem,100%); margin-top: 1.7rem; padding: .5rem 0; display: grid; grid-template-columns: 2.2rem 1fr auto; gap: .8rem; align-items: center; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: var(--ivory); }
.package-cover { width: 2.2rem; margin: 0; aspect-ratio: 612 / 792; overflow: hidden; background: var(--ink); box-shadow: 0 .3rem .8rem rgba(18,18,15,.1); }
.package-cover img { width: 100%; height: 100%; display: block; object-fit: cover; }
.package-gift strong { display: grid; gap: .22rem; font-family: var(--serif); font-size: .92rem; font-weight: 400; line-height: 1; }
.package-gift strong em { font-weight: 400; }
.package-gift strong small { font-family: var(--sans); font-size: .38rem; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: .14em; }
.package-gift > i { font-style: normal; font-size: .7rem; }
.architecture-field { position: relative; z-index: 1; width: 100%; height: min(72svh, 45rem); align-self: end; }
.arch-block { position: absolute; display: block; border: 1px solid rgba(18,18,15,.13); background: rgba(255,255,255,.93); }
.arch-a { inset: 9% 8% 6% 24%; }
.arch-b { width: 41%; height: 34%; left: 2%; top: 3%; background: rgba(18,18,15,.018); }
.arch-c { width: 33%; height: 47%; right: 0; top: 0; }
.arch-d { width: 29%; height: 28%; left: 8%; bottom: 0; }
.arch-e { width: 45%; height: 18%; right: 5%; bottom: 4%; background: rgba(18,18,15,.025); }
.arch-f { width: 18%; height: 42%; left: 46%; top: 17%; border-width: 3px 1px 1px; }
.arch-g { width: 23%; height: 21%; right: 11%; top: 41%; background: rgba(18,18,15,.012); }
.architecture-brand { position: absolute; z-index: 2; left: 29%; top: 42%; max-width: 9rem; font-size: .5rem; line-height: 1.8; text-transform: uppercase; letter-spacing: .26em; }
.foyer-legal { position: absolute; z-index: 4; left: var(--pad); bottom: 1.35rem; display: flex; gap: 1.5rem; color: rgba(18,18,15,.52); text-transform: uppercase; letter-spacing: .14em; font-size: .43rem; }
.foyer-legal a { padding-bottom: .14rem; border-bottom: 1px solid rgba(18,18,15,.34); }
.ritual-dialog, .booking-dialog { width: min(52rem, calc(100% - 2rem)); max-height: calc(100svh - 2rem); padding: 0; border: 3px double var(--ink); background: var(--ivory); color: var(--ink); }
.ritual-dialog::backdrop, .booking-dialog::backdrop { background: rgba(18,18,15,.72); backdrop-filter: blur(8px); }
.dialog-shell { padding: clamp(2rem, 5vw, 4.5rem); }
.dialog-close { display: block; margin-left: auto; padding: 0 0 .35rem; border: 0; border-bottom: 1px solid currentColor; background: transparent; text-transform: uppercase; letter-spacing: .13em; font-size: .53rem; cursor: pointer; }
.dialog-title h2, .booking-dialog h2 { margin: 2.5rem 0 2rem; font-family: var(--serif); font-size: clamp(3.8rem, 7vw, 6.8rem); font-weight: 400; line-height: .8; letter-spacing: -.055em; }
.dialog-title h2 em { font-weight: 400; }
.category-list { border-top: 1px solid var(--line-dark); }
.category-list button { width: 100%; display: grid; grid-template-columns: .1fr 1fr .28fr auto; gap: 1rem; align-items: baseline; padding: 1.25rem 0; border: 0; border-bottom: 1px solid var(--line-dark); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.category-list span, .category-list em { font-family: var(--sans); font-size: .52rem; text-transform: uppercase; letter-spacing: .11em; font-style: normal; }
.category-list strong { font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.category-list b { font-weight: 400; }
.ritual-dialog .primary-cta { margin: 2rem 0 0; }
.booking-dialog-shell { min-height: 34rem; display: flex; flex-direction: column; }
.booking-dialog h2 { margin-bottom: .7rem; }
.booking-meta { margin: 0; font-size: .58rem; text-transform: uppercase; letter-spacing: .13em; }
.booking-steps { margin: auto 0 2rem; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); }
.booking-steps span { padding: 1rem 1rem 0 0; font-size: .52rem; text-transform: uppercase; letter-spacing: .11em; }
.booking-dialog .primary-cta { margin-bottom: 1rem; }
.booking-dialog small { font-size: .55rem; line-height: 1.5; opacity: .6; }
@media (max-width: 900px) {
  .foyer { grid-template-columns: 1fr .65fr; gap: 2rem; }
  .architecture-field { margin-right: -10vw; }
}
@media (max-width: 620px) {
  .foyer { min-height: 100svh; padding-top: 6rem; padding-bottom: 1.5rem; grid-template-columns: 1fr; align-content: center; gap: 2rem; }
  .foyer-copy h1 { font-size: clamp(3.55rem, 16vw, 4.6rem); }
  .foyer-services { max-width: 15rem; line-height: 2; }
  .foyer-actions { align-items: flex-start; flex-direction: column; gap: 1.5rem; }
  .package-gift { width: min(19rem,100%); margin-top: 1.35rem; grid-template-columns: 2rem 1fr auto; gap: .7rem; }
  .package-cover { width: 2rem; }
  .package-gift strong { font-size: .84rem; }
  .architecture-field { position: absolute; width: 72vw; height: 46svh; right: -20vw; bottom: 0; margin: 0; opacity: .48; }
  .architecture-brand { left: 26%; }
  .foyer-legal { left: 1.25rem; bottom: .75rem; font-size: .36rem; }
  .category-list button { grid-template-columns: .1fr 1fr auto; }
  .category-list em { grid-column: 2; }
  .category-list b { grid-column: 3; grid-row: 1 / span 2; }
  .booking-steps { grid-template-columns: 1fr; }
  .booking-steps span { padding: .65rem 0; border-bottom: 1px solid var(--line-dark); }
}
