/* --- sunraegil (sr-) --- */
.site-sunraegil {
  --sr-brand: #863a35;
  --sr-dark: #1d1918;
  --sr-sub: #37302e;
  --sr-line: #e0e0e0;
  --sr-shell-max: 100rem;
  --sr-content-max: min(100%, max(45rem, var(--vw-1320)));
  --sr-primary: var(--sr-brand);
  --sr-text: var(--sr-dark);
  --sr-muted: #686262;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  color: var(--sr-text);
}

.site-sunraegil .sr-shell {
  width: 100%;
  max-width: var(--sr-shell-max);
  margin-left: auto;
  margin-right: auto;
}

.site-sunraegil .container {
  width: 100%;
  max-width: var(--sr-content-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: max(1.25rem, var(--vw-30));
  padding-right: max(1.25rem, var(--vw-30));
}

body.page-sr-main #wrapper {
  position: relative;
}

body.page-sr-main #content {
  padding-top: 0;
}

.skip-link {
  position: absolute;
  left: -9999px;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
  z-index: 9999;
  background: #fff;
  padding: 0.5rem 1rem;
}

/* --- Header GNB (Figma 2002:6512 overlay / 2002:5645 solid) --- */
.sr-header {
  position: relative;
  z-index: 100;
  display: flex;
  justify-content: center;
  padding: 0 max(1.25rem, var(--vw-30));
}

.sr-header__shell {
  width: 100%;
  max-width: var(--sr-shell-max);
  position: relative;
}

.sr-header--solid {
  background: #fff;
}

.sr-header--solid .sr-header__shell {
  border-bottom: 1px solid var(--sr-line);
}

.sr-header--overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: transparent;
}

.sr-header--overlay .sr-header__shell {
  background: rgba(55, 48, 46, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

.sr-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(1.25rem, var(--vw-30));
  width: 100%;
  max-width: var(--sr-content-max);
  min-height: max(5.625rem, var(--vw-90));
  margin-left: auto;
  margin-right: auto;
}

.sr-header__logo {
  display: inline-flex;
  align-items: center;
  gap: max(0.5rem, calc(8 * 100vw / 1600));
  flex-shrink: 0;
  background: transparent;
  line-height: normal;
  text-decoration: none;
}

.sr-header__logo-mark {
  display: block;
  flex: 0 0 auto;
  width: max(2.875rem, calc(51.59 * 100vw / 1600));
  max-width: 3.224375rem;
  line-height: 0;
}

.sr-header__logo-mark-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 51.59 / 45.84;
}

.sr-header__logo-mark-img--light {
  display: none;
}

.sr-header--overlay .sr-header__logo-mark-img--dark {
  display: none;
}

.sr-header--overlay .sr-header__logo-mark-img--light {
  display: block;
}

.sr-header__logo-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: max(0.125rem, calc(2 * 100vw / 1600));
  min-width: 0;
}

.sr-header__logo-tagline {
  color: #fff;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(0.6875rem, var(--font-12));
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}

.sr-header__logo-name {
  color: #fff;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1rem, var(--font-18));
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.sr-header--solid .sr-header__logo-tagline,
.sr-header--solid .sr-header__logo-name {
  color: var(--sr-brand);
}

.sr-header__nav {
  flex: 1 1 auto;
  min-width: 0;
}

.sr-header__menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: max(2.5rem, var(--vw-60));
  margin: 0;
  padding: 0;
  list-style: none;
}

.sr-header__item {
  position: relative;
}

.sr-header__link {
  display: inline-flex;
  align-items: center;
  min-height: max(5.625rem, var(--vw-90));
  color: var(--sr-dark);
  font-size: max(1rem, var(--font-20));
  font-weight: 500;
  line-height: normal;
  text-decoration: none;
  white-space: nowrap;
  border-top: 3px solid transparent;
  box-sizing: border-box;
}

.sr-header--overlay .sr-header__link {
  color: #fff;
  border-top-color: transparent;
}

.sr-header--overlay .sr-header__item.is-active > .sr-header__link,
.sr-header--overlay .sr-header__link.is-active {
  border-top-color: #fff;
}

.sr-header__link:hover,
.sr-header__link:focus-visible {
  color: var(--sr-dark);
}

.sr-header__item.is-active > .sr-header__link,
.sr-header__link.is-active {
  border-top-color: var(--sr-brand);
}

.sr-header__sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  min-width: max(8.625rem, 7.1875vw);
  border-top: 3px solid var(--sr-brand);
  background: #fff;
}

.sr-header__sub-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sr-header__sub-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: max(8.625rem, 7.1875vw);
  padding: max(0.875rem, var(--vw-16)) max(1.25rem, var(--vw-30));
  border-bottom: 1px solid var(--sr-line);
  box-sizing: border-box;
  color: var(--sr-sub);
  font-size: max(0.875rem, var(--font-16));
  font-weight: 400;
  line-height: normal;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}

.sr-header__sub-link.is-active,
.sr-header__sub-link:hover,
.sr-header__sub-link:focus-visible {
  color: var(--sr-brand);
  font-weight: 700;
}

.sr-header__actions {
  display: flex;
  align-items: center;
  gap: max(1rem, var(--vw-20));
  flex-shrink: 0;
}

.sr-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: max(0.5rem, var(--vw-10)) max(0.875rem, var(--vw-16));
  border: 2px solid var(--sr-brand);
  border-radius: 100px;
  color: var(--sr-brand);
  font-family: 'Noto Sans KR', Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(0.8125rem, var(--font-14));
  font-weight: 400;
  line-height: normal;
  text-decoration: none;
  white-space: nowrap;
}

.sr-header--overlay .sr-header__cta {
  border-color: #f6f2f2;
  color: #f6f2f2;
}

.sr-header__cta:hover,
.sr-header__cta:focus-visible {
  color: var(--sr-brand);
}

.sr-header__menu-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.sr-header__menu-toggle__icon {
  display: block;
  transition: opacity 0.2s ease;
}

.sr-header__menu-toggle__icon--menu {
  width: max(1.25rem, 1.302083vw);
  height: auto;
}

.sr-header__menu-toggle__icon--light,
.sr-header__menu-toggle__icon--dark {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
}

.sr-header--overlay .sr-header__menu-toggle__icon--light {
  opacity: 1;
}

.sr-header--overlay .sr-header__menu-toggle__icon--dark {
  opacity: 0;
}

.sr-header--solid .sr-header__menu-toggle__icon--light {
  opacity: 0;
}

.sr-header--solid .sr-header__menu-toggle__icon--dark {
  opacity: 1;
}

.sr-header__menu-toggle__icon--close {
  position: absolute;
  left: 50%;
  top: 50%;
  width: max(1.25rem, 1.302083vw);
  height: max(1.25rem, 1.302083vw);
  margin: 0;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.sr-header.is-sitemap-open .sr-header__menu-toggle__icon--light,
.sr-header.is-sitemap-open .sr-header__menu-toggle__icon--dark,
html.is-sitemap-open .sr-header__menu-toggle__icon--light,
html.is-sitemap-open .sr-header__menu-toggle__icon--dark {
  opacity: 0;
  pointer-events: none;
}

.sr-header.is-sitemap-open .sr-header__menu-toggle__icon--close,
html.is-sitemap-open .sr-header__menu-toggle__icon--close {
  opacity: 1;
  pointer-events: auto;
}

@media (min-width: 1024px) {
  .sr-header__item--has-sub:hover .sr-header__sub,
  .sr-header__item--has-sub.is-active .sr-header__sub,
  .sr-header__item--has-sub.is-open .sr-header__sub {
    display: block;
  }
}

@media (max-width: 1023px) {
  .sr-header__nav {
    display: none;
  }
}

/* --- Sitemap overlay (Figma 6:8500, shared with web) --- */
.seoji-sitemap {
  position: fixed;
  inset: 0;
  z-index: 1200;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.seoji-sitemap.is-open {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
}

.seoji-sitemap__panel {
  position: absolute;
  inset: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f5f5f5;
}

.seoji-sitemap__close {
  position: fixed;
  top: max(1.875rem, var(--vw-30));
  right: max(1.875rem, var(--vw-30));
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.seoji-sitemap__close img {
  display: block;
  width: 32px;
  height: 32px;
}

.seoji-sitemap__inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: max(3.75rem, var(--vw-60));
  width: 100%;
  max-width: var(--sr-shell-max);
  margin: 0 auto;
  padding: max(7.5rem, var(--vw-200)) max(1.25rem, var(--vw-30));
}

.seoji-sitemap__brand {
  flex: 0 0 max(10rem, var(--vw-200));
}

.seoji-sitemap__tagline {
  display: block;
  width: 100%;
  max-width: 200px;
  height: auto;
}

.seoji-sitemap__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: max(3.75rem, var(--vw-60));
  flex: 1 1 auto;
  min-width: 0;
}

.seoji-sitemap__col {
  display: flex;
  flex-direction: column;
  gap: max(1.875rem, var(--vw-30));
  min-width: 0;
}

.seoji-sitemap__col-title {
  color: var(--sr-sub);
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1.25rem, var(--font-20));
  font-weight: 500;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: #7b7974;
  text-underline-offset: 0.2em;
  transition: color 0.2s ease;
}

.seoji-sitemap__col-title:hover,
.seoji-sitemap__col-title:focus-visible {
  color: var(--sr-brand);
}

.seoji-sitemap__links {
  display: flex;
  flex-direction: column;
  gap: max(1.25rem, var(--vw-20));
  margin: 0;
  padding: 0;
  list-style: none;
}

.seoji-sitemap__links a {
  color: var(--sr-muted);
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1.125rem, var(--font-18));
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.seoji-sitemap__links a:hover,
.seoji-sitemap__links a:focus-visible {
  color: var(--sr-brand);
}

html.is-sitemap-open,
html.is-sitemap-open body {
  overflow: hidden;
}

@media (max-width: 1199px) {
  .seoji-sitemap__inner {
    flex-direction: column;
    align-items: flex-start;
    padding-top: max(5rem, var(--vw-140));
    padding-bottom: max(3.75rem, var(--vw-60));
  }

  .seoji-sitemap__brand {
    flex-basis: auto;
  }

  .seoji-sitemap__nav {
    justify-content: flex-start;
    gap: 2.5rem 2rem;
  }

  .seoji-sitemap__links a {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  .seoji-sitemap__inner {
    padding-top: 5rem;
    gap: 2rem;
  }

  .seoji-sitemap__nav {
    flex-direction: column;
    gap: 2rem;
  }
}

/* --- Main hero banner (Figma 5:7434 / Title 5:7433) --- */
.sr-hero-banner {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: max(32rem, min(51.5625rem, calc(825 * 100vw / 1600)));
  background: #2a2422;
  color: #fff;
}

.sr-hero-banner__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.sr-hero-banner__img {
  position: absolute;
  width: 107.56%;
  height: 117.44%;
  left: -7.57%;
  top: -12.85%;
  max-width: none;
  object-fit: cover;
  object-position: center bottom;
}

.sr-hero-banner__content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: var(--sr-content-max);
  height: 100%;
  margin: 0 auto;
  padding: max(5.625rem, var(--vw-90)) max(1.25rem, var(--vw-30));
  box-sizing: border-box;
}

.sr-hero-banner__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(2.5rem, var(--vw-60));
  width: 100%;
}

.sr-hero-banner__lead-row {
  display: flex;
  align-items: center;
  gap: max(3.75rem, var(--vw-100));
  min-width: 0;
}

.sr-hero-banner__lead {
  margin: 0;
  flex-shrink: 0;
  color: #fff;
  font-family: 'Noto Serif KR', serif;
  font-size: clamp(1.75rem, var(--font-36), 2.25rem);
  font-weight: 400;
  line-height: normal;
  white-space: nowrap;
}

.sr-hero-banner__line {
  display: block;
  width: min(100%, max(12rem, calc(357 * 100vw / 1600)));
  height: 1px;
  flex: 1 1 auto;
  object-fit: cover;
}

.sr-hero-banner__headline {
  flex-shrink: 0;
  text-align: left;
}

.sr-hero-banner__headline-top,
.sr-hero-banner__headline-main {
  margin: 0;
  color: #fff;
  font-family: 'Noto Serif KR', serif;
  font-size: clamp(2rem, var(--font-48), 3rem);
  line-height: 1.08;
  white-space: nowrap;
}

.sr-hero-banner__headline-top {
  font-weight: 400;
}

.sr-hero-banner__headline-main {
  font-weight: 700;
}

@media (max-width: 1023px) {
  .sr-hero-banner__title {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }

  .sr-hero-banner__lead-row {
    width: 100%;
    gap: 1.5rem;
  }

  .sr-hero-banner__headline-top,
  .sr-hero-banner__headline-main {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  .sr-hero-banner {
    height: max(24rem, 70vw);
    max-height: none;
  }

  .sr-hero-banner__content {
    align-items: center;
    padding-top: max(5rem, var(--vw-90));
    padding-bottom: max(2.5rem, var(--vw-60));
  }

  .sr-hero-banner__line {
    display: none;
  }
}

/* --- Mass schedule bar (Figma 6:10451) --- */
.sr-mass-bar {
  background: #f5f5f5;
  padding: max(1.25rem, calc(22.5 * 100vw / 1600)) 0;
}

.sr-mass-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(1.25rem, var(--vw-30));
}

.sr-mass-bar__schedule {
  display: flex;
  align-items: center;
  gap: max(1rem, var(--vw-20));
  min-width: 0;
}

.sr-mass-bar__badge {
  flex-shrink: 0;
  margin: 0;
  padding: max(0.75rem, calc(12 * 100vw / 1600)) max(0.875rem, var(--vw-16));
  border-radius: 100px;
  background: var(--sr-brand);
  color: #fff;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1rem, var(--font-16));
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.sr-mass-bar__list {
  display: flex;
  align-items: center;
  gap: max(1rem, var(--vw-20));
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.sr-mass-bar__item {
  display: inline-flex;
  align-items: center;
  gap: max(0.5rem, var(--vw-10));
  white-space: nowrap;
}

.sr-mass-bar__day {
  color: var(--sr-muted);
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(0.875rem, var(--font-14));
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}

.sr-mass-bar__day--group {
  display: inline-flex;
  align-items: center;
  gap: max(0.25rem, calc(5 * 100vw / 1600));
}

.sr-mass-bar__day--sat {
  color: #1b4377;
}

.sr-mass-bar__day--high {
  color: var(--sr-brand);
}

.sr-mass-bar__time {
  color: #121517;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1rem, var(--font-16));
  font-weight: 500;
  line-height: 1;
}

.sr-mass-bar__time--sub {
  color: var(--sr-sub);
}

.sr-mass-bar__divider {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.sr-mass-bar__divider img {
  display: block;
  width: 1px;
  height: 20px;
}

.sr-mass-bar__contact {
  display: inline-flex;
  align-items: center;
  gap: max(0.375rem, calc(6 * 100vw / 1600));
  flex-shrink: 0;
}

.sr-mass-bar__contact-icon {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.sr-mass-bar__contact-text {
  color: #121517;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1rem, var(--font-16));
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 1199px) {
  .sr-mass-bar__inner {
    flex-wrap: wrap;
    justify-content: center;
  }

  .sr-mass-bar__schedule {
    flex-wrap: wrap;
    justify-content: center;
  }

  .sr-mass-bar__list {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .sr-mass-bar {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .sr-mass-bar__schedule {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .sr-mass-bar__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }

  .sr-mass-bar__divider {
    display: none;
  }

  .sr-mass-bar__contact {
    width: 100%;
    justify-content: center;
  }
}

/* --- Course board (Figma 2015:3577) --- */
.sr-course-board {
  padding: max(3.125rem, var(--vw-100)) 0 0;
  background: #fff;
}

.sr-course-board__inner {
  display: flex;
  flex-direction: column;
  gap: max(3.125rem, var(--vw-100));
}

.sr-course-board__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(1.25rem, var(--vw-30));
  width: 100%;
}

.sr-course-board__title {
  margin: 0;
  flex-shrink: 0;
  color: #121517;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: clamp(1.75rem, var(--font-36), 2.25rem);
  font-weight: 600;
  line-height: 1.44;
  white-space: nowrap;
}

.sr-course-board__line {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-width: max(12rem, calc(440 * 100vw / 1600));
  line-height: 0;
}

.sr-course-board__line img {
  display: block;
  width: 100%;
  height: 1px;
  object-fit: cover;
}

.sr-course-board__lead {
  margin: 0;
  flex-shrink: 0;
  color: #121517;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1.125rem, var(--font-20));
  font-weight: 400;
  line-height: 1.6;
  white-space: nowrap;
}

.sr-course-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: max(1.25rem, var(--vw-20));
  margin: 0;
  padding: 0;
  list-style: none;
}

.sr-course-card {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: max(8.5rem, calc(169 * 100vw / 1600));
  border-radius: max(0.625rem, calc(12 * 100vw / 1600));
  color: #fff;
  text-decoration: none;
}

.sr-course-card__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  overflow: hidden;
}

.sr-course-card__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}

.sr-course-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: max(0.5rem, var(--vw-10));
  padding: max(1rem, var(--vw-20));
  box-sizing: border-box;
  background: rgba(55, 48, 46, var(--sr-course-overlay, 0.5));
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.sr-course-card:hover .sr-course-card__overlay,
.sr-course-card:focus-visible .sr-course-card__overlay {
  background: rgba(55, 48, 46, 0.65);
  box-shadow: inset 0 0 0 3px #a84bb5;
}

.sr-course-card__label {
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: clamp(1.25rem, var(--font-28), 1.75rem);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.sr-course-card__meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: max(0.25rem, calc(4 * 100vw / 1600));
  font-size: max(1rem, var(--font-16));
  line-height: 1.2;
  text-align: center;
}

.sr-course-card__name {
  font-weight: 700;
}

.sr-course-card__distance {
  display: inline-flex;
  align-items: center;
  gap: max(0.5rem, var(--vw-8));
}

.sr-course-card__distance-label {
  font-weight: 700;
}

.sr-course-card__distance-value {
  font-weight: 400;
}

.sr-course-card--all {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: max(0.5rem, var(--vw-10));
  background: var(--sr-brand);
}

.sr-course-card--all:hover,
.sr-course-card--all:focus-visible {
  background: #6f302c;
}

.sr-course-card__all-label {
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1.25rem, var(--font-24));
  font-weight: 700;
  line-height: 1.2;
}

.sr-course-card__all-symbol {
  display: block;
  width: max(1.75rem, calc(34 * 100vw / 1600));
  height: auto;
}

/* --- Pilgrimage guide (Figma 2015:3576) --- */
.sr-pilgrimage-guide {
  padding: max(5rem, calc(140 * 100vw / 1600)) 0 max(7.5rem, var(--vw-200));
  background: #fff;
}

.sr-pilgrimage-guide__inner {
  display: flex;
  flex-direction: column;
  gap: max(3.75rem, var(--vw-60));
}

.sr-pilgrimage-guide__title {
  margin: 0;
  color: #121517;
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: clamp(1.75rem, var(--font-36), 2.25rem);
  font-weight: 500;
  line-height: 1.2;
}

.sr-pilgrimage-guide__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(3.75rem, var(--vw-60));
}

.sr-pilgrimage-card {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 630 / 360;
  border-radius: 0;
  color: inherit;
  text-decoration: none;
  isolation: isolate;
}

.sr-pilgrimage-card__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background-color: #fff;
  pointer-events: none;
}

.sr-pilgrimage-card__media::before {
  content: '';
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
}

/* 배경 1260×720 (@2x, 카드 630×360) — Figma 원본 축소 export */
.sr-pilgrimage-card--guide .sr-pilgrimage-card__media::before {
  background-image: url('/assets/images/sunraegil/pilgrimage/guide-tiles.jpg');
  background-size: cover;
  background-position: right bottom;
}

.sr-pilgrimage-card--prayer .sr-pilgrimage-card__media::before {
  background-image: url('/assets/images/sunraegil/pilgrimage/prayer-tiles.jpg');
  background-size: cover;
  background-position: 94% bottom;
}

.sr-pilgrimage-card__content {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: max(1.875rem, var(--vw-30));
  padding: max(3.75rem, var(--vw-60)) max(1.875rem, var(--vw-30));
  box-sizing: border-box;
  background: transparent;
}

.sr-pilgrimage-card__heading {
  display: inline-flex;
  align-items: center;
  gap: max(0.5rem, var(--vw-10));
}

.sr-pilgrimage-card__name {
  display: block;
  width: auto;
  height: clamp(1.5rem, var(--font-30), 2.25rem);
  max-width: 100%;
}

.sr-pilgrimage-card__arrow {
  display: block;
  width: 24px;
  height: 24px;
  transform: rotate(180deg);
}

.sr-pilgrimage-card__desc {
  color: var(--sr-sub);
  font-family: Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(1.125rem, var(--font-20));
  font-weight: 400;
  line-height: 1.6;
}

@media (max-width: 1199px) {
  .sr-course-board__head {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .sr-course-board__line {
    display: none;
  }

  .sr-course-board__lead {
    white-space: normal;
  }

  .sr-course-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .sr-course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sr-pilgrimage-guide__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .sr-pilgrimage-card__content {
    padding: 2.5rem 1.25rem;
  }
}

/* --- Page blocks --- */
.sr-section__lead {
  margin: -0.75rem 0 1.5rem;
  color: var(--sr-muted);
  font-size: max(1rem, var(--font-16));
  line-height: 1.6;
}

.sr-btn {
  display: inline-block;
  padding: 0.65rem 1.25rem;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
}

.sr-btn--primary {
  background: var(--sr-brand);
  color: #fff;
}

.sr-btn--outline {
  border: 1px solid var(--sr-brand);
  color: var(--sr-brand);
}

.sr-section {
  padding: 3rem 0;
}

.sr-section__title {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

.sr-quick-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.sr-quick-card {
  display: block;
  padding: 1.25rem;
  border: 1px solid var(--sr-line);
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  color: inherit;
}

.sr-page-title {
  font-size: 1.75rem;
  margin-bottom: 1rem;
}

.sr-lead {
  color: var(--sr-muted);
  margin-bottom: 1.5rem;
}

.sr-course-list {
  columns: 2;
  gap: 2rem;
}

/* --- Footer (Figma 2007:3280) --- */
.sr-footer {
  background: var(--sr-dark);
  color: #e1dacf;
}

.sr-footer a {
  color: inherit;
  text-decoration: none;
}

.sr-footer__main {
  padding: max(1.875rem, var(--vw-30)) max(1.75rem, var(--vw-140));
}

.sr-footer__stack {
  display: flex;
  flex-direction: column;
  gap: max(3.75rem, var(--vw-60));
  width: 100%;
  max-width: var(--sr-content-max);
  margin-left: auto;
  margin-right: auto;
}

.sr-footer__upper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(2.5rem, var(--vw-40));
}

.sr-footer__brand-block {
  display: flex;
  align-items: flex-start;
  gap: max(3.75rem, var(--vw-100));
  min-width: 0;
}

.sr-footer__logo-link {
  display: block;
  flex-shrink: 0;
  line-height: 0;
}

.sr-footer__logo {
  display: block;
  width: max(10rem, calc(266 * 100vw / 1600));
  max-width: 16.625rem;
  height: auto;
}

.sr-footer__meta {
  display: flex;
  flex-direction: column;
  gap: max(0.5rem, var(--vw-10));
  min-width: 0;
}

.sr-footer__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: max(1rem, var(--vw-20));
  margin: 0;
  color: #e1dacf;
  font-size: max(0.875rem, var(--font-14));
  font-weight: 400;
  line-height: normal;
}

.sr-footer__meta-row a:hover,
.sr-footer__meta-row a:focus-visible {
  color: #fff;
}

.sr-footer__family-wrap {
  position: relative;
  flex-shrink: 0;
}

.sr-footer__family {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: max(10rem, var(--vw-200));
  padding: max(0.5rem, var(--vw-10)) max(1rem, var(--vw-20));
  border: 1px solid #fff;
  border-radius: 100px;
  background: transparent;
  color: #fff;
  font-family: 'Segoe UI', Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(0.875rem, var(--font-14));
  font-weight: 400;
  line-height: normal;
  cursor: pointer;
}

.sr-footer__family:hover,
.sr-footer__family-wrap.is-open .sr-footer__family {
  border-color: #fff;
  color: #fff;
}

.sr-footer__family-label {
  white-space: nowrap;
}

.sr-footer__family-icon {
  display: block;
  width: 1.25rem;
  height: 0.9375rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.sr-footer__family-wrap.is-open .sr-footer__family-icon {
  transform: rotate(180deg);
}

.sr-footer__family-menu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.5rem);
  z-index: 5;
  min-width: 100%;
  margin: 0;
  padding: 0.5rem 0;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  list-style: none;
  background: #2a2524;
}

.sr-footer__family-menu a {
  display: block;
  padding: 0.5rem 1rem;
  color: #e1dacf;
  font-size: max(0.875rem, var(--font-14));
  white-space: nowrap;
}

.sr-footer__family-menu a:hover,
.sr-footer__family-menu a:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

.sr-footer__lower {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(1.5rem, var(--vw-30));
}

.sr-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: max(0.5rem, var(--vw-10));
}

.sr-footer__legal a {
  color: #e1dacf;
  font-size: max(0.75rem, var(--font-12));
  font-weight: 400;
  line-height: normal;
  white-space: nowrap;
}

.sr-footer__legal a.is-strong {
  color: #fff;
  font-weight: 700;
}

.sr-footer__legal a:hover,
.sr-footer__legal a:focus-visible {
  color: #fff;
}

.sr-footer__legal-divider {
  display: block;
  width: 1px;
  height: 12px;
  flex-shrink: 0;
}

.sr-footer__copy {
  margin: 0;
  color: #e1dacf;
  font-family: 'Segoe UI', Pretendard, 'Spoqa Han Sans Neo', sans-serif;
  font-size: max(0.75rem, var(--font-12));
  font-weight: 400;
  line-height: 1.67;
  white-space: nowrap;
}

@media (max-width: 1023px) {
  .sr-footer__upper {
    flex-direction: column;
    align-items: stretch;
  }

  .sr-footer__family-wrap {
    align-self: flex-start;
  }

  .sr-footer__brand-block {
    flex-direction: column;
    gap: max(1.5rem, var(--vw-30));
  }

  .sr-footer__lower {
    flex-direction: column;
    align-items: flex-start;
  }

  .sr-footer__copy {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  .sr-footer__main {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .sr-footer__meta-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
}
