*{box-sizing:border-box}body{margin:0;background:#e9e3db;color:#49443e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif}.shell{max-width:520px;margin:auto;background:#fffdf9;box-shadow:0 10px 45px #554a3d22;overflow:hidden}.hero{height:94svh;min-height:680px;position:relative;display:grid;place-items:center;text-align:center;color:#fff}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(#16130f0d,#16130f18 48%,#16130f8c)}.heroText{position:relative;margin-top:42vh;text-shadow:0 2px 12px #0008}.heroText small,header small{font:11px Georgia,serif;letter-spacing:.2em}.heroText h1{font:500 31px "Batang",serif;margin:17px 0 8px}.heroText i{color:#f1d07b;font-family:Georgia,serif}.heroText p{font:13px Georgia,serif}.heroText span{font-size:12px}.sec{padding:72px 23px}.paper{background:#fffdf9}.warm{background:#f5eee5}header{text-align:center;margin-bottom:31px}header small{color:#b99a5d}header h2{font:500 20px "Batang",serif;margin:7px 0}header b{color:#8e9978}.invite{text-align:center;font:15px/2 "Batang",serif}.parents{border-block:1px solid #e3d9cc;margin-top:34px;padding:15px;text-align:center;font-size:12px}.parents p{margin:8px}.parents strong{font-weight:500}.time{text-align:center;font-family:"Batang",serif}.calendar{max-width:340px;margin:auto;background:#ffffffb8;border:1px solid #e3d9cc;border-radius:17px;padding:20px}.calendar h3{text-align:center;font:13px Georgia,serif}.week,.dates{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.week i{font:8px Georgia,serif;color:#8b8378}.dates span{height:30px;display:grid;place-items:center;font:10px Georgia,serif;border-radius:50%}.dates .empty{visibility:hidden}.dates .wedding{background:#8e9978;color:#fff}.count{text-align:center;margin-top:24px}.count span,.count small{display:block;font-size:10px;color:#8b8378}.count strong{display:block;font:34px Georgia,serif;color:#747e63;margin:8px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:7px}.g{border:0;padding:0;background:none;border-radius:11px;overflow:hidden}.g img{display:block;width:100%;height:100%;object-fit:cover}.g.wide{grid-column:1/-1}.g.wide img{aspect-ratio:1.48/1}.g.tall img{aspect-ratio:.72/1}.hint{text-align:center;color:#8b8378;font-size:10px}.quote{height:430px;position:relative;display:grid;place-items:center}.quote img{position:absolute;width:100%;height:100%;object-fit:cover}.quote div{position:absolute;inset:0;background:#2e281f55}.quote p{position:relative;color:white;text-align:center;font:18px/1.8 "Batang",serif;text-shadow:0 2px 10px #0008}.venue{text-align:center}.venue h3{font:500 21px "Batang",serif}.venue address{font-style:normal;font-size:11px;color:#8b8378}.map{height:205px;border:1px solid #e3d9cc;border-radius:14px;background:#f2ede4;margin-top:17px;display:flex;flex-direction:column;align-items:center;justify-content:center}.map span{font-size:35px;color:#8e9978}.map b{background:#fff;padding:6px 10px;border-radius:20px;font-size:10px}.maps,.buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.maps a,.buttons button{padding:12px;border:1px solid #e3d9cc;border-radius:10px;background:#fff;color:#49443e;text-decoration:none;font-size:12px}.venue dl{display:grid;grid-template-columns:80px 1fr;text-align:left;font-size:12px;margin-top:20px}.venue dt,.venue dd{padding:11px 0;border-top:1px solid #e3d9cc;margin:0}.venue dd{color:#8b8378}.account{border:1px solid #e3d9cc;border-radius:13px;background:#fff;overflow:hidden}.account>button{width:100%;border:0;background:#fff;padding:16px;display:flex;justify-content:space-between}.account #panel{max-height:0;overflow:hidden;transition:.3s}.account.open #panel{max-height:100px}#panel p{margin:0 15px 15px;padding:18px;background:#f5eee5;text-align:center;font-size:11px}.buttons #share{background:#8e9978;color:#fff}footer{text-align:center;background:#a8b092;color:#fff;padding:55px 20px 65px}footer strong{font:15px Georgia,serif;letter-spacing:.15em}footer span{display:block;font-size:10px;margin-top:7px}footer i{display:block;color:#f0ce76;margin:11px}.lightbox{position:fixed;inset:0;background:#0b0a09f2;z-index:999;display:none;align-items:center;justify-content:center;padding:12px}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:91vh}.lightbox button{position:absolute;right:16px;top:16px;border:0;border-radius:50%;width:42px;height:42px;background:#ffffff22;color:#fff;font-size:27px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#38342f;color:#fff;padding:10px 14px;border-radius:20px;font-size:11px;opacity:0}.toast.show{opacity:1}

/* V4 — 업체형 모션 & 교통/주차 카드 */
.heroReveal{
  opacity:0;
  transform:translateY(18px);
  filter:blur(5px);
  animation:heroEnter .95s cubic-bezier(.22,.8,.3,1) forwards;
}
.heroReveal--1{animation-delay:.28s}
.heroReveal--2{animation-delay:.62s}
.heroReveal--3{animation-delay:1.02s}
.heroReveal--4{animation-delay:1.30s}
@keyframes heroEnter{
  from{opacity:0;transform:translateY(18px);filter:blur(5px)}
  to{opacity:1;transform:translateY(0);filter:blur(0)}
}
.scrollReveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .75s ease,transform .75s cubic-bezier(.22,.8,.3,1);
}
.scrollReveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.accessCards{
  margin-top:22px;
  display:grid;
  gap:9px;
  text-align:left;
}
.accessCard{
  display:grid;
  grid-template-columns:78px 1fr;
  gap:10px;
  align-items:start;
  padding:14px 15px;
  background:rgba(255,255,255,.72);
  border:1px solid #e3d9cc;
  border-radius:12px;
  font-size:12px;
}
.accessCard b{font-weight:600}
.accessCard span{color:#665f56;line-height:1.65}
.accessCard small{color:#8b8378;font-size:10px}
@media (prefers-reduced-motion: reduce){
  .heroReveal{animation:none;opacity:1;transform:none;filter:none}
  .scrollReveal{opacity:1;transform:none;transition:none}
}

/* V5 gallery */
.gallery .gallery-last {
  grid-column: 1 / -1;
  width: calc(50% - 4px);
  justify-self: center;
}
.gallery .gallery-last img {
  aspect-ratio: .72 / 1;
}


/* V6 gallery layout:
   2902 full-width, then 3131/3177 and 3915/4221 in 2-column rows */
.gallery-v6{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:8px;
}
.gallery-v6 .gallery-v6-hero{
  grid-column:1 / -1;
  width:100%;
  border-radius:12px;
  overflow:hidden;
}
.gallery-v6 .gallery-v6-hero img{
  display:block;
  width:100%;
  aspect-ratio:1.5 / 1;
  object-fit:cover;
}
.gallery-v6 .gallery-v6-tile{
  width:100%;
  border-radius:12px;
  overflow:hidden;
}
.gallery-v6 .gallery-v6-tile img{
  display:block;
  width:100%;
  aspect-ratio:.76 / 1;
  object-fit:cover;
}
/* Disable older V5 last-item centering rule if still present */
.gallery-v6 .gallery-last{
  grid-column:auto;
  width:100%;
  justify-self:stretch;
}


/* V7 — 실제 위치 지도 */
.map-live{
  position:relative;
  display:block;
  overflow:hidden;
  padding:0;
  background:#eee8de;
}
.map-live iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  filter:saturate(.78) sepia(.08);
}
.map-live .map-label{
  position:absolute;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  z-index:2;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,253,249,.94);
  color:#49443e;
  font-size:10px;
  font-weight:700;
  box-shadow:0 3px 14px rgba(60,50,40,.16);
  white-space:nowrap;
  pointer-events:none;
}


/* V8 — 청첩장 전용 약도 */
.map-schematic{
  height:auto;
  padding:0;
  overflow:hidden;
  border:1px solid #e3d9cc;
  border-radius:14px;
  background:#f3eee5;
}
.map-schematic svg{
  display:block;
  width:100%;
  height:auto;
}
.map-schematic__caption{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
  padding:12px 14px 14px;
  background:#fffdf9;
  border-top:1px solid #e8dfd3;
  color:#6a6359;
  font-size:11px;
}
.map-schematic__caption strong{
  color:#58624b;
}
.map-schematic__arrow{
  color:#b49d74;
}


/* V9 — 약도 균형 개선 */
.map-schematic-v9{
  overflow:hidden;
  background:#f3eee5;
}
.map-schematic-v9 svg{
  display:block;
  width:100%;
  height:auto;
}
.map-schematic__note{
  padding:10px 14px 12px;
  text-align:center;
  border-top:1px solid #e7ded2;
  background:#fffdf9;
  color:#7c756b;
  font-size:10px;
  letter-spacing:.01em;
}
.map-schematic-v10{background:#f7f5f1;border:1px solid #e4ddd2;overflow:hidden}
.map-schematic-v10 svg{display:block;width:100%;height:auto}
.map-schematic-v10 .map-schematic__note{display:flex;flex-direction:column;gap:4px;padding:15px 18px 17px;background:#fffdf9;text-align:center;color:#746d63;font-size:13px;border-top:1px solid #ebe4da}
.map-schematic-v10 .map-schematic__note strong{color:#7f896e;font-size:15px;font-weight:800}

/* V11 — 지도 타이포그래피 및 비례 정돈 */
.map-schematic-v11{background:#f8f6f2;border:1px solid #e5ded4;overflow:hidden}
.map-schematic-v11 svg{display:block;width:100%;height:auto}
.map-schematic-v11 .map-schematic__note{display:flex;flex-direction:column;gap:3px;padding:11px 16px 13px;background:#fffdf9;text-align:center;border-top:1px solid #ebe4da;color:#8a8277;font-size:10px;line-height:1.45}
.map-schematic-v11 .map-schematic__note strong{color:#778167;font-size:12px;font-weight:750;letter-spacing:-.02em}

/* V12 map typography: compact, Google-map-inspired hierarchy */
.map-schematic-v11 .map-schematic__note{padding:10px 14px 12px;font-size:9.5px;gap:2px}
.map-schematic-v11 .map-schematic__note strong{font-size:10.5px;font-weight:650;letter-spacing:-.025em}

/* V13 */
.map-schematic-v11 .map-schematic__note span{font-size:8px;line-height:1.35;color:#9a9288;font-weight:400}
.musicToggle{position:fixed;right:max(16px,calc((100vw - 520px)/2 + 16px));bottom:20px;z-index:1200;width:42px;height:42px;border:1px solid #ffffff99;border-radius:50%;background:#7f896ed9;color:#fff;box-shadow:0 4px 16px #0002;font:20px Georgia,serif;cursor:pointer;backdrop-filter:blur(5px)}
.musicToggle.paused{background:#ffffffdc;color:#7f896e;border-color:#d9d0c4}


/* =========================
   V14 CINEMATIC WEDDING
   ========================= */

/* Hero: very subtle cinematic zoom */
.hero-cinematic{overflow:hidden}
.hero-cinematic__image{
  transform:scale(1.045);
  animation:heroKenBurns 14s ease-out forwards;
  will-change:transform;
}
@keyframes heroKenBurns{
  from{transform:scale(1.045) translate3d(0,0,0)}
  to{transform:scale(1.105) translate3d(0,-.6%,0)}
}
.hero-cinematic .shade{
  background:
    linear-gradient(180deg,rgba(18,15,11,.08) 0%,rgba(18,15,11,.12) 42%,rgba(18,15,11,.52) 100%),
    radial-gradient(circle at 50% 46%,transparent 42%,rgba(15,12,9,.12) 100%);
}

/* More refined section reveals */
.scrollReveal{
  transform:translateY(24px) scale(.992);
  filter:blur(2px);
  transition:
    opacity .85s ease,
    transform .85s cubic-bezier(.2,.72,.2,1),
    filter .8s ease;
}
.scrollReveal.is-visible{
  transform:translateY(0) scale(1);
  filter:blur(0);
}

/* Gallery cinematic micro-interaction */
.gallery-v6 .g{
  position:relative;
  box-shadow:0 5px 18px rgba(72,62,49,.07);
}
.gallery-v6 .g img{
  transition:transform .65s cubic-bezier(.2,.72,.2,1),filter .5s ease;
}
.gallery-v6 .g::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
  pointer-events:none;
}
.gallery-v6 .g:active img{transform:scale(1.025)}

/* Subtle petals - intentionally sparse */
.petalLayer{
  position:fixed;
  inset:0;
  z-index:1080;
  overflow:hidden;
  pointer-events:none;
}
.petal{
  position:absolute;
  top:-9vh;
  width:13px;
  height:9px;
  border-radius:80% 18% 80% 18%;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(244,225,216,.72));
  box-shadow:0 1px 3px rgba(130,100,90,.08);
  opacity:.64;
  transform-origin:center;
  animation:
    petalFall var(--fall) linear infinite,
    petalSway var(--sway) ease-in-out infinite alternate;
  animation-delay:var(--delay);
}
.petal:nth-child(3n){width:10px;height:7px;opacity:.48}
.petal:nth-child(4n){background:linear-gradient(135deg,rgba(255,250,247,.9),rgba(237,218,204,.65))}
@keyframes petalFall{
  0%{translate:0 -12vh;rotate:0deg}
  100%{translate:var(--drift) 116vh;rotate:540deg}
}
@keyframes petalSway{
  from{margin-left:-12px}
  to{margin-left:14px}
}

/* Music button: softer wedding UI */
.musicToggle{
  width:44px;
  height:44px;
  font-size:17px;
  background:rgba(119,129,103,.86);
  box-shadow:0 5px 22px rgba(61,55,45,.18);
  transition:transform .25s ease,background .25s ease,box-shadow .25s ease;
}
.musicToggle:not(.paused){
  animation:musicPulse 2.2s ease-in-out infinite;
}
.musicToggle:active{transform:scale(.93)}
@keyframes musicPulse{
  0%,100%{box-shadow:0 5px 18px rgba(61,55,45,.16),0 0 0 0 rgba(143,153,120,.20)}
  50%{box-shadow:0 5px 18px rgba(61,55,45,.16),0 0 0 7px rgba(143,153,120,0)}
}

/* Enhanced lightbox with navigation */
.lightbox{touch-action:pan-y}
.lightbox.open{display:flex}
.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  border:0;
  width:42px;
  height:54px;
  border-radius:16px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:34px;
  line-height:1;
  backdrop-filter:blur(5px);
}
.lightbox-prev{left:10px}
.lightbox-next{right:10px}
.lightbox-close{
  position:absolute;
  right:16px;
  top:16px;
  z-index:3;
}
.lightbox-count{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  padding:6px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.28);
  color:#fff;
  font:11px Georgia,serif;
  letter-spacing:.08em;
}
#big{
  transition:opacity .18s ease,transform .25s ease;
}
#big.lightbox-changing{
  opacity:.25;
  transform:scale(.985);
}

/* Ending scene */
.ending-scene{
  height:72svh;
  min-height:540px;
  position:relative;
  display:grid;
  place-items:end center;
  overflow:hidden;
  color:#fff;
  text-align:center;
}
.ending-scene>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.ending-scene__shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(22,19,15,.05),rgba(22,19,15,.14) 45%,rgba(22,19,15,.64)),
    radial-gradient(circle at 50% 38%,transparent,rgba(10,8,6,.12));
}
.ending-scene__copy{
  position:relative;
  z-index:2;
  padding:0 24px 54px;
  text-shadow:0 2px 13px rgba(0,0,0,.34);
}
.ending-scene__copy small{
  font:10px Georgia,serif;
  letter-spacing:.23em;
  opacity:.9;
}
.ending-scene__copy h2{
  margin:11px 0 12px;
  font:500 24px/1.5 "Batang",serif;
}
.ending-scene__copy p{
  margin:0 0 13px;
  font:14px/1.8 "Batang",serif;
}
.ending-scene__copy span{
  font:10px Georgia,serif;
  letter-spacing:.08em;
  opacity:.88;
}

@media (max-width:390px){
  .petal{opacity:.52}
  .ending-scene__copy h2{font-size:21px}
}
@media (prefers-reduced-motion:reduce){
  .hero-cinematic__image{animation:none;transform:none}
  .petalLayer{display:none}
  .musicToggle{animation:none!important}
}


/* =========================
   V16 LOCATION & NAME UPDATE
   ========================= */

.parents{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:center;
}
.parents p{
  margin:0;
  padding:13px 8px;
  font-family:"Batang",serif;
  font-size:14px;
}
.parents strong{
  font-weight:500;
}

/* User-provided wedding hall map */
.map-image-v16{
  position:relative;
  height:auto;
  padding:0;
  overflow:hidden;
  border:1px solid #e3d9cc;
  border-radius:14px;
  background:#f5f0e6;
}
.map-image-v16 img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:saturate(.82) sepia(.06) brightness(1.015);
}

/* Sage destination accent layered on the original black pin */
.map-v16-marker{
  position:absolute;
  left:61.8%;
  top:48.5%;
  width:42px;
  height:42px;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.map-v16-pin{
  position:absolute;
  inset:0;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  background:rgba(143,153,124,.94);
  box-shadow:0 4px 12px rgba(63,56,46,.18);
}
.map-v16-pin::after{
  content:"";
  position:absolute;
  width:13px;
  height:13px;
  border-radius:50%;
  background:#fffdf9;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}

.accessCard{
  grid-template-columns:82px 1fr;
}
.accessCard b{
  white-space:nowrap;
}

@media(max-width:390px){
  .parents{
    grid-template-columns:1fr;
  }
  .parents p{
    padding:8px;
  }
  .map-v16-marker{
    width:36px;
    height:36px;
  }
}


/* =========================
   V17 INVITATION + MAP
   ========================= */

.invitation-v17 .invite-v17{
  margin-top:4px;
  text-align:center;
  font:16px/2.05 "Batang",serif;
  color:#4c463f;
}
.invitation-v17 .invite-v17 p{
  margin:0;
}

.family-lines-v17{
  margin-top:34px;
  padding:25px 14px;
  border-top:1px solid #ded5c8;
  border-bottom:1px solid #ded5c8;
  text-align:center;
}
.family-lines-v17 p{
  margin:0;
  font-size:13px;
  line-height:2.15;
  color:#4f4a43;
}
.family-lines-v17 span{
  font-weight:600;
}
.family-lines-v17 strong{
  margin-left:5px;
  font-size:14px;
  font-weight:800;
}

.map-v17{
  padding:0;
  overflow:hidden;
  border:1px solid #ddd3c5;
  border-radius:14px;
  background:#f7f2e8;
}
.map-v17 svg{
  display:block;
  width:100%;
  height:auto;
}

@media(max-width:390px){
  .invitation-v17 .invite-v17{
    font-size:15px;
  }
  .family-lines-v17 p{
    font-size:12px;
  }
  .family-lines-v17 strong{
    display:inline;
    font-size:13px;
  }
}


/* =========================
   V19 — supplied map image
   ========================= */
.map-v19{
  padding:0;
  overflow:hidden;
  border:1px solid #ddd3c5;
  border-radius:14px;
  background:#f7f2e8;
}
.map-v19-canvas{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#f7f2e8;
}
.map-v19-canvas img{
  display:block;
  width:100%;
  height:auto;
}

/* Hide only the decorative '오시는 길' heading area,
   while keeping the compass and all road/landmark information visible. */
.map-v19-title-mask{
  position:absolute;
  z-index:2;
  left:23%;
  top:0;
  width:52%;
  height:15.5%;
  background:#f7f2e8;
  pointer-events:none;
}


/* =========================
   V20 — clean cropped map
   ========================= */
.map-v20{
  padding:0;
  overflow:hidden;
  border:1px solid #ddd3c5;
  border-radius:14px;
  background:#f7f2e8;
}
.map-v20 img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}


/* =========================
   V21 — revised supplied map
   ========================= */
.map-v21{
  padding:0;
  overflow:hidden;
  border:1px solid #ddd3c5;
  border-radius:14px;
  background:#f7f2e8;
}
.map-v21 img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}


/* =========================
   V22 — updated map image
   ========================= */
.map-v22{
  padding:0;
  overflow:hidden;
  border:1px solid #ddd3c5;
  border-radius:14px;
  background:#f7f2e8;
}
.map-v22 img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}


/* V27 contact & account details */
.contact-v27{max-width:360px;margin:0 auto}
.contact-call{display:grid;grid-template-columns:1fr auto;grid-template-areas:"role action" "phone action";align-items:center;gap:3px 14px;padding:16px 18px;border:1px solid #e3d9cc;border-radius:13px;background:#fff;color:#49443e;text-decoration:none;text-align:left}
.contact-role{grid-area:role;font-size:11px;color:#8b8378}
.contact-call strong{grid-area:phone;font-size:15px;font-weight:600;letter-spacing:.02em}
.contact-call em{grid-area:action;font-style:normal;font-size:11px;padding:8px 11px;border-radius:18px;background:#8e9978;color:#fff}
.account-v27 #panel{max-height:0;overflow:hidden;transition:max-height .38s ease,padding .25s ease;padding:0 12px}
.account-v27.open #panel{max-height:440px;padding:2px 12px 14px}
.account-card-v27{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 3px;border-top:1px solid #eee5d9;text-align:left}
.account-card-v27:first-child{border-top:0}
.account-copy-v27{display:flex;flex-direction:column;gap:3px;min-width:0}
.account-copy-v27 small{font-size:10px;color:#9a9186}
.account-copy-v27 strong{font-size:13px;color:#49443e}
.account-copy-v27 span{font-size:11px;color:#6e675f;word-break:keep-all}
.copy-account{border:1px solid #d9cfbf;background:#f8f3ea;color:#625c54;border-radius:16px;padding:7px 11px;font-size:10px;cursor:pointer}
.bride-account-note{margin:2px 0 0 !important;padding:12px 8px !important;background:transparent !important;border-top:1px solid #eee5d9;color:#8b8378;font-size:10px !important;text-align:left !important}




/* V29 contact accordions */
.contact-v29{max-width:360px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.contact-accordion{border:1px solid #e3d9cc;border-radius:13px;background:#fff;overflow:hidden}
.contact-accordion--compact{align-self:start}
.contact-toggle{width:100%;border:0;background:#fff;padding:15px 16px;text-align:left;align-items:center;color:#49443e;cursor:pointer}
.contact-toggle--compact{display:grid;grid-template-columns:1fr auto;grid-template-areas:"meta action";gap:0 8px}
.contact-toggle__meta{grid-area:meta;font-size:11px;color:#8b8378;line-height:1.35}
.contact-toggle__summary{grid-area:summary;font-size:12px;font-weight:600;color:#4f4942;line-height:1.45;word-break:keep-all}
.contact-toggle em{grid-area:action;justify-self:end;align-self:start;font-style:normal;font-size:10px;padding:7px 10px;border-radius:18px;background:#8e9978;color:#fff;white-space:nowrap}
.contact-accordion .contact-panel{max-height:0;overflow:hidden;transition:max-height .38s ease,padding .25s ease;padding:0 12px}
.contact-accordion.open .contact-panel{max-height:160px;padding:0 12px 12px}
.contact-panel__row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding-top:12px;border-top:1px solid #eee5d9;text-align:left}
.contact-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.contact-copy small,.contact-note-card small{font-size:10px;color:#9a9186}
.contact-copy span,.contact-note-card span{font-size:11px;color:#6e675f;line-height:1.55;word-break:keep-all}
.contact-action{border:1px solid #d9cfbf;background:#8e9978;color:#fff;border-radius:16px;padding:8px 11px;font-size:10px;text-decoration:none;white-space:nowrap}
.contact-note-card{padding-top:12px;border-top:1px solid #eee5d9;display:flex;flex-direction:column;gap:3px;text-align:left}
.account-v27.open #panel{max-height:580px;padding:2px 12px 14px}


.contact-body:empty{display:none;}


/* =========================
   V34 — NAVER Dynamic Map
   ========================= */
.naver-map-wrap{
  position:relative;
  margin-top:17px;
  border:1px solid #ddd3c5;
  border-radius:14px;
  overflow:hidden;
  background:#f7f2e8;
  box-shadow:0 5px 18px rgba(72,62,49,.06);
}
.naver-dynamic-map{
  width:100%;
  height:290px;
  background:#f2ede4;
}
@media (max-width:420px){
  .naver-dynamic-map{height:270px}
}
