/* style.css */
:root {
  --primary-color: #EB4068;
  --primary-color-rgb: 235, 64, 104;
  --primary-color-darker: #c22f51;
  --site-background-color: #ffffff;
  --site-background-color-rgb: 255, 255, 255;
  --site-background-color-black-white: #000000;
  --site-background-color-black-white-rgb: 0, 0, 0;
  --site-background-color-black-white-negative-rgb: 0, 0, 0;
  --text-color: #333333;
  --text-color-rgb: 51, 51, 51;
  --text-primary-color: #192C4D;
  --text-primary-color-darker: #0f1a2e;
  --headline-font: 'Cardo', serif;
  --text-font: 'Crimson Text', serif;
  --hero-color: #ffffff;
  --foreground-color-on-primary-color-background: #ffffff;
  --background-position-inline-end: right;
  --text-font-size: 18px; /* Increased for better readability */
  --navigation-text-transform: none;
  --form-select-bg-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
}

/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
html { 
    font-family: sans-serif; 
    line-height: 1.15; 
    -ms-text-size-adjust: 100%; 
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 85px; /* Offset for sticky navigation */
}
body { margin: 0; }
article, aside, footer, header, nav, section { display: block }
h1 { font-size: 2em; margin: .67em 0 }
figcaption, figure, main { display: block }
figure { margin: 1em 40px }
hr { -webkit-box-sizing: content-box; box-sizing: content-box; height: 0; overflow: visible }
pre { font-family: monospace,monospace; font-size: 1em }
a { background-color: rgba(0,0,0,0); -webkit-text-decoration-skip: objects }
a:active, a:hover { outline-width: 0 }
abbr[title] { border-bottom: none; text-decoration: underline; -webkit-text-decoration: underline dotted; text-decoration: underline dotted }
b, strong { font-weight: inherit }
b, strong { font-weight: bolder }
code, kbd, samp { font-family: monospace,monospace; font-size: 1em }
dfn { font-style: italic }
mark { background-color: #ff0; color: #000 }
small { font-size: 80% }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline }
sub { bottom: -0.25em }
sup { top: -0.5em }
audio, video { display: inline-block }
audio:not([controls]) { display: none; height: 0 }
img { border-style: none }
svg:not(:root) { overflow: hidden }
button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0 }
button, input { overflow: visible }
button, select { text-transform: none }
button, html [type=button], [type=reset], [type=submit] { -webkit-appearance: button }
button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0 }
button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText }
fieldset { border: 1px solid silver; margin: 0 2px; padding: .35em .625em .75em }
legend { -webkit-box-sizing: border-box; box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal }
progress { display: inline-block; vertical-align: baseline }
textarea { overflow: auto }
[type=checkbox], [type=radio] { -webkit-box-sizing: border-box; box-sizing: border-box; padding: 0 }
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto }
[type=search] { -webkit-appearance: textfield; outline-offset: -2px }
[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration { -webkit-appearance: none }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit }
details, menu { display: block }
summary { display: list-item }
canvas { display: inline-block }
template { display: none }
[hidden] { display: none }



html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: var(--text-font-size); height: 100%; min-height: 100%; scroll-behavior: smooth; scroll-padding-top: 100px;}
*, *::before, *::after { -webkit-box-sizing: inherit; box-sizing: inherit }
body { background-color: var(--site-background-color); color: var(--text-color); font-family: var(--text-font); line-height: 1.6; min-height: 100%; overflow-wrap: anywhere }
b, strong { font-weight: bold }
a:focus, button:focus, [type=radio]:focus, [type=checkbox]:focus, [type=submit]:focus, [type=button]:focus { outline: 0 }
.alert { border: 1px solid rgba(0,0,0,0); border-radius: 4px; margin-bottom: 20px; padding: 15px }
.alert.alert-success { background-color: #d6e9c6; border-color: hsl(92.5714285714,44.3037974684%,69.5098039216%); color: #333 }
.btn { -webkit-transition: .2s ease-in-out; transition: .2s ease-in-out; -webkit-transition-property: color,background-color,-webkit-transform,-webkit-box-shadow; transition-property: color,background-color,-webkit-transform,-webkit-box-shadow; transition-property: color,background-color,transform,box-shadow; transition-property: color,background-color,transform,box-shadow,-webkit-transform,-webkit-box-shadow; background: var(--primary-color); border: 0; border-radius: 4px; -webkit-box-shadow: 0 2px 4px 0 rgba(0,0,0,.1); box-shadow: 0 2px 4px 0 rgba(0,0,0,.1); color: var(--foreground-color-on-primary-color-background); cursor: pointer; display: inline-block; font-family: var(--text-font); font-size: 1rem; font-weight: normal; line-height: 150%; padding: 10px 16px; text-align: center; vertical-align: middle }
.btn.btn-block { display: block; width: 100% }
.btn:hover, .btn.active { background: var(--primary-color-darker); color: var(--foreground-color-on-primary-color-background); text-decoration: none }
.btn[disabled] { cursor: default; opacity: .5 }
.btn[disabled]:hover { background: var(--primary-color); color: var(--foreground-color-on-primary-color-background) }

label { cursor: pointer; display: block }
.control-label { font-weight: bold; margin: 0 0 .25rem }
.radio input, .checkbox input { background: rgba(var(--site-background-color-black-white-rgb), 0.4); background: color-mix(in srgb, var(--site-background-color) 60%, var(--site-background-color-black-white)); -webkit-appearance: none; -moz-appearance: none; appearance: none; border: 0; -webkit-box-shadow: 0 0 0 1px rgba(var(--site-background-color-black-white-negative-rgb), 0.3); box-shadow: 0 0 0 1px rgba(var(--site-background-color-black-white-negative-rgb), 0.3); cursor: pointer; display: inline-table; -ms-flex-negative: 0; flex-shrink: 0; height: 1.25rem; margin-right: .25rem; position: relative; text-align: center; top: -0.0625rem; vertical-align: middle; width: 1.25rem }
.radio input::after, .checkbox input::after { display: none; height: 100%; width: 100% }
.radio input:focus, .checkbox input:focus { -webkit-box-shadow: 0 0 0 1px rgba(var(--site-background-color-black-white-negative-rgb), 0.3),0 0 0 .2rem rgba(var(--primary-color-rgb), 25%); box-shadow: 0 0 0 1px rgba(var(--site-background-color-black-white-negative-rgb), 0.3),0 0 0 .2rem rgba(var(--primary-color-rgb), 25%) }
.radio input:checked, .checkbox input:checked { background-color: var(--primary-color); -webkit-box-shadow: 0 0 0 1px var(--primary-color); box-shadow: 0 0 0 1px var(--primary-color) }
.radio input:checked::after, .checkbox input:checked::after { color: var(--foreground-color-on-primary-color-background); display: table-cell; height: 100%; vertical-align: middle }
.radio input:disabled, .checkbox input:disabled { -webkit-backdrop-filter: grayscale(100%); backdrop-filter: grayscale(100%); -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: .6 }
.radio label, .checkbox label { display: inline; vertical-align: middle }
.form-control { background: rgba(var(--site-background-color-black-white-rgb), 0.03); border: 1px solid rgba(var(--site-background-color-black-white-negative-rgb), 0.2); border-radius: 4px; -webkit-box-shadow: 0 2px 4px 0 rgba(0,0,0,.05); box-shadow: 0 2px 4px 0 rgba(0,0,0,.05); color: inherit; font-family: var(--text-font); outline: none; padding: .85rem; width: 100%; font-size: 1rem; }
.form-control:focus { border-color: var(--primary-color); }
.form-control[disabled] { -webkit-backdrop-filter: grayscale(100%); backdrop-filter: grayscale(100%); -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: .6 }
select.form-control { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-image: var(--form-select-bg-image); background-position: var(--background-position-inline-end) .75rem center; background-repeat: no-repeat; background-size: 16px 12px; color: inherit }
select.form-control:has(option[value=""]:checked) { color: rgba(var(--text-color-rgb), 0.6) }
.form-group { margin: 1rem 0 }
textarea.form-control { display: block; line-height: 1.5; resize: vertical }
::-webkit-input-placeholder { color: inherit; opacity: .6 }
::-moz-placeholder { color: inherit; opacity: .6 }
:-ms-input-placeholder { color: inherit; opacity: .6 }
::placeholder { color: inherit; opacity: .6 }

.container { margin-left: auto; margin-right: auto; max-width: 1170px; padding-left: 1.5rem; padding-right: 1.5rem; width: 100% }
h1, h2, h3, h4, h5 { margin: 0; padding: 0 }
h2 { font-size: 2.2em }
@media(min-width: 750px) { h2 { font-size: 3em } }
.headline-font-wrapper { font-family: var(--headline-font); }
.headline-font-wrapper>* { font-family: var(--headline-font); text-transform: var(--headline-text-transform); margin-bottom: 0.5rem; }

iframe { max-width: 100% }
img { height: auto; max-width: 100% }
a { -webkit-transition: .2s ease-in-out; transition: .2s ease-in-out; color: var(--text-primary-color); cursor: pointer; text-decoration: none }
a:hover { color: var(--primary-color); text-decoration: underline }
.text-center { text-align: center }

.horizontal-separator { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; margin: 15px 0; opacity: .8; text-shadow: none }
.horizontal-separator::before, .horizontal-separator::after { content: ""; display: block; height: 1px; width: 100% }
.horizontal-separator::before { background: linear-gradient(to right, transparent 0%, currentcolor 70%) }
.horizontal-separator::after { background: linear-gradient(to left, transparent 0%, currentcolor 70%) }
.horizontal-separator.horizontal-separator-hero-color { opacity: 1; color: var(--hero-color); }
.horizontal-separator .icons { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; font-size: 16px; margin: 0 15px; white-space: nowrap }
.horizontal-separator .icons .fas { margin: 0 5px }
.horizontal-separator .icons .fas:nth-child(2) { font-size: 22px }
.rich-text { display: inline-block; font-size: 1.15rem; line-height: 1.8; text-align: left;}
.rich-text p { margin-bottom: 1.5rem; }
hr { border: 0; margin: 0 0 2rem; padding-top: 2rem; position: relative }
hr::before { background: rgba(var(--site-background-color-black-white-negative-rgb), 0.2); bottom: 0; content: ""; display: block; height: 1px; position: absolute; width: 100%; z-index: 1 }
@media(min-width: 750px) { hr::before { left: 5%; width: 90% } }
hr::after { content: "\f004"; font-family: "Font Awesome 5 Free"; font-weight: 400; line-height: 1; background-color: var(--site-background-color); bottom: 0; color: rgba(var(--site-background-color-black-white-negative-rgb), 0.2); display: inline-block; font-size: 1.5rem; left: 50%; margin: 0 auto; padding: 0 1rem; position: absolute; transform: translateX(-50%) translateY(50%); z-index: 2 }

.page-header-navigation { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; background: var(--site-background-color); -webkit-box-shadow: 0 2px 10px rgba(0,0,0,.08); box-shadow: 0 2px 10px rgba(0,0,0,.08); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; gap: 5%; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; padding: 0 2rem; position: -webkit-sticky; position: sticky; top: 0; width: 100%; z-index: 1000 }
.page-header-navigation .headline-font-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center }
.page-header-navigation .names { font-family: var(--headline-font); font-size: 1.8em; line-height: normal; padding: 10px 0; text-align: center; text-decoration: none; font-weight: bold; }
@media(min-width: 550px) { .page-header-navigation .names { white-space: nowrap } }
@media(min-width: 750px) { .page-header-navigation { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row } }
.navigation-wrapper { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; min-height: 4rem; position: relative; width: 100%; padding: 0 25px; }
.navigation-wrapper .navigation-container {
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    min-height: 100%;
    position: relative;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.navigation-wrapper::before,
.navigation-wrapper::after {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary-color);
    pointer-events: none;
    opacity: 0.6;
    transition: opacity 0.3s;
    z-index: 1;
}

.navigation-wrapper::before {
    content: '\f053'; /* chevron-left */
    left: 5px;
}

.navigation-wrapper::after {
    content: '\f054'; /* chevron-right */
    right: 5px;
}

/* Hide chevron when scrolled to the end */
.navigation-wrapper.is-at-end::after {
    opacity: 0;
}

/* Hide chevron when scrolled to the start */
.navigation-wrapper.is-at-start::before {
    opacity: 0;
}
.navigation-wrapper .navigation-container::-webkit-scrollbar {
    display: none;
}
.navigation-wrapper .navigation { list-style-type: none; margin: 0; padding: 0; display: -webkit-box; display: -ms-flexbox; display: flex; height: 100%; position: relative; -webkit-transition: .5s ease-in-out; transition: .5s ease-in-out }
.navigation-wrapper .navigation-item { display: inline-block; font-size: 1.05em; font-weight: 600; }
.navigation-wrapper .navigation-item:first-child { padding-left: 0 }
.navigation-wrapper .navigation-item:last-child { padding-right: 0 }
.navigation-wrapper .navigation-link { -webkit-box-align: center; -ms-flex-align: center; align-items: center; border-bottom: .25rem solid rgba(0,0,0,0); border-top: .25rem solid rgba(0,0,0,0); color: inherit; display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; height: 100%; padding: 0 15px; text-decoration: none; text-transform: var(--navigation-text-transform); white-space: nowrap; transition: 0.3s; }
.navigation-wrapper .navigation-link:hover { color: var(--primary-color); border-bottom-color: var(--primary-color); text-decoration: none; }

.page-header { 
    -webkit-box-sizing: content-box; 
    box-sizing: content-box; 
    height: 90vh; 
    background-image: url('IMG-20260619-WA0123.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}
.page-image-header::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0, 0, 0, 0.45);
    z-index: 1;
}
.page-header * { -webkit-box-sizing: border-box; box-sizing: border-box }
.page-image-header { height: 100%; position: relative; transform: translate3d(0, 0, 0) }
.page-image-header .title-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; height: 100%; -ms-flex-pack: distribute; justify-content: space-around; overflow: hidden; padding: 5rem 0; position: absolute; width: 100%; z-index: 3 }
.page-image-header .title-wrapper.text-shadow { text-shadow: 2px 2px 4px rgba(0,0,0,0.5) }
.page-image-header .title-wrapper .title { color: var(--hero-color); font-family: var(--headline-font); text-align: center; z-index: 2;}
.page-image-header .title-wrapper .title h1, .page-image-header .title-wrapper .title h2 { font-weight: normal }
.page-image-header .title-wrapper .title h1 { font-size: 3rem; margin-bottom: 0.2em; }
.page-image-header .title-wrapper .title h2 { font-size: 1.5rem; margin-top: 0.5em; }
@media(min-width: 750px) {
  .page-image-header .title-wrapper .title h1 { font-size: 4.5rem; }
  .page-image-header .title-wrapper .title h2 { font-size: 2rem; }
}
@media(min-width: 1000px) {
  .page-image-header .title-wrapper .title h1 { font-size: 5.5rem; }
  .page-image-header .title-wrapper .title h2 { font-size: 2.2rem; }
}

.section-wrapper { max-width: 100%; }
.section { 
    padding: 3rem 0; /* Consistent vertical spacing */
}
.section-bg-light { background-color: #fcfcfc; border-top: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;}
.header-section { line-height: 1.5; padding: 4rem 0 2rem; text-align: center }
.header-section h2 { color: var(--text-primary-color); font-family: var(--headline-font); font-weight: bold; text-transform: var(--headline-text-transform) }
.header-section h2::after { background-color: rgba(235, 64, 104, 0.5); content: ""; display: block; height: 2px; margin: 1.2rem auto 0; width: 80px }
.header-section .subheading { color: rgba(var(--text-color-rgb), 0.8); font-weight: 400; margin: 1.5rem auto 0; width: 85%; font-size: 1.15rem; font-style: italic; }
@media(min-width: 750px) { .header-section .subheading { font-size: 1.3rem } }
.section-introduction { font-size: 1.15rem; font-weight: 400; margin: 0 auto; text-align: center; width: 85%; line-height: 1.8; }

.invitation-section { padding-top: 3rem; text-align: center }
.invitation-section h2 { color: var(--text-primary-color); font-family: var(--headline-font); font-weight: bold; padding-top: .5rem; text-transform: var(--headline-text-transform); font-size: 2.2em }
@media(min-width: 750px) { .invitation-section h2 { font-size: 3em } }
@media(min-width: 750px) { .invitation-section .rich-text { padding: 0 15% } }

.section.locations .location-list { list-style-type: none; padding: 0 }
.section.locations .location { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; gap: 2rem 3rem; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; margin: 0 auto 2rem; max-width: 900px; text-align: center }
@media(min-width: 750px) { .section.locations .location { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; text-align: left } }
.section.locations .location-map { -ms-flex-negative: 0; flex-shrink: 0; position: relative; text-align: center; width: 220px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); border-radius: 10px; overflow: hidden;}
@media(min-width: 750px) { .section.locations .location-map { -ms-flex-item-align: start; align-self: flex-start; margin-top: 10px; } }
.section.locations .location-map.hexagon { -webkit-clip-path: none; clip-path: none; border-radius: 50%; }
.section.locations .location-map iframe { width: 100%; height: 220px; display: block; }
.section.locations .location-details { width: 100%; }
.section.locations .location-details>* { margin: 0 }
.section.locations .location-details .headline { font-size: 1.6em; font-weight: 700; text-transform: var(--headline-text-transform); margin-bottom: 0.5rem; color: var(--text-primary-color); }
.section.locations .location-details .subline { font-size: 1.05rem; font-style: italic; font-weight: 400; color: var(--primary-color); }
.section.locations .location-details .description { margin: 1.2rem 0; font-size: 1.1rem; line-height: 1.6; }
.section.locations .location-details .url { font-size: 1.1rem; margin: .5rem 0 }

.organizers-section ul { list-style-type: none; margin: 0; padding: 0 }
.organizers-section .organizers .organizer { margin: 2rem 0; text-align: center }
.organizers-section .organizers .organizer .name { font-size: 1.5rem; font-weight: bold; text-transform: var(--headline-text-transform) }

.rsvp-form, .mail-form { margin: 0 auto 1.5rem; max-width: 50rem; background: #fff; padding: 2rem; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
.rsvp-form textarea, .mail-form textarea { max-width: 100%; min-height: 120px }
@media(min-width: 750px) {
  .rsvp-form, .mail-form { padding: 3rem; }
  .rsvp-form .data, .mail-form .data { display: -webkit-box; display: -ms-flexbox; display: flex; gap: 2rem; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between }
  .rsvp-form .data .column, .mail-form .data .column { -webkit-box-flex: 1; -ms-flex: 1 0 0px; flex: 1 0 0 }
}

.footer-section { background: var(--text-primary-color); color: var(--foreground-color-on-primary-color-background); font-family: var(--headline-font); padding: 3rem 0; text-align: center; text-transform: none; margin-top: 2rem; }
.footer-section .footer-text { font-size: 1.8em; }
.footer-section.bg-primary-color { background-color: var(--primary-color); color: var(--foreground-color-on-primary-color-background) }