/* 이 페이지의 구성·여백·이미지·반응형을 관리합니다.
   공통 폰트·색상·라인·라운드·탭 디자인: _03.css */
/* 화장실 솔루션 전용. 01-page1의 1400px 콘텐츠 폭, 타이포그래피, 섹션 간격을 기준으로 구성. */
.hks-restroom {
    box-sizing: border-box;
    padding: 150px 0 0;
    overflow-wrap: anywhere;
}
.hks-restroom *, .hks-restroom *::before, .hks-restroom *::after { box-sizing: border-box; }
.hks-restroom .hkb__wrap { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 40px); }
.hks-restroom .hkb__eyebrow { display: block; margin-bottom: 6px; color: var(--hkb-blue); font-size: var(--fs-caption); font-weight: var(--hkb-weight-bold); letter-spacing: .04em; text-transform: uppercase; }
.hks-restroom .hkb__title > p { margin: 0 0 14px; color: var(--hkb-blue); font-size: var(--fs-lead); font-weight: var(--hkb-weight-heavy); text-transform: uppercase; }
.hks-restroom .hkb__title h2 { font-size: var(--fs-display); line-height: var(--lh-heading); letter-spacing: -.06em; }
.hks-restroom .hk-product-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 40px 0; }
.hks-restroom .hk-product-tabs a { display: flex; flex-wrap: wrap; align-content: center; justify-content: center; padding: 18px 8px;  }
.hks-restroom .hk-product-tabs .br-mobile { flex-basis: 100%; }
.hks-restroom .hkb__split { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 60px; align-items: start; }
.hks-restroom .hkb__split-body { min-width: 0; padding-bottom: clamp(40px, 6vw, 80px);}
.hks-restroom .hkb__split-head :is(h2, h3),
.hks-restroom .hks-section-heading :is(h2, h3),
.hks-restroom .hks-local-heading h2 { margin: 0; font-size: var(--fs-heading-lg); font-weight: var(--hkb-weight-bold); line-height: var(--lh-heading); letter-spacing: -.02em; }
.hks-section { padding: clamp(52px, 6vw, 88px) 0; }

.hks-section-heading { margin-bottom: 30px; }
.hks-media--diagram > img { border: 1px solid var(--hkb-line); }
.hks-police-process {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
    margin: 28px 0 12px;
    padding: 0;
    list-style: none;
}
.hks-police-process__step {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 28px;
    list-style: none;
    /*border: 1px solid var(--hkb-line);*/
    border-radius: var(--hkb-radius-md);
    background: var(--hkb-blue);
    border-color: var(--hkb-blue);
    color: var(--hkb-white);
}
.hks-police-process__number {
    display: block;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    font-family: var(--hkb-font-number);
    font-size: var(--fs-lead);
    font-weight: var(--hkb-weight-bold);
    line-height: var(--lh-heading);
    color: rgba(255, 255, 255, 0.5);
}
.hks-police-process__step h4 {
    margin: 0 0 8px;
    font-size: var(--fs-heading-sm);
    font-weight: var(--hkb-weight-bold);
    line-height: var(--lh-heading);
    color: inherit;
}
.hks-police-process__step h4>strong {
    color: var(--hkb-highlight);
    font-weight: var(--hkb-weight-bold);
}

.hks-police-process__step p { padding: 6px 0; font-size: var(--fs-body); line-height: var(--lh-body); color: inherit; }
.hks-police-process__step--highlight { background: var(--hkb-blue-dark); /*border-color: var(--hkb-blue-dark);*/ color: var(--hkb-white); }
.hks-police-process__step--highlight .hks-police-process__number { color: rgba(255, 255, 255, 0.5); }
.hks-police-process__step--dark { background: var(--hkb-blue-deep); /*border-color: var(--hkb-blue-deep);*/ }
.hks-police-process__step:nth-child(2) .hks-police-process__arrow { color: var(--hkb-blue-deep); }
.hks-police-process__arrow {
    position: absolute;
    top: 50%;
    right: -37px;
    width: 36px;
    text-align: center;
    transform: translateY(-50%);
    color: var(--hkb-blue);
    font-size: var(--fs-heading-md);
    font-weight: var(--hkb-weight-bold);
    line-height: 1;
}
@media (max-width: 1024px) {
    .hks-police-process__step { padding: 20px; }}
@media (max-width: 760px) {
    .hks-police-process { grid-template-columns: minmax(0, 1fr); margin-top: 24px; }
    .hks-police-process__arrow { top: auto; right: auto; bottom: -37px; left: 50%; height: 36px; display: grid; place-items: center; transform: translateX(-50%) rotate(90deg); }}
.hks-section-heading :is(h2, h3) > span { font-size: var(--fs-heading-md); color: var(--hkb-text-muted); }

.hks-content-divider { height: 0; margin: 0 0 clamp(40px, 6vw, 80px); border: 0; border-top: 1px solid var(--hkb-line-strong); }

/* 교체할 화장실 사진은 이 배경에 추가. 기본 상태에서도 문구를 읽을 수 있는 배색. */
.hks-intro { 
    padding: clamp(80px, 6vw, 160px) 0;
    background-color: var(--hkb-bg-intro);
    background-image: none;
    background-position: center;
    background-size: cover;
    background: url(/image/main/security/02-bg-4.jpg);
    background-position: center center;
    background-size: cover;
}
.hks-intro-heading { margin-bottom: 32px; }
.hks-intro-heading h2 { margin: 0; font-size: var(--fs-display); line-height: var(--lh-heading); color: var(--hkb-white); }
.hks-intro-grid { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 24px; }
.hks-intro-card { padding: 0; border: 2px solid var(--hkb-blue); border-radius: var(--hkb-radius-lg); background: var(--hkb-surface-overlay); overflow: hidden; }
.hks-intro-card__header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 18px clamp(24px, 3vw, 40px);
    background: var(--hkb-blue);
}
.hks-intro-card__body { padding: 30px clamp(24px, 3vw, 40px) 40px; }
.hks-intro-card__header h3 { color: var(--hkb-white); font-size: var(--fs-heading-md); font-weight: var(--hkb-weight-bold); margin: 0; }
.hks-intro-card p { margin: 0; }
/* 사진·아이콘 자리: div를 img로 교체하면 동일 영역에 표시 */
.hks-media { margin: 0; padding: 16px; border: 1px solid var(--hkb-line); border-radius: var(--hkb-radius-lg); background: var(--hkb-surface-alt); min-width: 0; }
.hks-media img { display: block; width: 100%; height: auto; border-radius: var(--hkb-radius-md); }
.hks-icon-slot { 
    width: 100px;
    height: 100px;
    margin-bottom: 10px;
}
.hks-icon-slot img { width: 100%; height: 100%; object-fit: contain; }
.hks-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.hks-feature { 
    padding: 28px 24px;
    border: 1px solid var(--hkb-line);
    border-radius: var(--hkb-radius-lg);
    background: var(--hkb-white);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-content: center;
    align-items: center;
}
.hks-feature :is(h3, h4) { color: var(--hkb-heading); margin: 0 0 18px; font-size: var(--fs-heading-sm); line-height: var(--lh-heading); }
.hks-feature p { color: var(--hkb-text-muted); font-size: var(--fs-body); margin: 0; }
.hks-feature p + p { margin-top: 14px; }
.hks-comparison-row :is(h3, h4) { font-size: var(--fs-heading-sm); line-height: var(--lh-heading); margin: 0 0 18px; }
.hks-restroom ul { margin: 0; padding-left: 22px; }
.hks-restroom ul li { list-style: disc; margin: 8px 0; }
.hks-restroom li::marker { color: var(--hkb-blue); }
/* 표 자체의 형태를 유지하며 좁은 화면에서는 표 영역만 스크롤 */
.hks-table-stack { display: grid; gap: 28px; }
/* 주요 제품 → 추가선택품목: 두 유형에 동일한 섹션 간격을 적용 */
.hks-restroom .hks-products-block { --hks-products-gap: clamp(40px, 6vw, 80px); }
.hks-restroom .hks-products-block > .hkb__split-body { padding-bottom: 0; }
.hks-products-block + .hks-products-block {
    margin-top: calc(var(--hks-products-gap) / 1);
    padding-top: calc(var(--hks-products-gap) / 1);
    border-top: 1px solid var(--hkb-line-strong);
}
.hks-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--hkb-line-table); border-radius: var(--hkb-radius-md); background: var(--hkb-white); }
.hks-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: var(--fs-small); line-height: var(--lh-caption); text-align: center; }
.hks-table-caption { padding: 18px 18px; background: var(--hkb-blue-deep); color: var(--hkb-white); font-weight: var(--hkb-weight-semibold); font-size: var(--fs-lead); text-align: center; }
.hks-table th, .hks-table td { padding: 13px 12px; border-right: 1px solid var(--hkb-line-table); border-bottom: 1px solid var(--hkb-line-table); vertical-align: middle; }
.hks-table thead th { background: var(--hkb-text-muted); color: var(--hkb-white); border-right-color: var(--hkb-line-table-head); border-bottom-color: var(--hkb-line-table-head); font-weight: var(--hkb-weight-semibold); letter-spacing: normal;}
.hks-table tbody th { font-weight: var(--hkb-weight-medium); white-space: nowrap; }
/* rowspan이 있는 행의 마지막 셀은 수량일 수 있으므로 실제 단가 열만 제거 */
.hks-table thead tr > :last-child,
.hks-table tbody .hks-price { border-right: 0; }
.hks-table tbody tr:last-child > *,
.hks-table tbody .hks-table-cell--bottom { border-bottom: 0; }
.hks-price { white-space: nowrap; font-variant-numeric: tabular-nums; }
.hks-law-copy { min-width: 0; font-size: var(--fs-body); color: var(--hkb-text-law); line-height: var(--lh-body); }
.hks-law-copy p { margin: 0 0 12px; }
.hks-law-copy p:last-child { margin-bottom: 0; }
.hks-law-copy ol { margin: 16px 0 0; padding-left: 26px; }
.hks-law-copy ol li { list-style: decimal; padding-left: 3px; margin: 4px 0; }
.hks-law-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; padding: 32px 0; border-bottom: 1px solid var(--hkb-line); }
.hks-law-row h4 { font-size: var(--fs-heading-sm); margin: 0 0 10px; }
.hks-law-row > div:first-child > p { color: var(--hkb-text-note); font-size: var(--fs-caption); }

.hks-table-scroll:focus-visible { outline: 3px solid var(--hkb-focus); outline-offset: 4px; }
@media (max-width: 1024px) {

    .hks-restroom { padding-top: 100px; }
    .hks-restroom .hkb__wrap { padding-inline: 24px; }
    .hks-restroom .hk-product-tabs { gap: 5px; margin: 24px 0; }
    .hks-restroom .hk-product-tabs a { font-size: var(--fs-small); padding: 12px 6px; }
    .hks-restroom .hkb__split { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .hks-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hks-law-row { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }}
@media (max-width: 760px) {

    .hks-restroom { padding-top: 60px; }
    .hks-restroom .hkb__wrap { padding-inline: 20px; }
    .hks-section { padding: 60px 0; }
.hks-intro-grid,
.hks-feature-grid,
.hks-law-row { grid-template-columns: minmax(0, 1fr); }
    .hks-intro-grid, .hks-feature-grid { gap: 16px; }
.hks-feature { padding: 24px; }
    .hks-intro-card__header { gap: 16px; padding: 18px 24px; }
    .hks-intro-card__body { padding: 24px; }
    .hks-media { padding: 10px; }
    .hks-law-row { gap: 16px; padding: 24px 0; }
    .hks-law-copy { font-size: var(--fs-body); }}
@media (max-width: 420px) {
    .hks-restroom .hk-product-tabs { gap: 4px; }
    .hks-restroom .hk-product-tabs a { font-size: var(--fs-small); }}
.hks-system-group { scroll-margin-top: 100px; background: var(--hkb-bg-group); }
.hks-system-group--local { background: var(--hkb-white); }
.hks-system-group .hks-section { background: transparent; }
.hks-system-group .hks-section + .hks-section { padding-top: 0; }
.hks-media--gallery img { width: 100%; height: auto; }
:is(#police-system, #local-system) .hks-group-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 24px;
}
:is(#police-system, #local-system) .hks-group-heading::after {
    content: "";
    grid-column: 1 / -1;
    height: 4px;
    background: var(--hkb-blue);
}
:is(#police-system, #local-system) .hks-group-number {
    display: grid;
    place-items: center;
    width: 104px;
    height: 104px;
    border-radius: var(--hkb-radius-xl);
    background: var(--hkb-blue);
    color: var(--hkb-white);
    font-size: var(--fs-heading-lg);
}
:is(#police-system, #local-system) .hks-group-heading h2 {
    margin-bottom: 8px;
    font-size: var(--fs-heading-lg);
}
@media (max-width: 760px) {
:is(#police-system, #local-system) .hks-group-heading { gap: 20px 16px; }
:is(#police-system, #local-system) .hks-group-number {
        width: 68px;
        height: 68px;
        border-radius: var(--hkb-radius-badge-mobile);
        font-size: var(--fs-heading-lg);
    }
:is(#police-system, #local-system) .hks-group-heading h2 { font-size: var(--fs-heading-lg); }}
.hks-mandatory { background: var(--hkb-bg-neutral); }
.hks-gallery-section { background: var(--hkb-bg-group); }
.hks-mandatory-part { padding: 32px; border: 1px solid var(--hkb-line); border-radius: var(--hkb-radius-lg); background: var(--hkb-white); }
.hks-mandatory .hks-section-heading h2 { color: var(--hkb-heading); font-size: var(--fs-heading-lg); }
.hks-mandatory .hks-law-row h4 { color: var(--hkb-heading); font-size: var(--fs-heading-sm); }
.hks-mandatory .hks-section-heading h3 { color: var(--hkb-text); font-size: var(--fs-heading-md); }
.hks-mandatory-part + .hks-mandatory-part { margin-top: 32px; }
/* 기대효과: 기존 설명 행과 강조 배너를 재사용 */
.hks-effects .hks-mandatory-part { counter-reset: effect-number; }
.hks-effects .hks-law-row { counter-increment: effect-number; }
.hks-effects .hks-law-row h4 {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
}
.hks-effects .hks-law-row h4::before {
    content: counter(effect-number);
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--hkb-heading);
    color: var(--hkb-white);
    font-family: var(--hkb-font-number);
    font-size: var(--fs-heading-sm);
    font-weight: var(--hkb-weight-bold);
    line-height: 1;
}
.hks-effects .hks-law-row:first-child { padding-top: 0; }
.hks-effects .hks-law-row:last-child { padding-bottom: 0; border-bottom: 0; }
.hks-effects .hks-law-copy strong { color: var(--hkb-heading); }
.hks-mandatory > .hkb__wrap > .hks-section-heading h2 { font-size: var(--fs-heading-lg); }

.hks-icon-slot span { text-align: center; line-height: var(--lh-caption); }
@media (max-width: 760px) {
    .hks-mandatory-part { padding: 20px; }
    .hks-mandatory-part + .hks-mandatory-part { margin-top: 24px; }}

/* 자체연계형 주요 제품: 01-page2.css의 원본 규칙을 복사.
   ID는 이 영역에만 적용하기 위한 범위이며 디자인 값은 원본과 동일합니다. */
#local-main-products .hkb__eyebrow {
    display: block;
    margin-bottom: 4px;
    color: var(--hkb-blue);
    font-size: var(--fs-caption);
    font-weight: var(--hkb-weight-bold);
    letter-spacing: .04em;
    text-transform: uppercase;
}
#local-main-products.hkb__split {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 60px;
    align-items: start;
    /*margin-bottom: clamp(40px, 6vw, 80px);*/
}
#local-main-products .hkb__split-head { position: static; }
#local-main-products .hkb__split-head h2 {
    margin: 0;
    font-size: var(--fs-heading-lg);
    font-weight: var(--hkb-weight-bold);
    letter-spacing: -.01em;
    line-height: var(--lh-heading);
    color: var(--hkb-text);
}
#local-main-products .hkb__split-head p {
    margin: 14px 0 0;
    color: var(--hkb-text-muted);
    font-size: var(--fs-body);
}
#local-main-products .hkb__split-body { min-width: 0; }
#local-main-products .hkb__product {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 40px;
    align-items: start;
    padding: 40px 0;
    border-bottom: 1px solid var(--hkb-line);
    text-align: left;
    align-content: start;
}
#local-main-products .hkb__product:last-child { border-bottom: none; padding-bottom: 0; }
#local-main-products .hkb__product:first-child { padding-top: 0; }
#local-main-products .hkb__figure--product {
    aspect-ratio: 4/5;
    border-radius: var(--hkb-radius-md);
    background: var(--hkb-surface-alt);
    border: 1px solid var(--hkb-line);
    display: flex; align-items: center; justify-content: center;
    padding: 16px; margin: 0;
}
#local-main-products .hkb__figure--product img { 
    width: 100%; 
    height: 100%; 
    object-fit: contain; 
}
#local-main-products .hkb__product-text h3 { 
    font-size: var(--fs-heading-sm);
    font-weight: var(--hkb-weight-bold);
    color: var(--hkb-blue);
}
#local-main-products .hkb__product-text ul { margin: 20px 0 0; padding-left: 20px; color: var(--hkb-text-muted); }
#local-main-products .hkb__product-text li { margin: 4px 0; list-style: disc; }
#local-main-products .hkb__product-text li::marker { color: var(--hkb-blue) }
@media (max-width: 1024px) {
#local-main-products.hkb__split { grid-template-columns: 1fr; gap: 20px; }
#local-main-products .hkb__split-head { position: static; margin-bottom: 4px; }
#local-main-products .hkb__product { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }}
@media (max-width: 760px) {
#local-main-products .hkb__product { grid-template-columns: 1fr; }
#local-main-products .hkb__figure--product { aspect-ratio: 5 / 3; }
#local-main-products .hkb__product-text ul {
        margin: 8px 0 0;
    }}
#local-main-products .hkb__product-text { min-width: 0; overflow-wrap: anywhere; }

/* 화장실 페이지의 공통 본문 하단 여백이 제품 영역에 중복되지 않도록 처리 */
#local-main-products .hkb__split-body { padding-bottom: 0; }

/* 제품 소개는 카드 너비에 맞추고 사양 표만 가로 스크롤한다. */
.hks-product-card { min-width: 0; border: 1px solid var(--hkb-line-table); border-radius: var(--hkb-radius-md); background: var(--hkb-white); }
.hks-product-card > .hks-table-caption { border-radius: var(--hkb-radius-md) var(--hkb-radius-md) 0 0; overflow-wrap: anywhere; }
.hks-product-card > .hks-table-scroll { border: 0; border-radius: 0 0 var(--hkb-radius-md) var(--hkb-radius-md); }
.hks-table-caption img { max-width: 100%; height: auto; }
