/* Browser reset. Website styles follow below. */
/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}

/* SajikDong English Worship — shared website styles. */


:root {
  --ink: #0b3453;
  --ink-deep: #062943;
  --sky: #00aee9;
  --sky-soft: #e9f8ff;
  --paper: #ffffff;
  --coral: #f6a479;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

section[id] {
  scroll-margin-top: 108px;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink-deep);
  font-family: "Aptos", "Inter", "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header {
  align-items: center;
  backdrop-filter: blur(18px);
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(11, 52, 83, 0.1);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(240px, 1fr) auto minmax(150px, 0.75fr);
  min-height: 88px;
  padding: 16px clamp(24px, 5vw, 76px);
  box-shadow: 0 7px 24px rgba(6, 41, 67, 0.06);
  position: sticky;
  top: 0;
  z-index: 50;
}

.brand {
  align-items: center;
  display: inline-flex;
  justify-self: start;
  min-width: 0;
}

.brand img {
  display: block;
  height: 45px;
  object-fit: contain;
  width: 149px;
}

.brand-divider {
  background: #cbdbe3;
  height: 33px;
  margin: 0 13px;
  width: 1px;
}

.brand-ministry {
  display: flex;
  flex-direction: column;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.brand-ministry strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.brand-ministry small {
  color: #5a7485;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.24em;
  margin-top: 5px;
}

.desktop-nav {
  align-items: center;
  display: flex;
  gap: clamp(16px, 1.8vw, 30px);
}

.desktop-nav a {
  color: #3c5667;
  font-size: 14px;
  font-weight: 700;
  position: relative;
}

.desktop-nav a::after {
  background: var(--sky);
  bottom: -9px;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
  width: 100%;
}

.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-cta {
  background: var(--ink);
  border-radius: 999px;
  color: white;
  font-size: 13px;
  font-weight: 800;
  justify-self: end;
  padding: 13px 19px;
  transition: background 180ms ease, transform 180ms ease;
}

.nav-cta:hover,
.nav-cta:focus-visible {
  background: #075681;
  transform: translateY(-2px);
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 0.91fr) minmax(0, 1.09fr);
  min-height: calc(100vh - 88px);
}

.hero-copy {
  background:
    radial-gradient(circle at 7% 94%, rgba(0, 174, 233, 0.24), transparent 30%),
    linear-gradient(145deg, #0b3d60 0%, #082f4b 55%, #05263e 100%);
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: clamp(70px, 8vw, 124px) clamp(34px, 6vw, 96px);
  position: relative;
}

.hero-copy::after {
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 50%;
  content: "";
  height: 330px;
  position: absolute;
  right: -210px;
  top: -110px;
  width: 330px;
}

.eyebrow {
  align-items: center;
  color: #aee8ff;
  display: flex;
  font-size: 12px;
  font-weight: 800;
  gap: 10px;
  letter-spacing: 0.19em;
  margin-bottom: 24px;
  text-transform: uppercase;
}

.eyebrow-dot {
  background: var(--coral);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(246, 164, 121, 0.15);
  height: 7px;
  width: 7px;
}

.hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(51px, 5.2vw, 82px);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 0;
  max-width: 720px;
}

.hero h1 span {
  color: #82dcff;
  display: block;
  font-style: italic;
  margin-top: 10px;
}

.hero-intro {
  color: #d8eaf3;
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.72;
  margin: 28px 0 0;
  max-width: 580px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 35px;
}

.button {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: 14px;
  font-weight: 800;
  gap: 16px;
  justify-content: center;
  min-height: 52px;
  padding: 0 23px;
  transition:
    background 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-2px);
}

.button-light {
  background: white;
  color: var(--ink-deep);
}

.button-light:hover,
.button-light:focus-visible {
  background: var(--sky-soft);
}

.button-ghost {
  border-color: rgba(255, 255, 255, 0.28);
  color: white;
}

.button-ghost:hover,
.button-ghost:focus-visible {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.6);
}

.service-facts {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  display: grid;
  gap: 20px;
  grid-template-columns: 0.8fr 1.2fr;
  margin: 45px 0 0;
  max-width: 600px;
  padding-top: 25px;
}

.service-facts div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.service-facts dt {
  color: #85bfd9;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.service-facts dd {
  font-size: 14px;
  font-weight: 700;
  margin: 0;
}

.hero-visual {
  background: #d4edf8;
  min-height: 650px;
  overflow: hidden;
  position: relative;
}

.hero-visual > img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  object-position: 73% center;
  position: absolute;
  transform: scale(1.04);
  width: 100%;
}

.hero-visual::after {
  background: linear-gradient(180deg, rgba(4, 35, 57, 0) 48%, rgba(4, 35, 57, 0.55) 100%);
  content: "";
  inset: 0;
  position: absolute;
}

.hero-card {
  backdrop-filter: blur(15px);
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 20px;
  bottom: 34px;
  box-shadow: 0 22px 60px rgba(5, 39, 63, 0.22);
  left: 34px;
  max-width: 345px;
  padding: 24px 26px;
  position: absolute;
  z-index: 2;
}

.hero-card-kicker {
  color: #008aca;
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
  margin-bottom: 9px;
  text-transform: uppercase;
}

.hero-card strong {
  color: var(--ink-deep);
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 400;
}

.hero-card p {
  color: #617784;
  font-size: 13px;
  line-height: 1.55;
  margin: 8px 0 0;
}

.welcome-section,
.community-section,
.events-section,
.gallery-section {
  margin: 0 auto;
  max-width: 1440px;
  padding: 118px clamp(24px, 6vw, 92px);
}

.section-label {
  align-items: center;
  color: #758b98;
  display: flex;
  font-size: 10px;
  font-weight: 800;
  gap: 11px;
  letter-spacing: 0.18em;
  margin-bottom: 45px;
  text-transform: uppercase;
}

.section-label span {
  align-items: center;
  border: 1px solid #bed3dc;
  border-radius: 50%;
  color: #149bd0;
  display: inline-flex;
  height: 31px;
  justify-content: center;
  letter-spacing: 0;
  width: 31px;
}

.section-label.light {
  color: #93c2d8;
}

.section-label.light span {
  border-color: rgba(255, 255, 255, 0.25);
  color: #8bdefe;
}

.section-kicker {
  color: #069cda;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.17em;
  margin: 0 0 19px;
  text-transform: uppercase;
}

.section-kicker.light {
  color: #8bdefe;
}

.welcome-grid {
  display: grid;
  gap: clamp(60px, 9vw, 145px);
  grid-template-columns: minmax(0, 1.04fr) minmax(300px, 0.96fr);
}

.welcome-grid h2,
.community-heading h2,
.events-heading h2,
.gallery-heading h2,
.leadership-heading h2 {
  color: var(--ink-deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(45px, 5vw, 75px);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1.02;
  margin: 0;
}

.welcome-grid h2 em,
.community-heading h2 em,
.events-heading h2 em,
.gallery-heading h2 em,
.leadership-heading h2 em {
  color: #159bcf;
  display: block;
  font-weight: 400;
}

.welcome-copy {
  align-self: end;
  color: #647984;
  font-size: 15px;
  line-height: 1.8;
  padding-bottom: 5px;
}

.welcome-copy p {
  margin: 0 0 20px;
}

.welcome-copy .welcome-lead {
  color: #28495e;
  font-size: clamp(18px, 1.5vw, 21px);
  line-height: 1.65;
}

.text-link {
  align-items: center;
  color: var(--ink);
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 12px;
  margin-top: 8px;
}

.text-link span {
  align-items: center;
  background: var(--sky-soft);
  border-radius: 50%;
  color: #008cca;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  transition: transform 180ms ease;
  width: 32px;
}

.text-link:hover span,
.text-link:focus-visible span {
  transform: translate(2px, -2px);
}

.values-row {
  border-bottom: 1px solid var(--line, #dce8ee);
  border-top: 1px solid var(--line, #dce8ee);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 92px;
}

.values-row > div {
  padding: 35px clamp(18px, 3vw, 43px) 38px;
}

.values-row > div + div {
  border-left: 1px solid var(--line, #dce8ee);
}

.value-number,
.card-index {
  color: #0fa4df;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.values-row h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 400;
  margin: 23px 0 9px;
}

.values-row p {
  color: #6f818c;
  font-size: 13px;
  line-height: 1.65;
  margin: 0;
}

.events-section {
  border-top: 1px solid #e0ebf0;
  padding-bottom: 128px;
}

.events-heading,
.gallery-heading,
.leadership-heading {
  align-items: end;
  display: grid;
  gap: clamp(55px, 9vw, 135px);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
}

.events-heading > p,
.gallery-heading > p,
.leadership-heading > p {
  color: #697e89;
  font-size: 16px;
  line-height: 1.75;
  margin: 0 0 7px;
}

.featured-event {
  align-items: center;
  background:
    radial-gradient(circle at 100% 0, rgba(0, 174, 233, 0.25), transparent 31%),
    linear-gradient(135deg, #082f4b 0%, #0a3b5c 100%);
  border-radius: 27px;
  color: white;
  display: grid;
  gap: clamp(28px, 4vw, 58px);
  grid-template-columns: 190px minmax(0, 1fr) auto;
  margin-top: 65px;
  overflow: hidden;
  padding: clamp(34px, 5vw, 65px);
  position: relative;
}

.featured-event::after {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  content: "";
  height: 330px;
  position: absolute;
  right: -185px;
  top: -190px;
  width: 330px;
}

.event-orbit {
  align-items: center;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  max-width: 180px;
  position: relative;
}

.event-orbit::before,
.event-orbit::after {
  border: 1px solid rgba(131, 220, 255, 0.2);
  border-radius: 50%;
  content: "";
  inset: 16px;
  position: absolute;
}

.event-orbit::after {
  background: rgba(131, 220, 255, 0.1);
  border: 0;
  inset: 41px;
}

.event-orbit span {
  color: #8de1ff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  font-style: italic;
  position: relative;
  z-index: 1;
}

.featured-event-copy {
  position: relative;
  z-index: 1;
}

.event-status {
  align-items: center;
  color: #a8e7ff;
  display: flex;
  font-size: 10px;
  font-weight: 900;
  gap: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.event-status i {
  background: var(--coral);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(246, 164, 121, 0.14);
  height: 7px;
  width: 7px;
}

.featured-event h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 400;
  letter-spacing: -0.035em;
  margin: 15px 0 11px;
}

.featured-event-copy > p {
  color: #bfd8e4;
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
  max-width: 590px;
}

.event-facts {
  display: flex;
  gap: 44px;
  margin: 25px 0 0;
}

.event-facts div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.event-facts dt {
  color: #7fb5cc;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.event-facts dd {
  font-size: 13px;
  font-weight: 800;
  margin: 0;
}

.event-button {
  position: relative;
  white-space: nowrap;
  z-index: 1;
}

.past-events-header {
  align-items: end;
  display: flex;
  justify-content: space-between;
  margin-top: 82px;
}

.past-events-header .section-kicker {
  margin: 0;
}

.past-events-header > p:last-child {
  color: #718591;
  font-size: 13px;
  margin: 0;
}

.past-events-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 24px;
}

.past-event-card {
  border: 1px solid #d8e6ec;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  min-height: 310px;
  padding: 29px;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.past-event-card:hover {
  border-color: #9cd7ed;
  box-shadow: 0 18px 46px rgba(8, 47, 75, 0.08);
  transform: translateY(-4px);
}

.past-event-card > span {
  color: #0aa1dc;
  font-size: 10px;
  font-weight: 900;
}

.past-event-card h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 29px;
  font-weight: 400;
  margin: 55px 0 12px;
}

.past-event-card p {
  color: #70838d;
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}

.past-event-card a {
  color: var(--ink);
  font-size: 11px;
  font-weight: 900;
  margin-top: auto;
  padding-top: 26px;
}

.visit-section {
  background: #edf8fc;
  padding: clamp(26px, 4vw, 58px);
}

.visit-panel {
  background:
    radial-gradient(circle at 5% 105%, rgba(0, 174, 233, 0.24), transparent 31%),
    #082f4b;
  border-radius: 30px;
  color: white;
  display: grid;
  gap: clamp(50px, 8vw, 120px);
  grid-template-columns: minmax(260px, 0.73fr) minmax(440px, 1.27fr);
  margin: 0 auto;
  max-width: 1380px;
  overflow: hidden;
  padding: clamp(64px, 7vw, 105px);
  position: relative;
}

.visit-panel::after {
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
  content: "";
  height: 410px;
  left: -250px;
  position: absolute;
  top: -230px;
  width: 410px;
}

.visit-intro {
  position: relative;
  z-index: 1;
}

.visit-intro h2,
.contact-copy h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(45px, 5vw, 72px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1.03;
  margin: 0;
}

.visit-intro > p:last-child,
.contact-copy > p {
  color: #c0d9e5;
  font-size: 15px;
  line-height: 1.75;
  margin: 25px 0 0;
  max-width: 430px;
}

.visit-details {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, 1fr);
  position: relative;
  z-index: 1;
}

.detail-card {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  display: flex;
  gap: 17px;
  min-height: 178px;
  padding: 24px 21px;
}

.detail-card.featured {
  align-items: center;
  background: white;
  color: var(--ink);
  grid-column: 1 / -1;
  min-height: 142px;
  padding: 27px 30px;
}

.detail-icon {
  align-items: center;
  background: #e4f7ff;
  border-radius: 50%;
  color: #00a4e5;
  display: flex;
  flex: 0 0 auto;
  font-size: 22px;
  height: 54px;
  justify-content: center;
  width: 54px;
}

.detail-step {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  color: #8adeff;
  display: flex;
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 900;
  height: 29px;
  justify-content: center;
  width: 29px;
}

.detail-card small {
  color: #86c8e4;
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
  margin-bottom: 9px;
  text-transform: uppercase;
}

.detail-card.featured small {
  color: #0b9bd6;
}

.detail-card strong {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  font-weight: 400;
  line-height: 1.2;
}

.detail-card.featured strong {
  font-size: clamp(25px, 2.2vw, 34px);
}

.detail-card p {
  color: #aac6d4;
  font-size: 12px;
  line-height: 1.55;
  margin: 10px 0 0;
}

.detail-card.featured p {
  color: #647b88;
  margin-top: 6px;
}

.visit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  grid-column: 1 / -1;
  margin-top: 9px;
}

.button-sky {
  background: var(--sky);
  color: #042a42;
}

.button-sky:hover,
.button-sky:focus-visible {
  background: #57cefa;
}

.button-outline-light {
  border-color: rgba(255, 255, 255, 0.25);
  color: white;
}

.button-outline-light:hover,
.button-outline-light:focus-visible {
  background: rgba(255, 255, 255, 0.08);
}

.community-section {
  padding-bottom: 128px;
}

.community-heading {
  align-items: end;
  display: grid;
  gap: clamp(55px, 10vw, 150px);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.65fr);
}

.community-heading > p {
  color: #697e89;
  font-size: 16px;
  line-height: 1.75;
  margin: 0 0 7px;
}

.community-cards {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 70px;
}

.community-card {
  border: 1px solid #d8e6ec;
  border-radius: 22px;
  min-height: 430px;
  overflow: hidden;
  padding: 28px;
  position: relative;
}

.community-card::after {
  border: 1px solid currentColor;
  border-radius: 50%;
  content: "";
  height: 190px;
  opacity: 0.08;
  position: absolute;
  right: -85px;
  top: -85px;
  width: 190px;
}

.worship-card {
  background: #fff8ee;
  color: #9d633b;
}

.word-card {
  background: #e9f8ff;
  color: #1188b5;
}

.fellowship-card {
  background: #0a3958;
  border-color: #0a3958;
  color: white;
}

.card-symbol {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  height: 68px;
  justify-content: center;
  margin-top: 65px;
  opacity: 0.75;
  width: 68px;
}

.community-card h3 {
  color: var(--ink-deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  font-weight: 400;
  margin: 31px 0 13px;
}

.fellowship-card h3 {
  color: white;
}

.community-card p {
  color: #6c7f88;
  font-size: 14px;
  line-height: 1.68;
  margin: 0;
  max-width: 310px;
}

.fellowship-card p {
  color: #c1d8e3;
}

.card-tag {
  bottom: 29px;
  color: currentColor;
  font-size: 10px;
  font-weight: 900;
  left: 28px;
  letter-spacing: 0.15em;
  position: absolute;
  text-transform: uppercase;
}

.nations-section {
  background:
    radial-gradient(circle at 6% 100%, rgba(0, 174, 233, 0.19), transparent 30%),
    #072d47;
  color: white;
  display: grid;
  gap: clamp(60px, 10vw, 145px);
  grid-template-columns: minmax(280px, 0.75fr) minmax(460px, 1.25fr);
  padding: 112px max(clamp(24px, 7vw, 110px), calc((100vw - 1440px) / 2 + 92px));
}

.nations-intro h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(41px, 4vw, 61px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1.05;
  margin: 0;
}

.nations-intro > p:last-child {
  color: #bed5e0;
  font-size: 14px;
  line-height: 1.75;
  margin: 23px 0 0;
  max-width: 480px;
}

.country-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}

.country-grid li {
  align-items: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 15px;
  display: flex;
  gap: 16px;
  min-height: 74px;
  padding: 14px 17px;
}

.country-grid li:last-child {
  grid-column: 1 / -1;
}

.country-grid span {
  align-items: center;
  background: rgba(131, 220, 255, 0.11);
  border: 1px solid rgba(131, 220, 255, 0.28);
  border-radius: 50%;
  color: #8de1ff;
  display: flex;
  flex: 0 0 auto;
  font-size: 9px;
  font-weight: 900;
  height: 40px;
  justify-content: center;
  letter-spacing: 0.07em;
  width: 40px;
}

.country-grid strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 400;
}

.gallery-section {
  padding-bottom: 128px;
}

.gallery-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, 290px);
  margin-top: 67px;
}

.gallery-slot {
  background: #dfeef4;
  border-radius: 20px;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: 25px;
  position: relative;
}

.gallery-slot::after {
  background: linear-gradient(180deg, transparent 20%, rgba(5, 40, 64, 0.78) 100%);
  content: "";
  inset: 0;
  position: absolute;
}

.gallery-slot::before {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  content: "";
  height: 230px;
  position: absolute;
  right: -85px;
  top: -105px;
  width: 230px;
}

.gallery-slot-1 {
  background:
    radial-gradient(circle at 77% 26%, rgba(255, 255, 255, 0.24), transparent 16%),
    linear-gradient(145deg, #0f729c, #082f4b);
  grid-column: span 7;
}

.gallery-slot-2 {
  background: linear-gradient(145deg, #f5bc91, #a45c48);
  grid-column: span 5;
}

.gallery-slot-3 {
  background: linear-gradient(145deg, #86d4e7, #176e90);
  grid-column: span 4;
}

.gallery-slot-4 {
  background: linear-gradient(145deg, #145778, #082f4b);
  grid-column: span 4;
}

.gallery-slot-5 {
  background: linear-gradient(145deg, #f2aa7b, #c16d57);
  grid-column: span 4;
}

.gallery-plus {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.44);
  border-radius: 50%;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  height: 43px;
  justify-content: center;
  position: relative;
  width: 43px;
  z-index: 1;
}

.gallery-slot > div {
  position: relative;
  z-index: 1;
}

.gallery-slot small {
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
  margin-bottom: 7px;
  text-transform: uppercase;
}

.gallery-slot strong {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(23px, 2.4vw, 34px);
  font-weight: 400;
}

.gallery-slot p {
  color: #cce5ef;
  font-size: 11px;
  margin: 7px 0 0;
}

.leadership-section {
  background: #edf8fc;
  padding: 118px clamp(24px, 6vw, 92px) 128px;
}

.leadership-section > .section-label,
.leadership-heading,
.leadership-grid {
  margin-left: auto;
  margin-right: auto;
  max-width: 1256px;
}

.leadership-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: 1.15fr 0.925fr 0.925fr;
  margin-top: 67px;
}

.leader-card {
  background: white;
  border: 1px solid #d9e8ee;
  border-radius: 22px;
  min-height: 390px;
  padding: 24px;
}

.leader-card-featured {
  background: var(--ink);
  border-color: var(--ink);
  color: white;
}

.leader-portrait {
  align-items: center;
  aspect-ratio: 1.35;
  background:
    radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.18), transparent 27%),
    linear-gradient(145deg, #b9e9f8, #5eb8d4);
  border-radius: 15px;
  display: flex;
  justify-content: center;
}

.leader-card-featured .leader-portrait {
  background:
    radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.15), transparent 27%),
    linear-gradient(145deg, #159bcf, #0a4d70);
}

.leader-portrait span {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  color: white;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  height: 74px;
  justify-content: center;
  width: 74px;
}

.leader-card small {
  color: #0799d3;
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
  margin-top: 25px;
  text-transform: uppercase;
}

.leader-card-featured small {
  color: #8bdefe;
}

.leader-card h3 {
  color: var(--ink-deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 400;
  margin: 10px 0 9px;
}

.leader-card-featured h3 {
  color: white;
}

.leader-card p {
  color: #6e828d;
  font-size: 13px;
  line-height: 1.65;
  margin: 0;
}

.leader-card-featured p {
  color: #bfd6e1;
}

.leader-note {
  color: #8296a0;
  display: block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.09em;
  margin-top: 18px;
  text-transform: uppercase;
}

.leader-card-featured .leader-note {
  color: #79aec6;
}

.contact-section {
  background:
    radial-gradient(circle at 8% 100%, rgba(0, 174, 233, 0.19), transparent 28%),
    #072d47;
  color: white;
  display: grid;
  gap: clamp(70px, 12vw, 180px);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.6fr);
  padding: 110px clamp(24px, 7vw, 110px);
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 32px;
}

.contact-address {
  align-self: end;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
  padding: 9px 0 8px clamp(35px, 6vw, 85px);
}

.address-label {
  color: #86d7f6;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.contact-address h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 400;
  margin: 17px 0 14px;
}

.contact-address p {
  color: #c3d8e2;
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
}

.contact-address .address-korean {
  color: #7fa3b4;
  font-size: 12px;
  margin-top: 16px;
}

.contact-address a {
  color: white;
  display: inline-block;
  font-size: 12px;
  font-weight: 900;
  margin-top: 24px;
}

.site-footer {
  align-items: center;
  background: white;
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr auto 1fr;
  min-height: 120px;
  padding: 25px clamp(24px, 6vw, 92px);
}

.footer-brand {
  align-items: center;
  display: flex;
  gap: 14px;
}

.footer-brand img {
  height: 36px;
  object-fit: contain;
  width: 119px;
}

.footer-brand span {
  border-left: 1px solid #cadae2;
  color: #536e7e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  padding-left: 14px;
  text-transform: uppercase;
}

.site-footer > p {
  color: #68808d;
  font-size: 11px;
  margin: 0;
}

.footer-links {
  display: flex;
  gap: 24px;
  justify-self: end;
}

.footer-links a {
  color: #536d7b;
  font-size: 11px;
  font-weight: 800;
}

@media (max-width: 980px) {
  .site-header {
    grid-template-columns: 1fr auto;
    min-height: 82px;
  }

  .desktop-nav {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-start;
    overflow-x: auto;
    padding: 3px 0 8px;
    scrollbar-width: none;
    width: 100%;
  }

  .desktop-nav::-webkit-scrollbar {
    display: none;
  }

  .desktop-nav a {
    white-space: nowrap;
  }

  .hero {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    min-height: 670px;
  }

  .hero-visual {
    min-height: 620px;
  }

  .welcome-grid,
  .community-heading,
  .events-heading,
  .gallery-heading,
  .leadership-heading {
    gap: 50px;
    grid-template-columns: 1fr;
  }

  .values-row {
    grid-template-columns: 1fr;
  }

  .values-row > div + div {
    border-left: 0;
    border-top: 1px solid var(--line, #dce8ee);
  }

  .visit-panel {
    grid-template-columns: 1fr;
  }

  .featured-event {
    grid-template-columns: 150px minmax(0, 1fr);
  }

  .event-button {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .nations-section {
    grid-template-columns: 1fr;
  }

  .leadership-grid {
    grid-template-columns: 1fr;
  }

  .leader-card {
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(180px, 0.8fr) minmax(260px, 1.2fr);
    min-height: auto;
  }

  .leader-card small {
    margin-top: 8px;
  }

  .contact-section {
    grid-template-columns: 1fr;
  }

  .contact-address {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    padding: 40px 0 0;
  }

  .site-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    padding-bottom: 35px;
    padding-top: 35px;
    text-align: center;
  }

  .footer-links {
    justify-self: center;
  }
}

@media (max-width: 620px) {
  .site-header {
    gap: 12px;
    padding: 14px 18px;
  }

  .brand img {
    height: 38px;
    width: 126px;
  }

  .brand-divider {
    height: 30px;
    margin: 0 10px;
  }

  .nav-cta {
    font-size: 11px;
    padding: 11px 14px;
  }

  .hero-copy {
    min-height: auto;
    padding: 74px 24px 62px;
  }

  .hero h1 {
    font-size: clamp(48px, 14vw, 67px);
  }

  .hero-intro {
    font-size: 16px;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .button {
    width: 100%;
  }

  .service-facts {
    gap: 22px;
    grid-template-columns: 1fr;
  }

  .hero-visual {
    min-height: 500px;
  }

  .hero-card {
    bottom: 18px;
    left: 18px;
    max-width: calc(100% - 36px);
    padding: 21px;
  }

  .welcome-section,
  .community-section,
  .events-section,
  .gallery-section {
    padding: 82px 24px;
  }

  .section-label {
    margin-bottom: 34px;
  }

  .welcome-grid h2,
  .community-heading h2,
  .events-heading h2,
  .gallery-heading h2,
  .leadership-heading h2,
  .visit-intro h2,
  .contact-copy h2 {
    font-size: 45px;
  }

  .welcome-grid {
    gap: 40px;
  }

  .values-row {
    margin-top: 62px;
  }

  .values-row > div {
    padding: 29px 6px;
  }

  .visit-section {
    padding: 12px;
  }

  .featured-event {
    gap: 30px;
    grid-template-columns: 1fr;
    padding: 31px 23px;
  }

  .event-orbit {
    max-width: 132px;
  }

  .event-button {
    grid-column: 1;
    justify-self: stretch;
  }

  .event-facts {
    flex-direction: column;
    gap: 16px;
  }

  .past-events-header {
    align-items: start;
    flex-direction: column;
    gap: 14px;
    margin-top: 65px;
  }

  .past-events-grid {
    grid-template-columns: 1fr;
  }

  .past-event-card {
    min-height: 285px;
  }

  .visit-panel {
    border-radius: 21px;
    gap: 50px;
    padding: 61px 20px;
  }

  .visit-details {
    grid-template-columns: 1fr;
  }

  .detail-card.featured,
  .visit-actions {
    grid-column: 1;
  }

  .detail-card {
    min-height: auto;
  }

  .visit-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .community-heading {
    gap: 33px;
  }

  .community-cards {
    grid-template-columns: 1fr;
    margin-top: 50px;
  }

  .community-card {
    min-height: 390px;
  }

  .nations-section {
    gap: 45px;
    padding: 82px 24px;
  }

  .country-grid {
    grid-template-columns: 1fr;
  }

  .country-grid li:last-child {
    grid-column: 1;
  }

  .gallery-grid {
    display: flex;
    flex-direction: column;
  }

  .gallery-slot {
    min-height: 280px;
  }

  .leadership-section {
    padding: 82px 24px;
  }

  .leader-card {
    display: block;
  }

  .leader-card small {
    margin-top: 25px;
  }

  .contact-section {
    gap: 70px;
    padding: 83px 24px;
  }

  .contact-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .footer-links {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
  }
}

/* The home page has its own quiet, editorial layout. */
@font-face { font-family: "Allura"; src: url("../assets/fonts/Allura-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
:root { --navy: #0a3858; --navy-dark: #072d47; --cream: #f6f4ee; --gold: #d7bf94; --muted: #61717a; }
body { color: #18384a; font-family: "Aptos", "Inter", "Helvetica Neue", Arial, sans-serif; }
button, input, textarea { font: inherit; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 2px solid #b68a49; outline-offset: 5px; }
.skip-link { position: fixed; top: 10px; left: 12px; z-index: 100; padding: 12px 18px; background: white; color: var(--navy); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.site-nav { position: sticky; top: 0; z-index: 80; display: flex; align-items: center; justify-content: center; gap: clamp(56px, 6vw, 96px); min-height: 92px; padding: 17px clamp(24px, 4vw, 70px); background: var(--navy); border-bottom: 1px solid rgba(255,255,255,.12); }
.site-brand { display: inline-flex; align-items: center; flex-shrink: 0; gap: 16px; }
.original-logo { display: flex; align-items: center; justify-content: center; background: white; padding: 4px 8px; border-radius: 2px; }
.original-logo img { display: block; width: 139px; height: 42px; object-fit: contain; }
.site-brand .brand-ministry { padding-left: 16px; border-left: 1px solid rgba(255,255,255,.3); display: flex; }
.site-brand .brand-ministry strong { color: white; font-size: 13px; letter-spacing: .12em; font-weight: 700; }
.site-brand .brand-ministry small { color: #d5e1e8; font-size: 10px; letter-spacing: .22em; margin-top: 7px; }
.site-menu { display: flex; gap: 28px; align-items: center; }
.site-menu > a { color: #d5e0e6; font-size: 15px; font-weight: 500; letter-spacing: .025em; padding: 12px 0; transition: color .2s; white-space: nowrap; }
.site-menu > a:hover, .site-menu > a[aria-current="page"] { color: var(--gold); }
.site-menu > a[aria-current="page"]::after { content: ""; display: block; width: 15px; height: 1px; background: var(--gold); margin: 6px auto -7px; }
.site-menu .visit-link { border: 1px solid rgba(255,255,255,.42); padding: 12px 18px; margin-left: 4px; color: white; display: flex; gap: 20px; }
.site-menu .visit-link:hover { background: rgba(255,255,255,.06); border-color: var(--gold); }
.menu-toggle { display: none; color: white; background: transparent; border: 1px solid rgba(255,255,255,.24); width: 44px; height: 44px; align-items: center; justify-content: center; cursor: pointer; }
.menu-toggle svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.4; fill: none; }
.home-hero { position: relative; isolation: isolate; min-height: 660px; height: calc(100svh - 92px); max-height: 980px; color: white; overflow: hidden; display: flex; flex-direction: column; align-items: center; }
.home-hero-photo { position: absolute; inset: 0; z-index: -3; height: 100%; width: 100%; object-fit: cover; object-position: center 53%; }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(3,22,38,.44), rgba(3,22,38,.34) 42%, rgba(3,22,38,.26) 70%, rgba(3,22,38,.36)); }
.hero-welcome { margin: 42px 24px 0; font-size: clamp(23px, 2.2vw, 30px); font-weight: 500; letter-spacing: -.02em; line-height: 1.4; color: #fff; text-align: center; text-wrap: balance; text-shadow: 0 2px 10px rgba(5,30,47,.6); }
.hero-busan { color: #a8f0e5; font-weight: 700; }
.hero-welcome::after { content: ""; display: block; width: 64px; height: 2px; margin: 18px auto 0; background: var(--gold); }
.home-hero-copy { text-align: center; width: min(1060px, calc(100% - 64px)); padding: 0 16px; margin: clamp(38px, 6.5vh, 68px) auto auto; }
.home-hero h1 { font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(52px, 5.8vw, 82px); font-weight: 300; letter-spacing: -.035em; line-height: 1.15; margin: 0; color: #fff; text-shadow: 0 2px 8px rgba(3,29,46,.5); }
.hero-rooted-line { display: flex; align-items: baseline; justify-content: center; gap: .25em; }
.hero-rooted { font-size: .68em; font-weight: 400; letter-spacing: .015em; }
.hero-christ { font-family: "Allura", Georgia, serif; font-size: 1.72em; font-style: normal; font-weight: 400; letter-spacing: 0; line-height: .95; color: #f2cd82; text-shadow: 0 2px 9px rgba(6,30,46,.45); }
.hero-growing-line { display: inline-block; margin-top: 20px; padding: .12em .28em .17em; color: #fff; background: rgba(57,65,73,.86); border: 0; border-radius: 20px; text-shadow: 0 1px 3px rgba(0,0,0,.2); box-shadow: 0 6px 24px rgba(5,22,34,.12); }
.hero-together { display: inline-block; font-weight: 750; }
.home-hero-copy .home-button { margin-top: 45px; font-size: 18px; padding: 18px 28px; background: #faf6ed; border-radius: 20px; box-shadow: 0 4px 15px rgba(6,30,46,.12); }
.home-button { min-height: 50px; padding: 16px 23px; display: inline-flex; gap: 34px; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 600; letter-spacing: .02em; border: 1px solid transparent; cursor: pointer; transition: background .2s, transform .2s; text-decoration: none; }
.home-button.light { background: #f7f4ed; color: var(--navy-dark); }
.home-button.dark { background: var(--navy); color: white; }
.home-button:hover { transform: translateY(-2px); }
.home-button.light:hover { background: #fff; }
.home-button.dark:hover { background: #155477; }
.home-button:disabled { opacity: .6; cursor: wait; transform: none; }
.home-button > span { font-size: 20px; font-weight: 400; line-height: 12px; }
.hero-bottom { display: flex; justify-content: center; width: 100%; padding: 28px 20px 24px; color: #fff; }
.hero-bottom > a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; }

.hero-bottom svg { fill: none; stroke: currentColor; stroke-width: 1.2; width: 24px; height: 24px; }
.home-container { width: min(1160px, calc(100% - 112px)); margin: 0 auto; }
.home-page h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 4.4vw, 64px); font-weight: 700; line-height: 1.15; letter-spacing: -.04em; margin: 0; color: var(--navy); }
.home-page h2 em { font-weight: 400; }
.home-eyebrow { text-transform: uppercase; color: #977546; font-size: 10px; font-weight: 700; letter-spacing: .2em; margin: 0 0 23px; display: flex; align-items: center; gap: 12px; }
.home-eyebrow::before { content: ""; height: 1px; width: 24px; background: #ad9167; }
.home-about { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 94px 0 96px; align-items: center; }
.home-about-copy { color: var(--muted); font-size: 15px; line-height: 1.85; }
.home-about-copy p { margin: 0 0 20px; }
.home-about-copy .about-lead { color: #274a5d; font-size: 19px; line-height: 1.6; }
.home-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; color: var(--navy); border-bottom: 1px solid #b6b9ad; font-weight: 600; font-size: 12px; padding: 6px 0; margin-top: 3px; }
.home-text-link > span { font-size: 20px; }
.home-community { padding: 82px 0 90px; background: var(--cream); border-top: 1px solid #eeebe3; border-bottom: 1px solid #eeebe3; }
.center-heading { text-align: center; max-width: 740px; margin: 0 auto; }
.center-heading .home-eyebrow { justify-content: center; }
.center-heading .home-eyebrow::after { content: ""; height: 1px; width: 24px; background: #ad9167; }
.section-subtitle { font-family: Georgia, "Times New Roman", serif; color: #496170; line-height: 1.4; font-size: clamp(24px, 2.1vw, 29px); margin: 24px 0 0; }
.ministry-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: 46px; }
.ministry-columns article { min-width: 0; }


.ministry-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.prayer-photo { object-position: center 27%; }

.ministry-columns h3 { font-family: Georgia, "Times New Roman", serif; font-size: 30px; font-weight: 600; letter-spacing: -.03em; line-height: 1.2; margin: 24px 0 13px; }
.ministry-columns p { color: #586b76; font-size: 15px; line-height: 1.8; margin: 0; }

.home-contact { padding: 82px 0 66px; }
.home-contact-form { max-width: 800px; margin: 47px auto 0; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-bottom: 24px; }
.home-contact-form label { display: block; font-size: 12px; font-weight: 600; color: #355364; }
.home-contact-form input, .home-contact-form textarea { display: block; width: 100%; margin-top: 10px; padding: 15px 16px; border: 1px solid #d4dbdc; background: #fcfcfa; color: #18384a; font-size: 14px; font-weight: 400; border-radius: 0; transition: border-color .15s; }
.home-contact-form input { min-height: 51px; }
.home-contact-form textarea { resize: vertical; min-height: 140px; }
.home-contact-form input::placeholder, .home-contact-form textarea::placeholder { color: #869399; }
.home-contact-form input:focus, .home-contact-form textarea:focus { outline: 1px solid var(--navy); border-color: var(--navy); background: #fff; }
.contact-trap { display: none; }
.contact-send { display: flex; justify-content: flex-end; margin-top: 26px; }

.contact-send .home-button { flex-shrink: 0; }
.form-feedback { min-height: 23px; font-size: 13px; line-height: 1.6; margin: 15px 0 0; color: #285642; }
.form-feedback.error { color: #9b3434; }
.form-feedback.warning { color: #805313; }
.site-end { background: var(--navy); color: #e5edf1; padding: 63px clamp(24px, 5vw, 80px) 25px; }
.footer-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(190px, .7fr); gap: 48px; max-width: 1240px; margin: 0 auto; padding-bottom: 42px; align-items: start; }
.footer-motto { color: #d3e0e7; font-size: 14px; font-family: Georgia, "Times New Roman", serif; font-style: italic; letter-spacing: .02em; margin: 23px 0 0; }
.footer-label { display: block; text-transform: uppercase; font-size: 12px; color: #d9c7a7; letter-spacing: .13em; margin-bottom: 19px; }
.footer-visit p, .footer-visit a { color: #d3e0e7; line-height: 1.8; font-size: 15px; margin: 0; }
.footer-visit a { display: inline-block; margin-top: 8px; max-width: 340px; }
.footer-explore { display: flex; flex-direction: column; gap: 18px; }
.footer-explore a { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 15px; line-height: 1.6; }
.footer-explore a span { color: #d9c7a7; }
.footer-bottom { max-width: 1240px; margin: 0 auto; border-top: 1px solid rgba(255,255,255,.18); padding-top: 24px; display: flex; justify-content: center; text-align: center; color: #b7c9d5; font-size: 12px; line-height: 1.7; }
.interior-page { min-height: 60vh; }
.interior-page h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 5vw, 68px); line-height: 1.1; font-weight: 400; margin: 0; letter-spacing: -.03em; }
.interior-page h1 em { display: block; font-weight: 400; }
.inbox-page { max-width: 1050px; padding: 70px 24px; margin: 0 auto; min-height: 60vh; }
.inbox-page h1 { font: 400 44px Georgia, serif; }
.inbox-page > p { color: var(--muted); line-height: 1.7; }
.inbox-message { border: 1px solid #d5dfe4; padding: 26px; margin-top: 20px; }
.inbox-message header { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; }
.inbox-message h2 { font-size: 18px; margin: 0 0 8px; }
.inbox-message time { font-size: 12px; color: var(--muted); }
.inbox-message a { font-size: 13px; text-decoration: underline; }
.inbox-message > p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; margin: 24px 0 0; }

@media (max-width: 1080px) {
  .site-nav { padding-left: 28px; padding-right: 28px; }
  .site-menu { gap: 18px; }
  .site-menu .visit-link { padding: 12px; gap: 12px; }
  .original-logo img { width: 126px; height: 38px; }
  .site-brand { gap: 12px; }
  .site-brand .brand-ministry { padding-left: 12px; }
  .home-container { width: calc(100% - 80px); }
  .home-about { gap: 45px; }
  .footer-top { gap: 32px; }
}
@media (max-width: 960px) {
  .site-nav { min-height: 80px; padding-top: 14px; padding-bottom: 14px; justify-content: space-between; gap: 28px; }
  .menu-toggle { display: flex; }
  .site-menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--navy); padding: 15px 28px 25px; border-top: 1px solid rgba(255,255,255,.18); box-shadow: 0 18px 25px rgba(2,20,35,.12); }
  .site-menu.is-open { display: flex; align-items: stretch; flex-direction: column; gap: 0; }
  .site-menu > a { padding: 14px 0; font-size: 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
  .site-menu > a[aria-current="page"]::after { display: none; }
  .site-menu .visit-link { margin: 15px 0 0; width: max-content; padding: 14px 20px; border: 1px solid rgba(255,255,255,.4); }
  .home-hero { height: calc(100svh - 80px); min-height: 660px; }
  .home-hero h1 { font-size: clamp(44px, 6.8vw, 66px); }
  .home-hero-photo { object-position: 53% center; }
  .home-about { padding: 88px 0; }
  .ministry-columns { gap: 22px; }
  .ministry-columns h3 { font-size: 27px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-explore { grid-column: 1 / -1; flex-direction: row; gap: 38px; }
}
@media (max-width: 660px) {
  .site-nav { min-height: 76px; padding: 12px 18px; gap: 12px; }
  .original-logo { padding: 3px 6px; }
  .original-logo img { width: 112px; height: 34px; }
  .site-brand { gap: 10px; }
  .site-brand .brand-ministry { padding-left: 10px; }
  .site-brand .brand-ministry strong { font-size: 12px; letter-spacing: .08em; }
  .site-brand .brand-ministry small { font-size: 9px; letter-spacing: .19em; margin-top: 6px; }
  .home-hero { min-height: 600px; height: calc(100svh - 76px); max-height: 820px; }
  .hero-welcome { margin: 32px 22px 0; max-width: 260px; font-size: 22px; letter-spacing: -.02em; line-height: 1.4; }
  .hero-welcome::after { margin-top: 15px; width: 44px; }
  .home-hero-copy { width: calc(100% - 32px); padding: 0 2px; margin-top: clamp(44px, 8vh, 70px); }
  .home-hero h1 { font-size: clamp(32px, 8.5vw, 52px); letter-spacing: -.045em; line-height: 1.18; }
  .hero-rooted { font-size: .8em; }
  .hero-christ { font-size: 2.3em; }
  .hero-growing-line { margin-top: 18px; }
  .home-hero-copy .home-button { margin-top: 35px; padding: 17px 18px; gap: 16px; font-size: 16px; }
  .home-button { min-height: 50px; padding: 16px 21px; font-size: 11px; gap: 30px; }
  .hero-bottom { padding: 22px 20px 18px; }


  .home-hero-photo { object-position: 50% center; }
  .home-container { width: calc(100% - 44px); }
  .home-about { grid-template-columns: 1fr; gap: 28px; padding: 72px 0; }
  .home-page h2 { font-size: 44px; line-height: 1.2; }
  .home-eyebrow { font-size: 9px; margin-bottom: 22px; }
  .home-about-copy .about-lead { font-size: 18px; }
  .home-about-copy { font-size: 14px; }
  .home-community { padding: 70px 0 74px; }
  .center-heading { max-width: 350px; }
  .center-heading h2 em { display: block; }
  .section-subtitle { font-size: 25px; margin-top: 20px; }
  .ministry-columns { grid-template-columns: 1fr; gap: 40px; margin-top: 36px; }


  .ministry-columns h3 { margin-top: 22px; font-size: 29px; }
  .ministry-columns p { font-size: 15px; }
  .home-contact { padding: 70px 0 48px; }
  .home-contact-form { margin-top: 35px; }
  .contact-fields { grid-template-columns: 1fr; gap: 22px; margin-bottom: 22px; }
  .home-contact-form input, .home-contact-form textarea { font-size: 16px; }
  .contact-send { flex-direction: column; align-items: stretch; }
  .contact-send button { justify-content: center; }

  .site-end { padding: 43px 23px 24px; }
  .footer-top { grid-template-columns: 1fr; gap: 35px; padding-bottom: 32px; }
  .footer-explore { flex-direction: column; align-items: flex-start; gap: 18px; }
  .footer-explore a { gap: 16px; font-size: 15px; }
  .footer-bottom { font-size: 12px; }
  .inbox-message header { flex-direction: column; gap: 12px; }
}
@media (max-width: 360px) {
  .original-logo img { width: 98px; height: 30px; }
  .site-nav { padding-left: 12px; padding-right: 12px; }
  .hero-welcome { font-size: 20px; max-width: 220px; }
  .home-hero-copy .home-button { font-size: 14px; padding: 17px 14px; gap: 12px; white-space: nowrap; }

  .home-hero h1 { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

.link-arrow { width: 18px; height: 18px; flex: 0 0 18px; }

.footer-visit .link-arrow { display: inline; width: 12px; height: 12px; vertical-align: middle; }
.footer-explore .link-arrow { width: 14px; height: 14px; flex-basis: 14px; color: #d9c7a7; }

/* About: a welcoming photo, readable values, and the people who make our family. */
.about-banner { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 340px; overflow: hidden; background: var(--cream); }
.about-banner-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.about-banner-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #f6f4ee 0%, rgba(246,244,238,.96) 22%, rgba(246,244,238,.8) 37%, rgba(246,244,238,.13) 60%, transparent 76%); }
.about-scripture { width: min(1160px, calc(100% - 112px)); margin: 0 auto; padding: 45px 0; color: var(--navy); }
.about-scripture p { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(26px, 2.5vw, 34px); line-height: 1.35; }
.about-scripture p span { display: block; margin-top: 5px; font-family: "Allura", Georgia, serif; font-size: clamp(66px, 6.4vw, 88px); font-weight: 400; line-height: 1; color: #28605e; }
.about-scripture cite { display: block; margin-top: 21px; font-style: normal; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #4e6569; }
.about-scripture a { text-decoration-thickness: 1px; text-underline-offset: 5px; }
.about-scripture a:hover { text-decoration: underline; }
.about-introduction { max-width: 1160px; width: calc(100% - 112px); margin: 0 auto; padding: 94px 0 92px; }
.about-intro-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: start; }
.about-page h1 { font-size: clamp(52px, 5.4vw, 76px); font-weight: 600; line-height: 1.08; letter-spacing: -.045em; color: var(--navy); }
.about-page h1 em { margin-top: 5px; color: #28605e; }
.about-copy { color: #516875; font-size: 17px; line-height: 1.8; }
.about-copy p { margin: 0 0 22px; }
.about-copy p:last-child { margin-bottom: 0; }
.about-copy .about-lead { color: #284d60; font-size: 21px; line-height: 1.6; }
.about-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 70px; padding-top: 38px; border-top: 1px solid #d5dfdf; }
.about-values > div { padding: 0 32px; }
.about-values > div:first-child { padding-left: 0; }
.about-values > div:last-child { padding-right: 0; }
.about-values > div + div { border-left: 1px solid #d5dfdf; }
.about-values h2 { margin: 0 0 15px; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(27px, 2.5vw, 34px); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.about-values p { margin: 0; color: #516875; font-size: 18px; line-height: 1.7; }
.about-nations { background: var(--navy-dark); color: white; padding: 88px 0 94px; }
.about-nations-inner { width: min(1160px, calc(100% - 112px)); margin: 0 auto; display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; }
.about-nations h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(48px, 4.7vw, 66px); font-weight: 600; line-height: 1.1; letter-spacing: -.04em; }
.about-nations h2 em { display: block; margin-top: 5px; font-weight: 400; color: #e2c89d; }
.about-nations-copy > p { margin: 27px 0 0; max-width: 420px; color: #d1dfe6; font-size: 18px; line-height: 1.75; }
.about-countries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.about-countries li { display: flex; align-items: center; gap: 17px; padding: 18px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.16); border-radius: 3px; }
.about-countries li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.about-countries img { display: block; width: 48px; height: 36px; flex-shrink: 0; object-fit: cover; border-radius: 1px; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.about-countries span { color: #fff; font-size: 19px; font-weight: 500; line-height: 1.3; }

@media (max-width: 1080px) {
  .about-introduction, .about-scripture, .about-nations-inner { width: calc(100% - 80px); }
  .about-intro-grid, .about-nations-inner { gap: 42px; }
  .about-values > div { padding: 0 22px; }
  .about-countries li { gap: 12px; padding: 15px 12px; }
  .about-countries img { width: 40px; height: 30px; }
  .about-countries span { font-size: 17px; }
}
@media (max-width: 800px) {
  .about-banner { min-height: 310px; }
  .about-banner-shade { background: linear-gradient(90deg, rgba(246,244,238,.98), rgba(246,244,238,.85) 35%, rgba(246,244,238,.15) 75%); }
  .about-intro-grid { grid-template-columns: 1fr; gap: 32px; }
  .about-introduction { padding: 70px 0; }
  .about-values { grid-template-columns: 1fr; gap: 27px; margin-top: 46px; padding-top: 30px; }
  .about-values > div { padding: 0; }
  .about-values > div + div { border-left: 0; border-top: 1px solid #d5dfdf; padding-top: 27px; }
  .about-values h2 { font-size: 32px; margin-bottom: 12px; }
  .about-nations { padding: 70px 0; }
  .about-nations-inner { grid-template-columns: 1fr; gap: 36px; }
  .about-nations-copy > p { max-width: 570px; }
  .about-countries li { gap: 17px; padding: 18px; }
  .about-countries img { width: 48px; height: 36px; }
  .about-countries span { font-size: 19px; }
}
@media (max-width: 540px) {
  .about-introduction, .about-scripture, .about-nations-inner { width: calc(100% - 48px); }
  .about-banner { min-height: 360px; align-items: flex-end; }
  .about-banner-photo { object-position: 52% 28%; }
  .about-banner-shade { background: linear-gradient(180deg, transparent 18%, rgba(246,244,238,.12) 32%, rgba(246,244,238,.94) 64%, #f6f4ee 100%); }
  .about-scripture { padding: 0 0 30px; }
  .about-scripture p { font-size: 25px; }
  .about-scripture p span { font-size: clamp(50px, 17vw, 66px); white-space: nowrap; }
  .about-scripture cite { font-size: 11px; margin-top: 15px; letter-spacing: .1em; }
  .about-page h1 { font-size: clamp(43px, 12vw, 62px); }
  .about-copy, .about-values p { font-size: 17px; }
  .about-copy .about-lead { font-size: 19px; }
  .about-values h2 { font-size: 30px; }
  .about-nations h2 { font-size: clamp(42px, 11.8vw, 60px); }
  .about-nations-copy > p { font-size: 17px; margin-top: 22px; }
  .about-countries { grid-template-columns: 1fr; gap: 10px; }
  .about-countries li:last-child { grid-column: auto; }
}

/* Events keeps the community's own photographs at the center of the story. */
.events-container { width: min(1160px, calc(100% - 112px)); margin: 0 auto; }
.events-banner { position: relative; isolation: isolate; min-height: 360px; display: flex; align-items: center; overflow: hidden; background: var(--cream); }
.events-banner-photo { position: absolute; top: 0; right: 0; z-index: -2; width: 66%; height: 100%; object-fit: cover; object-position: center 43%; }
.events-banner-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #f6f4ee 25%, rgba(246,244,238,.97) 34%, rgba(246,244,238,.62) 43%, transparent 58%); }
.events-banner-copy { width: min(1160px, calc(100% - 112px)); margin: 0 auto; padding: 48px 0; }
.events-page .events-banner h1 { font-size: clamp(29px, 2.8vw, 38px); line-height: 1.25; font-weight: 400; letter-spacing: -.02em; color: var(--navy); }
.events-banner h1 span { display: block; margin-top: 9px; font-family: "Allura", Georgia, serif; font-size: clamp(58px, 5.7vw, 78px); font-weight: 400; line-height: 1.05; letter-spacing: -.025em; color: #28605e; }
.events-page .events-section-title { margin: 0 0 37px; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 4.2vw, 60px); font-weight: 600; letter-spacing: -.04em; line-height: 1.15; }
.events-upcoming { padding: 86px 0 90px; }
.upcoming-events-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: stretch; }
.upcoming-gathering { padding: 36px 38px 38px; border-radius: 3px; }
.outdoor-gathering { background: #eff2eb; border: 1px solid #dde5d9; }
.outdoor-date { display: flex; align-items: center; gap: 22px; margin-bottom: 28px; }
.calendar-date { width: 67px; flex-shrink: 0; text-align: center; color: #28605e; border: 1px solid #b6c8ba; background: rgba(255,255,255,.5); }
.calendar-date span { display: block; padding: 6px 5px; font-size: 10px; font-weight: 700; letter-spacing: .16em; background: #28605e; color: white; }
.calendar-date strong { display: block; padding: 5px 0 6px; font-family: Georgia, "Times New Roman", serif; font-size: 35px; line-height: 1.15; font-weight: 400; }
.outdoor-date time { color: #365e53; font-size: 15px; font-weight: 600; line-height: 1.65; max-width: 200px; }
.upcoming-gathering h3 { color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(29px, 2.7vw, 37px); font-weight: 600; letter-spacing: -.03em; line-height: 1.15; margin: 0 0 21px; }
.upcoming-gathering > p { font-size: 17px; line-height: 1.8; color: #4a655f; margin: 0; }
.christmas-gathering { position: relative; background: var(--navy-dark); color: #fff; }
.christmas-topline { display: flex; justify-content: space-between; align-items: center; gap: 20px; color: #e2c89d; font-size: 13px; margin-bottom: 23px; min-height: 36px; }
.christmas-topline svg { fill: none; stroke: #e2c89d; stroke-width: 1; width: 26px; height: 36px; flex-shrink: 0; }
.christmas-gathering h3 { color: #fff; margin-bottom: 22px; }
.christmas-scripture { margin: 0 0 24px; padding-left: 19px; border-left: 1px solid #b69b70; }
.christmas-scripture p { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 24px; line-height: 1.45; color: #f0e1c8; }
.christmas-scripture em { font-weight: 400; }
.christmas-scripture cite { display: block; margin-top: 10px; font-style: normal; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #c8d6dd; }
.christmas-scripture a:hover { text-decoration: underline; text-underline-offset: 3px; }
.christmas-gathering > p { color: #d9e3e8; }
.events-yearly { background: var(--cream); padding: 82px 0 86px; border-top: 1px solid #eeebe3; border-bottom: 1px solid #eeebe3; }
.evangelism-gathering { display: grid; grid-template-columns: 1.08fr .92fr; gap: 64px; align-items: center; }
.evangelism-gathering > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.evangelism-gathering h3, .retreat-heading h3 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(35px, 3.2vw, 46px); font-weight: 600; letter-spacing: -.035em; line-height: 1.15; color: var(--navy); margin: 0 0 23px; }
.evangelism-gathering p, .retreat-heading > p { color: #516875; font-size: 18px; line-height: 1.8; margin: 0; }
.retreat-gathering { margin-top: 74px; padding-top: 58px; border-top: 1px solid #d7dcd4; }
.retreat-heading { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; margin-bottom: 35px; }
.retreat-heading h3 { margin-bottom: 14px; }
.retreat-heading .retreat-place { margin: 0; color: #647765; font-size: 14px; line-height: 1.7; }
.retreat-memories { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .42fr); gap: 22px; align-items: start; }
.retreat-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.retreat-photo-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.retreat-film { margin: 0; min-width: 0; }
.retreat-film video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: contain; background: #071e2c; border-radius: 2px; }
.retreat-film video:focus-visible { outline: 2px solid #977546; outline-offset: 5px; }
.retreat-film figcaption { margin-top: 12px; font-size: 13px; line-height: 1.5; color: #61717a; }
.regular-gatherings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px; padding: 86px 0 92px; }
.regular-gatherings img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.regular-gatherings h2 { margin: 28px 0 16px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(30px, 2.8vw, 39px); font-weight: 600; letter-spacing: -.03em; color: var(--navy); line-height: 1.2; }
.regular-gatherings p { margin: 0; font-size: 18px; line-height: 1.8; color: #516875; }

@media (max-width: 1080px) {
  .events-container, .events-banner-copy { width: calc(100% - 80px); }
  .events-banner-photo { width: 65%; }
  .upcoming-gathering { padding: 29px; }
  .evangelism-gathering, .retreat-heading { gap: 40px; }
  .regular-gatherings { gap: 30px; }
}
@media (max-width: 800px) {
  .events-banner { min-height: 320px; }
  .events-banner-photo { width: 74%; }
  .events-banner-shade { background: linear-gradient(90deg, #f6f4ee 5%, rgba(246,244,238,.95) 24%, rgba(246,244,238,.65) 39%, transparent 70%); }
  .events-page .events-banner h1 { font-size: 30px; }
  .events-banner h1 span { font-size: 62px; }
  .events-upcoming { padding: 68px 0; }
  .upcoming-events-grid { grid-template-columns: 1fr; gap: 22px; }
  .upcoming-gathering { padding: 32px; }
  .upcoming-gathering h3 { font-size: 35px; }
  .events-yearly { padding: 68px 0; }
  .evangelism-gathering { grid-template-columns: 1fr; gap: 28px; }
  .evangelism-gathering h3 { margin-bottom: 16px; }
  .retreat-heading { grid-template-columns: 1fr; gap: 22px; }
  .retreat-gathering { margin-top: 48px; padding-top: 43px; }
  .retreat-memories { grid-template-columns: 1fr; gap: 28px; }
  .retreat-film { width: min(340px, 100%); justify-self: center; }
  .regular-gatherings { grid-template-columns: 1fr; gap: 48px; padding: 68px 0; }
}
@media (max-width: 540px) {
  .events-container, .events-banner-copy { width: calc(100% - 48px); }
  .events-banner { min-height: calc(75vw + 112px); align-items: flex-end; }
  .events-banner-photo { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
  .events-banner-shade { inset: 0 0 auto; aspect-ratio: 4 / 3; background: linear-gradient(180deg, transparent 45%, rgba(246,244,238,.15) 60%, #f6f4ee 100%); }
  .events-banner-copy { padding: 0 0 29px; }
  .events-page .events-banner h1 { font-size: 27px; }
  .events-banner h1 span { font-size: clamp(49px, 15.5vw, 66px); white-space: nowrap; margin-top: 5px; }
  .events-page .events-section-title { font-size: clamp(36px, 10vw, 48px); margin-bottom: 28px; }
  .upcoming-gathering { padding: 26px 23px; }
  .outdoor-date { gap: 17px; margin-bottom: 25px; }
  .outdoor-date time { font-size: 14px; }
  .calendar-date { width: 59px; }
  .upcoming-gathering h3 { font-size: 31px; }
  .upcoming-gathering > p { font-size: 17px; line-height: 1.75; }
  .christmas-scripture { padding-left: 15px; }
  .christmas-scripture p { font-size: 23px; }
  .evangelism-gathering h3, .retreat-heading h3 { font-size: 36px; }
  .evangelism-gathering p, .retreat-heading > p, .regular-gatherings p { font-size: 17px; }
  .retreat-photo-grid { gap: 10px; }
  .retreat-photo-grid img { aspect-ratio: 3 / 4; }
  .retreat-photo-grid img:nth-child(n+3) { aspect-ratio: 4 / 3; }
  .regular-gatherings h2 { font-size: 31px; margin-top: 23px; }
}

/* Leadership: calm portrait-and-biography rows, inspired by the church reference. */
.leadership-directory { width: min(1080px, calc(100% - 112px)); margin: 0 auto; padding: 72px 0 76px; }
.leadership-page h1 { font-size: clamp(46px, 4.8vw, 68px); font-weight: 600; letter-spacing: -.04em; line-height: 1.15; color: var(--navy); text-align: center; margin: 0 0 50px; }
.leadership-page h1::after { content: ""; display: block; width: 60px; height: 2px; margin: 25px auto 0; background: #bba078; }
.leadership-profile { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: 68px; align-items: center; padding: 48px 0; border-top: 1px solid #b8cece; }
.leadership-profile:first-of-type { padding-top: 0; border-top: 0; }
.leadership-profile:last-of-type { padding-bottom: 0; }
.leadership-photo { margin: 0; align-self: start; }
.leadership-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 2px; }
.pastor-profile .leadership-photo img { object-position: 22% center; }
.leadership-photo figcaption { margin-top: 11px; font-size: 11px; color: #6d7e87; line-height: 1.5; }
.leadership-photo figcaption a:hover { text-decoration: underline; text-underline-offset: 3px; }
.leadership-bio :is(h2, h3) { font-family: Georgia, "Times New Roman", serif; font-size: clamp(30px, 2.8vw, 39px); font-weight: 600; line-height: 1.2; letter-spacing: -.035em; color: var(--navy); margin: 0 0 23px; }
.leadership-bio p { font-size: 18px; line-height: 1.8; color: #516875; margin: 0 0 19px; }
.leadership-bio p:last-child { margin-bottom: 0; }
.leadership-source { display: inline-flex; align-items: center; gap: 16px; margin-top: 3px; padding-bottom: 4px; border-bottom: 1px solid #b8c9c6; font-size: 13px; line-height: 1.5; color: #28605e; }
.leadership-source svg { width: 15px; height: 15px; }
.leadership-source:hover { color: var(--navy); border-bottom-color: var(--navy); }
.worship-team-section { padding: 82px 0 86px; background: var(--navy-dark); color: white; }
.worship-team-layout { width: min(1160px, calc(100% - 112px)); margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center; }
.worship-team-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.worship-team-copy h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(39px, 3.6vw, 51px); line-height: 1.15; font-weight: 600; letter-spacing: -.035em; margin: 0 0 27px; }
.worship-team-copy h2 span { display: block; color: #e2c89d; font-style: italic; font-weight: 400; margin-top: 5px; }
.worship-team-copy p { color: #d9e4e9; font-size: 18px; line-height: 1.8; margin: 0 0 20px; }
.worship-team-copy p:last-child { margin-bottom: 0; }

@media (max-width: 1080px) {
  .leadership-directory, .worship-team-layout { width: calc(100% - 80px); }
  .leadership-profile { grid-template-columns: 220px minmax(0, 1fr); gap: 42px; }
  .worship-team-layout { gap: 36px; }
}
@media (max-width: 800px) {
  .leadership-directory { padding: 60px 0 64px; }
  .leadership-profile { grid-template-columns: 180px minmax(0, 1fr); gap: 30px; align-items: start; padding: 38px 0; }
  .leadership-bio :is(h2, h3) { font-size: 31px; margin-bottom: 18px; }
  .leadership-bio p { font-size: 17px; }
  .worship-team-section { padding: 64px 0; }
  .worship-team-layout { grid-template-columns: 1fr; gap: 33px; }
  .worship-team-copy h2 { font-size: 46px; }
  .worship-team-copy p { font-size: 17px; }
}
@media (max-width: 600px) {
  .leadership-directory, .worship-team-layout { width: calc(100% - 48px); }
  .leadership-page h1 { font-size: clamp(40px, 10vw, 52px); margin-bottom: 39px; }
  .leadership-page h1::after { margin-top: 20px; width: 48px; }
  .leadership-profile { grid-template-columns: 1fr; gap: 26px; padding: 36px 0; }
  .leadership-photo { width: min(248px, 100%); }
  .leadership-bio :is(h2, h3) { font-size: 31px; }
  .leadership-source { margin-top: 2px; }
  .worship-team-copy h2 { font-size: clamp(38px, 10.5vw, 47px); }
}

/* Community leaders: preserve the portrait-and-biography rhythm. */
.leadership-bio .leadership-greeting { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 15px; color: #28605e; margin-top: -7px; }
.leadership-greeting [lang="ko"] { font-size: 24px; font-weight: 700; letter-spacing: -.03em; }
.leadership-greeting span:last-child { font-size: 17px; font-style: italic; }
.leadership-section-title { max-width: 850px; margin: 0 auto 56px; color: var(--navy); text-align: center; text-wrap: balance; font-family: Georgia, "Times New Roman", serif; font-size: clamp(40px, 4.4vw, 60px); font-weight: 600; letter-spacing: -.035em; line-height: 1.16; }
.leadership-section-title span { display: block; margin-top: 7px; color: #28605e; font-weight: 400; font-style: italic; }
.leadership-section-title::after { content: ""; display: block; width: 60px; height: 2px; margin: 25px auto 0; background: #bba078; }
@media (max-width: 600px) {
  .leadership-section-title { font-size: clamp(34px, 9vw, 44px); margin-bottom: 39px; }
  .leadership-section-title::after { width: 48px; margin-top: 20px; }
}

/* Visit: an illustrated subway guide beside the Sunday details. */
.visit-page > .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.visit-page .visit-section { padding: clamp(20px, 4vw, 55px); background: #f3f5f3; }
.visit-page .visit-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 4vw, 58px); padding: clamp(28px, 4vw, 56px); align-items: start; }
.visit-page .visit-panel::after { display: none; }
.visit-map { margin: 0; min-width: 0; position: relative; z-index: 1; }
.visit-map-link { display: block; border-radius: 14px; overflow: hidden; background: #f8f6ef; box-shadow: 0 12px 35px rgba(0, 0, 0, .12); transition: box-shadow .2s ease; }
.visit-map-link:hover { box-shadow: 0 12px 38px rgba(0, 0, 0, .25); }
.visit-map-link:focus-visible { outline: 3px solid #d9c299; outline-offset: 5px; }
.visit-map img { display: block; width: 100%; height: auto; }
.visit-map figcaption { margin-top: 13px; color: #b9cdd4; font-size: 11px; line-height: 1.5; }
.visit-map figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.visit-page .visit-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.visit-page .detail-card { gap: 13px; padding: 24px 21px; min-height: 0; }
.visit-page .detail-card.featured { padding: 25px; }
.visit-page .detail-card small { font-size: 10px; }
.visit-page .detail-card p { font-size: 14px; line-height: 1.6; }
.visit-page .detail-card.featured strong { font-size: clamp(26px, 2.5vw, 34px); }
.visit-page .visit-address { grid-column: 1 / -1; }
.visit-address address { font-style: normal; }
.visit-page .visit-address p { color: #e1ecf1; font-size: 17px; line-height: 1.6; }
.visit-page .visit-address p[lang="ko"] { word-break: keep-all; }
.visit-page .visit-actions { margin-top: 2px; }
@media (max-width: 1050px) {
  .visit-page .visit-panel { grid-template-columns: 1fr; max-width: 720px; padding: 35px; gap: 32px; }
}
@media (max-width: 600px) {
  .visit-page .visit-section { padding: 14px; }
  .visit-page .visit-panel { padding: 18px; border-radius: 19px; gap: 28px; }
  .visit-map { margin: -18px -18px 0; }
  .visit-map-link { border-radius: 19px 19px 0 0; }
  .visit-map figcaption { padding: 0 18px; }
  .visit-page .visit-details { grid-template-columns: 1fr; gap: 13px; }
  .visit-page .detail-card { padding: 23px 20px; }
  .visit-page .detail-card.featured { padding: 24px 20px; align-items: start; }
  .visit-page .detail-icon { width: 38px; height: 38px; font-size: 18px; }
  .visit-page .detail-card.featured strong { font-size: 26px; }
  .visit-page .visit-address p { font-size: 16px; }
  .visit-map figcaption { font-size: 10px; }
}

/* Contact and a single retreat memory at a time. */
.visit-page .pastor-contact a { color: #edf5f6; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.visit-page .pastor-contact .contact-office-label { display: block; color: #aac6d4; margin-top: 4px; font-size: 12px; line-height: 1.5; }
.visit-page .pastor-contact > div { min-width: 0; }
.contact-page { padding: 75px 28px 80px; background: #f7f8f5; }
.contact-page > section { max-width: 800px; margin: 0 auto; }
.contact-page h1 { color: var(--navy); text-align: center; font-weight: 600; }
.contact-page .home-contact-form { margin-top: 43px; }
.contact-page .home-contact-form label { font-size: 14px; }
.contact-page .home-contact-form input, .contact-page .home-contact-form textarea { font-size: 16px; background: white; }
.pastor-direct-contact { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 24px; margin-top: 26px; padding-top: 24px; border-top: 1px solid #d5dfe4; font-size: 16px; line-height: 1.6; font-style: normal; color: var(--navy); }
.pastor-direct-contact > span { flex-basis: 100%; text-align: center; font-weight: 600; }
.pastor-direct-contact a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.retreat-carousel { max-width: 960px; margin: 0 auto; background: #fff; border: 1px solid #d8dfd9; border-radius: 4px; overflow: hidden; }
.retreat-carousel:focus-visible { outline: 3px solid #aa8d52; outline-offset: 5px; }
.retreat-slide-stage { position: relative; width: 100%; aspect-ratio: 16 / 10; background: #0a2d40; }
.retreat-slide { position: absolute; inset: 0; display: grid; place-items: center; animation: retreat-reveal .22s ease; }
.retreat-slide img, .retreat-slide video { display: block; width: 100%; height: 100%; object-fit: contain; min-height: 0; }
.retreat-slide-controls { display: flex; align-items: center; justify-content: center; gap: 28px; padding: 16px 24px; }
.retreat-slide-arrow { border: 1px solid #bccbc9; background: #fff; width: 46px; height: 46px; display: grid; place-items: center; color: var(--navy); border-radius: 50%; cursor: pointer; flex-shrink: 0; }
.retreat-slide-arrow svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.5; fill: none; }
.retreat-slide-arrow:hover { background: #edf1e9; border-color: #8c9e91; }
.retreat-slide-arrow:focus-visible, .retreat-slide-dot:focus-visible { outline: 2px solid #9f793b; outline-offset: 3px; }
.retreat-slide-pagination { text-align: center; }
.retreat-slide-dots { display: flex; align-items: center; justify-content: center; }
.retreat-slide-dot { width: 34px; height: 34px; padding: 0; border: 0; background: transparent; color: #a9bab8; display: grid; place-items: center; cursor: pointer; }
.retreat-slide-dot span { width: 7px; height: 7px; background: currentColor; border-radius: 50%; }
.retreat-slide-dot svg { fill: currentColor; width: 15px; height: 15px; }
.retreat-slide-dot.is-active { color: var(--navy); }
.retreat-slide-dot.is-active span { width: 10px; height: 10px; }
.retreat-slide-count { display: block; color: #536977; font-size: 12px; line-height: 1.4; padding-bottom: 3px; }
@keyframes retreat-reveal { from { opacity: .4; } to { opacity: 1; } }
@media (max-width: 600px) {
  .contact-page { padding: 50px 24px 55px; }
  .contact-page .home-contact-form { margin-top: 35px; }
  .retreat-slide-stage { aspect-ratio: 4 / 5; }
  .retreat-slide-controls { gap: 8px; padding: 13px 10px; }
  .retreat-slide-dot { width: 26px; }
  .retreat-slide-arrow { width: 43px; height: 43px; }
}
@media (prefers-reduced-motion: reduce) { .retreat-slide { animation: none; } }

/* About navigation and the confession of faith. */
.nav-about { position: relative; display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.about-menu-toggle { display: flex; align-items: center; gap: 7px; padding: 12px 0; background: transparent; border: 0; color: #d5e0e6; font-size: 15px; font-weight: 500; letter-spacing: .025em; white-space: nowrap; cursor: pointer; border-radius: 5px; transition: color .2s; }
.about-menu-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform .18s ease; }
.about-menu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.about-menu-toggle:hover, .nav-about.is-active .about-menu-toggle { color: var(--gold); }
.nav-about.is-active .about-menu-toggle span::after { content: ""; display: block; width: 15px; height: 1px; background: var(--gold); margin: 6px auto -7px; }
.about-submenu { position: absolute; left: -18px; top: calc(100% + 10px); min-width: 225px; padding: 7px; background: #f7f8f5; border: 1px solid #dce4e3; border-radius: 10px; box-shadow: 0 12px 25px rgba(4,25,41,.18); }
.about-submenu a { display: block; padding: 13px 15px; color: var(--navy); border-radius: 6px; font-size: 15px; font-weight: 500; line-height: 1.5; white-space: nowrap; }
.about-submenu a:hover, .about-submenu a[aria-current="page"] { background: #e7eeeb; }
.about-beliefs-link { display: flex; justify-content: center; margin-top: 42px; }
.about-beliefs-link .home-text-link { font-size: 16px; }
.beliefs-page { background: #fcfcf9; }
.beliefs-hero { position: relative; isolation: isolate; min-height: 410px; display: flex; align-items: center; overflow: hidden; background: var(--navy-dark); color: #fff; }
.beliefs-hero-image { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.beliefs-hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(5,27,43,.76), rgba(5,27,43,.52) 36%, rgba(5,27,43,.12) 67%, rgba(5,27,43,.04)); }
.beliefs-hero-copy { width: min(1160px, calc(100% - 112px)); margin: 0 auto; padding: 54px 0 60px; }
.beliefs-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-size: 14px; line-height: 1.5; color: #e7eceb; margin-bottom: 30px; }
.beliefs-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.beliefs-breadcrumb a:hover { color: #f0d7ac; }
.beliefs-breadcrumb > span[aria-hidden="true"] { color: #aebfc6; }
.beliefs-page .beliefs-hero h1 { font-size: clamp(48px, 5vw, 72px); line-height: 1.08; font-weight: 600; max-width: 740px; text-shadow: 0 2px 15px rgba(0,0,0,.16); }
.beliefs-hero h1 span { display: inline-block; color: #eed4aa; font-style: italic; font-weight: 400; margin-top: 9px; }
.beliefs-reading { width: min(1040px, calc(100% - 112px)); margin: 0 auto; padding: 38px 0 88px; }
.belief-row { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(0, 2fr); align-items: start; gap: 58px; padding: 42px 0; border-bottom: 1px solid #d8e0dc; }
.belief-row h2, .beliefs-desire h2 { font-family: Georgia, "Times New Roman", serif; color: var(--navy); font-size: 27px; font-weight: 600; line-height: 1.3; letter-spacing: -.025em; margin: 3px 0 0; }
.belief-row p { font-size: 20px; color: #344e5b; line-height: 1.85; margin: 0; }
.beliefs-desire { margin-top: 52px; padding: 39px 46px 42px; background: #f0eee5; border-radius: 14px; border-top: 3px solid #cbb283; }
.beliefs-desire h2 { margin: 0 0 18px; font-size: 31px; }
.beliefs-desire p { font-family: Georgia, "Times New Roman", serif; font-size: 23px; line-height: 1.7; color: #254858; margin: 0; }
@media (max-width: 1080px) {
  .beliefs-hero-copy, .beliefs-reading { width: calc(100% - 80px); }
  .belief-row { gap: 38px; }
}
@media (max-width: 960px) {
  .site-menu.is-open { max-height: calc(100svh - 80px); overflow-y: auto; }
  .nav-about { flex-wrap: wrap; gap: 0; border-bottom: 1px solid rgba(255,255,255,.08); }
  .about-menu-toggle { width: 100%; justify-content: space-between; padding: 14px 0; font-size: 16px; }
  .nav-about.is-active .about-menu-toggle span::after { display: none; }
  .about-submenu { position: static; flex-basis: 100%; min-width: 0; margin-bottom: 13px; padding: 4px 6px; border: 0; border-left: 2px solid #d7bf94; border-radius: 0 8px 8px 0; box-shadow: none; background: rgba(255,255,255,.07); }
  .about-submenu a { color: #e5edf1; font-size: 16px; white-space: normal; }
  .about-submenu a:hover, .about-submenu a[aria-current="page"] { background: rgba(255,255,255,.07); color: #eed4aa; }
}
@media (max-width: 720px) {
  .beliefs-hero { min-height: 360px; }
  .beliefs-hero-copy, .beliefs-reading { width: calc(100% - 48px); }
  .beliefs-hero-copy { padding: 40px 0 46px; }
  .beliefs-breadcrumb { font-size: 13px; margin-bottom: 25px; }
  .beliefs-page .beliefs-hero h1 { font-size: clamp(40px, 7.5vw, 54px); max-width: 480px; }
  .beliefs-reading { padding-top: 15px; padding-bottom: 62px; }
  .belief-row { grid-template-columns: 1fr; gap: 15px; padding: 31px 0; }
  .belief-row h2 { font-size: 27px; margin: 0; }
  .belief-row p { font-size: 18px; line-height: 1.8; }
  .beliefs-desire { margin-top: 36px; padding: 28px 25px 31px; }
  .beliefs-desire h2 { font-size: 29px; }
  .beliefs-desire p { font-size: 21px; line-height: 1.7; }
}
@media (max-width: 480px) {
  .beliefs-hero { min-height: 450px; align-items: flex-end; }
  .beliefs-hero-image { object-position: 86% center; }
  .beliefs-hero-shade { background: linear-gradient(180deg, rgba(5,27,43,.02) 15%, rgba(5,27,43,.3) 42%, rgba(5,27,43,.9) 100%); }
  .beliefs-hero-copy { padding: 34px 0 36px; }
  .beliefs-breadcrumb { margin-bottom: 20px; }
  .beliefs-page .beliefs-hero h1 { font-size: clamp(36px, 10.5vw, 49px); }
}

[hidden] { display: none !important; }
