/* 2026-11-09 앱 출시 안내·바닥글·앱 안내(/app/)·서비스 소개(/about/) 다듬기. 머리에서 평소 stylesheet로(첫 그림 전에 적용 — FOUC 없음).
   app.css·hamgae-ds.css는 고치지 않는다. 색은 사이트 변수(--primary·--text·--muted·--line·--surface) 그대로. */

/* ---------- 공식 스토어 배지 두 개를 같은 크기로(templates/components/_store_badges.html)
   Google Play 배지 PNG(646×250)는 그림 안에 투명 여백이 있다: ko·zh는 위아래 29px(보이는 높이 76.8%), en은 사방 41px(67.2%).
   Apple 'App Store에서 다운로드' SVG는 여백 없이 꽉 찬다. → 보이는 배지 높이를 둘 다 --sb-h로 맞춘다(그림 비율·모양은 그대로, 자르거나 늘이지 않음).
   투명 여백은 그대로 그림 안에 남고(배지 둘레 여백), 배치 높이만 같은 상자에 맞춘다. */
.sb-row { --sb-h: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; }
.sb-row.is-center { justify-content: center; }
.sb-row.is-lg { --sb-h: 48px; }
.sb { flex: none; display: inline-flex; align-items: center; justify-content: center; height: var(--sb-h); line-height: 0; border-radius: 9px; text-decoration: none; }
.sb img { display: block; width: auto; max-width: none; font-size: 12px; line-height: 1.3; color: var(--text, #191b1f); text-align: center; }  /* 그림을 못 받으면 대체 글(alt)이 겹치지 않게(줄 높이 0을 물려받지 않음) */
.sb-g img { height: calc(var(--sb-h) / .768); margin: calc(var(--sb-h) * -.151) 0; }
.sb-g.is-en img { height: calc(var(--sb-h) / .672); margin: calc(var(--sb-h) * -.244); }
.sb-a img { height: var(--sb-h); }
.sb:hover img { opacity: .9; }
.sb:focus-visible { outline: 3px solid var(--focus, #2f80ed); outline-offset: 3px; }
.sb-tm { margin: 6px 0 0; font-size: 10.5px; line-height: 1.45; color: var(--muted, #8a8f98); word-break: keep-all; }
@media (max-width: 339px) { .sb-row { flex-direction: column; align-items: flex-start; } .sb-row.is-center { align-items: center; } }

/* ---------- 바닥글 앱 안내(components/foot_app.html) — 아이콘·제목 한 줄, 배지 두 개 같은 크기, 상표 고지는 작은 보조 글 */
.fapp .sb-row { grid-column: 1 / -1; margin-top: 8px; }
.fapp .sb-tm { grid-column: 1 / -1; margin-top: 4px; }
@media (min-width: 768px) { .fapp .sb-row { grid-column: auto; margin-top: 0; flex-wrap: nowrap; } }

/* ---------- 팝업 '앱 정식 출시' 장(두 스토어) */
.hkp-stores { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.hkp-stores .sb-row { --sb-h: 40px; justify-content: center; }

/* ---------- 앱 안내 랜딩(/app/, recommendations/app.html) */
.al4 { max-width: 960px; margin: 0 auto; padding: 20px 0 calc(28px + env(safe-area-inset-bottom, 0px)); }
.al4-hero { display: flex; flex-direction: column; align-items: center; text-align: center; margin: 0 0 16px; padding: 26px 16px 24px; border-radius: 20px; background: var(--hg-primary-soft, #fff0f2); }
.al4-hero .al4-hero-dl { margin-top: 18px; }
@media (max-width: 479px) { .al4-hero { padding: 22px 12px 20px; } .al4-hero .al4-hero-dl { --sb-h: 40px; gap: 10px 12px; } }  /* 360px 이상 휴대폰에서 두 배지가 한 줄에 */
.al4-hero img.al4-icon { display: block; width: 88px; height: 88px; border-radius: 22px; box-shadow: 0 2px 12px rgba(201, 64, 91, .14); }
.al4-hero h1 { margin: 16px 0 0; font-size: clamp(22px, 6vw, 32px); line-height: 1.3; letter-spacing: -.02em; word-break: keep-all; }
.al4-lead { margin: 10px 0 0; max-width: 34em; font-size: 15.5px; line-height: 1.6; color: var(--muted, #6b7079); word-break: keep-all; }
.al4-chip { display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 0; padding: 5px 12px; border-radius: 999px; background: var(--surface, #fff); color: var(--hg-primary-text, #a8324a); font-size: 13px; font-weight: 700; }
.al4-open { display: inline-block; align-self: flex-start; font-size: 13.5px; color: var(--text, #191b1f); text-decoration: underline; text-underline-offset: 3px; }
.al4-cards { display: grid; gap: 12px; margin-top: 8px; }
.al4-card { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 18px; border: 1px solid var(--line, #e6e6e6); border-radius: 16px; background: var(--surface, #fff); }
.al4-card > .al4-credit:last-child { margin-top: auto; }
.al4-card-h { display: flex; align-items: center; gap: 12px; min-width: 0; }
.al4-logo { flex: none; width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--bg-soft, #f6f4f5); color: var(--text, #191b1f); }
.al4-logo img, .al4-logo svg { display: block; width: 28px; height: auto; }
.al4-name { min-width: 0; } .al4-name .al4-nh { display: block; margin: 0; font-size: 16px; font-weight: 700; line-height: 1.3; } .al4-name span { display: block; font-size: 13px; line-height: 1.4; color: var(--muted, #6b7079); }
.al4-ok { margin-left: auto; flex: none; padding: 4px 9px; border-radius: 999px; background: var(--hg-success-soft, #e9f6ef); color: #1d7a4a; font-size: 12px; font-weight: 700; white-space: nowrap; }
.al4-wait { margin-left: auto; flex: none; padding: 4px 9px; border-radius: 999px; background: var(--bg-soft, #f2f2f2); color: var(--muted, #6b7079); font-size: 12px; font-weight: 700; white-space: nowrap; }
.al4-qr { display: none; }
.al4-credit { margin: 0; font-size: 11px; line-height: 1.45; color: var(--muted, #8a8f98); word-break: keep-all; }
.al4-off { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1px dashed var(--line, #ddd); border-radius: 12px; color: var(--muted, #8a8f98); font-weight: 700; }
.al4-sec-h { margin: 28px 0 12px; font-size: 18px; text-align: center; }
.al4-feat { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.al4-feat li { display: flex; flex-direction: column; gap: 6px; height: 100%; box-sizing: border-box; padding: 16px 14px; border-radius: 14px; background: var(--bg-soft, #f7f5f6); }
.al4-feat .al4-fi { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; background: var(--surface, #fff); color: var(--primary, #C9405B); }
.al4-feat b { font-size: 14.5px; line-height: 1.35; word-break: keep-all; }
.al4-feat span.al4-fd { font-size: 13px; line-height: 1.5; color: var(--muted, #6b7079); word-break: keep-all; }
.al4-back { display: flex; justify-content: center; margin-top: 22px; }
.al4-back a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--line, #e6e6e6); border-radius: 999px; color: var(--text, #191b1f); text-decoration: none; font-weight: 600; font-size: 14px; }
@media (min-width: 720px) {
  .al4 { padding-top: 32px; }
  .al4-cards { grid-template-columns: 1fr 1fr; }
  .al4-feat { grid-template-columns: repeat(4, 1fr); }
  .al4-qr { display: flex; align-items: center; gap: 12px; margin: 0; }
  .al4-qr img { flex: none; width: 104px; height: 104px; padding: 6px; border: 1px solid var(--line, #e6e6e6); border-radius: 12px; background: #fff; }
  .al4-qr figcaption { font-size: 12.5px; line-height: 1.5; color: var(--muted, #6b7079); word-break: keep-all; }
}
@media (max-width: 340px) { .al4-feat { grid-template-columns: 1fr; } .al4-hero img.al4-icon { width: 72px; height: 72px; border-radius: 18px; } }

/* ---------- 서비스 소개(/about/, core/about.html) — 포도와 동글이 이야기 */
.about-hero > img { display: block; margin: 0 auto; }  /* 로고 가운데(전역 img{display:block} 때문에 text-align으로는 가운데가 안 됐다) */
.ab-tagline { margin: 10px auto 0; max-width: 30em; font-size: clamp(17px, 4.6vw, 21px); font-weight: 700; line-height: 1.45; text-align: center; word-break: keep-all; }
.ab-intro { margin: 10px auto 0; max-width: 36em; color: var(--muted, #6b7079); line-height: 1.7; text-align: center; word-break: keep-all; }
.ab-story { max-width: 40em; margin: 32px auto 0; }
.ab-story h2, .ab-values h2 { text-align: center; }
.ab-figure { margin: 16px auto 18px; max-width: 520px; }
.ab-figure img { display: block; width: 100%; height: auto; aspect-ratio: 720 / 402; border-radius: 18px; background: #fff8f0; }
.ab-figure figcaption { margin-top: 8px; font-size: 13px; color: var(--muted, #6b7079); text-align: center; }
.ab-story p { margin: 0 0 14px; line-height: 1.85; word-break: keep-all; }
.ab-quote { margin: 18px 0; padding: 14px 18px; border-left: 3px solid var(--primary, #C9405B); background: var(--bg-soft, #faf6f7); border-radius: 0 12px 12px 0; font-weight: 600; line-height: 1.7; word-break: keep-all; }
.ab-story .ab-wish { font-weight: 700; color: var(--hg-primary-text, #a8324a); }
.ab-values { max-width: 960px; margin: 32px auto 0; }
.ab-vals { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.ab-vals li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 4px 12px; align-items: start; padding: 16px; border: 1px solid var(--line, #e6e6e6); border-radius: 14px; background: var(--surface, #fff); }
.ab-vals .ab-vi { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--hg-primary-soft, #fff0f2); color: var(--primary, #C9405B); }
.ab-vals h3 { margin: 0; font-size: 16px; }
.ab-vals p { margin: 0; color: var(--muted, #6b7079); line-height: 1.6; word-break: keep-all; }
.ab-closing { max-width: 760px; margin: 36px auto 8px; text-align: center; }
.ab-closing p { margin: 0 0 6px; line-height: 1.7; word-break: keep-all; }
.ab-closing .ab-closing-h { font-size: clamp(17px, 4.4vw, 20px); font-weight: 700; }
.ab-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 16px 0 0; }
.ab-cta .btn { min-height: 44px; }
@media (min-width: 720px) { .ab-vals { grid-template-columns: repeat(3, 1fr); } .ab-vals li { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; } .ab-vals .ab-vi { grid-row: auto; } }

/* ---------- 다크 모드(사이트는 머리 스크립트가 늘 data-theme를 정한다. 연한 바탕·강조 글자는 --hg-* 변수가 다크 값으로 바뀐다 — 나머지만) */
:root[data-theme="dark"] .al4-ok { color: #8fd3b0; }
:root[data-theme="dark"] .al4-feat li, :root[data-theme="dark"] .al4-logo, :root[data-theme="dark"] .ab-quote { background: rgba(255, 255, 255, .06); }
:root[data-theme="dark"] .ab-figure img { background: #2a2421; }

/* ======================= 2026-11-09 밤: 바닥글 앱 안내 간소화 · 업종 전체 창 · /creators/ ======================= */

/* ---------- 바닥글 앱 안내(components/foot_app.html .fapp2 — 두 스토어 출시 때): 아이콘 · 제목 · 한 줄 설명 · 배지 둘 · 앱 자세히 보기. 상표 고지는 바닥글 .foot-tm */
.fapp2 { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "ico txt" "act act"; align-items: center; gap: 10px 12px; margin: 4px 0 12px; padding: 12px 14px; border: 1px solid var(--line, #ece6e7); border-radius: 14px; background: var(--surface, #fff); color: var(--text, #191b1f); }
.fapp2 > img { grid-area: ico; align-self: start; display: block; width: 40px; height: 40px; border-radius: 10px; }
.fapp2-txt { grid-area: txt; min-width: 0; }
.fapp2-h { margin: 0; font-size: 14.5px; font-weight: 700; line-height: 1.35; word-break: keep-all; }
.fapp2-h a { color: inherit; text-decoration: none; min-height: 0; }
.fapp2-d { margin: 2px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--muted, #6b7079); word-break: keep-all; }
.fapp2-act { grid-area: act; display: flex; align-items: center; min-width: 0; }
.fapp2-act .sb-row { --sb-h: 36px; gap: 8px 10px; margin: 0; flex-direction: row; align-items: center; }
.fapp2-more { display: inline; padding: 6px 0; font-weight: 600; color: var(--brand-text, #c9405b); text-decoration: none; white-space: nowrap; }  /* 줄 높이는 그대로, 누르는 범위만 위아래로 */
.fapp2-more .icon { width: 13px; height: 13px; vertical-align: -2px; }
.fapp2-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.fapp2-more:focus-visible { outline: 3px solid var(--focus, #2f80ed); outline-offset: 2px; border-radius: 6px; }
@media (min-width: 768px) {
  .fapp2 { grid-template-columns: 40px minmax(0, 1fr) auto; grid-template-areas: "ico txt act"; gap: 0 16px; padding: 12px 16px; max-width: 920px; }
  .fapp2 > img { align-self: center; }
  .fapp2-act .sb-row { flex-wrap: nowrap; }
}
.foot-tm { margin-top: 6px !important; font-size: 11px; line-height: 1.5; color: var(--muted, #8a8f98); word-break: keep-all; }

/* ---------- 업종 전체 창(places/_cat_sheet.html — 홈·장소 화면 공용)
   카드 높이 하나(긴 이름은 두 줄까지 같은 높이 안에서), 아이콘 36px 한 가지, 이름(굵게)과 장소 수(작은 회색 숫자) 분리, 테두리·그림자 없음 */
#cat-sheet .sheet-body { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
#cat-sheet .cs-h { margin: 18px 0 8px; font-size: 14px; font-weight: 700; color: var(--hg-text-secondary, #5b6068); letter-spacing: .01em; }
#cat-sheet .cs-h:first-child { margin-top: 0; }
#cat-sheet .cs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(78px, auto); gap: 8px; }
#cat-sheet .cs-item { box-sizing: border-box; height: 100%; min-height: 78px; gap: 10px; padding: 10px 12px; border: 0; box-shadow: none; }
#cat-sheet .cs-item .hx-ico { flex: none; width: 36px; height: 36px; border-radius: 11px; }
#cat-sheet .cs-item .hx-ico .icon { width: 20px; height: 20px; }
#cat-sheet .cs-txt { gap: 2px; justify-content: center; }
#cat-sheet .cs-lab { font-size: 15px; line-height: 1.3; word-break: keep-all; overflow-wrap: anywhere; }
#cat-sheet .cs-n { font-size: 12.5px; line-height: 1.35; font-variant-numeric: tabular-nums; color: var(--hg-text-secondary, #6b7079); }
@media (max-width: 359px) { #cat-sheet .cs-grid { gap: 6px; } #cat-sheet .cs-item { gap: 8px; padding: 10px; } #cat-sheet .cs-item .hx-ico { width: 32px; height: 32px; } #cat-sheet .cs-lab { font-size: 14px; } }
@media (min-width: 600px) { #cat-sheet .cs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- /creators/(creators/landing.html .cr-v2) — 심플한 서비스형: 가운데 첫 칸 · 같은 모양 카드 · 단추 한 가지 크기 · 그라데이션·그림자 없음 */
.cr-v2.read { max-width: 960px; }
.cr-v2 .cr-hero { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 32px 0 8px; }
.cr-v2 .cr-hero .kicker { display: inline-flex; align-items: center; margin: 0; padding: 4px 12px; border-radius: 999px; background: var(--hg-primary-soft, #fff0f2); color: var(--hg-primary-text, #a8324a); font-size: 13px; font-weight: 700; }
.cr-v2 .cr-hero h1 { max-width: 20em; margin: 14px auto 10px; font-size: clamp(24px, 5.2vw, 34px); line-height: 1.35; letter-spacing: -.02em; text-wrap: balance; }
.cr-v2 .cr-hero-sub { max-width: 34em; margin: 0 auto 6px; font-size: 16px; line-height: 1.65; }
.cr-v2 .cr-platforms { margin: 0 0 20px; }
.cr-v2 .cr-cta { width: 100%; align-items: center; gap: 8px; }
.cr-v2 .cr-cta .btn { box-sizing: border-box; min-width: 220px; min-height: 48px; padding: 0 24px; border-radius: 12px; font-size: 16px; font-weight: 700; box-shadow: none; }
.cr-v2 .cr-cta-note { text-align: center; }
@media (max-width: 480px) { .cr-v2 .cr-cta .btn { width: 100%; max-width: 340px; min-width: 0; } }
.cr-v2 .cr-sec { margin-top: 44px; padding-top: 0; border-top: 0; }
.cr-v2 .cr-sec > h2, .cr-v2 .cr-bottom > h2 { margin: 0 0 14px; font-size: 20px; line-height: 1.35; text-wrap: balance; }
.cr-v2 .cr-sub { margin: 20px 0 10px; font-size: 15px; font-weight: 700; color: var(--text-2, #5b6068); }
.cr-v2 .cr-sec > p.xsmall, .cr-v2 .cr-sec > p.small { margin-top: 10px; }
/* 카드 묶음(혜택·활동·할 수 있는 일·절차): 모양 하나 — 연한 바탕, 둥근 14px, 안쪽 16px, 줄마다 같은 높이 */
.cr-v2 .cr-benefits, .cr-v2 .cr-areas, .cr-v2 .cr-do, .cr-v2 .cr-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; }
.cr-v2 .cr-benefits li, .cr-v2 .cr-areas li, .cr-v2 .cr-do li, .cr-v2 .cr-steps li { box-sizing: border-box; display: flex; align-items: flex-start; gap: 12px; min-width: 0; padding: 16px; border-radius: 14px; background: var(--hg-surface-subtle, var(--bg-soft, #f7f5f6)); }
.cr-v2 .cr-do li { align-items: center; font-weight: 600; }
.cr-v2 .cr-ico { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; background: var(--hg-primary-soft, #fff0f2); color: var(--hg-primary-text, #a8324a); }
.cr-v2 .cr-ico .icon { width: 20px; height: 20px; }
.cr-v2 .cr-benefits.is-later .cr-ico { background: var(--surface, #fff); color: var(--text-muted, #8a8f98); }
.cr-v2 .cr-benefits strong, .cr-v2 .cr-areas strong, .cr-v2 .cr-steps strong { display: block; font-size: 15.5px; line-height: 1.4; }
.cr-v2 .cr-benefits small, .cr-v2 .cr-areas small, .cr-v2 .cr-steps small { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.55; color: var(--text-muted, #6b7079); word-break: keep-all; }
.cr-v2 .cr-steps b { flex: 0 0 32px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--primary, #C9405B); color: #fff; font-size: 14px; font-weight: 800; }
@media (min-width: 640px) {  /* 나란히 놓일 때만 줄마다 같은 높이(한 줄짜리 휴대폰 목록은 내용 높이) */
  .cr-v2 .cr-benefits, .cr-v2 .cr-areas, .cr-v2 .cr-do, .cr-v2 .cr-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; }
}
@media (max-width: 639px) { .cr-v2 .cr-benefits li, .cr-v2 .cr-areas li, .cr-v2 .cr-do li, .cr-v2 .cr-steps li { padding: 14px; } }
@media (min-width: 900px) {
  .cr-v2 .cr-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cr-v2 .cr-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cr-v2 .cr-steps li { flex-direction: column; }
}
.cr-v2 .cr-groups { gap: 14px; }
.cr-v2 .cr-groups dt { margin-bottom: 6px; font-size: 14px; }
.cr-v2 .cr-chip { align-items: center; min-height: 32px; padding: 0 12px; font-size: 13.5px; }
.cr-v2 .cr-fair > p:first-of-type { max-width: 44em; line-height: 1.65; }
.cr-v2 .cr-faq { border-top: 1px solid var(--border, #ece6e7); }
.cr-v2 .cr-faq summary { min-height: 52px; padding: 12px 0; font-size: 15px; }
.cr-v2 .cr-faq details p { line-height: 1.65; }
.cr-v2 .cr-bottom { display: flex; flex-direction: column; align-items: center; margin-top: 48px; padding: 32px 20px; border-radius: 18px; background: var(--hg-primary-soft, #fff0f2); text-align: center; box-shadow: none; }
.cr-v2 .cr-bottom > h2 { margin-bottom: 16px; }
:root[data-theme="dark"] .cr-v2 .cr-benefits.is-later .cr-ico { background: rgba(255, 255, 255, .06); }
