@charset "utf-8";

/* ============================================================
   ▼ basic 스킨의 list / view / comment / 공통 스타일 (유지)
   ============================================================ */

/* 게시판 목록 */
#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;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:12px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;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;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 form {padding:15px;display:block}
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;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;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%}

/* 게시판 읽기 (view) */
#bo_v {margin-bottom:20px;background:#fff;box-sizing:border-box}
#bo_v_table {position:absolute;top:0;right:16px;margin:0;padding:0 5px;height:25px;background:#ff3061;color:#fff;font-weight:bold;line-height:2.2em}
#bo_v_title .bo_v_cate {display:inline-block;line-height:20px;background:#e2eaf6;color:#3a8afd;padding:0 10px;border-radius:3px;}
#bo_v_title .bo_v_tit {display:block;font-size:2em;margin:5px 0 0;word-break:break-all}
#bo_v_info {margin:0;border-bottom:1px solid #f1f1f1;color:#666}
#bo_v_info:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_info .profile_info {margin:20px 0 10px;display:inline-block;float:left}
#bo_v_info .profile_info .pf_img {float:left;margin-right:10px}
#bo_v_info .profile_info .pf_img img {border-radius:50%;width:50px;height:50px}
#bo_v_info .profile_info .profile_info_ct {float:left;padding:5px 0;line-height:18px}
#bo_v_info strong {display:inline-block;margin:0 10px 0 0;font-weight:normal}
#bo_v_info .sv_member, #bo_v_info .sv_guest, #bo_v_info .member, #bo_v_info .guest {font-weight:bold}
#bo_v_info .profile_img {display:none}
#bo_v_info .sv_member {color:#000}
#bo_v_info .if_date {margin:0;color:#888}
#bo_v_file h2, #bo_v_link h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_file ul {margin:0;list-style:none}
#bo_v_file li, #bo_v_link li {padding:15px;position:relative;margin:10px 0;border:1px solid #dfdfdf;border-radius:5px;box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%)}
#bo_v_file li i, #bo_v_link li i {float:left;color:#b2b2b2;font-size:2.35em;margin-right:20px}
#bo_v_file a, #bo_v_link a {float:left;display:block;text-decoration:none;word-wrap:break-word;color:#000}
#bo_v_file a:focus, #bo_v_file li:hover a, #bo_v_link a:focus, #bo_v_link li:hover a {text-decoration:underline;color:#3a8afd}
#bo_v_file img {float:left;margin:0 10px 0 0}
#bo_v_file .bo_v_file_cnt, #bo_v_link .bo_v_link_cnt {color:#b2b2b2;font-size:0.92em}
#bo_v_file li:hover, #bo_v_link li:hover {border-color:#bed4f4;color:#bed4f4}
#bo_v_file li:hover i, #bo_v_link li:hover i {color:#3a8afd}
#bo_v_top {zoom:1}
#bo_v_top:after, #bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_top h2, #bo_v_bot h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_top ul, #bo_v_bot ul {padding:0;list-style:none;word-break:break-all;background:#fff}
.bo_v_com {margin:20px 0;float:right}
.bo_v_com > li {position:relative;float:left;margin-left:5px}
.bo_v_nb {position:relative;margin:20px 0;clear:both;text-align:left}
.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""}
.bo_v_nb li {border-top:1px solid #f1f1f1;padding:13px}
.bo_v_nb li:last-child {border-bottom:1px solid #f1f1f1}
.bo_v_nb li:hover {background:#f6f6f6}
.bo_v_nb li i {font-size:13px;color:#b3b3b3}
.bo_v_nb li .nb_tit {display:inline-block;padding-right:20px;color:#b3b3b3}
.bo_v_nb li .nb_date {float:right;color:#b3b3b3}
#bo_v_atc {min-height:200px;height:auto !important;height:200px}
#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_img {width:100%;overflow:hidden;zoom:1}
#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_img a.view_image {display:block}
#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto}
#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:200px;word-break:break-all;overflow:hidden}
#bo_v_con a {color:#000;text-decoration:underline}
#bo_v_con img {max-width:100%;height:auto}
#bo_v_act {margin-bottom:30px;text-align:center}
#bo_v_act .bo_v_act_gng {position:relative}
#bo_v_act a {margin-right:5px;vertical-align:middle;color:#4a5158}
#bo_v_act a:hover {background-color:#fff;color:#ff484f;border-color:#ff484f}
#bo_v_act i {font-size:1.4em;margin-right:5px}
#bo_v_act .bo_v_good, #bo_v_act .bo_v_nogood {display:inline-block;border:1px solid #dedede;width:70px;line-height:46px;border-radius:30px}
#bo_v_sns {padding:0;list-style:none;zoom:1;float:left;display:inline-block}
#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_sns li {float:left;width:135px;margin-right:5px;text-align:left}
#bo_v_sns li a {height:35px;line-height:35px;text-align:center;border-radius:5px;color:#fff;font-size:0.95em}
#bo_v_sns li img {vertical-align:middle;margin-right:5px}
#bo_v_sns li .sns_f {display:block;background:#3b5997}
#bo_v_sns li .sns_t {display:block;background:#09aeee}
#bo_v_sns li .sns_g {display:block;background:#ea4026}
#bo_v_sns li .sns_k {display:block;background:#fbe300}
#bo_v_share {position:relative;padding:20px 0}
#bo_v_share:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_share .btn {padding:0 10px;color:#555;font-weight:normal;font-size:1em;width:80px;line-height:35px;height:35px;border-color:#d5d5d5;border-radius:5px}
#bo_v_share .btn:hover {background:#fff}
#bo_v_share .btn i {margin-right:5px;color:#4b5259;vertical-align:middle}

/* 댓글 */
.cmt_btn {width:100%;text-align:left;border:0;border-bottom:1px solid #f0f0f0;background:#fff;font-weight:bold;margin:30px 0 0px;padding:0 0 15px}
.cmt_btn span.total {position:relative;display:inline-block;margin-right:5px;font-size:1em;color:#3a8afd}
.cmt_btn span.cmt_more {float:right;display:inline-block;width:15px;height:10px;background:url(./img/btn_cmt.png) no-repeat right 2px;margin-top:5px}
.cmt_btn_op span.cmt_more {background-position:right -8px}
.cmt_btn b {font-size:1.2em;color:#000}
.cmt_btn span.total:after {position:absolute;bottom:-17px;left:0;display:inline-block;background:#3a8afd;content:"";width:100%;height:2px}
#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_vc article {margin:20px 0;position:relative;border-bottom:1px solid #f0f0f0}
#bo_vc article:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc article .profile_img img {border-radius:50%}
#bo_vc article .pf_img {float:left;margin-right:10px}
#bo_vc article .pf_img img {border-radius:50%;width:50px;height:50px}
#bo_vc article .cm_wrap {float:left;max-width:870px;width:90%}
#bo_vc header {position:relative;width:100%}
#bo_vc header:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc header .profile_img {display:none}
#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px}
#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold}
.bo_vc_hdinfo {color:#777}
#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_vc .cmt_contents {line-height:1.8em;padding:0 0 20px}
#bo_vc p a {text-decoration:underline}
#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479}
#bo_vc_empty {margin:0;padding:80px 0 !important;color:#777;text-align:center}
#bo_vc #bo_vc_winfo {float:left}
#bo_vc .bo_vl_opt {position:absolute;top:0;right:0}
.bo_vc_act {display:none;position:absolute;right:0;top:40px;width:58px;text-align:right;border:1px solid #b8bfc4;margin:0;list-style:none;background:#fff;z-index:9999}
.bo_vc_act:before {content:"";position:absolute;top:-8px;right:5px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #b8bfc4 transparent}
.bo_vc_act:after {content:"";position:absolute;top:-6px;right:5px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
.bo_vc_act li {border-bottom:1px solid #f0f0f0}
.bo_vc_act li:last-child {border-bottom:0}
.bo_vc_act li a {display:inline-block;padding:10px 15px}
.bo_vc_act li a:hover {color:#3a8afd}
.bo_vc_w {position:relative;margin:10px 0;display:block}
.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
.bo_vc_w #char_cnt {display:block;margin:0 0 5px}
.bo_vc_w textarea {border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px;box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1)}
.bo_vc_w_info {margin:10px 0;float:left}
.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w_info .frm_input {float:left;margin-right:5px}
.bo_vc_w_info #captcha {padding-top:10px;display:block;clear:both}
.bo_vc_w .btn_confirm {clear:both;margin-top:10px}
.bo_vc_w .btn_confirm label {display:inline-block;margin-right:10px;border-radius:3px;font-size:1.5em;text-align:center}
.bo_vc_w .btn_submit {height:45px;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em}
.bo_vc_w .btn_confirm .secret_cm label {font-size:1em !important}
.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""}
.secret_cm {display:inline-block;float:left}
#bo_vc_send_sns {display:inline-block;float:left}
#bo_vc_sns {display:inline-block;margin:0;padding:0;list-style:none;zoom:1}
#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc_sns li {float:left;margin:0 5px 0 0}
#bo_vc_sns .sns_li_f {border-radius:3px;background:#3a589b;height:40px;line-height:40px;padding:0 0 0 10px}
#bo_vc_sns .sns_li_t {border-radius:3px;background:#00aced;height:40px;line-height:40px;padding:0 0 0 10px}
#bo_vc_sns .sns_li_off {background:#bbb}
#bo_vc_sns a {display:inline-block;padding:0 15px 0 5px}
#bo_vc_sns input {margin:0 5px 0 0}


/* Request board list/view pages */
body.is-request-board,
body.is-request-board-page {
    max-width: 100%;
    overflow-x: hidden;
}

body.is-request-board-page #wrapper {
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

body.is-request-board-page #container_wr {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0 3%;
    overflow-x: hidden;
}

body.is-request-board-page #container {
    float: none;
    width: min(100%, 1200px);
    max-width: 1200px;
    min-height: 500px;
    margin: 150px auto 80px;
}

body.is-request-board-page #container_title span {
    margin: 0 auto 28px;
    text-align: center;
}

body.is-request-board-page #bo_list,
body.is-request-board-page #bo_v {
    margin-left: auto;
    margin-right: auto;
}

body.is-request-board #ft,
body.is-request-board-page #ft,
body.is-request-board #wrapper,
body.is-request-board-page #wrapper,
body.is-request-board #container_wr,
body.is-request-board-page #container_wr {
    overflow-x: hidden;
}

body.is-request-board #ft .ft_big_copy,
body.is-request-board-page #ft .ft_big_copy {
    max-width: 100%;
    overflow: hidden;
}


/* ============================================================
   ▼ Request (견적 문의) Form Skin - 신규
   - 가로 와이드 레이아웃 (94vw, 최대 1480px)
   - 크고 명확한 필드 (높이 64px 기본)
   ============================================================ */

body.is-request-board #hd,
body.is-request-board #ft,
body.is-request-board #wrapper,
body.is-request-board #container_wr,
body.is-request-board #container,
body.is-request-board #hd_wr,
body.is-request-board #ft_wr {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    display: block;
    height: auto;
}

body.is-request-board #container {
    float: none;
    min-height: 0;
}

body.is-request-board #container_title {
    display: none;
}

#req-form-section {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    background: #fff;
    color: #111;
    padding: clamp(220px, 29vh, 320px) 0 140px;
    font-family: 'Inter', 'Noto Sans KR', sans-serif;
    box-sizing: border-box;
    overflow-x: clip;
}

.req-wrap {
    width: 94%;
    max-width: none;       /* 1480px 제한 해제 → 가로 풀 활용 */
    margin: 0 auto;
}

/* ─── 헤더 ─── */
.req-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 80px;
    margin-bottom: -80px;
    text-align: left;
}
.req-header-copy {
    flex: 0 1 760px;
}
.req-header-visual {
    flex: 1 1 360px;
    display: flex;
    justify-content: center;
    padding-top: 0;
}
.req-header-visual img {
    display: block;
    width: auto;
    max-width: 400px;
    height: auto;
    mix-blend-mode: multiply;
    position: relative;
    top: -125px;
}
.req-label {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    font-weight: 700;
    color: #F85A03;
    margin-bottom: 18px;
}
.req-title {
    font-size: clamp(48px, 6vw, 96px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.04em;
    margin: 0 0 24px;
    color: #000;
}
.req-desc {
    font-family: 'Malgun Gothic', dotum, sans-serif;
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: 0;
    color: #444;
    line-height: 1.7;
    max-width: 720px;
    margin: 0;
    word-break: keep-all;
}
.req-contact-line {
    color: #000000;
}
.req-benefit-line {
    display: inline-block;
    color: #000;
    font-weight: 700;
    margin-top: 2px;
}
.req-benefit-note {
    display: inline-block;
    color: #333;
    font-size: 0.96em;
    line-height: 1.75;
    max-width: 760px;
}

#reqHeroVisual {
    clip-path: inset(100% 0 0 0);
    -webkit-clip-path: inset(100% 0 0 0);
    will-change: transform, clip-path;
}
#reqHeroLabel {
    overflow: hidden;
}
#reqHeroLabel .req-label-mask {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
}
#reqHeroLabel .req-label-inner {
    display: inline-block;
    transform: translateX(-105%);
    will-change: transform;
}
#reqHeroTitle .req-mask {
    display: block;
    overflow: hidden;
    line-height: 1.05;
}
#reqHeroTitle .req-mask > span {
    display: inline-block;
    transform: translateY(110%);
    will-change: transform;
}
#reqHeroSub {
    opacity: 0;
    transform: translateY(20px);
    will-change: transform, opacity;
}

/* ─── 폼 그리드 ─── */
.req-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 40px;
}
.req-row {
    display: flex;
    flex-direction: column;
}
.req-row.half { grid-column: span 1; }
.req-row.full { grid-column: 1 / -1; }

/* ─── 라벨 ─── */
.req-row > label {
    font-size: 14px;
    font-weight: 700;
    color: #111;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
    text-transform: uppercase;
}
.req-row > label em {
    color: #F85A03;
    font-style: normal;
    margin-left: 4px;
}

/* ─── 인풋/셀렉트/텍스트에어리어 ─── */
.req-input {
    width: 100%;
    height: 64px;
    padding: 0 22px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background: #fff;
    font-family: inherit;
    font-size: 17px;
    color: #111;
    box-sizing: border-box;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    appearance: none;
    -webkit-appearance: none;
}
.req-input::placeholder { color: #aaa; }
.req-input:hover { border-color: #999; }
.req-input:focus {
    outline: none;
    border-color: #000;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06);
}

select.req-input {
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'><path d='M1 1l6 6 6-6' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 22px center;
    padding-right: 52px;
    cursor: pointer;
}

.req-textarea {
    height: auto;
    min-height: 220px;
    padding: 22px;
    line-height: 1.65;
    resize: vertical;
}

/* ─── 첨부파일 ─── */
.req-files {
    gap: 12px;
}
.req-file-list {
    display: grid;
    gap: 12px;
}
.req-file-item {
    display: flex;
    align-items: center;
    gap: 14px;
}
.req-file-input {
    width: 100%;
    min-height: 64px;
    padding: 18px 22px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background: #fff;
    color: #111;
    font-family: inherit;
    font-size: 15px;
    box-sizing: border-box;
}
.req-file-input:hover {
    border-color: #999;
}
.req-file-input:focus {
    outline: none;
    border-color: #000;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06);
}
.req-file-del {
    flex: 0 0 auto;
    color: #555;
    font-size: 13px;
    line-height: 1.5;
}
.req-file-del input {
    margin-right: 6px;
}
.req-file-note {
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

/* ─── 캡차 ─── */
.req-captcha { align-items: flex-start; }

/* ─── 동의 ─── */
.req-agree {
    background: #f6f6f6;
    padding: 28px 28px 24px;
    border-radius: 6px;
}
.req-agree > input[type="checkbox"] {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden; clip: rect(0 0 0 0);
}
.req-agree > label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 500;
    color: #111;
    margin: 0;
    text-transform: none;
    letter-spacing: 0.01em;
}
.req-agree .chk-box {
    width: 22px; height: 22px;
    border: 1.5px solid #999;
    border-radius: 3px;
    background: #fff;
    display: inline-block;
    position: relative;
    flex-shrink: 0;
    transition: all 0.2s ease;
}
.req-agree > input[type="checkbox"]:checked + label .chk-box {
    background: #F85A03;
    border-color: #F85A03;
}
.req-agree > input[type="checkbox"]:checked + label .chk-box::after {
    content: '';
    position: absolute;
    left: 6px; top: 2px;
    width: 6px; height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.req-agree > input[type="checkbox"]:focus-visible + label .chk-box {
    box-shadow: 0 0 0 3px rgba(248,90,3,0.25);
}
.req-agree .agree-text em {
    color: #F85A03; font-style: normal; margin-left: 2px;
}
.req-agree .agree-policy {
    margin-top: 14px;
    font-size: 13px;
    color: #555;
}
.req-agree .agree-policy summary {
    cursor: pointer;
    color: #666;
    text-decoration: underline;
    display: inline-block;
    list-style: none;
}
.req-agree .agree-policy summary::-webkit-details-marker { display: none; }
.req-agree .agree-policy[open] summary { margin-bottom: 12px; }
.req-agree .policy-body {
    background: #fff;
    border: 1px solid #e3e3e3;
    padding: 18px 22px;
    border-radius: 4px;
    line-height: 1.65;
    max-height: 120px;
    overflow-y: auto;
}
.req-agree .policy-body h1 { font-size: 20px; margin: 0 0 14px; line-height: 1.35; }
.req-agree .policy-body h2 { font-size: 16px; margin: 22px 0 8px; line-height: 1.45; }
.req-agree .policy-body p { margin: 0 0 8px; }
.req-agree .policy-body p:last-child { margin-bottom: 0; }
.req-agree .policy-body strong { color: #111; font-weight: 700; margin-right: 4px; }
.req-agree .policy-body a { color: #111; text-decoration: underline; }

/* ─── 버튼 ─── */
.req-submit {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 30px;
}
.req-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    height: 64px;
    padding: 0 36px;
    border: 1px solid #000;
    border-radius: 4px;
    background: #fff;
    color: #000;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.req-btn:hover { background: #000; color: #fff; }
.req-btn.submit { background: #000; color: #fff; }
.req-btn.submit:hover {
    background: #F85A03; border-color: #F85A03;
    transform: translateY(-2px);
}
.req-btn.submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}
.req-btn.admin-list {
    background: #2b3a55;
    color: #fff;
    border-color: #2b3a55;
    margin-right: auto;
}
.req-btn.admin-list:hover {
    background: #F85A03;
    border-color: #F85A03;
    color: #fff;
    transform: translateY(-2px);
}

/* ─── 반응형 ─── */
@media (max-width: 768px) {
    body.is-request-board-page #container {
        width: 100%;
        margin: 125px auto 60px;
    }

    #req-form-section { padding: 170px 0 100px; }
    .req-header { display: block; margin-bottom: 50px; }
    .req-header-visual { display: none; }
    .req-title { font-size: clamp(36px, 9vw, 60px); }
    .req-grid { grid-template-columns: 1fr; gap: 22px; }
    .req-row.half { grid-column: 1 / -1; }
    .req-input { height: 56px; font-size: 16px; padding: 0 18px; }
    .req-textarea { min-height: 180px; padding: 18px; }
    .req-submit { flex-direction: column-reverse !important; }
    .req-submit .req-btn { width: 100%; min-width: 0; height: 56px; }
}

/* ───────── View 페이지: 견적문의 상세 정보 박스 ───────── */
.req-view-info {
    margin: 24px 0 36px;
    padding: 28px 32px;
    background: #f9f9f9;
    border-radius: 8px;
}
.req-view-info-title {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #111;
    margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e3e3e3;
}
.req-view-info-list {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 40px;
}
.req-view-row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin: 0;
    padding: 0;
}
.req-view-row dt {
    flex: 0 0 90px;
    font-size: 13px;
    font-weight: 700;
    color: #777;
    letter-spacing: 0.04em;
    line-height: 1.5;
    padding-top: 2px;
}
.req-view-row dd {
    flex: 1;
    margin: 0;
    font-size: 15px;
    color: #111;
    line-height: 1.6;
    word-break: break-all;
}
.req-view-row dd a { color: #F85A03; text-decoration: none; }
.req-view-row dd a:hover { text-decoration: underline; }

.req-view-content-title {
    margin-top: 8px;
}

@media (max-width: 768px) {
    .req-view-info { padding: 20px 22px; }
    .req-view-info-list { grid-template-columns: 1fr; gap: 14px; }
    .req-view-row dt { flex: 0 0 80px; }
}
