/* ============================================================
   FREE-PASS MASTER PROGRAM — 전용 스타일 (freepass.css)
   detail.css 공통 규칙(:root 변수, .sub-label, .sub-section-title 등)을
   그대로 상속하여 사용하고, 이 페이지에서만 필요한 구조를 추가 정의합니다.
   ============================================================ */

/* ============================================================
   SECTION 1: HERO (인트로 배경 + 화이트 텍스트 테마)
   ============================================================ */
.freepass-hero::before {content:'';position:absolute;inset:0;background-image:url('../images/hero-bg.jpg');background-size:cover;background-position:center;z-index:0;filter:brightness(1.08) saturate(1.05);}
.freepass-hero .intro-overlay {background:linear-gradient(to bottom,rgba(17,17,17,0.14) 0%,rgba(17,17,17,0.34) 100%);}
.freepass-hero .intro-label {color:#eaf3ee;}
.freepass-hero .intro-title {color:var(--color-white);}
.title-accent {color:var(--color-green);}
.intro-en-sub {font-family:var(--font-en);font-size:26px;font-weight:400;color:#eaf3ee;letter-spacing:0.12em;margin-bottom:26px;}
.freepass-hero .intro-sub {color:rgba(255,255,255,0.92);}
.freepass-hero .scroll-line {background:linear-gradient(to bottom,rgba(255,255,255,0.85),rgba(255,255,255,0));}
.freepass-hero .scroll-text {color:rgba(255,255,255,0.75);}

/* ============================================================
   SECTION 3: 티켓 프로그램 소개
   (상표등록 섹션과 동일한 about-figure/about-img 규격을 그대로 사용)
   ============================================================ */
.section-ticket-intro {padding:var(--section-padding);background:var(--color-gray-light);}
.ticket-intro-reverse .about-text-wrap {padding-left:0;padding-right:20px;}

/* ── 배경 없이 이미지만 노출하는 공용 클래스 (원데이 프리패스 티켓 이미지 등에서 사용) ── */
.ticket-image-wrap {display:flex;align-items:center;justify-content:center;}
.ticket-figure {background:none;border-radius:0;overflow:visible;width:100%;}
.ticket-img {height:auto;width:100%;object-fit:contain;border-radius:0;}

/* ============================================================
   SECTION 4: RE'EV VIP BENEFIT
   ============================================================ */
.section-benefit {padding:var(--section-padding);background:var(--color-white);}
.benefit-grid {list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.benefit-card {background:var(--color-gray-light);border-radius:var(--radius);overflow:hidden;transition:box-shadow 0.3s ease,transform 0.3s ease;}
.benefit-card:hover {transform:translateY(-4px);box-shadow:0 16px 40px rgba(17,17,17,0.08);}
.benefit-card-head {background:var(--color-green);padding:26px 32px;}
.benefit-title {font-family:var(--font-ko);font-size:20px;font-weight:500;color:var(--color-white);margin:0;line-height:1.6;word-break:keep-all;}
.benefit-tag {font-family:var(--font-ko);font-size:20px;font-weight:400;color:var(--color-white);margin-right:10px;}
.benefit-card-body {padding:28px 32px 34px;}
.benefit-card-body p {font-family:var(--font-ko);font-size:17px;font-weight:300;color:var(--color-black);line-height:1.85;opacity:0.78;margin:0;word-break:keep-all;}

/* ============================================================
   SECTION 5: VIP 라운지 & 프라이빗룸
   ============================================================ */
.section-lounge {padding:var(--section-padding);background:var(--color-gray-light);}
.lounge-eyebrow {font-family:var(--font-ko);font-size:24px;font-weight:400;color:var(--color-green);display:block;margin-bottom:16px;}
.lounge-grid {list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.lounge-card {background:var(--color-white);border-radius:var(--radius);overflow:hidden;}
.lounge-image-wrap {overflow:hidden;}
.lounge-img {width:100%;height:380px;object-fit:cover;transition:transform 0.8s ease;display:block;}
.lounge-img:hover {transform:scale(1.03);}
.lounge-content {padding:36px 36px 40px;}
.lounge-title {font-family:var(--font-ko);font-size:22px;font-weight:500;color:var(--color-black);margin-bottom:16px;line-height:1.4;}
.lounge-desc {font-family:var(--font-ko);font-size:17px;font-weight:300;color:var(--color-black);line-height:1.85;opacity:0.78;word-break:keep-all;margin:0;}

/* ============================================================
   SECTION 6: 프로그램 유형
   ============================================================ */
.section-program {padding:var(--section-padding);background:var(--color-white);}
.program-intro-grid {display:grid;grid-template-columns:0.6fr 1.4fr;gap:48px;align-items:center;margin-bottom:36px;}
.program-ticket-image-wrap {max-width:380px;margin:0 auto;}
.program-intro-title {font-family:var(--font-ko);font-size:26px;font-weight:600;color:var(--color-green);margin-bottom:20px;}
.program-intro-desc {font-family:var(--font-ko);font-size:17px;font-weight:300;color:var(--color-black);line-height:1.9;opacity:0.82;word-break:keep-all;}

.program-cards {display:flex;flex-direction:column;gap:32px;}
.program-card {background:var(--color-gray-light);border-radius:var(--radius);overflow:hidden;}
.program-card-head {display:flex;align-items:center;background:var(--color-green);padding:30px 36px;}
.program-card-headtext {width:100%;display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;}
.program-card-title {font-family:var(--font-ko);font-size:22px;font-weight:600;color:var(--color-white);margin:0;line-height:1.6;word-break:keep-all;}
.program-card-note {font-family:var(--font-ko);font-size:17px;font-weight:400;color:rgba(255,255,255,0.88);margin:0;}
.program-card-body {padding:32px 36px 38px;display:flex;flex-direction:column;gap:14px;}
.program-item-text {font-family:var(--font-ko);font-size:17px;font-weight:300;color:var(--color-black);line-height:1.9;opacity:0.82;word-break:keep-all;margin:0;}
.program-item-bracket {font-weight:400;opacity:0.92;}
.program-variant {display:flex;flex-direction:column;gap:8px;padding:18px 22px;background:var(--color-white);border-radius:calc(var(--radius) - 6px);}
.program-variant-label {font-family:var(--font-ko);font-size:20px;font-weight:600;color:var(--color-green);}
.program-divider {display:block;border:none;border-top:1px solid var(--color-gray-mid);margin:96px 0;}

/* ============================================================
   SECTION 7: 하단 배너
   ============================================================ */
.section-banner {position:relative;padding:160px 0;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:#c8c4be;}
.section-banner::before {content:'';position:absolute;inset:0;background-image:url('../images/footer-bg.jpg');background-size:cover;background-position:center;z-index:0;filter:brightness(0.78);}
.banner-overlay {position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(0,0,0,0.28) 0%,rgba(0,0,0,0.48) 100%);}
.banner-content {position:relative;z-index:2;max-width:960px;margin:0 auto;padding:0 24px;text-align:center;}
.banner-title {font-family:var(--font-en);font-size:40px;font-weight:500;color:var(--color-white);display:block;margin-bottom:24px;}
.banner-desc {font-family:var(--font-ko);font-size:20px;font-weight:400;color:var(--color-white);line-height:1.7;margin-bottom:18px;word-break:keep-all;}
.banner-sub {font-family:var(--font-ko);font-size:17px;font-weight:300;color:rgba(255,255,255,0.9);line-height:1.9;word-break:keep-all;margin:0;}

/* ============================================================
   RESPONSIVE — TABLET (max 1100px)
   ============================================================ */
@media (max-width:1100px) {
  .benefit-grid {grid-template-columns:1fr;}
  .lounge-grid {grid-template-columns:1fr;}
  .program-intro-grid {grid-template-columns:1fr;gap:36px;}
  .lounge-img {height:320px;}
  .ticket-intro-reverse .about-text-wrap {padding-right:0;}
  .ticket-intro-reverse .about-image-wrap {order:-1;}
}

/* ============================================================
   RESPONSIVE — MOBILE (max 768px)
   ============================================================ */
@media (max-width:768px) {
  .intro-en-sub {font-size:19px;letter-spacing:0.08em;margin-bottom:20px;}
  .benefit-card-head {padding:22px 24px;}
  .benefit-title {font-size:16px;}
  .benefit-tag {font-size:16px;}
  .benefit-card-body {padding:22px 24px 28px;}
  .benefit-card-body p {font-size:16px;}
  .lounge-eyebrow {font-size:17px;}
  .lounge-content {padding:26px 24px 30px;}
  .lounge-img {height:260px;}
  .lounge-title {font-size:19px;}
  .lounge-desc {font-size:16px;}
  .program-intro-grid {margin-bottom:32px;}
  .program-ticket-image-wrap {max-width:240px;}
  .program-intro-title {font-size:21px;}
  .program-intro-desc {font-size:16px;}
  .program-card-head {padding:22px 24px;}
  .program-card-title {font-size:18px;}
  .program-card-note {font-size:15px;display:block;margin-top:6px;}
  .program-card-headtext {display:block;}
  .program-card-body {padding:24px 24px 28px;}
  .program-item-text {font-size:16px;}
  .program-variant {padding:14px 16px;}
  .program-variant-label {font-size:17px;}
  .program-divider {margin:56px 0;}
  .section-banner {padding:100px 0;}
  .banner-title {font-size:28px;}
  .banner-desc {font-size:17px;}
  .banner-sub {font-size:15px;}
}
