@charset "utf-8";

/* 게시판 목록 (그누보드 기본 영역 - 유지) */
#bo_list {position:relative;margin-bottom:20px}
#bo_list:after {display:block;visibility:hidden;clear:both;content:""}
#bo_list .td_board {width:120px;text-align:center}
#bo_list .td_chk {width:30px;text-align:center;border-top:1px solid #ecf0f1;border-bottom:1px solid #ecf0f1}
#bo_list .td_date {width:60px;text-align:center}
#bo_list .td_datetime {width:60px;text-align:center}
#bo_list .td_group {width:100px;text-align:center}
#bo_list .td_mb_id {width:100px;text-align:center}
#bo_list .td_mng {width:80px;text-align:center}
#bo_list .td_name {width:90px;text-align:left;padding:10px 0}
#bo_list .td_nick {width:100px;text-align:center}
#bo_list .td_num {width:50px;text-align:center}
#bo_list .td_num2 {width:50px;text-align:center}
#bo_list .td_numbig {width:80px;text-align:center}
#bo_list .txt_active {color:#5d910b}
#bo_list .txt_expired {color:#ccc}
#bo_list tbody tr {border-left:2px solid transparent}
#bo_list tbody tr:hover {border-left:2px solid #253dbe}
#bo_list tbody .even td {background:#fbfbfb}

#bo_cate {margin:25px 0}
#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_cate ul {zoom:1}
#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""}
#bo_cate li {display:inline-block;padding:2px}
#bo_cate a {display:block;line-height:28px;padding:5px 15px;border-radius:30px;border:1px solid #d6e9ff;color:#6794d3}
#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#3a8afd;color:#fff}
#bo_cate #bo_cate_on {z-index:2;background:#3a8afd;color:#fff;font-weight:bold;border:1px solid #3a8afd;
-webkit-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
-moz-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.td_subject img {margin-left:5px}

/* 게시판 목록 공통 */
.selec_chk {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box {position:relative}
.chk_box input[type="checkbox"] + label {position:relative;color:#676e70}
.chk_box input[type="checkbox"] + label:hover {color:#2172f8}
.chk_box input[type="checkbox"] + label span {float:left;width:15px;height:15px;display:block;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.write_div .chk_box input[type="checkbox"] + label, .bo_vc_w .chk_box input[type="checkbox"] + label {padding-left:20px}
.write_div .chk_box input[type="checkbox"] + label span, .bo_vc_w .chk_box input[type="checkbox"] + label span {position:absolute;top:2px;left:0;width:15px;height:15px;display:block;margin:0;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.chk_box input[type="checkbox"]:checked + label {color:#000}
.chk_box input[type="checkbox"]:checked + label span {background:url(./img/chk.png) no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}

#bo_btn_top {margin:10px 0}
#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx {margin-bottom:5px;float:right;zoom:1}
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx ul {margin:0;padding:0;list-style:none}
#bo_list_total {float:left;line-height:34px;font-size:0.92em;color:#4e546f}

.btn_bo_user {float:right;margin:0;padding:0;list-style:none}
.btn_bo_user li {float:left;width:40px;text-align:center;margin-left:5px;background:#fff}
.btn_bo_user > li {position:relative}
.btn_bo_adm {float:left}
.btn_bo_adm li {float:left;margin-right:5px}
.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle}
.bo_notice td {background:#fff6fa !important;border-bottom:1px solid #f8e6ee}
.bo_notice td a {font-weight:bold}
.bo_notice .notice_icon {display:inline-block;line-height:25px;border-radius:5px;font-weight:bold;color:#f9267f}

.more_opt {display:none;position:absolute;top:45px;right:0;background:#fff;border:1px solid #b8bfc4;z-index:999}
.more_opt:before {content:"";position:absolute;top:-8px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #b8bfc4 transparent}
.more_opt:after {content:"";position:absolute;top:-6px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
.more_opt li {border-bottom:1px solid #f1f1f1;padding:10px;float:inherit;width:90px;margin:0;color:#6b757c;text-align:left}
.more_opt li:last-child {border-bottom:0}
.more_opt li button, .more_opt li a {width:100%;border:0;background:#fff;color:#6b757c}
.more_opt li:hover a, .more_opt li:hover button {color:#000}
.more_opt li i {float:right;line-height:20px}

.td_num strong {color:#000}
.bo_cate_link {float:left;display:inline-block;margin-right:10px;background:#e2eaf6;color:#3a8afd;font-weight:normal !important;height:20px;line-height:10px;padding:5px 8px;border-radius:5px;font-size:0.95em}
.bo_cate_link:hover {text-decoration:none}
.bo_tit {display:block;color:#000;font-weight:bold}
.bo_current {color:#e8180c}
#bo_list .profile_img img {border-radius:50%}
#bo_list .cnt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}

#bo_list .bo_tit .title_icon {margin-right:2px}
#bo_list .bo_tit .fa-heart {color:#ff0000}
#bo_list .bo_tit .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}
#bo_list .bo_tit .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle}
#bo_list .bo_tit .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle}
#bo_list .bo_tit .fa-caret-right {color:#bbb}
#bo_list .bo_tit .fa-download {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#daae37;background:#ffefb9;text-align:center;border-radius:2px;margin-left:5px;vertical-align:middle}
#bo_list .bo_tit .fa-link {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#b451fd;background:#edd3fd;text-align:center;border-radius:2px;margin-left:5px;vertical-align:middle}

.bo_sch_wrap {display:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:999}
.bo_sch {position:absolute;top:50%;left:50%;background:#fff;text-align:left;width:330px;max-height:300px;margin-left:-125px;margin-top:-180px;overflow-y:auto;border-radius:5px;-webkit-box-shadow:1px 1px 18px rgba(0,0,0,0.2);-moz-box-shadow:1px 1px 18px rgba(0,0,0,0.2);box-shadow:1px 1px 18px rgba(0,0,0,0.2);border:1px solid #dde7e9;}
.bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
.bo_sch h3 {padding:15px;border-bottom:1px solid #e8e8e8}
.bo_sch legend {background:red}
.bo_sch form {padding:15px;display:block}
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left}
.bo_sch .sch_btn {height:38px;float:right;color:#656565;background:none;border:0;width:40px;font-size:15px}
.bo_sch .bo_sch_cls {position:absolute;right:0;top:0;color:#b5b8bb;border:0;padding:12px 15px;font-size:16px;background:#fff}
.bo_sch_bg {background:#000;background:rgba(0,0,0,0.1);width:100%;height:100%}

/* 게시판 쓰기 (그누보드 기본 영역 - 유지) */
#char_count_desc {display:block;margin:0 0 5px;padding:0}
#char_count_wrap {margin:5px 0 0;text-align:right}
#char_count {font-weight:bold}
#autosave_wrapper {position:relative}
#autosave_pop {display:none;z-index:10;position:absolute !important;top:34px;right:0;width:350px;height:180px;max-height:180px;border:1px solid #565656;background:#fff;-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}
#autosave_pop:before {content:"";position:absolute;top:-8px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #000 transparent}
#autosave_pop:after {content:"";position:absolute;top:-7px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} 
#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden}
#autosave_pop div {text-align:center;margin:0 !important}
#autosave_pop button {margin:0;padding:0;border:0}
#autosave_pop ul {padding:15px;border-top:1px solid #e9e9e9;list-style:none;overflow-y:scroll;height:130px;border-bottom:1px solid #e8e8e8}
#autosave_pop li {padding:8px 5px;border-bottom:1px solid #fff;background:#eee;zoom:1}
#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""}
#autosave_pop a {display:block;float:left}
#autosave_pop span {display:block;float:right;font-size:0.92em;font-style:italic;color:#999}
.autosave_close {cursor:pointer;width:100%;height:30px;background:none;color:#888;font-weight:bold;font-size:0.92em}
.autosave_close:hover {background:#f3f3f3;color:#3597d9}
.autosave_content {display:none}
.autosave_del {background:url(./img/close_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden;height:20px;width:20px}

/* 관리자 입력폼 공통 구조 */
#bo_w .write_div { position:relative; }
#bo_w label { display: block; font-weight: bold; color: #333; }
#bo_w label strong { color: #ff3146; font-size: 12px; margin-left: 5px; }
#bo_w .frm_input, #bo_w select { width: 100%; border: 1px solid #d1d5db; border-radius: 4px; }
#bo_w .btn_confirm { text-align: center; }
#bo_w .btn { display: inline-block; font-weight: bold; border-radius: 4px; }
#bo_w .btn_cancel { background: #64748B; color: #fff; }
#bo_w .btn_submit { background: #FF3146; color: #fff; border: none; }
#container_title { display: none !important; }

/* 관리자 플로팅 버튼 공통 구조 */
.admin-floating-btn { position: fixed; z-index: 9999; }
.btn-admin-write { display: flex; align-items: center; background-color: var(--black); color: var(--white); border-radius: 30px; font-weight: 800; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; }
.btn-admin-write:hover { background-color: var(--point-color); transform: translateY(-5px); }

/* ==========================================
   서브페이지 UI 공통 뼈대 (색상, Flex/Grid 기본, border, 위치)
========================================== */
.sub-intro { background-color: var(--white); text-align: center; }
.sub-intro-header { display: flex; flex-direction: column; align-items: center; justify-content: center; border: none; background-color: transparent; z-index: 50;}
.sub-intro-header .title { font-weight: 800; color: var(--black); }
.sub-intro-header .desc { color: var(--gray); font-weight: 600; }

.sub-telecom { border-bottom: 1px solid #e2e8f0; }
.sub-telecom-list { display: flex; flex-wrap: wrap; justify-content: center; }
.sub-telecom-list .item { flex: 1; display: flex; justify-content: center; align-items: center; border: 1px solid #e2e8f0; border-radius: 8px; transition: border 0.3s; background-color: #fff; }
.sub-telecom-list .item a { display: flex; justify-content: center; width: 100%; }
.sub-telecom-list .item.active { border-color: var(--point-color); border-width: 2px; box-sizing: border-box; background-color: #fff0f0; }
.sub-telecom-list .item img { margin: auto; }

.sub-calc { background-color: var(--dim-gray); }
.calc-group { border: none; }
.calc-sec-title { font-weight: 800; color: var(--black); display: block; }
.calc-card-list { display: grid; }
.calc-card.radio-btn input[type="radio"] { display: none; }
.calc-card .card-inner { background-color: var(--white); border: 1px solid #e2e8f0; border-radius: 12px; cursor: pointer; transition: all 0.3s; position: relative; }
.calc-card input[type="radio"]:checked + .card-inner { border-color: var(--point-color); box-shadow: 0 4px 15px rgba(255, 49, 70, 0.1); }
.calc-card input[type="radio"]:checked + .card-inner::after { content: '●'; position: absolute; background-color: var(--point-color); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.calc-card input[type="radio"]:checked + .card-inner .title{color: var(--point-color);}
.calc-card input[type="radio"]:checked + .card-inner .sub-title{color: var(--point-color);}
.calc-card input[type="radio"]:checked + .card-inner .price b{color: var(--point-color);}
.card-inner .sub-title { display: block; color: var(--black); font-weight: 600; }
.card-inner .title { font-weight: 800; color: var(--black); }
.card-inner .desc { color: var(--gray); }
.card-inner .price { color: var(--black); }
.card-inner .price b { font-weight: 800; }

.admin-item-btns { position: absolute; z-index: 10; display: flex; }
.admin-item-btns a { color: #fff !important; font-weight: 600; text-decoration: none; border-radius: 4px; }
.admin-item-btns .btn-edit { background-color: #1E293B; }
.admin-item-btns .btn-del { background-color: #FF3146; }
.admin-item-btns .btn-edit:hover { background-color: #334155; }
.admin-item-btns .btn-del:hover { background-color: #e11d48; }

.admin-item-btns-table { display: flex; gap: 5px; justify-content: center; }
.admin-item-btns-table a { color: #fff !important; font-weight: 600; text-decoration: none; border-radius: 4px; }
.admin-item-btns-table .btn-edit { background-color: #1E293B; }
.admin-item-btns-table .btn-del { background-color: #FF3146; }
.admin-item-btns-table .btn-edit:hover { background-color: #334155; }
.admin-item-btns-table .btn-del:hover { background-color: #e11d48; }

.calc-result { background-color: var(--white); border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); position: relative; border: none; }
.calc-result-top { display: flex; border-bottom: 1px solid #e2e8f0; }
.price-details { flex: 1; display: flex; flex-direction: column;gap: 20px;}
.price-details .title { font-weight: 800; }
.price-details .desc { color: var(--gray); }
.price-details-wrap{width: 100%; display: flex; flex-direction: column; justify-content: center;}
.price-breakdown { width: 100%; border-collapse: collapse; }
.price-breakdown td { color: var(--gray); font-weight: 500; }
.price-breakdown .price { color: var(--black); text-align: right; }
.price-breakdown .price strong { font-weight: 700; }
.discount-line td { border-top: 1px dashed #cbd5e1; }
.price-breakdown .discount-line td:first-child { color: var(--point-color); font-weight: 600; }
.price-breakdown .discount-line .price { color: var(--point-color); }

.total-price-group { display: flex; flex-direction: column; justify-content: space-between; gap: 20px;}
.total-price-group .txt { display: block; color: var(--gray); font-weight: 600;}
.total-price-group .highlight { color: var(--point-color); font-weight: 800; line-height: 1; }
.total-price-group .highlight .unit { font-weight: 700; }
.total-price-group .sub-label { color: var(--gray); line-height: 1.4; }

.benefit-box { display: flex; align-items: center; justify-content: space-between; border: 1px solid #cbd5e1; border-radius: 8px; background-color: var(--white); }
.benefit-box .ben-txt { flex: 1; }
.benefit-box .ben-tit { display: block; color: var(--point-color); font-weight: 800; }
.benefit-box .ben-desc { color: var(--gray); line-height: 1.4; }
.benefit-box .ben-desc .point { color: var(--point-color); font-weight: 700; }
.benefit-box .ben-img { flex-shrink: 0; }
.benefit-box .ben-img img { width: 100%; height: auto; display: block; }

.calc-result-action { display: flex; }
.calc-result-action a { flex: 1; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-weight: 600; }
.calc-result-action .btn-call { background-color: var(--point-color); color: var(--white); }
.calc-result-action .btn-kakao { background-color: #FEE500; color: #3C1E1E; }
.calc-result .disclaimer { text-align: center; color: var(--gray); font-weight: 500;}

.sub-table { background-color: var(--white); }
.sub-table-header { text-align: center; }
.sub-table-header .title { font-weight: 800; }
.sub-table-header .desc { color: var(--gray); }

.tab-menu { display: flex; border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; }
.tab-item { text-align: center; border-right: 1px solid #e2e8f0; background-color: var(--dim-gray); }
.tab-item a { display: block; font-weight: 600; color: var(--gray); transition: all 0.3s; }
.tab-item.active a { color: var(--white); background-color: var(--point-color); }

.tab-panel { display: none; background-color: var(--white); border: 1px solid #e2e8f0; border-radius: 12px; }
.tab-panel.active { display: block; animation: fadeIn 0.4s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.step-badge { display: inline-block; background-color: var(--point-color); color: var(--white); font-weight: 800; border-radius: 20px; }
.panel-title { font-weight: 800; color: var(--black); }
.panel-desc { color: var(--gray); line-height: 1.6; }
.panel-header.flex-header { display: flex; }
.sub-heading { font-weight: 800; }
.check-list li { position: relative; color: var(--black); line-height: 1.6; }
.check-list li b{ font-weight: 700; color: var(--point-color); }
.check-list li .icon { position: absolute; left: 0; top: 0; color: var(--point-color); font-weight: 800; }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100%; }
.price-table { width: 100%; min-width: 600px; border-collapse: collapse; text-align: center; font-size: 15px; border: none; }
.price-table th, .price-table td { border: none; vertical-align: middle; border-bottom: 1px solid #e2e8f0; padding: 20px; width: 20%;}
.price-table th { background-color: #f7f7f7; color: var(--black); font-weight: 600; line-height: 1.4; border-bottom: 1px solid #555; text-align: center;}
.price-table th .th-sub { display: block; font-weight: 600; color: var(--gray); }

/* 👇 요금표 상품명 하단 채널 뱃지 디자인 👇 */
.price-table .row-title { font-weight: 800; color: var(--black); vertical-align: middle;}
.price-table .channel-badge {
    display: block;
    background-color: #ff4769; 
    width: fit-content;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    margin: auto;
    margin-top: 8px;
    line-height: 1.2;
    white-space: nowrap;
}

.price-table tr.row-uncombined .col-cond { color: #94a3b8; font-weight: 600; } 
.price-table tr.row-uncombined .col-price { color: var(--black); font-weight: 500; }
.price-table tr.row-combined .col-cond { color: var(--point-color); font-weight: 600; } 
.price-table tr.row-combined .col-price { color: var(--point-color); font-weight: 600; }

.info-table th { background-color: var(--dim-gray); }
.table-notice { color: var(--gray); text-align: center;}

/* 하단 문의하기 (sub-contact) 공통 뼈대 */
.sub-contact .section-inner { background-color: #f4f6f8; border-radius: 16px; text-align: center; }
.sub-contact h3 { color: var(--black); font-weight: 600; }
.info-box { display: flex; }
.info-box-left { display: flex; flex-direction: column; }
.info-box-left .btn { display: flex; align-items: center; justify-content: center; text-decoration: none; font-weight: 700; border-radius: 30px; transition: all 0.3s; }
.info-box-left .btn:nth-child(1) { background-color: #1a428a; color: #fff; }
.info-box-left .btn:nth-child(1):hover { background-color: #12316b; }
.info-box-left .btn:nth-child(2) { background-color: #fee500; color: #3c1e1e; }
.info-box-left .btn:nth-child(2):hover { background-color: #ebd300; }
.info-box-left .btn img { width: 22px; margin-right: 8px; }
.info-box-left .btn .tel-icon{ mask-image: url('../../../img/intro-call.svg');mask-size: cover;mask-repeat: no-repeat;background-color: #fff;}
.info-box-right { background-color: #fff; border: 1px solid #dce2e8; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.info-box-right p { font-weight: 800; color: var(--black); margin-bottom: 5px; }
.info-box-right span { color: var(--black); }


/* ==========================================
   반응형 1단계: 모바일 (360px 이상) - 폰트, 패딩, 여백 크기 배정
========================================== */
@media screen and (min-width: 360px) {
    /* 관리자 글쓰기 */
    #bo_w { padding: 40px 20px 0; }
    #bo_w .write_div { margin-bottom: 15px; }
    #bo_w label { margin-bottom: 5px; }
    #bo_w .frm_input, #bo_w select { padding: 10px; font-size: 14px; }
    #bo_w .btn_confirm { margin-top: 20px; }
    #bo_w .btn { padding: 0 20px; font-size: 14px; line-height: 40px; height: 40px; }
    #bo_w .btn_submit { margin-left: 5px; }
    .admin-floating-btn { right: 15px; bottom: 15px; }
    .btn-admin-write { padding: 10px 15px; font-size: 14px; gap: 6px; }
    .btn-admin-write .icon { font-size: 16px; }
    
    /* 상단 인트로 */
    .sub-intro { padding: 40px 0; }
    .sub-intro-header { gap: 10px; }
    .sub-intro-header .logo img { height: 50px; }
    .sub-intro-header .title { font-size: 20px; }
    .sub-intro-header .desc { font-size: 14px; }

    /* 통신사 탭 */
    .sub-telecom { padding-bottom: 20px; }
    .sub-telecom-list { gap: 8px; }
    .sub-telecom-list .item { min-width: 140px; min-height:130px; align-self: stretch; }
    .sub-telecom-list .item a { padding: 20px 15px; }
    .sub-telecom-list .item img { max-width: 120px; max-height: 40px; }

    /* 계산기 옵션 리스트 */
    .sub-calc { padding: 40px 0; }
    .calc-group { margin-bottom: 30px; }
    .calc-sec-title { font-size: 16px; margin-bottom: 15px; }
    .calc-card-list { grid-template-columns: 1fr; gap: 10px; }
    .calc-card .card-inner { padding: 20px; }
    .calc-card input[type="radio"]:checked + .card-inner::after { top: 15px; right: 15px; width: 20px; height: 20px; font-size: 10px; }
    .card-inner .sub-title { font-size: 12px; margin-bottom: 5px; }
    .card-inner .title { font-size: 18px; margin-bottom: 6px; }
    .card-inner .desc { font-size: 13px; margin-bottom: 12px; }
    .card-inner .price { font-size: 14px; }
    .card-inner .price b { font-size: 20px; }
    .admin-item-btns { top: 10px; left: 10px; gap: 4px; }
    .admin-item-btns a { font-size: 11px; padding: 3px 6px; }
    .admin-item-btns-table a { font-size: 11px; padding: 4px 8px; }

    /* 합산 결과 (모바일 세로 배치) */
    .calc-result { padding: 20px; margin-top: 30px; }
    .calc-result-top { flex-direction: column; gap: 20px; padding-bottom: 20px; margin-bottom: 20px; text-align: left; }
    .price-details-wrap{min-height: 90px;}
    .price-details .title { font-size: 18px; margin-bottom: 10px;}
    .price-details .desc { font-size: 13px;}
    .price-breakdown td { padding: 6px 0; font-size: 13px; }
    .price-breakdown .price { font-size: 14px; }
    .discount-line td { padding-top: 10px; }
    .price-breakdown .discount-line .price { font-size: 15px; }
    
    .total-price-group { width: 100%; text-align: left; justify-content: flex-start; gap: 20px;}
    .price-area {text-align: left; }
    .total-price-group .txt { font-size: 13px; margin-bottom: 5px; }
    .total-price-group .highlight { font-size: 32px;}
    .total-price-group .highlight .unit { font-size: 18px; margin-left: 2px; }
    .total-price-group .sub-label { font-size: 12px; margin-top: 10px;}
    
    .benefit-box { padding: 15px 25px; flex-direction: row; text-align: left; min-height: 120px;}
    .benefit-box .ben-tit { font-size: 14px; margin-bottom: 5px; }
    .benefit-box .ben-desc { font-size: 12px; }
    .benefit-box .ben-img { width: 60px; margin-left: 10px; }
    
    .calc-result-action { flex-direction: column; gap: 10px; }
    .calc-result-action a { padding: 14px 0; font-size: 15px; }
    .calc-result .disclaimer { font-size: 11px; margin-top: 15px;}

    /* 하단 요금표/안내 탭 */
    .sub-table { padding: 40px 0 0; }
    .sub-table-header { margin-bottom: 20px; }
    .sub-table-header .title { font-size: 20px; margin-bottom: 8px; }
    .sub-table-header .desc { font-size: 14px; }
    
    .tab-menu { flex-wrap: wrap; margin-bottom: 20px; }
    .tab-item { flex: 0 0 50%; border-bottom: 1px solid #e2e8f0; }
    .tab-item:nth-child(even) { border-right: none; }
    .tab-item:nth-last-child(-n+2) { border-bottom: none; }
    .tab-item a { padding: 12px 0; font-size: 14px; }
    .tab-panel { padding: 15px; }
    
    .panel-header { margin-bottom: 10px; }
    .panel-header.flex-header { flex-direction: column; align-items: flex-start; gap: 3px; padding-bottom: 10px; border-bottom: none;}
    .step-badge { padding: 4px 10px; font-size: 12px; margin-bottom: 8px; }
    .panel-header.flex-header .step-badge { margin-bottom: 0; }
    .panel-title { font-size: 18px; line-height: 1.3; margin-top: 10px;}
    .panel-desc { font-size: 14px; margin-top: 10px; }
    .sub-heading { font-size: 16px; margin: 20px 0 10px; }
    .mb-20 { margin-bottom: 15px; }
    .mb-30 { margin-bottom: 20px; }
    .check-list {margin-top: 10px;}
    .check-list li { padding-left: 20px; font-size: 14px; margin-bottom: 8px; }
    
    .price-table th, .price-table td { padding: 15px 10px; font-size: 13px; }
    .price-table th .th-sub { font-size: 11px; margin-top: 2px; }
    .price-table .channel-badge { font-size: 11px; padding: 2px 6px; margin-top: 5px; }
    .table-notice { font-size: 12px; margin-top: 20px; }

    /* 하단 문의하기 (sub-contact) 모바일 반응형 */
    .sub-contact { padding: 40px 0; }
    .sub-contact .section-inner { padding: 30px 20px; }
    .sub-contact h3 { font-size: 24px; line-height: 30px; margin-bottom: 20px; }
    .info-box { flex-direction: column; gap: 15px; }
    .info-box-left { gap: 10px; }
    .info-box-left .btn { height: 50px; font-size: 15px; }
    .info-box-right { padding: 25px 20px; }
    .info-box-right p { font-size: 24px; }
    .info-box-right span { font-size: 20px; }
    .info-box-left .btn .tel-icon{ padding: 10px; margin-right: 8px;}

    .check-list li b{display: block;}
}


/* ==========================================
   반응형 2단계: 태블릿/PC (1024px 이상) - 가로 배치 및 큼직한 폰트/여백
========================================== */
@media screen and (min-width: 1024px) {
    #bo_w { padding: 40px 30px 0; }
    #bo_w .write_div { margin-bottom: 20px; }
    #bo_w .frm_input, #bo_w select { padding: 12px; font-size: 15px; }
    #bo_w .btn_confirm { margin-top: 30px; }
    #bo_w .btn { padding: 0 30px; font-size: 16px; line-height: 45px; height: 45px; }
    #bo_w .btn_submit { margin-left: 10px; }
    .admin-floating-btn { right: 30px; bottom: 30px; }
    .btn-admin-write { padding: 12px 20px; font-size: 16px; gap: 8px; }
    .btn-admin-write .icon { font-size: 18px; }

    .sub-intro { padding: 60px 0; }
    .sub-intro-header { flex-direction: row; gap: 30px; padding-bottom: 0px; justify-content: center; }
    .sub-intro-header .logo img { height: 60px; }
    .sub-intro-header .title { font-size: 32px; text-align: left; }
    .sub-intro-header .desc { font-size: 16px; }

    .sub-telecom { padding-bottom: 30px; }
    .sub-telecom-list { gap: 10px; }
    .sub-telecom-list .item { min-width: 150px; min-height: 130px; align-self: stretch; }
    .sub-telecom-list .item a { padding: 30px 20px; }
    .sub-telecom-list .item img { max-width: 150px; max-height: 60px; }

    .sub-calc { padding: 60px 0; }
    .calc-group { margin-bottom: 40px; }
    .calc-sec-title { font-size: 20px; margin-bottom: 20px; }
    .calc-card-list { grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .calc-card .card-inner { padding: 24px; }
    .calc-card input[type="radio"]:checked + .card-inner::after { top: 20px; right: 20px; width: 24px; height: 24px; font-size: 12px; }
    .card-inner .sub-title { font-size: 14px; margin-bottom: 5px; }
    .card-inner .title { font-size: 26px; line-height: 30px; margin-bottom: 8px; }
    .card-inner .desc { font-size: 20px; line-height: 22px; margin-bottom: 15px; }
    .card-inner .price { font-size: 16px; }
    .card-inner .price b { font-size: 24px; }
    .admin-item-btns { top: 15px; left: 15px; gap: 5px; }
    .admin-item-btns a { font-size: 12px; padding: 4px 8px; }
    .admin-item-btns-table a { font-size: 12px; padding: 6px 12px; }

    /* 합산 결과 (PC 가로 배치) */
    .calc-result { padding: 40px; margin-top: 50px; }
    .calc-result-top { flex-direction: row; gap: 30px; padding-bottom: 30px; margin-bottom: 30px; }
    .price-details-wrap{min-height: 90px;}
    .price-details .title { font-size: 24px; line-height: 24px; margin-bottom: 10px;}
    .price-details .desc { font-size: 18px; line-height: 18px;}
    .price-breakdown td { padding: 8px 0; font-size: 16px; }
    .price-breakdown .price { font-size: 22px; }
    .discount-line td { padding-top: 15px; }
    .price-breakdown .discount-line .price { font-size: 22px; }
    
    .total-price-group { width: 600px; text-align: right; justify-content: space-between; gap: 30px;}
    .price-area {text-align: right; min-height: 90px;}
    .total-price-group .txt { font-size: 16px; margin-bottom: 5px; }
    .total-price-group .highlight { font-size: 42px;}
    .total-price-group .highlight .unit { font-size: 24px; }
    .total-price-group .sub-label { font-size: 15px; margin-top: 10px;}
    
    .benefit-box { padding: 20px 30px; text-align: left; min-height: 120px; max-height: 150px; height: 100%;}
    .benefit-box .ben-tit { font-size: 24px; margin-bottom: 8px; }
    .benefit-box .ben-desc { font-size: 16px; }
    .benefit-box .ben-img { width: 130px; margin-left: 15px; }
    
    .calc-result-action { flex-direction: row; gap: 15px; }
    .calc-result-action a { padding: 16px 0; font-size: 22px; }
    .calc-result .disclaimer { font-size: 14px; margin-top: 25px;}

    /* 하단 요금표/안내 탭 */
    .sub-table { padding: 60px 0 40px; }
    .sub-table-header { margin-bottom: 30px; text-align: left; }
    .sub-table-header .title { font-size: 24px; margin-bottom: 10px; }
    .sub-table-header .desc { font-size: 16px; }

    .tab-menu { flex-wrap: nowrap; margin-bottom: 30px; }
    .tab-item { flex: 1; border-bottom: none; border-right: 1px solid #e2e8f0; }
    .tab-item:last-child { border-right: none; }
    .tab-item a { padding: 16px 0; font-size: 20px; }
    .tab-panel { padding: 30px; }
    
    .panel-header { margin-bottom: 5px; }
    .panel-header.flex-header { flex-direction: column; align-items: flex-start; gap: 5px; padding-bottom: 0; border-bottom: none;}
    .step-badge { padding: 4px 12px; font-size: 13px; margin-bottom: 0px; }
    .panel-title { font-size: 22px; margin-bottom: 5px; margin-top: 5px;}
    .panel-desc { font-size: 15px; margin-top: 0; }
    .sub-heading { font-size: 18px; margin: 30px 0 15px; }
    .mb-20 { margin-bottom: 20px; }
    .mb-30 { margin-bottom: 30px; }
    .check-list {margin-top: 15px;}
    .check-list li { padding-left: 24px; font-size: 15px; margin-bottom: 10px; }
    
    .price-table th, .price-table td { padding: 20px 10px; font-size: 18px; }
    .price-table th .th-sub { font-size: 14px; }
    .price-table .channel-badge { font-size: 13px; padding: 4px 10px; margin-top: 8px; }
    .table-notice { font-size: 14px; margin-top: 20px; }

    /* 하단 문의하기 (sub-contact) PC 반응형 */
    .sub-contact { padding: 60px 0 80px; }
    .sub-contact .section-inner { padding: 50px; }
    .sub-contact h3 { font-size: 28px; margin-bottom: 30px; }
    .info-box { flex-direction: row; gap: 20px; max-width: 640px; margin: 0 auto; }
    .info-box-left { flex: 1; gap: 12px; justify-content: center; }
    .info-box-left .btn { height: 55px; font-size: 18px; }
    .info-box-right { flex: 1; padding: 0; min-height: 120px; }
    .info-box-right p { font-size: 24px; margin-bottom: 8px; }
    .info-box-right span { font-size: 18px; }
    .info-box-left .btn .tel-icon{ padding: 10px; margin-right: 8px; }

    .check-list li b{display: inline-block;}
}


/* ==========================================
   반응형 3단계: PC 와이드 (1440px 이상)
========================================== */
@media screen and (min-width: 1440px) {
    #bo_w { padding: 40px 100px 0; }
    .sub-intro-header { padding-bottom: 0px; }
    .tab-panel { padding: 40px; }
    .panel-title { font-size: 24px; }
}

/* ==========================================
   사은품 항목 추가에 따른 테이블 너비 및 컬러 스타일 덮어쓰기
========================================== */
.price-table th, .price-table td { width: auto !important; padding: 15px 5px !important; }
.price-table tr.row-uncombined .col-gift,
.price-table tr.row-combined .col-gift { color: #ff3146; font-weight: 800; font-size: 16px; }