*{box-sizing:border-box}
.fmss-donation-wrap{
  --fmss-main:#7f2034;
  --fmss-main-dark:#4b1824;
  --fmss-soft:#fbf5f6;
  --fmss-line:#eadde0;
  --fmss-text:#2c292a;
  width:100%;
  padding:56px 20px;
  font-family:"Noto Sans KR","Pretendard",Arial,sans-serif;
  color:var(--fmss-text);
  background:
    radial-gradient(circle at 12% 8%,rgba(127,32,52,.05),transparent 26%),
    linear-gradient(180deg,#fff 0%,#fcfafb 100%)
}
.fmss-donation-card{
  max-width:980px;
  margin:0 auto;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--fmss-line);
  border-radius:28px;
  box-shadow:0 24px 60px rgba(70,20,32,.10)
}
.fmss-donation-header{
  position:relative;
  padding:54px 40px 40px;
  text-align:center;
  background:linear-gradient(135deg,#fff 0%,#fdf7f8 100%);
  border-bottom:1px solid var(--fmss-line)
}
.fmss-donation-header:before,
.fmss-donation-header:after{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  border-radius:50%;
  background:rgba(127,32,52,.035)
}
.fmss-donation-header:before{left:-70px;top:-80px}
.fmss-donation-header:after{right:-65px;bottom:-95px}
.fmss-symbol{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto 14px;
  border-radius:18px;
  background:linear-gradient(145deg,var(--fmss-main),#a6465a);
  color:#fff;
  font-family:Georgia,serif;
  font-size:29px;
  font-weight:700;
  box-shadow:0 12px 24px rgba(127,32,52,.22)
}
.fmss-donation-kicker{
  position:relative;
  z-index:1;
  display:block;
  color:#a24a5c;
  font-size:12px;
  font-weight:800;
  letter-spacing:.17em
}
.fmss-donation-header h1{
  position:relative;
  z-index:1;
  margin:10px 0 0;
  color:var(--fmss-main-dark);
  font-size:36px;
  line-height:1.28;
  letter-spacing:-.04em
}
.fmss-donation-header p{
  position:relative;
  z-index:1;
  margin:13px 0 0;
  color:#777;
  font-size:15px
}
.fmss-progress{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--fmss-line);
  background:#fff
}
.fmss-progress span{
  position:relative;
  padding:17px 10px;
  text-align:center;
  color:#9a9093;
  font-size:13px;
  font-weight:700
}
.fmss-progress span+span:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1px;
  height:18px;
  background:var(--fmss-line);
  transform:translateY(-50%)
}
.fmss-progress .active{color:var(--fmss-main)}
#donationForm{padding:12px 42px 44px}
.fmss-section{padding:32px 0;border-bottom:1px solid #f0e7e9}
.fmss-section:last-of-type{border-bottom:0}
.fmss-section-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px
}
.fmss-section-title strong{
  color:var(--fmss-main-dark);
  font-size:20px;
  letter-spacing:-.03em
}
.fmss-section-title span{color:#989093;font-size:12px}
.fmss-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px
}
.fmss-full{grid-column:1/-1}
.fmss-field label,.fmss-sign label{
  display:block;
  margin-bottom:8px;
  color:#4d4547;
  font-size:14px;
  font-weight:700
}
.fmss-field em,.fmss-agreement em{color:#c43a53;font-style:normal}
.fmss-field input,.fmss-field select{
  width:100%;
  height:50px;
  padding:0 15px;
  border:1px solid #d9d1d3;
  border-radius:11px;
  background:#fff;
  color:#242122;
  font-size:15px;
  transition:.2s ease
}
.fmss-field input:hover,.fmss-field select:hover{border-color:#bfaeb3}
.fmss-field input:focus,.fmss-field select:focus{
  border-color:var(--fmss-main);
  outline:0;
  box-shadow:0 0 0 4px rgba(127,32,52,.09)
}
.fmss-money{position:relative}
.fmss-money input{padding-right:48px}
.fmss-money span{
  position:absolute;
  right:16px;
  top:50%;
  color:#777;
  transform:translateY(-50%)
}
.fmss-hidden{display:none!important}
.fmss-agreement{
  padding:22px;
  border:1px solid #eee2e5;
  border-radius:15px;
  background:var(--fmss-soft)
}
.fmss-agreement label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 14px;
  color:#4f4749;
  font-size:14px;
  line-height:1.55
}
.fmss-agreement label:last-child{margin-bottom:0}
.fmss-agreement input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:var(--fmss-main)
}
.fmss-sign{margin-top:22px}
.fmss-sign-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:9px
}
.fmss-sign-head label{margin:0}
.fmss-sign-head button{
  padding:8px 12px;
  border:1px solid #d9c8cc;
  border-radius:8px;
  background:#fff;
  color:var(--fmss-main);
  font-size:12px;
  font-weight:700;
  cursor:pointer
}
#signature{
  display:block;
  width:100%;
  height:160px;
  border:1px dashed #cdbbc0;
  border-radius:13px;
  background:
    linear-gradient(transparent 94%,rgba(127,32,52,.04) 94%);
  touch-action:none
}
.fmss-sign p{margin:8px 0 0;color:#958d8f;font-size:12px}
.fmss-submit-area{text-align:center;padding-top:10px}
.fmss-submit{
  width:100%;
  height:58px;
  border:0;
  border-radius:13px;
  background:linear-gradient(135deg,var(--fmss-main),#9f3850);
  color:#fff;
  font-size:17px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 12px 24px rgba(127,32,52,.20);
  transition:.2s ease
}
.fmss-submit:hover{transform:translateY(-1px);box-shadow:0 15px 28px rgba(127,32,52,.25)}
.fmss-submit:disabled{opacity:.55;cursor:wait;transform:none}
.fmss-submit-area>p{margin:12px 0 0;color:#9b9395;font-size:12px}
.fmss-result{
  display:none;
  margin-top:18px;
  padding:17px;
  border:1px solid #cfe1d3;
  border-radius:11px;
  background:#f3faf5;
  color:#2b613c;
  line-height:1.7
}
.fmss-result.is-error{
  border-color:#efd0d4;
  background:#fff3f4;
  color:#a72e42
}
@media(max-width:720px){
  .fmss-donation-wrap{padding:24px 10px}
  .fmss-donation-card{border-radius:18px}
  .fmss-donation-header{padding:38px 18px 30px}
  .fmss-donation-header h1{font-size:28px}
  .fmss-progress span{padding:14px 4px;font-size:11px}
  #donationForm{padding:4px 18px 30px}
  .fmss-section{padding:27px 0}
  .fmss-section-title{display:block}
  .fmss-section-title span{display:block;margin-top:5px}
  .fmss-grid{grid-template-columns:1fr;gap:16px}
  .fmss-full{grid-column:auto}
}

.fmss-address-row{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:10px;
  margin-bottom:10px
}
.fmss-address-row button{
  height:50px;
  border:0;
  border-radius:11px;
  background:linear-gradient(135deg,var(--fmss-main),#9f3850);
  color:#fff;
  font-size:14px;
  font-weight:800;
  cursor:pointer
}
#address{margin-bottom:10px}
#postcode,#address{background:#faf8f9;cursor:pointer}
@media(max-width:520px){
  .fmss-address-row{grid-template-columns:1fr}
}


/* 후원·개인정보 안내문 */
.fmss-agreement-guide{
  margin:0 0 22px;
  padding:18px 20px;
  border:1px solid #e4d5d9;
  border-radius:12px;
  background:#fff;
  color:#51484a;
  font-size:13px;
  line-height:1.8
}
.fmss-agreement-guide p{
  margin:0 0 8px;
  word-break:keep-all
}
.fmss-agreement-guide p:last-child{margin-bottom:0}
.fmss-agreement-guide strong{
  color:var(--fmss-main);
  font-weight:800
}
.fmss-submit.is-loading{pointer-events:none}
@media(max-width:720px){
  .fmss-agreement-guide{
    padding:15px;
    font-size:12px;
    line-height:1.75
  }
}
