/* =====================================================================
   오늘의 연인 — Company Suite (서브페이지 공통 스타일)
   · main.css 의 디자인 토큰/클래스를 그대로 상속하고
     서브페이지 전용 컴포넌트만 추가한다. (main.css 이후 로드)
   · 전역 요소(헤더/푸터/모달/퀵메뉴/스크롤리빌)는 main_footer 에서 자동 상속.
   ===================================================================== */

/* ---------------------------------------------------------------------
   0) FULLPAGE CHROME RESET (방어용)
   _FULLPAGE_ 가 적용되면 그누보드 기본 컨테이너(#container/#aside/제목)는
   애초에 출력되지 않는다. 다만 서버 PHP 캐시(OPcache)나 미배포로 head/tail
   변경이 아직 반영되지 않은 경우를 대비해, 컨테이너가 남더라도 풀폭으로
   펼쳐지도록 여기서 덮어쓴다.
   ※ company-suite.css 를 로드하는 풀디자인 페이지에만 적용됨.
     전역 default.css 는 게시판 등 다른 페이지가 공유하므로 절대 수정하지 않는다.
   --------------------------------------------------------------------- */
#aside{display:none !important}                /* 우측 회원/설문 박스 숨김 */
#container_title{display:none !important}      /* 페이지 제목은 sub-hero 가 대신 표시 */
#container_wr{margin:0 !important;max-width:none !important;width:auto !important}
#container{
  float:none !important;
  width:auto !important;     /* default.css 의 width:930px 해제 → 풀폭 */
  min-height:0 !important;
  margin:0 !important;       /* default.css 의 margin:20px 0 제거 */
  padding:0 !important;
  font-size:16px;            /* default.css 의 1em 상속값 정상화 */
}

/* ---------------------------------------------------------------------
   1) SUB HERO  — 모든 서브페이지 상단 비주얼 + 브레드크럼
   --------------------------------------------------------------------- */
.sub-hero{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  min-height:clamp(260px,38vw,440px);
  padding:clamp(56px,8vw,96px) var(--gutter);
  text-align:center;
  color:var(--on-dark);
  background:var(--dark);
  overflow:hidden;
}
.sub-hero .sh-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transform:scale(1.04);
  filter:grayscale(18%);
}
.sub-hero::after{ /* 가독성용 오버레이 */
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,9,6,.55),rgba(10,9,6,.68));
}
.sub-hero .sh-inner{position:relative;z-index:1;max-width:820px}
.sub-hero .eyebrow{display:block;margin-bottom:16px;color:var(--gold)}
.sub-hero h1{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(24px,3vw,36px);
  line-height:1.16;
  letter-spacing:.01em;
}
.sub-hero .sh-desc{
  margin:18px auto 0;max-width:640px;
  color:var(--sub-dark);
  font-size:clamp(14px,1.5vw,16.5px);
  line-height:1.8;
}

/* breadcrumb */
.crumb{
  position:relative;z-index:1;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;
  margin-top:26px;
  font-size:13.5px;letter-spacing:.06em;
  color:var(--sub-dark);
}
.crumb a{color:var(--sub-dark);transition:color .2s}
.crumb a:hover{color:var(--gold)}
.crumb .sep{opacity:.5;font-size:10px}
.crumb .cur{color:var(--on-dark);font-weight:600}

/* ---------------------------------------------------------------------
   2) MEDIA SPLIT  — 이미지 + 텍스트 2단 (소개/철학 도입부)
   --------------------------------------------------------------------- */
.cs-split{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(32px,5vw,72px);align-items:center;
}
.cs-split.rev{direction:rtl}
.cs-split.rev > *{direction:ltr}
.cs-split .cs-figure{
  position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);
}
.cs-split .cs-figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.cs-split .cs-figure .tag{
  position:absolute;left:18px;bottom:18px;
  padding:8px 16px;font-size:13px;letter-spacing:.18em;
  background:rgba(20,18,12,.6);color:var(--gold-soft);
  border:1px solid rgba(227,211,179,.4);backdrop-filter:blur(4px);
}
.cs-split .cs-body .eyebrow{display:block;margin-bottom:14px}
.cs-split .cs-body h2{
  font-size:clamp(20px,2.4vw,28px);font-weight:700;
  letter-spacing:-.02em;line-height:1.3;
}
.cs-split .cs-body h2 .thin{font-weight:300}
.cs-split .cs-body .rule{margin:22px 0 0;width:48px;height:1px;background:var(--gold)}

/* 본문 프로즈 (소개 문단 공통) */
.cs-prose{color:var(--sub);font-size:clamp(14.5px,1.4vw,16px);line-height:1.95}
.cs-prose p + p{margin-top:18px}
.cs-prose strong{color:var(--ink);font-weight:600}
.cs-prose em{color:var(--gold-deep);font-style:normal;font-weight:600}

/* ---------------------------------------------------------------------
   3) PILLARS  — 핵심 가치/원칙 3~4 카드
   --------------------------------------------------------------------- */
.cs-pillars{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.4vw,30px);
}
.cs-pillar{
  position:relative;
  padding:clamp(28px,3vw,40px) clamp(22px,2.4vw,32px);
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:transform .3s,box-shadow .3s,border-color .3s;
}
.section.ivory .cs-pillar{background:#fff}
.cs-pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-soft)}
.cs-pillar .num{
  font-family:var(--serif);font-size:34px;font-weight:600;
  color:var(--gold);line-height:1;
}
.cs-pillar h3{
  margin:16px 0 10px;font-size:19px;font-weight:700;letter-spacing:-.01em;
}
.cs-pillar p{color:var(--sub);font-size:16px;line-height:1.8}

/* ---------------------------------------------------------------------
   3b) VALUES  — 서비스가 지향하는 가치 4-up (번호 + 한 줄)
   --------------------------------------------------------------------- */
.cs-values{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(20px,3vw,44px);
}
.cs-value{border-top:1px solid var(--line);padding-top:24px}
.cs-value .n{
  display:block;font-family:var(--serif);font-size:clamp(26px,3vw,34px);
  font-weight:600;color:var(--gold);line-height:1;margin-bottom:14px;
}
.cs-value h4{font-size:16px;font-weight:700;color:var(--ink);line-height:1.6}
@media (max-width:900px){ .cs-values{grid-template-columns:repeat(2,1fr);gap:24px} }
@media (max-width:520px){ .cs-values{grid-template-columns:1fr} }

/* ---------------------------------------------------------------------
   4) CEO GREETING  — 인사말 + 서명
   --------------------------------------------------------------------- */
.cs-quote{
  max-width:880px;margin:0 auto;text-align:center;
}
.cs-quote .mark{
  font-family:var(--serif);font-size:64px;line-height:.6;
  color:var(--gold-soft);
}
.cs-quote blockquote{
  margin:14px 0 0;
  font-family:var(--serif);
  font-size:clamp(18px,2vw,24px);
  font-weight:600;line-height:1.55;letter-spacing:-.01em;
  color:inherit;
}
.section.dark .cs-quote blockquote{color:var(--on-dark)}
.cs-quote .q-body{
  margin:26px auto 0;max-width:680px;
  color:var(--sub);font-size:16.5px;line-height:1.95;
}
/* 단락마다 한 줄 띄워 마침표 뒤 문장이 다음 단락에서 시작되도록 */
.cs-quote .q-body p{margin-bottom:1.05em}
.cs-quote .q-body p:last-child{margin-bottom:0}
.section.dark .cs-quote .q-body{color:var(--sub-dark)}
.cs-sign{
  display:inline-flex;flex-direction:column;align-items:center;gap:4px;
  margin-top:34px;
}
.cs-sign .role{font-size:13.5px;letter-spacing:.16em;color:var(--gold-deep)}
.section.dark .cs-sign .role{color:var(--gold)}
.cs-sign .name{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.02em}

/* ---------------------------------------------------------------------
   5) FIGURE STRIP  — 가벼운 수치/요약 한 줄
   --------------------------------------------------------------------- */
.cs-figs{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
}
.cs-figs .fig{
  padding:clamp(24px,3vw,38px) 18px;text-align:center;
  border-right:1px solid var(--line);
}
.cs-figs .fig:last-child{border-right:0}
.cs-figs .fig .v{font-family:var(--serif);font-size:clamp(28px,3.4vw,40px);font-weight:600;color:var(--ink)}
.cs-figs .fig .v .u{font-size:.5em;color:var(--gold-deep);margin-left:3px;font-family:var(--sans);font-weight:600}
.cs-figs .fig .l{margin-top:8px;font-size:14px;color:var(--sub);letter-spacing:.02em}

/* ---------------------------------------------------------------------
   5b) MANAGER  — 매니저(성혼 전문가) 프로필 카드
   --------------------------------------------------------------------- */
.mgr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,28px)}
.mgr-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s;
}
.mgr-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-soft)}
.mgr-card .photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--ivory2)}
.mgr-card .photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(12%);transition:transform .55s}
.mgr-card:hover .photo img{transform:scale(1.05)}
.mgr-card .photo .role{
  position:absolute;left:0;bottom:0;
  padding:7px 14px;font-size:12.5px;letter-spacing:.14em;
  color:#1a1408;background:var(--gold);
}
.mgr-card .info{padding:22px 22px 26px}
.mgr-card .name{font-size:20px;font-weight:700;letter-spacing:-.01em}
.mgr-card .name small{
  display:block;margin-top:5px;font-family:var(--serif);
  font-size:14px;font-weight:500;letter-spacing:.14em;color:var(--gold-deep);
}
.mgr-card .tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 12px}
.mgr-card .tags span{
  font-size:12.5px;padding:4px 11px;border:1px solid var(--line-2);
  border-radius:999px;color:var(--sub);
}
.mgr-card .bio{font-size:15px;color:var(--sub);line-height:1.78}
@media (max-width:860px){ .mgr-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:480px){ .mgr-grid{grid-template-columns:1fr} }

/* ---------------------------------------------------------------------
   6) RESPONSIVE
   --------------------------------------------------------------------- */
@media (max-width:860px){
  .cs-split{grid-template-columns:1fr;gap:28px}
  .cs-split.rev{direction:ltr}
  .cs-split .cs-figure img{aspect-ratio:16/10}
  .cs-pillars{grid-template-columns:1fr}
  .cs-figs{grid-template-columns:repeat(2,1fr)}
  .cs-figs .fig:nth-child(2){border-right:0}
  .cs-figs .fig:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:480px){
  .cs-figs{grid-template-columns:1fr}
  .cs-figs .fig{border-right:0;border-bottom:1px solid var(--line)}
  .cs-figs .fig:last-child{border-bottom:0}
}

/* =====================================================================
   7) LAYOUT VARIANTS  — 구조 다양화용 컴포넌트
      (페이지마다 다른 리듬을 주기 위해 sec-head/카드 반복을 피한다)
   ===================================================================== */

/* 7a) 좌측 정렬 섹션 헤더 (가운데 정렬 .sec-head 대안) */
.lead-head{max-width:680px;margin:0 0 clamp(34px,4vw,54px)}
.lead-head .eyebrow{display:block;margin-bottom:16px}
.lead-head h2{font-size:clamp(22px,2.6vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.25;color:inherit}
.lead-head h2 .thin{font-weight:300}
.lead-head .lead{margin-top:18px;color:var(--sub);font-size:clamp(16px,1.5vw,18px)}
.section.dark .lead-head .lead{color:var(--sub-dark)}
.lead-head .rule{margin:22px 0 0}

/* 7a-2) 가격 리스트 (프리미엄 클래스 등 — 가격표 톤) */
.price-list{width:100%;max-width:680px;margin:0 auto;border-top:1px solid var(--line)}
.section.dark .price-list{border-color:var(--line-dark)}
.price-list .pl-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:20px 6px;border-bottom:1px solid var(--line)}
.section.dark .price-list .pl-row{border-color:var(--line-dark)}
.price-list .pl-name{font-family:var(--serif);font-size:clamp(18px,2vw,22px);font-weight:600;color:inherit}
.price-list .pl-price{font-family:var(--serif);font-size:clamp(18px,2vw,22px);font-weight:600;color:var(--gold-deep);white-space:nowrap}
.section.dark .price-list .pl-price{color:var(--gold)}

/* 7b) 오시는 길 — 큰 지도 + 다크 정보 패널 (좌우 비대칭) */
.loc-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.loc-map{position:relative;border-radius:var(--radius);overflow:hidden;min-height:400px;box-shadow:var(--shadow)}
.loc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(8%)}
.loc-info{background:var(--dark);color:var(--on-dark);border-radius:var(--radius);padding:clamp(28px,3vw,42px)}
.loc-info h3{font-family:var(--serif);font-size:25px;font-weight:600;margin-bottom:10px}
.loc-info .addr{color:var(--sub-dark);font-size:16px;line-height:1.7}
.loc-info dl{margin-top:24px;border-top:1px solid var(--line-dark)}
.loc-info dl > div{display:flex;gap:16px;padding:15px 0;border-bottom:1px solid var(--line-dark)}
.loc-info dt{flex:0 0 76px;font-size:13px;letter-spacing:.1em;color:var(--gold)}
.loc-info dd{font-size:15.5px;color:var(--on-dark);line-height:1.6}
.loc-info .loc-cta{margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}
.loc-info .loc-cta .btn{padding:12px 20px;min-height:44px;font-size:14px}

/* 7c) 교통 안내 — 3분할 */
.loc-ways{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.loc-ways .way{padding:clamp(26px,3vw,38px);border-right:1px solid var(--line)}
.loc-ways .way:last-child{border-right:0}
.loc-ways .way .ic{font-size:26px}
.loc-ways .way h4{margin:14px 0 8px;font-size:17px;font-weight:700}
.loc-ways .way p{color:var(--sub);font-size:15.5px;line-height:1.7}

/* 7d) 큰 번호 에디토리얼 리스트 (프리미엄) */
.cs-feature-rows{border-top:1px solid var(--line)}
.section.dark .cs-feature-rows{border-color:var(--line-dark)}
.cs-feature-rows .row{
  display:grid;grid-template-columns:120px 1fr; align-items:self-start; padding:clamp(26px,3.4vw,44px) 0;border-bottom:1px solid var(--line);
}
.section.dark .cs-feature-rows .row{border-color:var(--line-dark)}
.cs-feature-rows .row .n{font-family:var(--serif);font-size:clamp(34px,4vw,54px);color:var(--gold);line-height:1}
.cs-feature-rows .row h3{font-size:clamp(19px,2vw,24px);font-weight:700;margin-bottom:10px;color:inherit}
.cs-feature-rows .row p{color:var(--sub);font-size:16.5px;line-height:1.85;max-width:640px}
.section.dark .cs-feature-rows .row p{color:var(--sub-dark)}

/* 7e) 타임라인 (인증 프로세스) — 데스크탑: 가로 4단계 스텝퍼 / 모바일: 세로 */
.cs-timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,44px)}
.cs-timeline::before{content:"";position:absolute;left:7px;right:7px;top:7px;height:1px;background:var(--line-2)}
.section.dark .cs-timeline::before{background:var(--line-dark)}
.cs-timeline .step{display:block;position:relative;padding:34px 16px 0 0}
.cs-timeline .step::before{content:"";position:absolute;left:0;top:0;width:15px;height:15px;border-radius:50%;background:var(--bg);border:2px solid var(--gold)}
.section.ivory .cs-timeline .step::before{background:var(--ivory)}
.section.dark .cs-timeline .step::before{background:var(--dark)}
.cs-timeline .step .t{font-size:13px;letter-spacing:.14em;color:var(--gold-deep)}
.cs-timeline .step h4{font-size:18px;font-weight:700;margin:6px 0 8px;color:inherit}
.cs-timeline .step p{color:var(--sub);font-size:16px;line-height:1.8}
@media (max-width:860px){
  .cs-timeline{grid-template-columns:1fr;gap:0;padding-left:34px}
  .cs-timeline::before{left:7px;right:auto;top:6px;bottom:6px;width:1px;height:auto}
  .cs-timeline .step{padding:0 0 28px}
  .cs-timeline .step:last-child{padding-bottom:0}
  .cs-timeline .step::before{left:-34px;top:3px}
}

/* 7f) 타깃 칩 (소셜) */
.cs-target{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:840px;margin:0 auto}
.cs-target .chip{padding:12px 22px;border:1px solid var(--line-2);border-radius:999px;font-size:16px;background:#fff;transition:transform .25s,border-color .25s,color .25s}
.cs-target .chip:hover{border-color:var(--gold);color:var(--gold-deep);transform:translateY(-3px)}
.cs-target .chip b{color:var(--gold-deep);font-weight:600}

/* 7g) 체크리스트 (혜택) */
.cs-checks{display:grid;grid-template-columns:repeat(4,1fr);gap:0 40px;max-width:none;margin:0}
@media (max-width:1100px){ .cs-checks{grid-template-columns:repeat(2,1fr)} }
.cs-checks li{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);font-size:16.5px;color:var(--ink)}
.section.dark .cs-checks li{border-color:var(--line-dark);color:var(--on-dark)}
.cs-checks li::before{content:"✓";color:var(--gold);font-weight:700;flex:0 0 auto}

/* 7h) 가로 플로우 스텝 (소셜) */
.cs-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px)}
.cs-flow .fstep{padding-top:18px}
.cs-flow .fstep .n{font-family:var(--serif);font-size:16.5px;color:var(--gold-deep);letter-spacing:.1em;font-weight:600}
.cs-flow .fstep h4{margin:8px 0 8px;font-size:17px;font-weight:700}
.cs-flow .fstep p{color:var(--sub);font-size:15px;line-height:1.7}

/* 7i) 직업별 배너 (네모박스 · 클릭 → 상담 모달) */
.jobs-banner{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(14px,1.8vw,22px)}
.jb{
  position:relative;grid-column:span 2;min-height:290px;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(22px,2.4vw,32px);text-align:left;
  border:0;border-radius:var(--radius);overflow:hidden;cursor:pointer;
  color:var(--on-dark);background:var(--dark);font-family:var(--sans);
}
.jb.wide{grid-column:span 3}
.jb .jb-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(20%) brightness(.5);transition:transform .6s}
/* 카드 전체를 강하게 어둡게 + 하단은 거의 검정 — 어떤 밝은 사진에서도 확실히 가독 */
.jb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,5,3,.5) 0%,rgba(6,5,3,.72) 45%,rgba(6,5,3,.98) 100%)}
.jb:hover .jb-bg{transform:scale(1.06)}
.jb > *{position:relative;z-index:1}
.jb .jb-en{font-size:12.5px;letter-spacing:.22em;color:var(--gold-soft);text-shadow:0 1px 8px rgba(0,0,0,.8)}
.jb .jb-label{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);font-weight:700;margin:8px 0 6px;text-shadow:0 2px 20px rgba(0,0,0,.95)}
.jb .jb-desc{font-size:15.5px;color:#fff;line-height:1.6;max-width:360px;text-shadow:0 1px 14px rgba(0,0,0,.9)}
.jb .jb-go{margin-top:16px;font-size:14px;font-weight:700;letter-spacing:.06em;display:inline-flex;align-items:center;gap:8px;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.jb .jb-go::after{content:"→";color:var(--gold);transition:transform .25s}
.jb:hover .jb-go::after{transform:translateX(5px)}
@media (max-width:860px){ .jobs-banner{grid-template-columns:repeat(2,1fr)} .jb,.jb.wide{grid-column:auto} .jb{min-height:230px} }
@media (max-width:520px){ .jobs-banner{grid-template-columns:1fr} }

@media (max-width:860px){
  .lead-head{margin-left:auto;margin-right:auto;text-align:center}
  .lead-head .rule{margin-left:auto;margin-right:auto}
  .loc-grid{grid-template-columns:1fr}
  .loc-map{min-height:0;aspect-ratio:16/11}
  .loc-ways{grid-template-columns:1fr}
  .loc-ways .way{border-right:0;border-bottom:1px solid var(--line)}
  .loc-ways .way:last-child{border-bottom:0}
  .cs-feature-rows .row{grid-template-columns:60px 1fr;}
  .cs-checks{grid-template-columns:1fr;max-width:480px;margin:0 auto}
  .cs-flow{grid-template-columns:repeat(2,1fr);gap:26px}
}
@media (max-width:480px){
  .cs-flow{grid-template-columns:1fr}
}

/* =====================================================================
   8) PARTY PAGE (프라이빗 파티 전용)
      · 자매 페이지(jobs/location/premium)의 디테일 수준에 맞춰
        아이콘은 Font Awesome(전역 로드), 가격은 세리프 골드 강조,
        상태(모집중/마감임박/마감)는 배지·카드 톤으로 위계 표현.
   ===================================================================== */

/* 8a) Party Grid & Card */
.party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,30px)}
.party-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s,box-shadow .3s,border-color .3s;
}
.party-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-soft)}
.party-card .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--dark)}
.party-card .thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%) brightness(.9);transition:transform .6s}
.party-card:hover .thumb img{transform:scale(1.05)}

/* 상태 배지 — 모집중(골드)·마감임박(긴박)·마감(소거) */
.party-card .badge{
  position:absolute;top:14px;left:14px;z-index:1;
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 13px;font-size:12px;font-weight:700;letter-spacing:.1em;
  color:#1a1408;background:var(--gold);border-radius:4px;
}
.party-card .badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.party-card .badge.soon{background:#b4452f;color:#fff}
.party-card .badge.closed{background:var(--line-dark);color:var(--sub-dark)}
.party-card .badge.closed::before{display:none}

.party-card .info{padding:24px;flex:1;display:flex;flex-direction:column}
.party-card .info h3{font-size:18px;font-weight:700;line-height:1.4;margin-bottom:16px;word-break:keep-all}

/* 메타 (날짜/장소/인원) — FA 아이콘 골드 정렬 */
.party-meta{margin-bottom:18px;flex:1}
.party-meta li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--sub);margin-bottom:9px;line-height:1.5}
.party-meta li:last-child{margin-bottom:0}
.party-meta li .ic{flex:0 0 15px;text-align:center;color:var(--gold);font-size:14px;margin-top:2px}

/* 가격 — 홈 .p-price 컨벤션과 동일한 세리프 골드 강조 */
.party-card .price{
  display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  padding:14px 0;margin-bottom:16px;border-top:1px solid var(--line);
}
.party-card .price .lbl{font-size:13px;letter-spacing:.06em;color:var(--sub)}
.party-card .price .amt{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--gold-deep)}
.party-card .price .amt .won{margin-left:2px;font-family:var(--sans);font-size:.6em;font-weight:600;color:var(--sub)}

/* 할인 배지 (가격 우상단) */
.party-card .badge.sale{left:auto;right:14px;background:#b4452f;color:#fff}
.party-card .badge.sale::before{display:none}

/* 남녀 차등 가격 (3040 파티 등) */
.party-card .price.price-dual{display:flex;justify-content:space-between;gap:14px}
.party-card .price-dual .pr-col{display:flex;flex-direction:column;gap:3px}
.party-card .price-dual .pr-col:last-child{text-align:right;align-items:flex-end}
.party-card .price-dual .pr-sex{font-size:12.5px;letter-spacing:.08em;color:var(--sub)}
.party-card .price-dual .pr-amt{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--gold-deep);line-height:1.15}
.party-card .price-dual .pr-amt .was{display:block;font-family:var(--sans);font-size:12.5px;font-weight:400;color:#b3a99a;text-decoration:line-through}
.party-card .price-dual .pr-amt .won{margin-left:1px;font-family:var(--sans);font-size:.62em;font-weight:600;color:var(--sub)}

.party-card .btn-wrap{margin-top:auto}
.party-card .btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}

/* 웰컴 드링크 선택 (라디오 칩) */
.bev-choice{display:flex;flex-wrap:wrap;gap:10px}
.bev-choice label{flex:1 1 0;min-width:90px;cursor:pointer}
.bev-choice input{position:absolute;opacity:0;width:0;height:0}
.bev-choice span{display:block;text-align:center;padding:12px 10px;font-size:15.5px;color:var(--ink);
  border:1px solid var(--line-2);border-radius:6px;background:var(--bg);transition:border-color .2s,background .2s,color .2s}
.bev-choice label:hover span{border-color:var(--gold-soft)}
.bev-choice input:checked + span{border-color:var(--gold);background:#fff;color:var(--gold-deep);font-weight:600;box-shadow:0 0 0 2px rgba(201,169,106,.15)}
.bev-choice input:focus-visible + span{border-color:var(--gold)}

/* 8f) 파티 일정표 (날짜 클릭 → 상세 모달) */
.sched-wrap{max-width:920px;margin:0 auto}
.sched-table{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.sched-table th{font-size:13.5px;letter-spacing:.06em;color:var(--sub);font-weight:600;padding:14px 12px;border-bottom:1px solid var(--line);text-align:left}
.sched-row{cursor:pointer;transition:background .2s}
.sched-row:hover{background:var(--ivory)}
.sched-row:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.sched-row td{padding:18px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.sched-row .s-date b{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink)}
.sched-row .s-date .dow{margin-left:6px;font-size:14px;color:var(--gold-deep)}
.sched-row .s-time{font-size:15.5px;color:var(--sub);white-space:nowrap}
.sched-row .s-title{font-weight:700;font-size:16.5px;color:var(--ink)}
.sched-row .s-title small{display:block;margin-top:4px;font-size:13.5px;font-weight:400;color:var(--sub)}
.sched-row .s-price{font-family:var(--serif);font-size:16.5px;font-weight:600;color:var(--gold-deep);white-space:nowrap}
.sched-row .s-price i{color:var(--line-2);font-style:normal;margin:0 3px}
.sched-row .s-price em{font-style:normal;font-family:var(--sans);font-size:12px;font-weight:400;color:var(--sub);margin-left:2px}
.sched-row .s-price .was{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--sub);text-decoration:line-through;margin-right:6px}
.sched-row .s-apply{text-align:right;font-weight:700;color:var(--gold-deep);white-space:nowrap}
.sched-row.is-closed .s-apply{color:var(--sub);font-weight:400}
.sched-empty{padding:36px 16px;text-align:center;color:var(--sub);font-size:16.5px}
.sched-empty .adm{display:block;margin-top:8px;font-size:14px;color:var(--gold-deep)}
.sched-row .s-go{white-space:nowrap}
.sched-row .s-go span{display:inline-block;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.sched-row .s-go .badge-sale{background:#b4452f;color:#fff;margin-right:6px}
.sched-row .badge-open{background:var(--gold);color:#1a1408}
.sched-row .badge-soon{background:#b4452f;color:#fff}
.sched-row .badge-closed{background:var(--line);color:var(--sub)}
.sched-row.is-closed{opacity:.5}
.sched-hint{margin-top:16px;text-align:center;font-size:14px;color:var(--sub)}
.sched-hint i{color:var(--gold)}
@media(max-width:680px){
  .sched-table,.sched-table tbody,.sched-table tr,.sched-table td{display:block;width:100%}
  .sched-table thead{display:none}
  .sched-table{border-top:0}
  .sched-row{position:relative;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:8px 10px}
  .sched-row td{border-bottom:0;padding:5px 6px}
  .sched-row .s-go{position:absolute;top:12px;right:12px}
}

/* 8g) 파티 상세 모달 (다크 — 가격표 톤) */
.party-modal-bg{display:none;position:fixed;inset:0;z-index:320;background:rgba(8,7,5,.66);backdrop-filter:blur(3px);align-items:center;justify-content:center;padding:24px}
.party-modal-bg.on{display:flex}
.party-modal{position:relative;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;background:#2b2a27;color:#efe9dd;border-radius:6px;padding:clamp(32px,4.5vw,46px) clamp(26px,4vw,40px);box-shadow:0 30px 80px rgba(0,0,0,.5);outline:1px solid rgba(201,169,106,.4);outline-offset:-11px;text-align:center}
.party-modal .x{position:absolute;top:13px;right:17px;font-size:26px;line-height:1;color:rgba(239,233,221,.55);background:none;border:none;cursor:pointer}
.party-modal .x:hover{color:#fff}
.party-modal .pd-eyebrow{display:block;font-size:12.5px;letter-spacing:.26em;color:var(--gold);margin-bottom:10px}
.party-modal .pd-title{font-family:var(--serif);font-size:clamp(22px,3vw,27px);font-weight:600;color:#fff}
.party-modal .pd-when{margin-top:10px;font-size:15.5px;color:var(--gold-soft)}
.party-modal .pd-note{margin-top:8px;font-size:15px;color:var(--sub-dark);line-height:1.7}
.party-modal .pd-prices{display:flex;gap:14px;margin:24px 0 28px}
.party-modal .pd-col{flex:1;padding:18px 10px;border:1px solid rgba(201,169,106,.3);border-radius:var(--radius)}
.party-modal .pd-sex{display:block;font-size:13px;letter-spacing:.08em;color:var(--gold)}
.party-modal .pd-was{display:block;margin-top:8px;font-size:13.5px;color:rgba(239,233,221,.45);text-decoration:line-through}
.party-modal .pd-amt{display:block;margin-top:3px;font-family:var(--serif);font-size:22px;font-weight:600;color:#fff}
.party-modal .pd-single{display:none;margin:24px 0 28px;padding:22px 14px;border:1px solid rgba(201,169,106,.3);border-radius:var(--radius)}
.party-modal .pd-single .pd-was{margin-top:0}
.party-modal .pd-amt-big{display:block;margin-top:4px;font-family:var(--serif);font-size:34px;font-weight:600;color:var(--gold)}
.party-modal .pd-vat{display:block;margin-top:8px;font-size:13px;color:var(--sub-dark)}

/* 마감 카드 — 전체를 흐리게 + 흑백 처리로 상태를 명확히 */
.party-card.is-closed{opacity:.78}
.party-card.is-closed .thumb img{filter:grayscale(100%) brightness(.78)}
.party-card.is-closed:hover{transform:none;box-shadow:none;border-color:var(--line)}
.party-card.is-closed:hover .thumb img{transform:none}

/* 8b) Application Form (좌측 폼) */
.pay-form-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,3vw,42px);box-shadow:var(--shadow)}
.pay-form-wrap h3{font-size:20px;font-weight:700;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--gold-soft)}

.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}
.form-group{margin-bottom:16px}
.form-group.full{grid-column:span 2}
.form-label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px}
.form-control{width:100%;padding:14px 16px;font-size:16px;color:var(--ink);border:1px solid var(--line-2);border-radius:6px;background:var(--bg);transition:border-color .2s,background .2s}
.form-control:focus{outline:none;border-color:var(--gold);background:#fff}
.form-control.is-picked{border-color:var(--gold);background:#fffaf0;box-shadow:0 0 0 3px rgba(201,169,106,.25)}
.form-control::placeholder{color:#b3a99a}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}

/* 8c) Order Summary (우측 다크 패널 — loc-info 상속, 일부만 덮어씀) */
.pay-summary{position:sticky;top:100px}
.pay-summary .addr{transition:color .2s}
.pay-summary .addr.is-selected,.pay-summary .addr.is-selected strong{color:#fff;font-weight:600}
.pay-summary dl{margin-top:24px}
.pay-summary dl > div{justify-content:space-between}
.pay-summary dl dt{flex:0 0 auto}
.pay-summary dl dd{text-align:right}
.pay-summary .total-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:18px 0 0;padding-top:18px;border-top:1px solid var(--line-dark)}
.pay-summary .total-row .total-label{font-size:14px;letter-spacing:.1em;color:var(--gold)}
.pay-summary .total-price{font-family:var(--serif);font-size:32px;color:var(--gold);font-weight:600;text-align:right}
.pay-summary .agree-wrap{margin-top:24px;font-size:14px;color:var(--sub-dark)}
.pay-summary .agree-wrap label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;line-height:1.6}
.pay-summary .agree-wrap label + label{margin-top:10px}
.pay-summary .agree-wrap input[type="checkbox"]{margin-top:3px;accent-color:var(--gold)}
.pay-summary .pay-submit{width:100%;min-height:54px;margin-top:30px;font-size:16px}
/* 신청 전 제출 서류 미리보기 (다크 안내패널 내부 아코디언) */
.pay-summary .doc-peek{margin-top:22px;border:1px solid var(--line-dark);border-radius:var(--radius);overflow:hidden}
.pay-summary .doc-peek summary{list-style:none;cursor:pointer;padding:13px 16px;font-size:14px;font-weight:600;color:var(--on-dark);display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.04)}
.pay-summary .doc-peek summary::-webkit-details-marker{display:none}
.pay-summary .doc-peek summary > i{color:var(--gold)}
.pay-summary .doc-peek summary .dp-ic{margin-left:auto;color:var(--gold);font-size:18px;line-height:1;transition:transform .2s}
.pay-summary .doc-peek[open] summary .dp-ic{transform:rotate(45deg)}
.pay-summary .doc-peek-body{padding:6px 16px 16px}
.pay-summary .dp-lead{font-size:13px;color:var(--sub-dark);margin:2px 0 11px}
.pay-summary .dp-list{display:flex;flex-direction:column;gap:7px;margin:0}
.pay-summary .dp-list li{position:relative;padding-left:19px;font-size:13.5px;color:var(--on-dark);line-height:1.5}
.pay-summary .dp-list li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--gold);font-weight:700}
.pay-summary .dp-more{display:inline-block;margin-top:13px;font-size:13px;color:var(--gold);font-weight:600}
.pay-summary .dp-more:hover{text-decoration:underline}

/* 8d) 안내·에티켓 — loc-ways 재사용 시 FA 아이콘 골드 처리(이 페이지 한정) */
.party-ways .way .ic{color:var(--gold);font-size:24px}

/* 8e) 파티 페이지 반응형 */
@media (max-width:992px){
  .party-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .form-row{grid-template-columns:1fr;gap:0}
  .form-group.full{grid-column:auto}
  .pay-summary{position:relative;top:0}
}
@media (max-width:580px){
  .party-grid{grid-template-columns:1fr}
}

/* =====================================================================
   9) 이벤트 / 안내 / 서류 업로드 공통 컴포넌트
   (event.php · insurance.php · mydocs.php 에서 사용)
   ===================================================================== */

/* 9a) 프로모션 히어로 (event.php) */
.promo-hero{max-width:840px;margin:0 auto;text-align:center;
  background:linear-gradient(180deg,#fffdf8,#fff);border:1px solid var(--gold-soft);
  border-radius:var(--radius);padding:clamp(34px,5vw,60px) clamp(22px,4vw,52px);
  box-shadow:var(--shadow)}
.promo-flag{display:inline-block;font-size:13px;letter-spacing:.22em;color:#fff;
  background:var(--gold-deep);padding:6px 16px;border-radius:999px;margin-bottom:20px}
.promo-headline{font-family:var(--serif);font-weight:600;line-height:1.4;
  font-size:clamp(21px,3vw,30px);color:var(--ink)}
.promo-headline .hl{font-size:1.12em}
.promo-headline .amt{color:var(--gold-deep)}
.promo-headline em{color:var(--gold-deep);font-style:normal;font-weight:700}
.promo-sub{margin-top:18px;font-size:clamp(15px,1.6vw,17px);color:var(--sub);line-height:1.8}
.promo-sub strong{color:var(--gold-deep);font-weight:700}
.promo-cta{margin-top:28px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* 9a-2) 파티 요금 카드 (event.php — 30% 할인 파티비) */
.rate-group{max-width:920px;margin:0 auto}
.rate-sub{display:flex;align-items:center;gap:12px;margin:32px 0 16px;
  font-size:15.5px;letter-spacing:.1em;color:var(--gold-deep);font-weight:700}
.rate-sub::after{content:"";flex:1;height:1px;background:var(--line)}
.rate-group:first-of-type .rate-sub{margin-top:0}
.rate-card{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(20px,2.4vw,28px);margin-bottom:14px;box-shadow:var(--shadow)}
.rc-day{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.04em;
  color:#fff;background:var(--gold-deep);border-radius:999px;padding:4px 12px;margin-bottom:10px}
.rc-head h4{font-family:var(--serif);font-size:clamp(19px,2.2vw,24px);font-weight:600;color:var(--ink);line-height:1.25}
.rc-head h4 span{display:block;font-size:.62em;color:var(--sub);letter-spacing:.04em}
.rc-time{margin-top:8px;font-size:15px;color:var(--sub);line-height:1.6}
.rc-price{display:flex;flex-direction:column;gap:8px}
.rc-p{display:flex;align-items:baseline;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.rc-p .g{font-size:13.5px;font-weight:700;color:var(--ink);background:#f0ebe1;border-radius:6px;padding:3px 9px;margin-right:auto}
.rc-p .was{font-size:14px;color:#b3a99a;text-decoration:line-through}
.rc-p b{font-family:var(--serif);font-size:clamp(19px,2.2vw,23px);font-weight:700;color:var(--gold-deep)}
.rc-p small{font-size:12px;color:var(--sub);width:100%;text-align:right}
.rc-note{font-size:14px;color:var(--sub);line-height:1.7}
.rc-note strong{color:var(--ink)}
@media (max-width:640px){
  .rate-card{grid-template-columns:1fr;gap:14px}
  .rc-p{justify-content:space-between}
  .rc-p small{text-align:left}
}

/* 9a-3) 파티 달력 + 상세 모달 (Party.php) */
.rate-card[data-party]{cursor:pointer;transition:box-shadow .15s,border-color .15s}
.rate-card[data-party]:hover{border-color:var(--gold);box-shadow:0 22px 60px rgba(30,24,12,.14)}

.party-cal{border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.party-switch .pc-slide{display:none}
.party-switch .pc-slide.on{display:block}
.pc-head{display:flex;align-items:center;justify-content:space-between;
  padding:12px 10px;background:var(--ink);color:var(--on-dark)}
.pc-head .yr{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.06em}
.pc-head .yr .mon{font-style:normal;font-size:15px;opacity:.7;margin-left:6px}
.pc-nav{background:transparent;border:0;color:var(--on-dark);font-family:inherit;
  font-size:30px;line-height:1;cursor:pointer;padding:2px 18px;border-radius:8px;
  transition:background .15s,opacity .15s}
.pc-nav:hover:not(:disabled){background:rgba(255,255,255,.14)}
.pc-nav:disabled{opacity:.25;cursor:default}
.pc-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.pc-dow{padding:10px 0;text-align:center;font-size:13px;font-weight:700;color:var(--sub);
  background:#f7f4ef;border-bottom:1px solid var(--line)}
.pc-dow.sun{color:#c0392b}
.pc-dow.sat{color:#2c6fb3}
.pc-cell{min-height:92px;padding:8px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.pc-cell:nth-child(7n){border-right:0}
.pc-cell .dnum{font-size:14px;font-weight:600;color:var(--ink)}
.pc-cell.sun .dnum{color:#c0392b}
.pc-cell.sat .dnum{color:#2c6fb3}
.pc-cell.pc-empty{background:#fcfbf8}
.pc-cell.has{cursor:pointer;transition:background .15s}
.pc-cell.has:hover{background:#fffaf0}
.pc-cell.has:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.pc-cell .ev{display:block;margin-top:6px;font-size:12px;font-weight:700;line-height:1.25;
  padding:5px 6px;border-radius:5px;color:#fff;background:var(--gold-deep)}
/* 파티별 고유 색 — 구분이 한눈에 되도록 (달력 뱃지 + 범례 dot 동일 색)
   ※ .pc-cell .ev 보다 우선하도록 선택자 특이도를 높임 */
.pc-cell .ev.ev--sweet,   .pc-legend .dot.ev--sweet   {background:#b5566f}  /* 목 · Sweet & Fantasy — 로즈 */
.pc-cell .ev.ev--burning, .pc-legend .dot.ev--burning {background:#c0573b}  /* 금 · Burning Friday — 앰버 */
.pc-cell .ev.ev--episode, .pc-legend .dot.ev--episode,
.pc-cell .ev.ev--episode1,.pc-legend .dot.ev--episode1{background:#3a7d8f}  /* 토 · Episode(1·3주) — 틸 */
.pc-cell .ev.ev--romantic,.pc-legend .dot.ev--romantic{background:#8a6aa3}  /* 토 · Romantic — 모브 */
.pc-cell .ev.ev--premium, .pc-legend .dot.ev--premium {background:#1f1c16}  /* 토 · Premium — 프리미엄 다크 */
.pc-cell .ev.ev--premium{box-shadow:inset 0 0 0 1px var(--gold)}
/* 8월 파티 색 (테마별 그룹) */
.pc-cell .ev.ev--a_talking,   .pc-legend .dot.ev--a_talking,
.pc-cell .ev.ev--a_soulmate,  .pc-legend .dot.ev--a_soulmate  {background:#b5566f}  /* 목 · 3040 6:6 — 로즈 */
.pc-cell .ev.ev--a_momentum,  .pc-legend .dot.ev--a_momentum,
.pc-cell .ev.ev--a_timeless,  .pc-legend .dot.ev--a_timeless  {background:#c0573b}  /* 금 · 3040 8:8 — 앰버 */
.pc-cell .ev.ev--a_coffee,    .pc-legend .dot.ev--a_coffee,
.pc-cell .ev.ev--a_coffee66,  .pc-legend .dot.ev--a_coffee66  {background:#3a7d8f}  /* 2030 커피챗 — 틸 */
.pc-cell .ev.ev--a_eternal,   .pc-legend .dot.ev--a_eternal   {background:#8a6aa3}  /* 와인 · 오피니언리더 — 모브 */
.pc-cell .ev.ev--a_romantic,  .pc-legend .dot.ev--a_romantic  {background:#7d5a96}  /* 와인 · 4050 만혼돌싱 — 딥모브 */
.pc-cell .ev.ev--a_augromance,.pc-legend .dot.ev--a_augromance{background:#a9743f}  /* 와인 · 3040 8:8 — 브론즈 */
.pc-cell .ev.ev--a_newbegin,  .pc-legend .dot.ev--a_newbegin  {background:#6a5a8a}  /* 와인 · 만혼돌싱 — 인디고모브 */
.pc-cell .ev.ev--a_prestige,  .pc-legend .dot.ev--a_prestige  {background:#1f1c16}  /* 와인 · 탑티어 — 프리미엄 다크 */
.pc-cell .ev.ev--a_prestige{box-shadow:inset 0 0 0 1px var(--gold)}

/* 파티별 색 범례 (달력 아래) */
.pc-legend{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.pc-legend .pcl-item{display:flex;align-items:center;gap:9px;cursor:pointer;
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px 8px 12px;
  transition:border-color .15s,box-shadow .15s}
.pc-legend .pcl-item:hover,.pc-legend .pcl-item:focus-visible{border-color:var(--gold);
  box-shadow:0 6px 18px rgba(30,24,12,.10);outline:none}
.pc-legend .dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}
.pc-legend .pcl-day{font-size:12.5px;font-weight:700;color:var(--gold-deep)}
.pc-legend .pcl-name{font-size:15px;font-weight:600;color:var(--ink)}
.pc-legend .pcl-price{font-size:13.5px;color:var(--sub)}
.pc-legend .pcl-price b{font-family:var(--serif);font-size:16.5px;color:var(--gold-deep);font-weight:700}
/* 모달 날짜 배지 — 파티 색 반영 */
.pcal-date.acc--sweet{background:#b5566f}
.pcal-date.acc--burning{background:#c0573b}
.pcal-date.acc--episode,.pcal-date.acc--episode1{background:#3a7d8f}
.pcal-date.acc--romantic{background:#8a6aa3}
.pcal-date.acc--premium{background:#1f1c16}
.pcal-date.acc--a_talking,.pcal-date.acc--a_soulmate{background:#b5566f}
.pcal-date.acc--a_momentum,.pcal-date.acc--a_timeless{background:#c0573b}
.pcal-date.acc--a_coffee,.pcal-date.acc--a_coffee66{background:#3a7d8f}
.pcal-date.acc--a_eternal{background:#8a6aa3}
.pcal-date.acc--a_romantic{background:#7d5a96}
.pcal-date.acc--a_augromance{background:#a9743f}
.pcal-date.acc--a_newbegin{background:#6a5a8a}
.pcal-date.acc--a_prestige{background:#1f1c16}

/* 상세 모달 (날짜/카드 클릭) */
.pcal-modal-bg{display:none;position:fixed;inset:0;z-index:330;background:rgba(8,7,5,.66);
  align-items:center;justify-content:center;padding:24px}
.pcal-modal-bg.on{display:flex}
.pcal-modal{position:relative;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;
  background:#fff;border-radius:var(--radius);padding:clamp(30px,4vw,44px) clamp(24px,3.5vw,38px);
  box-shadow:0 30px 80px rgba(0,0,0,.45)}
.pcal-modal .x{position:absolute;top:12px;right:16px;font-size:26px;line-height:1;color:var(--sub);
  background:none;border:none;cursor:pointer}
.pcal-modal .x:hover{color:var(--ink)}
.pcal-date{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.04em;color:#fff;
  background:var(--gold-deep);border-radius:999px;padding:4px 12px;margin-bottom:12px}
.pcal-name{font-family:var(--serif);font-size:clamp(20px,2.4vw,26px);font-weight:600;color:var(--ink);line-height:1.25}
.pcal-meta{margin-top:10px;font-size:15px;color:var(--sub);line-height:1.6}
.pcal-wine{margin-top:10px;display:inline-block;font-size:14px;font-weight:700;color:var(--gold-deep);
  background:#f0ebe1;border:1px solid var(--gold-soft);border-radius:999px;padding:6px 14px}
.pcal-wine small{font-weight:500;color:var(--sub)}
.bev-hint{margin-top:8px;font-size:13.5px;color:var(--gold-deep);font-weight:600}
.pcal-rows{margin:22px 0 26px;border-top:1px solid var(--line)}
.pcal-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:14px 2px;border-bottom:1px dashed var(--line)}
.pcal-row .g{font-size:15px;font-weight:700;color:var(--ink);background:#f0ebe1;border-radius:6px;padding:3px 10px}
.pcal-row .pr{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.pcal-row .pr .was{font-size:13.5px;color:#b3a99a;text-decoration:line-through}
.pcal-row .pr b{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--gold-deep)}
.pcal-row .pr small{font-size:12px;color:var(--sub);margin-top:2px}
@media (max-width:560px){
  .pc-cell{min-height:62px;padding:5px 3px}
  .pc-cell .ev{font-size:8.5px;padding:2px 3px}
  .pc-dow{font-size:12px}
}

/* 9b) 유의사항 박스 (event/insurance/mydocs) */
.notice-box{margin:0 auto;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:clamp(24px,3vw,36px);box-shadow:var(--shadow)}
.notice-box h4{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:16px}
.notice-box h4 i{color:var(--gold-deep);margin-right:6px}
.notice-box ul{list-style:none;margin:0;padding:0}
.notice-box li{position:relative;padding-left:20px;margin:11px 0;font-size:17px;
  color:var(--sub);line-height:1.8}
.notice-box li::before{content:"·";position:absolute;left:4px;color:var(--gold-deep);font-weight:700}
.notice-box li strong{color:var(--ink);font-weight:600}
.notice-box li.muted{color:#a89c89;font-size:15.5px}

/* 9c) 청구·지급 절차도 — 플로우차트 (insurance.php) */
.ins-wide .sec-head{max-width:none}        /* insurance.php 전용: 헤더 폭 제한 해제 */
.claim-flow{margin:0 auto;text-align:center}
.cf-node{background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:20px 24px;font-size:clamp(17px,1.8vw,19px);font-weight:600;color:var(--ink);
  box-shadow:var(--shadow);max-width:600px;margin:0 auto}
.cf-node.cf-start{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}
.cf-node.cf-decision{border:1.5px solid var(--gold);background:#fffdf8;
  border-radius:999px;font-family:var(--serif)}
.cf-node.cf-pay{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep);
  font-family:var(--serif);font-size:clamp(17px,2vw,20px);letter-spacing:.04em}
.cf-note{max-width:600px;margin:10px auto 0;font-size:15px;color:var(--sub);
  background:#f7f4ef;border:1px dashed var(--line);border-radius:8px;padding:10px 16px}
.cf-arrow{width:2px;height:30px;background:var(--gold);margin:8px auto;position:relative}
.cf-arrow::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--gold)}
/* 결정 노드의 분기: '없음/성립 → 보험금 지급' */
.cf-split{display:inline-flex;align-items:center;gap:10px;margin:12px auto 0;
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 14px}
.cf-tag{display:inline-block;font-size:13px;font-weight:700;color:#fff;
  background:var(--sub);border-radius:999px;padding:3px 11px}
.cf-tag-no{background:#3f7d5a}            /* 없음/성립 = 긍정(바로 지급) */
.cf-tag-warn{background:#b6663a}          /* 불성립 = 다음 단계로 */
.cf-to{color:var(--gold-deep);font-weight:700}
.cf-pay-pill{font-size:14px;font-weight:700;color:#fff;background:var(--gold-deep);
  border-radius:999px;padding:5px 14px}
.cf-yes{margin-top:10px}
.cf-yes .cf-tag{background:var(--ink)}

/* 9d) 서류 업로드 (mydocs.php) */
.doc-grade{max-width:520px;margin:0 0 30px;padding:22px 24px;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius)}
.doc-prof{display:flex;align-items:flex-start;gap:8px;margin-top:14px;
  font-size:15.5px;color:var(--sub);cursor:pointer;line-height:1.5}
.doc-prof input{margin-top:2px;accent-color:var(--gold)}
.doc-block{margin-bottom:34px}
.doc-block-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;
  color:var(--ink);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--gold-soft)}
.db-tag{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--sub);
  background:#f0ebe1;border-radius:999px;padding:3px 10px}
.db-tag-gold{color:#fff;background:var(--gold-deep)}
.doc-list{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.doc-row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.doc-row:last-child{border-bottom:0}
.doc-row.is-done{background:#fbfaf6}
.doc-meta{min-width:0}
.doc-name{display:block;font-size:16.5px;font-weight:600;color:var(--ink)}
.doc-desc{display:block;font-size:13.5px;color:var(--sub);margin-top:3px}
.doc-act{display:flex;align-items:center;gap:12px;flex-shrink:0}
.doc-status{font-size:13.5px;color:#b3a99a;max-width:160px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;text-align:right}
.doc-row.is-done .doc-status{color:var(--gold-deep);font-weight:600}
.btn-file{cursor:pointer;padding:9px 16px;font-size:14px;min-height:auto}
.doc-submit{margin-top:30px;max-width:520px}
.doc-submit-note{margin-top:12px;font-size:13.5px;color:var(--sub);text-align:center}

@media (max-width:520px){
  .doc-row{flex-direction:column;align-items:flex-start;gap:10px}
  .doc-act{width:100%;justify-content:space-between}
  .doc-status{text-align:left}
}

/* ===================== 파티 진행순서 (전체폭 세로 타임라인) =====================
   cs-feature-rows 의 '큰 번호 + 제목 + 본문' 에디토리얼 어휘를 세로 타임라인으로
   확장. 박스 없이 wrap 전체폭을 쓰고, 행 사이는 연결선으로만 잇는다. */
.flow-list{position:relative;border-top:1px solid var(--line)}
.flow-step{display:grid;grid-template-columns:clamp(72px,9vw,120px) 1fr; align-items:flex-start;padding:clamp(24px,3.2vw,40px) 0;border-bottom:1px solid var(--line)}
.flow-step .fs-no{font-family:var(--serif);font-size:clamp(30px,3.6vw,48px);color:var(--gold);line-height:1}
.flow-step .fs-head{display:flex; align-items:center; flex-wrap:wrap;gap:8px 14px;margin-bottom:10px}
.flow-step .fs-title{font-size:clamp(18px,2vw,22px);font-weight:700;color:var(--ink)}
.flow-step .fs-time{font-size:13px;letter-spacing:.04em;font-weight:600;color:var(--gold-deep);
  background:#f0ebe1;border-radius:999px;padding:3px 11px;white-space:nowrap}
.flow-step ul{margin:0;padding:0;list-style:none}
.flow-step ul li{position:relative;padding-left:20px;margin:6px 0;font-size:16.5px;color:var(--sub);line-height:1.85}
.flow-step ul li::before{content:"·";position:absolute;left:5px;color:var(--gold-deep);font-weight:700}

/* ===================== 드레스코드 (기본 카드 + dt/dd 행) ===================== */
.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,30px)}
.dress-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;box-shadow:var(--shadow)}
.dress-card .dc-head{padding:16px clamp(18px,2vw,24px);font-size:16.5px;font-weight:700;color:var(--on-dark);
  background:var(--dark);display:flex;align-items:center;gap:10px}
.dress-card .dc-head i{color:var(--gold)}
.dress-card .dc-body{padding:clamp(18px,2vw,24px)}
.dress-row{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.dress-row:last-child{border-bottom:0}
.dress-row .dr-g{flex:0 0 44px;font-size:14px;font-weight:700;color:var(--gold-deep)}
.dress-row .dr-t{font-size:15.5px;color:var(--sub);line-height:1.7}

.party-rules{margin-top:clamp(24px,3vw,40px)}

/* ===================== 자주 묻는 질문 (네이티브 details 아코디언 · 전체폭) ===================== */
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px;
  padding:clamp(20px,2.2vw,26px) 4px;font-size:clamp(17px,1.7vw,19px);font-weight:600;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .q{flex:0 0 auto;font-family:var(--serif);font-size:1.05em;color:var(--gold-deep);font-weight:700;margin-bottom:0}
.faq-item summary .ic{margin-left:auto;flex:0 0 auto;font-size:22px;line-height:1;color:var(--gold-deep);
  transition:transform .25s}
.faq-item[open] summary .ic{transform:rotate(45deg)}
.faq-item .a{padding:0 4px 26px 38px;color:var(--sub);font-size:16.5px;line-height:1.9}

/* ===================== 오픈 체크리스트 (긴 문장용 · 숙지사항) =====================
   cs-checks 는 flex 라 한 문장에 <strong> 이 섞이면 칸이 쪼개진다. 여기서는
   ✓ 를 절대배치해 문장이 한 덩어리로 자연스럽게 흐르도록 한다. (전체폭 2단) */
.check-list{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(32px,5vw,72px);
  border-top:1px solid var(--line)}
.check-list li{position:relative;padding:clamp(15px,1.7vw,20px) 4px clamp(15px,1.7vw,20px) 30px;
  border-bottom:1px solid var(--line);font-size:16px;line-height:1.8;color:var(--sub)}
.check-list li::before{content:"✓";position:absolute;left:4px;top:clamp(15px,1.7vw,20px);
  color:var(--gold);font-weight:700;font-size:15px;line-height:1.8}
.check-list li strong{color:var(--ink);font-weight:700}

/* 섹션 내 서브 블록 헤딩 (숙지사항 / 제출서류 등) */
.blk-head{display:flex;align-items:center;gap:10px;font-size:clamp(18px,2vw,22px);font-weight:700;color:var(--ink);
  margin:clamp(40px,5vw,64px) 0 clamp(16px,2vw,22px)}
.blk-head i{color:var(--gold-deep);font-size:.9em}
.lead-head + .blk-head{margin-top:0}

/* 파티 참석 전 제출 서류 — 칩 + 안내 */
.doc-chips{display:flex;flex-wrap:wrap;gap:10px 12px}
.doc-chips span{padding:11px 20px;border:1px solid var(--line-2);border-radius:999px;background:#fff;
  font-size:15px;color:var(--ink);line-height:1}
.doc-note{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:15px;font-weight:600;color:var(--gold-deep)}
.doc-note i{color:var(--gold)}

/* 제출 서류 설명 칸 (서류별 용도 + 개인정보 안내) */
.doc-guide{margin-top:clamp(20px,2.4vw,30px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:clamp(22px,2.6vw,32px)}
.doc-guide .dg-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px}
.dg-row{display:grid;grid-template-columns:clamp(96px,13vw,150px) 1fr;gap:clamp(12px,2.5vw,28px);
  align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.dg-row:last-of-type{border-bottom:0}
.dg-row .dg-k{font-size:14px;font-weight:700;color:var(--gold-deep)}
.dg-row .dg-v{font-size:15px;color:var(--sub);line-height:1.7}
.doc-guide .dg-priv{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:14px;color:var(--sub)}
.doc-guide .dg-priv i{color:var(--gold-deep)}
@media (max-width:560px){ .dg-row{grid-template-columns:1fr;gap:3px;padding:11px 0} }

/* ===================== 할인 이벤트 팝업 ===================== */
.promo-pop{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(15,13,9,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.promo-pop.on{display:flex}
.pp-card{position:relative;width:100%;max-width:420px;background:#fff;border-radius:var(--radius);
  padding:clamp(36px,5vw,50px) clamp(26px,4vw,40px);text-align:center;box-shadow:var(--shadow)}
.pp-card .pp-x{position:absolute;top:14px;right:16px;font-size:26px;line-height:1;color:var(--sub);
  background:none;border:none;cursor:pointer}
.pp-card .eyebrow{display:block;margin-bottom:14px}
.pp-card h3{font-family:var(--serif);font-size:clamp(24px,3vw,30px);font-weight:600;color:var(--ink);line-height:1.32}
.pp-card h3 b{color:var(--gold-deep)}
.pp-card p{margin:16px 0 26px;color:var(--sub);font-size:15.5px;line-height:1.85}
.pp-card p b{color:var(--ink);font-weight:700}
.pp-hide{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-size:13.5px;color:var(--sub);cursor:pointer}
.pp-hide input{width:15px;height:15px;accent-color:var(--gold-deep)}

@media (max-width:640px){
  .dress-grid{grid-template-columns:1fr}
  .flow-step{grid-template-columns:54px 1fr;gap:16px}
  .check-list{grid-template-columns:1fr}
}