/* 청첩장 스타일: 공통 → 인트로 → 본문 → 하단 → 섹션 간격 */
@import url('https://salondeletter.com/css/user/user.css');
:root {
  --font-admin-medium: 15px;
}

html {
  background: #eceae4;
}

body {
  font-family: var(--font-family,GowunDodum-Regular,serif);
  color: var(--common-font-color,#383737);
  background: #eceae4;
  line-height: 1.75;
  word-break: keep-all;
}

#user_wrap {
  width: 100%;
  overflow: hidden;
}

.layout {
  position: relative;
  width: min(100%,480px);
  margin: 0 auto;
  background: var(--background,#fff);
  background-color: #fff;
  box-shadow: 0 0 30px rgba(0,0,0,.08);
}

section {
  position: relative;
  padding: 78px 28px;
  text-align: center;
  background-color: #fff;
}

.section1 {
  min-height: 100vh;
  background: var(--main-section-background,#f5f3ed);
  padding: 0;
}

.inner {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
}

.title h2 {
  font-size: 20px;
  font-weight: 400;
  letter-spacing: .03em;
  margin-bottom: 26px;
}

.textarea {
  font-size: 14px;
  line-height: 2;
}

.utext {
  line-height: 1.9;
}

.section1 img {
  width: 100%;
  height: auto;
  display: block;
}

.section1 .name,.section1 .date,.section1 .place {
  letter-spacing: .08em;
}

.section1 .main_img_box,.section1 .img_box {
  overflow: hidden;
}

.row_couple_name {
  display: flex;
  gap: 14px;
}

.row_couple_name>* {
  flex: 1;
}

.introduce_con,.relation_con,.name_con {
  margin-top: 22px;
}

.name_con .name_list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.name_box .name {
  margin-left: 7px;
  font-size: 18px;
}

.relation_con {
  font-size: 13px;
  color: #666;
}

.introduce_con {
  font-size: 13px;
}

.modal_dimmed {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(0,0,0,.72);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal_dimmed.active {
  display: flex;
}

.modal_dimmed .m_wrap,.modal_dimmed>.wrap {
  width: min(100%,460px);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  border-radius: 8px;
  position: relative;
}

.modal_dimmed .close_btn {
  position: absolute;
  right: 14px;
  top: 12px;
  z-index: 3;
  font-size: 25px;
}

.modal_interview .m_wrap {
  padding: 44px 25px;
}

.interview_list li {
  padding: 18px 0;
  border-bottom: 1px solid #eee;
  text-align: left;
}

.list_title {
  font-weight: 600;
  margin-bottom: 10px;
}

.list_answer {
  font-size: 14px;
  color: #555;
}

.section5 .slide_wrap {
  overflow: hidden;
}

.section5 .swiper-wrapper {
  display: flex;
}

.section5 .swiper-slide {
  flex: 0 0 100%;
}

.section5 .swiper-slide img,.gallery img {
  width: 100%;
  height: auto;
  display: block;
}

.gallery_mixed,.gallery_list {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 7px;
}

.gallery_mixed li,.gallery_list li {
  overflow: hidden;
}

.gallery_mixed img,.gallery_list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery_scroll_hint {
  font-size: 12px;
  color: #888;
  margin-top: 12px;
}

.calendar,.day_al {
  width: 100%;
  margin: 26px auto 0;
}

.day_al {
  display: grid;
  grid-template-columns: repeat(7,1fr);
  gap: 6px;
  font-size: 13px;
}

.day_al>* {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.d_day {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #e4e1d9;
}

.section18 .timeline_wrap {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  text-align: left;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
}

.section18 .timeline_wrap>* {
  min-width: 78%;
  scroll-snap-align: center;
}

.timeline_wrap img {
  width: 100%;
  border-radius: 3px;
}

.timeline_wrap .title,.timeline_wrap h3 {
  margin-top: 12px;
}

.notice_wrap,.notice_list {
  display: flex;
  overflow-x: auto;
  gap: 14px;
  scroll-snap-type: x mandatory;
}

.notice_wrap>*,.notice_list>* {
  min-width: 88%;
  scroll-snap-align: center;
}

.notice_wrap img,.notice_list img {
  border-radius: 4px;
}

.section6 .top_box {
  margin-bottom: 20px;
}

.locate_name {
  font-size: 18px;
}

.locate_hall,.locate_address {
  display: block;
  color: #666;
  font-size: 13px;
}

.map_box {
  width: 100%;
  background: #eee;
}

.navi {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 14px 0;
}

.map_btn {
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 5px;
  padding: 9px 11px;
}

.map_btn .img_box {
  display: none;
}

.transportation {
  text-align: left;
  margin-top: 28px;
}

.trans_box {
  padding: 18px 0;
  border-top: 1px solid #eee;
}

.trans_title {
  font-weight: 600;
  margin-bottom: 6px;
}

.trans_text {
  font-size: 13px;
  color: #555;
}

.btn_box {
  margin-top: 30px;
}

.l_btn,.s_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8d5ce;
  border-radius: 3px;
  background: #fff;
  padding: 11px 18px;
  font-size: 13px;
  cursor: pointer;
}

.l_btn {
  min-width: 180px;
}

.section8,.section9 {
  background: #f8f6f1;
}

.section9 .account {
  margin-top: 28px;
}

.account_wrap {
  margin-bottom: 10px;
  text-align: left;
}

.account_box {
  padding: 16px 18px;
  background: #fff;
  border: 1px solid #e2ded6;
  display: flex;
  justify-content: space-between;
  cursor: pointer;
}

.account_list {
  background: #fff;
  border: 1px solid #e2ded6;
  border-top: 0;
}

.account_list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px;
  border-top: 1px solid #f0ede7;
}

.account_list li:first-child {
  border-top: 0;
}

.acc_num {
  font-size: 14px;
}

.acc_name {
  font-size: 12px;
  color: #777;
}

.right_box {
  display: flex;
  gap: 5px;
}

.right_box .s_btn {
  padding: 7px 9px;
}

.modal_rsvp .m_wrap,.modal_rsvp_term1 .m_wrap {
  padding: 42px 24px;
}

.modal_rsvp input[type=text],.modal_rsvp input[type=tel],.modal_rsvp textarea,.modal_rsvp select {
  width: 100%;
  border: 1px solid #ddd;
  padding: 11px;
  margin: 6px 0;
  border-radius: 3px;
}

.modal_rsvp label {
  font-size: 13px;
}

.modal_rsvp .btn_box {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.quick_btn {
  padding: 35px 20px;
  text-align: center;
  background: #f4f1eb;
}

.quick_btn a {
  margin: 0 6px;
}

#user_wrap .layout .music_btn_box {
  position: fixed !important;
  top: calc(18px + env(safe-area-inset-top, 0px)) !important;
  right: max(12px, calc((100% - 420px) / 2 + 12px)) !important;
  left: auto !important;
  bottom: auto !important;

  width: 38px !important;
  max-width: none !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  z-index: 100;
}

#user_wrap .layout .music_btn_box button {
  position: static !important;
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  border-radius: 50%;
  border: 0;
  background: transparent;
  pointer-events: auto;
}

.loading_wrap {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading_wrap:not(.active) {
  display: none;
}

.loading_page_5 {
  width: min(100%,480px);
}

[aos]:not(.reveal-ready) {
  opacity: 1 !important;
  transform: none !important;
}

.active {
  visibility: visible;
}

@media(max-width:520px) {
  body {
    background: #fff;
  }

  .layout {
    box-shadow: none;
  }

  section {
    padding: 64px 22px;
  }

  .textarea {
    font-size: 13px;
  }

}

html.intro-lock,html.intro-lock body {
  overflow: hidden !important;
}

.loading_wrap {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease, visibility .45s ease;
  pointer-events: all;
}

.loading_wrap.intro-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading_wrap:not(.active):not(.intro-out) {
  display: flex;
}

.loading_page_5,.loading_page_5 .wrap,.loading_page_5 .con,.loading_page_5 .svg_loading5 {
  width: 100%;
  height: 100%;
}

.loading_page_5 {
  max-width: 480px;
  min-height: 100dvh;
}

.loading_page_5 .wrap,.loading_page_5 .con,.loading_page_5 .svg_loading5 {
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading_page_5 svg {
  display: block;
  width: 100%;
  height: 100dvh;
  max-height: 844px;
  overflow: visible;
}

.loading_page_5 .loading_g {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.loading_page_5 .loading_g path {
  display: block !important;
  visibility: visible !important;
  fill: none;
  stroke: var(--loading-ft-color, #516349);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: var(--svg-length, 3219);
  stroke-dashoffset: var(--svg-length, 3219);
  animation: invitation-handwriting calc(var(--loading-draw-speed, 3000) * 1ms) linear .15s 1 forwards;
}

@keyframes invitation-handwriting {
  0%    {
    stroke-dashoffset: var(--svg-length, 3219);
    opacity: .2;
  }

  8%    {
    opacity: 1;
  }

  100%  {
    stroke-dashoffset: 0;
    opacity: 1;
  }

}

body.intro-running .section_wrap,body.intro-running .music_btn_box,body.intro-running .quick_btn {
  opacity: 0;
  transform: translateY(8px);
}

body.intro-finished .section_wrap,body.intro-finished .music_btn_box,body.intro-finished .quick_btn {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .loading_page_5 .loading_g path {
    animation-duration: .01ms;
    animation-delay: 0ms;
  }

  .loading_wrap,.section_wrap,.music_btn_box,.quick_btn {
    transition-duration: .01ms;
  }

}

.loading_wrap {
  display: none!important;
}

html.intro-lock,html.intro-lock body {
  overflow: hidden!important;
  overscroll-behavior: none!important;
  touch-action: none!important;
}

.photo-print-intro  {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: none;
  overscroll-behavior: contain;
  transition: transform .85s cubic-bezier(.65,0,.25,1),opacity .7s ease;
}

.photo-print-intro.swiped-away {
  transform: translateY(-104%);
  opacity: .98;
}

.photo-printer-scene.booth-reference  {
  position: relative;
  width: min(100vw,480px);
  height: 100dvh;
  min-height: 620px;
  overflow: hidden;
  color: #f8eee5;
  box-shadow: inset 0 0 110px rgba(22,1,4,.46),0 0 70px rgba(17,0,2,.20);
}

.booth-reference:before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(circle at 50% 34%,rgba(255,224,190,.06),transparent 28%),
    linear-gradient(90deg,rgba(0,0,0,.16),transparent 18%,transparent 82%,rgba(0,0,0,.16));
  mix-blend-mode: soft-light;
}

.booth-reference:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  opacity: .10;
  background-image: repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);
}

.booth-headline {
  position: absolute;
  z-index: 10;
  top: 9.5%;
  left: 0;
  right: 0;
  text-align: center;
  font-family: 'Old Standard TT',serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
  color: rgba(248,232,218,.88);
  text-shadow: 0 1px 4px rgba(0,0,0,.45);
}

.booth-names {
  position: absolute;
  z-index: 10;
  top: 13.3%;
  left: 4%;
  right: 4%;
  text-align: center;
  font-family: 'Great Vibes',cursive;
  font-size: clamp(42px,12vw,62px);
  line-height: 1;
  color: #f7e8db;
  text-shadow: 0 2px 7px rgba(0,0,0,.45);
}

.booth-rule {
  position: absolute;
  z-index: 10;
  top: 21.8%;
  left: 35%;
  right: 35%;
  height: 1px;
  background: linear-gradient(90deg,transparent,#cda982,transparent);
  opacity: .8;
}

.photo-print-intro .printed-photo-wrap {
  overflow: hidden !important;
}

.photo-print-intro .printed-photo {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 56% !important;
  max-width: 160px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
  padding: 7px 7px 10px !important;
  background-color: #f1eee7 !important;
  background-image: url('../assets/photoBack.png') !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  border: 1px solid rgba(90,73,58,.22);
  border-radius: 1px;
  box-shadow: 0 8px 18px rgba(0,0,0,.36);
  transform: translate3d(-50%, -165%, 0);
  animation: photo-fall-through-booth 2.45s cubic-bezier(.22,.63,.18,1) .45s 1 forwards !important;
  will-change: transform, filter;
}

.photo-print-intro .printed-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .06;
  background: repeating-linear-gradient(0deg,rgba(73,54,39,.05) 0 1px,transparent 1px 3px);
}

.photo-print-intro .printed-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #d7d0c7;
  filter: saturate(.88) contrast(.96) sepia(.06);
}

.photo-print-intro .photo-caption {
  margin-top: 7px !important;
  padding: 0 !important;
  text-align: center;
  color: #5b5050;
  font-family: 'Old Standard TT',serif;
  font-size: 8px !important;
  line-height: 1.25 !important;
  letter-spacing: .18em !important;
}

@keyframes photo-fall-through-booth {
  0%  {
    transform: translate3d(-50%, -165%, 0) rotate(0deg);
    filter: brightness(.75);
  }

  18%  {
    transform: translate3d(-50%, -135%, 0) rotate(0deg);
    filter: brightness(.88);
  }

  42%  {
    transform: translate3d(-50%, -95%, 0) rotate(0deg);
    filter: brightness(1);
  }

  68%  {
    transform: translate3d(-50%, -58%, 0) rotate(.15deg);
  }

  82%  {
    transform: translate3d(-50%, -47%, 0) rotate(-.18deg);
  }

  91%  {
    transform: translate3d(-50%, -52%, 0) rotate(.10deg);
  }

  100%  {
    transform: translate3d(-50%, -50%, 0) rotate(0deg);
    filter: brightness(1);
  }

}

.booth-invited {
  position: absolute;
  z-index: 10;
  left: 0;
  right: 0;
  bottom: 11.8%;
  text-align: center;
  font-family: 'Great Vibes',cursive;
  font-size: clamp(38px,10.5vw,54px);
  line-height: 1;
  color: #f7e7da;
  text-shadow: 0 2px 7px rgba(0,0,0,.50);
}

.booth-open-text {
  position: absolute;
  z-index: 10;
  left: 0;
  right: 0;
  bottom: 7.9%;
  text-align: center;
  font-family: 'Old Standard TT',serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  color: rgba(244,228,214,.86);
}

.intro-swipe-guide {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  bottom: max(14px,env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  color: rgba(242,226,212,.72);
  font-size: 9px;
  letter-spacing: .08em;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .4s ease,transform .4s ease;
}

.intro-swipe-guide.show {
  opacity: 1;
  transform: none;
}

.swipe-arrow {
  width: 10px;
  height: 10px;
  border-left: 1px solid currentColor;
  border-top: 1px solid currentColor;
  transform: rotate(45deg);
  animation: swipe-guide 1.2s ease-in-out infinite;
}

@keyframes swipe-guide {
  0%,100% {
    transform: translateY(5px) rotate(45deg);
    opacity: .3;
  }

  50% {
    transform: translateY(-2px) rotate(45deg);
    opacity: 1;
  }

}

.section_wrap,.music_btn_box,.quick_btn {
  transition: opacity .85s ease,transform .9s cubic-bezier(.22,.65,.32,1);
}

body.photo-intro-running .section_wrap,body.photo-intro-running .music_btn_box,body.photo-intro-running .quick_btn {
  opacity: 0;
  transform: translateY(28px);
}

body.photo-intro-finished .section_wrap,body.photo-intro-finished .music_btn_box,body.photo-intro-finished .quick_btn {
  opacity: 1;
  transform: none;
}

@media(max-height:700px) {
  .booth-headline {
    top: 7.5%;
  }

  .booth-names {
    top: 11.4%;
    font-size: 40px;
  }

  .booth-rule {
    top: 19%;
  }

  .booth-invited {
    bottom: 11%;
  }

  .booth-open-text {
    bottom: 7.5%;
  }

}

@media(max-width:380px) {
  .booth-rule {
    left: 32%;
    right: 32%;
  }

}

@media(prefers-reduced-motion:reduce) {
  .photo-print-intro .printed-photo {
    animation-duration: .01ms !important;
    animation-delay: 0ms !important;
  }

  .photo-print-intro,.section_wrap,.music_btn_box,.quick_btn {
    transition-duration: .01ms;
  }

  .swipe-arrow {
    animation: none;
  }

}

#user_wrap .section_wrap {
  position: relative;
  background-image: url('../assets/paper-texture-continuous.png');
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

#user_wrap .section_wrap > section:not(.section1) {
  background: transparent !important;
  background-color: transparent !important;
  margin: 0 !important;
  box-shadow: none !important;
  border: 0 !important;
}

#user_wrap .section2,#user_wrap .section12,#user_wrap .section3,#user_wrap .section4,#user_wrap .section5,#user_wrap .section6,#user_wrap .section9,#user_wrap .section10,#user_wrap .section13,#user_wrap .section11 {
  background: transparent !important;
  background-color: transparent !important;
}

#user_wrap .section_wrap > section + section {
  border-top: 0 !important;
}

#user_wrap .section2 + .section12,#user_wrap .section12 + .section3,#user_wrap .section3 + .section4,#user_wrap .section4 + .section5,#user_wrap .section5 + .section6,#user_wrap .section6 + .section9,#user_wrap .section9 + .section10,#user_wrap .section10 + .section13,#user_wrap .section13 + .section11 {
  margin-top: 0 !important;
}

#user_wrap .quick_btn,#user_wrap .section1 + section,#user_wrap .section_wrap .inner,#user_wrap .textarea {
  background-color: transparent;
}

#user_wrap .account_box,#user_wrap .account_list,#user_wrap .guestbook_box,#user_wrap .map_btn,#user_wrap .l_btn,#user_wrap .s_btn,#user_wrap .modal_dimmed .m_wrap,#user_wrap .modal_dimmed > .wrap {
  background-color: #fff;
}

.photo-printer-scene.booth-reference  {
  box-shadow: inset 0 0 90px rgba(34,0,6,.20), 0 0 50px rgba(35,0,6,.10) !important;
}

.booth-reference:before {
  background: radial-gradient(circle at 50% 10%, rgba(255,255,255,.06), transparent 18%),
    linear-gradient(90deg, rgba(0,0,0,.10), transparent 18%, transparent 82%, rgba(0,0,0,.10)) !important;
  mix-blend-mode: normal !important;
}

.booth-reference:after {
  opacity: 0 !important;
}

.booth-headline {
  top: 8.8% !important;
  font-size: 10px !important;
  letter-spacing: .34em !important;
  color: rgba(248,234,220,.92) !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.26) !important;
}

.booth-names {
  top: 16% !important;
  font-size: clamp(46px, 12vw, 70px) !important;
  color: #f3e3d7 !important;
  text-shadow: 0 2px 6px rgba(0,0,0,.22) !important;
}

.booth-rule {
  display: none !important;
}

.photo-print-intro .printed-photo {
  width: 44% !important;
  max-width: 132px !important;
  top: 50% !important;
  padding: 5px 5px 9px !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: 0 5px 12px rgba(0,0,0,.26) !important;
  background-color: #f2ede5 !important;
  background-image: url('../assets/photoBack.png') !important;
  background-size: cover !important;
}

.photo-print-intro .printed-photo img {
  filter: saturate(.86) contrast(.95) sepia(.07) !important;
}

.photo-print-intro .photo-caption {
  color: #6e6560 !important;
  font-size: 8px !important;
}

.booth-invited,.booth-open-text {
  color: #f3e3d7 !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.22) !important;
}

.booth-invited {
  bottom: 12.2% !important;
}

.booth-open-text {
  bottom: 8.3% !important;
}

.photo-printer-scene.booth-reference  {
  box-shadow: inset 0 0 90px rgba(35,8,12,.22),
    0 0 50px rgba(31,4,8,.10) !important;
}

.booth-reference:before {
  background: radial-gradient(circle at 50% 12%,rgba(255,244,235,.035),transparent 22%),
    linear-gradient(90deg,rgba(0,0,0,.08),transparent 18%,transparent 82%,rgba(0,0,0,.08)) !important;
}

.photo-print-intro .printed-photo {
  width: 60% !important;
  max-width: 154px !important;
  padding: 4px 4px 7px !important;
  background-color: #f0ebe3 !important;
  background-image: url('../assets/photoBack.png') !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  box-shadow: 0 5px 12px rgba(0,0,0,.24) !important;
}

.photo-print-intro .printed-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 !important;
}

.photo-print-intro .photo-caption {
  margin-top: 4px !important;
  font-size: 7px !important;
  line-height: 1.15 !important;
  letter-spacing: .15em !important;
}

/* Slot preserved from wedding-sample3-private-replaced. */
.booth-machine {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 29%;
  width: 49%;
  height: 48%;
  transform: translateX(-50%);
  border-radius: 2px;
  background: linear-gradient(90deg,#2c1114 0%,#7d4247 5%,#301215 10%,#16080a 50%,#391517 90%,#9c5b60 96%,#2b0e12 100%);
  padding: 10px;
  box-shadow: 0 14px 26px rgba(0,0,0,.42),
    0 0 0 1px rgba(255,220,220,.3),
    inset 0 0 12px rgba(255,255,255,.08);
}

.booth-machine-glow {
  position: absolute;
  inset: -2px;
  pointer-events: none;
  border-radius: 3px;
  box-shadow: 0 0 20px rgba(255,186,183,.14),inset 0 0 9px rgba(255,226,220,.12);
}

.booth-chute-frame {
  width: 100%;
  height: 100%;
  padding: 8px;
  background: linear-gradient(90deg,#5e292e 0%,#b98082 4%,#431b1e 9%,#0d0809 49%,#3d1a1d 91%,#c08484 96%,#5c252a 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2),inset 0 0 20px rgba(0,0,0,.72);
}

.booth-chute {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(90deg,#130b0c 0%,#4c3031 8%,#101011 19%,#0a0a0b 50%,#151011 79%,#60383a 93%,#171011 100%);
  box-shadow: inset 0 0 24px rgba(0,0,0,.96),
    inset 0 0 0 2px rgba(255,225,220,.16),
    0 0 0 1px rgba(12,3,5,.9);
}

.booth-chute:before,.booth-chute:after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  width: 10%;
  pointer-events: none;
}

.booth-chute:before {
  left: 0;
  background: linear-gradient(90deg,rgba(245,206,201,.45),rgba(245,206,201,0));
}

.booth-chute:after {
  right: 0;
  background: linear-gradient(270deg,rgba(245,206,201,.34),rgba(245,206,201,0));
}

.booth-chute-shine {
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(110deg,transparent 0 25%,rgba(255,255,255,.10) 36%,transparent 47% 100%);
}

@media(max-height:700px) {
  .booth-machine {
    top: 24%;
    height: 48%;
    width: 46%;
  }

}

@media(max-width:380px) {
  .booth-machine {
    width: 54%;
  }

}

/* Reference metal tray: photographic recessed steel, dark polished rim. */
.photo-print-intro .booth-machine  {
  padding: 0;
  border: 0;
  border-radius: 2px;
  background: #25211d url('../assets/metal-photo-chute.png') center center / 138% 102% no-repeat;
  box-shadow: 0 9px 16px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.55);
}

.photo-print-intro .booth-machine-glow  {
  display: none;
}

.photo-print-intro .booth-chute-frame  {
  position: absolute;
  left: 14%;
  right: 14%;
  top: 6.7%;
  bottom: 6.5%;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.photo-print-intro .booth-chute  {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.photo-print-intro .booth-chute:before,
.photo-print-intro .booth-chute:after,
.photo-print-intro .booth-chute-shine  {
  display: none;
}

/* Illustrated location section. */
#user_wrap .section6.venue-location  {
  position: relative;
  isolation: isolate;
  padding: 94px 22px 90px;
  margin: 24px 0;
  color: #f6e9d3;
  background-color: #60242a!important;
  background-image: linear-gradient(145deg,rgba(113,48,53,.72),rgba(57,15,22,.68)),url('../assets/paper-texture-continuous.png')!important;
  background-size: cover!important;
  text-align: center;
  clip-path: polygon(0 1.6%,4% 1%,9% 1.7%,14% .8%,19% 1.5%,25% .5%,32% 1.4%,39% .7%,46% 1.5%,53% .6%,60% 1.2%,68% .4%,75% 1.4%,83% .5%,90% 1.3%,96% .6%,100% 1.1%,100% 98.8%,95% 99.4%,89% 98.8%,82% 99.6%,75% 98.7%,68% 99.3%,60% 98.4%,53% 99.4%,46% 98.9%,39% 99.6%,31% 98.6%,24% 99.4%,17% 98.8%,10% 99.6%,4% 98.9%,0 99.4%);
}

.venue-location .venue-inner {
  max-width: 420px;
  margin: auto;
}

.venue-location .venue-heading h2 {
  margin: 0;
  font-family: 'GowunDodum-Regular',serif;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: .12em;
  color: inherit;
}

.venue-location .venue-heading p {
  margin: 3px 0 0;
  font-family: 'Old Standard TT',serif;
  font-size: 18px;
  color: inherit;
}

.venue-location .venue-illustration {
  display: block;
  width: 100%;
  height: auto;
  margin: 38px auto 32px;
  mix-blend-mode: screen;
}

.venue-location .venue-address h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 400;
  color: inherit;
  line-height: 1.7;
}

.venue-location .venue-address p {
  margin: 8px 0 0;
  font-size: 12px;
  color: inherit;
  line-height: 1.8;
}

.venue-location .venue-links {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  margin: 36px 0 0;
}

.venue-location .venue-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 44px;
  padding: 5px 3px;
  box-sizing: border-box;
  border: 1px solid rgba(246,233,211,.7);
  border-radius: 5px;
  color: #f6e9d3;
  background: transparent;
  font-size: 11px;
  text-decoration: none;
  white-space: nowrap;
}

.venue-location .venue-links a span {
  font: 700 17px sans-serif;
}

.venue-location .venue-links a:hover {
  background: rgba(255,255,255,.08);
}

.venue-location .venue-links a:focus-visible {
  outline: 2px solid #f6e9d3;
  outline-offset: 4px;
}

.venue-location .venue-app-note {
  margin: 14px 0 0;
  font-size: 10px;
  color: #e0c8bb;
  line-height: 1.7;
}

#user_wrap .section1 .wax {
  display: block!important;
  position: absolute;
  left: 50%;
  bottom: 40px;
  transform: translateX(-50%);
  width: 80px;
  height: 80px;
  background: var(--wax-stamp) center/contain no-repeat!important;
  z-index: 10;
}

@media(max-width:360px) {
  #user_wrap .section6.venue-location {
    padding-left: 16px;
    padding-right: 16px;
  }

  .venue-location .venue-links {
    gap: 5px;
  }

  .venue-location .venue-links a {
    font-size: 10px;
  }

}

/* Generated burgundy paper, including its original torn top/bottom edges. */
#user_wrap .section6.venue-location  {
  background-color: #f5f0e7!important;
  background-image: url('../assets/location-burgundy-paper.png')!important;
  background-position: center!important;
  background-size: 100% 100%!important;
  background-repeat: no-repeat!important;
  clip-path: none;
}

/* Override the shared transparent-section reset with the location ID. */
#user_wrap #location-section > section#venue-location.venue-location  {
  background: #642529 url('../assets/location-burgundy-paper.png') center / 100% 100% no-repeat !important;
  clip-path: none;
  isolation: isolate;
}

/* Preserve PNG alpha outside the burgundy torn-paper edges. */
#user_wrap #location-section > section#venue-location.venue-location  {
  background: transparent url('../assets/location-burgundy-transparent.png') center / 100% 100% no-repeat !important;
}

/* App icons aligned with the map button labels. */
.venue-location .venue-links a  {
  gap: 7px;
}

.venue-location .venue-links .venue-map-icon  {
  display: block;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  object-fit: cover;
  border-radius: 5px;
  margin: 0;
}

.venue-location .venue-links .venue-tmap-icon  {
  display: block;
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  overflow: hidden;
  border-radius: 5px;
}

.venue-location .venue-links .venue-tmap-icon img  {
  display: block;
  position: absolute;
  width: 156%;
  max-width: none;
  height: auto;
  left: -35%;
  top: -16%;
  margin: 0;
}

/* Ivory standalone map marks, matching the reference button treatment. */
.venue-location .venue-links .venue-map-icon  {
  width: 20px;
  height: 22px;
  flex: 0 0 20px;
  object-fit: contain;
  border-radius: 0;
  background: transparent;
  padding: 0;
  filter: none;
}

.venue-location .venue-links .venue-tmap-mark  {
  width: 22px;
  flex-basis: 22px;
}

.venue-location .venue-links a  {
  gap: 8px;
  color: #f6e9d3;
  background: transparent;
}

/* One shared couple photo, with its full original composition. */
#user_wrap .section3 .couple-introduce-photo  {
  display: block;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 3px;
}

#user_wrap .section3 .couple-introduce-photo img  {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  margin: 0;
  border-radius: 0;
}

/* Parent introduction above each larger, centered couple name. */
#user_wrap .section3 .family-intro  {
  display: flex;
  gap: 12px;
  justify-content: center;
  text-align: center;
}

#user_wrap .section3 .family-intro .relation_list  {
  flex: 1;
  min-width: 0;
  text-align: center;
}

#user_wrap .section3 .family-parents  {
  display: block;
  font-size: 12px;
  line-height: 1.8;
  word-break: keep-all;
}

#user_wrap .section3 .family-couple-name  {
  display: block;
  margin-top: 7px;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .06em;
  text-align: center;
}

@media(max-width:360px) {
  #user_wrap .section3 .family-intro {
    gap: 8px;
  }

  #user_wrap .section3 .family-parents {
    font-size: 11px;
  }

}

/* Explicit line breaks, protected from imported family-introduction styles. */
#user_wrap .section3 .family-intro .relation_list  {
  display: block!important;
  text-align: center!important;
}

#user_wrap .section3 .family-intro .family-parents  {
  display: inline!important;
  font-size: 12px!important;
  line-height: 1.8!important;
}

#user_wrap .section3 .family-intro br.family-name-break  {
  display: block!important;
}

#user_wrap .section3 .family-intro .family-couple-name  {
  display: inline-block!important;
  float: none!important;
  margin: 7px 0 0!important;
  font-size: 21px!important;
  line-height: 1.6!important;
  text-align: center!important;
  white-space: nowrap;
}

/* Photobooth background matched to the location paper. */
.photo-print-intro .photo-printer-scene.booth-reference  {
  box-shadow: none!important;
}

.photo-print-intro .booth-reference::before,
.photo-print-intro .booth-reference::after  {
  display: none!important;
}

/* Smooth matte burgundy photobooth panel, without paper grain. */

/* Exact burgundy color requested for the photobooth. */

/* User-provided photobooth background. */
.photo-print-intro,
.photo-print-intro .photo-printer-scene.booth-reference  {
  background: url('../assets/photobooth-background.png') center / cover no-repeat !important;
}

#user_wrap .section2 .poem-lines  {
  margin: 0;
  text-align: center;
  font-size: 14px;
  line-height: 2.2;
}

#user_wrap .section2 .poem-credit  {
  margin: 24px 0 0;
  text-align: center;
  font-size: 12px;
  line-height: 1.8;
  color: #776b63;
}

/* Match the supplied deep burgundy while preserving the torn PNG silhouette. */
#user_wrap #location-section > section#venue-location.venue-location  {
  background: transparent !important;
}

#user_wrap #location-section > section#venue-location.venue-location::before  {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: #7c0808 url('../assets/location-burgundy-transparent.png') center / 100% 100% no-repeat;
  background-blend-mode: multiply;
  -webkit-mask: url('../assets/location-burgundy-transparent.png') center / 100% 100% no-repeat;
  mask: url('../assets/location-burgundy-transparent.png') center / 100% 100% no-repeat;
}

/* 첫 초대장: 이름과 & 사이 간격 */
#user_wrap .section1 .main_name.kor  {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
}

#user_wrap .section1 .main_name.kor > *  {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
}

#user_wrap .section1 .main_name.kor > .ampersand  {
  flex: 0 0 32px;
  width: 32px;
  height: 40px;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

/* 날짜: 월 | 06 | 연도 */
#user_wrap .section1 .main_date .bottom  {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

#user_wrap .section1 .main_date .bottom .day  {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 78px;
  width: 78px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: none;
  line-height: 1;
  height: 34px;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
}

/* 기존 가상 요소 세로선 제거 */
#user_wrap .section1 .main_date .bottom > span::before,
#user_wrap .section1 .main_date .bottom > span::after  {
  content: none !important;
}

/* 날짜 양쪽에 세로선 배치 */
#user_wrap .section1 .main_date .bottom .day  {
  flex: 0 0 78px;
  width: 78px;
  height: 34px;
  box-sizing: border-box;
  border-left: 1px solid currentColor;
  border-right: 1px solid currentColor;
}

/* 갤러리 영역: 세로 사진 기준으로 높이 확보 */
#user_wrap .section5 .slide_wrap.swiper  {
  width: 100%;
  height: auto !important;
  aspect-ratio: 2 / 3;
}

#user_wrap .section5 .swiper-wrapper  {
  height: 100% !important;
  align-items: stretch;
}

/* 슬라이드 안에서 사진 중앙 정렬 */
#user_wrap .section5 .swiper-slide  {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

#user_wrap .section5 .swiper-slide img  {
  position: static !important;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-height: none;
  margin: 0 !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* 안내사항 / 계좌 / 공유 / 엔딩 사진 */
#user_wrap #location-section > #wedding-information,
#user_wrap .section_wrap > #ending-account,
#user_wrap .section_wrap > #ending-photo-section  {
  background: transparent !important;
  color: #222;
}

#user_wrap #wedding-information  {
  padding: 70px 24px 0;
  text-align: center;
}

#user_wrap #wedding-information h2,#user_wrap #ending-account .title h2  {
  font-family: serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
}

#user_wrap .end-subtitle  {
  font-family: 'Old Standard TT',serif;
  font-size: 20px;
  color: #8bad85;
  line-height: 1.3;
  margin: 2px 0 0;
}

#user_wrap #wedding-information .information-item  {
  margin-top: 44px;
}

#user_wrap #wedding-information h3  {
  font-size: 16px;
  font-weight: 400;
  margin: 0 0 16px;
}

#user_wrap #wedding-information .information-item p  {
  font-size: 12px;
  line-height: 1.9;
  margin: 0;
  word-break: keep-all;
}

#user_wrap #ending-account  {
  padding: 110px 30px 0;
  text-align: center;
}

#user_wrap #ending-account .inner  {
  width: 100%;
  max-width: none;
}

#user_wrap #ending-account .title  {
  margin: 0;
}

#user_wrap #ending-account .account  {
  margin-top: 60px;
}

#user_wrap #ending-photo-section  {
  padding: 0;
}

#user_wrap #ending-photo-section .ending-share  {
  display: flex;
  justify-content: center;
  gap: 22px;
  padding: 115px 0 40px;
}

#user_wrap #ending-photo-section .ending-share-button  {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  border: 0;
  padding: 0;
  background: transparent;
  color: #333;
  font-size: 10px;
  cursor: pointer;
}

#user_wrap #ending-photo-section .share-circle  {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #e3e1dd;
  color: #555;
  font-size: 23px;
}

#user_wrap #ending-photo-section .img_box  {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  overflow: hidden;
}

#user_wrap #ending-photo-section img.ending-photo  {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  transform: none;
  object-fit: contain;
  -webkit-mask-image: linear-gradient(to bottom,transparent,#000 22%);
  mask-image: linear-gradient(to bottom,transparent,#000 22%);
}

/* 추가한 영역을 기존 청첩장 글꼴로 통일 */
#user_wrap #wedding-information,
#user_wrap #wedding-information h2,
#user_wrap #wedding-information h3,
#user_wrap #wedding-information p,
#user_wrap #ending-account,
#user_wrap #ending-account .title h2,
#user_wrap #ending-account .end-subtitle,
#user_wrap #ending-account .account_box,
#user_wrap #ending-account .account_list,
#user_wrap #ending-photo-section .ending-share-button  {
  font-family: var(--font-family, GowunDodum-Regular, serif) !important;
}

/* 기존 제목과 같은 크기·굵기 */
#user_wrap #wedding-information h2,
#user_wrap #ending-account .title h2  {
  font-size: 20px !important;
  font-weight: 400 !important;
}


/* =========================================================
   계좌 디자인 — 구분선 / 계좌 카드 / 복사 아이콘
   ========================================================= */
#user_wrap #ending-account .account_wrap {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

#user_wrap #ending-account .account_box {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  min-height: 52px;
  padding: 16px 12px;
  box-sizing: border-box;
  border: 0;
  border-top: 1px solid #85857d;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--common-font-color, #383737);
  font-size: 12px;
  cursor: pointer;
}

#user_wrap #ending-account .account_wrap:last-child {
  border-bottom: 1px solid #85857d;
}

#user_wrap #ending-account .account_box i {
  position: static;
  display: block;
  width: 8px;
  height: 8px;
  margin-left: auto;
  font-size: 0;
}

#user_wrap #ending-account .account_box i::before {
  content: none;
}

#user_wrap #ending-account .account_box i::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}

#user_wrap #ending-account .account_wrap:has(> .account_list[style*="display: block"]) .account_box i::after,
#user_wrap #ending-account .account_wrap:has(> .account_list[style*="display:block"]) .account_box i::after {
  transform: translateY(3px) rotate(225deg);
}

#user_wrap #ending-account .account_list {
  margin: 0;
  padding: 2px 12px 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  list-style: none;
}

#user_wrap #ending-account .account_list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 15px 14px;
  min-height: 76px;
  box-sizing: border-box;
  border: 1px solid #dad8cf;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#user_wrap #ending-account .account_list li + li {
  margin-top: 16px;
}

#user_wrap #ending-account .left_box {
  min-width: 0;
  text-align: left;
}

#user_wrap #ending-account .left_box h4 {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}

#user_wrap #ending-account .holder {
  font-weight: 600;
}

#user_wrap #ending-account .account-bank-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
  font-size: 12px;
  line-height: 1.7;
}

#user_wrap #ending-account .account-bank-line .acc_num {
  font-size: inherit;
  overflow-wrap: anywhere;
}

#user_wrap #ending-account .right_box {
  flex: 0 0 auto;
  display: flex;
}

#user_wrap #ending-account .account-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  min-width: 0;
  padding: 0;
  border: 1px solid #d8d7d1;
  border-radius: 3px;
  background: #f1f0eb;
  color: #333;
  line-height: 1;
}

#user_wrap #ending-account .account-copy svg {
  display: block;
  width: 17px;
  height: 17px;
}

#user_wrap #ending-account .account-copy:focus-visible {
  outline: 2px solid var(--point-color1, #43573a);
  outline-offset: 3px;
}

/* =========================================================
공통 섹션 간격 — --section-gap 값을 변경하세요.
========================================================= */
:root  {
  --section-gap: 120px;  /* 각 섹션 사이 공통 간격 */
  --location-detail-gap: 72px; /* 오시는 길과 주차 안내 사이 */
  --ending-photo-gap: 40px;    /* 공유 버튼과 마지막 사진 사이 */
}

#user_wrap .section_wrap  {
  display: flex;
  flex-direction: column;
  gap: var(--section-gap);
}

#user_wrap .section_wrap > section.content-block  {
  flex: 0 0 auto;
  min-height: 0;
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* 건물·주소를 감싸는 버건디 배경 안쪽 여백 */
#user_wrap #location-section > #venue-location  {
  padding-top: 94px !important;
  padding-bottom: 90px !important;
}

/* 사진 기준: 버건디 오시는 길과 주차 안내를 하나의 섹션으로 묶음 */
#user_wrap #location-section {
  display: flex;
  flex-direction: column;
  gap: var(--location-detail-gap);
}

#user_wrap #location-section > section {
  flex: 0 0 auto;
  min-width: 0;
  margin: 0 !important;
}

#user_wrap #location-section > #wedding-information {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#user_wrap #couple-introduction .modal_contact_btn_box:empty  {
  display: none;
}

#user_wrap #wedding-poem > .img_box  {
  display: none;
}

#user_wrap #wedding-poem .contents,
#user_wrap #invitation-message .contents  {
  margin-top: 0;
  margin-bottom: 0;
}

/* 독립된 한 주 달력 */
#user_wrap #wedding-calendar  {
  padding-left: 18px;
  padding-right: 18px;
}

#user_wrap #wedding-week-calendar  {
  display: block !important;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 0 !important;
  box-sizing: border-box;
}

#user_wrap #wedding-calendar .week-calendar  {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

#user_wrap #wedding-calendar .week-calendar-month  {
  font-family: inherit;
  font-size: 18px;
  font-weight: 400;
  color: #612b32;
  white-space: nowrap;
}

#user_wrap #wedding-calendar .week-calendar-days  {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2px;
}

#user_wrap #wedding-calendar .week-calendar-day  {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

#user_wrap #wedding-calendar .weekday  {
  font-size: 11px;
  color: #8b817c;
}

#user_wrap #wedding-calendar .date  {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 50%;
  font-family: inherit;
  font-size: 16px;
  color: #514641;
}

#user_wrap #wedding-calendar .active .date  {
  color: #793740;
  border-color: #793740;
}

#user_wrap #wedding-gallery .swiper-slide img  {
  cursor: zoom-in;
}

/* 공유 버튼은 nav, 마지막 사진은 별도 div로 구분 */
#user_wrap #ending-photo-section .ending-share  {
  margin: 0;
  padding: 0;
}

#user_wrap #ending-photo-section .ending-photo-block  {
  margin-top: var(--ending-photo-gap);
}

/* 방명록 카드 안쪽 여백 */
#user_wrap #guestbookList > li {
  padding: 24px 20px 18px !important;
  box-sizing: border-box;
}

/* 카카오 공유 아이콘 — 기존 밝은 회색 원 안에 표시 */
#user_wrap #ending-photo-section .share-circle > .xi-kakaotalk {
  display: block;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  font-size: 0 !important;
  background-image: url('../assets/kakao-talk-icon.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

/* 기존 아이콘 폰트 대신 위 이미지를 사용 */
#user_wrap #ending-photo-section .share-circle > .xi-kakaotalk::before,
#user_wrap #ending-photo-section .share-circle > .xi-kakaotalk::after {
  content: none !important;
}

/* 빈 방명록 안내 문구 중앙 정렬 */
#user_wrap #guestbookList > li.guestbook-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  padding: 20px !important;
  box-sizing: border-box;
  text-align: center;
}

/* 스크롤할 때 섹션이 부드럽게 나타나는 효과 */
#user_wrap .section-group.reveal-ready {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.9s ease,
    transform 0.9s ease;
}

#user_wrap .section-group.reveal-ready.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 기기의 동작 줄이기 설정 반영 */
@media (prefers-reduced-motion: reduce) {
  #user_wrap .section-group.reveal-ready {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* =========================================================
   포토부스 구성 고정 — 390 × 844 전체를 동일 배율로 표시
   배율은 app.js의 fitIntroScene()에서 실제 표시 영역으로 계산합니다.
   ========================================================= */
.photo-print-intro {
  box-sizing: border-box;
  padding: env(safe-area-inset-top, 0px)
           env(safe-area-inset-right, 0px)
           env(safe-area-inset-bottom, 0px)
           env(safe-area-inset-left, 0px);
}

.photo-print-intro .photo-printer-scene.booth-reference {
  position: absolute;
  left: var(--booth-center-x, 50%);
  top: var(--booth-center-y, 50%);
  width: 390px !important;
  height: 844px !important;
  min-width: 390px !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0;
  box-sizing: border-box;
  flex: none;
  transform: translate(-50%, -50%) scale(var(--booth-scale, 1));
  transform-origin: center center;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.photo-print-intro .booth-machine {
  top: 244.76px !important;
  width: 191.1px !important;
  height: 405.12px !important;
  aspect-ratio: auto;
  box-sizing: border-box;
}

.photo-print-intro .printed-photo {
  display: block !important;
  box-sizing: border-box;
  width: 82px !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
}

.photo-print-intro .printed-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

.photo-print-intro .booth-open-text {
  bottom: 70.052px !important;
  font-size: 9px !important;
}

.photo-print-intro .intro-swipe-guide {
  bottom: 18px !important;
  font-size: 9px;
}

/* 방명록 입력창 선택 시 테두리 색상 */
#guestbook-write-dialog input[type="text"]:focus,
#guestbook-write-dialog textarea:focus {
  outline: 2px solid #612b32;
  outline-offset: 2px;
}

.photo-print-intro .booth-headline {
  top: 74.272px !important;
  font-size: 10px !important;
  text-indent: .34em;
}

.photo-print-intro .booth-names {
  top: 135.04px !important;
  font-size: var(--booth-names-size, 46.8px) !important;
  white-space: nowrap;
}

.photo-print-intro .booth-invited {
  bottom: 102.968px !important;
  font-size: var(--booth-invited-size, 40.95px) !important;
}