@charset "utf-8";
/* ============================================================
   otocon.jp リニューアルCSS — TOP / SP / A案
   対象: https://www.otocon.jp/s/
   配信: タグマネージャーで既存CSSより後に<link>注入
   画像: このCSSと同じ階層の img/ に配置(相対パス参照)
   デザイン: Figma「otoconリニューアル」⭕️確認 > A (node 500:2020)
   ============================================================ */

/* ------------------------------------------------------------
   デザイントークン
------------------------------------------------------------ */
:root {
  --otc-red: #cf201d;         /* メインの赤 */
  --otc-orange: #eb7d24;      /* アクセントのオレンジ */
  --otc-text: #333333;        /* 基本テキスト */
  --otc-gray: #979797;        /* 注釈グレー */
  --otc-line: #e2e2e2;        /* カード枠線 */
  --otc-bg: #f8f8f8;          /* ページ背景 */
  --otc-bg-warm: #fdf8f5;     /* ページトップバー背景 */
  --otc-blue: #0060d9;        /* 男性系 */
  --otc-blue-bg: #e9f3fc;
  --otc-price-red: #ea2210;   /* 女性系・価格 */
  --otc-pink-bg: #fdeff2;
  --otc-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue",
              "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  --otc-font-en: Avenir, "Avenir Next", Futura, "Helvetica Neue", sans-serif; /* 欧文・数字 */
}

body {
  background: var(--otc-bg);
}

body #container {
  padding-top: 60px; /* 30(上段) + 60(ヘッダー) */
}

/* ------------------------------------------------------------
   Header: 下段バー(60px)
   ハンバーガー(左・赤) + OTOCONロゴ(中央・テキスト化)
------------------------------------------------------------ */

.global-header {
  top: 0px;
  height: 60px;
  padding: 0 20px;
  background: #fff;
}

/* ------------------------------------------------------------
   Header: 上段バー(30px) ※SP-TOP A案と同一デザイン
   既存の .oshirase-sp-head(画像バナー)を料金訴求バーに転用。
------------------------------------------------------------ */
.oshirase-sp-head {
  display:none;
}
.breadcrumbs{
  display:none;
}

/* ------------------------------------------------------------
   Header: 下段バー(60px)
   ハンバーガー(左・赤) + OTOCONロゴ(中央・テキスト化)
------------------------------------------------------------ */
.global-header {
  top: 0px;
  height: 60px;
  padding: 0 20px;
  background: #fff;
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.04);
}
/* ハンバーガー: 赤・22x16px
   SVG(<use>のシャドウDOM)にはCSSが届かないため、
   中身を消してCSSグラデーションで3本線を描画する */
.global-header > .menu-toggle-button {
  width: 22px;
  height: 16px;
  margin: auto 0;
  background: linear-gradient(
    var(--otc-red) 0 2px, transparent 2px 7px,
    var(--otc-red) 7px 9px, transparent 9px 14px,
    var(--otc-red) 14px 16px);
}
.global-header > .menu-toggle-button use {
  display: none;
}
/* ロゴ: 画像をやめてタイポグラフィで中央配置 */
.global-header .logo {
  display: none;
}
.global-header > a[href="/"] {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-decoration: none;
}
.global-header > a[href="/"]::before {
  content: "";
  display: block;
  width: 140px;
  height: 20px;
  background: url("https://image-front.uigrowth.jp/otocon/otocon_logo.png") no-repeat center / contain;
}
/* Pontaバナーは新デザインでは非表示 */
.global-header > .recommend-button {
  display: none;
}

/* ------------------------------------------------------------
   0. ナビ全体(クリーム背景 + 左右余白)
   ------------------------------------------------------------ */
.global-header > .menu > .navi {
  background: #faf6f2;
  padding: 16px 16px 8px;
}
.global-header > .menu > .navi a {
  color: #333;
  text-decoration: none;
}

/* ------------------------------------------------------------
   1. 2列カードグリッド
   ------------------------------------------------------------ */
.global-header > .menu > .navi ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.global-header > .menu > .navi .nav-item {
  display: block;
  box-sizing: border-box;
  width: calc(50% - 6px);
  margin: 0;
  padding: 0;
  background: #fff;
  border: 1px solid #efe9e3;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  position: static;
  font-size: 16px;
  font-weight: 700;
  height: 70px;
}
/* 既存の右「›」矢印を消す */
.global-header > .menu > .navi .nav-item::after {
  content: none;
  display: none;
}
.global-header > .menu > .navi .nav-item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 10px 8px;
  color: #333;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}
/* アイコン(赤いアウトライン) */
.global-header > .menu > .navi .nav-item a::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* --- 各項目のアイコン(href判定) --- */
/* 初めての方へ: 本 */
.global-header > .menu > .navi .nav-item a[href="/guide/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.5C10.5 5 8 4.5 4 4.5v13c4 0 6.5.5 8 2 1.5-1.5 4-2 8-2v-13c-4 0-6.5.5-8 2z'/%3E%3Cpath d='M12 6.5v13'/%3E%3C/svg%3E");
}
/* 料金・お得情報: タグ */
.global-header > .menu > .navi .nav-item a[href="/about/merit/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 3.5h7l9.4 9.4a1.8 1.8 0 0 1 0 2.5l-4.5 4.5a1.8 1.8 0 0 1-2.5 0L3.5 10.5z'/%3E%3Ccircle cx='7.6' cy='7.6' r='1.4'/%3E%3C/svg%3E");
}
/* パーティー成功術: 勲章(ロゼット) */
.global-header > .menu > .navi .nav-item a[href="/support/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5.5'/%3E%3Cpath d='M8.5 13.4 7 21l5-2.6 5 2.6-1.5-7.6'/%3E%3C/svg%3E");
}
/* 選ばれている理由: いいね */
.global-header > .menu > .navi .nav-item a[href="/reason/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10v10H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1z'/%3E%3Cpath d='M7 10l4-7a2 2 0 0 1 3 1.8V9h5a2 2 0 0 1 2 2.3l-1.2 7A2 2 0 0 1 17.8 20H7'/%3E%3C/svg%3E");
}
/* お客様の声: 吹き出し */
.global-header > .menu > .navi .nav-item a[href="/voice/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.5 7.2L3.5 21l1.8-6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
}
/* 会場の紹介: マップピン */
.global-header > .menu > .navi .nav-item a[href="/area/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.6 7-12a7 7 0 1 0-14 0c0 5.4 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E");
}
/* お問い合わせ: 封筒 */
.global-header > .menu > .navi .nav-item a[href="/contact/"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0331b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3.5 7l8.5 6 8.5-6'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   2. お問い合わせ(最後の項目)は横長フルワイド
   ------------------------------------------------------------ */
.global-header > .menu > .navi .nav-item:last-child {
  width: 100%;
  height: 80px;
}
.global-header > .menu > .navi .nav-item:last-child a {
  flex-direction: row;
  gap: 12px;
  min-height: 0;
  padding: 22px 8px;
}

/* ------------------------------------------------------------
   3. パートナーエージェント(赤バナー)
   ------------------------------------------------------------ */
.global-header > .menu > .corporate {
  background: #faf6f2;
  margin: 0;
  padding: 12px 16px 80px;
  border-top: none;
}
.global-header > .menu > .corporate > a {
  border-radius: 4px;
  line-height: 1.45;
  text-align: left;
  padding: 10px;
}
/* 右端: 白丸 + 赤チェブロン */
.global-header > .menu > .corporate > a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  margin-top: -16px;
  width: 32px;
  height: 32px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23ffffff'/%3E%3Cpath d='M14 11l6 5-6 5' fill='none' stroke='%23e12110' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}


/* ------------------------------------------------------------
   共通: ベース背景・フォント
------------------------------------------------------------ */
.main-content,
.sub-content,
.common-footer {
  background: #fff;
  font-family: var(--otc-font);
}

/* ------------------------------------------------------------
   MV (Figma 500:2356)
   デザインの写真+コピーはフレームからのクロップ画像で再現
   (元HTMLも画像1枚のMVなので等価)
------------------------------------------------------------ */
#top-first-view .main-visual {
  margin: 0;
  aspect-ratio: 390 / 184;
  background: url(https://image-front.uigrowth.jp/otocon/spa_mv.png) 0 0 / 100% 100% no-repeat;
}
#top-first-view #eyecatch-img {
  display: none;
}

/* ------------------------------------------------------------
   共通: セクションタイトル(赤バー + 英字 + 見出し)
------------------------------------------------------------ */
#toppage .party-search .sub-headline,
#toppage .today-party .sub-headline {
  position: relative;
  margin: 0 0 7px 22px;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 13px;
  color: var(--otc-red);
}
#toppage .party-search .sub-headline::before,
#toppage .today-party .sub-headline::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 0;
  width: 4px;
  height: 38px;
  border-radius: 10px;
  background: var(--otc-red);
}
#toppage .party-search .headline,
#toppage .today-party .headline {
  margin: 0 0 0 22px;
  padding: 0;
  font-size: 18px !important;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 18px;
  color: #333;
  background: none;
  border: none;
}
#toppage .party-search .headline::before {
  display: none; /* 旧オレンジバー */
}

/* ------------------------------------------------------------
   Search (Figma 500:2022) — .party-search 直下のタイトル+フォーム
   ※ .event-banners / .today-party / .party-list も .party-search の
     子要素のため、ピンク背景はタイトルとフォームにのみ敷く
------------------------------------------------------------ */
#toppage .party-search {
  background: #fff;
  padding: 0;
}
#toppage .party-search .sub-headline {
  background: #fdf8f5;
  margin: 0;
  padding: 30px 0 7px 22px;
}
#toppage .party-search .sub-headline::before {
  left: 10px;
  top: 30px;
}
#toppage .party-search .headline {
  background: #fdf8f5;
  margin: 0;
  padding: 0 0 24px 22px;
}
#toppage .party-search #party-form {
  background: #fdf8f5;
  margin: 0;
  padding: 0 10px 24px;
}
#toppage .party-search .row {
  margin: 0 0 14px;
  padding: 0;
}
#toppage .party-search .row:last-child {
  margin: 0;
}
/* セレクトボックス共通 */
#toppage .party-search .form__selectbox__wrapper {
  width: calc(50% - 7px);
}
#toppage .party-search .form__selectbox {
  width: 100%;
  height: 54px;
  padding: 0 20px 0 30px;
  border: 1px solid #efe9e8;
  border-radius: 6px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.04);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}
#toppage .party-search .form__selectbox__wrapper::after {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #e2e2e2;
  right: 14px;
}
/* エリア/都市: オレンジのピンアイコン */
#toppage .party-search .form__selectbox__wrapper.region::before,
#toppage .party-search .form__selectbox__wrapper.city::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 2c-3.3 0-6 2.7-6 6 0 4.4 6 10 6 10s6-5.6 6-10c0-3.3-2.7-6-6-6z' fill='%23eb7d24'/%3E%3Ccircle cx='10' cy='8' r='2.2' fill='%23fff'/%3E%3C/svg%3E") 0 0 / 20px 20px no-repeat;
}
#toppage .party-search .form__selectbox__wrapper.city::after {
  content: "＋";
  font-size: 20px;
  font-weight: 500;
  color: #e2e2e2;
  border: none;
  width: auto;
  height: auto;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
}
#toppage .party-search .form__selectbox.city {
  width: 100%;
  padding-left: 30px;
}
/* 日付: カレンダーアイコン(開始=オレンジ、終了=グレー) */
#toppage .party-search .form__selectbox__wrapper.start-date::before,
#toppage .party-search .form__selectbox__wrapper.end-date::before {
  content: "";
  width: 20px;
  height: 20px;
  left: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='3' y='4' width='14' height='13' rx='1.5' fill='none' stroke='%23eb7d24' stroke-width='1.6'/%3E%3Cpath d='M3 8h14' stroke='%23eb7d24' stroke-width='1.6'/%3E%3Cpath d='M7 2.5v3M13 2.5v3' stroke='%23eb7d24' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 20px 20px no-repeat;
}

#toppage .party-search .form__selectbox.start-date,
#toppage .party-search .form__selectbox.end-date {
  width: 100%;
  padding-left: 30px;
  font-size: 12px;
}
#toppage .party-search .date-separator {
  font-size: 10px;
  font-weight: 900;
  color: var(--otc-orange);
}
/* 性別選択 + 年齢 */
#toppage .party-search .itemsex {
  display: flex;
  align-items: stretch;               /* 中の span を高さいっぱいに */
  width: calc(100% - 108px);          /* ← 少し広げる(年齢を狭めた分) */
  height: 54px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #efe9e8;
  border-radius: 6px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.04);
  overflow: hidden;                   /* ★ ハイライトを角丸にクリップ */
}
/* 男性・女性を左右 均等50%に */
#toppage .party-search .itemsex .man,
#toppage .party-search .itemsex .woman {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
}
#toppage .party-search .itemsex .man { order: 0; }
#toppage .party-search .itemsex .woman {order: 2;}
/* 中央の仕切り線 */
#toppage .party-search .itemsex::before {
  content: "";
  order: 1;
  width: 1px;
  height: 34px;
  align-self: center;
  background: #efe9e8;
}
/* ラベル(クリック領域): 半分いっぱいを埋める */
#toppage .party-search .itemsex span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 100% !important;                       /* ★ 高さいっぱい → 隙間なく塗る */
  padding: 0;
  border: none;
  border-radius: 0;                   /* ★ 角丸を外す(コンテナ側でクリップ) */
  background: none;
  line-height: 1;
  font-size: 14px;
  color: #c9c9c9;
  cursor: pointer;
}
#toppage .party-search .itemsex span::before {
  content: "";
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='%23e2e2e2' stroke-width='1.6'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7' fill='none' stroke='%23e2e2e2' stroke-width='1.6'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
}
/* 選択中(男性=青 / 女性=赤)を 半分いっぱいに塗る */
#toppage .party-search .itemsex .man span.on {
  color: var(--otc-blue);
  font-weight: 600;
  background: var(--otc-blue-bg);
  height: 100%;
}
#toppage .party-search .itemsex .man span.on::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='%230060d9' stroke-width='1.6'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7' fill='none' stroke='%230060d9' stroke-width='1.6'/%3E%3C/svg%3E");
}
#toppage .party-search .itemsex .woman span.on {
  color: var(--otc-price-red);
  font-weight: 600;
  background: var(--otc-pink-bg);
}
#toppage .party-search .itemsex .woman span.on::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='%23ea2210' stroke-width='1.6'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7' fill='none' stroke='%23ea2210' stroke-width='1.6'/%3E%3C/svg%3E");
}
/* 年齢セレクト(少し狭めて性別に幅を回す) */
#toppage .party-search .form__selectbox__wrapper.age {
  width: 94px;
}
#toppage .party-search .form__selectbox.age {
  padding: 0 20px 0 14px;
}
/* パーティースタイル3択 */
#toppage .party-search .itemcont {
  width: 100%;
}
#toppage .party-search .partylist {
  justify-content: space-between;
}
#toppage .party-search .partylist li {
  width: 116px;
  padding: 3px 3px 6px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 8px;
  box-shadow: none;
  background: none;
  margin: 2px;
  /* font-size: 10px; */
}
#toppage .party-search .partylist li.on {
  background: #ffefe3;
  border-color: var(--otc-orange);
}
#toppage .party-search .partylist li .img {
  width: 100%;
  height: 62px;
  border-radius: 6px;
  background-position: center;
  background-size: cover;
}
#toppage .party-search .partylist li:nth-child(1) .img { background-image: url(https://image-front.uigrowth.jp/otocon/spa_style1.jpg); }
#toppage .party-search .partylist li:nth-child(2) .img { background-image: url(https://image-front.uigrowth.jp/otocon/spa_style2.jpg); }
#toppage .party-search .partylist li:nth-child(3) .img { background-image: url(https://image-front.uigrowth.jp/otocon/spa_style3.jpg); }
#toppage .party-search .partylist li .img img {
  display: none;
}
#toppage .party-search .partylist li .txt {
  display: block;
  padding: 8px 0 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  color: rgba(51, 51, 51, 0.8);
}
#toppage .party-search .partylist li .txt span {
  display: inline;
}
#toppage .party-search .partylist li .checkbox {
  display: none;
}
/* 検索ボタン(グラデーションピル) */
#toppage .party-search .form__searchbutton {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 60px;
  margin-top: 10px;
  padding: 10px;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  font-size: 0;
}
#toppage .party-search .form__searchbutton::before {
  content: "";
  position: static;
  width: 18px;
  height: 19px;
  transform: none;
  border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19'%3E%3Ccircle cx='8' cy='9' r='7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M13.5 14.5 L17 18' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 18px 19px no-repeat;
  background-color: transparent;
}
#toppage .party-search .form__searchbutton::after {
  content: "イベントを探す";
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}

/* ------------------------------------------------------------
   Banner (Figma 500:2481) — スライダーを縦積みバナーに変換
------------------------------------------------------------ */
#toppage .event-banners {
  display: block;
  width: 250px;
  height: auto;
  margin: 20px auto;
  padding: 0;
}
#toppage .event-banners .slidemove {
  display: none;
}
#toppage .event-banners .slider {
  width: 250px;
  height: auto;
  overflow: hidden;
}
#toppage .event-banners .event-banner-list {
  display: flex !important;
  flex-direction: column !important;
  transform: none !important;
  width: 250px !important;
  height: auto !important;
  white-space: normal;
}
#toppage .event-banners .event-banner-list > li {
  display: block;
  width: 250px !important;
  height: 78px !important;
  margin: 0 !important;
  flex-shrink: 0;
}
#toppage .event-banners .event-banner-list > li.swiper-slide-duplicate {
  display: none !important;
}
#toppage .event-banners .event-banner-list .cont_image {
  margin: 0;
  line-height: 0;
}
#toppage .event-banners .slider img {
  width: 250px !important;
  height: 78px !important;
  object-fit: cover;
  display: block;
}

/* ------------------------------------------------------------
   List (Figma 500:2092) — パーティー一覧
------------------------------------------------------------ */
#toppage .today-party {
  background: #f8f8f8;
  padding: 30px 10px 0;
}
#toppage .today-party::after {
  display: none; /* 旧・下向き三角 */
}
#toppage .today-party .headline {
  margin-bottom: 30px;
}
#toppage .today-party .button-description {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: 600;
  color: #333;
}
#toppage .today-party .party-days {
  margin: 0;
  padding: 0;
  justify-content: flex-start;
  gap: 1px;
}
#toppage .today-party .day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 92px;
  height: 58px;
  box-sizing: border-box;
  padding: 0;
  border-radius: 6px;
  background: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 16px;
  color: #333;
}
#toppage .today-party .day > span {
  font-size: 16px;
  line-height: 16px;
}
#toppage .today-party .day.on {
  background: var(--otc-red);
  color: #fff;
  font-weight: 500;
}
/* カードリスト */
#toppage .party-list {
  background: #f8f8f8;
  margin-top: 0;
  padding: 30px 10px 40px;
}
#toppage .searchnewslist li + li {
  margin: 40px 0 0;
}
#toppage .searchnewscont {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
#toppage .searchnewscont .img img {
  width: 100%;
  display: block;
}
#toppage .searchnewscont .newscont {
  width: auto;
  margin: 0;
  padding: 14px 14px 24px;
  box-shadow: none;
}
#toppage .searchnewscont .newscont a {
  text-decoration: none;
  color: inherit;
}
#toppage .searchnewscont .newscont .tit {
  font-size: 18px !important;
  font-weight: 600;
  line-height: 26px;
  letter-spacing: 0;
  border-bottom: none;
  padding: 0;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#toppage .searchnewscont .newscont .cate {
  justify-content: flex-start;
  gap: 8px;
  padding: 10px 0 0;
}
#toppage .searchnewscont .newscont .cate .cate-group {
  min-width: 0;
  max-width: none;
  gap: 8px;
}
#toppage .searchnewscont .newscont .cate .cate01,
#toppage .searchnewscont .newscont .cate .cate02 {
  min-width: 50px;
  padding: 4px 6px;
  border-radius: 2px;
  font-size: 15px;
  font-weight: 500;
  box-sizing: border-box;
}
#toppage .searchnewscont .newscont .cate .cate01 {
  background: var(--otc-red);
  color: #fff;
}
#toppage .searchnewscont .newscont .cate .cate02 {
  border: 1px solid var(--otc-red);
  color: var(--otc-red);
  background: #fff;
}
#toppage .searchnewscont .newscont .party-time {
  font-size: 14px;
  font-weight: 500;
  color: #333;
}
#toppage .searchnewscont .newscont .newsparty {
  margin-top: 14px;
  gap: 14px;
}
#toppage .searchnewscont .newscont .newsparty > div {
  width: calc(50% - 7px);
  height: 78px;
  box-sizing: border-box;
  border-radius: 6px;
  padding: 8px 0 0;
}
#toppage .searchnewscont .newscont .newsparty .partybox.man {
  background: #eff5fe;
  border: 1px solid #e1edfd;
}
#toppage .searchnewscont .newscont .newsparty .partybox.woman {
  background: #fef4f4;
  border: 1px solid #fdecee;
}
#toppage .searchnewscont .newscont .newsparty .sex {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0;
  font-size: 15px;
  font-weight: 500;
}
#toppage .searchnewscont .newscont .newsparty .sex::before {
  content: "";
  width: 12px;
  height: 15px;
}
#toppage .searchnewscont .newscont .newsparty .man .sex {
  background: none;
  color: var(--otc-blue);
}
#toppage .searchnewscont .newscont .newsparty .man .sex::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='15' viewBox='0 0 12 15'%3E%3Ccircle cx='6' cy='4' r='3.1' fill='none' stroke='%230060d9' stroke-width='1.7'/%3E%3Cpath d='M1 14c0-2.8 2.2-4.5 5-4.5s5 1.7 5 4.5' fill='none' stroke='%230060d9' stroke-width='1.7'/%3E%3C/svg%3E") 0 0 / 12px 15px no-repeat;
}
#toppage .searchnewscont .newscont .newsparty .woman .sex {
  background: none;
  color: var(--otc-price-red);
}
#toppage .searchnewscont .newscont .newsparty .woman .sex::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='15' viewBox='0 0 12 15'%3E%3Ccircle cx='6' cy='4' r='3.1' fill='none' stroke='%23ea2210' stroke-width='1.7'/%3E%3Cpath d='M1 14c0-2.8 2.2-4.5 5-4.5s5 1.7 5 4.5' fill='none' stroke='%23ea2210' stroke-width='1.7'/%3E%3C/svg%3E") 0 0 / 12px 15px no-repeat;
}
#toppage .searchnewscont .newscont .newsparty .txt {
  padding: 6px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 19px;
  color: #333;
}
#toppage .searchnewscont .newscont .newsparty .txt span {
  margin-top: 3px;
  font-size: 14px;
  line-height: 14px;
}
#toppage .searchnewscont .newscont .newsparty .man .txt span {
  color: var(--otc-blue);
}
#toppage .searchnewscont .newscont .newsparty .woman .txt span {
  color: var(--otc-price-red);
}
#toppage .searchnewscont .newscont .note {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 44px;
  margin: 14px 0 0;
  padding: 0 0 0 52px;
  box-sizing: border-box;
  background: #fff;
  border-radius: 0;
  color: #333;
  font-size: 15px;
  font-weight: 500;
  line-height: 22px;
}
#toppage .searchnewscont .newscont .note::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  box-sizing: border-box;
  border: 1px solid var(--otc-red);
  border-radius: 6px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-8-5.3-8-11a4.6 4.6 0 0 1 8-3.1 4.6 4.6 0 0 1 8 3.1c0 5.7-8 11-8 11z' fill='%23cf201d'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
}
/* もっと見るボタン */
#toppage .party-list .read-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 60px;
  margin: 40px auto 0;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}
#toppage .party-list .read-more::after {
  display: none;
}
#toppage .party-list .read-more::before {
  content: "";
  width: 18px;
  height: 19px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19'%3E%3Ccircle cx='8' cy='9' r='7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M13.5 14.5 L17 18' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 18px 19px no-repeat;
}

/* ------------------------------------------------------------
   Who (Figma 500:2334) — OTOCONとは(.our-history)
------------------------------------------------------------ */
.our-history {
  position: relative;
  padding: 0;
  background: #fff;
}
.our-history::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 259px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.45) 50%, #fff 96%),
    url(https://image-front.uigrowth.jp/otocon/spa_who.png) center / cover no-repeat;
}
.our-history > img {
  display: none;
}
.our-history .our-history-headline {
  position: relative;
  top: auto;
  left: auto;
  margin: 0 0 0 10px;
  padding: 30px 0 0 12px;
  border-left: none;
}
.our-history .our-history-headline::before {
  content: "";
  position: absolute;
  left: 0;
  top: 30px;
  width: 4px;
  height: 38px;
  border-radius: 10px;
  background: #fff;
}
.our-history .our-history-headline .sub-headline {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 13px;
  margin: 0 0 7px;
}
.our-history .our-history-headline .headline {
  font-size: 18px !important;
  font-weight: 600;
  line-height: 18px;
}
.our-history > p {
  position: relative;
  font-size: 16px;
  line-height: 2;
  color: #333;
  margin: 0 10px;
  padding: 6px 10px 0;
}
.our-history > p:first-of-type {
  margin-top: 161px;
}
.our-history > .hide-if-read-more-clicked {
  margin-top: 161px;
}
.our-history > .hide-if-read-more-clicked::before {
  display: none;
}
/* 「続きを読む」アウトラインピル(＋付き) — Who / Column 共通 */
.our-history .show-more-button,
#background-knowledge .event-party-guide .show-more-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  margin: 0 10px;
  border-radius: 100px;
  border: 2px solid #333;
  background: #fff;
  color: #333;
  font-size: 18px;
  font-weight: 600;
}
.our-history .show-more-button::after,
#background-knowledge .event-party-guide .show-more-button::after {
  content: "＋";
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: 600;
  color: #333;
}

/* ------------------------------------------------------------
   Guide (Figma 534:3296) — パーティーガイド
------------------------------------------------------------ */
.sub-content {
  background: #fff;
  padding: 70px 0 0;
}
#background-knowledge .guide .guidetit {
  position: relative;
  margin: 0 10px 30px;
  padding: 0 0 0 12px;
  border-left: none;
  font-size: 18px !important;
  font-weight: 600;
  line-height: 18px;
  color: #333;
  background: none;
}
#background-knowledge .guide .guidetit::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 38px;
  border-radius: 10px;
  background: var(--otc-red);
}
#background-knowledge .guide .guidetit span {
  color: var(--otc-red);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 13px;
  margin-bottom: 7px;
}
#background-knowledge .guide .guidetit br {
  display: none;
}
#background-knowledge .guide .guidepanel {
  height: auto;
  min-height: 240px;
  box-sizing: border-box;
  padding: 32px 10px;
  color: #fff;
}
#background-knowledge .guide .guidepanel + .guidepanel {
  margin: 0;
}
#background-knowledge .guide .guidebg01 { background: url(https://image-front.uigrowth.jp/otocon/spa_guide1.png) center / cover no-repeat; }
#background-knowledge .guide .guidebg02 { background: url(https://image-front.uigrowth.jp/otocon/spa_guide2.png) center / cover no-repeat; }
#background-knowledge .guide .guidebg03 { background: url(https://image-front.uigrowth.jp/otocon/spa_guide3.png) center / cover no-repeat; }
#background-knowledge .guide .guidebg04 { background: url(https://image-front.uigrowth.jp/otocon/spa_guide4.png) center / cover no-repeat; }
#background-knowledge .guide .guidepanel > div {
  width: 100%;
}
#background-knowledge .guide .guidepanel .tit {
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  padding: 0;
  margin: 0;
}
#background-knowledge .guide .guidepanel .txt {
  font-size: 16px;
  line-height: 24px;
  padding: 24px 0;
  margin: 0;
}
#background-knowledge .guide .guidepanel .btn {
  width: 100%;
}
#background-knowledge .guide .guidepanel .btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  box-sizing: border-box;
  border: 2px solid #fff;
  border-radius: 100px;
  background: transparent;
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  padding: 0;
}
#background-knowledge .guide .guidepanel .btn a::after {
  content: "";
  position: absolute;
  right: 26px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* ------------------------------------------------------------
   Column (Figma 534:3297) — 特別企画コラム(.event-party-guide)
------------------------------------------------------------ */
#background-knowledge .event-party-guide {
  background: #fff;
  margin: 40px 10px 0;
  padding: 0;
}
#background-knowledge .event-party-guide p {
  color: #333;
  font-size: 16px;
  line-height: 2;
  margin: 0;
}
#background-knowledge .event-party-guide > .hide-if-read-more-clicked::before {
  display: none;
}
#background-knowledge .event-party-guide .show-more-button {
  margin: 20px 0 0;
}

/* ------------------------------------------------------------
   CompanyCta (Figma 500:2346) — 会社紹介カード + 検索CTA
------------------------------------------------------------ */
#background-knowledge .about-us {
  position: relative;
  margin: 30px 0 0;
  padding: 40px 10px 0;
  background: #f8f8f8;
}
#background-knowledge .about-us::before {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  top: 40px;
  bottom: 0;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
#background-knowledge .about-us img {
  position: relative;
  width: 280px;
  margin: 0 auto;
  padding-top: 30px;
}
#background-knowledge .about-us p {
  position: relative;
  margin: 20px 10px 0;
  padding: 0 10px 30px;
  color: #333;
  font-size: 16px;
  line-height: 2;
}
.call-to-action > .search-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 60px;
  margin: 0;
  box-sizing: border-box;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}
.call-to-action > .search-link::after {
  display: none;
}
.call-to-action > .search-link::before {
  content: "";
  width: 18px;
  height: 19px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19'%3E%3Ccircle cx='8' cy='9' r='7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M13.5 14.5 L17 18' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 18px 19px no-repeat;
  flex-shrink: 0;
}
.call-to-action > .search-link .line {
  display: inline-block;
}

/* ------------------------------------------------------------
   Cta (Figma 500:2362) — お問い合わせ / 無料会員登録
------------------------------------------------------------ */
.call-to-action{
  margin:10px;
}
.call-to-action > .call-to-register {
  margin: 20px 0 0;
  padding: 0;
  background: #fff;
  border-radius: 0;
}
.call-to-register .button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  margin: 0;
  padding: 10px;
  box-sizing: border-box;
  border-radius: 100px;
  background: #333;
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
}
/* HTML内インラインstyle(一時対応のオレンジグラデ)より高い詳細度で上書き */
.call-to-action .call-to-register .button {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 10px;
  background: #333;
  font-weight: 600;
}
.call-to-register .button.arrow::after {
  content: "";
  position: absolute;
  right: 26px;
  top: 50%;
  width: 9px;
  height: 9px;
  border: none;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
.call-to-action > .call-to-register > .horizontal-line {
  display: none;
}
.call-to-action > .call-to-register > .register-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  margin: 24px 0 10px;
  box-sizing: border-box;
  border: 2px solid #333;
  border-radius: 100px;
  background: #fff;
  color: #333;
  font-size: 18px;
  font-weight: 600;
}
/* ------------------------------------------------------------
   List2 (Figma 500:2425) — フッターナビ + ページトップへ
------------------------------------------------------------ */
.footer-nav {
  margin: 40px 0 0;
}
.footer-nav .nav-item {
  font-size: 16px;
  font-weight: 500;
  color: #333;
  padding: 20px;
  border-bottom: 1px solid #e2e2e2;
}
.footer-nav > ul > .nav-item:first-child {
  border-top: 1px solid #e2e2e2;
}
.footer-nav .nav-item::after {
  content: "";
  right: 20px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: translateY(-50%) rotate(45deg);
}
.footer-nav .nav-item.open::after {
  transform: translateY(-50%) rotate(135deg);
}
.footer-nav .nav-item.male {
  color: var(--otc-blue);
}
.footer-nav .nav-item.female,
.footer-nav .nav-item.female > a {
  color: var(--otc-price-red);
}
.footer-nav .nav-item.child {
  background: #fff;
  font-weight: 400;
  padding: 16px 20px 16px 36px;
  border-color: #e2e2e2;
  border-width: 1px;
}
.footer-nav .nav-item.male.child,
.footer-nav .nav-item.female.child {
  background: #fff;
}
/* aupay/Pontaバナーは新デザインでは非表示 */
.sub-content .banners {
  display: none;
}
/* ページトップへ */
.common-footer > .move-to-top {
  position: static;
  width: auto;
  height: 70px;
  margin: 0;
  border-radius: 0;
  background: #fdf8f5;
  font-size: 0;
}
.common-footer > .move-to-top::before {
  content: "ページトップへ";
  transform: none;
  margin: 0 12px 0 0;
  font-size: 18px;
  font-weight: 600;
  color: #333;
}
.common-footer > .move-to-top::after {
  content: "";
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 8px solid var(--otc-red);
}

/* ------------------------------------------------------------
   Logo (Figma 500:2376) — ロゴカード(タイポグラフィで再現)
------------------------------------------------------------ */
.common-footer .logo {
  display: none;
}
.common-footer > a[href="/"] {
  display: block;
  width: auto;
  margin: 20px;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #e2e2e2;
  border-radius: 6px;
  background: #fff;
  text-align: center;
  text-decoration: none;
}


/* ------------------------------------------------------------
   Footer (Figma 500:2380)
------------------------------------------------------------ */

.common-footer .proofs dt {
  border: none;
  margin: 0;
  padding: 0;
  color: #333;
  font-weight: 600;
  letter-spacing: 2px;
}
.common-footer .proofs dd {
  margin: 10px 0 50px;
}
.common-footer .proofs dd.security ul {
  justify-content: center;
  align-items: center;
  gap: 24px;
}
.common-footer .proofs dd.security ul li {
  width: auto;
  margin: 0;
}
.common-footer .proofs dd.security ul li:nth-child(1) img {
  width: 100px;
}
.common-footer .proofs dd.security ul li:nth-child(2) {
  width: auto;
}
.common-footer .proofs dd.security ul li:nth-child(2) img {
  width: 145px;
}
.common-footer .proofs dd.company {
  margin: 30px 0 60px;
}
.common-footer .proofs dd.company figure {
  justify-content: flex-start;
  gap: 17px;
}
.common-footer .proofs dd.company figure img {
  width: 46px;
  margin: 0;
}
.common-footer .proofs dd.company figure figcaption {
  color: #333;
  font-size: 12px;
  line-height: 2;
}
.common-footer .proofs .group-servicesite-sp {
  display: block !important;
  margin: 4px 0 0;
}
.common-footer .policy-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 30px;
  margin: 0;
  padding: 30px 20px;
  background: #f8f8f8;
}
.common-footer .policy-list li {
  width: auto;
  height: auto;
  padding: 0;
  border: none;
}

.common-footer .policy-list li::after {
  display: none;
}
.common-footer .policy-list a {
  display: block;
  width: auto;
  height: auto;
  color: #333;
  font-size: 11px;
  line-height: 1.4;
}

.common-footer .copyright {
  margin: 0;
  padding: 30px 0 30px;
  background: #f8f8f8;
  text-align: center;
}
.common-footer .copyright small {
  color: #979797;
  font-size: 12px;
}


/* ============================================================
   otocon.jp リニューアルCSS — 下層ページ / SP
   対象: https://www.otocon.jp/s/○○/ 配下の下層ページ(汎用)
   配信: タグマネージャーで既存CSSより後に<link>注入
   デザイン: Figma「otoconリニューアル」⭕️確認 > 下層ページ (node 587:92)
   方針: /s/support/ 固有のID・コンテンツには依存せず、
         サイト共通テンプレートのクラスのみをセレクタに使う
   ============================================================ */


/* ------------------------------------------------------------
   コンテンツ全体: グレー背景 + 白カード(記事)
   ※Figmaではページタイトルはカードの上、CTAはカードの下にあるが
     HTMLではどちらも .wrapper 内のため、
     タイトル= absolute で上へ / CTA= absolute で下へ 逃がす
------------------------------------------------------------ */
.s_contents {
  background: var(--otc-bg);
  padding: 0;
  font-family: var(--otc-font);
}
.s_contents .wrapper {
  position: relative;
  box-sizing: border-box;
  margin: 90px 10px 330px; /* 上=タイトル分の余白 / 下=CTA分の余白 */
  border-radius: 6px;
}
/* タイトル/CTAを持たないページでは、逃がし用の余白を詰める
   (:has()非対応ブラウザでは広い余白のまま=安全側にフォールバック) */
.s_contents .wrapper:not(:has(.cont_h2)) {
  margin-top: 40px;
}
.s_contents .wrapper:not(:has(.call-to-action)) {
  margin-bottom: 60px;
}
#side-C {
  display: none;
}

/* ------------------------------------------------------------
   ページタイトル(h2.cont_h2): カードの上に絶対配置
   アイコン(丸+人物)はHTMLに無いのでSVG背景の::beforeで描画
------------------------------------------------------------ */
.s_contents .h2_verlower:first-child .cont_h2 {
  position: absolute;
  bottom: calc(100% + 20px); /* カード上端から20px上。長いタイトルは上方向に伸びる */
  left: -1px;
  right: -1px;
  display: flex;
  align-items: center;
  min-height: 50px; /* アイコンの高さ */
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 1.25; /* 折り返し時の行間確保(1行時の見た目は変わらない) */
  color: #000;
}
.s_contents .h2_verlower .cont_h2::before {
  content: "";
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  margin-right: 10px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2750%27%20height%3D%2750%27%20viewBox%3D%270%200%2050%2050%27%3E%3Ccircle%20cx%3D%2725%27%20cy%3D%2725%27%20r%3D%2724.5%27%20fill%3D%27%23fff%27%20stroke%3D%27%23eb7d24%27%2F%3E%3Cpath%20d%3D%27M25%2021.5c-2.4-2.8-7.5-2-7.5-5.8%200-1.9%201.5-3.4%203.5-3.4%201.7%200%203%201%204%202.5%201-1.5%202.3-2.5%204-2.5%202%200%203.5%201.5%203.5%203.4%200%203.8-5.1%203-7.5%205.8z%27%20fill%3D%27%23eb7d24%27%2F%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23333%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2714%27%20cy%3D%2721%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2735%27%20cy%3D%2721%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27M10.8%2030.5c0-2.7%201.5-4.6%203.4-4.6%201.3%200%202.4.8%203%202%27%2F%3E%3Cpath%20d%3D%27M38.2%2030.5c0-2.7-1.5-4.6-3.4-4.6-1.3%200-2.4.8-3%202%27%2F%3E%3Cpath%20d%3D%27M19.5%2029.5h10%27%2F%3E%3Cpath%20d%3D%27M16%2033h17.5v3H16z%27%2F%3E%3Cpath%20d%3D%27M20%2036.5v4%27%2F%3E%3Cpath%20d%3D%27M29.5%2036.5v4%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center / 50px 50px;
}

/* 20260821 */
.cont_h2 {
  bottom: calc(100% + 20px); /* カード上端から20px上。長いタイトルは上方向に伸びる */
  left: -1px;
  right: -1px;
  display: flex;
  align-items: center;
  min-height: 50px; /* アイコンの高さ */
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 1.25; /* 折り返し時の行間確保(1行時の見た目は変わらない) */
  color: #000;
  margin-bottom:20px;
}
.cont_h2::before {
  content: "";
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  margin-right: 10px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2750%27%20height%3D%2750%27%20viewBox%3D%270%200%2050%2050%27%3E%3Ccircle%20cx%3D%2725%27%20cy%3D%2725%27%20r%3D%2724.5%27%20fill%3D%27%23fff%27%20stroke%3D%27%23eb7d24%27%2F%3E%3Cpath%20d%3D%27M25%2021.5c-2.4-2.8-7.5-2-7.5-5.8%200-1.9%201.5-3.4%203.5-3.4%201.7%200%203%201%204%202.5%201-1.5%202.3-2.5%204-2.5%202%200%203.5%201.5%203.5%203.4%200%203.8-5.1%203-7.5%205.8z%27%20fill%3D%27%23eb7d24%27%2F%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23333%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2714%27%20cy%3D%2721%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2735%27%20cy%3D%2721%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27M10.8%2030.5c0-2.7%201.5-4.6%203.4-4.6%201.3%200%202.4.8%203%202%27%2F%3E%3Cpath%20d%3D%27M38.2%2030.5c0-2.7-1.5-4.6-3.4-4.6-1.3%200-2.4.8-3%202%27%2F%3E%3Cpath%20d%3D%27M19.5%2029.5h10%27%2F%3E%3Cpath%20d%3D%27M16%2033h17.5v3H16z%27%2F%3E%3Cpath%20d%3D%27M20%2036.5v4%27%2F%3E%3Cpath%20d%3D%27M29.5%2036.5v4%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center / 50px 50px;
}


/* ------------------------------------------------------------
   本文まわり: 既存の枠・背景色を除去し、15px/行間30pxに統一
------------------------------------------------------------ */
.s_contents .text-A {
  margin: 0;
  line-height: inherit;
}
.s_contents .text_A01 {
  border: none;
  padding: 0;
  background:#FFFFFF;
  padding:20px;
  background: #fff;
  border: 1px solid var(--otc-line);
  border-radius: 6px;
}
.s_contents .text_A02 {
  border: none;
  background: none;
  padding: 0;
  font-size: 15px;
  line-height: 30px;
  color: var(--otc-text) !important;
}
.s_contents .text_A02 div {
  color: var(--otc-text) !important;
  
}
.s_contents .text_A02 font[color="#444444"] {
  color: var(--otc-text) !important;
  
}
.s_contents .text_A02 a {
  color: inherit !important;
  text-decoration: none !important;
}
.s_contents .text_A{
  background:#FFFFFF;
  padding:20px;
  background: #fff;
  border: 1px solid var(--otc-line);
  border-radius: 6px;
}
.s_contents .cont_image_text {
  padding: 0;
}
/* 記事画像: 全幅・角丸(インラインstyleのmargin対策で!important) */
.s_contents .cont_image_text > p {
  margin: 0 0 20px !important;
}
.s_contents .cont_image_text > p img:not([src*="div-2007/2008"]) {
  display: block;
  width: 100%;
  max-height: 210px;
  object-fit: cover;
  border-radius: 10px;
}

/* ------------------------------------------------------------
   ページ内リンク(ul.page_link): オレンジ丸矢印つきリスト
------------------------------------------------------------ */
.s_contents .pagelinks {
  margin: 20px 0 0;
  padding: 0;
  border: none;
  background: none;
}
.s_contents ul.page_link {
  margin: 0;
  padding: 0;
}
.s_contents ul.page_link li {
  position: relative;
  margin: 0 0 20px;
  padding-left: 24px;
  background: none;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
}
.s_contents ul.page_link li:last-child {
  margin-bottom: 0;
}
.s_contents ul.page_link li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2720%27%20height%3D%2720%27%20viewBox%3D%270%200%2020%2020%27%3E%3Ccircle%20cx%3D%2710%27%20cy%3D%2710%27%20r%3D%278%27%20fill%3D%27%23eb7d24%27%2F%3E%3Cpath%20d%3D%27M8.6%206.6%2012%2010l-3.4%203.4%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 20px 20px;
}
.s_contents ul.page_link li a {
  color: var(--otc-text);
  text-decoration: none;
}

/* ------------------------------------------------------------
   記事セクション(.party_h3_box 等)
------------------------------------------------------------ */
.s_contents .party_h3_box,
.s_contents .party_box {
  margin: 0;
}
.s_contents .wrapper > .party_h3_box {
  margin: 30px 0 0;
}
/* 見出し(h3.cont_h3): 赤バー + 18px */
.s_contents .cont_h3 {
  display: flex;
  margin: 0 0 20px;
  padding: 0;
  background: none;
  border: none;
  font-size: 16px;
  font-weight: 600;
  line-height: 26px;
  color: #000;
  scroll-margin-top: 110px; /* 固定ヘッダー分 */
}
.s_contents .cont_h3::before {
  content: "";
  flex: 0 0 16px;
  width: 16px;
  height: 4px;
  margin: 11px 6px 0 0;
  border-radius: 10px;
  background: var(--otc-red);
}

/* ------------------------------------------------------------
   7. 前後記事ナビ (.link_box2 = 前 / .link_box = 次)
      Figma SP: 全幅ボックスを縦に 12px 間隔で積む
   ------------------------------------------------------------ */
.s_contents .link_wrap {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 24px 0 0;
}

.s_contents .link_box2,
.s_contents .link_box {
	float: none;
	width: 100%;
	box-sizing: border-box;
	background: #fff;
	padding: 0;
	border: 1px solid #e0331b;
	border-radius: 4px;
	text-align: center;
}

.s_contents .link_box p.cont_link,
.s_contents .link_box2 p.cont_link {
	margin: 0;
	line-height: 1;
}

.s_contents .link_box .cont_link a,
.s_contents .link_box2 .cont_link a {
	/* a.overimg へのインライン display 付与 (jQuery) に備えて !important */
	display: flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
	height: 58px;
	padding: 0 12px;
	border: none;
	border-radius: 0;
	background: transparent;
	color: #e0331b;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

/* ------------------------------------------------------------
   パーティー検索CTA(.s_display): 旧バナー画像をCSS描画に置換
------------------------------------------------------------ */
.s_contents .s_display {
  margin: 70px 0 0;
}
.s_contents .s_display .cont_image {
  margin: 0;
}
.s_contents .s_display .cont_image::before {
  content: "＼まずは空席状況をチェック／";
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 30px;
  color: var(--otc-text);
}
.s_contents .s_display .cont_image a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 60px;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  margin: 10px;
}
.s_contents .s_display .cont_image a img {
  display: none; /* 旧バナー画像 */
}
.s_contents .s_display .cont_image a::before {
  content: "";
  width: 19px;
  height: 19px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2719%27%20height%3D%2719%27%20viewBox%3D%270%200%2019%2019%27%3E%3Ccircle%20cx%3D%277.5%27%20cy%3D%277.5%27%20r%3D%276.3%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272%27%2F%3E%3Cpath%20d%3D%27m12.5%2012.5%204.5%204.5%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272.6%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 19px 19px;
}
.s_contents .s_display .cont_image a::after {
  content: "パーティーの検索はこちら";
}

/* パーティー検索CTA: .s_display が無い .cont_image(検索リンク)にも適用 */
.cont_image:has(> a[href="/search/"]) {
  margin: 70px 0 0;
  text-align: center;
}
.cont_image:has(> a[href="/search/"])::before {
  content: "＼まずは空席状況をチェック／";
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 30px;
  color: var(--otc-text);
}
.cont_image > a[href="/search/"] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 60px;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  margin: 10px;
}
.cont_image > a[href="/search/"] img {
  display: none; /* 旧バナー画像 */
}
.cont_image > a[href="/search/"]::before {
  content: "";
  width: 19px;
  height: 19px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2719%27%20height%3D%2719%27%20viewBox%3D%270%200%2019%2019%27%3E%3Ccircle%20cx%3D%277.5%27%20cy%3D%277.5%27%20r%3D%276.3%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272%27%2F%3E%3Cpath%20d%3D%27m12.5%2012.5%204.5%204.5%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272.6%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 19px 19px;
}
.cont_image > a[href="/search/"]::after {
  content: "パーティーの検索はこちら";
}

.search_large:has(> a[href="/search/"]) {
  margin: 70px 0 0;
  text-align: center;
}
.search_large:has(> a[href="/search/"])::before {
  content: "＼まずは空席状況をチェック／";
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 30px;
  color: var(--otc-text);
}
.search_large > a[href="/search/"] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 60px;
  border-radius: 100px;
  background: linear-gradient(90deg, var(--otc-orange), var(--otc-red));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}
.search_large > a[href="/search/"] img {
  display: none; /* 旧バナー画像 */
}
.search_large > a[href="/search/"]::before {
  content: "";
  width: 19px;
  height: 19px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2719%27%20height%3D%2719%27%20viewBox%3D%270%200%2019%2019%27%3E%3Ccircle%20cx%3D%277.5%27%20cy%3D%277.5%27%20r%3D%276.3%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272%27%2F%3E%3Cpath%20d%3D%27m12.5%2012.5%204.5%204.5%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272.6%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 19px 19px;
}
.search_large > a[href="/search/"]::after {
  content: "パーティーの検索はこちら";
}

/* ------------------------------------------------------------
   CTA(お問い合わせ/無料会員登録): カードの下に絶対配置で逃がす
------------------------------------------------------------ */
.s_contents .call-to-action {
  /* position: absolute; */
  left: -1px;
  right: -1px;
  top: calc(100% + 60px); /* カード下60px。標準高さ210px+下余白60px=margin-bottom 330pxに収まる */
}
.s_contents .call-to-action > .call-to-register {
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
}
/* お問い合わせ: 黒ピル(本文内の<style>タグより詳細度で勝つ) */
.s_contents .call-to-action .call-to-register .button {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 60px;
  margin: 0 !important;
  padding: 10px 44px !important;
  border: none;
  border-radius: 100px;
  background: var(--otc-text) !important;
  color: #fff !important;
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
}
.s_contents .call-to-action .call-to-register .button::after {
  content: "";
  position: absolute;
  right: 25px;
  top: 50%;
  width: 10px;
  height: 17px;
  margin: 0;
  border: none !important;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2710%27%20height%3D%2717%27%20viewBox%3D%270%200%2010%2017%27%3E%3Cpath%20d%3D%27M1.5%201.5%208%208.5%201.5%2015.5%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%272.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 10px 17px;
}
.s_contents .call-to-action .call-to-register .horizontal-line {
  display: none;
}
/* 無料会員登録: 白ピル黒枠 */
.s_contents .call-to-action .call-to-register .register-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 60px;
  margin: 24px 0 0;
  padding: 10px 44px;
  border: 2px solid var(--otc-text);
  border-radius: 100px;
  background: #fff;
  color: var(--otc-text);
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
}
.s_contents .call-to-action .call-to-register .register-button::after {
  content: "";
  position: absolute;
  right: 25px;
  top: 50%;
  width: 10px;
  height: 17px;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2710%27%20height%3D%2717%27%20viewBox%3D%270%200%2010%2017%27%3E%3Cpath%20d%3D%27M1.5%201.5%208%208.5%201.5%2015.5%27%20fill%3D%27none%27%20stroke%3D%27%23333%27%20stroke-width%3D%272.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / 10px 17px;
}
/* 注釈 */
.s_contents .call-to-action .call-to-register small {
  display: block;
  margin: 0;
  color: var(--otc-gray);
  font-size: 10px;
  line-height: 28px;
  text-align: left;
}
.s_contents .call-to-action .call-to-register .register-button + small {
  margin-top: 10px;
}

/* ------------------------------------------------------------
   Footer: ページトップバー
------------------------------------------------------------ */
.common-footer {
  position: relative;
  margin: 0;
  background: #fff;
  font-family: var(--otc-font);
}
.common-footer > .move-to-top {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 70px;
  border-radius: 0;
  background: var(--otc-bg-warm);
  font-size: 0; /* 元テキスト"Page Top"を消す */
}
.common-footer > .move-to-top::before {
  content: "ページトップへ";
  display: block;
  margin: 0;
  transform: none;
  color: var(--otc-text);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 1px;
}
.common-footer > .move-to-top::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin-left: 12px;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 8px solid var(--otc-red);
}

/* Footer: ロゴカード(画像をやめてタイポグラフィで再現) */
.common-footer > a[href="/"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 104px;
  margin: 20px 20px 0;
  background: #fff;
  border: 1px solid var(--otc-line);
  border-radius: 6px;
  text-decoration: none;
}
.common-footer > a > .logo {
  display: none;
}
.common-footer > a[href="/"]::before {
  content: "";
  display: block;
  width: 210px;
  height: 30px;
  background: url("https://image-front.uigrowth.jp/otocon/otocon_logo.png") no-repeat center / contain;
}

/* Footer: 安心の証・運営会社・グループサイト */
.common-footer .proofs {
  margin: 60px 20px 0;
  padding: 0;
}
.common-footer .proofs dt {
  margin: 60px 0 0;
  padding: 0;
  border: none;
  color: var(--otc-text);
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 1;
}
.common-footer .proofs dt:first-of-type {
  margin-top: 0;
}
.common-footer .proofs dd {
  margin: 30px 0 0;
}
.common-footer .proofs dd.security {
  margin-top: 10px;
}
.common-footer .proofs dd.security ul {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-around;
}
.common-footer .proofs dd.security ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
  margin: 0;
}
.common-footer .proofs dd.security figure img {
  width: auto;
  height: 100px;
}
.common-footer .proofs dd.security .proof-image {
  width: auto;
  max-width: 145px;
  max-height: 90px;
}
.common-footer .proofs dd.company figure {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.common-footer .proofs dd.company figure img {
  width: 46px;
  margin-right: 17px;
}
.common-footer .proofs dd.company figure figcaption {
  color: var(--otc-text);
  font-size: 12px;
  line-height: 24px;
}
/* グループサイトリンク: インラインstyleのflex横並びを縦一列に上書き */
.common-footer .proofs dd.group-servicesite-sp {
  display: flex !important;
  flex-direction: column !important;
  gap: 15px !important;
}
.common-footer .proofs dd.group-servicesite-sp .group-link {
  color: var(--otc-text);
  line-height: 18px;
  text-decoration: none;
}
.common-footer .firstview-note {
  display:none;
}

/* Footer: ポリシーリンク(グレー帯・2列) + コピーライト */
.common-footer .policy-list {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: space-between;
  gap: 20px 10px;
  margin: 0;
  padding: 20px 10px 0;
  background: var(--otc-bg);
  font-size: 10px;
}
.common-footer .policy-list li {
  width: auto;
  height: auto;
  padding: 0;
  border: none;
  box-sizing: border-box;
}
.common-footer .policy-list li:nth-child(even) {
  border-left: none;
}
.common-footer .policy-list li::after {
  content: none;
}
.common-footer .policy-list a {
  display: block;
  width: auto;
  height: auto;
  color: var(--otc-text);
  font-size: 9px;
  line-height: 1;
  text-decoration: none;
}
.common-footer .policy-list .line {
  display: inline;
}
.common-footer .copyright {
  height: auto;
  margin: 0;
  padding: 50px 0 30px;
  background: var(--otc-bg);
}
.common-footer .copyright > small {
  padding: 0;
  color: var(--otc-gray);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}
.point_icon{
 display:none; 
}
.point_text_A{
  padding: 0;
  background:#FFFFFF;
  padding:20px;
  background: #fff;
  border: 1px solid var(--otc-line);
  border-radius: 6px;
}
.point_box{
  margin:30px 0 0 0;
}

.infolist{
  background:#FFFFFF;
  padding:20px;
  background: #fff;
  border: 1px solid var(--otc-line);
  font-size:12px;
  border-radius: 6px;
}

.info_box_txt{
	border-bottom: 1px solid #E2E2E2;
}
h1.release--title,
h1.release--title * {
  font-size: 12px !important;
}

.cont_h4 {
  width: fit-content;
  padding-left: 0px !important;
  border-left: none !important;
  color: var(--Text-Dark, #333) !important;
  font-weight: 600;
  border-bottom: 1px dashed var(--Primary-Orange, #E0331B);
}
@charset "utf-8";
/* ============================================================
   「すぐ使える！パーティー会話のコツ」ページ 追記用 CSS (PC + SP 共通)
   対象: https://www.otocon.jp/support/communication/
   デザイン: Figma「otoconリニューアル」
     PC: PC_すぐ使える！パーティー会話のコツ (1213:2382)
     SP: SP_すぐ使える！パーティー会話のコツ (1213:2563)

   PC サイトと SP サイトは別テンプレートで DOM が異なるため、
   1 ファイルでも競合しない:
     - PC 用ルール: #lower #main-C:has(.party_table_box) 配下のみに一致
     - SP 用ルール: .s_contents:has(.party_table_box) 配下のみに一致
   PC / SP どちらのページ固有 CSS として読み込んでも安全。

   前提 (dev 環境で確認済みの読み込み順):
     1. 既存サイト CSS (PC: /css/ 以下, SP: /s/css/ 以下)
     2. 下層共通ベース 20260727131144_{pc|sp}.css (uigrowth)
     3. ★このファイル (ページ固有 CSS として最後に読み込む)

   ベース CSS が既に実装済みのもの (このファイルでは触らない):
     タイトル h2 + マスコットアイコン / ページ内リンク page_link /
     セクション見出し h3 の赤バー / パーティー検索 CTA (.s_display) /
     下部 CTA (PC: .btn_area .contacts, SP: .call-to-action)

   このファイルが追加するページ固有分:
     記事全体の白カード化 / Point カード (バッジ復元) /
     サンプル会話見出し h4 / NG・OK チャット吹き出しカード
     (PC: 2 カラム, SP: 縦積み) / 前後記事ナビ (link_wrap)

   ほぼ全ルールを :has(.party_table_box) で当ページ構造に
   スコープしている (:has() は 2023 年以降の主要ブラウザで動作)。
   同一構造を持つ婚活成功術シリーズの他ページにも適用される点に注意。

   カラートークン (Figma):
     メインレッド   #e0331b   / Point ヘッダー背景 #fdf2f1
     NG カード      #f8f8f8   / 枠 #dfdfdf / バッジ #979797
     OK カード      #f4fbf7   / 枠 #d1f0e6 / バッジ #3b9c82
     吹き出し(女性) #fff 枠 #ede9e6 / 吹き出し(男性) #e1efff
     吹き出し文字   #2c2a29   / テキスト #333333
   ============================================================ */

/* ============================================================
   ■ PC (#lower #main-C 配下 — PC サイトのみに存在する DOM)
   ============================================================ */

/* ------------------------------------------------------------
   1. 記事全体を白カード化 (Figma の「記事」フレーム)
      ベース CSS は #main-C を透明の 900px コンテナにしている
      (カード化はコメントアウトされている) ため、当ページでは
      Figma 通り 1 枚の白カードにする
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	padding: 50px;
}

/* ベース CSS の「btn_area をカード外(グレー地)に張り出す」処理
   (margin: -51px = padding 50px + border 1px) と噛み合わせる */
#lower #main-C:has(.party_table_box):has(> div:last-child > .btn_area:last-child) {
	padding-bottom: 0;
	border-bottom: none;
	border-radius: 6px 6px 0 0;
}

/* ------------------------------------------------------------
   2. 導入文ボックス
      ベース CSS は .text-A 自体を白カードにするが、
      当ページは記事全体がカードなので装飾を外して素の本文に
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) .text-A,
#lower #main-C:has(.party_table_box) .text_A01,
#lower #main-C:has(.party_table_box) .text_A02 {
	background: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

#lower #main-C:has(.party_table_box) .text-A {
	margin: 0 0 25px;
}

#lower #main-C:has(.party_table_box) .text_A02 {
	font-size: 14px;
	line-height: 26px;
}

/* ------------------------------------------------------------
   3. Point カード (.point_box)
      旧: 茶帯画像 h3 + 茶アイコン画像バッジ + 茶枠ボディ
      ベース CSS は .point_icon を非表示・.point_text_A を
      単独カードにしているため、ここで Figma のカード型に再構成
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) .point_box {
	position: relative;
	background: #fff;
	border: 1px solid #fdf2f1;
	border-radius: 4px;
	overflow: hidden;
	margin: 0 0 24px;
}

/* ヘッダー行 (薄赤帯) */
#lower #main-C:has(.party_table_box) .point_box h3.cont_h3 {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	background: #fdf2f1;
	border: none;
	width: auto;
	height: auto;
	min-height: 57px;
	padding: 8px 20px 8px 118px;
	margin: 0;
	color: #333;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
}

/* ベース CSS の赤バー・旧デザインのアイコンを打ち消し */
#lower #main-C:has(.party_table_box) .point_box h3.cont_h3::before {
	content: none;
}

/* PointN バッジ (ベース CSS の display:none を復元して pill 化。
   DOM 上は h3 の後ろにあるため絶対配置でヘッダー行へ重ねる) */
#lower #main-C:has(.party_table_box) .point_box .point_icon {
	display: inline-block;
	background: #e0331b;
	width: auto;
	height: auto;
	position: absolute;
	top: 14px;
	left: 20px;
	line-height: 1;
	text-align: center;
	color: #fff;
	font-size: 15px;
	font-weight: bold;
	padding: 7px 16px;
	border-radius: 18px;
	white-space: nowrap;
}

/* ボディ (ベース CSS の単独カード装飾を外して素の本文に) */
#lower #main-C:has(.party_table_box) .point_box .point_text_A {
	background: #fff;
	border: none;
	border-radius: 0;
	padding: 20px 24px;
	margin: 0;
	font-size: 14px;
	line-height: 26px;
}

/* ------------------------------------------------------------
   4. 本文テキストの色・サイズ統一
      (font タグ / インライン style を新デザインの #333 へ)
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) .text_A02 font,
#lower #main-C:has(.party_table_box) .point_text_A font {
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}

#lower #main-C:has(.party_table_box) .text_A02 div[style],
#lower #main-C:has(.party_table_box) .text_A02 p[style],
#lower #main-C:has(.party_table_box) .point_text_A div[style],
#lower #main-C:has(.party_table_box) .point_text_A p[style] {
	color: #333 !important;
}

#lower #main-C:has(.party_table_box) .text_A02 span[style],
#lower #main-C:has(.party_table_box) .point_text_A span[style] {
	color: #333 !important;
	font-size: inherit !important;
	font-family: inherit !important;
}

/* 強調 (旧 #cc0000) はメインレッドに置き換え */
#lower #main-C:has(.party_table_box) .point_text_A font[color="#cc0000"] {
	color: #e0331b;
}

#lower #main-C:has(.party_table_box) .text_A02 a,
#lower #main-C:has(.party_table_box) .point_text_A a,
#lower #main-C:has(.party_table_box) .text_A02 a font,
#lower #main-C:has(.party_table_box) .point_text_A a font {
	color: #e0331b !important;
	text-decoration: none;
}

#lower #main-C:has(.party_table_box) .text_A02 a:hover,
#lower #main-C:has(.party_table_box) .point_text_A a:hover {
	text-decoration: underline;
}

/* ページ内リンク (page_link) は導入文 (.text_A02) の中にあるため、
   上のリンク赤色ルールから除外して Figma どおり #333 に戻す */
#lower #main-C:has(.party_table_box) ul.page_link li a,
#lower #main-C:has(.party_table_box) ul.page_link li a font {
	color: #333 !important;
}

/* ------------------------------------------------------------
   5. サンプル会話見出し h4 (婚活パーティー サンプル会話例N)
      新: 赤破線の下線 + 15px セミボールド
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) h4.cont_h4 {
	width: fit-content;
	background: none;
	border: none; /* 旧 h4 の左ボーダー等を打ち消し */
	border-bottom: 1px dashed #e0331b;
	padding: 0 2px 6px 0;
	margin: 0 0 4px;
	color: #333;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

#lower #main-C:has(.party_table_box) h4.cont_h4 font {
	color: #333;
	font-family: inherit;
	font-size: inherit;
}

/* ------------------------------------------------------------
   6. OK / NG 会話カード (.party_table1 = NG / .party_table2 = OK)
      旧: 茶枠テーブル + 黒/赤の巨大 NG/OK セル + 装飾画像
      新: 2 カラムのカード + pill バッジ + チャット吹き出し UI
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) .party_table_box {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0 0 16px;
}

#lower #main-C:has(.party_table_box) .party_table_box h4.cont_h4 {
	flex: 0 0 100%;
}

/* サンプル会話例2 の party_table_box は 1 つ目の内側に
   ネストされている (CMS 出力の構造) ため、全幅の行にする */
#lower #main-C:has(.party_table_box) .party_table_box .party_table_box {
	flex: 0 0 100%;
}

#lower #main-C:has(.party_table_box) .party_table1,
#lower #main-C:has(.party_table_box) .party_table2 {
	flex: 1 1 0;
	min-width: 0;
	box-sizing: border-box;
	margin: 0;
	padding: 24px;
	border-radius: 6px;
}

/* NG カード (グレー) */
#lower #main-C:has(.party_table_box) .party_table1 {
	background: #f8f8f8;
	border: 1px solid #dfdfdf;
}

/* OK カード (グリーン) */
#lower #main-C:has(.party_table_box) .party_table2 {
	background: #f4fbf7;
	border: 1px solid #d1f0e6;
}

/* PC では SP 用の複製テーブル (.s_party_table*) は空のため非表示 */
#lower #main-C:has(.party_table_box) .s_party_table1,
#lower #main-C:has(.party_table_box) .s_party_table2 {
	display: none;
}

/* テーブル構造をブロック化してカード内レイアウトに */
#lower #main-C:has(.party_table_box) .party_table1 table.free_table,
#lower #main-C:has(.party_table_box) .party_table2 table.free_table,
#lower #main-C:has(.party_table_box) .party_table1 tbody,
#lower #main-C:has(.party_table_box) .party_table2 tbody,
#lower #main-C:has(.party_table_box) .party_table1 tr,
#lower #main-C:has(.party_table_box) .party_table2 tr,
#lower #main-C:has(.party_table_box) .party_table1 th,
#lower #main-C:has(.party_table_box) .party_table2 th,
#lower #main-C:has(.party_table_box) .party_table1 td,
#lower #main-C:has(.party_table_box) .party_table2 td {
	display: block;
	width: auto !important; /* セルのインライン width を打ち消し */
	border: none;
	background: none;
	padding: 0;
	margin: 0;
	font-size: 14px; /* テーブルのインライン font-size:80% を打ち消し */
}

/* NG / OK バッジ (旧: 巨大 48px セル → 新: pill) */
#lower #main-C:has(.party_table_box) .party_table1 th.cell_0,
#lower #main-C:has(.party_table_box) .party_table2 th.cell_0 {
	display: inline-block;
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	text-align: center;
	padding: 8px 16px;
	border-radius: 100px;
	margin-bottom: 20px;
}

#lower #main-C:has(.party_table_box) .party_table1 th.cell_0 {
	background: #979797;
}

#lower #main-C:has(.party_table_box) .party_table2 th.cell_0 {
	background: #3b9c82;
}

/* 旧デザインの内側装飾画像 (party_table_in_*.png) を無効化 */
#lower #main-C:has(.party_table_box) .party_table_in_top,
#lower #main-C:has(.party_table_box) .party_table_in_btm {
	background: none;
	padding: 0;
}

#lower #main-C:has(.party_table_box) .party_table_in_mid {
	background: none;
	padding: 0;
	min-height: 0;
	color: #333;
}

/* --- チャット吹き出し (会話セル cell_1) --- */
#lower #main-C:has(.party_table_box) td.cell_1 {
	margin-bottom: 20px;
}

#lower #main-C:has(.party_table_box) td.cell_1 .party_table_in_mid > div {
	margin-bottom: 12px;
}

#lower #main-C:has(.party_table_box) td.cell_1 .party_table_in_mid > div:last-child {
	margin-bottom: 0;
}

/* 空行 (br だけの font / span) は非表示 */
#lower #main-C:has(.party_table_box) td.cell_1 div:has(> font > br:only-child),
#lower #main-C:has(.party_table_box) td.cell_1 div:has(> span > br:only-child) {
	display: none;
}

/* 女性の吹き出し (旧 font color 赤系 / インライン style の span) : 白地・左寄せ */
#lower #main-C:has(.party_table_box) td.cell_1 font[color="#ff6666"],
#lower #main-C:has(.party_table_box) td.cell_1 font[color="#ff3333"],
#lower #main-C:has(.party_table_box) td.cell_1 span[style*="rgb(255, 102, 102)"] {
	display: inline-block;
	box-sizing: border-box;
	max-width: 92%;
	background: #fff;
	border: 1px solid #ede9e6;
	color: #2c2a29 !important; /* span のインライン style color に勝つため */
	font-size: 14px;
	font-family: inherit;
	line-height: 1.5;
	text-align: left;
	padding: 12px 16px;
	border-radius: 12px 12px 12px 2px;
}

/* 男性の吹き出し (旧 font color 青系) : 水色地・右寄せ */
#lower #main-C:has(.party_table_box) td.cell_1 font[color="#3399ff"],
#lower #main-C:has(.party_table_box) td.cell_1 font[color="#0066ff"] {
	display: inline-block;
	box-sizing: border-box;
	max-width: 92%;
	background: #e1efff;
	border: none;
	color: #2c2a29 !important; /* span のインライン style color に勝つため */
	font-size: 14px;
	font-family: inherit;
	line-height: 1.5;
	text-align: left;
	padding: 12px 16px;
	border-radius: 12px 12px 2px 12px;
}

#lower #main-C:has(.party_table_box) td.cell_1 div:has(> font[color="#3399ff"]),
#lower #main-C:has(.party_table_box) td.cell_1 div:has(> font[color="#0066ff"]) {
	text-align: right;
}

/* --- 解説 (cell_2) : 破線区切りの下に表示 --- */
#lower #main-C:has(.party_table_box) td.cell_2 {
	border-top: 1px dashed #cfcfcf;
	padding-top: 20px;
	font-size: 14px;
	line-height: 1.6;
	color: #333;
}

#lower #main-C:has(.party_table_box) .party_table2 td.cell_2 {
	border-top-color: #b7e0d2;
}

/* ------------------------------------------------------------
   7. 前後記事ナビ (.link_box2 = 前 / .link_box = 次)
      ベース CSS の赤枠 pill ではなく、Figma の
      「左右連結ボックス (article-navigation)」スタイルにする
   ------------------------------------------------------------ */
#lower #main-C:has(.party_table_box) .link_wrap {
	display: flex;
	max-width: 800px;
	margin: 30px auto 0;
}

#lower #main-C:has(.party_table_box) .link_box2,
#lower #main-C:has(.party_table_box) .link_box {
	float: none;
	width: auto;
	flex: 1 1 0;
	min-width: 0;
	background: #fff;
	margin: 0;
	padding: 0;
	text-align: center;
}

#lower #main-C:has(.party_table_box) .link_box2 {
	border: 1px solid #e0331b;
	border-radius: 4px 0 0 4px;
}

#lower #main-C:has(.party_table_box) .link_box {
	border: 1px solid #e0331b;
	border-left: none;
	border-radius: 0 4px 4px 0;
}

#lower #main-C:has(.party_table_box) .link_box p.cont_link,
#lower #main-C:has(.party_table_box) .link_box2 p.cont_link {
	margin: 0;
	line-height: 1;
}

#lower #main-C:has(.party_table_box) .link_box .cont_link a,
#lower #main-C:has(.party_table_box) .link_box2 .cont_link a {
	/* ページの jQuery (colorOverlay) が a.overimg にインラインで
	   display:inline-block を付与するため !important で flex を維持 */
	display: flex !important;
	width: 100%;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 0;
	height: 58px;
	padding: 0 12px;
	border: none;
	border-radius: 0;
	background: transparent;
	color: #e0331b;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

#lower #main-C:has(.party_table_box) .link_box .cont_link a:hover,
#lower #main-C:has(.party_table_box) .link_box2 .cont_link a:hover {
	background: #fdf2f1;
	color: #e0331b;
}

/* ============================================================
   ■ SP (.s_contents 配下 — SP サイトのみに存在する DOM)
   ============================================================ */

/* ------------------------------------------------------------
   1. 記事全体を白カード化 (Figma の「記事」フレーム)
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .wrapper {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	padding: 30px 15px;
	box-sizing: border-box;
}

/* ------------------------------------------------------------
   2. 導入文ボックス
      ベース CSS は .text_A01 を単独カードにするが、
      記事全体がカードなので装飾を外して素の本文に
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .text_A01,
.s_contents:has(.party_table_box) .text_A02 {
	background: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

.s_contents:has(.party_table_box) .text_A01 {
	margin: 0 0 23px;
}

.s_contents:has(.party_table_box) .text_A02 {
	font-size: 14px;
	line-height: 26px;
}

/* 記事内の CMS 画像は角丸で幅いっぱいに */
.s_contents:has(.party_table_box) .cont_image_text img {
	display: block;
	float: none !important;
	width: 100%;
	height: auto;
	border-radius: 6px;
	margin: 0 0 16px;
}

/* ------------------------------------------------------------
   3. Point カード (.point_box)
      ベース CSS は .point_icon を非表示・.point_text_A を
      単独カードにしているため、ここで Figma のカード型に再構成
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .point_box {
	position: relative;
	background: #fff;
	border: 1px solid #fdf2f1;
	border-radius: 4px;
	overflow: hidden;
	margin: 0 0 24px;
}

/* ヘッダー行 (薄赤帯)。Figma SP はバッジ左 8px 開始 */
.s_contents:has(.party_table_box) .point_box h3.cont_h3 {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	background: #fdf2f1;
	border: none;
	width: auto;
	height: auto;
	min-height: 57px;
	padding: 8px 12px 8px 106px;
	margin: 0;
	color: #333;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

/* ベース CSS の赤バー・旧デザインのアイコンを打ち消し */
.s_contents:has(.party_table_box) .point_box h3.cont_h3::before {
	content: none;
}

/* PointN バッジ (ベース CSS の display:none を復元して pill 化) */
.s_contents:has(.party_table_box) .point_box .point_icon {
	display: inline-block;
	background: #e0331b;
	width: auto;
	height: auto;
	position: absolute;
	top: 14px;
	left: 8px;
	line-height: 1;
	text-align: center;
	color: #fff;
	font-size: 15px;
	font-weight: bold;
	padding: 7px 16px;
	border-radius: 18px;
	white-space: nowrap;
}

/* ボディ (ベース CSS の単独カード装飾を外して素の本文に) */
.s_contents:has(.party_table_box) .point_box .point_text_A {
	background: #fff;
	border: none;
	border-radius: 0;
	padding: 20px 10px;
	margin: 0;
	font-size: 14px;
	line-height: 26px;
}

/* ------------------------------------------------------------
   4. 本文テキストの色・サイズ統一
      (font タグ / インライン style を新デザインの #333 へ)
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .text_A02 font,
.s_contents:has(.party_table_box) .point_text_A font {
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}

.s_contents:has(.party_table_box) .text_A02 div[style],
.s_contents:has(.party_table_box) .text_A02 p[style],
.s_contents:has(.party_table_box) .point_text_A div[style],
.s_contents:has(.party_table_box) .point_text_A p[style] {
	color: #333 !important;
}

.s_contents:has(.party_table_box) .text_A02 span[style],
.s_contents:has(.party_table_box) .point_text_A span[style] {
	color: #333 !important;
	font-size: inherit !important;
	font-family: inherit !important;
}

/* 強調 (旧 #cc0000) はメインレッドに置き換え */
.s_contents:has(.party_table_box) .point_text_A font[color="#cc0000"] {
	color: #e0331b;
}

.s_contents:has(.party_table_box) .text_A02 a,
.s_contents:has(.party_table_box) .point_text_A a,
.s_contents:has(.party_table_box) .text_A02 a font,
.s_contents:has(.party_table_box) .point_text_A a font {
	color: #e0331b !important;
	text-decoration: none;
}

/* ページ内リンク (page_link) は導入文 (.text_A02) の中にあるため、
   上のリンク赤色ルールから除外して Figma どおり #333 に戻す */
.s_contents:has(.party_table_box) ul.page_link li a,
.s_contents:has(.party_table_box) ul.page_link li a font {
	color: #333 !important;
}

/* ------------------------------------------------------------
   5. サンプル会話見出し h4 (婚活パーティー サンプル会話例N)
      新: 赤破線の下線 + 15px セミボールド
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) h4.cont_h4 {
	width: fit-content;
	background: none;
	border: none; /* 旧 h4 の左ボーダー (5px solid #82610e) を打ち消し */
	border-bottom: 1px dashed #e0331b;
	padding-left: 0;
	padding: 0 2px 6px 0;
	margin: 20px 0 16px;
	color: #333;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

.s_contents:has(.party_table_box) h4.cont_h4 font {
	color: #333;
	font-family: inherit;
	font-size: inherit;
}

/* ------------------------------------------------------------
   6. OK / NG 会話カード (.party_table1 = NG / .party_table2 = OK)
      SP は縦積み。表示されるのは .s_party_tableN 内の
      縦積みテーブル (th=バッジ / td=会話 / td=解説 が各行)
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .party_table_box {
	margin: 0 0 16px;
}

.s_contents:has(.party_table_box) .party_table1,
.s_contents:has(.party_table_box) .party_table2 {
	box-sizing: border-box;
	width: auto;
	margin: 0 0 24px;
	padding: 20px 16px;
	border-radius: 6px;
}

/* NG カード (グレー) */
.s_contents:has(.party_table_box) .party_table1 {
	background: #f8f8f8;
	border: 1px solid #dfdfdf;
}

/* OK カード (グリーン) */
.s_contents:has(.party_table_box) .party_table2 {
	background: #f4fbf7;
	border: 1px solid #d1f0e6;
}

/* PC 用テーブル (party_tableN 直下) は旧 CSS どおり非表示を維持 */
.s_contents:has(.party_table_box) .party_table1 > table,
.s_contents:has(.party_table_box) .party_table2 > table {
	display: none !important;
}

/* SP 用テーブル (.s_party_tableN) の構造をブロック化 */
.s_contents:has(.party_table_box) .s_party_table1,
.s_contents:has(.party_table_box) .s_party_table2 {
	display: block;
}

.s_contents:has(.party_table_box) .s_party_table1 table.free_table,
.s_contents:has(.party_table_box) .s_party_table2 table.free_table,
.s_contents:has(.party_table_box) .s_party_table1 tbody,
.s_contents:has(.party_table_box) .s_party_table2 tbody,
.s_contents:has(.party_table_box) .s_party_table1 tr,
.s_contents:has(.party_table_box) .s_party_table2 tr,
.s_contents:has(.party_table_box) .s_party_table1 th,
.s_contents:has(.party_table_box) .s_party_table2 th,
.s_contents:has(.party_table_box) .s_party_table1 td,
.s_contents:has(.party_table_box) .s_party_table2 td {
	display: block;
	width: auto !important; /* セルのインライン width を打ち消し */
	border: none;
	background: none;
	padding: 0;
	margin: 0;
	font-size: 14px; /* テーブルのインライン font-size:80% を打ち消し */
}

/* NG / OK バッジ (旧: 巨大 48px セル → 新: pill) */
.s_contents:has(.party_table_box) .s_party_table1 th.cell_0,
.s_contents:has(.party_table_box) .s_party_table2 th.cell_0 {
	display: inline-block;
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	text-align: center;
	padding: 8px 16px;
	border-radius: 100px;
	margin-bottom: 16px;
}

.s_contents:has(.party_table_box) .s_party_table1 th.cell_0 {
	background: #979797;
}

.s_contents:has(.party_table_box) .s_party_table2 th.cell_0 {
	background: #3b9c82;
}

/* 旧デザインの内側装飾を無効化 */
.s_contents:has(.party_table_box) .party_table_in_top,
.s_contents:has(.party_table_box) .party_table_in_btm {
	background: none;
	padding: 0;
}

.s_contents:has(.party_table_box) .party_table_in_mid {
	background: none;
	padding: 0;
	min-height: 0;
	color: #333;
}

/* --- チャット吹き出し (会話セル cell_1) --- */
.s_contents:has(.party_table_box) td.cell_1 {
	margin-bottom: 16px;
}

.s_contents:has(.party_table_box) td.cell_1 .party_table_in_mid > div {
	margin-bottom: 12px;
}

.s_contents:has(.party_table_box) td.cell_1 .party_table_in_mid > div:last-child {
	margin-bottom: 0;
}

/* 空行 (br だけの font / span) は非表示 */
.s_contents:has(.party_table_box) td.cell_1 div:has(> font > br:only-child),
.s_contents:has(.party_table_box) td.cell_1 div:has(> span > br:only-child) {
	display: none;
}

/* 女性の吹き出し (旧 font color 赤系 / インライン style の span) : 白地・左寄せ */
.s_contents:has(.party_table_box) td.cell_1 font[color="#ff6666"],
.s_contents:has(.party_table_box) td.cell_1 font[color="#ff3333"],
.s_contents:has(.party_table_box) td.cell_1 span[style*="rgb(255, 102, 102)"] {
	display: inline-block;
	box-sizing: border-box;
	max-width: 92%;
	background: #fff;
	border: 1px solid #ede9e6;
	color: #2c2a29 !important; /* span のインライン style color に勝つため */
	font-size: 14px;
	font-family: inherit;
	line-height: 1.5;
	text-align: left;
	padding: 12px 16px;
	border-radius: 12px 12px 12px 2px;
}

/* 男性の吹き出し (旧 font color 青系) : 水色地・右寄せ */
.s_contents:has(.party_table_box) td.cell_1 font[color="#3399ff"],
.s_contents:has(.party_table_box) td.cell_1 font[color="#0066ff"] {
	display: inline-block;
	box-sizing: border-box;
	max-width: 92%;
	background: #e1efff;
	border: none;
	color: #2c2a29 !important; /* span のインライン style color に勝つため */
	font-size: 14px;
	font-family: inherit;
	line-height: 1.5;
	text-align: left;
	padding: 12px 16px;
	border-radius: 12px 12px 2px 12px;
}

.s_contents:has(.party_table_box) td.cell_1 div:has(> font[color="#3399ff"]),
.s_contents:has(.party_table_box) td.cell_1 div:has(> font[color="#0066ff"]) {
	text-align: right;
}

/* --- 解説 (cell_2) : 破線区切りの下に表示 --- */
.s_contents:has(.party_table_box) td.cell_2 {
	border-top: 1px dashed #cfcfcf;
	padding-top: 16px;
	font-size: 14px;
	line-height: 1.6;
	color: #333;
}

.s_contents:has(.party_table_box) .party_table2 td.cell_2 {
	border-top-color: #b7e0d2;
}

/* ------------------------------------------------------------
   7. 前後記事ナビ (.link_box2 = 前 / .link_box = 次)
      Figma SP: 全幅ボックスを縦に 12px 間隔で積む
   ------------------------------------------------------------ */
.s_contents:has(.party_table_box) .link_wrap {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 24px 0 0;
}

.s_contents:has(.party_table_box) .link_box2,
.s_contents:has(.party_table_box) .link_box {
	float: none;
	width: 100%;
	box-sizing: border-box;
	background: #fff;
	margin: 0;
	padding: 0;
	border: 1px solid #e0331b;
	border-radius: 4px;
	text-align: center;
}

.s_contents:has(.party_table_box) .link_box p.cont_link,
.s_contents:has(.party_table_box) .link_box2 p.cont_link {
	margin: 0;
	line-height: 1;
}

.s_contents:has(.party_table_box) .link_box .cont_link a,
.s_contents:has(.party_table_box) .link_box2 .cont_link a {
	/* a.overimg へのインライン display 付与 (jQuery) に備えて !important */
	display: flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
	height: 58px;
	padding: 0 12px;
	border: none;
	border-radius: 0;
	background: transparent;
	color: #e0331b;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

/* ベース CSS の pill ボタン用矢印を打ち消し */
.s_contents:has(.party_table_box) .link_box .cont_link a::after,
.s_contents:has(.party_table_box) .link_box2 .cont_link a::after {
	content: none;
}
