.events-hub { margin: 0; color: #173e49; background: #f6f2e9; font: 400 16px/1.75 'Inter', Arial, sans-serif; }
.events-hub *, .events-hub *::before, .events-hub *::after { box-sizing: border-box; }
.eh-wrap { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.eh-section { padding-block: clamp(60px, 7vw, 108px); scroll-margin-top: 24px; }
.events-hub main a { color: inherit; text-underline-offset: 5px; }
.events-hub a:focus-visible { outline: 3px solid #477d8b; outline-offset: 6px; }
.eh-skip { position: absolute; top: -100px; left: 16px; z-index: 300; background: #fff; color: #173e49; padding: 12px 20px; }
.eh-skip:focus { top: 12px; }
.events-hub h1, .events-hub h2, .events-hub h3 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; line-height: 1.03; }
.events-hub h1 { margin: 22px 0 24px; font-size: clamp(52px, 6.3vw, 88px); letter-spacing: -.025em; }
.events-hub h2 { font-size: clamp(38px, 4.3vw, 60px); margin: 16px 0 24px; letter-spacing: -.02em; }
.events-hub h3 { font-size: 42px; margin: 10px 0 18px; }
.eh-eyebrow { margin: 0; font-size: 12px; font-weight: 600; line-height: 1.6; letter-spacing: .14em; text-transform: uppercase; }
.eh-hero { position: relative; display: grid; align-items: center; min-height: 660px; isolation: isolate; overflow: hidden; background: #173e49; color: #fff; }
.eh-hero-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.eh-hero::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(8,35,43,.9) 0%,rgba(8,35,43,.66) 44%,rgba(8,35,43,.1) 100%); }
.eh-hero-copy { padding-block: 70px; }
.eh-hero-copy > p:not(.eh-eyebrow) { max-width: 410px; font-size: 18px; line-height: 1.6; margin-bottom: 32px; }
.eh-hero em { font-weight: 400; color: #f2d9a7; }
.events-hub main .eh-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 13px 25px; border-radius: 999px; background: #d4b06a; color: #173e49; text-decoration: none; font: 600 14px/1.5 'Inter', sans-serif; }
.events-hub main .eh-button:hover { background: #e8c98e; }
.eh-hero a:focus-visible, .eh-setting a:focus-visible, .eh-contact a:focus-visible { outline-color: #f2d9a7; }
.eh-introduction { max-width: 740px; margin-bottom: 50px; }
.eh-introduction > p:last-child { max-width: 670px; }
.eh-celebrations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 50px; align-items: start; }
.eh-celebration-quince { padding-top: 90px; }
.eh-photo-link { display: block; }
.eh-celebration img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.eh-celebration-copy { padding: 28px 0; border-bottom: 1px solid #c7cfc9; }
.eh-celebration-copy > p:not(.eh-eyebrow) { max-width: 520px; }
.eh-link { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; font-weight: 500; font-size: 15px; }
.eh-link:hover { text-decoration-thickness: 2px; }
.eh-setting { background: #173e49; color: #f6f2e9; }
.eh-setting .eh-eyebrow, .eh-contact .eh-eyebrow { color: #d4b06a; }
.eh-setting-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 100px; }
.eh-setting-notes > div { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 20px; padding-block: 24px; border-top: 1px solid rgba(255,255,255,.2); }
.eh-note-number { color: #d4b06a; font: 400 26px/1.4 Georgia,serif; }
.eh-setting-notes h3 { margin: 0; font-size: 30px; }
.eh-setting-notes p { margin: 12px 0; color: #d5e1e3; }
.eh-setting-notes a { display: inline-flex; align-items: center; min-height: 44px; }
.eh-occasions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 42px; }
.eh-occasions article { border-top: 1px solid #8fa8a9; padding-top: 24px; }
.eh-occasions h3 { font-size: 32px; }
.eh-contact { background: #214e58; color: #fff; }
.eh-contact-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }
.eh-contact-grid > div > p:last-child { max-width: 540px; }
.eh-contact-actions { justify-self: center; }
.eh-phone { display: block; width: fit-content; min-height: 44px; margin-top: 22px; font-size: 22px; }
.eh-contact-actions p { font-size: 14px; color: #d5e1e3; }
@media(max-width:900px) {
  .eh-wrap { width: calc(100% - 48px); }
  .eh-setting-grid, .eh-contact-grid { gap: 44px; }
  .eh-celebrations { gap: 28px; }
  .eh-occasions { gap: 24px; }
}
@media(max-width:700px) {
  .eh-wrap { width: calc(100% - 40px); }
  .eh-hero { min-height: 610px; }
  .eh-hero::before { background: rgba(8,35,43,.68); }
  .eh-hero-copy { padding-block: 54px; }
  .eh-celebrations, .eh-setting-grid, .eh-occasions, .eh-contact-grid { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .eh-celebration-quince { padding-top: 0; }
  .eh-contact-actions { justify-self: start; }
}


/* Help every event visitor choose a path before the Open House invitation. */
.eh-planning { padding-block: 28px; }
.events-hub .eh-planning h2 { margin: 0 0 18px; font-size: clamp(28px, 3vw, 36px); }
.eh-planning-links { display: grid; grid-template-columns: 1fr 1fr 1.6fr; gap: 14px; }
.events-hub main .eh-planning-links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; padding: 12px 18px; border: 1px solid #8fa8a9; border-radius: 8px; font-size: 15px; font-weight: 500; line-height: 1.5; text-decoration: none; }
.events-hub main .eh-planning-links a:hover { background: #e5ece7; border-color: #173e49; }
.eh-celebration-copy .eh-planning-benefit { margin-top: 24px; font-weight: 500; }
.events-hub main .eh-button-planning { background: #173e49; color: #fff; max-width: 100%; text-align: center; }
.events-hub main .eh-button-planning:hover { background: #214e58; }
.eh-button-planning span, .eh-planning-links span { flex-shrink: 0; }
@media(max-width:700px) {
  .eh-planning-links { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .events-hub main .eh-button-planning { width: 100%; padding-inline: 18px; }
}

/* The Events parent continues as a complete destination for other gatherings. */
.eh-gatherings-start { scroll-margin-top: 24px; }
.eh-location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.eh-location-photo { margin: 0; min-width: 0; }
.eh-location-photo img { display: block; width: 100%; height: auto; }
.eh-location-photo figcaption, .eh-map-note { font-size: 14px; line-height: 1.6; }
.eh-location-photo figcaption { margin-top: 12px; }
.eh-location-address { margin-top: 28px; }
.eh-map-section { background: #e5ece7; scroll-margin-top: 24px; }
.eh-event-map { display: block; width: 100%; height: 760px; border: 1px solid #8fa8a9; background: #173e49; }
.eh-map-section .eh-link { margin-top: 18px; }
.eh-map-note { margin: 8px 0 0; }
.eh-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.eh-why-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 64px; }
.eh-why-grid article { padding-top: 24px; border-top: 1px solid #8fa8a9; }
.events-hub .eh-why-grid h3 { font-size: 32px; }
.eh-gathering-ideas { padding-top: 0; }
@media(max-width:900px) {
  .eh-location-grid { gap: 32px; }
  .eh-why-grid { gap: 24px 32px; }
}
@media(max-width:700px) {
  .eh-location-grid, .eh-why-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .eh-event-map { height: 680px; }
}
