/**
 * 特設LP: LIP by OASIS（新宿・歌舞伎町の女性用風俗）
 * トンマナ「ROUGE」: ロゴの白地・墨・リップの深紅をそのまま使う。公式サイトの深紅×金を、明るい地に置き換えた上品な構成。
 * - 地は白、節の切り替えは淡いローズの地。見出しは Shippori Mincho、英字ラベルは Bodoni Moda（ロゴと同系統の高コントラストのセリフ）
 * - モチーフはアーチ（上が丸い写真枠）。ヒーロー・セラピスト・プランの主カードで繰り返す
 * - 文字色のコントラスト: 深紅#8C1C22は白地で8.9:1 / ボタンは深紅地に白文字
 * 動き: base.css の data-reveal のみ。prefers-reduced-motion では止まる
 */
.lp--lip {
  --lip-red: #8C1C22;
  --lip-red-ink: #7A161C;
  --lip-rose: #FBF0F1;
  --lip-rose-line: #F0DADD;
  --lip-blush: #F5DCE0;
  --lip-pink: #D07587;
  --lip-gold: #8A6A2A;
  --lip-gold-line: #D9C79F;

  --lp-bg: #FFFFFF;
  --lp-surface: #FFFFFF;
  --lp-tint: var(--lip-rose);
  --lp-ink: #1E1718;
  --lp-ink-sub: #5A4F50;
  --lp-accent: var(--lip-red);
  --lp-accent-ink: var(--lip-red-ink);
  --lp-line: #EAE2E1;
  --lp-btn-bg: var(--lip-red);
  --lp-btn-ink: #FFFFFF;
  --lp-btn-shadow: rgba(140, 28, 34, 0.24);
  --lp-font-head: "Shippori Mincho", serif;
  --lp-font-en: "Bodoni Moda", "Shippori Mincho", serif;
  --lp-radius: 12px;
}

.lp--lip .lp-prmark {
  position: absolute;
  top: 14px;
  left: 16px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--lp-ink-sub);
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  background: #FFFFFF;
  z-index: 2;
}
.lp--lip .lp-sec__en { font-style: italic; letter-spacing: 0.18em; margin-right: -0.18em; font-size: 14px; }
.lp--lip .lp-sec__title { font-weight: 600; font-size: 22px; }
.lp--lip .lp-sub { font-size: 15px; color: var(--lip-red-ink); }

/* ヒーロー */
.lip-hero { position: relative; padding: 48px 0 0; text-align: center; background: radial-gradient(120% 60% at 50% 0%, #FFF7F8 0%, #FFFFFF 55%) , #FFFFFF; overflow: hidden; }
.lip-hero > *:not(.lip-petals):not(.lp-prmark) { position: relative; z-index: 1; }
.lip-petals { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lip-hero__logo { width: 168px; margin: 0 auto; }
.lip-hero__catch {
  margin-top: 18px;
  font-family: var(--lp-font-head);
  font-size: 25px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.08em;
  text-wrap: balance;
}
.lip-hero__visual { position: relative; width: 248px; margin: 26px auto 0; }
.lip-arch { overflow: hidden; border-radius: 124px 124px 14px 14px; border: 1px solid var(--lip-gold-line); padding: 6px; background: #FFFFFF; }
.lip-arch img { border-radius: 118px 118px 10px 10px; aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }
.lip-hero__en {
  position: absolute;
  right: -46px;
  bottom: 28px;
  font-family: var(--lp-font-en);
  font-size: 15px;
  line-height: 1.35;
  text-align: left;
  color: var(--lip-red);
  writing-mode: vertical-rl;
  letter-spacing: 0.12em;
}
.lip-hero__en i { font-style: italic; }

.lip-band { padding: 28px 20px 36px; background: linear-gradient(180deg, rgba(251,240,241,0) 0, var(--lip-rose) 40px); }
.lip-band__title {
  margin: 0;
  font-family: var(--lp-font-head);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.04em;
  text-wrap: balance;
}
.lip-band__title span { font-family: var(--lp-font-en); font-size: 24px; color: var(--lip-red); letter-spacing: 0.02em; }
.lip-band__lead { margin-top: 14px; font-size: 14px; line-height: 2; text-align: left; color: var(--lp-ink); }
.lip-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.lip-facts li { padding: 12px 4px 10px; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: 10px; }
.lip-facts b { display: block; font-family: var(--lp-font-en); font-size: 21px; font-weight: 600; line-height: 1.2; color: var(--lip-red); font-variant-numeric: lining-nums tabular-nums; }
.lip-facts b small { font-family: var(--font-body); font-size: 11px; margin-left: 1px; }
.lip-facts span { display: block; margin-top: 4px; font-size: 10.5px; color: var(--lp-ink-sub); letter-spacing: 0.04em; }
.lip-band__cta { margin-top: 24px; }
.lip-band__note { margin-top: 12px; font-size: 11px; color: var(--lp-ink-sub); }

.lip-nav { padding-top: 24px; }
.lip-nav .lp-nav__list a[aria-current] { color: #FFFFFF; background: var(--lip-red); border-color: var(--lip-red); }

/* 30秒でわかる */
.lip-num {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  font-family: var(--lp-font-en);
  font-size: 20px;
  font-style: italic;
  color: var(--lip-red);
  border: 1px solid var(--lip-gold-line);
  border-radius: 50%;
}
.lip-about__list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.lip-about__list li { display: flex; gap: 14px; align-items: flex-start; }
.lip-about__list h3 { margin: 6px 0 4px; font-family: var(--lp-font-head); font-size: 16px; font-weight: 600; }
.lip-about__list p { font-size: 13.5px; line-height: 1.9; color: var(--lp-ink-sub); }

/* 選ばれる理由 */
.lip-points { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.lip-point { padding: 18px 18px 18px; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: var(--lp-radius); }
.lip-point__no { font-family: var(--lp-font-en); font-size: 26px; font-style: normal; font-variant-numeric: lining-nums; line-height: 1; color: var(--lip-gold); }
.lip-point__title { margin: 8px 0 6px; font-family: var(--lp-font-head); font-size: 16.5px; font-weight: 600; line-height: 1.6; }
.lip-point__text { font-size: 13.5px; line-height: 1.9; color: var(--lp-ink-sub); }

/* 過ごし方 */
.lip-plans { display: grid; gap: 14px; margin: 22px 0 0; padding: 0; list-style: none; }
.lip-plan { padding: 20px 18px; background: #FFFFFF; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); }
.lip-plan--main { padding-top: 26px; border-color: var(--lip-red); border-radius: 80px 80px var(--lp-radius) var(--lp-radius); text-align: center; background: var(--lip-rose); }
.lip-plan__tag { display: inline-block; padding: 2px 12px; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; color: var(--lip-red-ink); border: 1px solid var(--lip-red); border-radius: 999px; background: #FFFFFF; }
.lip-plan--main .lip-plan__tag { color: #FFFFFF; background: var(--lip-red); }
.lip-plan__title { margin: 10px 0 12px; font-family: var(--lp-font-head); font-size: 17px; font-weight: 600; line-height: 1.6; text-wrap: balance; }
.lip-plan__text { font-size: 13.5px; line-height: 1.9; color: var(--lp-ink-sub); text-align: left; }
.lip-route { display: flex; flex-wrap: wrap; gap: 6px 4px; justify-content: center; margin: 0 0 12px; padding: 0; list-style: none; font-size: 12px; }
.lip-route li { display: inline-flex; align-items: center; gap: 4px; }
.lip-route li + li::before { content: ""; width: 10px; height: 1px; background: var(--lip-gold); }
.lip-route li { color: var(--lp-ink); }
.lip-plan:not(.lip-plan--main) .lip-route { justify-content: flex-start; }

/* ホテル */
.lip-hotels { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 18px 0 18px; padding: 0; list-style: none; }
.lip-hotels li { padding: 12px 12px; font-family: var(--lp-font-head); font-size: 14px; font-weight: 600; line-height: 1.5; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: 10px; }
.lip-hotels span { display: block; margin-top: 2px; font-family: var(--font-body); font-size: 11px; font-weight: 400; color: var(--lp-ink-sub); }

/* 料金 */
.lip-table caption { color: var(--lip-red-ink); font-family: var(--lp-font-head); font-size: 14px; }
.lip-table th small { display: block; font-size: 10.5px; font-weight: 400; color: var(--lp-ink-sub); }
.lip-table td { font-family: var(--lp-font-en); font-size: 16px; color: var(--lip-red-ink); font-variant-numeric: lining-nums tabular-nums; }
.lip-sim { margin-top: 20px; padding: 20px 18px; text-align: center; background: var(--lip-rose); border: 1px solid var(--lip-rose-line); border-radius: var(--lp-radius); }
.lip-sim__en { font-family: var(--lp-font-en); font-style: italic; font-size: 13px; letter-spacing: 0.16em; color: var(--lip-gold); }
.lip-sim__title { margin-top: 4px; font-family: var(--lp-font-head); font-size: 16px; font-weight: 600; }
.lip-sim__rows { margin: 14px 0 0; text-align: left; }
.lip-sim__rows div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--lip-gold-line); }
.lip-sim__rows dt { font-size: 13.5px; }
.lip-sim__rows dt small { display: block; font-size: 10.5px; color: var(--lp-ink-sub); }
.lip-sim__rows dd { margin: 0; font-family: var(--lp-font-en); font-size: 18px; color: var(--lip-red-ink); white-space: nowrap; }
.lip-sim__note { margin-top: 10px; font-size: 12px; color: var(--lp-ink-sub); text-align: left; }
.lp--lip .lp-note { margin-top: 16px; font-size: 12px; line-height: 1.9; color: var(--lp-ink-sub); }
.lip-cta2 { display: grid; gap: 10px; margin-top: 20px; }
.lip-cta2 .lp-btn + .lp-btn { margin-top: 0; }

/* セラピスト */
.lip-cast { overflow: hidden; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: 130px 130px var(--lp-radius) var(--lp-radius); }
.lip-cast__photo { display: block; padding: 8px 8px 0; }
.lip-cast__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; border-radius: 122px 122px 8px 8px; }
.lip-cast__body { padding: 18px 20px 22px; text-align: center; }
.lip-cast__rank { display: inline-block; padding: 2px 12px; font-size: 11px; letter-spacing: 0.08em; color: var(--lip-gold); border: 1px solid var(--lip-gold-line); border-radius: 999px; }
.lip-cast__name { margin: 8px 0 0; font-family: var(--lp-font-en); font-size: 34px; font-weight: 600; letter-spacing: 0.12em; line-height: 1.2; color: var(--lip-red); }
.lip-cast__name span { display: block; font-family: var(--lp-font-head); font-size: 12px; letter-spacing: 0.2em; color: var(--lp-ink-sub); }
.lip-cast__meta { margin-top: 4px; font-size: 13px; color: var(--lp-ink-sub); }
.lip-cast__qa { margin: 16px 0 0; text-align: left; }
.lip-cast__qa div { padding: 10px 0; border-top: 1px solid var(--lp-line); }
.lip-cast__qa dt { font-size: 11px; letter-spacing: 0.06em; color: var(--lip-red-ink); }
.lip-cast__qa dd { margin: 2px 0 0; font-size: 14px; line-height: 1.8; }
.lip-cast__perk { margin-top: 14px; padding: 12px 14px; font-size: 13px; line-height: 1.8; text-align: left; background: var(--lip-rose); border-radius: 10px; }
.lip-cast__perk b { display: block; font-size: 12px; color: var(--lip-red-ink); }
.lip-cast__more { margin-top: 14px; }

/* 流れ */
.lip-steps { counter-reset: lipstep; display: grid; gap: 0; margin: 20px 0 0; padding: 0; list-style: none; }
.lip-steps li { counter-increment: lipstep; position: relative; padding: 0 0 18px 48px; }
.lip-steps li::before {
  content: counter(lipstep);
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  font-family: var(--lp-font-en);
  font-style: italic;
  font-size: 16px;
  color: var(--lip-red);
  border: 1px solid var(--lip-gold-line);
  border-radius: 50%;
  background: #FFFFFF;
}
.lip-steps li::after { content: ""; position: absolute; left: 16px; top: 34px; bottom: 2px; width: 1px; background: var(--lip-gold-line); }
.lip-steps li:last-child::after { display: none; }
.lip-steps b { display: block; padding-top: 4px; font-family: var(--lp-font-head); font-size: 15.5px; font-weight: 600; }
.lip-steps span { display: block; margin-top: 2px; font-size: 13px; line-height: 1.8; color: var(--lp-ink-sub); }

/* 安心 */
.lip-checks { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.lip-checks li { padding: 14px 16px 14px 44px; position: relative; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: 10px; }
.lip-checks li::before { content: ""; position: absolute; left: 16px; top: 19px; width: 12px; height: 7px; border-left: 2px solid var(--lip-red); border-bottom: 2px solid var(--lip-red); transform: rotate(-45deg); }
.lip-checks b { display: block; font-size: 14.5px; }
.lip-checks span { display: block; margin-top: 2px; font-size: 13px; line-height: 1.8; color: var(--lp-ink-sub); }

/* 締め */
.lip-final { margin-top: 56px; padding: 48px 20px 52px; text-align: center; background: var(--lip-rose); }
.lip-final__logo { width: 120px; margin: 0 auto 18px; }
.lip-final__title { margin: 0 0 10px; font-family: var(--lp-font-head); font-size: 22px; font-weight: 600; letter-spacing: 0.06em; }
.lip-final__text { margin-bottom: 22px; font-size: 13.5px; line-height: 1.9; color: var(--lp-ink-sub); text-align: left; }
.lip-final__tel { margin-top: 16px; font-size: 13px; color: var(--lp-ink-sub); }
.lip-final__tel a { font-family: var(--lp-font-en); font-size: 17px; color: var(--lip-red-ink); text-decoration: none; letter-spacing: 0.04em; }

.lp--lip .lp-faq__q { font-family: var(--lp-font-head); font-weight: 600; }
.lp--lip .shizuku-pr-disclosure { margin: 24px 20px 0; }
.lp--lip .lp-editor { margin: 8px 20px 24px; font-size: 11px; color: var(--lp-ink-sub); }

/* 写真の帯（選ばれる理由・安心） */
.lip-wide { position: relative; margin: 0 -20px 20px; overflow: hidden; }
.lip-wide .lp-figure { border-radius: 0; background: none; }
.lip-wide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.lip-wide__copy {
  position: absolute;
  left: 20px;
  bottom: 18px;
  padding: 10px 16px;
  font-family: var(--lp-font-head);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--lp-ink);
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
}
.lip-wide--soft img { aspect-ratio: 21 / 9; }

/* ホテルの写真カード */
.lip-hotel-cards .lp-banner__img img { aspect-ratio: 4 / 3; object-fit: cover; }
.lip-hotel-cards .lp-banner__eyebrow { font-family: var(--font-body); font-size: 10.5px; letter-spacing: 0.02em; color: var(--lp-ink-sub); }
.lip-hotel-cards .lp-banner__title { font-size: 14.5px; }
.lip-hotel-cards .lp-banner__more { font-size: 11.5px; margin-top: 2px; }

/* REN のギャラリーと、ほかのセラピスト */
.lip-gallery { grid-auto-columns: 58%; }
.lip-gallery .lp-figure { border-radius: 10px; }
.lip-gallery img { aspect-ratio: 3 / 4; object-fit: cover; object-position: top; }
.lip-others { grid-auto-columns: 44%; }
.lip-others .lp-banner__img img { aspect-ratio: 3 / 4; object-fit: cover; object-position: top; }
.lip-others .lp-banner__body { padding: 10px 12px 12px; gap: 2px; }
.lip-others .lp-banner__eyebrow { font-family: var(--font-body); font-size: 10.5px; letter-spacing: 0.02em; color: var(--lp-ink-sub); }
.lip-others .lp-banner__title { font-family: var(--lp-font-en); font-size: 17px; letter-spacing: 0.08em; color: var(--lip-red); }
.lip-others .lp-banner__more { font-size: 11.5px; margin-top: 0; }

/* 流れの写真モザイク */
.lip-mosaic { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; margin: 20px 0 24px; }
.lip-mosaic .lp-figure { height: 100%; border-radius: 10px; }
.lip-mosaic img { width: 100%; height: 100%; object-fit: cover; }
.lip-mosaic__a { grid-row: 1 / 3; aspect-ratio: 3 / 4; }
.lip-mosaic__b, .lip-mosaic__c { min-height: 0; }

/* ===== 可憐で上品な演出（v3） ===== */
/* リップの線画（ロゴのリップを細い線で） */
.lip-kiss { display: block; width: 64px; height: 22px; margin: 16px auto 0; overflow: visible; }
.lip-kiss path { fill: none; stroke: var(--lip-pink); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }

/* 選ばれる理由: 1枚のパネル */
.lip-reasons { margin: 0; padding: 26px 20px 8px; list-style: none; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: 120px 120px var(--lp-radius) var(--lp-radius); }
.lip-reasons li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid var(--lip-rose-line); }
.lip-reasons li:first-child { border-top: 0; padding-top: 8px; }
.lip-reasons__no { font-family: var(--lp-font-en); font-size: 24px; line-height: 1.1; color: var(--lip-pink); font-variant-numeric: lining-nums; text-align: center; }
.lip-reasons h3 { margin: 0 0 4px; font-family: var(--lp-font-head); font-size: 16px; font-weight: 600; line-height: 1.6; }
.lip-reasons p { font-size: 13px; line-height: 1.85; color: var(--lp-ink-sub); }
.lip-reasons a { margin-left: 4px; color: var(--lip-red-ink); font-weight: 700; text-underline-offset: 3px; }

/* 見出しの飾り（金の細線＋小さな菱形） */
.lp--lip .lp-sec__head::after {
  content: "";
  display: block;
  width: 64px;
  height: 7px;
  margin: 14px auto 0;
  background:
    linear-gradient(var(--lip-gold-line), var(--lip-gold-line)) left 50% / 26px 1px no-repeat,
    linear-gradient(var(--lip-gold-line), var(--lip-gold-line)) right 50% / 26px 1px no-repeat,
    linear-gradient(45deg, transparent 40%, var(--lip-pink) 40% 60%, transparent 60%) center / 7px 7px no-repeat;
}

/* 予約ボタン: 鼓動のようなやわらかい光 */
.lp--lip .lp-btn--primary { position: relative; isolation: isolate; }
.lp--lip .lp-btn--primary::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(208, 117, 135, 0.45);
}

@media (prefers-reduced-motion: no-preference) {
  /* ヒーローの登場（.lip-ready で開始） */
  .lp--lip.lip-anim .lip-hero__logo { opacity: 0.001; transform: translateY(6px); transition: opacity 0.7s ease, transform 0.7s ease; }
  .lp--lip.lip-ready .lip-hero__logo { opacity: 1; transform: none; }
  .lp--lip.lip-anim .lip-kiss path { stroke-dasharray: 300; stroke-dashoffset: 300; }
  .lp--lip.lip-ready .lip-kiss path { animation: lipDraw 1.8s 0.1s cubic-bezier(.6,0,.2,1) forwards; }
  .lip-ch { display: inline-block; opacity: 0; filter: blur(6px); transform: translateY(6px); }
  .lp--lip.lip-ready .lip-ch { animation: lipChar 0.8s calc(0.3s + var(--i) * 0.05s) ease forwards; }
  .lp--lip.lip-anim .lip-arch { clip-path: inset(38% 0 0 0 round 124px 124px 14px 14px); }
  .lp--lip.lip-ready .lip-arch { animation: lipArch 1.1s 0.2s cubic-bezier(.7,0,.2,1) forwards; }
  .lp--lip.lip-ready .lip-arch img { animation: lipZoomOut 3s 0.2s ease forwards; }
  .lp--lip.lip-anim .lip-hero__en { opacity: 0; }
  .lp--lip.lip-ready .lip-hero__en { animation: lipFade 1s 1.4s ease forwards; }

  /* スクロール時: 見出しの飾り線が伸びる */
  .lp--lip.lip-anim .lp-sec__head::after { opacity: 0; transform: scaleX(0.2); transition: opacity 0.8s ease, transform 1s cubic-bezier(.6,0,.2,1); }
  .lp--lip .lp-sec__head.is-in::after, .lp--lip.lip-static .lp-sec__head::after { opacity: 1; transform: none; }

  /* リストの中身を順番に（base.css の data-reveal を上書き） */
  .lp--lip.lp--reveal [data-reveal] { opacity: 1; transform: none; }
  .lp--lip.lp--reveal [data-reveal] > * { opacity: 0; transform: translateY(14px); filter: blur(3px); transition: opacity 0.8s ease, transform 0.8s ease, filter 0.8s ease; transition-delay: calc(var(--i, 0) * 0.09s); }
  .lp--lip.lp--reveal [data-reveal].is-in > * { opacity: 1; transform: none; filter: none; }

  /* 写真の帯: ゆっくり寄る */
  .lp--lip.lip-anim .lip-wide img { transform: scale(1.08); transition: transform 6s ease-out; }
  .lp--lip .lip-wide.is-in img { transform: scale(1); }

  /* 鼓動 */
  .lp--lip .lp-btn--primary::after { animation: lipBeat 2.6s ease-out infinite; }
}

@keyframes lipDraw { to { stroke-dashoffset: 0; } }
@keyframes lipChar { to { opacity: 1; filter: none; transform: none; } }
@keyframes lipArch { to { clip-path: inset(0 0 0 0 round 124px 124px 14px 14px); } }
@keyframes lipZoomOut { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes lipFade { to { opacity: 1; } }
@keyframes lipBeat {
  0% { box-shadow: 0 0 0 0 rgba(208, 117, 135, 0.45); }
  14% { box-shadow: 0 0 0 7px rgba(208, 117, 135, 0.18); }
  24% { box-shadow: 0 0 0 2px rgba(208, 117, 135, 0.35); }
  40% { box-shadow: 0 0 0 12px rgba(208, 117, 135, 0); }
  100% { box-shadow: 0 0 0 0 rgba(208, 117, 135, 0); }
}

/* ロゴは透過画像。写真枠の背景色を付けない */
.lip-hero__logo .lp-figure, .lip-final__logo .lp-figure { background: none; border-radius: 0; }

/* ===== 2026-11-04 LIP様フィードバック: DATE RANK / RENアンケート ===== */
.lip-cast__daterank { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-family: var(--lp-font-en); font-size: 11px; letter-spacing: 0.12em; color: var(--lip-red-ink); }
.lip-cast__daterank span { padding: 2px 10px; font-family: var(--lp-font-en); letter-spacing: 0.08em; color: #FFFFFF; background: var(--lip-pink); border-radius: 999px; }
.lip-daterank { margin-top: 28px; padding: 24px 20px; text-align: center; background: #FFFFFF; border: 1px solid var(--lip-rose-line); border-radius: var(--lp-radius); }
.lip-daterank__en { font-family: var(--lp-font-en); font-size: 12px; letter-spacing: 0.2em; color: var(--lip-gold); }
.lip-daterank__text { margin-top: 10px; font-size: 14px; line-height: 1.9; text-align: left; }
.lip-daterank__steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 16px 0 0; padding: 0; list-style: none; counter-reset: dr; }
.lip-daterank__steps li { padding: 5px 10px; font-family: var(--lp-font-en); font-size: 11px; letter-spacing: 0.06em; color: var(--lip-red-ink); background: var(--lip-rose); border: 1px solid var(--lip-rose-line); border-radius: 999px; }
.lip-daterank__note { margin-top: 14px; font-size: 12px; line-height: 1.8; color: var(--lp-ink-sub); }
.lip-iv { margin-top: 20px; background: #FFFFFF; border: 1px solid var(--lip-gold-line); border-radius: var(--lp-radius); overflow: hidden; }
.lip-iv__sum { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; padding: 18px 20px; cursor: pointer; list-style: none; background: linear-gradient(135deg, var(--lip-rose), #FFFFFF); }
.lip-iv__sum::-webkit-details-marker { display: none; }
.lip-iv__en { grid-column: 1; font-family: var(--lp-font-en); font-size: 11px; letter-spacing: 0.2em; color: var(--lip-gold); }
.lip-iv__title { grid-column: 1; font-family: var(--lp-font-head); font-size: 17px; line-height: 1.5; color: var(--lp-ink); }
.lip-iv__open { grid-column: 2; grid-row: 1 / span 2; padding: 6px 14px; font-size: 12px; color: #FFFFFF; background: var(--lip-red); border-radius: 999px; }
.lip-iv[open] .lip-iv__open { background: var(--lp-ink-sub); }
.lip-iv[open] .lip-iv__open::after { content: "（閉じる）"; }
.lip-iv__sum:focus-visible { outline: 2px solid var(--lip-red); outline-offset: -2px; }
.lip-iv__lead { margin: 0; padding: 14px 20px 0; font-size: 12px; line-height: 1.8; color: var(--lp-ink-sub); }
.lip-iv__list { margin: 0; padding: 8px 20px 4px; list-style: none; }
.lip-iv__item { padding: 18px 0; border-bottom: 1px solid var(--lp-line); }
.lip-iv__item:last-child { border-bottom: 0; }
.lip-iv__q { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.7; color: var(--lip-red-ink); }
.lip-iv__q span { display: inline-block; margin-right: 8px; font-family: var(--lp-font-en); font-size: 12px; letter-spacing: 0.08em; color: var(--lip-gold); }
.lip-iv__a { margin-top: 8px; }
.lip-iv__a p { margin: 0 0 6px; font-size: 14px; line-height: 1.95; }
.lip-iv__links { display: grid; gap: 10px; padding: 8px 20px 22px; }
