@charset "utf-8";

/* =============================================================
   achv.me — 회사소개 (/company)
   `plugin/achv/pages/company.php` 전용. 다른 화면은 쓰지 않는다.

   ⚠ rem 금지 — 리빌더 테마가 `rb.css/reset.css:4` 에서 html{font-size:14px} 을
     걸어 16px = 14px 이다. 전부 px 로 적는다.
   ⚠ 폰트는 테마가 이미 싣는 Pretendard 3종(별칭 font-H 900 / font-B 700 /
     font-R 400)만 쓴다. 500·600 을 지정하면 가짜 굵기가 합성된다.
   ⚠ 사이트 전역 reset 이 목록 마커·표 테두리·a 색을 지운다. 여기서 되살린다.
   ============================================================= */

.achv-co {
    /* 잉크빛 남색 — 야간 구장과 기록지 잉크. 검정도 크림도 아니다 */
    --co-ink: #101a2c;
    --co-paper: #ffffff;
    --co-field: #f4f6f9;
    --co-line: #dfe4ec;
    --co-red: #e60200;
    --co-red-dark: #c70200;
    --co-text: #1e293b;
    --co-muted: #5c6b82;
    --co-chalk: rgba(255, 255, 255, .70);

    /* 본문 한 줄의 읽기 폭. 15~16px 한글이 한 줄 45자 안팎으로 끊긴다.
       표·카드·그리드는 이 폭을 쓰지 않고 컨테이너를 다 쓴다. */
    --co-measure: 720px;

    max-width: 1000px;   /* 테마 `.sub` 는 이 화면에서 폭을 잡아 주지 않는다 */
    margin: 0 auto;
    padding: 0 16px;
    font-family: 'font-R', sans-serif;
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: -.01em;
    color: var(--co-text);
    word-break: keep-all;               /* 한글은 단어 단위로 끊는다 */
    font-variant-numeric: tabular-nums; /* 숫자·표는 등폭 */
}

.achv-co p { margin: 0 0 16px; }
.achv-co p:last-child { margin-bottom: 0; }
.achv-co strong, .achv-co b { font-family: 'font-B', sans-serif; }
.achv-co a { color: var(--co-red); font-family: inherit; text-decoration: none; }
.achv-co a:hover { text-decoration: underline; }
.achv-co :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* 읽기 폭 — 16px 기준 한 줄 40자 안팎 */
.achv-co__lede { max-width: var(--co-measure); }

/* --- 섹션 ---------------------------------------------------- */
.achv-co__sec { padding: 52px 0; border-top: 1px solid var(--co-line); }
.achv-co__sec:first-of-type { border-top: 0; }

.achv-co__h2 {
    font-family: 'font-B', sans-serif;
    font-size: 26px;
    line-height: 1.35;
    letter-spacing: -.025em;
    color: var(--co-ink);
    margin: 0 0 20px;
}
.achv-co__h2::before {           /* 아치브 빨강을 아주 짧게 한 번 */
    content: '';
    display: block;
    width: 26px;
    height: 3px;
    background: var(--co-red);
    margin-bottom: 14px;
}
.achv-co__h3 {
    font-family: 'font-B', sans-serif;
    font-size: 17px;
    line-height: 1.5;
    color: var(--co-ink);
    margin: 26px 0 8px;   /* 앞 단락·목록과 붙지 않게 */
}

/* --- 히어로 -------------------------------------------------- */
.achv-co__hero {
    background: var(--co-ink);
    color: #fff;
    border-radius: 20px;
    padding: 40px 24px;
    display: grid;
    gap: 32px;
    align-items: center;
}
.achv-co__hero-title {
    font-family: 'font-H', sans-serif;
    font-weight: 900;
    font-size: 30px;
    line-height: 1.28;
    letter-spacing: -.035em;
    color: #fff;
    margin: 0 0 18px;
}
.achv-co__hero-lede {
    color: var(--co-chalk);
    font-size: 16px;
    line-height: 1.8;
    max-width: 480px;
    margin: 0 0 26px;
}
.achv-co__hero-note {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 22px 0 0;
    font-size: 14px;
    color: var(--co-chalk);
}
.achv-co__hero-note::before {
    content: '';
    flex: none;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--co-red);
    transform: translateY(-2px);
}
/* 기록지 — 실제 렌더러 출력(흰 바탕 정본)이라 어두운 히어로 위에 종이 카드로 얹는다 */
.achv-co__paper {
    justify-self: start;
    width: 100%;
    max-width: 280px;
    box-sizing: border-box;
    padding: 14px;
    background: #fff;
    border-radius: 12px;
}
.achv-co__sheet { display: block; width: 100%; height: auto; }

/* --- 버튼 ---------------------------------------------------- */
/* ⚠ 선택자 앞에 `.achv-co` 를 한 번 더 둔다. 위의 `.achv-co a`(0,1,1) 가
   `.achv-co__btn--primary`(0,1,0) 를 이겨 글자가 배경과 같은 빨강이 됐다 —
   버튼은 보이는데 글자만 사라진다. 버튼 규칙을 손댈 때 이 접두를 빼지 말 것. */
.achv-co__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.achv-co .achv-co__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 10px;
    font-family: 'font-B', sans-serif;
    font-size: 16px;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease;
}
.achv-co .achv-co__btn:hover { text-decoration: none; }
.achv-co .achv-co__btn--primary { background: var(--co-red); color: #fff; }
.achv-co .achv-co__btn--primary:hover { background: var(--co-red-dark); }
.achv-co .achv-co__btn--ghost { color: #fff; border: 1px solid rgba(255, 255, 255, .34); }
.achv-co .achv-co__btn--ghost:hover { border-color: rgba(255, 255, 255, .7); }
.achv-co .achv-co__btn--solid { background: var(--co-ink); color: #fff; }
.achv-co .achv-co__btn--solid:hover { background: #1c2942; }

/* --- 역할 카드(2절) ------------------------------------------ */
.achv-co__roles { display: grid; gap: 12px; margin-top: 24px; }
.achv-co__role {
    border: 1px solid var(--co-line);
    border-radius: 12px;
    padding: 18px 20px;
    background: var(--co-paper);
}
.achv-co__role-name {
    font-family: 'font-B', sans-serif;
    font-size: 15px;
    color: var(--co-red);
    margin: 0 0 4px;
}
.achv-co__role p { font-size: 15px; line-height: 1.7; margin: 0; color: var(--co-text); }

/* --- 메뉴 구성(3절) ------------------------------------------ */
.achv-co__menus { margin: 24px 0 0; }
.achv-co__menu { padding: 22px 0; border-top: 1px dashed var(--co-line); }
.achv-co__menu:first-child { border-top: 0; padding-top: 0; }
.achv-co__menu-name {
    font-family: 'font-B', sans-serif;
    font-size: 19px;
    letter-spacing: -.02em;
    color: var(--co-ink);
    margin: 0 0 10px;
}
.achv-co__menu-body { margin: 0; }

/* --- 목록 ---------------------------------------------------- */
.achv-co__list { list-style: none; margin: 0; padding: 0; max-width: var(--co-measure); }
.achv-co__list > li {
    position: relative;
    padding-left: 15px;
    margin-bottom: 7px;
    font-size: 15px;
    line-height: 1.7;
}
.achv-co__list > li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #b9c3d2;
}
.achv-co__list > li:last-child { margin-bottom: 0; }
.achv-co__list .achv-co__list { margin-top: 6px; }
.achv-co__list .achv-co__list > li::before { background: none; border: 1px solid #b9c3d2; }

/* --- 강조 패널(기록실·이용료 등) ----------------------------- */
.achv-co__panel {
    background: var(--co-field);
    border-left: 3px solid var(--co-red);
    border-radius: 0 12px 12px 0;
    padding: 22px 22px 22px 20px;
    margin-top: 24px;
}
.achv-co__panel + .achv-co__panel { margin-top: 12px; }
.achv-co__panel > p:not(.achv-co__panel-title) { max-width: var(--co-measure); }
.achv-co__panel-title {
    font-family: 'font-B', sans-serif;
    font-size: 17px;
    color: var(--co-ink);
    margin: 0 0 10px;
}

/* --- 철학(5절) ----------------------------------------------- */
.achv-co__creed { margin-top: 24px; }
.achv-co__creed-item { margin-bottom: 26px; max-width: var(--co-measure); }
.achv-co__creed-item:last-child { margin-bottom: 0; }
.achv-co__creed-lead {
    font-family: 'font-B', sans-serif;
    font-size: 19px;
    line-height: 1.5;
    letter-spacing: -.02em;
    color: var(--co-ink);
    margin: 0 0 8px;
}
.achv-co__slogan {
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px solid var(--co-line);
    font-family: 'font-B', sans-serif;
    font-size: 17px;
    color: var(--co-red);
    letter-spacing: -.02em;
}

/* --- 표 ------------------------------------------------------ */
.achv-co__table-wrap { margin-top: 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.achv-co__table {
    width: 100%;
    min-width: 340px;
    border-collapse: collapse;
    font-size: 15px;
}
.achv-co__table th,
.achv-co__table td {
    border-bottom: 1px solid var(--co-line);
    padding: 12px 10px;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
}
.achv-co__table thead th {
    font-family: 'font-B', sans-serif;
    font-size: 14px;
    color: var(--co-muted);
    border-bottom: 2px solid var(--co-ink);
    white-space: nowrap;
}
.achv-co__table tbody th { font-family: 'font-R', sans-serif; font-weight: normal; }
.achv-co__table td.achv-co__mark,
.achv-co__table th.achv-co__mark { text-align: center; width: 84px; }
.achv-co__mark--on { color: var(--co-red); font-family: 'font-B', sans-serif; }
.achv-co__table-note { margin-top: 10px; font-size: 14px; color: var(--co-muted); }

/* 좁은 화면에서는 표를 가로로 밀지 않고 행 단위로 쌓는다.
   본문 한가운데 가로 스크롤이 생기면 잘린 열을 못 보고 지나친다.
   항목 이름은 `data-label` 로 싣는다 — thead 를 감추므로 셀만으로는 뜻이 없다. */
@media (max-width: 639px) {
    .achv-co__table { min-width: 0; }
    .achv-co__table thead { display: none; }
    .achv-co__table,
    .achv-co__table tbody,
    .achv-co__table tbody tr,
    .achv-co__table tbody th { display: block; width: auto; }
    .achv-co__table tbody tr { padding: 14px 0; border-bottom: 1px solid var(--co-line); }
    .achv-co__table tbody tr:last-child { border-bottom: 0; }
    .achv-co__table tbody th {
        padding: 0 0 6px;
        border: 0;
        font-family: 'font-B', sans-serif;
        color: var(--co-ink);
    }
    .achv-co__table tbody td {
        display: inline-block;
        width: auto;
        padding: 0;
        margin-right: 16px;
        border: 0;
        font-size: 14px;
        text-align: left;
    }
    .achv-co__table tbody td:empty { display: none; }
    .achv-co__table tbody td::before { content: attr(data-label) ' '; color: var(--co-muted); }
    .achv-co__table td.achv-co__mark { width: auto; text-align: left; }
}

/* --- 절차(7절) — 진짜 순서라 번호를 쓴다 --------------------- */
.achv-co__steps { list-style: none; margin: 24px 0 0; padding: 0; counter-reset: costep; }
.achv-co__steps > li {
    max-width: calc(var(--co-measure) + 46px);
    position: relative;
    padding: 0 0 22px 46px;
    counter-increment: costep;
}
.achv-co__steps > li::before {
    content: counter(costep);
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--co-ink);
    color: #fff;
    font-family: 'font-B', sans-serif;
    font-size: 14px;
    line-height: 30px;
    text-align: center;
}
.achv-co__steps > li::after {     /* 단계를 잇는 세로선 */
    content: '';
    position: absolute;
    left: 14px;
    top: 34px;
    bottom: 4px;
    width: 1px;
    background: var(--co-line);
}
.achv-co__steps > li:last-child { padding-bottom: 0; }
.achv-co__steps > li:last-child::after { display: none; }
.achv-co__step-name { font-family: 'font-B', sans-serif; color: var(--co-ink); }

/* --- 이용료(8절) --------------------------------------------- */
.achv-co__price { display: grid; gap: 14px; margin-top: 24px; }
.achv-co__price-card {
    border: 1px solid var(--co-line);
    border-radius: 14px;
    padding: 24px 22px;
    background: var(--co-paper);
}
.achv-co__price-card--now { border: 2px solid var(--co-red); background: #fff8f8; }
.achv-co__price-when { font-size: 14px; color: var(--co-muted); margin: 0 0 6px; }
.achv-co__price-head {
    font-family: 'font-H', sans-serif;
    font-weight: 900;
    font-size: 26px;
    letter-spacing: -.03em;
    color: var(--co-ink);
    margin: 0 0 12px;
    line-height: 1.3;
}
.achv-co__price-card--now .achv-co__price-head { color: var(--co-red); }
.achv-co__price-fee { display: inline-block; font-size: 18px; letter-spacing: -.02em; }

/* --- 로드맵(11절) -------------------------------------------- */
.achv-co__road { margin: 24px 0 0; }
.achv-co__road-item { display: grid; gap: 4px; padding: 16px 0; border-top: 1px solid var(--co-line); }
.achv-co__road-item:first-child { border-top: 0; padding-top: 0; }
.achv-co__road-when { font-family: 'font-B', sans-serif; font-size: 14px; color: var(--co-red); }
.achv-co__road-what { font-size: 15px; line-height: 1.7; max-width: var(--co-measure); }

/* --- FAQ(12절) ----------------------------------------------- */
.achv-co__faq { margin-top: 24px; border-top: 1px solid var(--co-line); }
.achv-co__qa { border-bottom: 1px solid var(--co-line); }
.achv-co__qa > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 44px;
    padding: 14px 0;
    cursor: pointer;
    list-style: none;
    font-family: 'font-B', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--co-ink);
}
.achv-co__qa > summary::-webkit-details-marker { display: none; }
.achv-co__qa > summary::after {
    content: '';
    flex: none;
    width: 9px;
    height: 9px;
    border-right: 2px solid #94a3b8;
    border-bottom: 2px solid #94a3b8;
    transform: rotate(45deg) translateY(-3px);
    transition: transform .18s ease;
}
.achv-co__qa[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.achv-co__qa-body { max-width: var(--co-measure); padding: 0 0 18px; font-size: 15px; line-height: 1.75; color: var(--co-text); }

/* --- 문의(13절) ---------------------------------------------- */
.achv-co__contact { display: grid; gap: 10px; margin: 24px 0 0; }
.achv-co__contact div { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 15px; }
.achv-co .achv-co__contact dt { font-family: 'font-B', sans-serif; min-width: 94px; color: var(--co-muted); }
.achv-co__contact dd { margin: 0; }

/* --- 회사 정보(14절) ----------------------------------------- */
.achv-co__corp {
    margin-top: 0;
    background: var(--co-field);
    border-radius: 14px;
    padding: 24px 22px;
    font-size: 14px;
    line-height: 1.85;
    color: var(--co-muted);
}
.achv-co__corp dl { display: grid; gap: 2px; margin: 0; }
.achv-co__corp div { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.achv-co__corp dt { min-width: 130px; color: #7b8799; }
.achv-co__corp dd { margin: 0; color: var(--co-text); }

/* 앞 블록과 사이를 띄운다 */
.achv-co__mt { margin-top: 24px; }

/* --- 캡처 --------------------------------------------------- */
.achv-co__shots { display: grid; gap: 14px; margin-top: 24px; }
.achv-co__shot { margin: 0; }
.achv-co__shot img {
    width: 100%;
    height: auto;
    border: 1px solid var(--co-line);
    border-radius: 12px;
    display: block;
}
.achv-co__shot figcaption { margin-top: 8px; font-size: 13px; color: var(--co-muted); }

/* --- 데스크탑 ------------------------------------------------ */
@media (min-width: 720px) {
    .achv-co__sec { padding: 64px 0; }
    .achv-co__h2 { font-size: 30px; }
    .achv-co__hero { padding: 56px 48px; grid-template-columns: minmax(0, 1fr) 280px; gap: 44px; }
    .achv-co__hero-title { font-size: 44px; }
    .achv-co__hero-lede { font-size: 17px; }
    .achv-co__paper { justify-self: end; }
    .achv-co__roles { grid-template-columns: 1fr 1fr; gap: 14px; }
    .achv-co__price { grid-template-columns: 1fr 1fr; }
    .achv-co__shots { grid-template-columns: 1fr 1fr; }
}

/* 시스템 설정이 모션을 줄이라고 하면 전환을 끈다 */
@media (prefers-reduced-motion: reduce) {
    .achv-co *, .achv-co *::before, .achv-co *::after { transition: none !important; }
}
