
/* =========================================
   찜 목록 — 2열 세로 카드
========================================= */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px;padding:16px;background:var(--white)}
/* 세로 카드(.vcard)·하트(.heart)는 공통 tokens.css 사용 */

/* =========================================
   후기관리 / 카드 공통
========================================= */
.clist{display:flex;flex-direction:column;gap:10px;padding:16px}
/* 카드 텍스트는 공통 .fs-* (tokens.css) 사용 */
.mcard{background:var(--white);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}
.mcard__top{display:flex;align-items:center;justify-content:space-between}
.mcard__body{display:flex;gap:12px;align-items:flex-start}
/* 썸네일은 공통 .thumb .thumb--60 (tokens.css) 사용 */
.mcard__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.mcard__loc-row{display:flex;align-items:center;justify-content:space-between;gap:4px}
.mcard__name{line-height:24px}
.mcard__text{line-height:1.4}
.mcard__photos{display:flex;gap:4px}
.mcard__foot{display:flex;align-items:center;justify-content:space-between}
.help{display:flex;align-items:center;gap:4px}
.mcard__btns{display:flex;gap:8px}

/* =========================================
   쿠폰함
========================================= */
.coupon{position:relative;height:95px;border-radius:8px;overflow:hidden;display:flex;align-items:center;
  background:var(--blue-500);color:var(--white)}
.coupon--used{background:var(--g400)}
.coupon__main{flex:1;min-width:0;padding:0 16px;display:flex;flex-direction:column;gap:4px}
.coupon__title{font-size:16px;font-weight:700;letter-spacing:-.4px;line-height:24px}
.coupon__row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.coupon__desc{font-size:13px;font-weight:500;letter-spacing:-.3px}
.coupon__until{font-size:13px;letter-spacing:-.3px;opacity:.95}
.coupon__stub{position:relative;width:77px;height:95px;flex:none;display:flex;flex-direction:column;
  align-items:center;justify-content:center;border-left:1px dashed rgba(255,255,255,.9)}
.coupon__pct{font-size:16px;font-weight:700;line-height:24px}
.coupon__off{font-size:13px;line-height:18px}
.coupon__stub::before,.coupon__stub::after{content:"";position:absolute;left:-8px;width:16px;height:16px;
  border-radius:50%;background:var(--g50)}
.coupon__stub::before{top:-8px}
.coupon__stub::after{bottom:-8px}

/* =========================================
   설정
========================================= */
/* 텍스트는 공통 .fs-sub/.fs-body-b (tokens.css) 사용 */
.sect{background:var(--white);padding:20px 16px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px}
.srow{height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 8px}
.srow--plain{background:transparent;padding-left:8px}
.sect--plain{background:transparent;padding:20px 16px}

/* 토글 — 앱 터치용 사이즈 (48x28 · 노브 24px) */
.toggle{width:48px;height:28px;border-radius:100px;background:var(--g100);position:relative;flex:none;cursor:pointer;
  transition:background .2s}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:100px;background:var(--white);
  box-shadow:0 1px 3px rgba(17,17,17,.16);transition:transform .2s}
.toggle.on{background:var(--blue-500)}
.toggle.on::after{transform:translateX(20px)}

/* =========================================
   프로필 수정
========================================= */
.app--cta{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
.pe-avatar{background:var(--white);padding:28px 16px 24px;margin-bottom:8px;display:flex;flex-direction:column;align-items:center;gap:12px}
.pe-pic{position:relative;width:88px;height:88px;cursor:pointer}
.pe-pic__img{width:88px;height:88px;border-radius:50%;background:var(--g100);display:grid;place-items:center;color:var(--g400);font-size:44px;overflow:hidden}
.pe-pic__img img{width:100%;height:100%;object-fit:cover}
.pe-pic__cam{position:absolute;right:0;bottom:0;width:28px;height:28px;border-radius:50%;background:var(--blue-500);
  color:var(--white);display:grid;place-items:center;font-size:15px;border:2px solid var(--white)}
.pe-pic__file{display:none}
.pe-avatar__btn{font-size:14px;font-weight:600;color:var(--blue-500);letter-spacing:-.35px;background:none}
.pe-form{background:var(--white);padding:4px 16px 24px;display:flex;flex-direction:column;gap:18px}
.input-field--ro{background:var(--g50);color:var(--g500)}
.pe-cta{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:var(--app-max);z-index:30;
  background:var(--white);padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -1px 4px rgba(17,17,17,.1)}

/* =========================================
   공지사항 · FAQ 아코디언
========================================= */
.acc{background:var(--white)}
.acc__item{border-bottom:1px solid var(--g100)}
.acc__head{width:100%;display:flex;align-items:flex-start;gap:12px;padding:18px 16px;text-align:left;background:none}
.acc__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.acc__cat{align-self:flex-start;font-size:12px;font-weight:700;color:var(--blue-500);background:var(--blue-50);
  border-radius:4px;padding:2px 7px;letter-spacing:-.3px;line-height:16px}
.acc__title{font-size:16px;font-weight:600;color:var(--g900);letter-spacing:-.375px;line-height:20px}
.acc__date{font-size:14px;color:var(--g400);letter-spacing:-.3px}
.acc__caret{color:var(--g400);font-size:16px;flex:none;margin-top:2px;transition:transform .2s}
.acc__item.open .acc__caret{transform:rotate(180deg)}
.acc__body{display:none;padding:0 16px 18px;font-size:15px;color:var(--g700);letter-spacing:-.35px;
  line-height:1.65;white-space:pre-line}
.acc__item.open .acc__body{display:block}
/* FAQ 답변 — g50 박스 안에 배치 */
.acc__ans{background:var(--g50);border-radius:var(--radius-base);padding:14px 16px}
.acc__q{width:24px;height:24px;border-radius:50%;background:var(--blue-50);color:var(--blue-500);
  display:grid;place-items:center;font-size:13px;font-weight:700;flex:none}

/* =========================================
   이메일 로그인 · 회원가입 — 폼은 공통 .field/.input-field/.btn (tokens.css)
========================================= */
.acct-form{background:var(--white);padding:24px 16px calc(32px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:18px}
.acct-form .btn-cta{margin-top:6px}
.acct-links{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:2px}
.acct-links a{font-size:14px;color:var(--g500);letter-spacing:-.35px}
.acct-links .bar{width:1px;height:12px;background:var(--g200)}
/* 입력 오류 메시지 */
.field__err{display:none;font-size:13px;color:var(--red-500);letter-spacing:-.325px}
.field.is-error .field__err{display:block}
.field.is-error .input-field{border-color:var(--red-500)}

/* 약관 동의 박스 (회원가입) — 체크박스는 네이티브+accent (앱 공통 방식) */
.agree{border:1px solid var(--g200);border-radius:var(--radius-base);padding:2px 14px;
  display:flex;flex-direction:column}
.agree__row{display:flex;align-items:center;gap:10px;min-height:48px;cursor:pointer}
.agree__row--all{border-bottom:1px solid var(--g100)}
.agree__row--all .agree__label{font-weight:700}
.agree input[type="checkbox"]{width:20px;height:20px;accent-color:var(--blue-500);cursor:pointer;flex:none;margin:0}
.agree__label{flex:1;min-width:0;font-size:15px;color:var(--g900);letter-spacing:-.375px}
.agree__label em{font-style:normal;color:var(--blue-500);font-size:13px;margin-left:4px}
.agree__label em.opt{color:var(--g400)}
.agree__view{flex:none;width:32px;height:32px;display:grid;place-items:center;color:var(--g400)}

/* =========================================
   약관 · 정책 문서 (이용약관 / 개인정보처리방침)
========================================= */
.policy{background:var(--white);padding:20px 16px calc(40px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:24px}
.policy__updated{padding-bottom:16px;border-bottom:1px solid var(--g100)}
.policy__sec{display:flex;flex-direction:column;gap:8px}
.policy__h{font-size:16px;font-weight:700;color:var(--g900);letter-spacing:-.4px;line-height:24px}
.policy__p{font-size:15px;color:var(--g700);letter-spacing:-.35px;line-height:1.7}
.policy__p b{color:var(--g900);font-weight:600}
.policy ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.policy ol li{font-size:15px;color:var(--g700);letter-spacing:-.35px;line-height:1.7}

/* ---------- 쿠폰 사용 조건 (아코디언) ---------- */
.coupon{cursor:pointer}
.coupon__caret{transition:transform .2s ease}
.coupon--open .coupon__caret{transform:rotate(180deg)}
.coupon__terms{background:var(--white);border:1px solid var(--g200);border-radius:var(--radius-base);
  padding:12px 16px;margin-top:-4px;display:flex;flex-direction:column;gap:4px}
.coupon__terms p{font-size:13px;color:var(--g700);letter-spacing:-.325px;line-height:18px}
