@charset "utf-8";
/* ==========================================================
   봄소리 리뉴얼 (시안 : bom-sori.co.kr/sian)
   기존 css 뒤에 로드되어 헤더/푸터/메인을 덮어씀
   ========================================================== */

:root{
	--re-rose:#C4515F; --re-rose-d:#8C3B46; --re-wine:#5C2B33; --re-ink:#33262A; --re-text:#6B5458;
	--re-label:#7A5A5F; --re-line:#E1CFCC; --re-cream:#FFF8F4; --re-peach:#FFF3EC; --re-beige:#F5EDE2;
	--re-gold:#C8A452; --re-gold-d:#8A6420; --re-green:#44655C; --re-mint:#E8EFE9;
}

#hd, #Footer, #container_index, #re_chatbot{ font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif; -webkit-font-smoothing:antialiased;}
#container_index a:hover, #container_index a:focus, #hd a:hover, #hd a:focus, #Footer a:hover, #Footer a:focus{ text-decoration:none;}

/* ---------- 헤더 ---------- */
#hd{ background:var(--re-cream); height:85px; box-shadow:none; border-bottom:1px solid #F0E2DE;}
#hd.on{ background:var(--re-cream); border-bottom-color:#F0E2DE; box-shadow:0 6px 20px rgba(51,38,42,.06);}
#hd_wrapper{ max-width:1400px; height:100%; padding:0 32px; display:flex; align-items:center; gap:0 clamp(16px,2.2vw,36px);}
#hd hr{ display:none;}
#logo{ position:static; padding:0; flex-shrink:0;}
#logo a{ display:flex; align-items:center; gap:9px;}
#logo img{ height:64px; width:auto;}
#logo .logo_en{ font-size:11px; font-weight:700; letter-spacing:.02em; color:#A9525E; white-space:nowrap;}

#gnb{ flex:1 1 auto; align-self:stretch; min-width:0; text-align:left; order:2;}
#gnb_1dul{ display:flex; flex-wrap:nowrap; height:100%; gap:0 clamp(4px,1vw,14px);}
/* 1차메뉴를 헤더 높이만큼 채워 2차메뉴와 틈이 없도록 (틈이 있으면 hover가 끊겨 2차메뉴가 닫힘) */
.gnb_1dli{ height:100%;}
.gnb_1da{ height:100%; padding:0 10px; line-height:85px; font-size:clamp(15px,1.35vw,17px); font-weight:700; letter-spacing:-.025em; color:#5C4348 !important; white-space:nowrap;}
#hd.on .gnb_1da{ color:#5C4348 !important;}
#gnb .gnb_1dli:hover .gnb_1da, #gnb .gnb_1dli .gnb_1da.hov{ color:var(--re-rose) !important;}
.gnb_2dul{ top:100%; left:50%; transform:translateX(-50%); width:auto !important; min-width:170px; padding:8px 0 !important; background:#fff; border:1px solid #F0E2DE; border-top:2px solid var(--re-rose); border-radius:0 0 10px 10px; box-shadow:0 14px 30px rgba(51,38,42,.1);}
.gnb_2dul .gnb_2dli{ float:none;}
.gnb_2da{ padding:9px 18px; font-size:14px; color:var(--re-text) !important; white-space:nowrap; text-align:left;}
#gnb .gnb_2da:hover, #gnb .gnb_2da:focus{ color:var(--re-rose) !important; font-weight:700 !important; background:var(--re-cream);}

#topm{ position:static; order:3; display:flex; align-items:center; gap:10px; flex-shrink:0;}
#topm .hd_reserv{ background:var(--re-rose); color:#fff; font-size:13px; font-weight:700; padding:11px 18px; border-radius:20px; white-space:nowrap; transition:background .2s;}
#topm .hd_reserv:hover{ background:var(--re-ink); color:#fff;}

@media (max-width:992px){
	#hd{ height:70px;}
	#hd_wrapper{ padding:0 15px;}
	#logo{ height:auto;}
	#logo img{ height:52px;}
	#topm{ margin-left:auto; margin-right:44px;}
	#topm .hd_reserv{ padding:9px 14px; font-size:12px;}
	#hd .nav_open{ top:24px;}
	#hd .nav_open span, #hd.on .nav_open span{ background:#5C4348;}
}
@media (max-width:400px){
	#logo .logo_en{ display:none;}
}

/* ---------- 메인 공통 ---------- */
#container_index{ padding-top:85px; background:var(--re-cream); color:var(--re-ink); font-size:15px; overflow-x:hidden;}
#container_index *, #re_chatbot *{ box-sizing:border-box;}
@media (max-width:992px){ #container_index{ padding-top:70px;} }
#container_index h2, #container_index h3{ font-family:inherit;}
#container_index :where(h2,h3,p){ margin:0;}

#container_index label{ font-weight:normal;}
.re_grid2 label, label.re_field, .re_pill{ margin-bottom:0;}
#container_index input, #container_index textarea, #container_index button, #re_chatbot input, #re_chatbot button{ font-family:inherit;}
.re_inner{ max-width:1400px; margin:0 auto; padding-left:32px; padding-right:32px; position:relative;}
.re_eyebrow{ font-size:14px; font-weight:800; letter-spacing:.02em; color:var(--re-rose);}
.re_eyebrow.re_gold{ color:var(--re-gold-d);}
.re_eyebrow.re_green{ color:var(--re-green);}
.re_eyebrow.re_wide{ font-size:13px; letter-spacing:.12em; color:var(--re-rose-d);}
.re_h2{ margin-top:18px !important; font-size:clamp(26px,3.2vw,38px); line-height:1.42; font-weight:500; letter-spacing:-.04em; color:var(--re-ink);}
.re_h2 strong{ font-weight:800;}
.re_h2_sm{ margin-top:16px !important; font-size:clamp(24px,2.8vw,34px); line-height:1.4;}
.re_p{ font-size:15px; line-height:1.85; color:var(--re-text); letter-spacing:-.02em;}
a.re_more{ display:inline-block; margin-top:14px; font-size:14px; font-weight:800; color:var(--re-rose); letter-spacing:-.02em;}
a.re_more:hover{ color:var(--re-ink);}
.re_split{ padding-top:104px; padding-bottom:96px; display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:56px 64px; align-items:start;}
.re_col{ min-width:0; display:flex; flex-direction:column; gap:26px;}
.re_btns{ display:flex; flex-wrap:wrap; gap:9px; margin-top:24px;}
.re_btn{ font-size:14px; font-weight:800; padding:13px 24px; border-radius:24px; letter-spacing:-.02em; white-space:nowrap; transition:all .2s;}
a.re_btn_main{ background:var(--re-rose); color:#fff;}
.re_btn_main:hover, .re_btn_main:focus{ background:var(--re-ink); color:#fff;}
a.re_btn_gold{ background:#fff; border:1px solid var(--re-gold); color:var(--re-gold-d);}
.re_btn_gold:hover, .re_btn_gold:focus{ background:var(--re-gold); color:#fff;}
.re_pc{}
@media (max-width:767px){
	.re_pc{ display:none;}
	.re_inner{ padding-left:20px; padding-right:20px;}
	.re_split{ padding-top:72px; padding-bottom:72px; grid-template-columns:minmax(0,1fr);}
}

/* 배지 */
.re_badge{ display:inline-flex; align-items:center; gap:9px; font-size:15px; font-weight:700; letter-spacing:-.01em; color:#fff; background:rgba(30,16,19,.68); border-radius:16px; padding:8px 15px;}
.re_badge_sm{ font-size:13px; padding:8px 14px; margin-bottom:12px;}
.re_badge .dot{ width:7px; height:7px; border-radius:50%; background:#FFD9DE; flex-shrink:0;}

/* 칩 / 필 */
.re_chips{ display:flex; flex-wrap:wrap; gap:7px;}
.re_chips button{ cursor:pointer; font-size:13px; font-weight:700; letter-spacing:-.02em; border-radius:18px; padding:8px 14px; white-space:nowrap; transition:all .2s;}
.re_chips_hero{ margin-top:14px;}
.re_chips_hero button{ color:#fff; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.42);}
.re_chips_hero button:hover{ background:#fff; color:var(--re-rose-d);}
.re_pills{ display:flex; gap:6px; flex-wrap:wrap;}
.re_pill{ cursor:pointer;}
.re_pill input{ position:absolute; opacity:0; width:0; height:0;}
.re_pill span, .re_region_tabs button{ display:block; border-radius:20px; font-size:13px; font-weight:700; letter-spacing:-.02em; padding:10px 15px; white-space:nowrap; border:1px solid #E1B7BC; background:transparent; color:var(--re-rose-d); transition:all .2s;}
.re_pill input:checked + span, .re_region_tabs button.on{ border-color:var(--re-rose); background:var(--re-rose); color:#fff;}
.re_pill input:focus-visible + span{ outline:2px solid var(--re-ink); outline-offset:2px;}

/* 폼 공통 */
.re_grid2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px;}
.re_grid2 label, .re_field{ display:block;}
.re_grid2 label > span, .re_field > span{ display:block; font-size:12px; font-weight:700; letter-spacing:.04em; color:var(--re-label); margin-bottom:6px;}
.re_grid2 input, .re_field textarea{ width:100%; height:44px; border:1px solid var(--re-line); background:#fff; padding:0 13px; font-size:15px; color:var(--re-ink); border-radius:6px; outline:none;}
.re_grid2 input:focus, .re_field textarea:focus{ border-color:var(--re-rose);}
#container_index input::-webkit-input-placeholder, #container_index textarea::-webkit-input-placeholder, #re_chatbot input::-webkit-input-placeholder{ font-size:inherit; color:#B8A4A7;}
#container_index input::placeholder, #container_index textarea::placeholder, #re_chatbot input::placeholder{ font-size:inherit; color:#B8A4A7;}
.re_field{ margin-top:12px;}
.re_grid2 + .re_grid2, .re_field + .re_grid2{ margin-top:12px;}
.re_btn_submit{ margin-top:18px; width:100%; height:50px; background:var(--re-rose); color:#fff; border:0; border-radius:25px; font-size:15px; font-weight:800; letter-spacing:-.02em; cursor:pointer; transition:background .2s;}
.re_btn_submit:hover{ background:var(--re-ink);}

/* ---------- 메인비주얼 ---------- */
#re_hero{ position:relative; min-height:820px; display:flex; align-items:flex-end; overflow:hidden; background:#F3E4DE;}
.re_hero_bg{ position:absolute; inset:0; background:url(../img/renew/re_hero.jpg) center 40%/cover no-repeat;}
#re_hero:after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(44,26,30,.42) 0%, rgba(44,26,30,.56) 34%, rgba(44,26,30,.84) 68%, rgba(44,26,30,.92) 100%);}
.re_hero_in{ z-index:1; width:100%; padding-top:120px; padding-bottom:132px; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:44px; align-items:end;}
.re_hero_txt{ min-width:0; max-width:620px;}
.re_hero_txt h2{ margin-top:14px !important; font-size:clamp(26px,3.4vw,42px); line-height:1.45; font-weight:800; letter-spacing:-.045em; color:#fff;}
.re_hero_txt .re_hero_slogan{ font-size:clamp(34px,3.9vw,54px); line-height:1.3; white-space:nowrap;}
a.re_btn_light{ display:inline-block; margin-top:30px; background:var(--re-cream); color:var(--re-rose-d); font-size:15px; font-weight:700; padding:14px 28px; border-radius:24px; letter-spacing:-.02em; transition:all .2s;}
.re_btn_light:hover, .re_btn_light:focus{ background:var(--re-rose); color:#fff;}
.re_hero_chat{ margin-top:44px; max-width:640px;}
.re_chat_bar{ display:flex; flex-wrap:wrap; gap:8px; background:rgba(255,255,255,.97); padding:8px 8px 8px 18px; border-radius:30px; align-items:center;}
.re_chat_bar input{ flex:1 1 200px; min-width:0; height:44px; border:0; outline:none; background:transparent; font-size:15px; color:var(--re-ink); letter-spacing:-.02em;}
.re_chat_bar button{ height:44px; padding:0 24px; background:var(--re-rose); color:#fff; border:0; border-radius:22px; font-size:14px; font-weight:800; cursor:pointer; letter-spacing:-.02em; white-space:nowrap; transition:background .2s;}
.re_chat_bar button:hover{ background:var(--re-ink);}

.re_quick{ min-width:0; justify-self:end; width:100%; max-width:380px; background:rgba(255,248,244,.97); border-radius:14px; padding:26px 24px 28px; box-shadow:0 20px 50px rgba(48,28,32,.3);}
.re_quick_hd{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:16px;}
.re_quick_hd strong{ font-size:19px; font-weight:800; letter-spacing:-.035em; color:var(--re-ink);}
.re_quick_desc{ margin-top:11px !important; font-size:13px; line-height:1.6; letter-spacing:-.02em; color:var(--re-label);}
@media (max-width:991px){
	#re_hero{ min-height:0;}
	.re_hero_in{ padding-top:96px; padding-bottom:88px; grid-template-columns:minmax(0,1fr); gap:36px;}
	.re_hero_txt{ max-width:none;}
	.re_quick{ justify-self:start; max-width:560px;}
}
@media (max-width:767px){
	#re_hero{ min-height:0;}
	.re_hero_in{ padding-top:80px; padding-bottom:64px; grid-template-columns:minmax(0,1fr);}
	.re_quick{ justify-self:stretch; max-width:none;}
	.re_hero_txt .re_hero_slogan{ font-size:38px; line-height:1.25; white-space:normal;}
	.re_hero_slogan span{ display:block;}
}

/* ---------- 소개 ---------- */
#re_about{ background:var(--re-peach);}
.re_about_img{ min-width:0; aspect-ratio:4/3; background:url(../img/renew/re_about.jpg) center/cover no-repeat; border-radius:10px;}

/* ---------- 띠배너 ---------- */
#re_band{ position:relative; min-height:380px; display:flex; align-items:center; overflow:hidden; background:#4A3538; text-align:center;}
.re_band_bg{ position:absolute; inset:0; background:url(../img/renew/re_band_bg.jpg) center 34%/cover no-repeat;}
#re_band:after{ content:""; position:absolute; inset:0; background:rgba(44,26,30,.72);}
#re_band .re_inner{ z-index:1; width:100%; padding-top:86px; padding-bottom:86px;}
.re_band_tags{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:28px;}
.re_band_tags span{ font-size:13px; font-weight:700; letter-spacing:.04em; color:#fff; background:rgba(30,16,19,.72); border-radius:16px; padding:8px 14px; white-space:nowrap;}
#re_band p{ font-size:clamp(22px,2.8vw,34px); line-height:1.5; font-weight:700; letter-spacing:-.04em; color:#fff;}

/* ---------- 서비스 ---------- */
#re_service{ background:var(--re-beige);}
.re_svc_cards{ min-width:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
.re_svc_card{ min-width:0; background:#fff; border-radius:14px; padding:26px 24px 28px; display:flex; flex-direction:column;}
.re_svc_tit{ display:flex; align-items:center; gap:12px; font-size:18px; font-weight:800; letter-spacing:-.035em; word-break:keep-all;}
.re_svc_tit .no{ width:38px; height:38px; flex-shrink:0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; letter-spacing:-.03em;}
.re_svc_tit .c1{ background:#F2CFCB; color:var(--re-rose-d);}
.re_svc_tit .c2{ background:#F0DDB8; color:var(--re-gold-d);}
.re_svc_tit .c3{ background:#D9E4DC; color:var(--re-green);}
.re_svc_tit .c4{ background:#E4DAE8; color:#5F4470;}
.re_svc_card p{ margin-top:14px !important; flex:1; font-size:14px; line-height:1.75; color:var(--re-text); letter-spacing:-.02em; word-break:keep-all;}
.re_svc_card a{ margin-top:20px; align-self:flex-start; background:var(--re-ink); color:#fff; font-size:13px; font-weight:700; padding:10px 18px; border-radius:20px; letter-spacing:-.02em; white-space:nowrap; transition:background .2s;}
.re_svc_card a:hover, .re_svc_card a:focus{ background:var(--re-rose); color:#fff;}
@media (max-width:500px){
	.re_svc_cards{ grid-template-columns:minmax(0,1fr);}
}

/* ---------- 정부지원 ---------- */
#re_gov{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); align-items:stretch;}
.re_gov_l{ background:#EFDCD6; align-self:start; padding:72px clamp(20px,4vw,64px) 76px; min-width:0; display:flex; flex-direction:column; gap:26px;}
.re_gov_tit{ margin-top:18px; font-size:clamp(22px,2.6vw,32px); line-height:1.5; font-weight:800; letter-spacing:-.04em; color:var(--re-wine);}
.re_gov_img{ aspect-ratio:4/3; background:url(../img/renew/re_service.jpg) center 32%/cover no-repeat; border-radius:10px;}
.re_gov_stats{ display:flex; flex-wrap:wrap; gap:12px 28px;}
.re_gov_stats div{ padding-left:12px; border-left:3px solid var(--re-gold);}
.re_gov_stats .s2{ border-left-color:#7FA39A;}
.re_gov_stats span{ display:block; font-size:12px; font-weight:700; letter-spacing:.06em; color:var(--re-gold-d);}
.re_gov_stats .s2 span{ color:var(--re-green);}
.re_gov_stats strong{ display:block; margin-top:5px; font-size:20px; font-weight:800; letter-spacing:-.03em; color:var(--re-wine);}
.re_gov_r{ background:var(--re-peach); padding:88px clamp(20px,4vw,72px) 92px; min-width:0;}
.re_gov_list{ margin:40px 0 0;}
.re_gov_list dt{ padding-top:24px; border-top:1px solid #EBD8D2; font-size:20px; font-weight:800; letter-spacing:-.035em; color:var(--re-ink);}
.re_gov_list dd{ margin:10px 0 0; padding-bottom:24px; font-size:15px; line-height:1.8; color:var(--re-text); letter-spacing:-.02em;}
.re_fee{ margin-top:28px; background:#fff; border:1px solid #EBD8D2; border-radius:10px; padding:26px 24px 28px;}
.re_fee_hd{ display:flex; align-items:center; gap:9px; font-size:13px; font-weight:800; letter-spacing:.1em; color:var(--re-gold-d);}
.re_fee_hd .bar{ width:20px; height:3px; background:var(--re-gold); flex-shrink:0;}
.re_fee ul{ margin:16px 0 0; padding:0; list-style:none;}
.re_fee li{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:baseline; padding:11px 0; border-bottom:1px solid #F4E6E2;}
.re_fee li span{ min-width:0; font-size:15px; letter-spacing:-.02em; color:#423236;}
.re_fee li strong{ font-size:16px; font-weight:800; letter-spacing:-.02em; color:var(--re-rose); white-space:nowrap;}
.re_fee p{ margin-top:14px !important; font-size:13px; line-height:1.7; color:#8A7276; letter-spacing:-.02em;}
#re_gov .re_more{ margin-top:26px;}
@media (max-width:767px){
	#re_gov{ grid-template-columns:minmax(0,1fr);}
}

/* ---------- FAQ ---------- */
#re_faq{ background:var(--re-cream);}
.re_faq_in{ padding-top:104px; padding-bottom:96px; display:grid; grid-template-columns:minmax(260px,1fr) minmax(0,2fr); gap:56px; align-items:start;}
.re_faq_in .re_col{ gap:0;}
.re_faq_in .re_p{ margin-top:22px !important;}
.faq-list{ min-width:0; border-top:1px solid #E7D4CF;}
.faq-item{ border-bottom:1px solid #E7D4CF;}
.faq-q{ width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; text-align:left; background:transparent; border:0; padding:22px 2px; cursor:pointer;}
.faq-q span{ min-width:0; font-size:18px; font-weight:700; letter-spacing:-.03em; line-height:1.5; color:var(--re-ink);}
.faq-q i{ font-style:normal; font-size:19px; font-weight:700; color:var(--re-rose); line-height:1; display:inline-block; transition:transform .25s ease;}
.faq-item.active .faq-q i{ transform:rotate(45deg);}
.faq-a{ display:none;}
.faq-a p{ padding:0 2px 26px; font-size:16px; line-height:1.9; letter-spacing:-.02em; color:#5C4348;}
@media (max-width:900px){
	.re_faq_in{ grid-template-columns:minmax(0,1fr); gap:36px;}
}
@media (max-width:767px){
	.re_faq_in{ padding-top:72px; padding-bottom:72px;}
	.faq-q span{ font-size:16px;}
	.faq-a p{ font-size:15px;}
}

/* ---------- 지점안내 ---------- */
#re_branch{ background:var(--re-mint);}
#re_branch > .re_inner{ padding-top:100px; padding-bottom:96px;}
.re_branch_hd{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px;}
.re_region_tabs button{ cursor:pointer; font-size:14px; padding:11px 18px;}
.re_branch_list{ margin-top:40px; display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:14px;}
a.re_branch_card{ display:block; background:#fff; border-radius:10px; padding:24px 24px 26px; min-width:0; color:var(--re-ink); border:1px solid transparent; transition:border-color .2s, transform .2s;}
.re_branch_card:hover, .re_branch_card:focus{ color:var(--re-ink); border-color:#B9CFC1; transform:translateY(-2px);}
.re_branch_top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.re_branch_top strong{ font-size:19px; font-weight:800; letter-spacing:-.035em;}
.re_chip{ font-size:11px; font-weight:700; letter-spacing:.02em; border-radius:14px; padding:5px 11px; white-space:nowrap;}
.re_chip.r1{ background:#FBE7E4; color:#A9525E;}
.re_chip.r2{ background:#E4DAE8; color:#5F4470;}
.re_chip.r3{ background:#F0DDB8; color:var(--re-gold-d);}
.re_chip.r4{ background:#F6DCCB; color:#9A4E2E;}
.re_chip.r5{ background:#DCE6DF; color:#3F6150;}
.re_branch_card p{ margin-top:9px !important; font-size:14px; line-height:1.65; color:var(--re-text); letter-spacing:-.02em;}
.re_branch_tel{ margin-top:14px; font-size:18px; font-weight:800; letter-spacing:-.03em; white-space:nowrap;}
.re_empty{ color:var(--re-text);}
.re_center{ margin-top:44px;}
.re_center h3{ font-size:19px; font-weight:800; letter-spacing:-.035em;}
.re_center_list{ margin-top:16px; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px;}
.re_center_card{ background:#fff; border-radius:10px; padding:22px 22px 24px; min-width:0;}
.re_center_card strong{ display:block; font-size:17px; font-weight:800; letter-spacing:-.035em;}
.re_center_card p{ margin-top:8px !important; font-size:14px; line-height:1.65; color:var(--re-text); letter-spacing:-.02em;}
.re_center_card span{ display:block; margin-top:12px; font-size:16px; font-weight:800; letter-spacing:-.03em;}
@media (max-width:767px){
	#re_branch > .re_inner{ padding-top:72px; padding-bottom:72px;}
	.re_branch_list, .re_center_list{ grid-template-columns:minmax(0,1fr);}
}

/* ---------- 상담예약 ---------- */
#re_reserv{ display:grid; grid-template-columns:minmax(300px,.62fr) minmax(340px,1fr); align-items:stretch;}
.re_reserv_l{ background:var(--re-peach); padding:88px clamp(20px,4vw,72px) 92px; min-width:0; display:flex; flex-direction:column; align-items:flex-end; text-align:right;}
.re_reserv_l .re_h2{ margin-top:16px !important; line-height:1.4;}
.re_reserv_l .re_p{ margin-top:22px !important;}
.re_reserv_l .re_reserv_time{ margin-top:12px !important; line-height:1.8;}
.re_reserv_r{ background:var(--re-beige); padding:88px clamp(20px,4vw,72px) 92px; min-width:0;}
.re_reserv_form{ background:#fff; border-radius:12px; padding:32px 30px 34px; border-top:4px solid var(--re-gold);}
.re_reserv_form .re_grid2{ gap:14px;}
.re_reserv_form .re_grid2 input, .re_reserv_form .re_field textarea{ height:46px; padding:0 14px; background:var(--re-cream);}
.re_reserv_form .re_field textarea{ height:auto; padding:12px 14px; resize:vertical;}
.re_reserv_form .re_field, .re_reserv_form .re_field + .re_grid2{ margin-top:16px;}
.re_reserv_form .re_pills{ gap:7px;}
.re_reserv_form .re_btn_submit{ margin-top:20px; height:54px; font-size:16px; border-radius:28px;}
@media (max-width:767px){
	#re_reserv{ grid-template-columns:minmax(0,1fr);}
	.re_reserv_l{ align-items:flex-start; text-align:left; padding-top:72px; padding-bottom:48px;}
	.re_reserv_r{ padding-top:0; padding-bottom:72px; background:var(--re-peach);}
	.re_reserv_form{ padding:26px 20px 28px;}
}

/* ---------- AI 챗봇 (창·버튼 스타일은 css/chatbot.css) ---------- */
@keyframes bsPop { from { opacity:0; transform:translateY(16px) scale(.96) } to { opacity:1; transform:translateY(0) scale(1) } }
@keyframes bsHalo { 0% { box-shadow:0 12px 32px rgba(196,81,95,.36), 0 0 0 0 rgba(196,81,95,.45) } 70% { box-shadow:0 12px 32px rgba(196,81,95,.36), 0 0 0 16px rgba(196,81,95,0) } 100% { box-shadow:0 12px 32px rgba(196,81,95,.36), 0 0 0 0 rgba(196,81,95,0) } }
@keyframes bsBubble { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:translateY(0) } }
@keyframes bsNudge { 0%, 72%, 100% { transform:translateY(0) rotate(0) } 78% { transform:translateY(-6px) rotate(-2deg) } 84% { transform:translateY(0) rotate(1.5deg) } 90% { transform:translateY(-3px) rotate(-1deg) } 95% { transform:translateY(0) rotate(0) } }
@keyframes bsDot { 0%, 100% { transform:scale(1); opacity:1 } 50% { transform:scale(1.35); opacity:.7 } }
@keyframes bsBlink { 0%, 80%, 100% { opacity:.25; transform:translateY(0) } 40% { opacity:1; transform:translateY(-3px) } }

/* 챗봇과 겹치지 않도록 상단이동 버튼 위로 */
#gobtn{ bottom:96px;}
#gobtn .goHd{ border-radius:50%; background:var(--re-ink); width:52px; height:52px; line-height:52px; font-size:1.1em;}
#gobtn .goHd:hover{ background:var(--re-rose);}
@media (max-width:767px){
	#gobtn{ right:14px; bottom:76px;}
	#gobtn .goHd{ width:40px; height:40px; line-height:40px;}
}

/* ---------- 푸터 ---------- */
#Footer{ background:#6B3B42; color:rgba(255,255,255,.72);}
.re_ft_top{ max-width:1400px; margin:0 auto; padding:80px 32px 56px; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:48px;}
.re_ft_cta strong{ display:block; font-size:clamp(24px,2.8vw,34px); font-weight:800; letter-spacing:-.045em; color:#fff;}
.re_ft_cta p{ margin:12px 0 0; font-size:14px; letter-spacing:-.02em; color:rgba(255,255,255,.66);}
.re_ft_btns{ margin-top:22px; display:flex; flex-wrap:wrap; gap:8px;}
.re_ft_btns a{ font-size:13px; font-weight:800; padding:11px 20px; border-radius:20px; white-space:nowrap; transition:all .2s;}
.re_ft_btns .b1{ background:var(--re-cream); color:#6B3B42;}
.re_ft_btns .b1:hover{ background:var(--re-rose); color:#fff;}
.re_ft_btns .b2{ border:1px solid rgba(255,255,255,.4); color:#fff;}
.re_ft_btns .b2:hover{ background:#fff; color:#6B3B42;}
.re_ft_nav{ display:flex; flex-direction:column; align-items:flex-start; gap:14px;}
.re_ft_nav a{ font-size:21px; font-weight:800; letter-spacing:-.04em; color:#fff;}
.re_ft_nav a:hover, .re_ft_nav a:focus{ color:#FFD9DE;}

#Footer .copyarea{ background:transparent;}
#Footer .copyarea .copyright{ width:auto; max-width:1400px; margin:0 auto; padding:34px 32px 60px; text-align:left; position:relative;}
#Footer .copyarea .copyright:before{ content:""; position:absolute; left:32px; right:32px; top:0; border-top:1px solid rgba(255,255,255,.2);}
#Footer .re_ft_logo{ display:block; height:40px; width:auto; filter:brightness(0) invert(1); opacity:.92;}
#Footer .copyarea .copyright .ft_copy{ font-size:14px; line-height:1.9; letter-spacing:-.02em; color:rgba(255,255,255,.72); font-style:normal;}
#Footer .copyarea .copyright .ft_copy h1.cn{ margin:0; padding:14px 0 8px; font-size:17px; font-weight:800; letter-spacing:-.045em; color:#fff; font-family:inherit;}
#Footer .copyarea .copyright .copyt{ margin-top:12px; font-size:12px; letter-spacing:.04em; color:rgba(255,255,255,.68);}
#Footer .copyarea .copyright .copyt a{ color:#FFD9DE;}
#Footer .copyarea .fmenu_area{ padding:0 0 24px;}
#Footer .copyarea .fmenu_area ul{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 0;}
#Footer .copyarea .fmenu_area li{ display:flex; align-items:center; line-height:1.5;}
#Footer .copyarea .fmenu_area li:after{ vertical-align:middle; line-height:1;}
#Footer .copyarea .fmenu_area li:after{ color:rgba(255,255,255,.3);}
#Footer .copyarea .fmenu_area li a{ font-size:14px; font-weight:500; line-height:1.5; color:rgba(255,255,255,.72);}
/* sub.css의 개인정보처리방침 본문용 .privacy(font-size/line-height)가 링크에 적용되지 않도록 */
#Footer .copyarea .fmenu_area li a.privacy{ font-size:14px; line-height:1.5; color:#FFD9DE; font-weight:800;}
#Footer .copyarea .fmenu_area li a:hover{ color:#fff;}
#Footer .family-link{ z-index:5;}
@media (max-width:1279px){
	#Footer .copyarea .copyright{ padding:34px 32px 60px;}
}
@media (max-width:992px){
	#Footer .family-link{ position:relative; top:auto; right:auto; width:100%; margin:0 0 24px;}
}
@media (max-width:767px){
	.re_ft_top{ padding:64px 20px 40px; gap:32px;}
	.re_ft_nav a{ font-size:18px;}
	#Footer .copyarea .copyright{ padding:30px 20px 48px;}
	#Footer .copyarea .copyright:before{ left:20px; right:20px;}
}

/* ---------- 사이드메뉴 (#mobile_menu) ---------- */
html.open{ overflow:hidden;}
.page_cover{ display:none; position:fixed; inset:0; z-index:10001; background:rgba(44,26,30,.55);}
.page_cover.open{ display:block;}
#mobile_menu{ position:fixed; top:0; right:-100%; width:min(420px,100%); height:100%; z-index:10002; background:#6B3B42; transition:right .45s ease; font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif;}
#mobile_menu.open{ right:0; box-shadow:-20px 0 50px rgba(44,26,30,.25);}
#mobile_menu .mobile_menu_hd{ display:flex; align-items:center; justify-content:space-between; height:85px; padding:0 24px 0 28px; border-bottom:1px solid rgba(255,255,255,.14);}
#mobile_menu .mobile_logo img{ height:44px; width:auto; filter:brightness(0) invert(1); opacity:.92;}
#mobile_menu .mobile_close{ position:relative; width:44px; height:44px; cursor:pointer;}
#mobile_menu .mobile_close span{ position:absolute; top:21px; left:7px; width:30px; height:2px; background:rgba(255,255,255,.8); transform:rotate(45deg);}
#mobile_menu .mobile_close span:last-child{ transform:rotate(-45deg);}
#mobile_menu .hash_scroll{ height:calc(100% - 85px); overflow-y:auto; -webkit-overflow-scrolling:touch;}
#mobile_menu #gnb2{ padding:22px 0 40px;}
#mobile_menu #mgnb_1dul{ margin:0; padding:0; list-style:none;}
#mobile_menu li.mgnb_1dli{ float:none; width:auto; padding:0 28px; border-bottom:1px solid rgba(255,255,255,.1);}
#mobile_menu li.mgnb_1dli a.mgnb_1da{ display:flex; align-items:center; justify-content:space-between; margin:0; padding:18px 0; font-size:19px; font-weight:800; letter-spacing:-.035em; color:#fff !important; cursor:pointer; text-decoration:none;}
#mobile_menu li.mgnb_1dli a.mgnb_1da i{ display:inline-block; font-size:14px; color:#FFD9DE; transition:transform .3s;}
#mobile_menu li.mgnb_1dli a.mgnb_1da.on{ color:#FFD9DE !important;}
#mobile_menu li.mgnb_1dli a.mgnb_1da:only-child i{ display:none;}
#mobile_menu li.mgnb_1dli a.mgnb_1da.on i{ transform:rotate(180deg);}
#mobile_menu ul.mgnb_2dul{ display:none; margin:0; padding:0 0 16px; list-style:none; background:transparent;}
#mobile_menu li.mgnb_2dli a.mgnb_2da{ display:block; padding:7px 0 7px 2px; font-size:15px; font-weight:400; line-height:1.6; color:rgba(255,255,255,.7); background:none; text-decoration:none;}
#mobile_menu li.mgnb_2dli a.mgnb_2da:hover{ color:#fff;}
#mobile_menu li.mgnb_cta_li{ padding:32px 28px 0; display:flex; flex-wrap:wrap; align-items:center; gap:14px;}
#mobile_menu a.mgnb_cta{ display:inline-block; background:var(--re-cream); color:#6B3B42; padding:13px 30px; border-radius:24px; font-size:15px; font-weight:800; letter-spacing:-.02em;}
#mobile_menu a.mgnb_cta:hover{ background:var(--re-rose); color:#fff;}
#mobile_menu li#mgnb_empty{ padding:10px 28px; color:rgba(255,255,255,.7); line-height:2;}
#mobile_menu li#mgnb_empty a{ color:#FFD9DE; text-decoration:underline;}
@media (max-width:992px){
	#mobile_menu .mobile_menu_hd{ height:70px; padding:0 15px 0 20px;}
	#mobile_menu .hash_scroll{ height:calc(100% - 70px);}
	#mobile_menu li.mgnb_1dli, #mobile_menu li.mgnb_cta_li{ padding-left:20px; padding-right:20px;}
}

/* ---------- 서브 상단 (#svisual : 타이틀 + 서브메뉴) ---------- */
#svisual{ height:auto; min-height:400px; margin:85px 0 0; display:flex; flex-direction:column; justify-content:flex-end; border-bottom:0; background:#FFF8F4 url(../img/renew/re_hero.jpg) no-repeat center/cover; font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif;}
#svisual:after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,248,244,.98) 0%, rgba(255,248,244,.4) 40%, rgba(255,248,244,.0) 100%);}
#svisual .s_text{ position:relative; z-index:1; top:auto; left:auto; width:100%; max-width:1400px; margin:0 auto; padding:96px 32px 44px;}
#svisual #sub_title{ margin:0; text-align:left;}
#svisual #sub_title .container_title{ font-family:inherit; font-size:clamp(28px,3.4vw,44px); line-height:1.3; font-weight:800; letter-spacing:-.045em; color:var(--re-ink);}
#svisual #sub_title p{ margin:14px 0 0; max-width:640px; font-size:15px; line-height:1.7; letter-spacing:-.01em; color:var(--re-text);}
#svisual #sub_title p:after{ display:block; content:''; width:28px; height:3px; margin:22px 0 0; border-radius:2px; background:var(--re-gold);}
#svisual .s_menu{ position:relative; z-index:1; width:100%; border-top:1px solid rgba(92,43,51,.1); background:rgba(255,255,255,.55); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);}
#svisual .s_menu aside{ max-width:1400px; margin:0 auto; padding:0 12px; text-align:left !important;}

#container{ width:100%; max-width:1400px; padding:0 32px; font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif; box-sizing:border-box;}
#scont_wrap, #scont_wrap2{ padding-top:72px;}
#scont{ padding:0;}

@media (max-width:1279px){
	#svisual .s_text{ left:auto; margin:0 auto;}
	#container{ width:100%;}
}
@media (max-width:992px){
	#svisual{ min-height:240px; margin-top:70px; background-image:url(../img/renew/re_hero.jpg); background-position:center 42%; background-size:cover;}
	#svisual .s_text{ top:auto; left:auto; padding:56px 20px 28px;}
	#svisual #sub_title p{ font-size:13px;}
	#svisual #sub_title p:after{ margin-top:16px;}
	#svisual .s_menu aside{ padding:0;}
	#container{ padding:0 20px;}
	#scont_wrap, #scont_wrap2{ padding-top:40px;}
	#scont{ padding:0;}
}


/* 서브 2차메뉴 : 스킨 css(캐시/구버전)와 무관하게 적용되도록 renew.css에서 최종 지정 */
#svisual #depth_menu{ height:auto; margin:0; border:0; background:transparent; overflow-x:auto; scrollbar-width:none; transition:none;}
#svisual #depth_menu::-webkit-scrollbar{ display:none;}
#svisual #depth_menu dl{ display:inline-flex; margin:0; padding:0; border:0; white-space:nowrap;}
#svisual #depth_menu dd{ float:none; display:block; height:auto; margin:0; padding:0; border:0; line-height:normal; background:transparent;}
#svisual #depth_menu dd a{ position:relative; display:block; width:auto; height:auto; padding:0 20px; line-height:60px; background:transparent; font-size:15px; font-weight:700; letter-spacing:-.025em; color:var(--re-text); transition:color .2s;}
#svisual #depth_menu dd a:after{ content:""; position:absolute; left:20px; right:20px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:var(--re-rose); transform:scaleX(0); transition:transform .25s ease;}
#svisual #depth_menu dd a:hover, #svisual #depth_menu dd a:focus{ height:auto; line-height:60px; color:var(--re-ink); background:transparent; text-decoration:none;}
#svisual #depth_menu dd a.current{ height:auto; line-height:60px; color:var(--re-ink); font-weight:800; background:transparent;}
#svisual #depth_menu dd a.current:after, #svisual #depth_menu dd a:hover:after{ transform:scaleX(1);}
@media (max-width:992px){
	#svisual #depth_menu dl{ padding:0 6px;}
	#svisual #depth_menu dd a, #svisual #depth_menu dd a:hover, #svisual #depth_menu dd a.current{ padding:0 14px; line-height:50px; font-size:14px;}
	#svisual #depth_menu dd a:after{ left:14px; right:14px;}
}

/* 서브 로케이션 (타이틀 위) */
#svisual #location{ position:static; display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 16px; padding:0; background:none; font-size:13px; font-weight:500; letter-spacing:-.01em; color:var(--re-label);}
#svisual #location a{ color:var(--re-label);}
#svisual #location a:hover{ color:var(--re-ink);}
#svisual #location .loc_arr{ font-size:11px; color:rgba(92,43,51,.35);}
#svisual #location strong{ font-weight:700; color:var(--re-ink);}
@media (max-width:575px){
	#svisual #location{ display:flex; margin-bottom:10px; font-size:12px;}
}

/* ==========================================================
   모션 (wow.js 대체 : js/renew.motion.js)
   ========================================================== */
/* wow 로 보이던 요소 : 항상 표시 */
#hd, #svisual .s_text{ visibility:visible !important;}

/* 등장 애니메이션 */
.js-motion [data-ani]:not(.ani-done){ transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), clip-path 1.1s cubic-bezier(.7,0,.2,1); will-change:opacity, transform;}
.js-motion [data-ani]:not(.is-in){ opacity:0;}
.js-motion [data-ani="up"]:not(.is-in){ transform:translate3d(0,40px,0);}
.js-motion [data-ani="down"]:not(.is-in){ transform:translate3d(0,-40px,0);}
.js-motion [data-ani="left"]:not(.is-in){ transform:translate3d(-48px,0,0);}
.js-motion [data-ani="right"]:not(.is-in){ transform:translate3d(48px,0,0);}
.js-motion [data-ani="zoom"]:not(.is-in){ transform:scale(.94);}
.js-motion [data-ani="reveal"]{ clip-path:inset(0 0 0 0 round 10px);}
.js-motion [data-ani="reveal"]:not(.is-in){ opacity:1; clip-path:inset(0 100% 0 0 round 10px);}

/* 헤더 진입 */
@keyframes reHdIn{ from{ transform:translateY(-100%);} to{ transform:translateY(0);} }
#hd{ animation:reHdIn .6s cubic-bezier(.2,.8,.3,1) both;}

/* 메인비주얼 : 천천히 줌아웃 */
@keyframes reKenBurns{ from{ transform:scale(1.14);} to{ transform:scale(1);} }
.re_hero_bg{ animation:reKenBurns 9s cubic-bezier(.2,.6,.3,1) both; transform-origin:60% 40%;}

/* 띠배너 : 등장시 배경 줌 */
.re_band_bg{ transform:scale(1.08); transition:transform 2.4s cubic-bezier(.2,.6,.3,1);}
#re_band:has(.re_band_tags span.is-in) .re_band_bg{ transform:scale(1);}

/* 서브 상단 진입 */
@keyframes reSubIn{ from{ opacity:0; transform:translateY(24px);} to{ opacity:1; transform:none;} }
#svisual #location{ animation:reSubIn .7s .15s cubic-bezier(.2,.7,.2,1) both;}
#svisual #sub_title .container_title{ animation:reSubIn .8s .25s cubic-bezier(.2,.7,.2,1) both;}
#svisual #sub_title p{ animation:reSubIn .8s .4s cubic-bezier(.2,.7,.2,1) both;}
#svisual .s_menu{ animation:reSubIn .7s .5s cubic-bezier(.2,.7,.2,1) both;}

/* 디테일 hover */
a.re_btn, a.re_btn_light, .re_btn_submit, .re_chat_bar button, #topm .hd_reserv{ transition:background .25s, color .25s, transform .25s, box-shadow .25s;}
a.re_btn:hover, a.re_btn_light:hover, .re_btn_submit:hover, #topm .hd_reserv:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(196,81,95,.22);}
.re_svc_card{ transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;}
.re_svc_card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(51,38,42,.1);}
.re_svc_card .no{ transition:transform .35s cubic-bezier(.3,1.6,.5,1);}
.re_svc_card:hover .no{ transform:scale(1.12) rotate(-6deg);}
.re_center_card, .re_fee{ transition:transform .35s, box-shadow .35s;}
.re_center_card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(51,38,42,.08);}
.re_fee li{ transition:background .2s, padding .25s;}
.re_fee li:hover{ background:#FFF8F4; padding-left:8px; padding-right:8px;}
.re_gov_list dt{ transition:color .2s;}
.faq-q span{ transition:color .2s;}
.faq-q:hover span{ color:#C4515F;}
.re_pill span{ transition:all .2s;}
.re_pill:hover span{ border-color:#C4515F;}
.re_more{ transition:color .2s, letter-spacing .3s;}
a.re_more:hover{ letter-spacing:.01em;}
.re_ft_nav a{ transition:color .2s, transform .25s; display:inline-block;}
.re_ft_nav a:hover{ transform:translateX(6px);}

/* 모션 최소화 설정 존중 */
@media (prefers-reduced-motion:reduce){
	.js-motion [data-ani]{ opacity:1 !important; transform:none !important; clip-path:none !important; transition:none !important;}
	#hd, .re_hero_bg, #svisual #location, #svisual #sub_title .container_title, #svisual #sub_title p, #svisual .s_menu{ animation:none !important;}
	.re_band_bg{ transform:none; transition:none;}
}

/* ==========================================================
   예상 정부지원비용 계산 (메인비주얼 버튼 + 모달)
   ========================================================== */
.re_hero_btns{ display:flex; flex-wrap:wrap; gap:8px; margin-top:30px;}
.re_hero_btns a.re_btn_light{ margin-top:0;}
.re_btn_calc{ display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border:1px solid rgba(255,255,255,.6); border-radius:24px; background:rgba(255,255,255,.12); font-family:inherit; font-size:15px; font-weight:700; letter-spacing:-.02em; color:#fff; cursor:pointer; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); transition:background .25s, color .25s, transform .25s, box-shadow .25s;}
.re_btn_calc i{ font-size:13px; color:#FFD9DE;}
.re_btn_calc:hover, .re_btn_calc:focus-visible{ background:#fff; color:var(--re-rose-d); transform:translateY(-2px); box-shadow:0 10px 22px rgba(30,16,19,.25);}
.re_btn_calc:hover i{ color:var(--re-rose);}

html.re_calc_lock, html.re_calc_lock body{ overflow:hidden;}
.re_calc{ position:fixed; inset:0; z-index:10010; display:flex; align-items:center; justify-content:center; padding:24px; visibility:hidden; opacity:0; transition:opacity .3s, visibility .3s; font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif; color:var(--re-ink);}
.re_calc.open{ visibility:visible; opacity:1;}
.re_calc *{ box-sizing:border-box;}
.re_calc_dim{ position:absolute; inset:0; background:rgba(44,26,30,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);}
.re_calc_box{ position:relative; display:flex; flex-direction:column; width:100%; max-width:760px; max-height:calc(100vh - 48px); border-radius:18px; background:#fff; box-shadow:0 30px 80px rgba(30,16,19,.35); overflow:hidden; outline:none; transform:translateY(24px) scale(.97); transition:transform .4s cubic-bezier(.2,.8,.3,1);}
.re_calc.open .re_calc_box{ transform:none;}
.re_calc_hd{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:26px 30px 22px; background:var(--re-rose); color:#fff; flex-shrink:0;}
.re_calc_eyebrow{ font-size:12px; font-weight:700; letter-spacing:.02em; color:#FFD9DE;}
.re_calc_hd h2{ margin:6px 0 0; font-family:inherit; font-size:24px; font-weight:800; letter-spacing:-.04em; color:#fff;}
.re_calc_close{ width:40px; height:40px; margin:-4px -8px 0 0; border:0; border-radius:50%; background:rgba(255,255,255,.15); font-size:24px; line-height:1; color:#fff; cursor:pointer; transition:background .2s;}
.re_calc_close:hover{ background:rgba(255,255,255,.3);}
.re_calc_body{ flex:1; min-height:0; padding:26px 30px 10px; overflow-y:auto; -webkit-overflow-scrolling:touch;}
.re_calc_step + .re_calc_step{ margin-top:22px;}
.re_calc_label{ display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:15px; font-weight:800; letter-spacing:-.03em;}
.re_calc_label em{ font-style:normal;}
.re_calc_label span{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:#F2CFCB; font-size:12px; color:var(--re-rose-d);}
.re_calc_opts{ display:flex; flex-wrap:wrap; gap:6px;}
.re_calc_opt{ padding:10px 18px; border:1px solid #E1B7BC; border-radius:22px; background:#fff; font-family:inherit; font-size:14px; font-weight:700; letter-spacing:-.02em; color:var(--re-rose-d); cursor:pointer; transition:all .2s;}
.re_calc_opt:hover{ border-color:var(--re-rose); background:#FBE7E4;}
.re_calc_opt.on{ border-color:var(--re-rose); background:var(--re-rose); color:#fff; box-shadow:0 6px 14px rgba(196,81,95,.22);}
.re_calc_opts_income{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr));}
.re_calc_opts_income .re_calc_opt{ display:flex; flex-direction:column; gap:3px; padding:12px 14px; border-radius:12px; text-align:left;}
.re_calc_opts_income .re_calc_opt strong{ font-size:15px; font-weight:800;}
.re_calc_opts_income .re_calc_opt small{ font-size:12px; font-weight:500; opacity:.8;}

.re_calc_help{ margin-top:10px; border:1px solid #F0E2DE; border-radius:12px; background:var(--re-cream);}
.re_calc_help summary{ padding:12px 16px; font-size:13px; font-weight:700; color:var(--re-rose-d); cursor:pointer; list-style:none;}
.re_calc_help summary::-webkit-details-marker{ display:none;}
.re_calc_help summary:after{ content:"＋"; float:right; transition:transform .25s;}
.re_calc_help[open] summary:after{ transform:rotate(45deg);}
.re_calc_help_in{ display:grid; grid-template-columns:110px 130px minmax(0,1fr); gap:10px; padding:0 16px 16px;}
.re_calc_help_in label{ display:block; margin:0; font-weight:normal;}
.re_calc_help_in label span{ display:block; margin-bottom:5px; font-size:12px; font-weight:700; color:var(--re-label);}
.re_calc_help_in select, .re_calc_help_in input{ width:100%; height:42px; padding:0 12px; border:1px solid var(--re-line); border-radius:8px; background:#fff; font-family:inherit; font-size:14px; color:var(--re-ink); outline:none;}
.re_calc_help_in select:focus, .re_calc_help_in input:focus{ border-color:var(--re-rose);}
.re_calc_help_res{ grid-column:1 / -1; margin:0; padding:12px 14px; border-radius:8px; background:#fff; font-size:13px; line-height:1.6; color:var(--re-text);}
.re_calc_help_res.ok{ background:#E8EFE9; color:#2F4C44;}
.re_calc_help_res.no{ background:#FBE7E4; color:var(--re-wine);}

.re_calc_result{ margin-top:26px; padding-top:22px; border-top:1px dashed #E7D4CF;}
.re_calc_summary{ font-size:14px; font-weight:700; color:var(--re-text);}
.re_calc_cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px;}
.re_calc_card{ padding:18px 16px 16px; border:1px solid #F0E2DE; border-radius:14px; background:#fff; animation:reCalcIn .4s cubic-bezier(.2,.8,.3,1) both;}
.re_calc_card:nth-child(2){ animation-delay:.05s;}
.re_calc_card:nth-child(3){ animation-delay:.1s;}
.re_calc_card.is-main{ border-color:var(--re-rose); background:var(--re-cream); box-shadow:0 10px 24px rgba(196,81,95,.12);}
@keyframes reCalcIn{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }
.re_calc_card_hd{ display:flex; align-items:baseline; justify-content:space-between; gap:6px;}
.re_calc_card_hd strong{ font-size:16px; font-weight:800;}
.re_calc_card_hd span{ padding:3px 9px; border-radius:12px; background:#F2CFCB; font-size:12px; font-weight:700; color:var(--re-rose-d);}
.re_calc_card dl{ margin:12px 0 0;}
.re_calc_card dt{ margin-top:8px; font-size:12px; font-weight:600; color:#8A7276;}
.re_calc_card dd{ margin:2px 0 0; font-size:14px; font-weight:700; color:var(--re-text);}
.re_calc_card dd.pay{ font-size:22px; font-weight:800; letter-spacing:-.03em; color:var(--re-rose);}
.re_calc_card dd.gov{ color:#44655C;}
.re_calc_bar{ height:6px; margin-top:14px; border-radius:3px; background:#FBE7E4; overflow:hidden;}
.re_calc_bar i{ display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,#7FA39A,#44655C); transition:width .5s ease;}
.re_calc_rate{ margin:6px 0 0; font-size:12px; font-weight:700; color:#44655C;}
.re_calc_note{ margin:20px 0 0; padding:0; list-style:none; font-size:12px; line-height:1.7; color:#8A7276;}
.re_calc_note li{ position:relative; padding-left:12px;}
.re_calc_note li:before{ content:"※"; position:absolute; left:0; font-size:10px;}
.re_calc_ft{ display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; padding:16px 30px; border-top:1px solid #F0E2DE; background:var(--re-cream); flex-shrink:0;}
a.re_calc_go{ padding:13px 24px; border-radius:24px; background:var(--re-rose); font-size:14px; font-weight:800; color:#fff; transition:background .2s;}
a.re_calc_go:hover, a.re_calc_go:focus{ background:var(--re-ink); color:#fff;}

@media (max-width:767px){
	.re_calc{ align-items:flex-end; padding:0;}
	.re_calc_box{ max-height:92vh; max-height:92dvh; border-radius:18px 18px 0 0; transform:translateY(100%);}
	.re_calc_hd{ padding:20px 20px 18px;}
	.re_calc_hd h2{ font-size:20px;}
	.re_calc_body{ padding:20px 20px 8px;}
	.re_calc_opts_income{ grid-template-columns:minmax(0,1fr);}
	.re_calc_opts_income .re_calc_opt{ flex-direction:row; align-items:baseline; gap:8px;}
	.re_calc_help_in{ grid-template-columns:1fr 1fr;}
	.re_calc_help_in label:nth-child(3){ grid-column:1 / -1;}
	.re_calc_cards{ grid-template-columns:minmax(0,1fr); gap:8px;}
	.re_calc_card{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:0 14px; align-items:center; padding:14px 16px;}
	.re_calc_card_hd{ flex-direction:column; align-items:flex-start;}
	.re_calc_card dl{ margin:0; display:grid; grid-template-columns:auto auto; gap:2px 10px; justify-content:end; text-align:right;}
	.re_calc_card dt{ margin:0; align-self:center;}
	.re_calc_card dd{ margin:0;}
	.re_calc_card dd.pay{ font-size:18px;}
	.re_calc_bar, .re_calc_rate{ grid-column:1 / -1;}
	.re_calc_ft{ padding:14px 20px calc(14px + env(safe-area-inset-bottom));}
	.re_btn_calc{ padding:12px 18px; font-size:14px;}
}
@media (prefers-reduced-motion:reduce){
	.re_calc, .re_calc_box, .re_calc_card{ transition:none; animation:none;}
}

/* ---------- 지점안내 카카오맵 ---------- */
#re_branch_map{ width:100%; height:420px; margin:30px 0 14px; border-radius:12px; overflow:hidden; background:#fff;}
#bo_v_map{ width:100%; height:360px; border-radius:12px; overflow:hidden; background:var(--re-beige);}
.re_map_info{ padding:10px 12px; font-size:13px; line-height:1.5; white-space:nowrap; color:var(--re-text); font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif;}
.re_map_info strong{ display:block; margin-bottom:2px; font-size:14px; font-weight:800; color:var(--re-ink);}
.re_map_info span{ display:block;}
.re_map_info a{ color:var(--re-text);}
.re_map_info a.go{ color:var(--re-rose); font-weight:700;}
@media (max-width:767px){ #re_branch_map{ height:320px !important;} #bo_v_map{ height:280px !important;} }

/* ---------- 지점등록 우편번호 ---------- */
.re_post_row{ display:flex; gap:6px; margin-bottom:6px;}
.re_post_row .frm_input{ flex:1; min-width:0;}
.re_post_row #wr_4{ flex:0 0 120px;}
.re_post_btn{ padding:0 16px; border:0; border-radius:20px; background:var(--re-rose); color:#fff; font-weight:700; cursor:pointer; transition:background .2s;}
.re_post_btn:hover{ background:var(--re-ink);}
#wr_3.re_post_addr{ width:100%; margin-bottom:6px; box-sizing:border-box;}
#daum_postcode_wrap{ display:none; position:relative; width:100%; max-width:500px; height:460px; margin-top:6px; border:1px solid var(--re-line); border-radius:8px; overflow:hidden;}
#daum_postcode_wrap .re_post_close{ position:absolute; right:0; top:0; z-index:1; padding:5px 10px; border:0; background:var(--re-ink); color:#fff; cursor:pointer;}
