/* The native homepage uses the published Stationery design language.
   Content is locale-specific source HTML; layout is deliberately redesigned. */
.homepage-page {
  --home-ink: #181518;
  --home-plum: #38163c;
  --home-muted: #50494e;
  --home-pale: #f3eef3;
  --home-reference-pad: max(clamp(40px,6vw,88px),calc((100% - 1320px)/2));
  color: var(--home-ink);
  font: 400 16px/1.65 Poppins, Arial, sans-serif;
  padding: 0 30px;
  max-width: 1800px;
  margin-inline: auto;
}
.homepage-page *, .homepage-page *::before, .homepage-page *::after { box-sizing: border-box; }
.homepage-page :where(h1,h2,h3,p,figure,blockquote) { margin: 0; }
.homepage-page :where(h1,h2,h3) { font-family: "Playfair Display", Georgia, serif; font-weight: 400; letter-spacing: -.025em; text-wrap: pretty; }
.homepage-page h1 { font-size: clamp(46px,5.2vw,70px); line-height: 1.03; }
.homepage-page h2 { font-size: clamp(32px,3.4vw,43px); line-height: 1.15; }
.homepage-page h3 { font-size: 25px; line-height: 1.25; }
.homepage-page img { display: block; max-width: 100%; object-fit: cover; }
.homepage-page a { color: inherit; }
.homepage-page :where(a,button,summary):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.homepage-page .home-rich > :where(p,h1,h2,h3) + :where(p,h1,h2,h3) { margin-top: 17px; }
.homepage-page .home-rich > h3:not(:first-child) { margin-top: 34px; }
.homepage-page .home-rich + .home-rich { margin-top: 25px; }
.homepage-page .home-eyebrow { font-size: 12px; font-weight: 500; line-height: 1.5; letter-spacing: .14em; color: var(--home-plum); }
.homepage-page .home-section { padding: 64px clamp(32px,5.5vw,88px); }
.homepage-page .home-panel { border-radius: 22px; overflow: hidden; }
.homepage-page .home-section-heading { max-width: 860px; margin-bottom: 36px; }
.homepage-page .home-section-heading .home-rich + .home-rich { margin-top: 13px; }
.homepage-page .home-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border: 1px solid transparent; border-radius: 11px; background: var(--home-ink); color: #fff; text-decoration: none; font-size: 14px; font-weight: 500; line-height: 1.5; text-align: center; transition: background-color .2s,color .2s; }
.homepage-page .home-button:hover { background: var(--home-plum); }
.homepage-page .home-text-link { text-underline-offset: 4px; text-decoration-thickness: 1px; }
.homepage-page .home-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.homepage-page .home-hero { display: grid; grid-template-columns: 1fr 1fr; padding: 24px; gap: 30px; background: radial-gradient(circle at 80% 35%,#302a2b 0,#211d1e 40%,#181518 76%); color: #fff; }
.homepage-page .home-hero-copy { padding: 44px 20px 44px 28px; align-self: center; }
.homepage-page .home-hero-copy .home-rich + .home-rich { margin-top: 26px; }
.homepage-page .home-hero-copy p { color: rgba(255,255,255,.86); }
.homepage-page .home-hero-copy p:first-child { font: 400 clamp(23px,2vw,29px)/1.4 "Playfair Display",Georgia,serif; color: #fff; }
.homepage-page .home-hero-copy p:last-child { font-size: 13px; letter-spacing: .015em; }
.homepage-page .home-hero-photo { min-height: 620px; border-radius: 15px; overflow: hidden; }
.homepage-page .home-hero-photo img { width: 100%; height: 100%; object-position: 50% 50%; }
.homepage-page .home-hero .home-button { background: #fff; color: var(--home-ink); }
.homepage-page .home-hero .home-button-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.homepage-page .home-hero .home-button:hover { background: var(--home-pale); color: var(--home-ink); }
.homepage-page .home-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.homepage-page .home-service-card { background: #fff; border: 1px solid #ded8d7; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.homepage-page .home-service-card img { width: 100%; height: auto; aspect-ratio: 1.4; }
.homepage-page .home-card-image { display: block; }
.homepage-page .home-service-copy { display: flex; flex-direction: column; flex: 1; padding: 26px 24px; }
.homepage-page .home-service-copy .home-rich + .home-rich { margin-top: 17px; }
.homepage-page .home-service-copy p { color: var(--home-muted); font-size: 14px; line-height: 1.65; }
.homepage-page .home-service-copy .home-button { align-self: flex-start; margin-top: auto; transform: translateY(0); }
.homepage-page .home-service-copy [data-home-copy$="Body"] { margin-bottom: 26px; }
.homepage-page .home-editorial { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; padding-block: 64px; align-items: start; }
.homepage-page .home-editorial > .home-rich { margin-top: 0; }
.homepage-page .home-philosophy { background: var(--home-pale); }
.homepage-page .home-philosophy-copy { max-width: 48ch; }
.homepage-page .home-philosophy-copy > h3 { font-size: 23px; line-height: 1.25; }
.homepage-page .home-philosophy-copy > h3:not(:first-child) { margin-top: 25px; }
.homepage-page .home-philosophy-copy > h3 + p { margin-top: 10px; }
.homepage-page .home-philosophy-copy > p { color: var(--home-muted); }
.homepage-page .home-quests { padding: 64px var(--home-reference-pad); background: #fff; }
.homepage-page .home-quests-heading { display: grid; grid-template-columns: .82fr 1.18fr; gap: 66px; max-width: none; margin-bottom: 36px; align-items: center; }
.homepage-page .home-quests-heading .home-quests-subtitle { max-width: 50ch; margin-top: 0; color: var(--home-muted); }
/* The For Venues service-link composition: one native anchor per entire card,
   with its service name and one short explanation. */
.homepage-page .home-quest-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.homepage-page .home-quest-link { display: block; padding: 22px; border: 1px solid #ded8d7; border-radius: 14px; background: #fff; text-decoration: none; transition: transform .18s ease; }
.homepage-page .home-quest-link h3 { margin-bottom: 15px; font-size: 21px; }
.homepage-page .home-quest-link p { color: #5c5553; font-size: 14px; line-height: 1.5; }
.homepage-page .home-quest-link:hover { transform: translateY(-2px); }
.homepage-page .home-quest-link:focus-visible { outline: 2px solid var(--home-plum); outline-offset: 3px; }
.homepage-page .home-paper { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; background: var(--home-ink); color: #fff; }
.homepage-page .home-paper-copy > .home-rich + .home-rich { margin-top: 25px; }
.homepage-page .home-paper-copy p { color: rgba(255,255,255,.86); }
.homepage-page .home-paper-copy [data-home-copy="paperBody"] > p:first-child { font-size: 12px; font-weight: 500; letter-spacing: .14em; color: #b89e14; }
.homepage-page .home-paper .home-paper-button { background: #fff; color: var(--home-ink); }
.homepage-page .home-paper p:has(.home-paper-button) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.homepage-page .home-paper .home-paper-button[href^="mailto:"] { background: transparent; border-color: rgba(255,255,255,.65); color: #fff; }
.homepage-page .home-paper .home-paper-button:hover { background: var(--home-pale); color: var(--home-ink); border-color: transparent; }
.homepage-page .home-paper figure { min-width: 0; }
.homepage-page .home-paper img { width: 100%; height: auto; border-radius: 15px; }
.homepage-page .home-reviews { padding-block: 88px; }
.homepage-page .home-reviews .home-section-heading { margin-inline: auto; text-align: center; }
.homepage-page .home-carousel { max-width: 880px; margin: 0 auto; }
.homepage-page .home-review { padding: 26px 0; text-align: center; }
.homepage-page .home-review[hidden], .homepage-page [hidden] { display: none; }
.homepage-page .home-review-author { font-size: 14px; color: var(--home-muted); }
.homepage-page .home-review-author .home-rich > p + p { margin-top: 0; }
.homepage-page .home-review-author em { font-size: 12px; font-style: normal; }
.homepage-page .home-review blockquote { margin-top: 26px; font: 400 25px/1.45 "Playfair Display",Georgia,serif; }
.homepage-page .home-review-controls { display: flex; align-items: center; justify-content: center; gap: 26px; margin-top: 18px; }
.homepage-page .home-review-controls button { display: grid; place-items: center; border: 1px solid #ded8d7; border-radius: 50%; background: #fff; color: var(--home-plum); width: 44px; height: 44px; font-size: 22px; cursor: pointer; }
.homepage-page .home-review-controls nav { display: flex; gap: 5px; }
.homepage-page .home-review-controls nav a { display: grid; place-items: center; width: 30px; height: 44px; }
.homepage-page .home-review-controls nav a::before { content: ''; width: 7px; height: 7px; background: #c9bfcc; border-radius: 50%; }
.homepage-page .home-review-controls nav a[aria-current="true"]::before { background: var(--home-plum); width: 10px; height: 10px; }
.homepage-page .home-gallery { padding: 64px var(--home-reference-pad); }
.homepage-page .home-gallery .home-section-heading { margin: 0 auto 36px; text-align: center; }
/* For Venues' showcase sizing: four 4:3 frames per row, 17px gaps, 14px corners. */
.homepage-page .home-gallery-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; }
.homepage-page .home-gallery-grid figure { aspect-ratio: 4/3; margin: 0; overflow: hidden; border-radius: 14px; }
.homepage-page .home-gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.homepage-page .home-gallery-grid figure:nth-child(2) img { object-position: center 56%; }
.homepage-page .home-gallery-grid figure:nth-child(4) img { object-position: center 39%; }
.homepage-page .home-faqs { margin-inline: auto; padding: 0 var(--home-reference-pad) 50px; }
.homepage-page .home-faq { padding-top: 58px; }
.homepage-page .home-faq h2 { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.homepage-page .home-faq details { max-width: 900px; margin-inline: auto; border-top: 1px solid rgba(56,22,60,.22); }
.homepage-page .home-faq details:last-child { border-bottom: 1px solid rgba(56,22,60,.22); }
.homepage-page .home-faq summary { padding: 23px 44px 23px 0; position: relative; list-style: none; cursor: pointer; font: 400 21px/1.4 "Playfair Display",Georgia,serif; }
.homepage-page .home-faq summary::-webkit-details-marker { display: none; }
.homepage-page .home-faq summary::after, .homepage-page .home-faq summary::before { content: ''; position: absolute; right: 8px; top: 50%; width: 14px; height: 1px; background: var(--home-plum); }
.homepage-page .home-faq summary::before { transform: rotate(90deg); }
.homepage-page .home-faq details[open] summary::before { transform: none; }
.homepage-page .home-faq details > p { max-width: 74ch; margin-bottom: 12px; padding-right: 36px; color: var(--home-muted); }
.homepage-page .home-faq details > p:last-child { margin-bottom: 24px; }
.homepage-page .home-contact { display: grid; grid-template-columns: 1.08fr .92fr; column-gap: 80px; row-gap: 24px; align-items: start; padding: 66px var(--home-reference-pad); background: var(--home-ink); color: #fff; }
.homepage-page .home-contact-intro { grid-column: 1; grid-row: 1; }
.homepage-page .home-contact .home-eyebrow { color: #b89e14; text-transform: uppercase; }
.homepage-page .home-contact .home-rich + .home-rich { margin-top: 18px; }
.homepage-page .home-contact h2 { max-width: 18ch; }
.homepage-page .home-contact p { max-width: 63ch; color: rgba(255,255,255,.86); }
.homepage-page .home-contact .home-eyebrow p { color: inherit; }
.homepage-page .home-contact-steps { grid-column: 2; grid-row: 1 / span 2; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.homepage-page .home-contact-steps li { padding: 23px 0; border-top: 1px solid rgba(255,255,255,.22); }
.homepage-page .home-contact-steps li:first-child { padding-top: 0; border-top: 0; }
.homepage-page .home-contact-steps li:last-child { padding-bottom: 0; }
.homepage-page .home-contact-steps h3 { font-size: 23px; }
.homepage-page .home-contact-steps .home-rich > h3 + p { margin-top: 9px; max-width: 43ch; font-size: 14px; line-height: 1.6; }
.homepage-page .home-contact-action { grid-column: 1; grid-row: 2; }
.homepage-page .home-contact .home-contact-location { max-width: 49ch; margin-top: 22px; font-size: 13px; line-height: 1.6; }
.homepage-page .home-contact .home-contact-location p { max-width: none; }
.homepage-page .home-contact .home-button { background: #fff; color: var(--home-ink); }
.homepage-page .home-contact .home-button:hover { background: var(--home-pale); }
@media (max-width: 1180px) {
  .homepage-page { padding-inline: 24px; }
  .homepage-page .home-section { padding-inline: 40px; }
  .homepage-page .home-hero { gap: 18px; padding: 20px; }
  .homepage-page .home-hero-copy { padding: 32px 12px; }
  .homepage-page .home-hero-photo { min-height: 620px; }
  .homepage-page .home-editorial { gap: 40px; }
  .homepage-page .home-service-copy { padding: 22px 20px; }
  .homepage-page .home-service-grid { gap: 20px; }
  .homepage-page .home-gallery { padding-block: 63px; }
  .homepage-page .home-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .homepage-page .home-quests, .homepage-page .home-contact { padding: 63px var(--home-reference-pad); }
  .homepage-page .home-contact { column-gap: 44px; }
}
@media (max-width: 760px) {
  .homepage-page { padding-inline: 12px; font-size: 15.5px; line-height: 1.62; }
  .homepage-page h1 { font-size: clamp(40px,10vw,48px); line-height: 1.04; }
  .homepage-page h2 { font-size: clamp(30px,8vw,36px); line-height: 1.14; }
  .homepage-page h3 { font-size: 23px; }
  .homepage-page .home-section { padding: 50px 22px; }
  .homepage-page .home-panel { border-radius: 18px; }
  .homepage-page .home-hero { display: flex; flex-direction: column; gap: 0; padding: 14px; }
  .homepage-page .home-hero-copy { padding: 22px 10px 24px; }
  .homepage-page .home-hero-photo { order: -1; min-height: 0; height: 300px; width: 100%; }
  .homepage-page .home-hero-photo img { object-position: 50% 37%; }
  .homepage-page .home-hero-copy p:first-child { font-size: 23px; }
  .homepage-page .home-actions { flex-direction: column; }
  .homepage-page .home-section-heading { margin-bottom: 28px; }
  .homepage-page .home-service-grid, .homepage-page .home-editorial, .homepage-page .home-contact-steps, .homepage-page .home-paper { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .homepage-page .home-service-grid { gap: 24px; }
  .homepage-page .home-service-copy p { font-size: 15px; }
  .homepage-page .home-quests, .homepage-page .home-gallery, .homepage-page .home-contact { padding: 50px 22px; }
  .homepage-page .home-quest-grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; padding-bottom: 8px; }
  .homepage-page .home-quest-link { flex: 0 0 76%; scroll-snap-align: start; padding: 19px; }
  .homepage-page .home-quests-heading { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .homepage-page .home-contact-steps { gap: 22px; }
  .homepage-page .home-contact-steps li { padding-top: 18px; }
  .homepage-page .home-contact { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .homepage-page .home-contact-intro, .homepage-page .home-contact-steps, .homepage-page .home-contact-action { grid-column: auto; grid-row: auto; }
  .homepage-page .home-contact-steps { gap: 0; }
  .homepage-page .home-contact-steps li:first-child { padding-top: 0; }
  .homepage-page .home-contact h2 { max-width: none; }
  .homepage-page .home-paper { gap: 30px; }
  .homepage-page .home-gallery .home-section-heading { margin-bottom: 32px; }
  .homepage-page .home-gallery-grid { gap: 12px; }
  .homepage-page .home-gallery-grid figure { border-radius: 11px; }
  .homepage-page .home-contact .home-button { width: 100%; }
  .homepage-page .home-faqs { padding: 0 22px 50px; }
  .homepage-page .home-faq { padding-top: 50px; }
  .homepage-page .home-faq summary { font-size: 19px; padding-block: 21px; }
  .homepage-page .home-faq details > p { padding-right: 0; }
  .homepage-page .home-review blockquote { font-size: 23px; }
}
@media (max-width: 420px) { .homepage-page .home-quest-link { flex-basis: 84%; } }
@media (prefers-reduced-motion: reduce) { .homepage-page * { transition: none !important; } }
