/* ═══════════ 369웨딩 전용 테마 (cpa.css 다음 로드, body.wed 한정) ═══════════ */
/* vipnews(개인회생)는 영향 없음. 로맨틱 에디토리얼: 아이보리·로즈·샴페인골드. */

body.wed {
  --w-ivory: #fbf5f1; --w-cream: #ffffff; --w-ink: #3b2330; --w-ink-soft: #7a6069;
  --w-rose: #c0577a; --w-rose-d: #a8456a; --w-gold: #c79a5b; --w-gold-d: #b07f3c;
  --w-blush: #f6e3e4; --w-line: #eedfd9;
  --w-serif: "Gowun Batang", serif;
  --w-display: "Cormorant Garamond", "Gowun Batang", serif;
  /* readable 헤더 액센트를 로즈로 */
  --c-accent: #c0577a; --c-accent-soft: #f6e3e4;
  background: var(--w-ivory);
}
body.wed main { padding-bottom: 0; }            /* cpa의 sticky용 여백 제거 */
body.wed .site-header { border-bottom-color: var(--w-line); background: rgba(251,245,241,.86); }

.wed { color: var(--w-ink); line-height: 1.72; }
.wed em { font-style: normal; color: var(--w-rose); }

/* ── 히어로 ── */
.wed-hero {
  position: relative; overflow: hidden; text-align: center;
  padding: 108px 22px 78px;
  background:
    radial-gradient(80% 90% at 18% 8%, var(--w-blush) 0%, transparent 55%),
    radial-gradient(70% 80% at 92% 18%, #f7ecdc 0%, transparent 55%),
    linear-gradient(168deg, #fffaf6 0%, var(--w-ivory) 62%, #f7e7e6 100%);
}
.wed-hero-sm { padding: 84px 22px 52px; }
.wed-hero-deco {
  position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background:
    radial-gradient(36px 36px at 12% 70%, rgba(192,87,122,.18), transparent 70%),
    radial-gradient(60px 60px at 84% 78%, rgba(199,154,91,.18), transparent 70%),
    radial-gradient(rgba(192,87,122,.06) 1px, transparent 1px);
  background-size: auto, auto, 26px 26px;
}
.wed-hero-inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; }
.wed-eyebrow {
  display: inline-block; font-family: var(--w-display); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; font-size: .9rem;
  color: var(--w-rose-d); padding: 6px 16px; border: 1px solid rgba(192,87,122,.3);
  border-radius: 999px; margin-bottom: 26px; background: rgba(255,255,255,.55);
}
.wed-fresh {
  display: block; width: fit-content; margin: 0 auto 22px; padding: 5px 15px;
  font-family: var(--w-display); font-size: .92rem; font-weight: 600;
  letter-spacing: .01em; color: var(--w-rose-d);
  background: rgba(192,87,122,.08); border: 1px solid rgba(199,154,91,.4);
  border-radius: 999px;
}
.wed-fresh::before {
  content: "● "; color: var(--w-gold); font-size: .7em; vertical-align: middle;
}
.wed-back {
  display: inline-block; margin-bottom: 18px; color: var(--w-rose-d);
  text-decoration: none; font-weight: 600; font-size: .92rem;
}
.wed-back:hover { color: var(--w-rose); }
.wed-h1 {
  font-family: var(--w-serif); font-weight: 700;
  font-size: clamp(2.1rem, 6.4vw, 3.3rem); line-height: 1.34;
  letter-spacing: -.01em; margin: 0 auto 22px; max-width: 16ch;
  text-wrap: balance;
}
.wed-sub {
  font-size: 1.05rem; color: var(--w-ink-soft); line-height: 1.8;
  max-width: 30rem; margin: 0 auto; text-wrap: balance; word-break: keep-all;
}
.wed-hero-meta {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin-top: 30px; font-size: .82rem; color: var(--w-ink-soft); letter-spacing: .03em;
}
.wed-hero-meta i { width: 5px; height: 5px; border-radius: 50%; background: var(--w-gold); }

/* ── 섹션 ── */
.wed-section { max-width: 980px; margin: 0 auto; padding: 60px 20px 72px; }
.wed-sec-head { text-align: center; margin-bottom: 36px; }
.wed-kicker {
  display: block; font-family: var(--w-display); font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; font-size: .82rem; color: var(--w-gold-d);
  margin-bottom: 8px;
}
.wed-h2 {
  font-family: var(--w-serif); font-weight: 700; font-size: clamp(1.5rem, 4vw, 2.1rem);
  margin: 0; line-height: 1.35;
}
.wed-h2::after {
  content: ""; display: block; width: 40px; height: 2px; margin: 14px auto 0;
  background: linear-gradient(90deg, var(--w-rose), var(--w-gold));
}

/* ── 지역 선택 그리드 ── */
.wed-region-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px;
}
.wed-region {
  position: relative; display: flex; flex-direction: column; gap: 8px; isolation: isolate;
  background: linear-gradient(165deg, #ffffff 0%, #fdf1f0 100%);
  border: 1px solid var(--w-line); border-radius: 18px;
  padding: 22px 20px 20px; text-decoration: none; color: var(--w-ink); overflow: hidden;
  box-shadow: 0 12px 28px -22px rgba(59,35,48,.45);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
  animation: wed-rise .5s both; animation-delay: calc(var(--i, 0) * 38ms);
}
/* 상단 로즈·골드 액센트 라인 (호버 시 등장) */
.wed-region::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--w-rose), var(--w-gold));
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.wed-region:hover {
  transform: translateY(-4px); border-color: rgba(192,87,122,.4);
  background: linear-gradient(165deg, #ffffff 0%, #fbe6e7 100%);
  box-shadow: 0 22px 40px -22px rgba(192,87,122,.5);
}
.wed-region:hover::before { transform: scaleX(1); }
.wed-region-name { font-family: var(--w-serif); font-size: 1.34rem; font-weight: 700; line-height: 1.2; }
.wed-region-count {
  align-self: flex-start; font-size: .73rem; font-weight: 600; color: var(--w-gold-d);
  background: rgba(199,154,91,.13); padding: 4px 11px; border-radius: 999px;
}
.wed-region-go {
  position: absolute; right: 16px; top: 18px; color: var(--w-rose);
  font-size: 1.35rem; line-height: 1; opacity: .55; transition: transform .2s ease, opacity .2s ease;
}
.wed-region:hover .wed-region-go { transform: translateX(3px); opacity: 1; }

/* ── 업체 카드 ── */
.wed-cards {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(238px, 1fr)); gap: 20px;
}
.wed-card {
  display: flex; flex-direction: column; background: var(--w-cream);
  border-radius: 18px; overflow: hidden; border: 1px solid var(--w-line);
  box-shadow: 0 16px 38px -22px rgba(59,35,48,.55);
  transition: transform .2s ease, box-shadow .2s ease;
  animation: wed-rise .55s both; animation-delay: calc(var(--i, 0) * 45ms);
}
.wed-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(168,69,106,.5); }
/* 배너 이미지 전체가 잘리지 않게 contain(크롭 없음). 제목은 카드 아래 텍스트로. */
.wed-card-media {
  position: relative; aspect-ratio: 16 / 10;
  background-size: contain; background-position: center; background-repeat: no-repeat;
  background-color: #f3e7e4;
}
/* 이미지 없을 때: 카드별로 다른 로즈·샴페인 그라데이션 */
.wed-card-media--blank {
  background-image: linear-gradient(140deg,
    hsl(calc(338 - var(--i, 0) * 9), 52%, 74%),
    hsl(calc(28 + var(--i, 0) * 7), 48%, 70%));
}
.wed-tag {
  position: absolute; left: 12px; top: 12px; z-index: 1;
  background: rgba(255,255,255,.94); color: var(--w-rose-d); font-weight: 700;
  font-size: .72rem; letter-spacing: .02em; padding: 4px 11px; border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.wed-card-title {
  margin: 0 0 12px; color: var(--w-ink);
  font-family: var(--w-serif); font-weight: 700; font-size: 1.1rem; line-height: 1.4;
  word-break: keep-all;
}
.wed-card-body { padding: 14px 16px 16px; border-top: 1px solid var(--w-line); }
.wed-cta {
  display: block; text-align: center; text-decoration: none; font-weight: 700;
  font-size: .96rem; padding: 13px 18px; border-radius: 999px; color: #fff;
  background: linear-gradient(120deg, var(--w-rose), var(--w-rose-d));
  box-shadow: 0 10px 22px -10px rgba(168,69,106,.7);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wed-cta:hover { transform: translateY(-2px); filter: brightness(1.04);
  box-shadow: 0 14px 26px -10px rgba(168,69,106,.8); }

.wed-foot {
  text-align: center; font-size: .8rem; color: var(--w-ink-soft);
  max-width: 620px; margin: 34px auto 0; line-height: 1.6;
}

@keyframes wed-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (max-width: 560px) {
  .wed-hero { padding: 70px 20px 56px; }
  .wed-cards { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
  .wed-region-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .wed-region, .wed-card { animation: none; }
}
