#footer {
  position: fixed;
  bottom: 0;
  height: 180px;
  width: 100%;
  opacity: 1;
  z-index: 2;
  background: #000000 0 0 no-repeat padding-box;
  display: grid;
  align-items: center;
  justify-content: center;
  grid-template-columns: 460px 0.3fr 293px 293px;
  /* 간격만 반응형 */
  column-gap: clamp(24px, 6vw, 122px);
  padding: 0 clamp(24px, 6vw, 150px);
}


/* Footer */
.footer-visual-contact-btn-wrap{overflow: hidden; display: block; grid-column: 1; justify-self: start;}
.footer-visual-contact-btn {display: block; text-align: center;}
.footer-effect-btn .contact-btn {position: relative; display: block; width: 460px; height: 106px; margin: 0 auto;}
.footer-effect-btn .contact-btn .cm-effect-svg {position: absolute; width: 460px; height: 100px; top: 50%; left: 50%; overflow: visible; transform: translate(-50%,-50%);}
.footer-effect-btn .contact-btn .cm-effect-svg g {position: absolute; width: 100%; height: 100%; top: 0; left: 0;}
.footer-effect-btn .contact-btn .cm-effect-svg rect {stroke: url(#borderGradient);}
.footer-effect-btn .contact-btn strong {position: relative; font-size:2.8rem; color:#fff; line-height: 106px; z-index: 1; font-family: var(--font-family1); font-weight: 400;}
.footer-effect-btn .signature-dot {position: absolute; top: 34px;}

#footer > .footer-txt:nth-of-type(1) {grid-column: 3;}
#footer > .footer-txt:nth-of-type(2) {grid-column: 4}

.footer-txt {display: block; width: 20rem; ;font-family: var(--font-family2); font-weight: 200; line-height: 2.5rem; font-size: 2rem; color: #fff; height: 100px;}
.footer-txt strong {display:block; font-weight: 700; margin-bottom: 0.5rem;}

/* 메인 타이틀 */
#main-title {display: flex; justify-content: center; align-items: center; width: 100%;}
.logo-row {display: flex; align-items: center; gap: 37px;}
.logo-img {height: 125px; width: auto;}
.region {font-family: var(--font-family1); font-weight: 700; font-size: 75px; color: white; margin-top: 27px}

/* 나머지 .modal-content, input, button 등은 기존 스타일에 맞게 */

.contact-modal {position: fixed; inset: 0; display: none; z-index: 9999;}
.contact-modal.open {display: flex;}
.contact-modal-backdrop {position: fixed; height: 100%; inset: 0; background: rgba(0, 0, 0, 0.5);}
/*.contact-modal-dialog {position: relative; width:80%; max-width: 1500px; height: 61vh; margin: 40px auto; background: #fff; border-radius: 12px; overflow: hidden; padding: 3.5rem 3rem;}*/
.contact-modal-dialog {position: relative; width:80%; max-width: 1500px; height: 75vh; background: #fff; border-radius: 12px; padding: 3.5rem 3rem;}
.contact-modal-dialog form {height: 100%; overflow-y: auto; overflow-x: hidden;}
.contact-modal-close {position: absolute; right: -7rem; top: 0; border: 0; background: transparent; font-size: 20px; cursor: pointer;}
.contact-modal-close img {height: 4rem; width:4rem;}



#privacyModal {background: none; position: fixed; top: 0; align-items: center; justify-content: center; z-index: 10000;}
.privacy-modal {position: fixed; inset: 0; display: none;}
.privacy-wrap {padding: 2rem 0; margin: 0 4rem;}
.privacy-modal.open {display: flex;}
.privacy-modal-backdrop {position: fixed; height: 100%; inset: 0; background: rgba(0, 0, 0, 0.5);}
/*.privacy-modal-dialog {position: relative; width:80%; max-width: 1500px; height: 61vh; margin: 40px auto; background: #fff; border-radius: 12px; overflow: hidden; padding: 3.5rem 3rem;}*/
.privacy-modal-dialog {position: relative; width:80%; max-width: 1500px; height: 75vh; background: #fff; border-radius: 12px; padding: 3.5rem 3rem;}
.privacy-scrollbox {padding:2rem; height: 572px; max-height: calc(60vh); overflow-y:auto; overflow-x:hidden; border:1px solid #ddd; box-sizing: border-box;}

.privacy-title-row {display: flex; justify-content: space-between; margin-bottom: 4rem;}
.privacy-h1 {height: 3.5rem; font-size: 3.5rem; color: #000;}
.privacy-modal-close {position: relative; bottom: 2.5rem;}
.privacy-modal-close img {height: 4rem; width:4rem;}

.signature-dot {
  position: absolute;
  width: 1rem;
  height: 1rem;
  margin-left: 0.5rem;
  background-color: #1ECAD3;
  border-radius: 1rem;
}


.loading-overlay{
  position: fixed;
  inset: 0;
  display: none;            /* 기본은 숨김 */
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.45);
  z-index: 9999;
}

.loading-overlay.is-active{
  display: flex;
}

.loading-box{
  padding: 16px 18px;
  border-radius: 12px;
  background: rgba(0,0,0,.65);
  text-align: center;
}

.loading-spinner{
  width: 36px;
  height: 36px;
  border: 3px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .8s linear infinite;
  margin: 0 auto 10px;
}

.loading-text{
  margin: 0;
  font-size: 14px;
  color: #fff;
}

@keyframes spin { to { transform: rotate(360deg); } }
