/* 검색, 조건, 요금과 문서를 한 흐름에 배치한다. */
.catalog-page { --catalog-ink:#17203a; --catalog-blue:#344cdb; --catalog-line:#dce2ed; color:var(--catalog-ink); max-width:1320px; margin:154px auto 64px; padding:0 24px; }
.catalog-page *, .catalog-page *::before, .catalog-page *::after { box-sizing:border-box; }
.catalog-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.catalog-breadcrumb { margin:0 0 16px; color:#59667b; font-size:13px; }
.catalog-heading h1 { font-size:clamp(26px,3.1vw,42px); line-height:1.3; letter-spacing:-.045em; margin:0 0 12px; font-weight:800; }
.catalog-heading p:not(.catalog-breadcrumb) { color:#536077; line-height:1.7; margin:0; font-size:15px; }
.catalog-mobile-break { display:none; }
.catalog-start { flex-shrink:0; display:flex; flex-direction:column; gap:6px; border-left:2px solid var(--catalog-blue); padding:8px 0 8px 18px; font-size:13px; color:#536077; }
.catalog-start strong { color:var(--catalog-blue); font-size:16px; }
.catalog-search { padding:24px; background:#f1f4ff; border:1px solid #dce3ff; border-radius:16px; }
.catalog-search > label { display:block; font-size:15px; font-weight:700; margin-bottom:10px; }
.catalog-search-field { display:flex; gap:8px; }
.catalog-search-field input { min-width:0; flex:1; height:52px; padding:0 16px; border:1px solid #aebcdb; border-radius:8px; background:white; font-size:16px; }
.catalog-search-field button { flex-shrink:0; min-height:44px; padding:0 24px; background:var(--catalog-blue); color:#fff; border-radius:8px; font-weight:700; }
.catalog-suggestions { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; margin-top:8px; font-size:13px; }
.catalog-suggestions > span { color:#536077; }
.catalog-suggestions button { min-height:44px; padding:4px 8px; color:#34437c; text-decoration:underline; text-underline-offset:4px; }
.catalog-page .catalog-layout.sub-body { display:grid; grid-template-columns:208px minmax(0,1fr); gap:28px; padding:28px 0 0; align-items:start; }
.catalog-page .catalog-layout > .right { width:auto; min-width:0; }
.catalog-filter details { border:1px solid var(--catalog-line); border-radius:12px; background:#fff; }
.catalog-filter summary { min-height:48px; padding:14px; cursor:pointer; font-weight:700; font-size:14px; }
.catalog-filter summary span { float:right; color:#536077; font-size:12px; font-weight:400; }
.catalog-category-options { padding:0 10px 10px; }
.catalog-category-options label { display:flex; align-items:center; gap:8px; min-height:44px; font-size:13px; padding:4px; cursor:pointer; }
.catalog-category-options label:hover { background:#f1f4ff; border-radius:6px; }
.catalog-category-options input { width:17px; height:17px; accent-color:var(--catalog-blue); flex-shrink:0; }
.catalog-category-options small { margin-left:auto; color:#647089; }
.catalog-results { min-width:0; }
.catalog-result-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:14px; min-height:44px; font-size:14px; }
.catalog-result-toolbar p { margin:0; }
.catalog-result-toolbar strong { font-weight:800; }
#catalog-query-summary { color:#59667b; overflow-wrap:anywhere; }
.catalog-result-controls { display:flex; align-items:center; gap:10px; }
.catalog-result-controls button { min-height:44px; color:#45516b; text-decoration:underline; text-underline-offset:3px; }
.catalog-result-controls select { height:44px; border:1px solid var(--catalog-line); padding:0 28px 0 12px; border-radius:7px; background:#fff; font-size:13px; }
.catalog-page .catalog-layout .left_wide .product-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; padding:0; width:auto; }
.catalog-page .catalog-layout .product-list .product-item { width:auto; min-width:0; cursor:default; }
.catalog-page.all_products .catalog-layout .left_wide .product-list .product-item .round-box { display:flex; flex-direction:column; align-items:stretch; min-width:0; width:100%; height:100%; padding:20px; border:1px solid var(--catalog-line); border-radius:12px; box-shadow:none; background:#fff; }
.catalog-page.all_products .catalog-layout .left_wide .product-list .product-item .round-box:hover { border-color:#9aade4; background:#fff; }
.catalog-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; min-height:30px; color:#546079; font-size:12px; }
.catalog-page .catalog-card-top img { position:static; width:30px; height:30px; object-fit:contain; margin:0; }
.catalog-page h2 { margin:0; font-size:17px; font-weight:750; line-height:1.5; letter-spacing:-.025em; overflow-wrap:anywhere; }
.catalog-page h2 a { color:var(--catalog-ink); }
.catalog-page .catalog-layout .round-box .catalog-description { display:block; height:auto; max-height:none; -webkit-line-clamp:unset; margin:10px 0 20px; font-size:13px; color:#526078; line-height:1.7; overflow:visible; word-break:keep-all; overflow-wrap:anywhere; }
.catalog-price { margin-top:auto; padding-top:14px; border-top:1px solid #e8ecf3; display:flex; flex-direction:column; gap:5px; overflow-wrap:anywhere; }
.catalog-price strong { font-size:15px; font-weight:750; color:#263fae; line-height:1.5; }
.catalog-price span { font-size:12px; color:#59667b; line-height:1.5; }
.catalog-card-actions { display:flex; align-items:center; gap:4px; flex-wrap:wrap; margin-top:12px; }
.catalog-card-actions a,.catalog-card-actions button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:6px 10px; font-size:12px; border-radius:6px; color:#283eac; background:#f0f3ff; }
.catalog-card-actions button[data-catalog-detail] { color:#44516a; background:#f5f7fa; }
.catalog-card-actions .ic-bookmark { width:44px; margin-left:auto; }
.catalog-empty { padding:40px 20px; text-align:center; background:#f7f9fc; border:1px dashed #b9c4d6; border-radius:12px; }
.catalog-empty p { margin:12px 0; font-size:14px; line-height:1.7; color:#536077; }
.catalog-empty button { min-height:44px; padding:8px 18px; border-radius:8px; background:var(--catalog-blue); color:#fff; }
.catalog-page :is(button,a,input,select,summary):focus-visible { outline:3px solid #344cdb; outline-offset:3px; }
@media(max-width:1100px) { .catalog-page .catalog-layout .left_wide .product-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .catalog-page { margin-top:116px; padding:0 16px; margin-bottom:36px; }
 .catalog-heading { display:block; margin-bottom:18px; }
 .catalog-heading h1 { font-size:28px; }
 .catalog-heading p:not(.catalog-breadcrumb) { font-size:14px; }
 .catalog-start { flex-direction:row; margin-top:14px; align-items:center; min-height:44px; font-size:12px; padding:6px 12px; }
 .catalog-start strong { font-size:14px; }
 .catalog-search { padding:16px; border-radius:12px; }
 .catalog-search-field button { padding:0 14px; font-size:13px; }
 .catalog-search-field input { padding:0 12px; }
 .catalog-suggestions { gap:0 3px; font-size:12px; }
 .catalog-suggestions > span { display:none; }
 .catalog-page .catalog-layout.sub-body { grid-template-columns:minmax(0,1fr); gap:16px; padding-top:16px; }
 .catalog-category-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-result-toolbar { margin-bottom:10px; }
 .catalog-page.all_products .catalog-layout .left_wide .product-list .product-item .round-box { padding:16px; }
}
@media(max-width:560px) {
 .catalog-mobile-break { display:block; }
 .catalog-page .catalog-layout .left_wide .product-list { grid-template-columns:minmax(0,1fr); gap:10px; }
 .catalog-card-top { margin-bottom:8px; }
 .catalog-page .catalog-layout .round-box .catalog-description { margin:8px 0 12px; }
 .catalog-price { padding-top:10px; }
}
