/**
 * EVT Booking System v2 — 이벤트 + 예약 시스템 스타일
 * 현재 WordPress 페이지 디자인 패턴 유지
 */

/* === Alpine.js x-cloak === */
[x-cloak] {
    display: none !important;
}

/* === 공통 === */
.evt-empty {
    text-align: center;
    padding: 40px;
    color: #888;
    background: #f9f9f9;
    border-radius: 8px;
}

/* ==========================================================
   이벤트 시술 목록 — newweb 카드형 디자인
   ========================================================== */

.evt-event-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 50px 50px 150px;
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif;
}

/* --- 카테고리 섹션 (카드) ---
   디자인 토큰: --evt-* CSS 변수는 DB(evt_homepage_styles)에서 :root로 주입됨.
   var() 두 번째 인자 = 기존 하드코딩 값(기본값) — DB 미설정 시 현행 디자인 100% 유지.
   브랜드 원색: --evt-brand-accent(틸), --evt-brand-sale(할인 빨강) — 하위 토큰이 참조. */
.category-section {
    margin-top: 30px;
    overflow: hidden;
    border-radius: var(--evt-section-radius, 12px);
    border: 1px solid var(--evt-section-border, #e5e5e5);
}

/* 카테고리 헤더 (틸색 바) */
.category-header {
    margin: 12px 12px 0;
    padding: 10px 20px;
    background: var(--evt-cat-bg, var(--evt-brand-accent, #009191));
    border-radius: 8px;
    color: var(--evt-cat-color, white);
    font-size: var(--evt-cat-size, 22px);
    font-weight: var(--evt-cat-weight, 700);
    line-height: 1.2;
}

/* 카테고리 조건·주의 문구 (카테고리 줄 E열) — 틸 바 바로 아래 한 줄.
   좌우 여백을 .category-header 와 같게(margin 12px + padding 20px) 맞춰 **제목 글자와 세로로 정렬**한다.
   .category-content(padding-left 30px)에 맞추면 제목보다 안쪽으로 들어가 어긋나 보인다. */
.category-condition {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 10px 12px 0;
    padding: 0 20px;
    color: var(--evt-cat-cond-color, #555);
    font-size: var(--evt-cat-cond-size, 14px);
    font-weight: 400;
    line-height: 1.5;
    word-break: keep-all;
    overflow-wrap: anywhere;   /* keep-all 단독이면 긴 영문·URL 이 가로로 삐져나간다 */
}

/* 「추가 N% 할인」 칩 — 조건 문구 뒤에 붙는다. 시술의 증정 배지(.subname-badge)와
   나란히 서므로 크기를 그보다 작게 잡아 문구가 주인공으로 남게 한다. */
.category-condition .cat-benefit-badge {
    flex: none;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--evt-cat-benefit-bg, var(--evt-brand-accent, #009191));
    color: var(--evt-cat-benefit-color, #fff);
    font-size: var(--evt-cat-benefit-size, 12px);
    font-weight: 700;
    line-height: 1.5;
}

/* 카테고리 줄로 끌어올린 증정 배지 — 시술 자리(1.3em)보다 작게 */
.category-condition .subname-badge {
    flex: none;
    font-size: var(--evt-cat-benefit-size, 12px);
}

/* 「N개골라」 묶음 선택 카운터 (2026-09-30) — 머리줄 아래 「2/3 선택 · 1개 더 선택해주세요」 */
.cat-pick-counter {
    margin: 10px 12px 0;
    padding: 6px 20px;
    border-radius: 6px;
    background: #fff4e5;
    color: #c05600;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
}
.cat-pick-counter.is-done {
    background: #e6f4f4;
    color: var(--evt-brand-accent, #009191);
}

/* 카테고리 콘텐츠 영역 */
.category-content {
    padding: 20px 30px 30px;
}

/* --- 시술 그룹 (item-group) --- */
.item-group + .item-group {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #ebebeb;
}

/* 시술 그룹 헤더 */
.group-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.group-title {
    font-size: var(--evt-group-title-size, 22px);
    font-weight: var(--evt-group-title-weight, 700);
    color: var(--evt-group-title-color, #333);
    line-height: 1.2;
}

/* --- 자동 배지 칩 (에버스 PICK/BEST/런칭/스테디셀러 등) — 색상은 DB에서 인라인 주입 --- */
.evt-badge {
    display: inline-block;
    vertical-align: middle;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
}
.item-label .evt-badge {
    font-size: 12px;
    padding: 1px 7px;
}

/* --- 설명 행 (3종류) --- */
.desc-line {
    padding: 1px 0;
    line-height: 1.5;
}

.desc-line.notice {
    color: var(--evt-desc-notice-color, #888);
    font-size: var(--evt-desc-notice-size, 15px);
    font-weight: 700;
}

.desc-line.highlight {
    color: var(--evt-desc-highlight-color, var(--evt-brand-accent, #009191));
    font-size: var(--evt-desc-highlight-size, 15px);
    font-weight: 600;
    margin-bottom: 4px;
}

.desc-line.normal {
    color: var(--evt-desc-normal-color, #888);
    font-size: var(--evt-desc-normal-size, 14px);
    font-weight: 400;
    margin-bottom: 15px;
}

/* 기본형(월이벤트)만 설명행 줄간격 축소 — 한줄형/묶음형은 기본 15px 유지 */
.category-section--default .desc-line.normal {
    margin-bottom: 2px;
}

/* --- 가격행 목록 --- */
.product-list {
    padding-top: 7px;
}

/* --- 시술 행 (product-row, 카드형) --- */
.product-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 13px 19px;
    background: var(--evt-row-bg, #f7f7f7);
    border-radius: var(--evt-row-radius, 8px);
    border: 1.5px solid transparent;
    cursor: pointer;
    margin-bottom: 8px;
}

.product-row:hover {
    background: var(--evt-row-bg-hover, #f0f0f0);
}

.product-row.selected,
.product-row:has(.price-check:checked) {
    border-color: var(--evt-row-selected-border, var(--evt-brand-accent, #009191));
    background: var(--evt-row-bg, #f7f7f7);
}

/* 행 좌측 (체크박스 + 시술명) */
.row-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;   /* 긴 시술명이 flex 축소되어 row-right(가격)를 침범하지 않도록 (전 레이아웃 공통) */
}

/* 커스텀 체크박스 (appearance:none 방식) */
.price-check {
    appearance: none;
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 5px;
    background-color: var(--evt-check-bg, #e5e5e5);
    position: relative;
    flex-shrink: 0;
    cursor: pointer;
    margin: 0;
}

.price-check::after {
    content: '';
    position: absolute;
    top: 45%;
    left: 50%;
    width: 6px;
    height: 11px;
    border: solid #9e9e9e;
    border-width: 0 2.5px 2.5px 0;
    transform: translate(-50%, -50%) rotate(45deg);
}

.price-check:checked {
    background-color: var(--evt-check-checked, var(--evt-brand-accent, #009191)) !important;
}

.price-check:checked::after {
    border-color: #fff;
}

/* 시술명/브랜드 */
.item-label {
    font-size: var(--evt-item-size, 18px);
    font-weight: var(--evt-item-weight, 700);
    color: var(--evt-item-color, #333);
    /* 공백 없는 합성 시술명(예: "부스터필(1,2제)+LDM(24분)+1cc+모델링팩")도 비상 줄바꿈 허용.
       word-break:keep-all(한줄형)은 공백에서만 끊겨 공백없는 합성명은 안 끊김 → 가격 영역 침범.
       overflow-wrap:anywhere = 넘칠 때만 끊고 flex 최소폭도 축소(break-word와 달리 min-content 반영). */
    overflow-wrap: anywhere;
}

/* 서브 시술명 (체크박스 행 안, 시술명 뒤 인라인) — 동일 크기, 가벼운 굵기로 차등 */
/* font-size 미지정 → item-label(18px) 상속 */
.item-subname {
    margin-left: 6px;
    font-weight: 600;                       /* 본문 700 대비 차등 */
    color: var(--evt-item-color, #333);     /* 본문 시술명과 동일 색 (토큰 공유) */
}

/* "+시술명 ... 더 드림" 강조 배지 — teal 배경 + 흰 글자 */
/* 독립 셀렉터: 한줄형 item-subname 내부 + 기본형/묶음형 desc-line 내부 양쪽에서 동작 */
.subname-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    background: #008a8a;
    color: #fff;
    font-weight: 600;
    font-size: 1.3em;   /* 더 드림/플러스 혜택 증정 배지 강조 (사장님 요청 2026-08-20) */
}

/* ── 변형 마커(홈페이지 전용 오버라이드) ── */
/* 미리보기/인쇄는 베이스로 렌더, 홈페이지에서만 아래 스타일. col_m=!2/★22/#2/~2/P2 */
/* !important: .desc-line.normal(0,2,0) 등 기존 클래스보다 우선 보장 */
.hp-mk-item      { font-size: 18px !important; font-weight: 700 !important; color: var(--evt-item-color, #333) !important; }        /* !2 시술명 강조 */
.hp-mk-desc      { font-size: 14px !important; font-weight: 400 !important; color: var(--evt-desc-normal-color, #888) !important; }  /* ★22 E설명체 */
.hp-mk-desc-bold { font-size: 14px !important; font-weight: 700 !important; color: var(--evt-desc-normal-color, #888) !important; }  /* #2 작게·두껍게 */
.hp-mk-item-thin { font-size: 18px !important; font-weight: 400 !important; color: var(--evt-item-color, #333) !important; }         /* ~2 크게·얇게 */
/* P2 = 카테고리 헤더와 "완전 동일한" 전체폭 teal 바. 색·폰트·크기 모두 --evt-cat-* 토큰 공유.
   → 나중에 색만 바꿀 땐 cat-bg 토큰만 다른 값으로 분기하면 됨.
   적용 맥락: group-title(주 사용처, TREATMENT_HEADER) / category-header / desc-line. */
.category-header.hp-mk-box,
.group-title.hp-mk-box,
.desc-line.hp-mk-box {
    box-sizing: border-box;
    padding: 10px 20px;
    border-radius: 8px;
    background: #e5f5f5 !important;      /* P2 전용 색 — 카테고리 헤더(--evt-cat-bg)와 분리 */
    color: #333333 !important;
    font-size: var(--evt-cat-size, 22px) !important;
    font-weight: var(--evt-cat-weight, 700) !important;
    line-height: 1.2;
}
/* group-title은 flex(.group-header)의 자식 → flex:1 로 행 전체를 채워 "끝에서 끝" 고정폭(텍스트 길이 무관).
   좌우 -18px = category-content 패딩(30px) - 카테고리 헤더 margin(12px) → 카테고리 바와 좌우 정렬. */
.group-title.hp-mk-box {
    flex: 1;
    margin: 0 -18px;
}
/* desc-line(블록)에 P2가 붙는 경우: 콘텐츠 폭이 아닌 전체폭 바로 */
.desc-line.hp-mk-box {
    display: block;
    margin: 0 -18px;
}
/* 인라인 가격 라벨(standalone)에 P2가 붙는 예외만 기존 작은 teal 칩 유지 (flex 가격행 보호) */
.item-label.hp-mk-box {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    background: #008a8a !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* --- 한줄형(상시이벤트) 단독 행 — treatment-group-inline.php --- */
/* 시술명이 박스 안 라벨로 들어오므로 긴 이름은 줄바꿈 허용 (가격은 우측 고정) */
.product-list--inline .row-left {
    min-width: 0;
}
.product-list--inline .item-label {
    word-break: keep-all;
}

/* --- 한줄형 묶음 (item-bundle) — 헤더 + 단독 가격행들을 한 단위로 --- */
/* 묶음 내부: 그룹 사이 구분선/큰 간격 제거 (.item-group + .item-group 무력화) */
.item-bundle .item-group + .item-group {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
/* 구분선은 묶음 사이에만 (기존 그룹 간격과 동일한 리듬) */
.item-bundle + .item-bundle {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #ebebeb;
}

/* --- P2 안내 바 인접 구분선·간격 (2026-08-14) ---
   P2(hp-mk-box)는 "카테고리 바의 연장선"인 안내문이라 가격행이 없고 예약 아이템도
   만들지 않는다(정책: recompute_scope_bookable_items Source2 배제). 그래서 묶음 판정에서
   티어가 아니게 되어 **바 하나가 곧 하나의 .item-bundle/.item-group**이 되고,
   형제 구분선(.item-bundle+.item-bundle / .item-group+.item-group)이 바 아래에
   가로줄로 보인다. 줄을 지우고 간격도 좁힌다.
   ★:has() 안에는 전체폭 바(group-title/desc-line)만 나열한다 —
     .item-label.hp-mk-box(한줄형 인라인 가격 칩)는 바가 아니라 작은 teal 칩이므로
     그 묶음의 구분선까지 지우면 안 된다.
   ★5개 레이아웃 공통 규칙 — 템플릿 무수정이 정답(기존 게시본에도 즉시 반영). */
/* ① 뒤쪽이 P2 바 */
.item-bundle + .item-bundle:has(> .item-group > .group-header > .group-title.hp-mk-box, > .item-group > .desc-line.hp-mk-box),
.item-group + .item-group:has(> .group-header > .group-title.hp-mk-box, > .desc-line.hp-mk-box) {
    margin-top: 20px;
    padding-top: 0;
    border-top: none;
}
/* ② 앞쪽이 P2 바 */
.item-bundle:has(> .item-group > .group-header > .group-title.hp-mk-box, > .item-group > .desc-line.hp-mk-box) + .item-bundle,
.item-group:has(> .group-header > .group-title.hp-mk-box, > .desc-line.hp-mk-box) + .item-group {
    margin-top: 20px;
    padding-top: 0;
    border-top: none;
}
/* ③ 앞뒤 모두 P2 = 연속된 안내 바 → 카테고리 바 밑 목록처럼 촘촘히 (①②보다 뒤·고특이도라 승) */
.item-bundle:has(> .item-group > .group-header > .group-title.hp-mk-box, > .item-group > .desc-line.hp-mk-box) + .item-bundle:has(> .item-group > .group-header > .group-title.hp-mk-box, > .item-group > .desc-line.hp-mk-box),
.item-group:has(> .group-header > .group-title.hp-mk-box, > .desc-line.hp-mk-box) + .item-group:has(> .group-header > .group-title.hp-mk-box, > .desc-line.hp-mk-box) {
    margin-top: 8px;
}
/* 추가옵션(~3) 박스 묶음 — 다음 시술과 구분: 마지막 박스 아래 구분선 + 여백.
   ('~3 다음이 ~3 아님' = 묶음 경계라 마커 추가 없이 묶음 단위로 처리) */
.item-bundle--opt {
    padding-bottom: 24px;
    border-bottom: 1px solid #ebebeb;
    margin-bottom: 30px;
}
/* ★그 묶음이 카테고리 카드(또는 상단 카드)의 마지막 자식이면 "다음 시술"이 없다 →
   구분선·여백 제거. 없으면 페이지 맨 아래에 빈 줄+가로선이 유령으로 남는다
   (2026-08-25 마곡 event-month-skin_care 「복근케어 추가옵션」 실사례).
   하단 여백은 .category-content 자체 padding-bottom(30px/모바일 20px)이 담당. */
.item-bundle--opt:last-child {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 0;
}

/* --- 한줄형 상단(카테고리 없는) 묶음 — 카드형 회색 테두리 박스 (2026-06-15) ---
   .evt-event-container > .item-bundle = CATEGORY_HEADER 없이 컨테이너 직속으로 렌더된 상단 그룹만.
   .category-content 안의 묶음(추가옵션 등)은 제외 (이미 .category-section 카드 테두리 보유).
   테두리 토큰은 .category-section과 동일(--evt-section-*) → 디자인 일관 + admin 조정 연동. */
.evt-event-container > .item-bundle {
    border: 1px solid var(--evt-section-border, #e5e5e5);
    border-radius: var(--evt-section-radius, 12px);
    padding: 20px 30px;
    margin-top: 30px;
}
/* 상단 묶음이 여러 개일 때: 각 묶음이 개별 카드 → 묶음 사이 구분선 제거하고 카드 간 간격만 */
.evt-event-container > .item-bundle + .item-bundle {
    padding-top: 20px;
    border-top: 1px solid var(--evt-section-border, #e5e5e5);
    margin-top: 16px;
}

/* 가격묶음형: 항목 간격 +1px (기본 8px 마진 + 7px 패딩 = 15px → 16px) */
.product-list--pbundle .product-row {
    margin-bottom: 9px;
}

/* --- 가격묶음형: 카테고리 헤더의 『정가』 표기 — 회색·70% 크기·흰색 취소선 --- */
.category-header .cat-origin {
    color: #cfd8d8;
    font-size: 0.7em;
    font-weight: 400;
    text-decoration: line-through;
    text-decoration-color: #ffffff;
}

/* 행 우측 (정가 + 할인가) */
.row-right {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.origin-price {
    color: var(--evt-origin-color, #c2c7d3);
    font-size: var(--evt-origin-size, 14px);
    text-decoration: line-through;
    margin-right: 8px;
}

.sale-price {
    color: var(--evt-sale-color, var(--evt-brand-sale, #ff2d2d));
    font-size: var(--evt-sale-size, 22px);
    font-weight: var(--evt-sale-weight, 700);
}

/* --- 추가할인형(ADD_DISCOUNT) 1차할인가 — 정가 ▸ 1차할인가 ▸ ▶ ▸ 최종할인가 ---
   ★추가할인형은 구조가 기본형(HEADER)과 완전히 동일하다(시술명·설명은 박스 밖, 박스 안엔 횟수+금액).
     그래서 신규 CSS는 이 두 셀렉터뿐이고, 레이아웃 관련 기존 규칙은 한 줄도 건드리지 않는다.
   먹색(#333) = 시술명(--evt-item-color)과 같은 톤 → 빨간 최종할인가만 도드라진다. (사장님 지정 2026-08-11)
   최종할인가(22px)보다 2px 작고 굵기는 보통. 색·크기·굵기 모두 토큰이라 /homepage-styles에서 조정 가능. */
.first-price {
    color: var(--evt-first-color, #333);
    font-size: var(--evt-first-size, 20px);
    font-weight: var(--evt-first-weight, 400);
}

.price-arrow {
    margin: 0 5px;
    color: var(--evt-first-color, #333);
    font-size: 15px;
    line-height: 1;
}
/* WordPress가 ▶를 이모지 <img>로 치환하므로(s.w.org) 글자 크기에 맞춰 준다 */
.price-arrow img.emoji {
    height: 1em;
    width: 1em;
    vertical-align: -0.1em;
}

.regular-price {
    color: var(--evt-regular-color, #333);
    font-size: var(--evt-regular-size, 18px);
    font-weight: var(--evt-regular-weight, 700);
}

/* 원내문의(% 마커) — 사장님 지정: 할인가와 동일 색/폰트(빨강 볼드) */
.inquiry-price {
    color: var(--evt-sale-color, var(--evt-brand-sale, #ff2d2d));
    font-size: var(--evt-sale-size, 22px);
    font-weight: var(--evt-sale-weight, 700);
}

/* ==========================================================
   탭 네비게이션
   ========================================================== */

.evt-tab-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 0;
    margin-bottom: 16px;
}

.tab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    background: #f5f5f5;
    color: #555;
    border: 1px solid #ddd;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s;
    white-space: nowrap;
}

.tab-btn:hover {
    background: #e8e8e8;
    color: #333;
    text-decoration: none;
}

.tab-btn.active {
    background: #333;
    color: #fff;
    border-color: #333;
}

/* ==========================================================
   배너
   ========================================================== */

.evt-banner {
    text-align: center;
    padding: 24px 16px;
    margin-bottom: 20px;
}

.evt-banner-title {
    font-size: 22px;
    font-weight: 700;
    color: #222;
    margin: 0 0 8px 0;
}

.evt-banner-period {
    font-size: 14px;
    color: #888;
    margin: 0;
}

/* ==========================================================
   이벤트 헤더 — 다크 배경 + 탭 네비게이션 + 배너 캐러셀
   (참조: drevers.com WEEKDAY 페이지)
   ========================================================== */

/* 스크롤 잠금 (풀메뉴 오버레이 — iOS 모바일 대응) */
html.evt-lock-scroll,
body.evt-lock-scroll {
    overflow: hidden !important;
    touch-action: none;
}

html.evt-lock-scroll .ev-full-menu-layer .menu-grid-container {
    touch-action: auto;
    overscroll-behavior: contain;
}

/* 헤더 섹션 래퍼 (다크 배경) */
.evt-header-section {
    position: relative;
    background-color: #001414;
    font-family: 'Pretendard', -apple-system, sans-serif;
    width: 100%;
    overflow-x: hidden;
    padding: 30px 0;
}

/* 배경 이미지 오버레이 (선택적 — bg_image 속성 지정 시) */
.evt-header-section.has-bg::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: var(--evt-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.4;
    pointer-events: none;
    z-index: 0;
}

.evt-header-section > * {
    position: relative;
    z-index: 1;
}

/* 트랜지션 비활성 (초기화/리사이즈 시) */
.evt-header-section.is-no-transition,
.evt-header-section.is-no-transition *,
.evt-header-section.is-initializing * {
    transition: none !important;
}

/* --- 탭 네비게이션 --- */
.evt-header-section .ev-tab-nav-wrapper {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 45px 0 20px;
}

.evt-header-section .ev-tab-container {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    cursor: grab;
}

.evt-header-section .ev-tab-container::-webkit-scrollbar { display: none; }
.evt-header-section .ev-tab-container.dragging { cursor: grabbing; }

.evt-header-section .ev-tab-btn {
    flex-shrink: 0;
    padding: 8px 16px;
    background: none;
    border: 1px solid #fff;
    border-radius: 8px;
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    transition: 0.2s;
    font-weight: 400;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.evt-header-section .ev-tab-btn.active {
    background: #fff;
    color: #333;
    font-weight: bold;
}

.evt-header-section .ev-tab-fade {
    position: absolute;
    right: 40px;
    top: 0;
    width: 100px;
    height: 100%;
    background: linear-gradient(to right, rgba(61,74,72,0), rgba(61,74,72,1) 90%);
    pointer-events: none;
    z-index: 1;
}

.evt-header-section .ev-tab-expand-btn {
    position: absolute;
    right: 10px;
    top: 0;
    width: 30px;
    height: 36px;
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, background-color 0.2s;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.evt-header-section .ev-tab-expand-btn span {
    display: inline-block;
    transition: transform 0.3s;
    font-size: 14px;
}

/* --- 풀 메뉴 오버레이 --- */
.ev-full-menu-layer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0,0,0,0.4);
    display: none;
    z-index: 999;
    border-top: 1px solid #fff;
    box-sizing: border-box;
    box-shadow: 0 12px 35px rgba(0,0,0,0.5);
}

.ev-full-menu-layer.active { display: block; }

.ev-full-menu-layer .menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    background: #009191;
    color: #fff;
    font-weight: 700;
}

.ev-full-menu-layer .header-title { font-size: 16px; }

.ev-full-menu-layer .btn-close-menu {
    background: none;
    border: none;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    line-height: 1;
    outline: none;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}

.ev-full-menu-layer .menu-grid-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding: 20px 20px 30px;
    background: #fff;
    max-height: 80vh;
    overflow-y: auto;
    align-items: stretch;
    grid-auto-rows: 1fr;
    box-shadow: 0 15px 20px -5px rgba(0,0,0,0.5), 0 30px 50px -10px rgba(0,0,0,0.4);
    border-bottom: 1px solid #ddd;
    position: relative;
    z-index: 10;
}

.ev-full-menu-layer .menu-item-btn {
    border: 1px solid #009191;
    border-radius: 8px;
    font-size: 14px;
    letter-spacing: -0.02em;
    background: #fff;
    cursor: pointer;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 10px;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    word-break: keep-all;
    line-height: 1.15;
    font-weight: 500;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.ev-full-menu-layer .menu-item-btn.active {
    background: #009191;
    color: #fff;
    font-weight: 700;
}

/* --- 배너 캐러셀 --- */
.ev-banner-carousel-viewport {
    position: relative;
    padding: 48px 0 30px;
    overflow: hidden;
    cursor: grab;
}

.ev-banner-carousel-container {
    display: flex;
    align-items: center;
    will-change: transform;
}

.ev-banner-slide {
    flex-shrink: 0;
    width: 70vw;
    max-width: 850px;
    text-align: center;
}

.ev-banner-slide .banner-link {
    display: block;
    height: auto !important;
    border-radius: 35px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.4);
    opacity: 0.6;
    transform: scale(0.85);
    transition: transform 0.4s ease, opacity 0.4s ease;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
}

.ev-banner-slide.active .banner-link {
    opacity: 1;
    transform: scale(1.1);
}

.ev-banner-slide .banner-img {
    width: 100%;
    height: auto !important;
    display: block;
}

.ev-footer-info {
    display: block;
    width: 100%;
    margin-top: 30px;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.7);
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.4s ease-in-out;
}

.ev-banner-slide.active .ev-footer-info {
    opacity: 1;
    transform: translateY(0);
}

/* 캐러셀 화살표 */
.evt-header-section .banner-btn {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    background: rgba(255,255,255,0.95);
    border-radius: 50%;
    border: none;
    color: #333;
    font-size: 24px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 15px rgba(0,0,0,0.15);
    z-index: 5;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    line-height: 1;
}

.evt-header-section .banner-btn-prev { left: calc(50% - 600px); }
.evt-header-section .banner-btn-next { right: calc(50% - 600px); }

/* --- PC 풀 메뉴 드롭다운 (1025px+) --- */
@media (min-width: 1025px) {
    .evt-header-section .ev-tab-nav-wrapper.expanded .ev-tab-expand-btn {
        background-color: #009191;
        border-radius: 8px;
        transform: none;
    }

    .evt-header-section .ev-tab-nav-wrapper.expanded .ev-tab-expand-btn span { display: none; }
    .evt-header-section .ev-tab-nav-wrapper.expanded .ev-tab-expand-btn::after {
        content: "\2715";
        color: #fff;
        font-size: 16px;
        font-weight: bold;
    }

    .evt-header-section .ev-tab-nav-wrapper.expanded .ev-tab-fade { display: none; }

    .evt-header-section .ev-tab-nav-wrapper.expanded + .ev-full-menu-layer {
        display: block !important;
        position: absolute;
        top: 75px;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        max-width: 1050px;
        height: auto;
        background: #fff;
        border-radius: 12px;
        box-shadow: 0 15px 40px rgba(0,0,0,0.2);
        border: none;
        padding: 25px;
        box-sizing: border-box;
        z-index: 101;
        animation: evtDropDown 0.3s ease-out forwards;
    }

    @keyframes evtDropDown {
        0% { opacity: 0; transform: translate(-50%, -10px); }
        100% { opacity: 1; transform: translate(-50%, 0); }
    }

    .evt-header-section .ev-tab-nav-wrapper.expanded + .ev-full-menu-layer .menu-header { display: none; }

    .evt-header-section .ev-tab-nav-wrapper.expanded + .ev-full-menu-layer .menu-grid-container {
        grid-template-columns: repeat(3, 1fr);
        padding: 0;
        background: transparent;
        box-shadow: none;
        border-bottom: none;
        max-height: none;
        overflow: visible;
    }

    .evt-header-section .ev-tab-nav-wrapper.expanded + .ev-full-menu-layer .menu-item-btn {
        font-size: 15px;
        padding: 10px 15px;
        transition: all 0.2s ease;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .evt-header-section .ev-tab-nav-wrapper.expanded + .ev-full-menu-layer .menu-item-btn:hover {
        background: #f4fbfb;
    }
}

/* --- 태블릿 (1024px 이하) — 이벤트 헤더 --- */
@media (max-width: 1024px) {
    .evt-header-section .ev-tab-nav-wrapper { width: 85%; padding: 0 45px 0 20px; }
    .evt-header-section .ev-tab-btn { font-size: 14px; }
    .evt-header-section .ev-tab-expand-btn { height: 30px; }
    .evt-header-section .ev-tab-expand-btn span { font-size: 12px; }
    .evt-header-section .ev-tab-nav-wrapper.expanded .ev-tab-expand-btn { transform: rotate(180deg); }

    .evt-header-section .banner-btn { top: 40%; }
    .evt-header-section .banner-btn-prev { left: 10% !important; }
    .evt-header-section .banner-btn-next { right: 10% !important; left: auto !important; }
}

/* --- 모바일 (768px 이하) — 이벤트 헤더 --- */
@media (max-width: 768px) {
    .evt-header-section { padding: 15px 0; }
    .evt-header-section .ev-tab-nav-wrapper { width: 100%; }
    .evt-header-section .ev-tab-btn { padding: 6px 12px; }

    .ev-full-menu-layer .header-title { font-size: 14px; }
    .ev-full-menu-layer .btn-close-menu { font-size: 16px; }
    .ev-full-menu-layer .menu-grid-container {
        box-shadow: 0 15px 20px -5px rgba(0,0,0,0.3), 0 30px 50px -10px rgba(0,0,0,0.2);
    }

    .ev-banner-slide {
        width: 80vw;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
    }

    .ev-banner-slide .banner-link { border-radius: 10px; }
    .ev-banner-slide.active .banner-link { transform: scale(1); }

    .ev-banner-carousel-viewport { padding: 15px 0 30px; }

    .ev-footer-info { margin-top: 8px !important; font-size: 11px; }

    .evt-header-section .banner-btn { width: 32px !important; height: 32px !important; top: 36% !important; font-size: 18px; }
    .evt-header-section .banner-btn-prev { left: 8% !important; }
    .evt-header-section .banner-btn-next { right: 8% !important; left: auto !important; }
}

/* ==========================================================
   하단 고정 예약 바 — 참조 페이지 매칭
   ========================================================== */

.floating-total-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #009191;
    padding: 20px 0;
    z-index: 9999;
}

.bar-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.total-info {
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.circle-num {
    background: #fff;
    min-width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: #009191;
}

.total-val {
    font-size: 26px;
    font-weight: 800;
    margin-left: 5px;
}

.button-group {
    display: flex;
    gap: 10px;
}

.kakao-btn {
    background: #ffd43e;
    color: #333;
    font-weight: 700;
    padding: 10px 40px;
    border-radius: 6px;
    font-size: 20px;
    border: none;
    cursor: pointer;
}

.kakao-btn:hover {
    background: #f5cc00;
}

.cart-btn {
    background: #e0f5f5;
    color: #009191;
    font-weight: 700;
    padding: 10px 30px;
    border-radius: 6px;
    font-size: 20px;
    border: none;
    cursor: pointer;
}

.cart-btn:hover {
    background: #c8eded;
}

.reserve-btn {
    background: #fff;
    color: #009191;
    font-weight: 700;
    padding: 10px 40px;
    border-radius: 6px;
    font-size: 20px;
    border: none;
    cursor: pointer;
}

.reserve-btn:hover {
    background: #f0f0f0;
}

/* ==========================================================
   예약 모달
   ========================================================== */

.evt-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.overlay-enter {
    transition: opacity 0.3s ease;
}

.overlay-leave {
    transition: opacity 0.3s ease;
}

.evt-modal {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
}

/* 모달 헤더 */
.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
}

.modal-title {
    font-size: 18px;
    font-weight: 700;
    margin: 0;
    color: #222;
}

.modal-close {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 24px;
    color: #999;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.15s;
}

.modal-close:hover {
    background: #f0f0f0;
    color: #333;
}

/* 모달 바디 */
.modal-body {
    padding: 20px;
}

.modal-section {
    margin-bottom: 20px;
}

.modal-section h4 {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    margin: 0 0 12px 0;
}

/* 선택 시술 목록 (모달 내) */
.selected-items-list {
    max-height: 200px;
    overflow-y: auto;
}

.selected-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
}

.selected-item-info {
    flex: 1;
    min-width: 0;
}

.selected-item-category {
    font-size: 11px;
    color: #009191;
    font-weight: 600;
    display: block;
    margin-bottom: 1px;
}

.selected-item-name {
    font-size: 14px;
    color: #333;
}

.selected-item-brand {
    font-size: 12px;
    color: #e87300;
    margin-left: 4px;
}

.selected-item-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.selected-item-price {
    font-size: 14px;
    color: #d00;
    font-weight: 600;
}

.selected-item-remove {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    font-size: 16px;
    color: #999;
    cursor: pointer;
}

.selected-item-remove:hover {
    background: #eee;
    color: #333;
}

.selected-total {
    text-align: right;
    font-size: 16px;
    padding-top: 12px;
    border-top: 1px solid #eee;
    margin-top: 8px;
}

.selected-total strong {
    color: #d00;
    font-size: 18px;
}

/* 폼 */
.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
    color: #333;
}

.required {
    color: #d00;
}

.optional {
    font-size: 12px;
    color: #999;
    font-weight: 400;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    box-sizing: border-box;
    font-family: inherit;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #333;
}

.form-group textarea {
    resize: vertical;
}

/* 2열 폼 (날짜+시간) */
.form-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px;
}

/* select 스타일 (기존 input과 통일) */
.form-group select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    box-sizing: border-box;
    font-family: inherit;
    background: #fff;
}

.form-group select:focus {
    outline: none;
    border-color: #333;
}

/* 약관 동의 */
.consent-section {
    margin-top: 16px;
    padding: 12px;
    background: #f9f9f9;
    border-radius: 6px;
}

.consent-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    cursor: pointer;
}

.consent-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #333;
    flex-shrink: 0;
}

.consent-detail {
    margin: 6px 0 0 26px;
    font-size: 12px;
    color: #888;
    line-height: 1.5;
}

/* 회원 정보 (읽기전용) */
.evt-member-info-display .form-readonly {
    background: #f5f5f5;
    color: #555;
    cursor: default;
    border-color: #e5e5e5;
}

/* 확인 화면 */
.confirm-details {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 8px 12px;
    font-size: 14px;
}

.confirm-details dt {
    color: #888;
    font-weight: 500;
}

.confirm-details dd {
    margin: 0;
    color: #333;
}

.confirm-item {
    display: flex;
    justify-content: space-between;
    padding: 2px 0;
}

.confirm-memo {
    margin-top: 8px;
    font-size: 14px;
}

.confirm-memo dt {
    color: #888;
}

/* 완료 화면 */
.complete-message {
    text-align: center;
    padding: 20px 0;
}

.complete-icon {
    width: 60px;
    height: 60px;
    line-height: 60px;
    font-size: 32px;
    background: #4caf50;
    color: #fff;
    border-radius: 50%;
    margin: 0 auto 16px;
}

.complete-message h4 {
    font-size: 18px;
    color: #333;
    margin: 0 0 12px;
}

.reservation-number {
    font-size: 14px;
    color: #666;
    margin-bottom: 16px;
}

.reservation-number strong {
    font-size: 20px;
    color: #333;
}

.complete-notice {
    font-size: 14px;
    color: #888;
    line-height: 1.6;
}

/* 모달 액션 버튼 */
.modal-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 16px;
    border-top: 1px solid #eee;
}

.btn-primary {
    padding: 10px 24px;
    background: #333;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.btn-primary:hover:not(:disabled) {
    background: #555;
}

.btn-primary:disabled {
    background: #ccc;
    cursor: not-allowed;
}

.btn-secondary {
    padding: 10px 20px;
    background: #f5f5f5;
    color: #666;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s;
}

.btn-secondary:hover {
    background: #eee;
}

/* ==========================================================
   반응형
   ========================================================== */

/* === 모바일 반응형 (768px 이하) — 이벤트 목록 + 플로팅 바 === */
@media (max-width: 768px) {
    .evt-event-container {
        padding: 40px 16px 160px;
    }

    .category-header {
        font-size: var(--evt-cat-size-mo, 18px);
        padding: 8px 12px;
        margin: 8px 8px 0;
    }

    /* 조건·주의 문구 — 모바일 .category-header(margin 8px · padding 12px)와 같은 정렬 */
    .category-condition {
        margin: 8px 8px 0;
        padding: 0 12px;
        font-size: var(--evt-cat-cond-size-mo, 13px);
    }

    .category-content {
        padding: 15px 15px 20px;
    }

    /* 한줄형 상단 카드 박스 — 모바일 패딩 축소 (.category-content와 동일 리듬) */
    .evt-event-container > .item-bundle {
        padding: 15px 15px;
        margin-top: 20px;
    }

    .group-title {
        font-size: var(--evt-group-title-size-mo, 18px);
    }

    /* P2 전체폭 바 — 모바일: 카테고리 헤더 모바일 처리(크기 18px·패딩 축소)와 동일 */
    .category-header.hp-mk-box,
    .group-title.hp-mk-box,
    .desc-line.hp-mk-box {
        font-size: var(--evt-cat-size-mo, 18px) !important;
        padding: 8px 12px;
    }
    /* 좌우 -7px = 모바일 content padding(15px) - 모바일 category-header margin(8px) */
    .group-title.hp-mk-box,
    .desc-line.hp-mk-box {
        margin: 0 -7px;
    }

    .desc-line.notice {
        font-size: var(--evt-desc-notice-size-mo, 14px);
    }

    .desc-line.highlight {
        font-size: var(--evt-desc-highlight-size-mo, 14px);
    }

    .desc-line.normal {
        font-size: var(--evt-desc-normal-size-mo, 13px);
    }

    .item-label {
        font-size: var(--evt-item-size-mo, 16px);
    }

    .origin-price {
        font-size: var(--evt-origin-size-mo, 11px);
    }

    .sale-price {
        font-size: var(--evt-sale-size-mo, 18px);
    }

    /* 추가할인형 1차할인가 — 모바일 최종할인가(18px)보다 2px 작게 */
    .first-price {
        font-size: var(--evt-first-size-mo, 16px);
    }

    .inquiry-price {
        font-size: var(--evt-sale-size-mo, 18px);
    }

    .regular-price {
        font-size: var(--evt-regular-size-mo, 16px);
    }

    /* 모바일: 시술명/가격 세로 적층 — 시술명(상) / 가격(하, 우측정렬).
       가로 배치 시 긴 시술명이 가격과 겹치고 wrap 위치가 기종별로 달라지는 문제 해결.
       데스크톱(>768px)은 기존 좌우 배치 유지. */
    .product-row {
        padding: 13px 14px;
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .row-right {
        justify-content: flex-end;
    }

    /* 플로팅 바 모바일 */
    .floating-total-bar {
        padding: 0;
    }

    .bar-container {
        flex-direction: column;
        gap: 0;
        padding: 0;
    }

    .total-info {
        width: 100%;
        padding: 18px 0;   /* 14px → 18px (2026-08-10) — 바가 너무 얇아 뒤 위젯이 비쳤다 */
        justify-content: center;
        font-size: 18px;
    }

    .button-group {
        width: 100%;
        gap: 0;
    }

    .button-group button {
        flex: 1;
        height: 58px;      /* 45px → 58px (2026-08-10) */
        border-radius: 0;
        font-size: 16px;
    }
}

/* ==========================================================
   장바구니 사이드패널
   ========================================================== */

.evt-cart-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10001;
    background: rgba(0,0,0,0.5);
}

.evt-cart-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 380px;
    height: 100vh;
    background: #fff;
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
    display: flex;
    flex-direction: column;
    z-index: 10002;
}

/* 슬라이드 애니메이션 */
.cart-panel-enter { transition: transform 0.3s ease; }
.cart-panel-enter-start { transform: translateX(100%); }
.cart-panel-enter-end { transform: translateX(0); }
.cart-panel-leave { transition: transform 0.25s ease; }
.cart-panel-leave-start { transform: translateX(0); }
.cart-panel-leave-end { transform: translateX(100%); }

/* 패널 헤더 */
.cart-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
}

.cart-panel-title {
    font-size: 18px;
    font-weight: 700;
    color: #222;
    margin: 0;
}

.cart-panel-count {
    font-weight: 400;
    color: #009191;
}

.cart-panel-close {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 24px;
    color: #999;
    cursor: pointer;
    border-radius: 50%;
}

.cart-panel-close:hover {
    background: #f0f0f0;
    color: #333;
}

/* 패널 본문 */
.cart-panel-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
}

/* 빈 장바구니 */
.cart-empty {
    text-align: center;
    padding: 60px 20px;
    color: #999;
}

.cart-empty-icon {
    margin-bottom: 16px;
}

.cart-empty p {
    font-size: 15px;
    margin: 0 0 4px;
}

.cart-empty-sub {
    font-size: 13px !important;
    color: #bbb !important;
}

/* 장바구니 아이템 */
.cart-items-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.cart-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid #f5f5f5;
}

.cart-item-info {
    flex: 1;
    min-width: 0;
}

.cart-item-event {
    font-size: 11px;
    color: #888;
    font-weight: 600;
    display: block;
    margin-bottom: 1px;
}

/* 이벤트명 그룹 헤더 — 줄마다 반복 대신 그룹당 1회 (중복 방지) */
.cart-group + .cart-group {
    margin-top: 6px;
}

.cart-group-event {
    font-size: 12px;
    color: #888;
    font-weight: 700;
    padding: 8px 0 2px;
}

.cart-item-category {
    font-size: 11px;
    color: #009191;
    font-weight: 600;
    display: block;
    margin-bottom: 2px;
}

.cart-item-name {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    display: block;
}

.cart-item-brand {
    font-size: 12px;
    color: #e87300;
    display: block;
    margin-top: 2px;
}

/* 장바구니 설명행 (2026-08-25) — 이름만으론 내용을 알 수 없는 패키지의 실체.
   예약내역·관리자 상세와 같은 표기(좌측 세로선 + 작은 회색)로 통일한다.
   pre-wrap: 설명행 하나에 개행이 든 사례가 있다(account-inject.js와 동일 규칙). */
.cart-item-desc {
    margin: 4px 0 0;
    padding-left: 8px;
    border-left: 2px solid #ddd;
}

.cart-item-desc-line {
    font-size: 12px;
    color: #888;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

.cart-item-desc-more {
    margin-top: 2px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 11px;
    color: #00918e;
    text-decoration: underline;
    cursor: pointer;
}

.cart-item-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-left: 12px;
}

.cart-item-price {
    font-size: 14px;
    color: #d00;
    font-weight: 600;
    white-space: nowrap;
}

.cart-item-remove {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    font-size: 16px;
    color: #999;
    cursor: pointer;
    flex-shrink: 0;
}

.cart-item-remove:hover {
    background: #eee;
    color: #333;
}

/* 패널 하단 (합계 + 버튼) */
.cart-panel-footer {
    border-top: 1px solid #eee;
    padding: 16px 20px;
    flex-shrink: 0;
}

.cart-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    margin-bottom: 12px;
}

.cart-total-row strong {
    font-size: 20px;
    color: #d00;
}

.cart-panel-actions {
    display: flex;
    gap: 8px;
}

.btn-cart-clear {
    flex: 1;
    padding: 12px;
    background: #f5f5f5;
    color: #666;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

.btn-cart-clear:hover {
    background: #eee;
}

.btn-cart-reserve {
    flex: 2;
    padding: 12px;
    background: #009191;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

.btn-cart-reserve:hover {
    background: #007a7a;
}

/* 헤더 장바구니 뱃지 */
.evt-cart-count {
    display: none;
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    background: #ff2d2d;
    color: #fff;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 18px;
    font-family: -apple-system, sans-serif;
    z-index: 10;
}

/* 주입된 네비바 장바구니 아이콘 — 검색/사용자 아이콘과 동일한 크기/여백 유지 */
.evt-cart-icon-widget .elementor-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}
.evt-cart-icon-widget .evt-cart-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: inherit;
    text-decoration: none !important;
    box-shadow: none !important;
    border-bottom: none !important;
}
.evt-cart-icon-widget .evt-cart-icon:hover { color: inherit; opacity: 0.75; }
.evt-cart-icon-widget .evt-cart-icon .lnr-cart { line-height: 1; }
/* === 네비바 검색·회원 아이콘 — 아이콘 폰트 탈의존(인라인 SVG 마스크) ==========
 *
 * 【무엇이 깨졌나】2026-08-19 실측: 마곡 등 지점홈 상단 우측의 검색·회원 아이콘이 안 보인다.
 *   `<i>` 는 visibility:visible·박스 18~20px 정상인데 `::before{content}` 가 `none`
 *   = 글리프를 정의하는 아이콘 폰트 CSS 가 아예 로드되지 않았다.
 *   `<a>`·`<div>` 는 그대로라 "안 보이는데 눌리는" 상태였다.
 *
 * 【원인】2026-08-18 17:55 ~ 08-19 04:00 사이 블로그1 `active_plugins` 가 9개 → 3개
 *   (남은 것 = elementor, elementor-pro, seo-by-rank-math). 아이콘 폰트 공급원이 함께 꺼졌다.
 *     · elementskit-lite … `modules/elementskit-icon-pack/assets/css/ekiticons.css`
 *                            → `.icon-search11`(검색) · `.icon-menu-11`(모바일 햄버거)
 *     · master-addons    … `assets/fonts/linear-icons/linear-icons.css`             → `.lnr-user`(회원)
 *     · master-addons    … Material Icons → `.jltma-material-icon-keyboard_arrow_down`
 *                            (모바일 햄버거 서랍 안 하위메뉴 펼침 화살표 — 빈 네모칸으로 보였다)
 *   장바구니만 멀쩡했던 이유 = 헤더 템플릿 커스텀 CSS(DB)에서 이미 인라인 SVG 배경으로
 *   교체돼 있어 폰트에 의존하지 않았기 때문.
 *
 * 【왜 플러그인 재활성화가 아니라 CSS 인가】지시(2026-08-19): 플러그인은 되살리지 않고
 *   아이콘을 폰트에서 떼어낸다. 카트처럼 DB 커스텀 CSS 에 넣으면 또 버전관리 밖으로
 *   빠지므로 **저장소 코드(booking.css)** 에 둔다. booking.css 는 전 페이지 enqueue 라
 *   PC·모바일 헤더 양쪽에 동일 적용된다.
 *
 * 【마스크 방식】`background-color: currentColor` + `mask-image(SVG)` → 헤더 글자색을 그대로
 *   따라간다(stroke='white' 를 하드코딩한 카트와 달리 색상 토큰이 바뀌면 함께 바뀜).
 *   크기는 `1em` = 위젯 font-size(검색 18px / 회원 20px) → 종전 렌더 박스와 동일.
 *
 * 【!important 이유】두 플러그인이 나중에 재활성화되면 폰트 글리프(`content:"\eXXX"`)와
 *   이 배경이 겹쳐 아이콘이 2개로 보인다. 항상 이 블록이 이기게 해 1개를 보장한다.
 *   → 폰트로 되돌리는 정본 절차 = 이 블록 삭제(+ 플러그인 활성화).
 *
 * 【적용 범위·해외 무영향】`.icon-search11`·`.icon-menu-11`·`.lnr-user`·`.jltma-material-icon-*` 를 가진 포스트는 운영 DB `_elementor_data`
 *   전수 스캔 결과 헤더 템플릿 2개(18467 국내 / 35380 해외)뿐이다. 언어호스트 홈 실측
 *   (global/jp) 결과 두 클래스 **0건** + booking.css **미링크** = 해외 영향 0.
 *   회원 아이콘은 해외에서 서버사이드 미출력(evt-language-domains.php should_render)이 정본.
 *   장바구니(`.lnr-cart`)는 이 블록이 건드리지 않는다(기존 DB CSS 그대로).
 */
.icon-search11,
.icon-menu-11,
.lnr-user,
.jltma-material-icon-keyboard_arrow_down {
    line-height: 1;
    /* ★박스를 `<i>` 자신에 준다 — ::before 만 키우면 부모가 옛 글리프 크기(18/20px)로 남아
     * 아이콘이 박스를 넘쳐 이웃과의 간격·수직 정렬이 틀어진다. 여기서 크기를 잡고 가운데 정렬한다. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* !important 필요 — 엘리멘터 frontend.min.css 의 `.elementor-icon i{width:1em;height:1em}` 가
     * 클래스 2개(0,2,0)라 단일 클래스 선택자보다 우선한다(실측: 24px 지정이 18px 로 눌림). */
    width: var(--evt-navicon-size, 1em) !important;
    height: var(--evt-navicon-size, 1em) !important;
}
.icon-search11::before,
.icon-menu-11::before,
.lnr-user::before,
.jltma-material-icon-keyboard_arrow_down::before {
    content: "" !important;
    display: block !important;
    /* 기본은 위젯 font-size(1em). 장바구니(28px 하드코딩)와 나란히 서는 아이콘만 아래에서 px 로 키운다
     * — 사장님 지적 2026-08-19 "장바구니 대비 너무 작아". 폰트 글리프 시절 크기(18/20px)를 그대로
     *   복원했더니 28px 카트 옆에서 작아 보였다. 카트가 기준이므로 카트에 맞춘다. */
    width: 100%;
    height: 100%;
    background-color: currentColor !important;
    -webkit-mask: var(--evt-navicon) center / contain no-repeat !important;
    mask: var(--evt-navicon) center / contain no-repeat !important;
}
/* 돋보기 — 원 + 손잡이(feather search 계열, 얇은 선) */
.icon-search11 {
    --evt-navicon-size: 24px;
    --evt-navicon: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.8'/%3E%3Cpath d='M15.8 15.8 21 21'/%3E%3C/svg%3E");
}
/* 3줄 햄버거 — 모바일 헤더 메뉴 토글(.elementor-menu-toggle).
 * 열림/닫힘 두 `<i>` 가 원본 템플릿에서 **동일한 `icon-menu-11`** 이다(엘리멘터가 display 로 교환).
 * 폰트 시절과 같은 그림을 유지하려고 닫기(X)로 바꾸지 않았다 — 디자인 변경은 별건으로 지시받을 때.
 */
.icon-menu-11 {
    --evt-navicon-size: 24px;
    --evt-navicon: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M3.5 6.5h17M3.5 12h17M3.5 17.5h17'/%3E%3C/svg%3E");
}
/* ∨ 화살표 — 서랍(모바일 햄버거) 안 하위메뉴 펼침 표시. 원본은 Material Icons `keyboard_arrow_down`.
 * 열림 상태 회전은 종전대로 상위 요소 transform 이 담당한다(마스크도 함께 회전).
 */
.jltma-material-icon-keyboard_arrow_down {
    --evt-navicon: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5 12 15.5 18 9.5'/%3E%3C/svg%3E");
}
/* 사람 — 머리 + 어깨(회원/마이페이지). 원본 Linearicons `lnr-user` 도 채움 없는 윤곽선이었다
 * (비활성 플러그인의 폰트를 직접 로드해 실측 확인). */
.lnr-user {
    --evt-navicon-size: 26px;
    --evt-navicon: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7.6' r='3.9'/%3E%3Cpath d='M4.6 20.4v-1a5 5 0 0 1 5-5h4.8a5 5 0 0 1 5 5v1'/%3E%3C/svg%3E");
}

/* === 모바일 반응형 (480px 이하) — 모달/탭 === */
@media (max-width: 480px) {
    .form-row-half {
        grid-template-columns: 1fr;
    }

    .evt-modal {
        max-height: 95vh;
        border-radius: 12px 12px 0 0;
        align-self: flex-end;
    }

    .tab-btn {
        padding: 6px 12px;
        font-size: 12px;
    }

    /* 장바구니 사이드패널 — 모바일 전체 너비 */
    .evt-cart-panel {
        width: 100%;
    }
}

/* ==========================================================
   이벤트 카드 슬라이더 [evt_event_cards]
   ========================================================== */
.evt-event-cards-section {
    position: relative;
    width: 100%;
    max-width: 1100px;
    margin: 20px auto;
}
.evt-cards-viewport {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
}
.evt-cards-track {
    display: flex;
    transition: transform 0.4s ease;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}
.evt-event-card {
    flex: 0 0 100%;
    min-width: 100%;
    position: relative;
}
.evt-card-link {
    display: block;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    cursor: pointer;
}
.evt-card-image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 16px;
    transition: transform 0.3s ease;
}
.evt-card-link:hover .evt-card-image {
    transform: scale(1.02);
}
.evt-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(0, 145, 145, 0.9);
    color: #fff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}
.evt-card-info {
    padding: 12px 8px;
    text-align: center;
}
.evt-card-title {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    margin: 0;
}
.evt-card-subtitle {
    font-size: 14px;
    color: #666;
    margin: 4px 0 0;
}

/* 카드 슬라이더 네비게이션 */
.evt-cards-btn {
    position: absolute;
    top: 45%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    border: none;
    color: #333;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    z-index: 5;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    transition: background 0.2s, transform 0.2s;
}
.evt-cards-btn:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.1);
}
.evt-cards-prev { left: 12px; }
.evt-cards-next { right: 12px; }

/* 도트 네비게이션 */
.evt-cards-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 12px 0 4px;
}
.evt-cards-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    cursor: pointer;
    transition: background 0.3s, transform 0.3s;
    padding: 0;
}
.evt-cards-dot.active {
    background: #009191;
    transform: scale(1.3);
}

/* 자동 탭 네비게이션 */
.evt-tab-nav-auto {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    padding: 12px 0;
}

/* 카드 슬라이더 내장 탭 */
.evt-cards-tab-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    padding: 0 0 12px;
}
.evt-cards-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    background: #f5f5f5;
    color: #555;
    border: 1px solid #ddd;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}
.evt-cards-tab:hover {
    background: #e8e8e8;
    color: #333;
}
.evt-cards-tab.active {
    background: #333;
    color: #fff;
    border-color: #333;
}

/* 카드 슬라이더 반응형 */
@media (max-width: 768px) {
    .evt-event-cards-section {
        margin: 12px auto;
    }
    .evt-cards-btn {
        width: 32px;
        height: 32px;
        font-size: 20px;
    }
    .evt-cards-prev { left: 6px; }
    .evt-cards-next { right: 6px; }
    .evt-card-title {
        font-size: 15px;
    }
    .evt-card-subtitle {
        font-size: 12px;
    }
    .evt-card-info {
        padding: 8px 4px;
    }
    .evt-cards-tab {
        padding: 6px 12px;
        font-size: 12px;
    }
}

/* ==========================================================
   Dr.Evers Ranking 섹션
   — 원본 Elementor 디자인 1:1 재현
   ========================================================== */

.evt-ranking-section {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif;
}

/* 탭 네비게이션 — 넓은 간격, 큰 텍스트, 밑줄 스타일 */
.evt-ranking-tabs {
    display: flex;
    border-bottom: 2px solid #e5e5e5;
    margin-bottom: 0;
}

.evt-ranking-tab {
    flex: 1;
    padding: 18px 0;
    font-size: 22px;
    font-weight: 700;
    color: #ccc;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s;
    text-align: center;
    letter-spacing: -0.02em;
}

.evt-ranking-tab:hover {
    color: #666;
}

.evt-ranking-tab.active {
    color: #009191;
    border-bottom-color: #009191;
}

/* 탭 콘텐츠 */
.evt-ranking-content {
    display: none;
}

.evt-ranking-content.active {
    display: block;
}

/* 레이아웃: 왼쪽 배너 + 오른쪽 리스트 */
.evt-ranking-layout {
    display: flex;
    gap: 40px;
    padding: 35px 0 20px;
    align-items: flex-start;
}

/* 왼쪽 배너 카드 — 이미지 위 텍스트 오버레이, 전체 클릭 */
.evt-ranking-banner {
    flex: 0 0 460px;
    position: relative;
    display: block;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    background: #1a1a1a;
}

.evt-ranking-banner:hover {
    text-decoration: none;
    color: #fff;
}

.evt-ranking-banner-img {
    width: 100%;
    height: auto;
    display: block;
}

/* 이미지 위 그라데이션 오버레이 */
.evt-ranking-banner-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 40px 28px 28px;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.35) 55%, transparent 100%);
    z-index: 2;
}

.evt-ranking-banner-title {
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 10px;
    line-height: 1.25;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

.evt-ranking-banner-subtitle {
    font-size: 15px;
    color: rgba(255,255,255,0.9);
    line-height: 1.5;
    margin: 0 0 18px;
    text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}

.evt-ranking-banner-cta {
    display: inline-block;
    padding: 10px 22px;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    border: 1.5px solid rgba(255,255,255,0.8);
    border-radius: 20px;
    transition: background 0.2s, border-color 0.2s;
}

.evt-ranking-banner:hover .evt-ranking-banner-cta {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
}

/* 오른쪽 리스트 영역 */
.evt-ranking-list {
    flex: 1;
    min-width: 0;
}

.evt-ranking-slider {
    overflow: hidden;
}

.evt-ranking-slide-track {
    display: flex;
    transition: transform 0.4s ease;
}

.evt-ranking-slide {
    flex: 0 0 100%;
    display: flex;
    flex-direction: column;
}

/* 개별 아이템 — 넉넉한 간격 */
.evt-ranking-item {
    display: flex;
    align-items: center;
    padding: 22px 12px;
    border-bottom: 1px solid #f0f0f0;
    gap: 16px;
}

.evt-ranking-item:last-child {
    border-bottom: none;
}

/* 순위 배지 — 큰 원 */
.evt-ranking-rank {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #009191;
    color: #fff;
    font-size: 19px;
    font-weight: 700;
    border-radius: 50%;
}

/* 1~3위 골드 */
.evt-ranking-item:nth-child(1) .evt-ranking-rank,
.evt-ranking-item:nth-child(2) .evt-ranking-rank,
.evt-ranking-item:nth-child(3) .evt-ranking-rank {
    background: #c8a94e;
}

.evt-ranking-item-info {
    flex: 1;
    min-width: 0;
}

/* 시술명 — 굵게, 크게 */
.evt-ranking-treatment {
    font-size: 20px;
    font-weight: 700;
    color: #222;
    display: block;
    line-height: 1.4;
}

.evt-ranking-brand {
    font-weight: 400;
    color: #666;
    font-size: 17px;
}

/* 가격 — 정가 작게 + 할인가 크게 빨간색 */
.evt-ranking-prices {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: auto;
    padding-left: 16px;
}

.evt-ranking-original {
    font-size: 15px;
    color: #bbb;
    text-decoration: line-through;
}

.evt-ranking-discount {
    font-size: 28px;
    font-weight: 700;
    color: #e53e3e;
}

.evt-ranking-empty {
    padding: 40px;
    text-align: center;
    color: #999;
}

/* 슬라이드 도트 네비게이션 — 중앙 정렬 */
.evt-ranking-dots {
    display: flex;
    gap: 10px;
    justify-content: center;
    padding: 18px 0 0;
}

.evt-ranking-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ddd;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}

.evt-ranking-dot.active {
    background: #009191;
}

/* 반응형 */
@media (max-width: 900px) {
    .evt-ranking-layout {
        gap: 24px;
    }

    .evt-ranking-banner {
        flex: 0 0 320px;
    }

    .evt-ranking-tab {
        font-size: 18px;
        padding: 14px 0;
    }

    .evt-ranking-item {
        padding: 16px 8px;
    }

    .evt-ranking-discount {
        font-size: 20px;
    }
}

@media (max-width: 768px) {
    .evt-ranking-section {
        padding: 0 12px;
    }

    .evt-ranking-tab {
        font-size: 16px;
        padding: 12px 0;
    }

    .evt-ranking-layout {
        flex-direction: column;
        gap: 24px;
        padding: 24px 0 16px;
    }

    .evt-ranking-banner {
        flex: none;
        width: 100%;
    }

    .evt-ranking-banner-title {
        font-size: 22px;
    }

    .evt-ranking-item {
        padding: 14px 4px;
        gap: 12px;
    }

    .evt-ranking-rank {
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        font-size: 14px;
    }

    .evt-ranking-treatment {
        font-size: 15px;
    }

    .evt-ranking-discount {
        font-size: 20px;
    }

    .evt-ranking-original {
        font-size: 12px;
    }
}

/* ── 모바일 터치타겟 확대 (2026-07-09 UX: 클릭영역만 44px 확보, 아이콘 시각크기 유지) ──
   min-width/height는 explicit width/height(및 !important width)를 이겨 레이아웃 변형 없이 hit-area만 키운다. */
@media (max-width: 768px) {
    /* 닫기 버튼 · 슬라이더 화살표: 44px */
    .modal-close,
    .cart-panel-close,
    .evt-cards-btn,
    .evt-header-section .banner-btn {
        min-width: 44px;
        min-height: 44px;
    }
    /* 예약 달력 이전/다음 화살표 (Elementor 인라인 CSS, width 미설정) — hit-area 44px + 글리프 중앙정렬 */
    #booking-shield-wrap .calendar-header button {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    /* 삭제(✕) — 파괴적 동작 오터치 방지: 40px */
    .cart-item-remove,
    .selected-item-remove {
        min-width: 40px;
        min-height: 40px;
    }
    /* iOS Safari 포커스 자동 줌 방지 (<16px 입력 필드).
       Elementor/테마 상속 규칙(≈14.6px)이 더 높은 우선순위라 shield-wrap 스코프 + !important로 이긴다.
       font-size만 강제(레이아웃 영향 최소). */
    #booking-shield-wrap input[type="text"],
    #booking-shield-wrap input[type="tel"],
    #booking-shield-wrap input[type="email"],
    #booking-shield-wrap input[type="number"],
    #booking-shield-wrap input[type="search"],
    #booking-shield-wrap textarea,
    #booking-shield-wrap select,
    .form-group input,
    .form-group textarea,
    .form-group select {
        font-size: 16px !important;
    }
}

/* ==========================================================================
   Dr.Evers Ranking — 아이템 설명 줄 (E열 설명 포함 옵션)
   --------------------------------------------------------------------------
   마크업은 ranking-inject.js가 생성한다(Elementor 원본에 설명 슬롯이 없음):
     .er-rank-left > .er-rank-textwrap > (.er-rank-name + .er-rank-desc)

   ⚠ 원본 랭킹 CSS는 front page(9639) _elementor_data 안의 <style>(= body 내부)에 있고
     선택자가 `.evers-ranking-wrap .er-rank-name`(2클래스)다. body를 앞에 붙여 특이도를 초과한다.
   설명이 없는 탭은 .er-rank-desc가 아예 생성되지 않으므로 기존 1줄 레이아웃은 변하지 않는다.
   ========================================================================== */
body .evers-ranking-wrap .er-ranking-item .er-rank-textwrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    gap: 2px;
}

body .evers-ranking-wrap .er-ranking-item .er-rank-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;      /* 2줄 말줄임 — 항목 높이 상한 고정(원본 항목 높이 20%) */
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    color: #666;
    word-break: keep-all;       /* 한글 어절 단위 줄바꿈 */
}

@media (max-width: 1024px) {
    body .evers-ranking-wrap .er-ranking-item .er-rank-desc {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    body .evers-ranking-wrap .er-ranking-item .er-rank-desc {
        font-size: 12px;
        line-height: 1.3;
    }
}
