:root { 
  --font-base-mcard:"Noto Serif KR","Noto Serif",serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; 
  --c1:#fff; --c2:#fff; --main-color:#4F8BED; 
  --hero-empty-bg: url(''); 
}

/* WP 프리뷰 페이지용 정리 */
* { box-sizing:border-box; }
html { margin-top: 0 !important; }
body { margin:0; background:#f4f5f7 !important; }
.nemodi-card * { font-family:var(--font-base-mcard); }
.nemodi-preview-page * { font-family:var(--font-base-mcard); }
body > .wp-site-blocks { padding-top: 0; padding-bottom: 0; }
header, footer { display:none; }
main { margin-top:0 !important; }
main > .wp-block-template-part { margin:0 !important; }
.nemodi-footer { padding: 9px 14px; font-size: 12px; font-family: "Pretendard"; text-align: center; color: #999; border: 1px solid #eee; }
.has-global-padding { padding:0 !important; }
.wp-block-post-title { display:none !important; }
.wp-block-post-content { margin-top:0 !important; }
.nemodi-wrap, .nemodi-preview-page { min-height:100vh; display:flex; justify-content:center; }
.nemodi-card { width:100%; max-width:500px; background:#fff; overflow:hidden; }

/* MAIN */
.nemodi-hero { height:100vh; min-height:500px; background:#e9eaee center/cover no-repeat; position:relative; }
.nemodi-t1 { position:absolute; left:50%; right:0; top:50%; transform: translate(-50%,-50%); width: 100%; max-width: 333px; text-align:center; font-family: "Alex Brush", "Parisienne", cursive; font-size:80px; line-height:1; font-weight:400; color:var(--c1); text-shadow:0 2px 14px rgba(0,0,0,.08); }
.nemodi-t2 { position:absolute; left:0; right:0; bottom: 20px; text-align:center; margin-top:10px; font-size:13px; font-weight:400; letter-spacing: 1px; color:var(--c2); text-shadow:0 1px 10px rgba(0,0,0,.10); font-family: "Pretendard"; }

/* INTRO/GREET */
.nemodi-greet { padding:100px 14px 60px; text-align:center; background: url('./img/bg-paper.jpg') center/cover no-repeat; }
.introTxt { margin:0; font-family:"Parisienne"; font-size:20px; color:#555; }
.nemodi-greetFamily { margin-top:24px; font-size:14px; color:#797979; }
.nemodi-greetFamily p { margin:0; }
.nemodi-greetFamily .line { line-height:1.8; }
.nm-parents { font-size:16px; color:#797979; }
.nm-name { color:var(--main-color); font-weight:700; font-size:16px; }
.nemodi-greetText { margin-top:50px; line-height:1.7; color:#797979; font-size:14px; white-space:pre-line; word-break:keep-all; }

/* WEDDING */
.nm-wedding { padding:60px 14px; text-align:center; background:#f9f9f9; }
.nm-wedding-title { font-size:26px; color:#555; font-family:"Parisienne"; }
.nm-wedding-ko { margin-top:16px; font-size:14px; color:#333; font-weight:500; font-family:"Pretendard"; }
.nm-wedding-en { margin-top:8px; font-size:14px; color:#9a9a9a; font-family:"Pretendard"; }
.nm-divider { height:1px; background:#efefef; margin:20px 0; }
.nm-cal { max-width:360px; margin:0 auto; font-family:"Pretendard"; }
.nm-cal-week { display:grid; grid-template-columns:repeat(7,1fr); font-size:14px; font-weight:500; letter-spacing:.2em; padding:8px 0 14px; color:#111; }
.nm-cal-week .sun { color:#ff6b6b; }
.nm-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:18px 10px; padding:10px 0 4px; font-size:14px; color:#797979; }
.nm-cal-day { width:34px; height:34px; margin:0 auto; display:flex; align-items:center; justify-content:center; border-radius:999px; }
.nm-cal-day.sun { color:#ff6b6b; }
.nm-cal-day.selected { background:var(--main-color); color:#fff; }
.nm-cal-empty { width:34px; height:34px; margin:0 auto; }

/* D-DAY */
.nm-dday { padding:10px 0 0; }
.nm-dday-grid { display:flex; gap:7px; max-width:360px; margin:0 auto; }
.nm-dday-card { display:flex; flex-direction:column; padding:14px 0; width:25%; box-shadow:0 0px 4px 1px rgba(0,0,0,.08); background:#fff; border-radius:7px; text-align:center; }
.nm-dday-num { font-size:22px; color:#333; font-family:"Pretendard"; }
.nm-dday-label { margin-top:7px; font-size:12px; color:#9a9a9a; }
.nm-dday-msg { margin:18px auto 0; text-align:center; font-size:15px; word-break:keep-all; font-family:"Pretendard"; color:#333; }
.nm-dday-left { color:var(--main-color); font-weight:700; }

/* CONTACT 버튼 */
.nm-contact { padding:0 14px 60px; background:#fff; text-align:center; }
.nm-contact-btn { width:240px; height:48px; border-radius:5px; border:1px solid #ddd; background:#fff; color:#555; font-size:14px; font-weight:500; cursor:pointer; box-shadow:0 0px 5px 1px rgba(0,0,0,.08); font-family:var(--font-base-mcard); }

/* Modal (center) */
.nm-modal { position:fixed; inset:0; display:none; z-index:9999; }
.nm-modal.is-open { display:block; }
.nm-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.nm-modal-panel { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(360px, calc(100vw - 32px)); max-height:calc(100vh - 32px); background:#fff; border-radius:14px; overflow:auto; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.nm-modal-head { display:flex; align-items:center; justify-content:center; height:52px; border-bottom:1px solid #eee; position:relative; }
.nm-modal-title { font-size:15px; color:#333; font-weight: 500; }
.nm-modal-x { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:32px; height:32px; border:0; background:transparent; font-size:24px; cursor:pointer; color:#777; font-family: "Pretendard"; }

/* CONTACT list */
.nm-contact-list { padding:26px 24px 28px; display:grid; grid-template-columns:1fr 1fr; gap:26px 44px; }
.nm-contact-item { display:flex; flex-direction:column; align-items:center; gap:12px; }
.nm-contact-name { font-size:14px; color:#555; text-align:center; }
.nm-contact-name span { font-weight:700; color:#333; }
.nm-contact-actions { display:flex; align-items:center; justify-content:center; gap:10px; }
.nm-act { width:38px; height:38px; border-radius:999px; flex-shrink:0; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.nm-act img { width:100%; height:100%; display:block; }

/* ABOUT US */
.nm-about { padding: 60px 14px; text-align:center; background:#fff; }
.nm-about-title { font-family:"Parisienne"; font-size:26px; color:#555; }
.nm-about-sub { margin-top:7px; font-size:14px; color:#9a9a9a; line-height:1.6; }
.nm-about-grid { margin-top:40px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.nm-about-photo { width:100%; aspect-ratio:1/1; border-radius:7px; background:#e9e9e9 center/cover no-repeat; }
.nm-about-photo--empty { background-color:#e9e9e9; }
.nm-about-name { margin-top:18px; font-size:13px; font-weight:600; }
.nm-about-name.groom { color:var(--main-color); }
.nm-about-name.bride { color:#EB7F80; }
.nm-about-name span { color: #555; font-size: 15px; font-weight: 700; }
.nm-about-birth { margin-top:16px; font-size:14px; color:#616161; font-family: "Pretendard"; word-break:keep-all; }
.nm-about-trait { margin-top:4px; font-size:14px; color:#919191; font-family: "Pretendard"; word-break:keep-all; }

/* GALLERY */
.nm-gallery { padding:60px 14px; text-align:center; background: url('./img/bg-paper.jpg') center/cover no-repeat; }
.nm-gallery-title { font-family:"Parisienne"; font-size:26px; color:#555; }
.nm-gallery-grid { margin:30px auto 0; max-width:420px; display:grid; grid-template-columns:repeat(3, 1fr); gap:7px; }
.nm-gal-cell { width:100%; aspect-ratio:1/1; border-radius:7px; background:#e9e9e9 center/cover no-repeat; overflow:hidden; cursor:pointer; }
.nm-gallery-more { margin:20px auto 0; border:0; background:transparent; cursor:pointer; display:inline-flex; align-items:center; gap:2px; }
.nm-gallery-more span { color:#777; font-size:14px; font-family: "Pretendard"; }
.nm-gallery-more-arrow { width:22px; height:22px; display:block; transition:transform .18s ease; }
.nm-gallery-more.is-open .nm-gallery-more-arrow{ transform:rotate(180deg); }

/* GALLERY MODAL */
.nm-gal-modal { position:fixed; inset:0; display:none; z-index:10000; }
.nm-gal-modal.is-open { display:block; }
.nm-gal-panel { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); position:absolute; left:0; top:0; width:100%; height: 100svh; height: 100vh; display: flex; flex-direction: column; justify-content: center; background:#1e1e1e; overflow:hidden; }
.nm-gal-x { position:absolute; right:5px; top:0; width:34px; height:34px; border:0; background:transparent; font-size:30px; font-weight: 200; cursor:pointer; color:#fff; z-index:2; font-family: "Pretendard"; }
.nm-gal-img { width:100%; height:min(80svh, 560px); object-fit:contain; display:block; }
.nm-gal-nav { position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border:0; background:rgba(0,0,0,.3); cursor:pointer; border-radius:50%; z-index:2; }
.nm-gal-nav img { width: 100%; height: 100%; object-fit: contain; }
.nm-gal-nav.prev { left:5px; }
.nm-gal-nav.next { right:5px; }
.nm-gal-count { position: absolute; bottom: 0; left: 50%; transform: translate(-50%,0); padding:10px 0 12px; text-align:center; font-size:13px; color:#eee; font-family: "Pretendard"; }

/* LOCATION */
.nm-location { padding: 60px 14px; text-align:center; background:#fff; }
.nm-location-title { font-family:"Parisienne"; font-size:26px; color:#555; }
.nm-loc-addr #nmLocAddr1 { font-size:14px; color:#555; line-height:1.7; font-family:"Pretendard"; word-break:keep-all; }
.nm-loc-addr #nmLocAddr2 { margin-top: 4px; font-size: 14px; color:#919191; font-family:"Pretendard"; }
.nm-location-map { margin-top: 20px; border-radius:7px; overflow:hidden; border:1px solid #eee; background:#f3f3f3; }
.nm-location-map-canvas { width:100%; height: 220px; }
.nm-location-maplink { display:block; padding:10px 12px; border-top:1px solid #eee; font-size:13px; color:#777 !important; text-decoration:none; background:#fff; font-family:"Pretendard"; }
.nm-location-list { margin: 30px auto 0; text-align:left; display:flex; flex-direction:column; gap:20px; }
.nm-loc-item { padding: 0 14px 20px; border-bottom: 1px solid #eee; }
.nm-loc-item:last-child { border-bottom: 0; }
.nm-loc-title { display: flex; justify-content: flex-start; align-items: center; gap: 7px; }
.nm-loc-ico { width:22px; height:22px; background:center/contain no-repeat; }
.nm-loc-ico.subway { background-image:url('./img/subway.svg'); }
.nm-loc-ico.bus { background-image:url('./img/bus.svg'); }
.nm-loc-ico.car { background-image:url('./img/car.svg'); }
.nm-loc-ico.parking { background-image:url('./img/parking.svg'); }
.nm-loc-h { font-size:15px; font-weight:700; color:#333; font-family: "Pretendard"; }
.nm-loc-p { margin-top:10px; font-size:14px; color:#777; line-height:1.7; white-space:pre-line; font-family:"Pretendard"; word-break:keep-all; }
.nm-loc-bus-lines { margin-top: 10px; font-size: 13px; color: #555; line-height: 1.5; font-family: "Pretendard"; }
.nm-loc-addr-line { margin-top: 24px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; } 
.nm-loc-copy { width: 15px; height: 15px; border: 0; background: none; padding: 0; cursor: pointer; }




/* ACCOUNT */
.nm-money { padding: 60px 14px; background: #f9f9f9; }
.nm-money-title { font-size: 26px; color: #555; font-family: "Parisienne"; text-align: center; }
.nm-money-desc { margin: 7px 0 40px; font-size: 14px; color: #9a9a9a; line-height: 1.6; text-align: center; }
.nm-money-acc { display:flex; flex-direction:column; gap:0; margin: 0 auto; width: 260px; }
.nm-money-head { display: flex; justify-content: space-between; align-items: center; height: 48px; padding: 0 14px 0 20px; border: 1px solid #ddd; border-radius: 5px; background: #fff; box-shadow:0 0px 5px 1px rgba(0,0,0,.08); cursor: pointer; }
.nm-money-head-txt { font-size: 14px; color: #555; font-weight: 500; }
.nm-money-arrow { width: 24px; height: 100%; opacity: .7; transition: transform .18s ease; }
.nm-money-head.is-open { border-color: #A9A9A9; }
.nm-money-head.is-open .nm-money-arrow{ transform: rotate(180deg); }
.nm-money-panel { padding: 0 20px; border: 1px solid #A9A9A9; border-radius: 5px; background: #fff; box-shadow:0 0px 5px 1px rgba(0,0,0,.08); z-index: 1; }
.nm-money-item { padding: 20px 0; }
.nm-money-item + .nm-money-item { border-top: 1px solid #eee; }
.nm-money-top { display: flex; justify-content: flex-start; align-items: center; gap: 4px; }
.nm-money-copy { padding: 0; width: 15px; height: 15px; border: none; background: none; }
.nm-money-badge { font-size: 13px; color: var(--main-color); font-weight: 700; }
.nm-money-badge.bride { color: #EB7F80; }
.nm-money-holder { font-size: 13px; font-weight: 700; color: #555; }
.nm-money-acct { margin-top: 7px; font-size: 13px; font-family: "Pretendard"; color: #919191; }
.nm-money-head + .nm-money-panel { margin-top: 4px; }
.nm-money-panel + .nm-money-head { margin-top: 7px; }

/* ---- RSVP (참석여부) ---- */
.nm-rsvp { padding: 60px 24px; background: #f9f9f9; text-align: center; }
.nm-rsvp-title { font-family: "Parisienne"; font-size: 26px; color: #555; }
.nm-rsvp-desc { margin: 7px 0 28px; font-size: 14px; color: #9a9a9a; line-height: 1.6; font-family: "Pretendard"; }
.nm-rsvp-form { max-width: 340px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.nm-rsvp-input { width: 100%; padding: 11px 14px; border: 1px solid #e0e0e0; border-radius: 8px; font-size: 14px; background: #fff; font-family: "Pretendard"; color: #333; outline: none; }
.nm-rsvp-input:focus { border-color: #4F8BED; }
.nm-rsvp-attend-row { display: flex; gap: 20px; justify-content: center; }
.nm-rsvp-radio { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #555; cursor: pointer; font-family: "Pretendard"; }
.nm-rsvp-counter-wrap { display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 10px 14px; }
.nm-rsvp-counter-label { font-size: 14px; color: #555; font-family: "Pretendard"; }
.nm-rsvp-counter { display: flex; align-items: center; gap: 14px; }
.nm-rsvp-count-btn { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #ddd; background: #f5f5f5; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #555; font-family: "Pretendard"; }
.nm-rsvp-count-btn:hover { background: #e8e8e8; }
.nm-rsvp-count-num { font-size: 16px; font-weight: 600; color: #333; min-width: 20px; text-align: center; font-family: "Pretendard"; }
.nm-rsvp-textarea { width: 100%; padding: 11px 14px; border: 1px solid #e0e0e0; border-radius: 8px; font-size: 14px; background: #fff; font-family: "Pretendard"; color: #333; resize: none; outline: none; }
.nm-rsvp-textarea:focus { border-color: #4F8BED; }
.nm-rsvp-submit { padding: 13px; background: #4F8BED; color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; font-family: "Pretendard"; }
.nm-rsvp-submit:hover { background: #3d7ad4; }
.nm-rsvp-submit:disabled { opacity: .6; cursor: default; }
.nm-rsvp-status { font-size: 13px; min-height: 20px; font-family: "Pretendard"; }
.nm-rsvp-status.success { color: #2d7a3f; }
.nm-rsvp-status.error   { color: #c00; }

/* ---- 방명록 ---- */
.nm-gb { padding: 60px 24px; background: #fff; text-align: center; }
.nm-gb-title { font-family: "Parisienne"; font-size: 26px; color: #555; }
.nm-gb-desc { margin: 7px 0 24px; font-size: 14px; color: #9a9a9a; line-height: 1.6; font-family: "Pretendard"; }
.nm-gb-list { max-width: 380px; margin: 0 auto 24px; text-align: left; display: flex; flex-direction: column; gap: 10px; }
.nm-gb-empty { font-size: 13px; color: #bbb; text-align: center; padding: 16px 0; font-family: "Pretendard"; }
.nm-gb-entry { background: #f9f9f9; border-radius: 10px; padding: 12px 14px; }
.nm-gb-entry-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.nm-gb-entry-name { font-size: 13px; font-weight: 600; color: #444; font-family: "Pretendard"; }
.nm-gb-entry-meta { display: flex; align-items: center; gap: 8px; }
.nm-gb-entry-date { font-size: 11px; color: #bbb; font-family: "Pretendard"; }
.nm-gb-del-btn { font-size: 11px; color: #ccc; border: 0; background: transparent; cursor: pointer; padding: 0; font-family: "Pretendard"; }
.nm-gb-del-btn:hover { color: #c00; }
.nm-gb-entry-msg { font-size: 13px; color: #666; line-height: 1.6; white-space: pre-line; word-break: keep-all; font-family: "Pretendard"; }
.nm-gb-form { max-width: 380px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; text-align: left; }
.nm-gb-input, .nm-gb-pw { width: 100%; padding: 10px 13px; border: 1px solid #e0e0e0; border-radius: 8px; font-size: 14px; background: #fff; font-family: "Pretendard"; color: #333; outline: none; }
.nm-gb-input:focus, .nm-gb-pw:focus { border-color: #4F8BED; }
.nm-gb-textarea { width: 100%; padding: 10px 13px; border: 1px solid #e0e0e0; border-radius: 8px; font-size: 14px; background: #fff; font-family: "Pretendard"; color: #333; resize: none; outline: none; }
.nm-gb-textarea:focus { border-color: #4F8BED; }
.nm-gb-secret-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nm-gb-secret-label { display: flex; align-items: center; gap: 5px; font-size: 13px; color: #666; cursor: pointer; font-family: "Pretendard"; white-space: nowrap; }
.nm-gb-pw { flex: 1; min-width: 0; }
.nm-gb-submit { padding: 12px; background: #555; color: #fff; border: none; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; font-family: "Pretendard"; }
.nm-gb-submit:hover { background: #333; }
.nm-gb-submit:disabled { opacity: .6; cursor: default; }
.nm-gb-status { font-size: 13px; min-height: 18px; font-family: "Pretendard"; }
.nm-gb-status.success { color: #2d7a3f; }
.nm-gb-status.error   { color: #c00; }

/* ---- BGM 플로팅 버튼 ---- */
.nm-bgm-wrap {
  position: fixed;
  bottom: 24px;
  right: 20px;
  z-index: 9990;
}
.nm-bgm-btn {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: none;
  background: rgba(79,139,237,.9);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 12px rgba(79,139,237,.45);
  transition: background .15s;
}
.nm-bgm-btn:hover { background: rgba(61,122,212,.95); }
.nm-bgm-btn.is-playing { background: rgba(79,139,237,1); }
.nm-bgm-icon { width: 22px; height: 22px; display: block; }

/* copy toast */
.nm-toast {
  position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%) translateY(10px); opacity: 0; pointer-events: none; z-index: 99999; background: rgba(0,0,0,.6); color: #fff;
  padding: 7px 0; width: 180px; text-align: center; border-radius: 4px; font-size: 13px; line-height: 1; transition: opacity .25s ease, transform .25s ease; 
}
.nm-toast.is-show{ opacity: 1; transform: translateX(-50%) translateY(0); }
