/*
 Theme Name:   GeneratePress Child
 Template:     generatepress
*/

/* =============================================================
   JetEngine 동적 리스팅 CSS — 실제 HTML 구조 기반 v2
   
   실제 출력 구조:
   jet-listing-grid__item
   ├── wp-block-group.gs-card__body
   │   └── wp-block-group__inner-container
   │       ├── jet-listing-dynamic-image (Dynamic Image)
   │       ├── wp-block-columns.gs-card__header (열)
   │       │   ├── wp-block-column (업체명 + 대표명)
   │       │   └── wp-block-column (평점)
   │       ├── jet-listing-dynamic-terms (지역)
   │       ├── jet-listing-dynamic-terms (장비유형)
   │       └── jet-listing-dynamic-field (설명)
   ├── wp-block-group.gs-card__actions
   │   └── wp-block-group__inner-container
   │       ├── jet-listing-dynamic-link (견적 요청)
   │       └── jet-listing-dynamic-link (상세보기)
   └── style.listing-css-33
   ============================================================= */


/* =============================================
   1. LISTING GRID 컨테이너
   ============================================= */
.jet-listing-grid__items {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2rem !important;
    width: 100% !important;
}

@media (max-width: 767px) {
    .jet-listing-grid__items {
        grid-template-columns: 1fr !important;
    }
}

@media (min-width: 1200px) {
    .jet-listing-grid__items {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}


/* =============================================
   2. 카드 아이템 (jet-listing-grid__item)
   ============================================= */
.jet-listing-grid__item {
    background: #ffffff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    border: 1px solid rgba(196, 198, 207, 0.15);
    transition: box-shadow 0.3s, transform 0.3s;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

.jet-listing-grid__item:hover {
    box-shadow: 0 20px 40px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}


/* =============================================
   3. 카드 바디 (gs-card__body 그룹)
   ============================================= */
.jet-listing-grid__item .gs-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.jet-listing-grid__item .gs-card__body > .wp-block-group__inner-container {
    display: flex !important;
    flex-direction: column !important;
    flex: 1;
    padding: 0 !important;
    max-width: 100% !important;
}


/* =============================================
   4. 썸네일 이미지
   ============================================= */
.jet-listing-grid__item .jet-listing-dynamic-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.jet-listing-grid__item .jet-listing-dynamic-image img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    display: block;
}


/* =============================================
   5. 헤더 영역 (Columns — 업체명 + 평점)
   ============================================= */
.jet-listing-grid__item .gs-card__header,
.jet-listing-grid__item .gs-card__body .wp-block-columns {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.75rem !important;
    align-items: flex-start;
    margin: 0 !important;
    padding: 1.25rem 1.5rem 0 1.5rem !important;
}

/* 왼쪽 Column — 업체명 + 대표명 */
.jet-listing-grid__item .gs-card__header > .wp-block-column:first-child,
.jet-listing-grid__item .gs-card__body .wp-block-columns > .wp-block-column:first-child {
    flex: 1 !important;
    flex-basis: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* 오른쪽 Column — 평점 */
.jet-listing-grid__item .gs-card__header > .wp-block-column:last-child,
.jet-listing-grid__item .gs-card__body .wp-block-columns > .wp-block-column:last-child {
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: right;
}

/* Column 내부 레이아웃 제한 해제 */
.jet-listing-grid__item .wp-block-column > * {
    max-width: 100% !important;
}


/* =============================================
   6. 업체명
   ============================================= */
.jet-listing-grid__item .gs-card__name,
.jet-listing-grid__item .gs-card__name .jet-listing-dynamic-field__content {
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: #191c1e !important;
    line-height: 1.4 !important;
    writing-mode: horizontal-tb !important;
}

/* JetEngine 래퍼 인라인 처리 */
.jet-listing-grid__item .gs-card__name .jet-listing-dynamic-field {
    display: block !important;
}


/* =============================================
   7. 대표명
   ============================================= */
.jet-listing-grid__item .gs-card__rep,
.jet-listing-grid__item .gs-card__rep .jet-listing-dynamic-field__content {
    font-size: 0.875rem !important;
    color: #43474e !important;
    margin-top: 0.25rem;
}

.jet-listing-grid__item .gs-card__rep .jet-listing-dynamic-field {
    display: block !important;
}


/* =============================================
   8. 평점
   ============================================= */
.jet-listing-grid__item .gs-card__rating .jet-listing-dynamic-field__content {
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: #fc8f34 !important;
}

.jet-listing-grid__item .gs-card__rating .jet-listing-dynamic-field__content::before {
    content: "★ ";
    color: #fc8f34;
}


/* =============================================
   9. 지역 태그 (Dynamic Terms)
   ============================================= */
.jet-listing-grid__item .gs-card__location {
    padding: 0.5rem 1.5rem !important;
}

.jet-listing-grid__item .gs-card__location a,
.jet-listing-grid__item .gs-card__location .jet-listing-dynamic-terms__link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1a365d !important;
    background: rgba(26, 54, 93, 0.08);
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    text-decoration: none !important;
    margin-right: 0.375rem;
}

.jet-listing-grid__item .gs-card__location a::before {
    content: "📍";
    font-size: 0.75rem;
}


/* =============================================
   10. 장비유형 태그 (Dynamic Terms)
   ============================================= */
.jet-listing-grid__item .gs-card__tags {
    padding: 0.25rem 1.5rem 0.5rem !important;
}

.jet-listing-grid__item .gs-card__tags a,
.jet-listing-grid__item .gs-card__tags .jet-listing-dynamic-terms__link {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #43474e !important;
    background: #f2f4f6;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    text-decoration: none !important;
    margin-right: 0.25rem;
    transition: background 0.2s;
}

.jet-listing-grid__item .gs-card__tags a:hover {
    background: #edeef0;
}


/* =============================================
   11. 설명 (발췌문)
   ============================================= */
.jet-listing-grid__item .gs-card__desc {
    padding: 0.5rem 1.5rem 1rem !important;
}

.jet-listing-grid__item .gs-card__desc .jet-listing-dynamic-field__content {
    font-size: 0.875rem;
    line-height: 1.65;
    color: #43474e;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* =============================================
   12. 버튼 영역 (gs-card__actions 그룹)
   ============================================= */
.jet-listing-grid__item .gs-card__actions {
    margin-top: auto;
    border-top: 1px solid rgba(116, 119, 127, 0.12);
}

.jet-listing-grid__item .gs-card__actions > .wp-block-group__inner-container {
    display: flex !important;
    padding: 0 !important;
    max-width: 100% !important;
}

/* 견적 요청 버튼 */
.jet-listing-grid__item .gs-card__actions .gs-btn--quote,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:first-child {
    flex: 1;
}

.jet-listing-grid__item .gs-card__actions .gs-btn--quote a,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:first-child a {
    display: block;
    padding: 0.875rem 1rem;
    background: #944a00;
    color: #ffffff !important;
    font-weight: 700;
    font-size: 0.9375rem;
    text-align: center;
    text-decoration: none !important;
    transition: background 0.2s;
}

.jet-listing-grid__item .gs-card__actions .gs-btn--quote a:hover,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:first-child a:hover {
    background: #fc8f34;
}

/* 상세보기 버튼 */
.jet-listing-grid__item .gs-card__actions .gs-btn--detail,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:last-child {
    flex: 0 0 auto;
    border-left: 1px solid rgba(116, 119, 127, 0.12);
}

.jet-listing-grid__item .gs-card__actions .gs-btn--detail a,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:last-child a {
    display: block;
    padding: 0.875rem 1.5rem;
    color: #43474e !important;
    font-weight: 600;
    font-size: 0.9375rem;
    text-align: center;
    text-decoration: none !important;
    transition: background 0.2s;
}

.jet-listing-grid__item .gs-card__actions .gs-btn--detail a:hover,
.jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:last-child a:hover {
    background: #f2f4f6;
}


/* =============================================
   13. 구텐베르크 블록 레이아웃 전역 오버라이드
   ============================================= */

/* 카드 내부 모든 constrained 레이아웃 해제 */
.jet-listing-grid__item .is-layout-constrained > * {
    max-width: 100% !important;
}

.jet-listing-grid__item .wp-block-group__inner-container.is-layout-constrained {
    max-width: 100% !important;
}

/* 카드 내부 요소 가로 쓰기 보장 */
.jet-listing-grid__item * {
    writing-mode: horizontal-tb !important;
}

/* Listing CSS에서 gs-card가 적용되는 선택자 */
.jet-listing-grid__item[class*="listing-css"] {
    background: #ffffff;
    border-radius: 1rem;
    overflow: hidden;
}


/* =============================================
   14. 필터 바 보정
   ============================================= */
.gs-filter-bar > .wp-block-group__inner-container {
    display: flex !important;
    align-items: flex-end;
    gap: 1.5rem;
    flex-wrap: wrap;
    max-width: 100% !important;
    padding: 0 !important;
}

/* 필터 각 항목에 flex 배분 */
.gs-filter-bar .jet-smart-filters-select,
.gs-filter-bar .jet-smart-filters-checkboxes-list,
.gs-filter-bar .jet-smart-filters-sorting,
.gs-filter-bar > .wp-block-group__inner-container > * {
    flex: 1;
    min-width: 150px;
}


/* =============================================
   15. 페이지네이션
   ============================================= */
.jet-smart-filters-pagination .jet-filters-pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}

.jet-smart-filters-pagination .jet-filters-pagination__item {
    min-width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: #43474e;
    background: #ffffff;
    border: 1px solid rgba(116, 119, 127, 0.2);
    text-decoration: none;
    transition: all 0.2s;
}

.jet-smart-filters-pagination .jet-filters-pagination__item:hover {
    border-color: #002045;
    color: #002045;
}

.jet-smart-filters-pagination .jet-filters-pagination__current {
    background: #002045;
    color: #ffffff !important;
    border-color: #002045;
}


/* =============================================
   16. 리스팅 반응형
   ============================================= */
@media (max-width: 767px) {
    .gs-filter-bar > .wp-block-group__inner-container {
        flex-direction: column;
        align-items: stretch;
    }

    .jet-listing-grid__item .gs-card__header,
    .jet-listing-grid__item .gs-card__body .wp-block-columns {
        padding: 1rem 1rem 0 1rem !important;
    }

    .jet-listing-grid__item .gs-card__location,
    .jet-listing-grid__item .gs-card__tags,
    .jet-listing-grid__item .gs-card__desc {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .jet-listing-grid__item .gs-card__actions > .wp-block-group__inner-container {
        flex-direction: column;
    }

    .jet-listing-grid__item .gs-card__actions .jet-listing-dynamic-link:last-child {
        border-left: none;
        border-top: 1px solid rgba(116, 119, 127, 0.12);
    }
}


/* =============================================
   GeneratePress 콘텐츠 영역 폭 강제 확장
   ============================================= */

/* entry-content 내부 블록 폭 제한 해제 */
.page .entry-content,
.page .entry-content.is-layout-constrained,
.page .entry-content > * {
    max-width: 100% !important;
}

/* Listing Grid 전체 래퍼 */
.jet-listing-grid {
    width: 100% !important;
    max-width: 100% !important;
}

.jet-listing-grid__items {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2rem !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* 개별 아이템 — 폭 강제 */
.jet-listing-grid__item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
}

/* JetSmartFilters wrapper도 폭 확보 */
.jet-smart-filters-select,
.jet-smart-filters-checkboxes-list,
.jet-smart-filters-sorting,
.jet-smart-filters-pagination {
    width: 100% !important;
    max-width: 100% !important;
}

/* site-content, content-area 폭 */
.page .site-content .content-area {
    width: 100% !important;
}

.page .inside-article .entry-content {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}


/* =============================================
   핵심 수정: is-layout-constrained 완전 해제
   ============================================= */

/* 카드 내부의 constrained 레이아웃 완전 무력화 */
.jet-listing-grid__item .is-layout-constrained > *,
.jet-listing-grid__item .wp-block-group-is-layout-constrained > *,
.jet-listing-grid__item .is-layout-constrained > *:where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* gs-card__body 내부 컨테이너 */
.jet-listing-grid__item .gs-card__body > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* 이미지 — 3중 중첩 대응 */
.jet-listing-grid__item div[class*="gs-card__image"] {
    width: 100% !important;
    max-width: none !important;
    height: 200px !important;
    overflow: hidden;
}

.jet-listing-grid__item .jet-listing-dynamic-image {
    width: 100% !important;
    height: 200px !important;
}

.jet-listing-grid__item .jet-listing-dynamic-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.jet-listing-grid__item .jet-listing-dynamic-image img,
.jet-listing-grid__item .jet-listing-dynamic-image__link {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    display: block !important;
}

/* Columns(열) 블록도 constrained 해제 */
.jet-listing-grid__item .wp-block-columns {
    max-width: none !important;
}

.jet-listing-grid__item .wp-block-column {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* 필터 바 내부도 동일 처리 */
.gs-filter-bar .is-layout-constrained > *,
.gs-filter-bar .wp-block-group-is-layout-constrained > *,
.gs-filter-bar .is-layout-constrained > *:where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: none !important;
}


/* =============================================
   리스팅 최종 마무리 CSS
   ============================================= */

/* 페이지 전체 여백 */
.page .inside-article {
    padding: 2rem 2rem 3rem !important;
}

/* 페이지 제목 */
.page .entry-title,
h1.gs-page-title {
    font-size: 2rem;
    font-weight: 900;
    color: #191c1e;
    margin-bottom: 1.5rem;
}

/* 필터 바 배경/여백 보정 */
.gs-filter-bar {
    padding: 1.5rem 2rem !important;
    margin-bottom: 2rem !important;
    background: #fff !important;
    border-radius: 1rem !important;
    border: 1px solid rgba(116,119,127,0.15) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* 이미지 — 카드 전체 너비 채우기 */
.jet-listing-grid__item .gs-card__image,
.jet-listing-grid__item .gs-card__image > div,
.jet-listing-grid__item .gs-card__image .jet-listing-dynamic-image,
.jet-listing-grid__item .gs-card__image .jet-listing-dynamic-image a,
.jet-listing-grid__item .gs-card__image .jet-listing-dynamic-image img {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
}

.jet-listing-grid__item .gs-card__image,
.jet-listing-grid__item .gs-card__image .jet-listing-dynamic-image {
    height: 220px !important;
    overflow: hidden !important;
}

.jet-listing-grid__item .gs-card__image .jet-listing-dynamic-image img {
    height: 220px !important;
    object-fit: cover !important;
}

/* 버튼 영역 — 카드 전체 너비 채우기 */
.jet-listing-grid__item .gs-card__actions,
.jet-listing-grid__item .gs-card__actions > .wp-block-group__inner-container {
    width: 100% !important;
    max-width: 100% !important;
}

/* 견적 요청 버튼 — 넓게 */
.jet-listing-grid__item .gs-card__actions .gs-btn--quote {
    flex: 1 !important;
}

/* 상세보기 버튼 — 적당한 너비 */
.jet-listing-grid__item .gs-card__actions .gs-btn--detail {
    flex: 0 0 auto !important;
}

/* 장비유형 태그 — 쉼표 뒤 간격 */
.jet-listing-grid__item .gs-card__tags .jet-listing-dynamic-terms__separator {
    margin: 0 0.125rem;
}

/* 이미지 — 좌우 여백 없이 꽉 채우기 */
.jet-listing-grid__item .gs-card__body {
    padding: 0 !important;
}

.jet-listing-grid__item .gs-card__body > .wp-block-group__inner-container {
    padding: 0 !important;
}

.jet-listing-grid__item .gs-card__image {
    margin: 0 !important;
    padding: 0 !important;
}

/* 이미지 아래 텍스트 영역에만 패딩 */
.jet-listing-grid__item .gs-card__header,
.jet-listing-grid__item .gs-card__body .wp-block-columns {
    padding: 1.25rem 1.5rem 0 1.5rem !important;
}

/* 설명 영역 빈 공간 줄이기 */
.jet-listing-grid__item .gs-card__desc {
    min-height: 0 !important;
    padding: 0.5rem 1.5rem 1.5rem !important;
}

/* 필터 바 — 좌측 정렬, 가로 채우기 */
.gs-filter-bar > .wp-block-group__inner-container {
    justify-content: flex-start !important;
    width: 100% !important;
}

.gs-filter-bar > .wp-block-group__inner-container > * {
    flex: 0 1 auto !important;
    min-width: 180px !important;
}

/* 정렬 드롭다운 너비 보정 */
.gs-filter-bar select {
    min-width: 120px !important;
}


/* =============================================================
   JetFormBuilder 견적 요청 폼 — gs- 디자인 시스템 적용 v2
   실제 DOM 구조 기반 (2026-04-02 개발자 도구 확인)
   
   실제 출력 구조:
   jet-form-builder
   └── jet-sm-gb-wrapper (JetStyleManager)
       └── jet-form-builder-row.field-type-select-field
           ├── jet-form-builder__label
           │   └── jet-form-builder__label-text
           └── jet-form-builder__field-wrap
               └── select.jet-form-builder__field.select-field
   
   체크박스 구조:
   jet-form-builder-row.field-type-checkbox-field
   ├── jet-form-builder__label
   └── jet-form-builder__fields-group.checkradio-wrap
       └── jet-form-builder__field-wrap.checkboxes-wrap.checkradio-wrap
           └── label.jet-form-builder__field-label.for-checkbox
               ├── input.checkboxes-field.checkradio-field
               └── span (텍스트)
   ============================================================= */


/* ----- 0. is-layout-constrained 해제 ----- */
.jet-form-builder .is-layout-constrained > *,
.jet-form-builder .wp-block-group__inner-container > * {
    max-width: none !important;
}


/* ----- 1. 폼 전체 컨테이너 ----- */
.jet-form-builder {
    max-width: 720px;
    margin: 0 auto;
    font-family: 'Pretendard Variable', -apple-system, BlinkMacSystemFont, sans-serif;
}


/* ----- 2. Row 간격 ----- */
.jet-form-builder .jet-form-builder-row {
    margin-bottom: 1.25rem;
}


/* ----- 3. 레이블 ----- */
.jet-form-builder .jet-form-builder__label {
    display: block;
    margin-bottom: 0.5rem;
}

.jet-form-builder .jet-form-builder__label-text {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--gs-on-surface, #191c1e);
    line-height: 1.4;
}

/* 필수 표시 (*) */
.jet-form-builder .jet-form-builder__required {
    color: var(--gs-error, #ba1a1a);
    margin-left: 0.125rem;
}


/* ----- 4. 텍스트/이메일/날짜 입력 필드 ----- */
.jet-form-builder .jet-form-builder__field-wrap input.jet-form-builder__field,
.jet-form-builder input[type="text"].jet-form-builder__field,
.jet-form-builder input[type="email"].jet-form-builder__field,
.jet-form-builder input[type="tel"].jet-form-builder__field,
.jet-form-builder input[type="date"].jet-form-builder__field {
    width: 100% !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.9375rem !important;
    font-family: inherit !important;
    color: var(--gs-on-surface, #191c1e) !important;
    background: var(--gs-surface-white, #ffffff) !important;
    border: 1.5px solid var(--gs-outline, #74777f) !important;
    border-radius: 0.5rem !important;
    outline: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}


/* ----- 5. 셀렉트 필드 (select.select-field) ----- */
.jet-form-builder select.jet-form-builder__field,
.jet-form-builder select.select-field,
.jet-form-builder .jet-form-builder__field-wrap select {
    width: 100% !important;
    padding: 0.75rem 2.5rem 0.75rem 1rem !important;
    font-size: 0.9375rem !important;
    font-family: inherit !important;
    color: var(--gs-on-surface, #191c1e) !important;
    background-color: var(--gs-surface-white, #ffffff) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2374777f' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem center !important;
    border: 1.5px solid var(--gs-outline, #74777f) !important;
    border-radius: 0.5rem !important;
    outline: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    cursor: pointer;
}


/* ----- 6. 텍스트에어리어 ----- */
.jet-form-builder textarea.jet-form-builder__field {
    width: 100% !important;
    min-height: 140px !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.9375rem !important;
    font-family: inherit !important;
    color: var(--gs-on-surface, #191c1e) !important;
    background: var(--gs-surface-white, #ffffff) !important;
    border: 1.5px solid var(--gs-outline, #74777f) !important;
    border-radius: 0.5rem !important;
    outline: none !important;
    resize: vertical !important;
    line-height: 1.6 !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    box-sizing: border-box !important;
}


/* ----- 7. 포커스 공통 ----- */
.jet-form-builder input.jet-form-builder__field:focus,
.jet-form-builder select.jet-form-builder__field:focus,
.jet-form-builder textarea.jet-form-builder__field:focus {
    border-color: var(--gs-primary, #002045) !important;
    box-shadow: 0 0 0 3px rgba(0, 32, 69, 0.12) !important;
}


/* ----- 8. 플레이스홀더 ----- */
.jet-form-builder input::placeholder,
.jet-form-builder textarea::placeholder {
    color: var(--gs-outline, #74777f) !important;
    opacity: 0.7 !important;
}


/* ----- 9. 체크박스 (checkboxes-wrap checkradio-wrap) ----- */

/* 체크박스 그룹 — 가로 배치 */
.jet-form-builder .jet-form-builder__fields-group.checkradio-wrap {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
}

.jet-form-builder .jet-form-builder__field-wrap.checkboxes-wrap.checkradio-wrap {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    align-items: center !important;
}

/* 개별 체크박스 레이블 — 칩(chip) 스타일 */
.jet-form-builder label.jet-form-builder__field-label.for-checkbox {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    cursor: pointer !important;
    padding: 0.5rem 0.75rem !important;
    border: 1.5px solid var(--gs-surface-container, #edeef0) !important;
    border-radius: 0.5rem !important;
    background: var(--gs-surface-white, #ffffff) !important;
    transition: border-color 0.2s, background 0.2s !important;
    font-size: 0.9375rem !important;
    color: var(--gs-on-surface, #191c1e) !important;
    line-height: 1.4 !important;
}

.jet-form-builder label.jet-form-builder__field-label.for-checkbox:hover {
    border-color: var(--gs-primary, #002045) !important;
    background: var(--gs-surface-low, #f2f4f6) !important;
}

/* 체크박스 input */
.jet-form-builder input.checkboxes-field.checkradio-field,
.jet-form-builder input.jet-form-builder__field.checkboxes-field {
    width: 1.125rem !important;
    height: 1.125rem !important;
    border: 1.5px solid var(--gs-outline, #74777f) !important;
    border-radius: 0.25rem !important;
    cursor: pointer !important;
    accent-color: var(--gs-primary, #002045) !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

/* 체크박스 텍스트 (span) */
.jet-form-builder label.for-checkbox span {
    font-size: 0.9375rem;
    color: var(--gs-on-surface, #191c1e);
}


/* ----- 10. 개인정보 동의 체크박스 (단일) ----- */
.jet-form-builder .field-type-checkbox-field:last-of-type label.for-checkbox {
    border: none !important;
    padding: 0.25rem 0 !important;
    background: transparent !important;
}

.jet-form-builder .field-type-checkbox-field:last-of-type label.for-checkbox span {
    font-size: 0.875rem;
    color: var(--gs-on-surface-variant, #43474e);
}


/* ----- 11. 제출 버튼 ----- */
.jet-form-builder .jet-form-builder-row.submit-type-row button[type="submit"],
.jet-form-builder .jet-form-builder__action-button,
.jet-form-builder .jet-form-builder__submit {
    display: block !important;
    width: 100% !important;
    padding: 1rem 2rem !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    color: #ffffff !important;
    background: var(--gs-secondary, #944a00) !important;
    border: none !important;
    border-radius: 0.625rem !important;
    cursor: pointer !important;
    transition: background 0.2s, transform 0.1s !important;
    margin-top: 1.5rem !important;
    text-align: center !important;
    line-height: 1.4 !important;
}

.jet-form-builder button[type="submit"]:hover {
    background: var(--gs-secondary-container, #fc8f34) !important;
}

.jet-form-builder button[type="submit"]:active {
    transform: scale(0.985);
}

.jet-form-builder button[type="submit"][disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}


/* ----- 12. 성공/에러 메시지 ----- */
.jet-form-builder-message--success {
    padding: 1.25rem 1.5rem !important;
    background: #e8f5e9 !important;
    color: #1b5e20 !important;
    border-radius: 0.625rem !important;
    font-size: 0.9375rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    margin-top: 1rem !important;
    border: 1px solid #c8e6c9 !important;
}

.jet-form-builder-message--error {
    padding: 1.25rem 1.5rem !important;
    background: #fdecea !important;
    color: var(--gs-error, #ba1a1a) !important;
    border-radius: 0.625rem !important;
    font-size: 0.9375rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    margin-top: 1rem !important;
    border: 1px solid #f5c6cb !important;
}

/* 필드별 에러 */
.jet-form-builder .jet-form-builder__field-error {
    font-size: 0.8125rem !important;
    color: var(--gs-error, #ba1a1a) !important;
    margin-top: 0.375rem !important;
}

/* 에러 필드 테두리 */
.jet-form-builder-row.error input.jet-form-builder__field,
.jet-form-builder-row.error select.jet-form-builder__field,
.jet-form-builder-row.error textarea.jet-form-builder__field {
    border-color: var(--gs-error, #ba1a1a) !important;
}


/* ----- 13. 섹션 제목 (Heading 블록) ----- */
.jet-form-builder h3,
.jet-form-builder h4 {
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: var(--gs-primary, #002045) !important;
    margin: 2rem 0 1rem !important;
    padding-bottom: 0.625rem !important;
    border-bottom: 2px solid var(--gs-surface-container, #edeef0) !important;
}

.jet-form-builder h3:first-child,
.jet-form-builder h4:first-child {
    margin-top: 0 !important;
}


/* ----- 14. JetStyleManager 래퍼 간격 정리 ----- */
.jet-form-builder .jet-sm-gb-wrapper {
    margin-bottom: 0 !important;
}

/* field-wrap 내부 패딩 제거 */
.jet-form-builder .jet-form-builder__field-wrap {
    padding: 0 !important;
}


/* ----- 15. 폼 카드 래퍼 (Group 블록에 gs-form-card 클래스) ----- */
.gs-form-card {
    background: var(--gs-surface-white, #ffffff) !important;
    border-radius: 1rem !important;
    padding: 2.5rem !important;
    border: 1px solid rgba(116, 119, 127, 0.12) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
    max-width: 800px !important;
    margin: 0 auto !important;
}

.gs-form-card .jet-form-builder {
    max-width: 100%;
}


/* ----- 16. 견적 요청 페이지 제목/서브타이틀 ----- */
.page .entry-header .entry-title {
    font-size: 2rem;
    font-weight: 900;
    color: var(--gs-on-surface, #191c1e);
    text-align: center;
    margin-bottom: 0.5rem;
}

.page .entry-content > p:first-of-type {
    text-align: center;
    color: var(--gs-on-surface-variant, #43474e);
    font-size: 1.0625rem;
    margin-bottom: 2.5rem;
    line-height: 1.6;
}


/* ----- 17. 폼 반응형 ----- */
@media (max-width: 767px) {
    .jet-form-builder {
        max-width: 100%;
    }

    .gs-form-card {
        padding: 1.5rem 1.25rem !important;
        border-radius: 0.75rem !important;
        margin: 0 0.5rem !important;
    }

    /* 모바일 16px 이상 → iOS 줌 방지 */
    .jet-form-builder input.jet-form-builder__field,
    .jet-form-builder select.jet-form-builder__field,
    .jet-form-builder textarea.jet-form-builder__field {
        font-size: 1rem !important;
    }

    .jet-form-builder button[type="submit"] {
        font-size: 1.0625rem !important;
        padding: 0.875rem 1.5rem !important;
    }

    /* 체크박스 가로 → 세로 (모바일) */
    .jet-form-builder .jet-form-builder__field-wrap.checkboxes-wrap.checkradio-wrap {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }

    .jet-form-builder label.for-checkbox {
        width: 100% !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .gs-form-card {
        padding: 2rem !important;
        margin: 0 1rem !important;
    }
}