/* ENTRE v2 — 모바일 한 줄 레이아웃 */
:root{
  --page:#F1ECE4;      /* 화면 바깥 배경 */
  --bg:#FFFFFF;        /* 본문 배경 */
  --soft:#F7F3EC;      /* 카드·히어로 배경 */
  --ink:#1D1A16;
  --text:#4A433A;
  --mute:#8C8377;
  --line:#ECE6DC;
  --black:#131313;     /* 로고 배경색 */
  --gold-light:#ECD6AF;/* 로고 골드 (밝은 면) */
  --gold:#A8864F;      /* 흰 배경 위 글자용 골드 */
  --gold-btn:linear-gradient(135deg,#D9BE8E,#B8955F);
  --gold-soft:#F3EADC;
  --f:#E8707A;  --f-soft:#FCE9EB;   /* 여자 */
  --m:#5B7FD6;  --m-soft:#E8EEFB;   /* 남자 */
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.6;word-break:keep-all;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
h1,h2{margin:0;color:var(--ink)}
p{margin:0}

/* 가운데 480px 기둥 */
.app{max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh;box-shadow:0 0 40px rgba(0,0,0,.05);padding-bottom:130px}

/* 1. 히어로 */
.hero{background:var(--black);text-align:center;padding:0 0 64px}
.hero-logo{display:block;width:100%;max-width:480px;aspect-ratio:1/1;object-fit:cover;
  -webkit-mask-image:linear-gradient(#000 94%,transparent 100%);mask-image:linear-gradient(#000 94%,transparent 100%)}
.hero h1{color:#F4EEE4;font-size:24px;font-weight:500;line-height:1.6;margin-top:28px;letter-spacing:-.01em}
.fr{font-family:var(--serif);font-style:italic;color:var(--gold-light);font-size:19px;margin-top:14px;opacity:.8}

/* 2. 큰 숫자 */
.milestone{text-align:center;padding:64px 24px 40px}
.milestone .sub{color:var(--gold);font-size:17px;font-weight:600}
.milestone .big{font-size:32px;font-weight:800;color:var(--ink);line-height:1.4;margin-top:14px;letter-spacing:-.02em}
.down{display:block;width:0;height:0;margin:40px auto 0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:13px solid #E3D6C2}

/* 공통 블록 */
.block{padding:48px 24px}
.block h2{font-size:23px;font-weight:800;letter-spacing:-.02em}
.desc{color:var(--mute);font-size:14.5px;margin-top:8px}
.muted{color:var(--mute)}
.row-head{display:flex;justify-content:space-between;align-items:center}

/* 3. 현재 남은 자리 */
.seat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.seat-card{border:1px solid var(--line);border-radius:18px;padding:14px 12px;background:#FCFBF9}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px}
.seat-card.f .badge{background:var(--f-soft);color:var(--f)}
.seat-card.m .badge{background:var(--m-soft);color:var(--m)}
.seat-row{padding:14px 0 12px;border-bottom:1px solid var(--line)}
.seat-row:last-child{border-bottom:0;padding-bottom:2px}
.seat-top{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.seat-top b{color:var(--ink);font-size:14.5px}
.seat-top .left{font-size:13.5px;font-weight:700;color:var(--ink)}
.seat-card.f .left.full{color:var(--f)}
.seat-card.m .left.full{color:var(--m)}
.seat-count{text-align:right;font-size:13px;color:var(--mute);margin:4px 0 8px}
.bar{height:6px;border-radius:99px;background:#EEEAE4;overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;transition:width 1s ease}
.seat-card.f .bar i{background:var(--f)}
.seat-card.m .bar i{background:var(--m)}

.eyebrow{font-family:var(--serif);font-size:14px;letter-spacing:.18em;color:var(--gold);margin-bottom:6px}

/* 참가 기준 */
.criteria{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.crit{border:1px solid var(--line);border-radius:18px;padding:14px 14px 12px;background:#FCFBF9}
.crit.c{grid-column:1/-1}
.crit.m .badge{background:var(--m-soft);color:var(--m)}
.crit.f .badge{background:var(--f-soft);color:var(--f)}
.crit.c .badge{background:var(--gold-soft);color:var(--gold)}
.crit ul{list-style:none;padding:0;margin:10px 0 0}
.crit li{position:relative;padding:6px 0 6px 20px;font-size:13.5px;color:var(--ink);white-space:pre-line;line-height:1.5;border-top:1px solid var(--line)}
.crit li:first-child{border-top:0}
.crit li::before{content:"✓";position:absolute;left:2px;top:6px;color:var(--gold);font-weight:700}

/* 이런 자리를 찾고 있었다면 */
.looking-wrap{background:var(--black);color:#EDE6DA}
.looking-wrap h2{color:var(--gold-light)}
.looking{list-style:none;padding:0;margin:18px 0 0}
.looking li{padding:14px 0 14px 26px;position:relative;border-bottom:1px solid rgba(236,214,175,.15);font-size:15px}
.looking li::before{content:"✓";position:absolute;left:2px;color:var(--gold-light)}

/* 4. 포인트 카드 */
.points{display:grid;gap:10px;margin-top:20px}
.point{display:flex;gap:14px;padding:18px 16px;border:1px solid var(--line);border-radius:18px;background:#FCFBF9}
.point .ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-size:18px}
.point b{display:block;color:var(--ink);font-size:15.5px;margin-bottom:4px}
.point p{font-size:13.5px;color:var(--text);white-space:pre-line}
@media (max-width:380px){.point p{white-space:normal}}

/* 5. 후기 */
.arrows{display:flex;gap:6px}
.arrows button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px;line-height:1}
.reviews{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:18px -24px 0;padding:0 24px 6px;scrollbar-width:none}
.reviews::-webkit-scrollbar{display:none}
.review{flex:0 0 86%;scroll-snap-align:center;border:1px solid var(--line);border-radius:18px;padding:18px;background:#FCFBF9;display:flex;flex-direction:column}
.review .meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--mute)}
.review .meta span:first-child{color:var(--gold);font-weight:700}
.review .sp{font-style:normal;font-weight:600;font-size:11px;color:var(--mute);border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-left:4px;vertical-align:1px}
.review b{color:var(--ink);font-size:15.5px;margin-top:10px;line-height:1.45}
.review p{margin-top:8px;font-size:14px;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.review .go{margin-top:auto;padding-top:12px;font-size:13px;color:var(--gold);font-weight:600;text-align:right}
.blog-links{display:grid;gap:8px;margin-top:16px}
.blog-btn{display:flex;align-items:center;gap:10px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-weight:600;font-size:14.5px;transition:.2s}
.blog-btn:hover{border-color:#03C75A}
.blog-btn .n{width:22px;height:22px;border-radius:5px;background:#03C75A;color:#fff;font-weight:900;font-size:13px;display:grid;place-items:center}
.blog-btn .arr{margin-left:auto;color:var(--mute)}

/* 6. 진행 방식 */
.steps{list-style:none;padding:0;margin:20px 0 0;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:0 0 22px 46px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--black);color:var(--gold-light);font-size:13px;font-weight:700;display:grid;place-items:center}
.steps li:not(:last-child)::after{content:"";position:absolute;left:14.5px;top:34px;bottom:4px;width:1px;background:var(--line)}
.steps b{display:block;color:var(--ink);font-size:15.5px;padding-top:3px}
.steps span{font-size:13.5px;color:var(--mute)}

/* 7. 장소 */
.venue{margin-top:16px;padding:20px;border-radius:18px;background:var(--soft)}
.venue b{color:var(--ink);font-size:16px}
.venue p{font-size:14px;margin-top:4px}

/* 8. FAQ */
.faq{margin-top:14px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:18px 28px 18px 0;position:relative;color:var(--ink);font-weight:600;font-size:15px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";color:var(--gold);font-weight:800;margin-right:8px}
.faq summary::after{content:"";position:absolute;right:6px;top:24px;width:8px;height:8px;border-right:1.5px solid var(--mute);border-bottom:1.5px solid var(--mute);transform:rotate(45deg);transition:.2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:28px}
.faq details p{padding:0 0 18px 26px;color:var(--text);font-size:14.5px}

/* 푸터 */
.footer{padding:36px 24px 20px;font-size:12px;color:var(--mute);border-top:1px solid var(--line);margin-top:24px;line-height:1.8}
.footer .ig{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.footer .links{display:flex;gap:14px;margin-bottom:12px;font-size:12.5px;color:var(--text);font-weight:600}

/* 하단 고정 버튼 */
.cta{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 -6px 24px rgba(0,0,0,.07);padding:12px 20px calc(14px + env(safe-area-inset-bottom));text-align:center;z-index:10}
.cta p{font-size:12.5px;color:var(--mute);margin-bottom:9px}
.cta p b{color:var(--ink)}
.cta-btn{display:block;background:var(--black);color:var(--gold-light);font-weight:700;font-size:17px;padding:15px;border-radius:99px;transition:.2s;letter-spacing:.01em}
.cta-btn:hover{background:#000;color:#fff}

/* ═══════════ 신청 페이지 ═══════════ */
.apply{padding-bottom:110px}
.ap-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;height:54px;padding:0 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.ap-home{width:36px;height:36px;display:grid;place-items:center;font-size:26px;color:var(--ink)}
.ap-title{flex:1;text-align:center;font-weight:700;color:var(--ink);font-size:15.5px}
.ap-count{width:36px;text-align:right;font-size:12.5px;color:var(--mute)}
.ap-progress{height:3px;background:var(--line);position:sticky;top:54px;z-index:5}
.ap-progress i{display:block;height:100%;width:0;background:var(--gold);transition:width .35s}
.pad{padding:28px 22px 12px}
.st-h{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:22px}
.sub-h{font-size:17px;color:var(--ink);margin:30px 0 12px}
.sub-h small{font-size:12.5px;color:var(--mute);font-weight:500;margin-left:6px}

.intro-hero{background:var(--black);text-align:center;padding:0 0 30px;color:#EDE6DA}
.intro-hero img{width:100%;max-width:480px;aspect-ratio:2/1;object-fit:cover;object-position:center 42%}
.intro-hero h1{color:var(--gold-light);font-size:22px;margin-top:4px}
.intro-hero p{font-size:14px;opacity:.8;margin-top:8px}
.notice{background:var(--gold-soft);border-radius:16px;padding:16px 18px}
.notice b{color:var(--ink);font-size:15px}
.notice p{font-size:13.5px;margin-top:6px}
.warn{list-style:none;padding:0;margin:0;font-size:13.5px}
.warn li{padding:10px 0 10px 18px;position:relative;border-bottom:1px solid var(--line)}
.warn li::before{content:"·";position:absolute;left:4px;font-weight:900}
.red{color:#D6453D !important;font-weight:600}

.q{margin-bottom:24px}
.q-t{font-weight:700;color:var(--ink);font-size:15.5px;margin-bottom:8px}
.q-t .req{color:#D6453D;margin-left:3px}
.q-h{font-size:13px;color:var(--mute);margin:-2px 0 10px;line-height:1.55}
.in{width:100%;border:1px solid var(--line);background:#FAF8F5;border-radius:12px;padding:14px;font:inherit;font-size:15px;color:var(--ink);outline:none;transition:.15s}
.in:focus{border-color:var(--gold);background:#fff}
textarea.in{min-height:96px;resize:vertical}
select.in{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row2 .q{margin-bottom:6px}
.soft{font-size:13px;color:var(--mute);margin:0 0 20px}
.warn-t{color:#C2562E !important}

.opts{display:grid;gap:8px}
.opt input,.date input,.agree input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#FAF8F5;font-size:14.5px;color:var(--ink);cursor:pointer;transition:.15s}
.opt span::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid #CFC7BA;background:#fff;transition:.15s}
.opt input:checked+span{border-color:var(--ink);background:#fff}
.opt input:checked+span::before{border:5px solid var(--ink)}
.opt input:focus-visible+span,.date input:focus-visible~.d-main,.agree input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}

.kinds{display:grid;gap:8px}
.kind{position:relative;display:grid;gap:3px;width:100%;padding:14px 16px 14px 44px;border:1px solid var(--line);border-radius:12px;background:#FAF8F5;text-align:left;font:inherit;color:var(--ink);cursor:pointer;transition:.15s;word-break:keep-all}
.kind::before{content:"";position:absolute;left:16px;top:16px;width:18px;height:18px;border-radius:50%;border:1.5px solid #CFC7BA;background:#fff;box-sizing:border-box;transition:.15s}
.kind.on{border-color:var(--ink);background:#fff}
.kind.on::before{border:5px solid var(--ink)}
.kind:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.k-name{font-size:15px;font-weight:700}
.k-name em{font-style:normal;color:var(--gold);margin-right:6px}
.k-meta{font-size:13px;font-weight:700;color:var(--gold)}
.k-desc{font-size:13px;color:var(--mute)}
.dates{display:grid;gap:8px}
.date{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#FAF8F5;cursor:pointer;transition:.15s}
.date:has(input:checked){border-color:var(--ink);background:#fff}
.d-main{flex:1;font-size:14.5px;color:var(--ink)}
.d-main b{margin-right:4px}
.d-seat{font-size:12.5px;font-weight:700;color:var(--gold);white-space:nowrap}
.date.full .d-seat{color:#C2562E}
.empty{font-size:14px;color:var(--mute);padding:14px;border:1px dashed var(--line);border-radius:12px;text-align:center}

.files{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.thumb,.add{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:15px;line-height:1}
.add{display:grid;place-items:center;border:1.5px dashed #D8CFC1;background:#FAF8F5;cursor:pointer;text-align:center;font-size:12.5px;color:var(--mute)}
.add input{position:absolute;inset:0;opacity:0;cursor:pointer}
.files+.q-h{margin-top:8px}

.long{font-size:13px;color:var(--text);background:#FAF8F5;border-radius:12px;padding:12px 14px;white-space:pre-line;margin-bottom:8px;line-height:1.6}
.agree span{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:14px;color:var(--ink);cursor:pointer;transition:.15s}
.agree span::before{content:"";flex:none;width:18px;height:18px;border-radius:5px;border:1.5px solid #CFC7BA;background:#fff center/12px no-repeat}
.agree input:checked+span{border-color:var(--ink)}
.agree input:checked+span::before{background-color:var(--ink);border-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5 5 9l5-6' fill='none' stroke='%23ECD6AF' stroke-width='2'/%3E%3C/svg%3E")}
.pv{width:100%;border-collapse:collapse;font-size:13.5px;background:#FAF8F5;border-radius:12px;overflow:hidden;margin-bottom:8px}
.pv th,.pv td{padding:10px 14px;text-align:left}
.pv th{color:var(--mute);font-weight:500;width:90px}
.pv td{color:var(--ink);font-weight:600}
.err{margin:0 22px;color:#C2562E;font-size:14px;font-weight:600;min-height:20px}

.ap-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;display:flex;gap:8px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 -6px 24px rgba(0,0,0,.07);z-index:10}
.ap-back{flex:0 0 96px;border:1px solid var(--line);background:#fff;border-radius:99px;font-weight:600;color:var(--text);font-size:15px}
.ap-next{flex:1;border:0;background:var(--black);color:var(--gold-light);border-radius:99px;padding:15px;font-weight:700;font-size:16.5px}
.ap-next:disabled{opacity:.6}

.done{text-align:center;padding-top:44px}
.done-mark{width:64px;height:64px;border-radius:50%;background:var(--black);color:var(--gold-light);font-size:30px;display:grid;place-items:center;margin:0 auto 18px}
.done h2{font-size:22px;margin-bottom:8px}
.sum{text-align:left;border:1px solid var(--line);border-radius:16px;padding:6px 16px;margin:10px 0 18px}
.sum>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.sum>div:last-child{border:0}
.sum span{color:var(--mute)}
.sum b{color:var(--ink);text-align:right}
.dm{text-align:left;background:var(--gold-soft);border-radius:16px;padding:18px}
.dm>b{color:var(--ink)}
.dm ol{padding-left:20px;margin:10px 0;font-size:14px}
.dm li{margin-bottom:6px}
.dm .cta-btn{margin-top:14px;font-size:15.5px;text-align:center}
.link-home{display:inline-block;margin:22px 0 10px;font-size:14px;color:var(--mute);text-decoration:underline}
