/* Sub pages shared */
.sub-section{padding:80px 0}
.sub-section + .sub-section{border-top:1px solid var(--line)}

/* About */
.about-block{display:grid;gap:48px;align-items:start}
@media(min-width:900px){.about-block{grid-template-columns:280px 1fr}}
.about-block .label{font-family:var(--font-en);font-size:13px;letter-spacing:.18em;color:var(--gold);text-transform:uppercase;font-weight:600;padding-top:6px}
.about-block h2{font-size:clamp(28px,3vw,44px);line-height:1.2;margin-bottom:18px}
.about-block p{color:var(--text-2);line-height:1.85;margin-bottom:14px;font-size:17px}
.value-grid{display:grid;gap:20px;grid-template-columns:repeat(1,1fr);margin-top:24px}
@media(min-width:700px){.value-grid{grid-template-columns:repeat(3,1fr)}}
.value-grid .card{background:var(--ivory-50);border:1px solid var(--line);border-radius:12px;padding:24px}
.value-grid .card .n{font-family:var(--font-en);font-weight:800;color:var(--gold);font-size:14px;margin-bottom:10px;display:block}
.value-grid .card h3{font-size:18px;margin-bottom:8px}
.value-grid .card p{font-size:14px;color:var(--text-2);line-height:1.7;margin:0}

/* Programs page list */
.programs-list{display:grid;gap:28px;grid-template-columns:repeat(1,1fr)}
@media(min-width:768px){.programs-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.programs-list{grid-template-columns:repeat(3,1fr)}}

/* Experts page */
.experts-list{display:grid;gap:32px;grid-template-columns:repeat(1,1fr)}
@media(min-width:600px){.experts-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.experts-list{grid-template-columns:repeat(3,1fr)}}
.expert-full{background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.expert-full:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(27,42,78,.1)}
.expert-full .photo{aspect-ratio:4/5;background:linear-gradient(135deg,var(--ivory-50),var(--ivory))}
.expert-full .photo img{width:100%;height:100%;object-fit:cover}
.expert-full .body{padding:28px}
.expert-full .role{font-family:var(--font-en);font-size:12px;letter-spacing:.15em;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.expert-full h3{font-size:22px;margin-bottom:14px}
.expert-full dl{font-size:14px;display:grid;gap:8px}
.expert-full dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:2px;font-family:var(--font-en);font-weight:600}
.expert-full dd{color:var(--text-2);line-height:1.65}

/* Notice page */
.notice-board{border-top:2px solid var(--navy-700);border-bottom:1px solid var(--line)}
.notice-row{display:grid;grid-template-columns:80px 90px 1fr 110px;gap:24px;align-items:center;padding:22px 12px;border-bottom:1px solid var(--line);transition:background .2s var(--ease)}
.notice-row:hover{background:var(--ivory-50)}
.notice-row .no{font-family:var(--font-en);color:var(--text-3);font-size:14px;text-align:center}
.notice-row .cat{font-family:var(--font-en);font-size:11px;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;font-weight:700;padding:4px 10px;background:var(--ivory-50);border-radius:999px;text-align:center;width:fit-content}
.notice-row .title{font-size:16px;color:var(--text-1);font-weight:500}
.notice-row .date{color:var(--text-3);font-size:13px;font-family:var(--font-en);text-align:right}
@media(max-width:700px){
  .notice-row{grid-template-columns:80px 1fr;gap:8px}
  .notice-row .no,.notice-row .date{font-size:12px}
  .notice-row .date{grid-column:2;text-align:left;color:var(--text-3)}
  .notice-row .title{grid-column:1/-1}
}

/* Notice detail */
.notice-detail{max-width:880px;margin:0 auto}
.notice-detail header{padding-bottom:32px;border-bottom:1px solid var(--line);margin-bottom:48px}
.notice-detail .cat{display:inline-block;font-family:var(--font-en);font-size:11px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-weight:700;margin-bottom:14px}
.notice-detail h1{font-size:clamp(28px,3.5vw,40px);line-height:1.3;margin-bottom:16px}
.notice-detail .meta{color:var(--text-3);font-size:14px;font-family:var(--font-en)}
.notice-detail .body p{font-size:17px;line-height:1.85;color:var(--text-1);margin-bottom:18px}
.notice-detail .body h3{font-size:20px;margin:36px 0 14px}
.notice-detail .body ul{margin:14px 0 18px 20px}
.notice-detail .body li{list-style:disc;margin-bottom:8px;line-height:1.75;color:var(--text-2)}
.notice-detail .nav{display:flex;justify-content:space-between;gap:12px;margin-top:60px;padding-top:24px;border-top:1px solid var(--line)}

/* Contact */
.contact-grid{display:grid;gap:48px}
@media(min-width:900px){.contact-grid{grid-template-columns:.9fr 1.2fr}}
.contact-info h2{font-size:clamp(28px,3vw,40px);margin-bottom:18px}
.contact-info .desc{color:var(--text-2);line-height:1.85;margin-bottom:32px}
.contact-info .meta{display:grid;gap:18px;border-top:1px solid var(--line);padding-top:24px}
.contact-info .meta .row{display:grid;grid-template-columns:90px 1fr;gap:12px;font-size:15px}
.contact-info .meta .row dt{font-family:var(--font-en);font-size:12px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-weight:600;padding-top:4px}
.contact-info .meta .row dd{color:var(--text-1);line-height:1.7}

/* ── Contact Form Box ── */
.contact-form-box{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:40px 44px;
  box-shadow:0 4px 32px rgba(27,42,78,.06);
}
.contact-form-box h3{
  font-size:22px;
  font-weight:700;
  color:var(--navy-700);
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:2px solid var(--line);
  font-family:var(--font-kr);
}

/* ── 문의 폼 전체 래퍼 ── */
.inquiry-form{
  display:block;
}

/* ── 두 칸 행 ── */
.form-row.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:20px;
}
@media(max-width:640px){
  .form-row.two-col{ grid-template-columns:1fr; }
}

/* ── 개별 필드 그룹 ── */
.form-group{
  display:block;
  margin-bottom:20px;
}
.form-row.two-col .form-group{
  margin-bottom:0;
}
.form-group label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--navy-700);
  margin-bottom:8px;
  letter-spacing:.01em;
  font-family:var(--font-kr);
}
.form-group .req{
  color:var(--gold);
  margin-left:3px;
}

/* ── 입력 필드 공통 ── */
.form-group input,
.form-group select,
.form-group textarea{
  display:block;
  width:100%;
  padding:14px 16px;
  border:1.5px solid #D8D3C8;
  border-radius:10px;
  font-size:15px;
  font-family:var(--font-kr);
  color:var(--text-1);
  background:#fff;
  line-height:1.5;
  transition:border-color .2s ease,box-shadow .2s ease;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
}
.form-group input::placeholder,
.form-group textarea::placeholder{
  color:#B0B7C3;
  font-family:var(--font-kr);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,169,97,.18);
}

/* select 커스텀 화살표 */
.form-group select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A93A6' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
  cursor:pointer;
  color:var(--text-1);
}
.form-group select option:first-child{ color:#B0B7C3; }

/* textarea */
.form-group textarea{
  resize:vertical;
  min-height:140px;
  line-height:1.7;
}

/* ── 개인정보 동의 ── */
.privacy-check{
  margin-bottom:24px;
}
.checkbox-label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  cursor:pointer;
  position:relative;
}
.checkbox-label input[type="checkbox"]{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
}
.checkmark{
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border:1.5px solid #D8D3C8;
  border-radius:5px;
  background:#fff;
  margin-top:2px;
  transition:border-color .2s,background .2s;
}
.checkbox-label input:checked ~ .checkmark{
  background:var(--navy-700);
  border-color:var(--navy-700);
}
.checkbox-label input:checked ~ .checkmark::after{
  content:"";
  display:block;
  width:5px;
  height:9px;
  border:2px solid #fff;
  border-top:none;
  border-left:none;
  transform:rotate(45deg) translate(0,-1px);
}
.checkbox-label .text{
  font-size:14px;
  color:var(--text-2);
  line-height:1.6;
  font-family:var(--font-kr);
}
.privacy-toggle{
  background:none;
  border:none;
  color:var(--gold);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  padding:0 4px;
  text-decoration:underline;
  font-family:var(--font-kr);
  vertical-align:middle;
}
.privacy-detail{
  display:block;
  font-size:13px;
  color:var(--text-3);
  background:var(--ivory);
  border-radius:8px;
  padding:12px 16px;
  line-height:1.75;
  margin-top:10px;
}

/* ── 제출 버튼 ── */
.btn-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:18px 24px;
  background:var(--navy-700);
  color:#fff;
  border:none;
  border-radius:12px;
  font-size:16px;
  font-weight:700;
  font-family:var(--font-kr);
  letter-spacing:-.01em;
  cursor:pointer;
  transition:background .25s ease,transform .2s ease,box-shadow .25s ease;
  box-shadow:0 6px 24px rgba(27,42,78,.22);
}
.btn-submit:hover{
  background:var(--navy-900);
  transform:translateY(-2px);
  box-shadow:0 10px 32px rgba(27,42,78,.32);
}
.btn-submit:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
}
.btn-submit .arrow{
  font-size:18px;
  transition:transform .2s ease;
  display:inline-block;
}
.btn-submit:hover .arrow{ transform:translateX(4px); }

/* ── 전송 완료 ── */
.form-success{
  text-align:center;
  padding:56px 24px;
}
.form-success .icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:60px;
  height:60px;
  background:var(--ivory);
  border:2px solid var(--gold);
  border-radius:50%;
  font-size:24px;
  color:var(--gold);
  margin:0 auto 20px;
  font-weight:700;
  font-family:var(--font-en);
}
.form-success p{
  font-size:16px;
  line-height:1.85;
  color:var(--text-2);
  font-family:var(--font-kr);
}

@media(max-width:768px){
  .contact-form-box{ padding:28px 24px; }
}
