
caption {
    overflow: hidden;
    width: 1px;
    height: 1px;
    padding: 0;
    margin-top: -1px;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
}

input[type=text],
input[type=password], 
input[type=number],
select,
textarea {
		display:block;
    width: 100%;
    max-width: 90%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    background-color: #fff;
    font-size: 16px;
    color: #333;
    border-radius: 6px;
    box-sizing: border-box;
    transition: all 0.3s;
}


input[type=text]:focus,
input[type=password]:focus,
input[type=number]:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-primary, #bd846b);
    box-shadow: 0 0 0 3px rgba(189, 132, 107, 0.15);
}

input[type=radio],
input[type=checkbox] {
    width: 20px;
    height: 20px;
    border: 1px solid #ccc;
    vertical-align: middle;
    margin-right: 6px; 
    cursor: pointer;
}

input[type=text].short,
input[type=number].short {
    width: 120px;
}
input[type=text].idshort{
	display:inline-block;
	width:50%;
	}
select {
    width: 290px;
    height: 48px;
    padding-left: 15px;
    cursor: pointer;
}

textarea {
    min-height: 180px;
    line-height: 1.6;
    margin: 10px 0;
}


.table_list {
    width: 90%;
    margin: 0 auto;
    table-layout: fixed;
    border-collapse: collapse;
}

.table_list thead th {
    height: 55px;
    background: #fcfbf9; /* 은은한 크림베이지 톤 헤더 */
    border-top: 2px solid #222; /* 얇지만 명확한 블랙 마감 */
    border-bottom: 1px solid #ddd;
    font-size: 16px;
    font-weight: 600;
    color: #222;
}

.table_list tbody td {
    padding: 15px 10px;
    border-bottom: 1px solid #eaeaea;
    font-size: 15px;
    color: #555;
    vertical-align: middle;
}

/* 후손 선택자 정렬 최적화 (2번째 칸: 제목 영역 좌측 정렬) */
.table_list tbody td:nth-child(2) {
    font-size: 17px;
    text-align: left;
    font-weight: 500;
    color: #222;
}

.table_list a {
    text-decoration: none;
    color: inherit;
    transition: color 0.2s;
}

.table_list a:hover {
    color: var(--color-primary, #bd846b);
    text-decoration: underline;
}

/* 게시판용 배지/태그 세팅 */
.table_list tbody td span.notice {
    display: inline-block;
    font-size: 12px;
    color: var(--color-primary, #bd846b);
    border: 1px solid var(--color-primary, #bd846b);
    border-radius: 4px;
    font-weight: 500;
    padding: 2px 6px;
}

.table_list tbody td span.date,
.table_list tbody td span.name,
.table_list tbody td span.hit {
    display: inline-block;
    font-size: 14px;
    color: #888;
    margin-right: 15px;
}


.table_photolist {
    width: 100%;
    border-collapse: collapse;
}

.table_photolist thead th {
    height: 55px;
    background: #fcfbf9;
    border-top: 2px solid #222;
    border-bottom: 1px solid #ddd;
    font-size: 16px;
}

.table_photolist tbody td {
    padding: 20px 10px;
    border-bottom: 1px solid #eaeaea;
}

.table_photolist tbody td a {
    display: block;
    width: 95%;
    margin: 0 auto;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: transform 0.2s, box-shadow 0.2s;
}

.table_photolist tbody td a:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(0,0,0,0.06);
}

.table_photolist tbody td a img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover; /* 사진 비율 깨짐 원천 방지 */
}


.table_read {
    width: 90%;
    border-collapse: collapse;
    margin:0 auto;
}

.table_read thead th {
    padding: 15px 20px;
    text-align: left;
    background: #fcfbf9;
    border-top: 2px solid #222;
    border-bottom: 1px solid #ddd;
    font-size: 20px;
    font-weight: 500;
    color: #222;    
    align-items: center;            /* 세로 중앙 정렬 */
}
.table_read thead th .subject {}
.table_read thead th .meta {	
    font-size: 15px;     
    font-weight: 400;  
    color: #888;     
    letter-spacing: 0;
}
.table_read thead th b { font-weight: 700; }

.table_read tbody tr td {
    padding: 15px 25px;
    text-align: left;
    border-bottom: 1px solid #ddd;
    font-size:16px;
    line-height:1.8;
    color:#222;
}

.table_read tbody tr td.info1 {
    font-size: 14px;
    color: #666;
    background-color: #fafafa;
    border-bottom: 1px solid #eee;
    padding: 10px 25px;
}

.table_read tbody tr td.info1 span {
    display: inline-block;
    font-weight: 600;
    margin-right: 8px;
    margin-left: 15px;
    color: #333;
}
.table_read tbody tr td.info1 span:first-child { margin-left: 0; }

.table_read tbody tr td img {
    display: block;
    margin: 0 auto 30px auto;
    max-width: 90%;
}

.table_read tbody tr td.answer {
    background: #fdfcfb;
    padding: 40px 25px;
}

.table_read tbody tr td.answer p {
    max-width: 95%;
    margin: 0 auto 30px auto;
    text-align: left;
    font-size: 16px;
    font-weight: 500;
    color: var(--color-primary, #bd846b);
    background: #fff;
    line-height: 1.6;
    border: 1px dashed var(--color-primary, #bd846b);
    border-radius: 12px;
    padding: 20px;
}


.table_write {
    width: 90%;
    border-collapse: collapse;
    border-top: 2px solid #222;
    border-bottom: 1px solid #222;
    margin:0 auto;
}

.table_write th,
.table_write td {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
    font-size: 15px;
}

.table_write th {
    background: #fcfbf9;
    text-align: center;
    font-weight: 600;
    color: #222;
    width: 150px;
}

.table_write td { text-align: left; }

.table_write td img {
    display: block;
    max-width: 80%;
    margin: 15px 0;
    border-radius: 6px;
}
.table_write td p.comment{
	font-size:14px;
	color:#bd846b;
	line-height:1.5;
	}
/* ID중복체크 등 폼 내부 간이 버튼 */
.table_write td a.idcheck {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 36px;
    border: 1px solid var(--color-primary, #bd846b);
    background-color: #fff;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary, #bd846b);
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.2s;
}
.table_write td a.idcheck:hover {
    background-color: var(--color-primary, #bd846b);
    color: #fff;
}

p.mark {
    margin: 0 auto 20px;
    text-align: left;
    font-size: 14px;
    color: #666;
}
p.mark sup,
.table_write th sup {
    font-weight: 700;
    color: #ff3300;
    font-size: 15px;
    top: -2px;
    margin-right: 2px;
}


.rev_1, .rev_2, .rev_3, .rev_4 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 65px;
    height: 26px;
    border-radius: 30px;
    font-size: 13px;
    font-weight: 500;
}

.rev_1 { border: 1px solid #b2b6b9; color: #656d74; } /* 대기/확인중 */
.rev_2 { border: 1px solid #7fdfe0; color: #00b0b1; } 
.rev_3 { border: 1px solid var(--color-primary, #bd846b); color: var(--color-primary, #bd846b); } /* 답변완료 전용 매칭 */
.rev_4 { border: 1px solid #8e7cf0; color: #6544cd; }


.new, .lock {
    font-size: 20px; 
    vertical-align: middle;
    margin-left: 4px;
    line-height: 1;
    display: inline-block; 
}

.new {
    font-size: 25px;
    color: #ff3b00; 
    /* 글자 형태의 아이콘이므로 속을 채우는 'FILL' 1을 주면 시안처럼 선명해집니다 */
    font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}

.lock {
	font-size:20px;
    color: #bd846b; /* 차분하고 세련된 소프트 그레이 */
    font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}


.reply {
    display: inline-block;
    background: var(--color-primary, #bd846b);
    color: #fff;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
}
.reply0 {
    display: inline-block;
    background: #e2e8f0;
    color: #4a5568;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
}




#pass_wrap {
    border: 1px solid #e5e7eb;
    width: 100%;
    max-width: 450px;
    border-radius: 12px;
    margin: 40px auto;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}

#pass_wrap p.inner_txt {
    margin: 0;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    background: var(--color-primary, #bd846b);
}

#pass_wrap input[type=password] {
    width: 80%;
    display: block;
    margin: 40px auto 15px;
}

#pass_wrap a.pass_btn,
#pass_wrap input[type=button] {
    display: block;
    width: 80%;
    height: 45px;
    background: #333;
    color: #fff;
    font-weight: 500;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
    line-height: 45px;
    border: 0;
    border-radius: 6px;
    margin: 0 auto 40px;
    cursor: pointer;
    transition: background 0.2s;
}
#pass_wrap a.pass_btn:hover { background: #000; }

#telok_wrap {
    border: 2px dashed var(--color-primary, #bd846b);
    border-radius: 12px;
    width: 100%;
    max-width: 600px;
    margin: 40px auto;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.8;
    text-align: center;
    padding: 50px 20px;
    box-sizing: border-box;
    background-color: #fdfcfb;
}





div.btn_wrap {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 40px auto;
}

/* 범용 100px 버튼 기본 기틀 */
div.btn_wrap a,
div.btn_wrap input[type=button] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 16px;
    text-decoration: none;
    border: 0;
    cursor: pointer;
    transition: opacity 0.2s;
    box-sizing: border-box;
}
div.btn_wrap a:hover,
div.btn_wrap input[type=button]:hover { opacity: 0.85; }


.btn_100_b { width: 110px; height: 44px; background: var(--color-primary, #bd846b); color: #fff; font-weight: 500; }

.btn_100_g { width: 110px; height: 44px; background: #656d74; color: #fff; font-weight: 500; }


div.btn_wrap input[type=button].btn_190_b { width: 190px; height: 50px; background: var(--color-primary, #bd846b); color: #fff; font-weight: 600; font-size: 18px; }
div.btn_wrap input[type=button].btn_100_b { width: 120px; height: 50px; background: var(--color-primary, #bd846b); color: #fff; font-weight: 600; font-size: 18px; }
div.btn_wrap input[type=button].btn_100_g { width: 120px; height: 50px; background: #656d74; color: #fff; font-weight: 600; font-size: 18px; }







div.search_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 20px 0;
    background: #f7f7f9;
    border-radius: 8px;
    margin: 40px auto 0;
}

div.search_wrap select {
    width: 130px;
    height: 42px;
    background: url(../img/common/select_ar.png) no-repeat right 12px center #fff;
    background-size: 12px auto;
    font-size: 15px;
    padding-left: 12px;
}

div.search_wrap input[type=text] {
    width: 320px;
    height: 42px;
    font-size: 15px;
    padding-left: 15px;
}

div.search_wrap button,
div.search_wrap input[type=submit] {
    width: 90px;
    height: 42px;
    background: #333;
    color: #fff;
    font-weight: 500;
    font-size: 15px;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s;
}
div.search_wrap button:hover { background: #000; }


.pagi {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    margin-top: 40px;
}

.pagi a,
.pagi strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 15px;
    text-decoration: none;
    border-radius: 4px;
    box-sizing: border-box;
    transition: all 0.2s;
}

/* 링크 기본 상태 */
.pagi a {
    color: #888;
    background: #fff;
    border: 1px solid #F4F1EA;
}

/* 마우스 호버 및 현재 페이지 활성화 상태 */
.pagi a.now,
.pagi a:hover,
.pagi strong {
    color: #fff;
    background: var(--color-primary, #bd846b);
    border: 1px solid var(--color-primary, #bd846b);
}

/* 방향 이동 화살표 전용 스타일 */
.pagi a.first,
.pagi a.last {
	font-family: 'Material Symbols Outlined';
    font-size: 18px; /* 화살표 아이콘 크기 조절 */
    color: #a0aec0;  /* 기본 화살표 색상은 차분한 그레이 */
}

.pagi a.prev,
.pagi a.next {
	font-family: 'Material Symbols Outlined';
    font-size: 15px; /* 화살표 아이콘 크기 조절 */
    color: #a0aec0;  /* 기본 화살표 색상은 차분한 그레이 */
}

/*  화살표 아이콘 마우스 호버 스타일 보정 */
.pagi a.first:hover,
.pagi a.last:hover,
.pagi a.prev:hover,
.pagi a.next:hover {
    background-color: #fafafa; /* 배경은 연한 회색 */
    border: 1px solid var(--color-primary, #bd846b); /* 테두리는 포인트 갈색 */
    color: var(--color-primary, #bd846b) !important; 
}




div#login, 
div#idpw_search {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 50px auto;
    padding: 40px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 25px rgba(0,0,0,0.03);
    box-sizing: border-box;
}
div#idpw_search b{
	color:#ff3300;
	font-weight:700;
	}
div#login .login-flex-wrap {
    display: flex;
    gap: 15px;
    align-items: stretch;
}

div#login ul {
    width: 70%;
    margin: 0; padding: 0;
    list-style: none;
}

div#login ul li {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}
div#login ul li:last-child { margin-bottom: 0; }

div#login ul li span {
    width: 70px;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}

div#login ul li input[type=text],
div#login ul li input[type=password] {
    width: calc(100% - 70px);
    height: 42px;
}

/* 로그인 실행 단일 버튼 구조화 */
div#login .login_btn,
div#login input[type=submit] {
		display: flex;
    width: 30%;
    background: var(--color-primary, #bd846b);
    border: 0;
    border-radius: 6px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    align-items: center;
    justify-content: center;  
}
div#login .login_btn:hover { background: #a26e58; }

/* 하단 회원가입 / 정보찾기 이동 링크 바 */
div#login_btn_wrap {
    display: flex;
    justify-content: center;
    gap: 15px;
    width: 100%;
    max-width: 600px;
    margin: 20px auto;
}
div#login_btn_wrap a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 6px;
}
div#login_btn_wrap a.left_btn  { background: #555; }
div#login_btn_wrap a.right_btn { background: var(--color-primary, #bd846b); }



/*전후사진 tab*/
ul.pic_tab {
    position: relative;
    width: 90%;        /* 부모 inner-wrap에 꽉 차도록 100% 지정 */
    max-width: 1100px;  
    margin: 0 auto 40px auto;
    padding: 0;
    list-style: none;    
    display: flex;
    justify-content: center;
    gap: 10px;    
}

ul.pic_tab li { 
    flex: 1; 
    height: 50px;
}

ul.pic_tab li a {    
    display: flex;
    align-items: center;
    justify-content: center;    
    width: 100%;
    height: 100%;
    border: 1px solid #bd846b;
    color: #bd846b;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    box-sizing: border-box;
    transition: all 0.2s ease; 
}

ul.pic_tab li a:hover,
ul.pic_tab li a.on {
    background: #bd846b;
    color: #fff;
}

/*전후사진 리스트*/

ul.pic_wrap {
    position: relative;
    width:100%;
    margin: 0 auto;
    padding: 0;
    list-style: none;    
    display: flex;
    flex-wrap: wrap; 
    gap: 80px 5%; 
    justify-content: flex-start; 
}

ul.pic_wrap li {
    width: 30%; 
    height: auto;  
    margin-bottom: 0;
    text-align: center;
    box-sizing: border-box;
}

ul.pic_wrap li a {
    position: relative;
    display: block;
    width: 100%;  
    color: #222;
    text-decoration: none;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: -0.05em;
}

ul.pic_wrap li a img {
    display: block;
    width: 100%;   
    height: auto;
    aspect-ratio: 3 / 2; 
    object-fit: cover;
    margin: 0 auto 12px auto;
}


ul.pic_wrap li a p.mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 50%; 
    aspect-ratio: 3 / 4; 
    background: rgba(0, 0, 0, 0.75);
    display: flex;
    flex-direction: column; 
    justify-content: center;
    align-items: center;
    gap: 8px; 
    margin: 0;
}


ul.pic_wrap li a p.mask span.material-symbols-outlined {
    font-size:40px;
    color:#fff; 
    font-family: 'Material Symbols Outlined';
}

ul.pic_wrap li a p.mask span {
    color: #fff;
    font-size: 14px;
    font-weight:400;
}