@charset "UTF-8";

/*
===============================================
 化粧品特集ページ CSS
 2025年版 PC・SP共通スタイル
===============================================
*/

/* =============================================
■ 共通スタイル（PC・SP両対応）
============================================= */
/* =============================================
■ PCスタイル（デスクトップ表示）
============================================= */

#d_container .wrap {
  width: 100%;
}

#d_topic_path {
  margin-bottom: 20px;
}

#d_topic_path ol {
  width: 990px;
  margin: 0 auto 20px;
}

#cTop_csm {
  position: relative;
  color: #333;
}

#cTop_csm .container {
  box-sizing: border-box;
  width: 990px;
  margin-right: auto;
  margin-left: auto;
}

#cTop_csm .pc-only {
  display: inline-block;
}

#cTop_csm .sp-only {
  display: none;
}

#cTop_csm .w100 {
  width: 100%;
  height: auto;
}

#cTop_csm .border {
  border: 1px solid #ccc;
  box-sizing: border-box;
}

#cTop_csm a {
  text-decoration: none;
  color: #333;
}

/* list-*col内のテキストとaタグのカラー統一 */
#cTop_csm .list-1col,
#cTop_csm .list-2col,
#cTop_csm .list-3col,
#cTop_csm .list-3col-nogap,
#cTop_csm .list-4col,
#cTop_csm .list-5col {
  color: #333;
}

#cTop_csm .list-1col a,
#cTop_csm .list-2col a,
#cTop_csm .list-3col a,
#cTop_csm .list-3col-nogap a,
#cTop_csm .list-4col a,
#cTop_csm .list-5col a {
  color: #333;
}

#cTop_csm .link-hover {
  text-decoration: none;
  transition: opacity 0.4s;
}

#cTop_csm .link-hover:hover {
  cursor: pointer;
  opacity: 0.5;
}

/* 共通ホバー効果 - PC版 */
#cTop_csm .sectionPickUpBrand .list ul li a:hover,
#cTop_csm .sectionBrand .list-5col a:hover,
#cTop_csm .sectionCategory a:hover,
#cTop_csm .sectionRanking .list-3col li a:hover,
#cTop_csm .sectionStaffsVoice li>a:hover {
  opacity: 0.7;
  transition: opacity 0.3s;
}

#cTop_csm .section:not(:last-child) {
  padding: 70px 0;
}

#cTop_csm .section:first-child {
  padding-top: 0;
}

#cTop_csm .section:last-child {
  padding-top: 70px;
}

#cTop_csm .viewAll a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 490px;
  height: 80px;
  margin: 0 auto;
  font-size: 20px;
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-right-black01_20230331.svg");
  background-repeat: no-repeat;
  background-position: calc(100% - 36px) 50%;
  background-size: 7.545px 13.676px;
  /* SVG画像の実寸サイズに合わせています */
  border: 1px solid #ef858c;
}

#cTop_csm .cosme_notice {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  text-align: center;
}

#cTop_csm .mv {
  max-width: 990px;
  margin: 0 auto 47px;
}

#cTop_csm .mv img {
  width: 990px;
  height: 500px;
}

#cTop_csm .mv .slick-dots {
  bottom: -22px;
}

#cTop_csm .mv .slick-dots li {
  width: 10px;
  height: 10px;
  margin: 0 7px;
}

#cTop_csm .mv .slick-dots li button {
  width: 10px;
  height: 10px;
}

#cTop_csm .mv .slick-dots li button::before {
  width: 10px;
  height: 10px;
  content: "";
  background-color: #ccc;
  border-radius: 50%;
  opacity: 1;
}

#cTop_csm .mv .slick-dots li.slick-active button::before {
  background-color: #010101;
  opacity: 1;
}

#cTop_csm .mv .slide-arrow {
  position: absolute;
  top: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  cursor: pointer;
  background-color: rgb(255 255 255 / 60%);
  border-radius: 50%;
  transform: translateY(-50%);
}

#cTop_csm .mv .slide-arrow::before {
  position: absolute;
  top: 48%;
  right: 30px;
  width: 16px;
  height: 16px;
  content: "";
  border: 0;
  border-top: solid 1px #231714;
  border-right: solid 1px #231714;
  transition: all 0.3s ease-in-out;
  transform: rotate(45deg) translateY(-50%);
}

#cTop_csm .mv .prev-arrow {
  left: 0;
  z-index: 1;
}

#cTop_csm .mv .prev-arrow::before {
  top: 27%;
  right: 22px;
  transform: rotate(225deg) translateX(-50%);
}

#cTop_csm .mv .next-arrow {
  right: 0;
}

#cTop_csm .anchor_nav {
  margin-bottom: 68px;
  background-color: #fafafa;
  height: 60px;
  /* 高さを60pxに設定 */
}

#cTop_csm .anchor_nav .container {
  display: flex;
  justify-content: center;
}

#cTop_csm .anchor_nav ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  /* 3分割グリッド */
  width: 100%;
  max-width: 990px;
}

#cTop_csm .anchor_nav ul li a {
  position: relative;
  /* 疑似要素の基準となる */
  display: flex;
  flex-direction: column;
  /* 縦方向に配置 */
  align-items: center;
  /* 水平中央配置 */
  justify-content: center;
  /* 垂直中央配置 */
  height: 60px;
  /* 親要素の高さと同じ */
  padding: 0 50px;
  /* 上下パディング削除、左右のみ */
  font-size: 14px;
  font-weight: normal;
  /* ボールド削除 */
  color: #333;
  text-align: center;
  /* テキスト中央配置 */
}

/* 背景画像を疑似要素で実装 */
#cTop_csm .anchor_nav ul li a::after {
  position: static;
  /* absoluteから変更 */
  margin-top: 5px;
  /* テキストと矢印の間隔 */
  width: 13.676px;
  height: 7.545px;
  content: "";
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-down-black01_20251008.svg");
  background-repeat: no-repeat;
  background-size: 13.676px 7.545px;
  /* SVG画像の実寸サイズに合わせています */
}

#cTop_csm .section .list:not(:last-child) {
  margin-bottom: 60px;
}

#cTop_csm .section .list .item {
  position: relative;
}

#cTop_csm .section .list .item a {
  display: block;
}

#cTop_csm .section .list .item a .image,
#cTop_csm .section .list .item a .text {
  display: block;
  text-align: center;
}

#cTop_csm .section .list ul {
  display: flex;
  flex-wrap: wrap;
}

/* PICK UP BRANDセクション専用のgrid表示 */
#cTop_csm .sectionPickUpBrand .list ul {
  display: grid !important;
}

/* ----- 新しいリストスタイル（簡潔版・Grid） ----- */
#cTop_csm .list-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#cTop_csm .list-2col li {
  /* Gridアイテムは自動配置 */
}

/* ----- 1カラムリストスタイル（Grid） ----- */
#cTop_csm .list-1col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* CAMPAIGNセクションのlist-1colは22pxのgap */
#cTop_csm .sectionCampaign .list-1col {
  gap: 22px;
}

/* INFORMATIONセクションのlist-1colは0pxのgap（デフォルト）*/
#cTop_csm .sectionInformation .list-1col {
  gap: 0;
}

#cTop_csm .list-1col li {
  /* 1列グリッド */
}

/* ----- 3カラムリストスタイル（Grid） ----- */
#cTop_csm .list-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 21px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#cTop_csm .list-3col li {
  /* 3列グリッド */
}

/* ----- 3カラムリストスタイル（gap無し・Grid） ----- */
#cTop_csm .list-3col-nogap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  /* 既存のカテゴリースタイルを継承 */
  text-align: center;
  background-color: #fff9fa;
  border-top: 1px dotted #ef858c;
  border-bottom: 1px dotted #ef858c;
}

#cTop_csm .list-3col-nogap li {
  /* 既存のカテゴリースタイルを継承 */
  box-sizing: border-box;
  border-right: 1px dotted #ef858c;
  border-bottom: 1px dotted #ef858c;
}

#cTop_csm .list-3col-nogap li:nth-child(3n) {
  border-right: none;
}

#cTop_csm .list-3col-nogap a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 10px 10px 22px;
  position: relative;
}

#cTop_csm .list-3col-nogap .content {
  display: flex;
  align-items: center;
  gap: 15px;
  flex: 1;
  position: relative;
}

#cTop_csm .list-3col-nogap .image {
  margin-bottom: 0;
  flex-shrink: 0;
}

#cTop_csm .list-3col-nogap .text {
  font-size: 18px;
  font-weight: normal;
  line-height: 1.4;
  text-align: left;
  flex: 1;
  padding-right: 28px;
}

#cTop_csm .list-3col-nogap .content::after {
  content: "";
  display: block;
  width: 12.707px;
  height: 7.061px;
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-down-black01_20230331.svg");
  background-repeat: no-repeat;
  background-size: 12.707px 7.061px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
  transition: transform 0.2s linear;
}

/* PC版：ドロップダウン開時の矢印回転 */
#cTop_csm .category-dropdown.dropdown-open .content::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ----- 4カラムリストスタイル（Grid） ----- */
#cTop_csm .list-4col {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#cTop_csm .list-4col li {
  /* 4列グリッド */
}

/* ----- 旧リストスタイル（互換性のため残す） ----- */
#cTop_csm .section .listColmun2 ul li {
  width: calc((100% - 30px) / 2);
}

#cTop_csm .section .listColmun2 ul li:nth-child(2n + 1) {
  margin-right: 30px;
}

#cTop_csm .section .listColmun2 ul li:not(:nth-last-child(-n + 2)) {
  margin-bottom: 15px;
}

#cTop_csm .title {
  padding-bottom: 20px;
  margin-bottom: 50px;
  text-align: center;
  border-bottom: 1px solid #ef858c;
}

#cTop_csm .title .h2 {
  padding-bottom: 0;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.2;
}

#cTop_csm .title .h2 img,
#cTop_csm .title .h2 .text {
  display: block;
}

#cTop_csm .title .h2 img {
  margin: 0 auto 10px;
}

#cTop_csm .title .h2 .text {
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
  margin-top: 2px;
}

#cTop_csm .sectionNews a {
  box-sizing: border-box;
  display: block;
}

#cTop_csm .image {
  display: block;
  margin-bottom: 11px;
}

#cTop_csm .image img {
  /* border: 1px solid #ccc;
  box-sizing: border-box; */
}

#cTop_csm .sectionBrand .image img {
  border: none;
}

#cTop_csm .sectionCategory .image img {
  border: none;
}

#cTop_csm .sectionNews .image img {
  border: none;
}

#cTop_csm .sectionPickUpBrand .image img {
  border: 1px solid #ccc;
}

#cTop_csm .category-text {
  font-size: 18px;
}

/* SP版：category-text 13px */
#news #cTop_csm .category-text {
  font-size: 13px;
}

/* ----- カテゴリードロップダウン ----- */
#cTop_csm .category-dropdown {
  position: relative;
}

#cTop_csm .category-dropdown .category-parent {
  cursor: pointer;
  transition: background-color 0.2s;
}

#cTop_csm .category-dropdown>a:not(.category-parent) .content::after {
  content: none;
}

#cTop_csm .dropdown-open .category-parent {
  background-color: #F9E4E6;
  opacity: 1;
}

#cTop_csm .category-dropdown .category-parent:hover {
  background-color: #F9E4E6;
  opacity: 1;
}

#cTop_csm .category-dropdown .dropdown-menu {
  position: relative;
  top: 0;
  left: 0;
  width: 300%;
  background-color: #fff;
  display: none;
  z-index: 1000;
  box-shadow: 1.5px 1.5px 3px rgba(0, 0, 0, 0.16);
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}

/* クリックで管理される表示制御 */
#cTop_csm .category-dropdown.dropdown-open .dropdown-menu {
  display: block;
  opacity: 1;
}

/* ホバー効果は完全に無効化 - クリックのみで制御 */

/* 全ホバー効果を無効化 - すべてのホバー関連表示を強制的に無効化 */
/* #cTop_csm .category-dropdown:hover .dropdown-menu,
#news #cTop_csm .category-dropdown:hover .dropdown-menu,
#cTop_csm .category-dropdown .dropdown-menu:hover,
#news #cTop_csm .category-dropdown .dropdown-menu:hover {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
} */

/* 閉じるアニメーション用 */
#cTop_csm .category-dropdown .dropdown-menu.closing {
  opacity: 0;
  pointer-events: none;
}

/* ドロップダウン表示時のレイアウト調整 */
#cTop_csm .category-dropdown.dropdown-open {
  position: relative;
  z-index: 1001;
}

/* PC（3列）：各カラムの位置に応じたドロップダウンメニューの位置調整 */
#cTop_csm .list-3col-nogap li:nth-child(3n+1) .dropdown-menu {
  margin-left: 0 !important;
  /* 1番目のカラム：そのまま */
  width: calc(300% + 2px);
  /* 右側に1pxの余白を追加 */
}

#cTop_csm .list-3col-nogap li:nth-child(3n+2) .dropdown-menu {
  margin-left: -100% !important;
  /* 2番目のカラム：左に1カラム分移動 */
  width: calc(300% + 1px);
  /* 右側に1pxの余白を追加 */
}

#cTop_csm .list-3col-nogap li:nth-child(3n) .dropdown-menu {
  margin-left: -200% !important;
  /* 3番目のカラム：左に2カラム分移動 */
  width: calc(300% - 1px);
  /* 右側に1pxの余白を追加 */
}

/* ----- カテゴリー一覧：下線制御（PC版・標準セレクタ） ----- */
/* PC（3列）：最終行のみ下線を削除 */
#cTop_csm .sectionCategory .list-3col-nogap li {
  border-bottom: 1px dotted #ef858c;
}

/* 最後の要素が1個だけの行の場合 */
#cTop_csm .sectionCategory .list-3col-nogap li:last-child:nth-child(3n+1) {
  border-bottom: none;
}

/* 最後の行が2個の場合 */
#cTop_csm .sectionCategory .list-3col-nogap li:nth-last-child(1):nth-child(3n+2),
#cTop_csm .sectionCategory .list-3col-nogap li:nth-last-child(2):nth-child(3n+1) {
  border-bottom: none;
}

/* 最後の行が3個の場合 */
#cTop_csm .sectionCategory .list-3col-nogap li:nth-last-child(1):nth-child(3n),
#cTop_csm .sectionCategory .list-3col-nogap li:nth-last-child(2):nth-child(3n-1),
#cTop_csm .sectionCategory .list-3col-nogap li:nth-last-child(3):nth-child(3n-2) {
  border-bottom: none;
}

/* シンプルレイアウト用のドロップダウン設定 */
.sectionCategory {
  position: relative;
}

#cTop_csm .list-3col-nogap {
  position: relative;
}

/* ドロップダウンメニューのスタイル */
#cTop_csm .category-dropdown .dropdown-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

#cTop_csm .category-dropdown .dropdown-menu li {
  border: none;
  display: block;
  width: 100%;
}

#cTop_csm .category-dropdown .dropdown-menu li:last-child {
  border-bottom: none;
}

#cTop_csm .category-dropdown .dropdown-menu a {
  display: block;
  padding: 18px 24px 18px 20px;
  font-size: 16px;
  color: #333;
  text-decoration: none;
  background-color: transparent;
  border: none;
  text-align: left;
  transition: background-color 0.2s;
  width: 100%;
  box-sizing: border-box;
  position: relative;
}

#cTop_csm .category-dropdown .dropdown-menu a::after {
  content: "";
  position: absolute;
  right: 21px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  transform: translateY(-50%) rotate(45deg);
}

#cTop_csm .category-dropdown .dropdown-menu a:hover {
  background-color: #fafafa;
}

#cTop_csm .sectionNews .news-date {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 11px;
  color: #EF858C;
  font-weight: bold;
}

#cTop_csm .sectionNews .news-title {
  display: block;
  font-size: 14px;
  line-height: 1.5;
}

#cTop_csm .sectionNewArrivals .date-highlight {
  color: #EF858C;
  font-weight: bold;
}

#cTop_csm .arrivals-info {
  display: block;
  font-size: 12px;
  line-height: 2;
}

#cTop_csm .price {
  font-weight: bold;
}

#cTop_csm .sectionPickUpBrand .title {
  margin-bottom: 60px;
}

#cTop_csm .sectionPickUpBrand .logo {
  margin-bottom: 40px;
  text-align: center;
  background-color: #fff;
}

#cTop_csm .sectionPickUpBrand .brand_mv {
  margin-bottom: 30px;
}

#cTop_csm .sectionPickUpBrand .price {
  font-size: 12px;
  font-weight: bold;
  line-height: 2;
}

#cTop_csm .sectionPickUpBrand .brand-title {
  display: block;
  font-size: 12px;
  line-height: 2;
}

/* ----- ブランドセクション ----- */
#cTop_csm .sectionBrand .body {
  padding: 0 1px;
}

#cTop_csm .sectionBrand .list-5col {
  margin-bottom: 60px;
  gap: 23px 30px;
}

/* ----- 5カラムリストスタイル（Grid） ----- */
#cTop_csm .list-5col {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 23px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#cTop_csm .list-5col li {
  /* 5列グリッド */
}

#cTop_csm .sectionBrand .list-5col a {
  display: block;
}

#cTop_csm .sectionBrand .list-5col a .image,
#cTop_csm .sectionBrand .list-5col a .brand-text {
  display: block;
  text-align: center;
}

#cTop_csm .sectionBrand .list-5col a h3.brand-text {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.5;
  text-align: center;
}

#cTop_csm .sectionCategory .list {
  text-align: center;
  background-color: #fff9fa;
  border-top: 1px dotted #ef858c;
  border-bottom: 1px dotted #ef858c;
}

#cTop_csm .sectionCategory .list li {
  box-sizing: border-box;
  width: 20%;
  border-right: 1px dotted #ef858c;
  border-bottom: 1px dotted #ef858c;
}

#cTop_csm .sectionCategory .list li:nth-child(5n) {
  border-right: none;
}

#cTop_csm .sectionCategory .list .image {
  margin-bottom: 20px;
}

#cTop_csm .sectionCategory .list .text {
  font-size: 18px;
  font-weight: normal;
  line-height: 1.4;
}

#cTop_csm .sectionCategory a {
  display: block;
  padding: 10px;
  color: #333;
}

#cTop_csm .sectionRanking .body:not(:last-child) {
  margin-bottom: 50px;
}

#cTop_csm .sectionRanking .list {
  display: flex;
}

#cTop_csm .sectionRanking .image {
  margin-bottom: 11px;
}

#cTop_csm .sectionRanking .list-3col li {
  position: relative;
}

#cTop_csm .sectionRanking .list-3col li::before {
  position: absolute;
  top: -20px;
  left: 0;
  z-index: 1;
  display: block;
  width: 40px;
  height: 40px;
  content: "";
}

#cTop_csm .sectionRanking .list-3col li:first-child::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number01_20230331.svg");
}

#cTop_csm .sectionRanking .list-3col li:nth-child(2)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number02_20230331.svg");
}

#cTop_csm .sectionRanking .list-3col li:nth-child(3)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number03_20230331.svg");
}

#cTop_csm .sectionRanking .list-3col li:nth-child(4)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number04_20230331.svg");
}

#cTop_csm .sectionRanking .list-3col li:nth-child(5)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number05_20230331.svg");
}

#cTop_csm .sectionRanking .list-3col .border {
  width: 100%;
  border: 1px solid #ccc;
}

#cTop_csm .sectionRanking .ranking-info {
  display: block;
  font-size: 12px;
  font-weight: normal;
  line-height: 2;
  color: #333;
  letter-spacing: 0.04em;
}

#cTop_csm .sectionRanking .body .title {
  padding: 0;
  margin-bottom: 38px;
  text-align: left;
  border: none;
}

#cTop_csm .sectionRanking .body .title .h3 {
  font-size: 18px;
  font-weight: bold;
  position: relative;
  padding-left: 16px;
}

#cTop_csm .sectionRanking .body .title .h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 4px;
  height: 17px;
  background-color: #EF858C;
}

/* ----- STAFF'S VOICEセクション ----- */
#cTop_csm .sectionStaffsVoice .list-2col li {
  padding: 50px;
  background-color: #FEF5F6;
}

#cTop_csm .sectionStaffsVoice a.image {
  padding-left: 34px;
  padding-right: 34px;
}

#cTop_csm .sectionStaffsVoice .staff-voice-info {
  display: block;
  font-size: 14px;
  line-height: 1.5;
}

/* ----- INFORMATIONセクション（PC版） ----- */
/* #cTop_csm .sectionInformation {
  width: calc(100% - (65px * 2));
} */

#cTop_csm .sectionInformation #newsItems {
  padding: 0 110px;
}

#cTop_csm .sectionInformation .list-1col li {
  align-items: flex-start;
  display: flex;
  margin-bottom: 0;
  transition: all 0.3s ease-in-out;
}

#cTop_csm .sectionInformation .list-1col li:not(:last-child) {
  padding-bottom: 12px;
}

#cTop_csm .sectionInformation .list-1col li.opened {
  border-bottom: 1px solid #ccc;
  margin-bottom: 20px;
}

#cTop_csm .sectionInformation .left {
  width: 120px;
}

#cTop_csm .sectionInformation .newsdate {
  color: #333;
  display: block;
  font-size: 14px;
  letter-spacing: 0.04em;
  line-height: 24px;
  text-align: left;
}

#cTop_csm .sectionInformation .right {
  width: calc(100% - 120px);
}

#cTop_csm .sectionInformation .before {
  display: inline-block;
  font-size: 14px;
}

#cTop_csm .sectionInformation .newsTitle {
  display: block;
  font-weight: bold;
  letter-spacing: 0.02em;
  transition: all 0.3s ease-in-out;
}

#cTop_csm .sectionInformation .hasNewsBody.linkHover:hover {
  opacity: 1;
}

#cTop_csm .sectionInformation .hasNewsBody .before {
  cursor: pointer;
  padding-right: 20px;
  position: relative;
}

#cTop_csm .sectionInformation .hasNewsBody .before::before,
#cTop_csm .sectionInformation .hasNewsBody .before::after {
  background-color: #333;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: 0;
  top: 55%;
  transform-origin: top;
  transition: all 0.3s ease-in-out;
  width: 8px;
}

#cTop_csm .sectionInformation .hasNewsBody .before::before {
  transform: rotate(135deg) translateY(-55%);
}

#cTop_csm .sectionInformation .hasNewsBody .before::after {
  right: 6px;
  transform: rotate(45deg) translateY(-55%);
}

#cTop_csm .sectionInformation .list-1col li.opened .hasNewsBody .before::before {
  transform: rotate(225deg) translateY(-55%);
}

#cTop_csm .sectionInformation .list-1col li.opened .hasNewsBody .before::after {
  transform: rotate(-45deg) translateY(-55%);
}

#cTop_csm .sectionInformation .newsTitle a {
  color: #333;
  text-decoration: underline;
}

#cTop_csm .sectionInformation .newsBody a {
  color: #22469e;
  text-decoration: underline;
}

#cTop_csm .sectionInformation .newsBody {
  font-size: 12px;
  line-height: 24px;
  padding-top: 4px;
}

#cTop_csm .sectionService .listColmun2 ul li:not(:nth-last-child(-n + 2)) {
  margin-bottom: 30px;
}

/*
===============================================
■ キーワード機能
===============================================
※ 注目キーワードから探す機能のPC・SP共通スタイル
*/

/* ----- キーワード機能（PC版） ----- */
#cTop_csm .top-hash-keyword {
  max-width: 990px;
  margin: 14px auto;
}

/* PC・SP表示制御 */
#cTop_csm .top-hash-keyword .pc-block {
  display: block;
  /* PC版を表示 */
}

#cTop_csm .top-hash-keyword .sp-block {
  display: none;
  /* SP版は非表示 */
}

/* キーワードリストレイアウト */
#cTop_csm .top-hash-keyword dl {
  display: grid;
  grid-template-columns: 180px 1fr;
  /* タイトル180px、リスト残り */
  gap: 10px;
  align-items: center;
}

/* キーワードタイトル */
#cTop_csm .top-hash-keyword dt {
  font-size: 16px;
  font-weight: bold;
}

/* キーワードリスト */
#cTop_csm .top-hash-keyword ul {
  display: flex;
  flex-wrap: wrap;
  /* 折り返し可能 */
  gap: 12px 10px;
  /* 縦12px、横10px */
}

/* キーワードボタン */
#cTop_csm .top-hash-keyword ul li a {
  align-items: center;
  border: 1px solid #707070;
  border-radius: 50px;
  /* 角丸ボタン */
  display: flex;
  height: 35px;
  color: #333;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1;
  padding: 0 15px;
}

/* ボタンホバー効果 */
#cTop_csm .top-hash-keyword ul li a:hover {
  text-decoration: none;
}

.floating_banner .flex {
  display: flex;
  align-items: flex-start;
  position: relative;
}

.floating_banner .banner {
  transition: margin-bottom 0.3s ease-out, width 0.3s ease-out, height 0.3s ease-out;
}

.floating_banner .banner:not(:last-child) {
  margin-bottom: 14px;
}

.floating_banner .banner .flex .head,
.floating_banner .banner .flex .body {
  filter: drop-shadow(0 3px 6px rgb(0 0 0 / 16%));
  transition: opacity 0.3s linear, width 0.3s ease-out, height 0.3s ease-out;
  transform: translateZ(0);
}

.floating_banner .banner .flex .head:hover,
.floating_banner .banner .flex .body:hover {
  opacity: 0.9;
}

.floating_banner .banner .flex .head {
  cursor: pointer;
}

.floating_banner .banner .flex .head:not(.bodyHidden) img {
  width: 50%;
  height: auto;
}

/* 初期状態でのbody設定（スライドアニメーションは.flexで制御） */
.floating_banner .banner .flex .body {
  transform: translateZ(0);
}

/* bodyを完全に隠すための制御クラス - headタブは常に表示 */
.floating_banner .banner.hide-body .flex {
  justify-content: flex-end;
}

.floating_banner .banner.hide-body .flex .body {
  opacity: 0;
  visibility: hidden;
}

/* headタブは hide-body クラスが付いても常に表示される */
.floating_banner .banner.hide-body .flex .head {
  width: auto;
  height: auto;
  overflow: visible;
  opacity: 1;
  visibility: visible;
}

.floating_banner .banner a:hover {
  opacity: 1;
}

.floating_banner .banner a:hover img {
  opacity: 1 !important;
}

.is_fix {
  position: fixed;
  top: 225px;
  left: -280px;
  z-index: 99999;
  transition: transform 0.2s ease-out;
}

/*
===============================================
■ SPスタイル（スマートフォン表示）
===============================================
※ #news セレクタによりSP表示時のみ適用
*/

/* ----- トピックパス（SP） ----- */
#news #d_topic_path {
  margin-bottom: 2px;
}

#news #d_topic_path ol {
  width: auto;
  margin-bottom: 0;
}

/* ----- 表示制御（SP） ----- */
#news #cTop_csm .pc-only {
  display: none;
}

#news #cTop_csm .sp-only {
  display: block;
}

#news #cTop_csm .container {
  width: auto;
}

/* SPでのフローティングバナー表示制御 */
@media screen and (max-width: 768px) {
  #cTop_csm .floating_banner .pc-only {
    display: none;
  }

  #cTop_csm .floating_banner .sp-only {
    display: block;
  }

  /* SPでのフローティングバナー位置調整 */
  #news .is_fix,
  #cTop_csm .is_fix {
    position: fixed;
    top: 225px;
    left: -140px;
    /* SP用にタブ幅を半分に調整 */
    z-index: 99999;
    transition: transform 0.2s ease-out;
  }
}

/* PCでのフローティングバナー表示制御 */
@media screen and (min-width: 769px) {
  #cTop_csm .floating_banner .pc-only {
    display: block;
  }

  #cTop_csm .floating_banner .sp-only {
    display: none;
  }
}

#news #cTop_csm .main {
  padding: 0 12px;
}

#news #cTop_csm .section:not(:last-child) {
  padding: 27px 0;
}

#news #cTop_csm .section:last-child {
  padding-top: 27px;
}

#news #cTop_csm .viewAll a {
  width: calc(100% - 60px);
  height: 40px;
  font-size: 12px;
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-right-black01_20230331-sp.svg");
  background-position: calc(100% - 15px) 50%;
  background-size: 5.0305px 9.3535px;
  /* SVG画像の実寸サイズに合わせています */
}

#news #cTop_csm .cosme_notice {
  margin-bottom: 10px;
}

/* ----- メインビジュアル（SP） ----- */
#news #cTop_csm .mv {
  width: 100%;
  margin: 0 auto 30px;
}

#news #cTop_csm .mv img {
  width: 100%;
  height: auto;
}

#news #cTop_csm .mv .slick-dots {
  bottom: -22px;
}

#news #cTop_csm .mv .slick-dots li {
  width: 10px;
  height: 10px;
  margin: 0 5px;
}

#news #cTop_csm .mv .slick-dots li button {
  width: 10px;
  height: 10px;
}

#news #cTop_csm .mv .slick-dots li button::before {
  width: 8px;
  height: 8px;
  content: "";
  background-color: #ccc;
  border-radius: 50%;
  opacity: 1;
}

#news #cTop_csm .mv .slick-dots li.slick-active button::before {
  background-color: #010101;
  opacity: 1;
}

#news #cTop_csm .mv .slide-arrow {
  position: absolute;
  top: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background-color: rgb(255 255 255 / 60%);
  border-radius: 50%;
  transform: translateY(-50%);
}

#news #cTop_csm .mv .slide-arrow::before {
  position: absolute;
  top: auto;
  right: 17px;
  width: 9px;
  height: 9px;
  content: "";
  border: 0;
  border-top: solid 1px #231714;
  border-right: solid 1px #231714;
  transition: all 0.3s ease-in-out;
  transform: rotate(45deg);
}

#news #cTop_csm .mv .prev-arrow {
  left: 0;
  z-index: 1;
}

#news #cTop_csm .mv .prev-arrow::before {
  right: 12px;
  transform: rotate(225deg);
}

#news #cTop_csm .mv .next-arrow {
  right: 0;
}

/* ----- アンカーナビゲーション（SP） ----- */
#news #cTop_csm .anchor_nav {
  margin-bottom: 0;
  height: auto;
}

#news #cTop_csm .anchor_nav .container {
  justify-content: center;
}

#news #cTop_csm .anchor_nav ul {
  justify-content: space-between;
  padding-bottom: 5px;
}

#news #cTop_csm .anchor_nav ul li a {
  padding: 12px 12px 14px;
  font-size: 12px;
  height: 20px;
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-down-black01_20230331-sp.svg");
  background-position: 50% calc(100% - 6px);
  background-size: 8.3535px 4.5305px;
  /* SVG画像の実寸サイズに合わせています */
  background-repeat: no-repeat;
}

/* SP版：PC版の疑似要素を無効化 */
#news #cTop_csm .anchor_nav ul li a::after {
  display: none;
}

/* ----- 小画面対応（374px以下） ----- */
/* ----- 小画面対応（374px以下） ----- */
@media screen and (max-width: 374px) {
  #news #cTop_csm .anchor_nav ul li a {
    padding: 10px;
  }
}

/* ----- セクション共通（SP） ----- */
#news #cTop_csm .section .listColmun3 .item {
  width: calc((100% - 10px) / 2);
}

#news #cTop_csm .section .listColmun3 .item:not(:nth-child(3n)) {
  margin-right: 0;
}

#news #cTop_csm .section .listColmun3 .item:not(:nth-last-child(-n + 3)) {
  margin-bottom: 0;
}

#news #cTop_csm .section .listColmun3 .item:not(:nth-child(2n)) {
  margin-right: 10px;
}

#news #cTop_csm .section .listColmun3 .item:not(:nth-last-child(-n + 2)) {
  margin-bottom: 10px;
}

/* ----- 新しいリストスタイル（SP版・Grid） ----- */
#news #cTop_csm .list-2col {
  grid-template-columns: 1fr;
  gap: 15px;
}

#news #cTop_csm .list-2col li {
  /* SP版では1列グリッド */
}

/* ----- 1カラムリストスタイル（SP版・Grid） ----- */
#news #cTop_csm .list-1col {
  grid-template-columns: 1fr;
  padding: 0;
}

#news #cTop_csm .list-1col li {
  /* SP版でも1列グリッド */
}

/* ----- 3カラムリストスタイル（SP版・Grid） ----- */
#news #cTop_csm .list-3col {
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

#news #cTop_csm .list-3col li {
  /* SP版では2列グリッド */
}

/* ----- 3カラムリストスタイル（SP版・gap無し・Grid） ----- */
#news #cTop_csm .list-3col-nogap {
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  /* SP版でも既存のカテゴリースタイルを継承 */
  text-align: center;
  background-color: #fff9fa;
  border-top: 1px dotted #ef858c;
  /* border-bottom: 1px dotted #ef858c; */
  border-bottom: none;
}

#news #cTop_csm .list-3col-nogap li {
  /* SP版のカテゴリースタイル */
  box-sizing: border-box;
  border-right: 1px dotted #ef858c;
  border-bottom: 1px dotted #ef858c;
}

#news #cTop_csm .list-3col-nogap li:nth-child(2n) {
  border-right: none;
}

/* SP（2列）：最終行のみ下線を削除 */
#news #cTop_csm .sectionCategory .list-3col-nogap li {
  border-bottom: 1px dotted #ef858c;
}

/* 9個の場合：最後の9番目のみ下線削除 */
/* #news #cTop_csm .sectionCategory .list-3col-nogap li:nth-child(9) {
  border-bottom: none;
} */

#news #cTop_csm .list-3col-nogap a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 8px 8px 15px;
  position: relative;
}

#news #cTop_csm .list-3col-nogap .content {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  position: relative;
}

#news #cTop_csm .list-3col-nogap .image {
  margin-bottom: 0;
  flex-shrink: 0;
}

#news #cTop_csm .list-3col-nogap .image img {
  width: 50px;
  height: 50px;
}

#news #cTop_csm .list-3col-nogap .text {
  font-size: 13px;
  font-weight: normal;
  line-height: 1.4;
  text-align: left;
  flex: 1;
  padding-right: 28px;
}

#news #cTop_csm .list-3col-nogap .content::after {
  content: "";
  display: block;
  width: 10px;
  height: 5.6px;
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/bg-arrow-down-black01_20230331.svg");
  background-repeat: no-repeat;
  background-size: 10px 5.6px;
  position: absolute;
  right: 0px;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
  transition: transform 0.2s linear;
}

/* SP版：ドロップダウン開時の矢印回転 */
#news #cTop_csm .category-dropdown.dropdown-open .content::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ----- カテゴリードロップダウン（SP版） ----- */
#news #cTop_csm .category-dropdown {
  position: relative;
}

#news #cTop_csm .category-dropdown .dropdown-menu {
  position: relative;
  top: 1px;
  left: auto;
  width: 100%;
  background-color: #fff;
  display: none;
  z-index: 1000;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.16);
  /* border-right: 1px dotted #ef858c; */
  border-top: 1px dotted #ef858c;
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}

/* SP版：クリックで管理される表示制御 */
#news #cTop_csm .category-dropdown.dropdown-open .dropdown-menu {
  display: block;
  opacity: 1;
}

/* SP版でもホバー効果は無効化 - クリックのみで制御 */

#news #cTop_csm .category-dropdown>a:not(.category-parent) .content::after {
  content: none;
}

/* SP版：ホバー効果無効化 */

#news #cTop_csm .category-dropdown .dropdown-menu ul {
  margin: 0;
  /* padding: 8px; */
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  /* gap: 6px; */
}

#news #cTop_csm .category-dropdown .dropdown-menu li {
  border: none;
}

#news #cTop_csm .category-dropdown .dropdown-menu a {
  display: block;
  padding: 15px 19px 15px 8px;
  font-size: 13px;
  color: #333;
  text-decoration: none;
  background-color: transparent;
  border: none;
  text-align: left;
  transition: opacity 0.2s;
  line-height: 1.2;
  position: relative;
}

#news #cTop_csm .category-dropdown .dropdown-menu a::after {
  content: "";
  position: absolute;
  right: 21px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  transform: translateY(-50%) rotate(45deg);
}

#news #cTop_csm .category-dropdown .dropdown-menu a:hover {
  opacity: 0.6;
}

/* 共通ホバー効果 - SP版 */
#news #cTop_csm .sectionPickUpBrand .list-5col li a:hover,
#news #cTop_csm .sectionBrand .list-5col a:hover,
#news #cTop_csm .sectionBrand .list-brand-sp3 li a:hover,
#news #cTop_csm .sectionCategory a:hover,
#news #cTop_csm .sectionRanking .list-3col li a:hover,
#news #cTop_csm .sectionStaffsVoice li>a:hover {
  opacity: 0.7;
  transition: opacity 0.3s;
}

/* ----- SP（2列）レイアウト用のドロップダウン位置調整（#newsセレクタ版） ----- */
#news #cTop_csm .list-3col-nogap {
  position: relative;
}

/* SP版：親カテゴリが1カラムなので、子カテのmargin-leftは常に0 */
#news #cTop_csm .list-3col-nogap .dropdown-menu {
  margin-left: 0 !important;
  width: 100% !important;
}

/* ----- 4カラムリストスタイル（SP版・Grid） ----- */
#news #cTop_csm .list-4col {
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
}

#news #cTop_csm .list-4col li {
  /* SP版では2列グリッド */
}

/* ----- 旧リストスタイル（SP版・互換性のため残す） ----- */
#news #cTop_csm .section .listColmun2 ul li {
  width: 100%;
}

#news #cTop_csm .section .listColmun2 ul li:nth-child(2n + 1) {
  margin-right: 0;
}

#news #cTop_csm .section .listColmun2 ul li:not(:nth-last-child(-n + 2)) {
  margin-bottom: 0;
}

#news #cTop_csm .section .listColmun2 ul li:not(:last-child) {
  margin-bottom: 10px;
}

/* ----- タイトル共通（SP） ----- */
#news #cTop_csm .title {
  padding-bottom: 12px;
  margin-bottom: 20px;
}

#news #cTop_csm .title .h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 1.2;
}

#news #cTop_csm .title .h2 img {
  width: auto;
  height: 16px;
  margin: 0 auto 8px;
}

#news #cTop_csm .title .h2 .text {
  font-size: 11px;
  margin-top: 2px;
}

/* ----- キャンペーン（SP） ----- */
#cTop_csm .sectionCampaign .list-1col {
  gap: 15px;
}

/* ----- 最新ニュース（SP） ----- */
#news #cTop_csm .sectionNews .news-date {
  font-size: 12px;
  margin-bottom: 5px;
}

#news #cTop_csm .sectionNews .news-title {
  display: block;
  font-size: 12px;
}

/* ----- 新着コスメ（SP） ----- */

#news #cTop_csm .sectionNewArrivals .arrivals-info {
  display: block;
  font-size: 10px;
  line-height: 17px;
}

#news #cTop_csm .sectionNewArrivals .price {
  font-size: 12px;
}

#news #cTop_csm .sectionNewArrivals .date-highlight {
  color: #EF858C;
  font-weight: bold;
}

/* ----- ピックアップブランド（SP） ----- */
#news #cTop_csm .sectionPickUpBrand .title {
  margin-bottom: 20px;
}

#news #cTop_csm .sectionPickUpBrand .logo {
  margin-bottom: 10px;
}

#news #cTop_csm .sectionPickUpBrand .brand_mv {
  margin-bottom: 15px;
}

#news #cTop_csm .sectionPickUpBrand .brand-title {
  display: block;
  font-size: 10px;
  line-height: 17px;
}

#news #cTop_csm .sectionPickUpBrand .price {
  font-size: 12px;
  font-weight: bold;
  line-height: 2;
}

/* ----- ピックアップブランド 横スクロール（SP） ----- */
#news #cTop_csm .sectionPickUpBrand .list-5col {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  gap: 15px;
}

#news #cTop_csm .sectionPickUpBrand .list-5col ul {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  gap: 15px;
}

#news #cTop_csm .sectionPickUpBrand .list-5col li {
  flex: 0 0 auto;
  width: 120px;
  width: 32vw;
}

#news #cTop_csm .sectionPickUpBrand .brand-title {
  font-size: 10px;
  line-height: 17px;
}

/* ----- ブランド一覧（SP） ----- */
#news #cTop_csm .sectionBrand .list-5col {
  margin-bottom: 12px;
}

/* ----- ブランド一覧 SP時3カラム表示 ----- */
#news #cTop_csm .sectionBrand .list-brand-sp3 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 22px 10px !important;
}

#news #cTop_csm .sectionBrand .list-brand-sp3 ul {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  gap: 22px 10px !important;
}

#news #cTop_csm .sectionBrand .list-brand-sp3 li {
  flex: initial !important;
  width: auto !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

#news #cTop_csm .sectionBrand .list-brand-sp3 .brand-text {
  font-size: 10px !important;
  line-height: 1.7 !important;
}

/* 既存のSP版ブランド一覧スタイル（フォールバック用） */
#news #cTop_csm .sectionBrand .list-5col ul {
  display: flex;
  flex-wrap: wrap;
}

#news #cTop_csm .sectionBrand .list-5col li {
  width: calc((100% - 20px) / 3);
}

#news #cTop_csm .sectionBrand .list-5col li:not(:nth-child(5n)) {
  margin-right: 0;
}

#news #cTop_csm .sectionBrand .list-5col li:not(:nth-last-child(-n + 6)) {
  margin-bottom: 0;
}

#news #cTop_csm .sectionBrand .list-5col li:not(:nth-child(3n)) {
  margin-right: 10px;
}

#news #cTop_csm .sectionBrand .list-5col li:not(:nth-last-child(-n + 4)) {
  margin-bottom: 22px;
}

#news #cTop_csm .sectionBrand .list-5col .image {
  margin-bottom: 6px;
}

#news #cTop_csm .sectionBrand .list-5col .text {
  font-size: 10px;
  line-height: 1.7;
}

/* ----- カテゴリ一覧（SP） ----- */
#news #cTop_csm .sectionCategory .list-3col-nogap {
  display: block !important;
  /* SPでは1カラムレイアウトに変更 */
}

#news #cTop_csm .sectionCategory .list-3col-nogap li {
  width: 100% !important;
  border-right: none !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

#news #cTop_csm .sectionCategory .list-3col-nogap li:first-child {
  /* border-top: 1px dotted #ef858c; */
}

#news #cTop_csm .sectionCategory .image {
  width: 50px;
  height: auto;
  margin-right: 10px;
  margin-bottom: 0;
}

#news #cTop_csm .sectionCategory .category-text {
  /* width: calc(100% - 69px); */
  font-size: 13px;
}

#news #cTop_csm .sectionCategory .category-parent {
  display: flex;
  align-items: center;
  padding: 10px 16px 10px 10px;
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}

/* SP版でのドロップダウンメニュー調整 */
#news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu {
  position: relative;
  width: 100%;
  /* background-color: #f9f9f9; */
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
  margin-bottom: 0;
}

/* #news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu ul {
  display: block;
  grid-template-columns: none;
} */

#news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu li {
  width: 100%;
}

#news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu li:last-child {
  border-bottom: none;
}

#news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu a {
  padding: 15px 28px 15px 15px;
  font-size: 13px;
  border-bottom: none;
}

#news #cTop_csm .sectionCategory .category-dropdown .dropdown-menu a::after {
  content: "";
  position: absolute;
  right: 21px;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  transform: translateY(-50%) rotate(45deg);
}

/* ----- ランキング（SP） ----- */
#news #cTop_csm .sectionRanking .body:not(:last-child) {
  margin-bottom: 30px;
}

#news #cTop_csm .sectionRanking .body .title {
  margin-bottom: 5px;
}

#news #cTop_csm .sectionRanking .body .title .h3 {
  font-size: 16px;
  position: relative;
  padding-left: 16px;
}

#news #cTop_csm .sectionRanking .body .title .h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 4px;
  height: 17px;
  background-color: #EF858C;
}

#news #cTop_csm .sectionRanking .list {
  flex-wrap: nowrap;
  padding-top: 16px;
  padding-top: 4.2667vw;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* SP版 ランキング：横スクロール対応 */
#news #cTop_csm .sectionRanking .list-3col {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  gap: 15px !important;
  padding-top: 16px;
  padding-top: 4.2667vw;
}

#news #cTop_csm .sectionRanking .list-3col li {
  flex: 0 0 auto !important;
  width: 120px;
  width: 32vw;
  position: relative;
}

#news #cTop_csm .sectionRanking .list-3col li::before {
  top: -16px;
  top: -4.2667vw;
  left: 0;
  z-index: 1;
  display: block;
  width: 32px;
  width: 8.5333vw;
  height: 32px;
  height: 8.5333vw;
  content: "";
}

#news #cTop_csm .sectionRanking .list-3col li:first-child::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number01_20230331.svg");
}

#news #cTop_csm .sectionRanking .list-3col li:nth-child(2)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number02_20230331.svg");
}

#news #cTop_csm .sectionRanking .list-3col li:nth-child(3)::before {
  background-image: url("/ec/shop/images/campaign/cTOP_cosme/icon-number03_20230331.svg");
}

/* SP版ランキング：マージン右は不要（gapで間隔制御） */

#news #cTop_csm .sectionRanking .image {
  width: 120px;
  width: 32vw;
  margin-bottom: 8px;
}

#news #cTop_csm .sectionRanking .ranking-info {
  font-size: 10px;
  font-size: 2.6667vw;
  line-height: 17px;
  line-height: 4.5333vw;
}

/* ----- サービス（SP） ----- */
#news #cTop_csm .sectionService .body .list {
  padding-top: 0;
}

/* ----- STAFF'S VOICEセクション（SP） ----- */
#news #cTop_csm .sectionStaffsVoice .list-2col li {
  padding: 24px;
  background-color: #FEF5F6;
}

#news #cTop_csm .sectionStaffsVoice a.image {
  padding-left: 34px;
  padding-right: 34px;
}

#news #cTop_csm .sectionStaffsVoice .staff-voice-info {
  display: block;
  font-size: 10px;
  line-height: 1.5;
}

#news #cTop_csm .sectionStaffsVoice .price {
  font-size: 12px;
}

/* ----- INFORMATIONセクション（SP版） ----- */
#news #cTop_csm .sectionInformation {
  width: 100%;
}

#news #cTop_csm .sectionInformation .list-1col li {
  margin-bottom: 0;
  padding-bottom: 12px;
  transition: all 0.3s ease-in-out;
  display: block;
}

#news #cTop_csm .sectionInformation .list-1col li.opened {
  border-bottom: 1px solid #ccc;
  margin-bottom: 20px;
}

#news #cTop_csm .sectionInformation .left {
  width: 100%;
}

#news #cTop_csm .sectionInformation .newsdate {
  color: #333;
  display: block;
  font-size: 13px;
  font-size: calc(((100 / 375) * 13) * 1vw);
  line-height: 23px;
  line-height: calc(((100 / 375) * 23) * 1vw);
  text-align: left;
}

#news #cTop_csm .sectionInformation .right {
  width: 100%;
}

#news #cTop_csm .sectionInformation .before {
  display: inline-block;
}

#news #cTop_csm .sectionInformation .newsTitle {
  display: block;
  font-weight: bold;
  margin-bottom: 0;
  transition: all 0.3s ease-in-out;
  font-size: 13px;
}

#news #cTop_csm .sectionInformation .hasNewsBody .before {
  cursor: pointer;
  margin-bottom: 0;
  padding-right: 20px;
  position: relative;
}

#news #cTop_csm .sectionInformation .hasNewsBody .before::before,
#news #cTop_csm .sectionInformation .hasNewsBody .before::after {
  background-color: #333;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: 0;
  top: 55%;
  transform-origin: top;
  transition: all 0.3s ease-in-out;
  width: 8px;
}

#news #cTop_csm .sectionInformation .hasNewsBody .before::before {
  transform: rotate(135deg) translateY(-55%);
}

#news #cTop_csm .sectionInformation .hasNewsBody .before::after {
  right: 5px;
  transform: rotate(45deg) translateY(-55%);
}

#news #cTop_csm .sectionInformation .list-1col li.opened .hasNewsBody .before::before {
  transform: rotate(225deg) translateY(-55%);
}

#news #cTop_csm .sectionInformation .list-1col li.opened .hasNewsBody .before::after {
  transform: rotate(-45deg) translateY(-55%);
}

#news #cTop_csm .sectionInformation .newsTitle a {
  color: #333;
  text-decoration: underline;
}

#news #cTop_csm .sectionInformation .newsBody a {
  color: #22469e;
  text-decoration: underline;
}

#news #cTop_csm .sectionInformation .newsBody {
  font-size: 12px;
  font-size: calc(((100 / 375) * 12) * 1vw);
  line-height: 23px;
  line-height: calc(((100 / 375) * 23) * 1vw);
  margin-bottom: 2px;
  padding-top: 7px;
}

/*
===============================================
■ キーワード機能（SP版）
===============================================
※ #news セレクタによりSP表示時のみ適用
*/

/* ----- キーワード機能（SP版） ----- */
#news #cTop_csm .top-hash-keyword {
  margin: 5px auto 0;
  width: 100%;
  padding: 0;
}

/* PC・SP表示制御（SP） */
#news #cTop_csm .top-hash-keyword .pc {
  display: none;
  /* PC版は非表示 */
}

#news #cTop_csm .top-hash-keyword .sp {
  display: block;
  /* SP版を表示 */
}

/* コンテンツボディ（SP） */
#news #cTop_csm .top-hash-keyword .body {
  padding: 5px 5px 0 5px;
}

/* キーワードリストレイアウト（SP） */
#news #cTop_csm .top-hash-keyword dl {
  display: grid;
  grid-template-columns: 6rem 1fr;
  /* タイトル6rem、リスト残り */
  gap: 5px;
  align-items: center;
  overflow-x: scroll;
  /* 横スクロール対応 */
  white-space: nowrap;
}

/* キーワードタイトル（SP） */
#news #cTop_csm .top-hash-keyword dt {
  font-size: 14px;
  font-weight: bold;
  padding-bottom: 8px;
}

/* キーワードリスト（SP） */
#news #cTop_csm .top-hash-keyword ul {
  display: flex;
  flex-wrap: nowrap;
  /* 横並び固定 */
  gap: 5px;
  padding-bottom: 10px;
}

/* キーワードボタン（SP） */
#news #cTop_csm .top-hash-keyword ul li a {
  align-items: center;
  border: 1px solid #707070;
  border-radius: 50px;
  /* 角丸ボタン */
  display: flex;
  height: 30px;
  color: #333;
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1;
  padding: 0 10px;
}

/* ボタンホバー効果（SP） */
#news #cTop_csm .top-hash-keyword ul li a:hover {
  text-decoration: none;
}

/* STAFF'S VOICE コメントブロック */
#cTop_csm .sectionStaffsVoice .staff-comment {
  background-color: #fff;
  border-radius: 18px;
  margin-top: 36px;
  padding: 16px;
  position: relative;
}

/* STAFF'S VOICE コメントブロックの三角形 */
#cTop_csm .sectionStaffsVoice .staff-comment::before {
  content: "";
  position: absolute;
  top: -20px;
  left: 40px;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 20px solid #fff;
}

#cTop_csm .sectionStaffsVoice .staff-comment .comment-title {
  color: #EF858C;
  font-size: 18px;
  font-weight: bold;
  font-family: 'Lato', sans-serif;
  letter-spacing: 0.02em;
  margin-bottom: 12px;
  padding-left: 72px;
  background-image: url('/ec/shop/images/campaign/cTOP_cosme/icon-staffs-voice01.svg');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 60px 60px;
  min-height: 60px;
  display: flex;
  align-items: center;
}

#cTop_csm .sectionStaffsVoice .staff-comment .comment-text {
  color: #000;
  font-size: 12px;
  line-height: 2;
}

/* SP版 STAFF'S VOICE コメントブロック */
#news #cTop_csm .sectionStaffsVoice .staff-comment {
  background-color: #fff;
  border-radius: 18px;
  margin-top: 20px;
  padding: 12px;
  position: relative;
}

/* SP版 STAFF'S VOICE コメントブロックの三角形 */
#news #cTop_csm .sectionStaffsVoice .staff-comment::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 40px;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 16px solid #fff;
}

#news #cTop_csm .sectionStaffsVoice .staff-comment .comment-title {
  color: #EF858C;
  font-size: 17px;
  font-weight: bold;
  font-family: 'Lato', sans-serif;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
  padding-left: 50px;
  background-image: url('/ec/shop/images/campaign/cTOP_cosme/icon-staffs-voice01.svg');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 40px 40px;
  min-height: 40px;
  display: flex;
  align-items: center;
}

#news #cTop_csm .sectionStaffsVoice .staff-comment .comment-text {
  color: #000;
  font-size: 11px;
  line-height: 1.8;
}

/* STAFF'S VOICE セクションのaタグスタイル */
#cTop_csm .sectionStaffsVoice li>a {
  padding-left: 34px;
  padding-right: 34px;
  display: block;
}

/* SP版 STAFF'S VOICE セクションのaタグスタイル */
#news #cTop_csm .sectionStaffsVoice li>a {
  padding-left: 24px;
  padding-right: 24px;
  display: block;
}