/* ============================================================
   main202610 — 2026 청주 라라 10월 웨딩 초대전 (반응형 v2)
   Figma 700px 캔버스 기준 → 반응형 변환
   · 모바일(<700px): --k = 100vw/700 로 모든 치수를 비율 스케일 (zoom 방식 제거)
   · 700px 이상: --k = 1px (디자인 원치수), 섹션 배경은 풀폭, 콘텐츠는 가운데 정렬
   · PC(≥1024px): 상단 히어로 풀화면(풀폭 사진 + 뷰포트 높이),
                  라라 스페이스·메이크업·스튜디오 = 그리드 전체 노출, 드레스 = 가로 슬라이드(모바일 2장 노출)
   팔레트: 로즈 #b24d4d / 와인 #823333 / 로즈우드 #885a5a / 초코 #653a3a
           핑크베이지 #f7e9e5 / 연핑크 #fff6f4 / 카드 #fff4f1 / 라인 #e9d4d2 / 라이트로즈 #ffd4d4
============================================================ */

html, body, #wedding_fair2026 { -webkit-text-size-adjust:100%; text-size-adjust:100%; }

/* ---- 폰트 ---- */
@import url('https://cdn.jsdelivr.net/gh/sunn-us/SUIT-Variable@2/fonts/variable/woff2/SUIT-Variable.css');
@font-face {
    font-family:'SOGANGUNIVERSITYTTF';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2312-1@1.1/SOGANGUNIVERSITYTTF.woff2') format('woff2');
    font-weight:normal; font-style:normal; font-display:swap;
}

:root {
    --k:min(1px, calc(100vw / 700));   /* 디자인 1px 단위 */
    --font-suit:"SUIT","SUIT Variable",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-sogang:'SOGANGUNIVERSITYTTF','SUIT',serif;
    --rose:#b24d4d; --wine:#823333; --rosewood:#885a5a; --choco:#653a3a;
    --pinkbg:#f7e9e5; --pinksoft:#fff6f4; --cardpink:#fff4f1; --cardline:#e9d4d2; --lightrose:#ffd4d4;
    --btngrad:linear-gradient(103.78deg, #bf6464 5.5%, #823333 101%);
    --cardgrad:linear-gradient(100.5deg, #fff6f4 7.7%, #fce7e7 100%);
}
html,body{width:100%;max-width:100%;overflow-x:hidden;margin:0;}
body{font-family:var(--font-suit);}
#wedding_fair2026{width:100%;overflow:hidden;background:#fff;font-family:var(--font-suit);}
#wedding_fair2026 *{letter-spacing:-.06em;box-sizing:border-box;}
#wedding_fair2026 img{max-width:100%;}
#wedding_fair2026 section{position:relative;}
#wedding_fair2026 p, #wedding_fair2026 h1, #wedding_fair2026 h2, #wedding_fair2026 ul{margin:0;}

/* gnuboard 기본 컨테이너 풀폭 — #container 가 float:left 라서 슬라이더(max-content) 폭만큼 늘어나 화면이 밀리는 문제 방지 */
#hd_wrapper, #container_wr, #ft_wr, #wrapper { max-width:none; width:100%; }
#container { float:none !important; width:100% !important; max-width:100% !important; margin:0 !important; padding:0 !important; min-height:0 !important; }
#wedding_fair2026 { max-width:100vw; }
.bslider { max-width:100%; }

/* 콘텐츠 폭 래퍼 */
.w700 { width:100%; max-width:700px; margin:0 auto; }

/* ============================================================
   스크롤 등장 애니메이션 (data-ani)
============================================================ */
[data-ani] { opacity:0; transform:translateY(46px); transition:opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1); }
[data-ani].show { opacity:1; transform:none; }
[data-ani="fade"] { transform:none; }
[data-ani="zoom"] { transform:scale(.94); }
[data-ani="zoom"].show { transform:none; }
.stagger > [data-ani]:nth-child(2) { transition-delay:.1s; }
.stagger > [data-ani]:nth-child(3) { transition-delay:.2s; }
.stagger > [data-ani]:nth-child(4) { transition-delay:.3s; }

/* ============================================================
   공통 컴포넌트
============================================================ */
.cta_block { padding:0 calc(21 * var(--k)); text-align:center; }
.cta_block__deco { display:block; width:calc(658 * var(--k)); height:calc(29 * var(--k)); margin:0 auto; }
.cta_btn10 {
    display:flex; align-items:center; justify-content:center;
    width:calc(629 * var(--k)); height:calc(92 * var(--k)); margin:calc(-21 * var(--k)) auto;
    position:relative; z-index:1;
    background:var(--btngrad); border-radius:calc(20 * var(--k));
    color:#fff; font-weight:700; font-size:calc(35 * var(--k)); text-decoration:none;
    box-shadow:0 10px 26px rgba(130,51,51,.25);
    transition:filter .25s ease, transform .12s ease, box-shadow .25s ease;
}
.cta_btn10:hover { filter:brightness(1.08); box-shadow:0 14px 30px rgba(130,51,51,.35); }
.cta_btn10:active { transform:scale(.98); }
.cta_block .cta_block__deco:last-child { margin-top:0; }

.ov10 { font-weight:700; font-size:calc(25 * var(--k)); letter-spacing:-.01em; text-align:center; }
.tit_sogang { font-family:var(--font-sogang); font-weight:400; font-size:calc(50 * var(--k)); line-height:1.24; text-align:center; }

/* 티켓 카드 */
.tcard { position:relative; width:calc(664 * var(--k)); height:calc(179 * var(--k)); margin:0 auto calc(13 * var(--k)); }
.tcard__outer { position:absolute; left:calc(17 * var(--k)); top:0; width:calc(629 * var(--k)); height:100%; background:var(--cardpink); border-radius:calc(20 * var(--k)); }
.tcard__inner {
    position:absolute; left:calc(13 * var(--k)); top:calc(13 * var(--k));
    width:calc(604 * var(--k)); height:calc(153 * var(--k));
    border:1px solid var(--cardline); border-radius:calc(10 * var(--k)); background:var(--cardgrad);
}
.tcard__notch { position:absolute; top:calc(72 * var(--k)); width:calc(35 * var(--k)); height:calc(35 * var(--k)); }
.tcard__notch--l { left:0; } .tcard__notch--r { right:0; }
.tcard__txt {
    position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
    font-weight:600; font-size:calc(35 * var(--k)); line-height:1.29;
    color:#0d0d0d; text-align:center; white-space:nowrap;
}
.tcard__txt .ac { font-weight:800; color:var(--wine); }
.tcard__dash { position:absolute; inset:0; width:100%; height:100%; }
.tcard__deco { position:absolute; left:0; top:calc(72 * var(--k)); width:100%; height:calc(35 * var(--k)); pointer-events:none; }
.tcard__num {
    position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
    font-weight:900; font-size:calc(60 * var(--k)); letter-spacing:-.07em;
    color:var(--rose); text-align:center; white-space:pre;
}

/* 가로 스와이프 슬라이더 (모바일 2장 노출, 스냅) */
.bslider {
    width:100%; overflow-x:auto; overflow-y:hidden;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    scroll-snap-type:x mandatory; scroll-padding:0 calc(33 * var(--k));
    cursor:grab; overscroll-behavior-x:contain;
}
.bslider::-webkit-scrollbar { display:none; }
.bslider.is-drag { cursor:grabbing; scroll-snap-type:none; }
.bslider.is-drag * { pointer-events:none; }
.bslider__track { display:flex; width:max-content; gap:calc(13 * var(--k)); padding:0 calc(33 * var(--k)); }
.bslider__item { flex:0 0 auto; width:calc(300 * var(--k)); scroll-snap-align:start; position:relative; }
.bslider__item img { display:block; width:100%; aspect-ratio:300 / 401; object-fit:cover; user-select:none; -webkit-user-drag:none; }
.bslider__name { margin-top:calc(20 * var(--k)); font-weight:600; font-size:calc(30 * var(--k)); color:var(--rosewood); }
/* 진행 바 */
.bslider_bar { width:calc(634 * var(--k)); max-width:calc(100% - 66 * var(--k)); height:3px; margin:calc(26 * var(--k)) auto 0; background:rgba(136,90,90,.15); border-radius:3px; overflow:hidden; }
.bslider_bar i { display:block; height:100%; width:30%; background:var(--rosewood); border-radius:3px; transform-origin:left; transition:transform .15s linear; }
.s_heritage .bslider_bar { background:rgba(255,255,255,.2); }
.s_heritage .bslider_bar i { background:#fff; }

/* ============================================================
   #1 히어로
============================================================ */
.hero10 { background:var(--pinkbg); padding-bottom:calc(63 * var(--k)); }
.hero10__photo { position:relative; height:calc(600 * var(--k)); overflow:hidden; }
.hero10__photo img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:50% 20%; }
.hero10__photo::after {
    content:""; position:absolute; left:0; right:0; bottom:0; height:50%;
    background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, var(--pinkbg) 79.8%);
}
.hero10__card {
    position:relative; z-index:1;
    width:calc(629 * var(--k)); min-height:calc(464 * var(--k));
    margin:calc(-77 * var(--k)) auto 0; padding:calc(47 * var(--k)) 0 calc(40 * var(--k));
    background:#fff5f5; border-radius:calc(20 * var(--k)); text-align:center;
}
.hero10__eyebrow { color:#bf6464; font-weight:700; font-size:calc(25 * var(--k)); line-height:1.48; }
.hero10__tit { margin-top:calc(17 * var(--k)) !important; font-family:var(--font-sogang); font-weight:400; font-size:calc(50 * var(--k)); line-height:1.16; color:#000; }
.hero10__tit .ac { color:var(--wine); }
.hero10__desc { margin-top:calc(18 * var(--k)) !important; font-size:calc(25 * var(--k)); line-height:1.48; color:#000; }
.hero10__line { display:block; width:calc(91 * var(--k)); height:auto; margin:calc(28 * var(--k)) auto 0; }
.hero10__date { margin-top:calc(26 * var(--k)) !important; font-size:calc(25 * var(--k)); line-height:1.48; color:#000; }
.hero10__cta { margin-top:calc(-24 * var(--k)); position:relative; z-index:2; }

/* ============================================================
   #2 인트로 띠
============================================================ */
.s_intro { background:var(--pinksoft); padding:calc(96 * var(--k)) 0 calc(110 * var(--k)); text-align:center; }
.s_intro__tit { font-size:calc(30 * var(--k)); line-height:1.83; color:#000; }
.s_intro__tit b { font-size:calc(40 * var(--k)); font-weight:700; }
.s_intro__sub { margin-top:calc(15 * var(--k)) !important; color:#bf6464; font-weight:600; font-size:calc(25 * var(--k)); line-height:1.48; }

/* ============================================================
   #3 특별한 제안
============================================================ */
.s_benefit { background:var(--pinkbg); padding:calc(94 * var(--k)) 0 calc(100 * var(--k)); }
.s_benefit__ov { color:#bf6464; font-weight:700; font-size:calc(25 * var(--k)); line-height:1.48; text-align:center; }
.s_benefit__tit { margin-top:calc(10 * var(--k)) !important; font-family:var(--font-sogang); font-weight:400; font-size:calc(50 * var(--k)); color:#000; text-align:center; }
.s_benefit__tit .ac { color:var(--rose); }
.s_benefit__cards { margin-top:calc(54 * var(--k)); }
.s_benefit__info { display:table; margin:calc(66 * var(--k)) auto 0; font-size:calc(30 * var(--k)); line-height:1.67; color:#000; }
.s_benefit__info .lb { display:inline-block; width:calc(150 * var(--k)); }
.s_benefit__info b { font-weight:700; }
.s_benefit__info .ac { color:var(--rose); font-weight:700; }
.s_benefit__cta { margin-top:calc(90 * var(--k)); }

/* ============================================================
   #4 WHY LARA
============================================================ */
.s_why { background:var(--choco); padding:calc(94 * var(--k)) 0 calc(93 * var(--k)); }
.s_why__ov { color:#fff; font-weight:400; }
.s_why__ov b { font-weight:700; }
.s_why__tit { margin-top:calc(12 * var(--k)) !important; color:#fff; }
.s_why__tit .ac { color:var(--lightrose); }
.s_why__sub { margin-top:calc(44 * var(--k)) !important; font-weight:700; font-size:calc(28 * var(--k)); line-height:1.32; color:#fff; text-align:center; }
.s_why__cards { margin-top:calc(69 * var(--k)); }
.s_why__cards .tcard { margin-bottom:calc(17 * var(--k)); }

/* ============================================================
   #5 HERITAGE
============================================================ */
.s_heritage { background:var(--rosewood); padding:calc(95 * var(--k)) 0 calc(95 * var(--k)); }
.s_heritage__ov { color:#fff; }
.s_heritage__tit { margin-top:calc(8 * var(--k)) !important; color:#fff; }
.s_heritage__tit .ac { color:var(--lightrose); }
.s_heritage__sub { margin-top:calc(57 * var(--k)) !important; font-size:calc(28 * var(--k)); line-height:1.32; color:#fff; text-align:center; }
.s_heritage__sub b { font-weight:700; }
.s_heritage__photo { position:relative; width:calc(635 * var(--k)); margin:calc(66 * var(--k)) auto 0; border-radius:calc(39 * var(--k)); overflow:hidden; }
.s_heritage__photo img { display:block; width:100%; height:calc(368 * var(--k)); object-fit:cover; }
.s_heritage__photo::after {
    content:""; position:absolute; left:0; right:0; bottom:0; height:36%;
    background:linear-gradient(to bottom, rgba(136,90,90,0) 0%, var(--rosewood) 85.3%);
}
.s_heritage__mid { margin-top:calc(51 * var(--k)) !important; font-family:var(--font-sogang); font-size:calc(40 * var(--k)); line-height:1.35; text-align:center; color:#fff; }
.s_heritage__mid .ac { color:var(--lightrose); }
.s_heritage__slider { margin-top:calc(90 * var(--k)); }
.s_heritage__slider .bslider__item { width:calc(308 * var(--k)); }
.s_heritage__slider .bslider__item img { aspect-ratio:308 / 398; border-radius:calc(33 * var(--k)); }
.s_heritage__slider .bslider__item::before {
    content:""; position:absolute; z-index:1; left:calc(27 * var(--k)); top:calc(34 * var(--k));
    width:calc(6 * var(--k)); height:calc(64 * var(--k)); background:#fff;
}
.s_heritage__label { position:absolute; z-index:1; left:calc(56 * var(--k)); top:calc(30 * var(--k)); color:#fff; font-weight:700; font-size:calc(30 * var(--k)); line-height:1.23; letter-spacing:-.01em; text-shadow:0 2px 10px rgba(0,0,0,.25); }

/* ============================================================
   #6 DRESS / #7 MAKE UP / #8 STUDIO
============================================================ */
.s_dress { background:var(--pinksoft); padding:calc(111 * var(--k)) 0 calc(100 * var(--k)); }
.s_makeup { background:var(--pinkbg); padding:calc(111 * var(--k)) 0 calc(95 * var(--k)); }
.s_studio { background:#fff; padding:calc(111 * var(--k)) 0 calc(95 * var(--k)); }

.sec_ov { color:var(--rosewood); font-weight:700; font-size:calc(25 * var(--k)); letter-spacing:-.01em; text-align:center; }
.s_studio .sec_ov { font-size:calc(30 * var(--k)); }
.sec_tit { margin-top:calc(12 * var(--k)) !important; font-family:var(--font-sogang); font-weight:400; font-size:calc(50 * var(--k)); line-height:1.24; color:var(--rose); text-align:center; }
.sec_sub { margin-top:calc(57 * var(--k)) !important; font-size:calc(28 * var(--k)); line-height:1.32; color:#000; text-align:center; }

/* 브랜드 미니 카드 */
.mcard { position:relative; width:calc(435 * var(--k)); height:calc(285 * var(--k)); margin:calc(84 * var(--k)) auto 0; }
.mcard__outer { position:absolute; inset:0; background:var(--pinkbg); border-radius:calc(20 * var(--k)); }
.s_makeup .mcard__outer { background:var(--cardpink); }
.mcard__inner { position:absolute; left:calc(9 * var(--k)); top:calc(8 * var(--k)); width:calc(417 * var(--k)); height:calc(270 * var(--k)); border:1px solid var(--cardline); border-radius:calc(16 * var(--k)); background:var(--cardgrad); }
.mcard__logo { position:absolute; left:50%; transform:translateX(-50%); height:auto; }
.mcard__logo--lapine { width:calc(130 * var(--k)); top:calc(47 * var(--k)); }
.mcard__logo--comnana { width:calc(264 * var(--k)); top:calc(75 * var(--k)); }
.mcard__tit { position:absolute; left:0; right:0; top:calc(113 * var(--k)); font-weight:700; font-size:calc(30 * var(--k)); line-height:1.5; color:var(--rosewood); text-align:center; }
.mcard__txt { position:absolute; left:0; right:0; top:calc(172 * var(--k)); font-size:calc(24 * var(--k)); line-height:1.25; color:var(--rosewood); text-align:center; }
.mcard__txt b { font-weight:700; }
.s_makeup .mcard__txt { top:calc(160 * var(--k)); }

.s_dress__desc { margin-top:calc(70 * var(--k)) !important; font-size:calc(27 * var(--k)); line-height:1.48; color:#0d0d0d; text-align:center; }
.s_dress__slider { margin-top:calc(68 * var(--k)); }
.s_dress__slider .bslider__item img,
.s_makeup__slider .bslider__item img { border-radius:calc(27 * var(--k)); }
.s_makeup__slider { margin-top:calc(90 * var(--k)); }
.s_studio__slider { margin-top:calc(90 * var(--k)); }
.s_studio__slider .bslider__item { width:calc(301 * var(--k)); }
.s_studio__slider .bslider__item img { border-radius:calc(17 * var(--k)); }

/* ============================================================
   #9 웨딩홀·한복·신혼여행
============================================================ */
.s_all { background:var(--pinksoft); padding:calc(110 * var(--k)) 0 calc(130 * var(--k)); text-align:center; }
.s_all__tit { font-size:calc(40 * var(--k)); line-height:1.38; color:#000; }
.s_all__tit b { font-weight:700; }
.s_all__mid { margin-top:calc(37 * var(--k)) !important; font-family:var(--font-sogang); font-size:calc(50 * var(--k)); color:var(--rose); }
.s_all__icons { display:flex; justify-content:center; margin-top:calc(37 * var(--k)) !important; padding:0; list-style:none; }
.s_all__icons li { width:calc(181 * var(--k)); height:calc(181 * var(--k)); }
.s_all__icons li + li { margin-left:calc(-21 * var(--k)); }
.s_all__icons img { display:block; width:100%; height:100%; border-radius:50%; }

/* ============================================================
   #10 하단 CTA + #11 오시는길
============================================================ */
.s_cta_final { background:#fff; padding:calc(35 * var(--k)) 0 0; }
.s_map { background:#fff; padding:calc(64 * var(--k)) 0 0; }
.s_map__tit { font-weight:700; font-size:calc(38 * var(--k)); color:var(--rose); text-align:center; }
.s_map__addr { margin-top:calc(84 * var(--k)) !important; font-size:calc(26 * var(--k)); line-height:1.39; color:#000; text-align:center; }
.s_map__addr .b { font-weight:700; }
.s_map__addr .ac { color:var(--wine); font-weight:700; }
.s_map__img { display:block; width:calc(605 * var(--k)); height:auto; margin:calc(56 * var(--k)) auto 0; }
.s_map__info { display:flex; justify-content:center; gap:calc(45 * var(--k)); margin:calc(60 * var(--k)) auto 0; padding-bottom:calc(110 * var(--k)); }
.s_map__col { width:calc(283 * var(--k)); font-size:calc(22.7 * var(--k)); line-height:1.57; color:#444; white-space:nowrap; }
.s_map__col b { display:block; font-weight:700; }

/* ============================================================
   사전 신청 폼 (pre_register) — 로즈 리컬러
============================================================ */
.pre_register {
  background:linear-gradient(160deg, #823333 0%, #3a1414 100%);
  padding:100px 20px 120px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.pre_register::before {
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 50% -10%, rgba(255,212,212,.18) 0%, transparent 65%);
  pointer-events:none;
}
.pre_register__inner { position:relative; width:min(600px,100%); margin:0 auto; }
.pre_register__eyebrow { font-size:15px; font-weight:700; letter-spacing:3px; color:var(--lightrose); margin:0 0 16px; }
.pre_register__title { font-size:48px; font-weight:800; color:#fff; margin:0 0 18px; line-height:1.1; }
.pre_register__desc { font-size:18px; color:rgba(255,255,255,.75); margin:0 0 50px; line-height:1.6; }
.pre_register__desc b { color:var(--lightrose); font-weight:700; }

.pre_register__form { background:#fff; border-radius:24px; padding:40px 36px 44px; text-align:left; box-shadow:0 24px 64px rgba(0,0,0,.28); }
.preg__row { margin-bottom:22px; }
.preg__row--name { display:flex; gap:16px; }
.preg__row--name .preg__field--name { flex:1; }
.preg__row--name .preg__field--role { width:160px; flex-shrink:0; }
.preg__label { display:block; font-size:13px; font-weight:700; color:#333; margin-bottom:8px; letter-spacing:0; }
.preg__label .req { font-size:11px; font-weight:500; color:#bf6464; margin-left:4px; }
.preg__input { width:100%; height:50px; border:1.5px solid #ddd; border-radius:10px; padding:0 14px; font-size:15px; font-family:inherit; color:#222; box-sizing:border-box; transition:border-color .2s; background:#fafafa; }
.preg__input:focus { outline:none; border-color:var(--wine); background:#fff; }
.preg__input--date { cursor:pointer; }

.preg__radio_group { display:flex; gap:10px; }
.preg__radio_group--time { flex-wrap:wrap; }
.preg__radio { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.preg__radio input[type="radio"] { display:none; }
.preg__radio span { display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; border:1.5px solid #ddd; border-radius:10px; font-size:14px; font-weight:500; color:#666; background:#fafafa; transition:all .2s; width:100%; white-space:nowrap; }
.preg__radio input[type="radio"]:checked + span { border-color:var(--wine); background:var(--cardpink); color:var(--wine); font-weight:700; }

.preg__wedding_wrap { display:flex; gap:12px; align-items:center; }
.preg__wedding_wrap .preg__input--date { flex:1; }
.preg__radio--undecided span { padding:10px 14px; font-size:13px; white-space:nowrap; }
.preg__radio--undecided input[type="checkbox"] { display:none; }
.preg__radio--undecided input[type="checkbox"]:checked + span { border-color:var(--wine); background:var(--cardpink); color:var(--wine); font-weight:700; }

.preg__label_sub { font-size:12px; font-weight:400; color:#999; margin-left:4px; }
.preg__interest_wrap { display:flex; flex-wrap:wrap; gap:8px; }
.preg__check { cursor:pointer; }
.preg__check input[type="checkbox"] { display:none; }
.preg__check span { display:inline-block; padding:10px 16px; border:1px solid #ddd; border-radius:999px; background:#fff; color:#555; font-size:14px; letter-spacing:-.5px; transition:all .15s ease; user-select:none; }
.preg__check input[type="checkbox"]:checked + span { border-color:var(--wine); background:var(--wine); color:#fff; font-weight:700; }
.preg__check--all span { border-style:dashed; border-color:#bf6464; color:#bf6464; }
.preg__check--all input[type="checkbox"]:checked + span { border-style:solid; border-color:#bf6464; background:#bf6464; color:#fff; }

.preg__agree_wrap { margin:28px 0 26px; padding:18px 18px 6px; background:#faf6f4; border-radius:14px; }
.preg__agree { display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; cursor:pointer; }
.preg__agree input { margin-top:3px; accent-color:var(--wine); width:16px; height:16px; flex-shrink:0; }
.preg__agree_txt { font-size:13px; color:#444; line-height:1.5; }
.preg__agree_txt b { font-weight:700; }
.preg__agree_txt small { color:#999; font-size:11.5px; }

.preg__submit {
  width:100%; height:64px; border:0; border-radius:16px;
  background:var(--btngrad);
  color:#fff; font-size:20px; font-weight:800; font-family:inherit; letter-spacing:-.5px;
  cursor:pointer; transition:filter .2s ease, transform .12s ease;
}
.preg__submit:hover { filter:brightness(1.1); }
.preg__submit:active { transform:scale(.985); }
.preg__submit:disabled { opacity:.6; cursor:default; }

.preg__success { background:#fff; border-radius:24px; padding:70px 36px; box-shadow:0 24px 64px rgba(0,0,0,.28); }
.preg__success_icon { width:64px; height:64px; margin:0 auto 20px; border-radius:50%; background:var(--btngrad); color:#fff; font-size:32px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.preg__success_title { font-size:24px; font-weight:800; color:#222; margin:0 0 10px; }
.preg__success_desc { font-size:15px; color:#666; line-height:1.7; margin:0; }

/* ============================================================
   푸터
============================================================ */
.lara_footer { background:#2a1212; padding:44px 24px 120px; }
.lara_footer__inner { width:min(640px,100%); margin:0 auto; }
.lara_footer p { margin:0 0 6px; font-size:13px; color:rgba(255,255,255,.55); line-height:1.6; letter-spacing:-.2px; }
.lara_footer__copy { margin-top:14px !important; color:rgba(255,255,255,.35) !important; }

/* ============================================================
   하단 고정 CTA (히어로 지나면 등장, 폼 구간에서 숨김)
============================================================ */
.fcta { position:fixed; left:50%; bottom:16px; z-index:9999; width:min(640px, calc(100% - 24px));
  opacity:0; pointer-events:none; transform:translate(-50%, 24px); transition:opacity .45s ease, transform .45s ease; }
.fcta.is-on { opacity:1; pointer-events:auto; transform:translate(-50%, 0); }
.fcta__btn { display:flex; align-items:center; justify-content:center;
  width:100%; height:clamp(56px, calc(72 * var(--k) * 1.2), 72px); border-radius:20px;
  background:var(--btngrad); color:#fff; text-decoration:none;
  font-family:var(--font-suit); font-size:clamp(16px, calc(22 * var(--k) * 1.2), 22px); font-weight:800; letter-spacing:-.06em;
  box-shadow:0 12px 32px rgba(60,15,15,.4); transition:filter .2s ease; }
.fcta__btn:hover { filter:brightness(1.08); }

/* 폼·푸터 모바일 여백 보정 */
@media (max-width:699.98px){
  .pre_register { padding:64px 16px 90px; }
  .pre_register__title { font-size:34px; }
  .pre_register__desc { font-size:15px; margin-bottom:32px; }
  .pre_register__form { padding:28px 20px 30px; border-radius:18px; }
  .preg__row--name { flex-direction:column; gap:22px; }
  .preg__row--name .preg__field--role { width:100%; }
  .preg__radio_group .preg__radio { flex:1; }
}

/* ============================================================
   PC (≥1024px) — 상단 풀화면 + 그리드 전체 노출
============================================================ */
@media (min-width:1024px){
  /* 히어로: 풀폭 사진, 뷰포트 높이 */
  .hero10 { padding-bottom:80px; }
  .hero10__photo { height:clamp(560px, calc(100vh - 140px), 920px); }
  .hero10__photo img { object-position:50% 28%; }
  .hero10__photo::after { height:45%; }
  .hero10__card { margin-top:-190px; box-shadow:0 20px 50px rgba(130,51,51,.08); }

  /* 라라 스페이스: 3장 전체 노출 */
  .s_heritage__slider { overflow:visible; cursor:auto; }
  .s_heritage__slider .bslider__track { width:auto; justify-content:center; gap:16px; padding:0; }
  .s_heritage + * {}
  .s_heritage .bslider_bar { display:none; }

  /* 메이크업·스튜디오: 4장 전체 노출 */
  .s_makeup__slider, .s_studio__slider { overflow:visible; cursor:auto; }
  .s_makeup__slider .bslider__track, .s_studio__slider .bslider__track { width:auto; justify-content:center; gap:16px; padding:0 24px; }
  .s_makeup .bslider_bar, .s_studio .bslider_bar { display:none; }

  /* 드레스: PC에서도 가로 슬라이드 유지 (Figma 메모 4:451) — 좌우 여백을 1280px 콘텐츠 폭에 맞춤 */
  .s_dress__slider .bslider__track { gap:16px; padding:0 max(33px, calc((100% - 1280px) / 2)); }
  .s_dress__slider { scroll-padding:0 max(33px, calc((100% - 1280px) / 2)); }

  /* 혜택·WHY 카드: 2열 그리드 */
  .grid2 { display:grid; grid-template-columns:repeat(2, 664px); justify-content:center; column-gap:24px; }
  .grid2 .tcard { margin:0 0 17px; }
}
@media (min-width:1024px) and (max-width:1399.98px){
  .grid2 { grid-template-columns:664px; }
}

/* 모션 최소화 */
@media (prefers-reduced-motion: reduce) {
  [data-ani] { opacity:1 !important; transform:none !important; transition:none !important; }
  .fcta { transition:none; }
}

/* ===== v3.13 히어로 배경 사진: 빈 배경에서 위→아래로 내려오며 등장 ===== */
.hero10__photo { background:var(--pinkbg); }
.hero10__photo img { animation:heroDrop 1.6s cubic-bezier(.22,1,.36,1) .15s both; }
@keyframes heroDrop {
  0%   { clip-path:inset(0 0 100% 0); transform:translateY(-8%) scale(1.08); opacity:0; }
  25%  { opacity:1; }
  100% { clip-path:inset(0 0 0 0);    transform:translateY(0) scale(1); opacity:1; }
}
.hero10 .hero10__card[data-ani].show { transition-delay:.9s; }
.hero10 .hero10__cta[data-ani].show  { transition-delay:1.1s; }
@media (prefers-reduced-motion: reduce) { .hero10__photo img { animation:none; } }

/* ===== v3.14 카드형 사진 하나씩 등장 (슬라이더 아이템 순차 페이드업) ===== */
.js-cardin .bslider__item { opacity:0; transform:translateY(40px) scale(.96);
  transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
  transition-delay:calc(var(--i, 0) * .18s); }
.js-cardin .bslider.is-in .bslider__item { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .js-cardin .bslider__item { opacity:1; transform:none; transition:none; } }

/* ===== v3.15 텍스트 포함 콘텐츠 최대폭 800px (가운데 정렬) ===== */
.hero10__card, .grid2, .tcard, .mcard, .cta_block,
.sec_ov, .sec_tit, .sec_sub,
.s_intro__tit, .s_intro__sub,
.s_benefit__ov, .s_benefit__tit, .s_benefit__info,
.s_why__ov, .s_why__tit, .s_why__sub,
.s_heritage__ov, .s_heritage__tit, .s_heritage__sub, .s_heritage__mid,
.s_dress__desc, .s_all__tit, .s_all__mid,
.s_map__tit, .s_map__addr, .s_map__info {
  max-width:800px; margin-left:auto !important; margin-right:auto !important; box-sizing:border-box;
}
/* 혜택·WHY 카드: PC에서도 800px 안에서 1열 */
@media (min-width:1024px){
  .grid2 { grid-template-columns:min(664px, 100%) !important; }
}

/* ===== v3.18 하단(오시는길 위) 초대 신청 버튼 — 티켓형(네 모서리 오목 노치) ===== */
.cta_ticket { display:block; width:calc(640 * var(--k)); max-width:100%; margin:0 auto; text-decoration:none;
  filter:drop-shadow(0 calc(10 * var(--k)) calc(18 * var(--k)) rgba(130,51,51,.22)); transition:transform .2s, filter .2s; }
.cta_ticket span { --n:calc(18 * var(--k)); display:flex; align-items:center; justify-content:center;
  height:calc(110 * var(--k)); background:linear-gradient(90deg, #b76a66 0%, #9a5352 50%, #7c3535 100%);
  color:#fff; font-weight:700; font-size:calc(34 * var(--k)); letter-spacing:-.02em;
  -webkit-mask:
    radial-gradient(circle var(--n) at 0 0, #0000 98%, #000) top left,
    radial-gradient(circle var(--n) at 100% 0, #0000 98%, #000) top right,
    radial-gradient(circle var(--n) at 0 100%, #0000 98%, #000) bottom left,
    radial-gradient(circle var(--n) at 100% 100%, #0000 98%, #000) bottom right;
  -webkit-mask-size:51% 51%; -webkit-mask-repeat:no-repeat;
          mask:
    radial-gradient(circle var(--n) at 0 0, #0000 98%, #000) top left,
    radial-gradient(circle var(--n) at 100% 0, #0000 98%, #000) top right,
    radial-gradient(circle var(--n) at 0 100%, #0000 98%, #000) bottom left,
    radial-gradient(circle var(--n) at 100% 100%, #0000 98%, #000) bottom right;
          mask-size:51% 51%; mask-repeat:no-repeat; }
.cta_ticket:hover { filter:drop-shadow(0 calc(14 * var(--k)) calc(24 * var(--k)) rgba(130,51,51,.32)) brightness(1.06); }
.cta_ticket:active { transform:scale(.98); }
.s_cta_final { padding:calc(60 * var(--k)) 0 calc(70 * var(--k)); }
/* v3.19 히어로 신청 버튼도 티켓형 — 카드 아래에 살짝 겹치게 */
.hero10__cta.cta_block--ticket { margin-top:calc(-40 * var(--k)); }
