  /* 레퍼런스(glowuprizz.com)의 검정·흰색에 힘찬 대표 채널의 짙은 초록을 강조색으로 더한다 (2026-11-10 — 라임은 너무 튄다는 의견, --accent-light 는 검정 바탕용) */
  :root { --ink:#000; --paper:#fff; --line:#EEEEEE; --mute:#8F8F8F; --sub:#4F4F4F; --tile:#F4F4F4; --accent:#2C3C2F; --accent-ink:#2C3C2F; --accent-soft:#EEF1EC; --accent-light:#A9C4AE; }
  * { box-sizing:border-box; margin:0; padding:0; }
  body { font-family:'Noto Sans KR', -apple-system, sans-serif; font-weight:400; color:var(--ink); background:var(--paper); line-height:1.7; word-break:keep-all; }
  a { color:inherit; text-decoration:none; }
  .wrap { max-width:1200px; margin:0 auto; padding:0 24px; }
  section { padding:120px 0; }
  .label { font-size:13px; font-weight:700; letter-spacing:.2em; color:var(--ink); margin-bottom:16px; }
  .instructors .label, .page-head .label { color:var(--paper); }  /* 검정 바탕 칸에서는 흰색 */
  h2 { font-size:34px; font-weight:700; letter-spacing:-.02em; margin-bottom:48px; }

  /* 헤더 — 검정, 메뉴 가운데 */
  header { position:sticky; top:0; z-index:10; background:var(--ink); color:var(--paper); }
  header .wrap { max-width:none; padding:0 40px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; height:76px; }
  header .logo img { height:26px; display:block; }
  nav { display:flex; gap:48px; font-size:16px; font-weight:500; }
  nav a:hover { color:var(--mute); }
  /* 클래스 하위 메뉴 — 올리면(키보드는 포커스) 아래로 펼친다 */
  .has-sub { position:relative; }
  .has-sub .sub { position:absolute; top:100%; left:50%; min-width:140px; padding:14px 0; margin-top:26px;
                  background:var(--ink); border:1px solid #333; display:flex; flex-direction:column; text-align:center;
                  opacity:0; visibility:hidden; transform:translate(-50%,-8px); transition:.25s; }
  .has-sub .sub::before { content:""; position:absolute; left:0; right:0; top:-27px; height:27px; } /* 메뉴와 상자 사이 틈에서 닫히지 않게 */
  .has-sub .sub a { padding:10px 20px; font-size:15px; white-space:nowrap; }
  .has-sub:hover .sub, .has-sub:focus-within .sub { opacity:1; visibility:visible; transform:translate(-50%,0); }
  header .btn { justify-self:end; border-color:var(--paper); }
  header .btn:hover { background:var(--paper); color:var(--ink); }
  .btn { display:inline-block; border:1px solid var(--ink); padding:10px 22px; font-size:14px; font-weight:500; transition:.2s; }
  .btn:hover { background:var(--ink); color:var(--paper); }
  .btn.solid { background:var(--ink); color:var(--paper); }
  .btn.solid:hover { background:var(--accent); border-color:var(--accent); color:#fff; }

  /* 히어로 */
  /* 히어로 — 검정 바탕에 점 격자가 가운데서 물결처럼 퍼진다 (Anime.js) */
  .hero { position:relative; overflow:hidden; min-height:calc(100vh - 76px); display:flex; align-items:center; text-align:center; background:var(--ink); color:var(--paper); }
  .hero .dots { position:absolute; inset:0; display:grid; place-content:center; pointer-events:none; }
  .hero .dot { width:4px; height:4px; margin:18px; border-radius:50%; background:#fff; opacity:.15; }
  .hero .wrap { position:relative; width:100%; }
  .hero p { font-size:clamp(24px,3.6vw,40px); font-weight:500; line-height:1.5; }
  .hero strong { font-weight:800; }
  .hero .btn { margin-top:44px; border-color:var(--paper); background:var(--paper); color:var(--ink); }
  .hero .btn:hover { background:transparent; color:var(--paper); }
  .hero .line { display:block; }

  /* 커서 자리 빛 — 답답봇 motion.js 와 같은 방식(--mx · --my) */
  .spot { position:relative; overflow:hidden; }
  .spot::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s;
                 background:radial-gradient(320px circle at var(--mx,-999px) var(--my,-999px), var(--glow,rgba(255,255,255,.22)), transparent 60%); }
  .spot:hover::after { opacity:1; }
  .review.spot { --glow:rgba(0,0,0,.06); }

  /* 클래스 카드 */
  .cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .card .img { aspect-ratio:4/5; background:linear-gradient(200deg,#f2f2f2,#cfcfcf); margin-bottom:20px; transition:.3s; }
  .card:hover .img { filter:brightness(.92); }
  .card h3 { font-size:21px; font-weight:700; }
  .card span { font-size:14px; color:var(--mute); }

  /* 브랜드 메시지 */
  .message { background:var(--ink); color:var(--paper); text-align:center; }
  .message p { font-size:clamp(20px,2.6vw,28px); font-weight:500; line-height:1.9; }

  /* 가치관 3가지 */
  .values { display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid var(--ink); }
  .values div { padding:40px 32px 0 0; }
  .values b { display:block; font-size:28px; font-weight:800; color:var(--accent-ink); margin-bottom:12px; }
  .values h3 { font-size:23px; font-weight:700; margin-bottom:12px; }
  .values p { color:var(--sub); font-size:15px; }

  /* 강사진 — 검정 바탕 배너 카드 */
  .instructors { background:#0b0b0b; color:var(--paper); }
  .people { display:grid; grid-template-columns:repeat(3,1fr); gap:40px 24px; }
  .person .img { aspect-ratio:16/10; border-radius:14px; margin-bottom:16px; overflow:hidden;
                 background:linear-gradient(135deg,#3a3a3a,#1c1c1c); display:flex; align-items:center; justify-content:center; color:#666; font-size:14px; transition:transform .4s; }
  .person:hover .img { transform:translateY(-6px); }
  .person h3 { font-size:22px; font-weight:700; }
  .person span { font-size:15px; color:var(--mute); }
  .center { text-align:center; margin-top:56px; }
  .instructors .btn { border-color:var(--paper); }
  .instructors .btn:hover { background:var(--paper); color:var(--ink); }

  /* 후기 */
  .reviews { background:var(--accent-soft); }
  .review-list { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .review { position:relative; background:var(--paper); padding:56px 32px 36px; border-radius:16px; border-top:4px solid var(--accent); box-shadow:0 10px 30px rgba(44,60,47,.08); transition:transform .3s, box-shadow .3s; }
  .review:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(78,122,0,.14); }
  .review::before { content:"\201C"; position:absolute; left:28px; top:6px; font-size:64px; font-weight:800; line-height:1; color:var(--accent); }
  .review h3 { font-size:19px; font-weight:800; margin-bottom:6px; }
  .review .who { display:inline-block; font-size:12px; font-weight:700; color:var(--accent-ink); background:var(--accent-soft); padding:2px 10px; border-radius:99px; margin-bottom:18px; }
  .review p { font-size:15px; color:var(--sub); display:-webkit-box; -webkit-line-clamp:7; -webkit-box-orient:vertical; overflow:hidden; }
  .cafe { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:64px; padding-top:40px; border-top:1px solid #D3DBD4; }
  .cafe h3 { font-size:23px; font-weight:700; }
  .cafe p { color:var(--sub); }

  /* 문의 */
  .contact .grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
  .contact dl { display:grid; grid-template-columns:120px 1fr; gap:14px 0; font-size:15px; }
  .contact dt { color:var(--mute); font-weight:500; }
  .contact .btn { margin-top:28px; }

  /* 푸터 — 검정 */
  footer { background:var(--ink); color:#bbb; padding:72px 0 40px; font-size:14px; }
  footer .top { display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:48px; border-bottom:1px solid #333; }
  footer img { height:26px; }
  footer .links { display:flex; flex-wrap:wrap; gap:12px 40px; }  /* 법적 고지 3개만 (2026-11-12) */
  footer .links a:hover { color:var(--accent-light); }
  /* 하단 큰 글씨가 왼쪽으로 계속 흐른다 — 같은 줄을 두 번 이어 붙여 -50% 만큼 밀면 끊김 없이 돈다 */
  .marquee { overflow:hidden; margin-bottom:72px; }
  .marquee .track { display:flex; width:max-content; animation:flow 30s linear infinite; }
  .marquee span { font-family:'Noto Sans KR', sans-serif; font-size:clamp(64px,11vw,180px); font-weight:700; color:var(--paper); line-height:1.1; padding-right:.6em; white-space:nowrap; letter-spacing:-.01em; }
  @keyframes flow { to { transform:translateX(-50%); } }
  @media (prefers-reduced-motion:reduce) { .marquee .track { animation:none; } }
  footer .copy { padding-top:28px; color:var(--mute); font-size:13px; }

  /* 스크롤 모션 — 화면에 들어오면 아래에서 떠오른다 */
  .reveal { opacity:0; transform:translateY(40px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
  .reveal.on { opacity:1; transform:none; }
  @media (prefers-reduced-motion:reduce) { .reveal { opacity:1; transform:none; transition:none; } }

  @media (max-width:900px) {
    section { padding:80px 0; }
    nav { display:none; }
    header .wrap { grid-template-columns:1fr auto; }
    .cards, .values, .review-list, .contact .grid { grid-template-columns:1fr; }
    .values div { padding:32px 0; border-bottom:1px solid var(--line); }
    .people { grid-template-columns:1fr; }
    .cafe { flex-direction:column; align-items:flex-start; }
  }

  /* 무료강의 · 유료강의 목록 페이지 머리 */
  .page-head { background:var(--ink); color:var(--paper); padding:120px 0 40px; }
  .page-head h1 { font-size:clamp(36px,5vw,56px); font-weight:800; letter-spacing:-.02em; margin-bottom:12px; }
  .page-head p { color:#bbb; font-size:17px; }
  .page-head + .instructors { background:var(--ink); padding-top:40px; }
  .person .tag { display:inline-block; margin-top:10px; font-style:normal; font-size:14px; font-weight:500; color:var(--paper); }

  /* 강사 배너 — 정사각형 3장이 화면 가로를 꽉 채운다. 사진은 인물이 오른쪽이라 오른쪽 기준으로 자른다 */
  .banners { display:grid; grid-template-columns:repeat(3,1fr); gap:48px 12px; padding:0 12px; }
  .banner .art { position:relative; aspect-ratio:1/1; max-width:100%; border-radius:16px; overflow:hidden; margin-bottom:18px; background:#222; }
  .banner img { width:100%; height:100%; object-fit:cover; object-position:right center; display:block; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  .banner:hover img { transform:scale(1.04); }
  .banner .copy { position:absolute; left:7%; top:8%; right:34%; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.35); z-index:1; }
  .banner .copy.dark { color:#24461A; text-shadow:0 1px 10px rgba(255,255,255,.5); }
  .banner .copy small { display:block; font-size:clamp(12px,1vw,16px); font-weight:500; margin-bottom:12px; opacity:.9; }
  .banner .copy b { display:block; font-size:clamp(20px,1.8vw,32px); font-weight:800; line-height:1.2; letter-spacing:-.03em; }
  .banner .copy em { font-style:normal; }
  .banner .copy span { display:block; margin-top:14px; font-size:clamp(12px,1vw,16px); font-weight:500; opacity:.9; }
  .banner h3 { font-size:24px; font-weight:700; padding:0 6px; }
  .banner p { font-size:15px; color:var(--mute); padding:0 6px; }
  @media (max-width:900px) { .banners { grid-template-columns:1fr; } .banner .copy b { font-size:30px; } }

  /* 첫 화면 배너 슬라이드 — 사진은 인물이 오른쪽, 글은 왼쪽. 5초마다 넘어가고 올려 두면 멈춘다 */
  .slider { position:relative; height:clamp(420px,38vw,640px); overflow:hidden; background:var(--ink); color:var(--paper); }
  .slide { position:absolute; inset:0; background-size:cover; background-position:right center; display:flex; align-items:center;
           opacity:0; visibility:hidden; transition:opacity .8s ease, visibility .8s; }
  .slide.on { opacity:1; visibility:visible; }
  .slide .wrap { width:100%; }
  .slide .text { max-width:560px; }
  .slide h1 { font-size:clamp(28px,3.4vw,52px); font-weight:800; line-height:1.3; letter-spacing:-.02em; text-shadow:0 2px 16px rgba(0,0,0,.25); }
  .slide p { margin-top:20px; font-size:clamp(15px,1.3vw,19px); font-weight:500; }
  .slide .cta { display:inline-block; margin-top:36px; padding:16px 44px; border-radius:999px; background:var(--accent); color:#fff; font-weight:700; font-size:17px; transition:transform .2s, filter .2s; }
  .slide .cta:hover { transform:translateY(-2px); filter:brightness(1.1); }
  .slide .text > * { opacity:0; transform:translateY(24px); transition:opacity .7s, transform .7s cubic-bezier(.2,.7,.2,1); }
  .slide.on .text > * { opacity:1; transform:none; }
  .slide.on .text > :nth-child(2) { transition-delay:.12s; }
  .slide.on .text > :nth-child(3) { transition-delay:.24s; }
  .arrow { position:absolute; top:50%; transform:translateY(-50%); background:none; border:0; color:#fff; font-size:56px; line-height:1; padding:12px 20px; cursor:pointer; opacity:.7; z-index:2; }
  .arrow:hover, .arrow:focus-visible { opacity:1; }
  .arrow.prev { left:12px; } .arrow.next { right:12px; }
  .dots-nav { position:absolute; left:50%; bottom:28px; transform:translateX(-50%); display:flex; gap:8px; z-index:2; }
  .dots-nav button { width:10px; height:10px; border-radius:999px; border:0; padding:0; background:rgba(255,255,255,.45); cursor:pointer; transition:width .3s, background .3s; }
  .dots-nav button.on { width:34px; background:#fff; }
  @media (prefers-reduced-motion:reduce) { .slide, .slide .text > * { transition:none; } }
  @media (max-width:900px) {
    .slider { height:520px; }
    .slide { align-items:flex-end; padding-bottom:80px; background-position:72% center; }
    .slide::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 70%); }
    .slide .wrap { position:relative; }
    .arrow { display:none; }
  }
  @media (max-width:900px) {
    header .wrap { padding:0 16px; }
    header .btn { padding:8px 14px; font-size:13px; }
    .slide::before { background:linear-gradient(0deg,rgba(0,0,0,.85) 10%,rgba(0,0,0,.35) 55%,transparent 80%); }
  }

  /* 이달의 강의 일정 달력 */
  .cal-head { display:flex; justify-content:center; align-items:center; gap:32px; margin-bottom:28px; }
  .cal-title { font-size:34px; font-weight:800; font-variant-numeric:tabular-nums; min-width:180px; text-align:center; }
  .cal-nav { width:44px; height:44px; border-radius:50%; border:1.5px solid var(--ink); background:none; font-size:26px; line-height:1; cursor:pointer; transition:.2s; }
  .cal-nav:hover, .cal-nav:focus-visible { background:var(--ink); color:var(--paper); }
  .cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:3px solid var(--ink); }
  .cal-grid .dow { padding:12px 0; text-align:center; font-size:14px; font-weight:700; background:var(--tile); border-bottom:1px solid #ddd; }
  .cal-grid .day { min-height:130px; padding:10px; border-right:1px solid #e3e3e3; border-bottom:1px solid #e3e3e3; display:flex; flex-direction:column; gap:6px; min-width:0; }
  .cal-grid .day:nth-child(7n) { border-right:0; }
  .cal-grid .num { font-size:14px; font-variant-numeric:tabular-nums; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; }
  .cal-grid .sun { color:#C2185B; } .cal-grid .sat { color:#1E88C9; }
  .cal-grid .other .num { opacity:.3; }
  .cal-grid .today .num { background:var(--ink); color:var(--paper); font-weight:700; }
  .ev { display:block; padding:6px 8px; border-radius:6px; background:var(--ev); color:#fff; font-size:13px; line-height:1.35; overflow:hidden; transition:filter .2s; }
  .ev:hover { filter:brightness(1.12); }
  /* 신청 링크가 있는 다가올 강의: 올리면 「단톡방 입장하기」가 덮인다 */
  .ev { position:relative; }
  .ev i { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:var(--ev); color:#fff; font-style:normal; font-weight:700; opacity:0; transition:opacity .2s; }
  .ev:hover i, .ev:focus-visible i { opacity:1; }
  .ev b { display:block; font-weight:700; }
  .ev.past { opacity:.4; }
  @media (max-width:700px) {
    .cal-title { font-size:24px; min-width:120px; }
    .cal-grid .day { min-height:64px; padding:4px; }
    .ev { padding:3px 4px; font-size:11px; } .ev span { display:none; }
  }

  /* 로그인 · 회원가입 */
  .auth { background:var(--tile); padding:100px 16px; }
  .auth-box { max-width:420px; margin:0 auto; background:var(--paper); padding:48px 40px; }
  .auth h1 { font-size:30px; font-weight:800; margin-bottom:28px; text-align:center; }
  .auth-form { display:flex; flex-direction:column; gap:8px; }
  .auth-form label { font-size:14px; font-weight:500; margin-top:10px; }
  .auth-form input:not([type=checkbox]) { height:48px; padding:0 14px; border:1px solid #ccc; font:inherit; font-size:15px; }
  .auth-form input:focus { outline:2px solid var(--ink); outline-offset:-1px; }
  .auth-form .check { display:flex; gap:8px; align-items:center; font-weight:400; }
  .auth-form .btn { margin-top:20px; height:52px; font-size:16px; cursor:pointer; }
  .kakao { height:52px; border:0; background:#FEE500; color:#191919; font:inherit; font-size:16px; font-weight:700; cursor:pointer; }
  .form-note { margin-top:12px; padding:12px; background:var(--tile); font-size:14px; text-align:center; }
  .auth-alt { margin-top:24px; text-align:center; font-size:14px; color:var(--sub); }
  .auth-alt a { color:var(--ink); font-weight:700; text-decoration:underline; }
  @media (max-width:500px) { .auth-box { padding:36px 20px; } }
  footer .biz { display:flex; flex-wrap:wrap; gap:6px 0; padding-top:32px; color:#D0D0D0; font-size:14px; line-height:1.7; }
  footer .biz > * { padding-right:12px; margin-right:12px; border-right:1px solid #333; }
  footer .biz > :last-child { border-right:0; }
  footer .biz b { flex-basis:100%; color:#fff; font-size:22px; font-weight:800; border-right:0; margin-bottom:8px; }
  footer .biz a { color:var(--accent-light); }
  footer .biz + .copy { padding-top:12px; }

  /* 강사 유튜브 띠 — 카드 묶음을 두 번 이어 붙이고 절반만큼 왼쪽으로 흘린다 */
  .lead { margin-top:10px; color:var(--sub); font-size:17px; }
  .vstrip { overflow:hidden; width:calc(100% - 48px); max-width:1152px; margin:40px auto 0; border-radius:16px; }  /* 화면 끝까지가 아니라 글 폭 안에서만 흐른다 */
  .vtrack { display:flex; gap:24px; width:max-content; animation:vflow 60s linear infinite; }
  .vstrip:hover .vtrack, .vstrip:focus-within .vtrack { animation-play-state:paused; }
  .vcard { position:relative; flex:none; width:420px; max-width:80vw; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:var(--tile); }
  .vcard img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
  .vcard:hover img { transform:scale(1.04); }
  .vcard::after { content:""; position:absolute; left:50%; top:50%; width:64px; height:64px; margin:-32px 0 0 -32px; border-radius:50%;
    background:rgba(0,0,0,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='white'/%3E%3C/svg%3E") center/28px no-repeat; }
  @keyframes vflow { to { transform:translateX(calc(-50% - 12px)); } }
  @media (prefers-reduced-motion:reduce) { .vstrip { overflow-x:auto; } .vtrack { animation:none; } }
  @media (max-width:700px) { .vcard { width:280px; } .vtrack { gap:16px; } }

  /* 자주 묻는 질문 */
  .faq-list { margin-top:40px; border-top:1px solid var(--line); }
  .faq details { border-bottom:1px solid var(--line); }
  .faq summary { list-style:none; cursor:pointer; position:relative; padding:28px 48px 28px 0; font-size:18px; font-weight:700; }
  .faq summary::-webkit-details-marker { display:none; }
  .faq summary b { color:var(--accent-ink); margin-right:6px; }
  .faq summary::after { content:"+"; position:absolute; right:8px; top:50%; transform:translateY(-50%); font-size:30px; font-weight:300; color:var(--mute); transition:transform .25s; }
  .faq details[open] summary::after { transform:translateY(-50%) rotate(45deg); }
  .faq details p { padding:0 48px 28px 30px; color:var(--sub); line-height:1.8; }
  @media (max-width:700px) { .faq summary { font-size:16px; padding:22px 40px 22px 0; } .faq details p { padding-left:0; } }

  /* 강사진 전체 페이지의 「공개 예정」 카드 */
  .banner.soon .art { background:radial-gradient(circle at 75% 70%, rgba(198,244,50,.35), transparent 55%), #161616; border:1px dashed #3A3A3A; }
  .banner.soon .copy b { color:var(--accent-light); font-size:clamp(28px,2.6vw,44px); }
  .banner.soon h3 { color:#777; }
  .banners a.banner p { transition:color .2s; }
  .banners a.banner:hover p { color:var(--accent-light); }

  /* 달력 아래 강사 유튜브 바로가기 — 강사마다 자기 색 */
  .channels { display:flex; justify-content:center; flex-wrap:wrap; gap:24px 56px; margin-top:96px; }
  .ch { display:flex; flex-direction:column; align-items:center; gap:4px; }
  .ch-ico { display:grid; place-items:center; width:120px; height:120px; border-radius:30px; margin-bottom:14px;
    background:color-mix(in srgb, var(--c) 12%, #fff); box-shadow:0 8px 24px color-mix(in srgb, var(--c) 18%, transparent); transition:transform .3s, box-shadow .3s; }
  .ch-ico svg { width:60px; }
  .ch:hover .ch-ico { transform:translateY(-6px); box-shadow:0 14px 32px color-mix(in srgb, var(--c) 32%, transparent); }
  .ch b { font-size:19px; font-weight:800; }
  .ch small { font-size:13px; color:var(--c); font-weight:600; }
  @media (max-width:600px) { .channels { gap:20px 28px; } .ch-ico { width:88px; height:88px; border-radius:22px; } .ch-ico svg { width:44px; } }

  /* 환불규정 · 약관 같은 글 페이지 (2026-11-12) */
  .policy .wrap { max-width:760px; padding-block:80px 120px; }
  .policy h2 { font-size:22px; font-weight:800; margin:56px 0 16px; text-wrap:balance; }
  .policy h2:first-child { margin-top:0; }
  .policy p, .policy li { font-size:16px; line-height:1.8; color:var(--sub); }
  .policy ul { padding-left:44px; margin:10px 0 0; display:grid; gap:4px; }  /* ①항 아래 호 목록은 한 칸 들여 쓴다 */
  .policy ul + p, .policy .table-scroll + p { margin-top:16px; }  /* 목록·표 다음 ②항은 띄운다 */
  .policy b { color:var(--ink); }
  .policy a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
  .policy .table-scroll { overflow-x:auto; margin:20px 0; }
  .policy table { width:100%; border-collapse:collapse; font-size:16px; }
  .policy th, .policy td { padding:16px 20px; border-bottom:1px solid var(--line); text-align:left; }
  .policy th { background:var(--accent-soft); color:var(--accent); font-weight:700; }
  .policy .policy-date { margin-top:64px; font-size:14px; color:var(--mute); }
  .policy .wrap > p + p { margin-top:8px; }
  .policy .appendix { margin-top:64px; padding:28px 32px; border-radius:16px; background:var(--accent-soft); }
  .policy .appendix h2 { margin-top:0; }
