
 @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;700&display=swap');
 @import url('https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap');
 
  .price-section {
    font-family: 'A-OTF リュウミン Pro', 'Ryumin', 'A-OTF-RyuminPro-L', 'Yu Mincho', 'YuMincho', '游明朝', 'Hiragino Mincho ProN', 'HiraMinProN-W3', 'Noto Serif JP', serif;
    width: 100%;
    max-width: 650px;
    margin: 0 auto;
    padding: clamp(30px, 8vw, 10px) clamp(20px, 6vw, 48px) clamp(24px, 8vw, 5px);
    box-sizing: border-box;
    background-image: url('../system/img/price_bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
  }

  .price-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(245, 238, 228, 0.4);
  }

  .price-section * {
    box-sizing: border-box;
  }

  /* ---- タイトル ---- */
  .ps-title {
    font-size: 42px;
    font-weight: bold;
    color: #2a2a2a;
    text-align: center;
    letter-spacing: 0.15em;
    margin: 0 0 10px;
    line-height: 1.2;
    position: relative;
  }

  /* ---- コースバッジ ---- */
  .ps-badge {
    display: block;
    width: fit-content;
    margin: 0 auto 14px;
    background-color: #1e2d5a;
    color: #ffffff;
    font-size: clamp(14px, 3.5vw, 18px);
    letter-spacing: 0.2em;
    padding: 7px 32px;
    border-radius: 4px;
    font-weight: 400;
    position: relative;
  }

  /* ---- サブテキスト ---- */
  .ps-sub {
    text-align: center;
    font-size: 22px;
    color: #5a5045;
    letter-spacing: 0.1em;
    margin: 0 0 12px 0;
    position: relative;
  }

  /* ========================================
     カードブロック（タグが上端に重なる）
  ======================================== */
  .ps-block {
    position: relative;
    margin-bottom: clamp(16px, 4vw, 5px);
  }

  .ps-block:last-of-type {
    margin-bottom: 10px;
  }

  /* 時間帯タグ：カード上端に半分かかる */
  .ps-time-tag {
    display: block;
    width:280px;
    margin: 0 auto;
    background: rgba(185, 173, 155, 0.55);
    color: #4a4035;
    font-size: 20px;
    letter-spacing: 0.15em;
    padding: 5px 20px;
    border-radius: 3px;
    position: relative;
	text-align: center;
    z-index: 2;
    /* タグの高さの半分だけ下にずらしてカードに重ねる */
    transform: translateY(50%);
  }

  /* 白いカード本体 */
  .ps-card {
    background: rgba(255, 255, 255, 0.82);
    border-radius: 6px;
    padding: clamp(24px, 5vw, 32px) clamp(16px, 5vw, 40px) clamp(20px, 4vw, 10px);
    position: relative;
    z-index: 1;
  }

  /* タグ付きカードはpaddingTopを増やしてタグ分の重なりを吸収 */
  .ps-block--tagged .ps-card {
    padding-top: clamp(28px, 6vw, 38px);
  }

  /* ---- 料金行 ---- */
  .ps-row {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: clamp(6px, 1.8vw, 14px);
    padding: clamp(10px, 2.2vw, 10px) 0;
  }

  .ps-row + .ps-row {
    border-top: 1px solid rgba(180, 165, 145, 0.3);
  }

  .ps-duration {
    font-size: 42px;
	font-weight: bold;
    color: #1e2d5a;
    letter-spacing: 0.03em;
    min-width: clamp(64px, 15vw, 88px);
    text-align: right;
  }

  .ps-duration span {
    font-size: clamp(13px, 3vw, 17px);
  }

  .ps-label {
    font-size: 18px;
	font-weight: bold;
    color: #2a2a2a;
    letter-spacing: 0.05em;
    white-space: nowrap;
    line-height: 1;
    align-self: flex-end;
    padding-bottom: 18px;
  }

  .ps-amount {
    font-size: 48px;
    font-weight: 700;
    color: #1e2d5a;
    letter-spacing: 0.02em;
    line-height: 1;
  }

  .ps-yen {
    font-size: 22px;
	font-weight: bold;
    color: #1e2d5a;
    font-weight: 400;
    align-self: flex-end;
    padding-bottom: 12px;
  }


  .yasuragi-section {
    font-family: 'A-OTF リュウミン Pro', 'Ryumin', 'A-OTF-RyuminPro-L', 'Yu Mincho', 'YuMincho', '游明朝', 'Hiragino Mincho ProN', 'HiraMinProN-W3', 'Noto Serif JP', serif;
    width: 100%;
    max-width: 650px;
    margin: 0 auto;
    padding: clamp(30px, 8vw, 10px) clamp(20px, 6vw, 48px) clamp(24px, 8vw, 5px);
    box-sizing: border-box;	
	background-image: url('../system/img/yasuragi_price_bg.png');
	background-color: rgba(255, 255, 255, 0.5); /* 白を40%被せて透過っぽく見せる */
	background-blend-mode: lighten; /* 画像を明るくして馴染ませる */
	background-size: cover;	
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
  }

  .yasuragi-section * {
    box-sizing: border-box;
  }

  /* ---- タイトルエリア ---- */
  .ys-title-wrap {
    text-align: center;
    margin-bottom: clamp(28px, 6vw, 2px);
    position: relative;
  }

  .ys-script {
    font-family: 'Kunstler Script', 'KunstlerScript', 'Great Vibes', cursive;
    font-size: clamp(17px, 4.2vw, 24px);
    color: #3a5a2a;
    letter-spacing: 0.04em;
    display: block;
    margin-bottom: 2px;
    font-weight: 400;
    font-style: italic;
  }

  .ys-title-ja {
    font-size: clamp(28px, 7vw, 42px);
    color: #1e2d10;
    letter-spacing: 0.15em;
    font-weight: 400;
    margin: 0;
    line-height: 1.2;
  }
  .ys-title-ja span{
	font-size: 30px;
  }

  /* ========================================
     カードブロック共通（タグがカード上端に重なる）
  ======================================== */
  .ys-block {
    position: relative;
    margin-bottom: clamp(16px, 4vw, 5px);
  }

  .ys-block:last-of-type {
    margin-bottom: 10px;
  }

  /* セクションタグ：カード上端に半分かかる */
  .ys-tag {
    display: block;
    width: fit-content;
    margin: 0 auto;
    background: rgba(185, 175, 158, 0.55);
    color: #2a2a2a;
    font-size: clamp(18px, 4.5vw, 26px);
    letter-spacing: 0.2em;
    padding: 7px 36px;
    border-radius: 4px;
    position: relative;
    z-index: 2;
    transform: translateY(50%);
    font-weight: 400;
  }

  /* 2輪車コースタグは少し小さめ */
  .ys-tag--sm {
    font-size: clamp(15px, 3.8vw, 21px);
    letter-spacing: 0.15em;
    padding: 7px 28px;
    background: rgba(225, 50, 175, 0.45);
  }

  /* カード本体 */
  .ys-card {
    border-radius: 6px;
    padding: clamp(24px, 5vw, 32px) clamp(16px, 5vw, 40px) clamp(20px, 4vw, 10px);
    position: relative;
    z-index: 1;
  }

  .ys-card--white {
    background: rgba(255, 255, 255, 0.82);
  }

  .ys-card--gray {
    background: rgba(247, 129, 226, 0.25);
  }

  /* ---- オールタイムラベル ---- */
  .ys-alltime {
    text-align: center;
    font-size: 24px;
    color: #3a3a3a;
    letter-spacing: 0.12em;
    margin: 0 0 6px;
  }

  /* ---- 料金行 ---- */
  .ys-row {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: clamp(6px, 1.8vw, 14px);
    padding: clamp(9px, 2vw, 13px) 0;
  }

  .ys-row + .ys-row {
    border-top: 1px solid rgba(180, 165, 145, 0.3);
  }

  .ys-duration {
	font-size: 42px;
    font-weight: bold;
    color: #1e2d5a;
    letter-spacing: 0.03em;
    min-width: clamp(68px, 16vw, 96px);
    text-align: right;
  }

  .ys-duration span {
    font-size: clamp(14px, 3.2vw, 19px);
  }

  .ys-label {
    font-size: 18px;
	font-weight: bold;
    color: #2a2a2a;
    letter-spacing: 0.05em;
    white-space: nowrap;
    line-height: 1;
    align-self: flex-end;
    padding-bottom: 18px;
  }

  .ys-amount {
    font-size: 48px;
    font-weight: 700;
    color: #1e2d5a;
    letter-spacing: 0.02em;
    line-height: 1;
  }

  .ys-yen {
    font-size: 22px;
	font-weight: bold;
    color: #1e2d5a;
    font-weight: 400;
    align-self: flex-end;
    padding-bottom: 12px;
  }

  /* ---- 2輪車コース：会員様以外の小さい行 ---- */
  .ys-row--sm .ys-member-prefix {
    font-size: clamp(12px, 3vw, 15px);
    color: #2a2a2a;
    white-space: nowrap;
    align-self: flex-end;
    padding-bottom: 6px;
    letter-spacing: 0.05em;
  }

  .ys-row--sm .ys-duration {
    font-size: 30px;
    min-width: auto;
  }

  .ys-row--sm .ys-duration span {
    font-size: clamp(11px, 2.5vw, 14px);
  }

  .ys-row--sm .ys-label {
    font-size: 16px;
    padding-bottom: 10px;
  }

  .ys-row--sm .ys-amount {
    font-size: 36px;
  }

  .ys-row--sm .ys-yen {
    font-size: clamp(13px, 3.2vw, 19px);
    padding-bottom: 5px;
	margin-left: -10px;
  }

  /* ---- CTAボタン ---- */
  .ys-cta {
    display: block;
    width: 100%;
    margin-top: clamp(20px, 5vw, 32px);
    padding: clamp(14px, 3.5vw, 20px) 24px;
    background-color: #1e2d5a;
    color: #ffffff;
    text-align: center;
    font-size: clamp(16px, 4vw, 22px);
    letter-spacing: 0.15em;
    border-radius: 5px;
    text-decoration: none;
    font-family: inherit;
    font-weight: 400;
    cursor: pointer;
    border: none;
    position: relative;
    transition: opacity 0.2s;
  }

  .ys-cta:hover {
    opacity: 0.85;
  }
