/* ========================================================
   1. 表示・改行制御クラス
======================================================== */
@media screen and (min-width: 768px) {
  body#pricelist .pc-hidden { display: none !important; }
}

/* ========================================================
   2. キャンペーンCTA：隔離システム
======================================================== */
body#pricelist #cta-isolation-system {
  display: block !important;
  width: 100% !important;
  max-width: 820px !important;
  margin: 30px auto !important;
  padding: 0 !important;
  clear: both !important;
  float: none !important;
  background: none !important;
  border: none !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

body#pricelist #cta-isolation-system .cta-shield-frame {
  position: relative !important;
  padding: 12px !important;
  border-radius: 18px !important;
  background-color: #18a7b7 !important;
  overflow: hidden !important;
  box-shadow: 0 0 0 1px #ffffff, 0 6px 16px rgba(0,0,0,0.12) !important;
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.1) 0, rgba(255,255,255,0.1) 10px, transparent 10px, transparent 20px) !important;
  background-size: 28px 28px !important;
  animation: bgIsolationMove 3s linear infinite !important;
}

@keyframes bgIsolationMove { 0% { background-position: 0 0; } 100% { background-position: 28px 0; } }

body#pricelist #cta-isolation-system .cta-shield-frame::before, 
body#pricelist #cta-isolation-system .cta-shield-frame::after {
  content: "" !important; position: absolute !important; width: 90px !important; height: 90px !important; z-index: 1 !important; pointer-events: none !important;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.95) 0, rgba(255,255,255,0.95) 6px, rgba(255,255,255,0) 6px, rgba(255,255,255,0) 12px) !important;
}
body#pricelist #cta-isolation-system .cta-shield-frame::before { left: 0 !important; bottom: 0 !important; }
body#pricelist #cta-isolation-system .cta-shield-frame::after { right: 0 !important; top: 0 !important; }

body#pricelist #cta-isolation-system .cta-shield-inner{
  margin: 0;
  padding: 24px 20px 30px;
  position: relative;
  z-index: 2;
  background: #fff;
  border-radius: 12px;
  text-align: center;
  border: none;
}

body#pricelist #cta-isolation-system .cta-shield-top{
  width: auto;
  margin: 0 0 2em;
  padding: 0;
  border: none;
  background: none;
  float: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
}
body#pricelist #cta-isolation-system .cta-shield-logo-row { display: flex !important; align-items: center !important; justify-content: center !important; gap: 10px !important; margin: 0 0 8px !important; border: none !important; background: none !important; padding: 0 !important; }
body#pricelist #cta-isolation-system .cta-shield-logo {
  width: 55px;
  height: auto;
  margin: 0;
  display: block;
  border: none;
}
body#pricelist #cta-isolation-system .cta-shield-badge-wrap{
  text-align: center;
}
body#pricelist #cta-isolation-system .cta-shield-badge {
  display: inline-block;
  padding: 3px 1em 4px;
  color: #fff;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 1px;
  border-radius: 4px;
  line-height: 1.5;
  background: #e70012;
}
body#pricelist #cta-isolation-system .cta-shield-limit{
  margin: 0.33em 0 0;
  font-size: 24px;
  font-weight: 900;
  color: #e70012;
  line-height: 1.2;
  border: none;
  background: none;
  white-space: nowrap;
}
body#pricelist #cta-isolation-system .cta-shield-title{
  display: block !important;
  font-size: 1.25em !important;
  color: #e70012 !important;
  font-weight: 900 !important;
  margin: 5px 0 -3.5px !important;
  line-height: 1.2 !important;
  border: none !important;
}
body#pricelist #cta-isolation-system .cta-shield-impact { color: #e60012 !important; font-size: 1.6em !important; font-weight: 900 !important; display: inline-block !important; margin: 0 0 10px !important; line-height: 1.1 !important; border: none !important; }
body#pricelist #cta-isolation-system .cta-shield-illust { display: block !important; margin: 0 !important; width: 200px !important; height: auto !important; border: none !important; background: none !important; }

/* 4. ピンクのテキストボックス（中央揃え・幅調整） */
body#pricelist #cta-isolation-system .cta-shield-price-area {
  display: block !important;
  text-align: center !important;
  background-color: #fdf2f2 !important; 
  padding: 15px !important;
  border-radius: 8px !important;
  border: 1px dashed #e70012 !important;
  margin: 15px auto 0 !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
  color: #333 !important;
  box-sizing: border-box !important;
}

body#pricelist #cta-isolation-system .cta-shield-em {
  font-size: 1.15em !important;
  font-weight: 900 !important;
  color: #e70012 !important;
  background: none !important;
}

body#pricelist #cta-isolation-system .cta-shield-btn-box { margin: 15px auto 0 !important; padding: 0 !important; display: block !important; border: none !important; background: none !important; }
body#pricelist #cta-isolation-system .cta-shield-link {
  display: flex !important; align-items: center !important; justify-content: center !important; text-decoration: none !important;
  background: linear-gradient(180deg, #3c92f4 0%, #2478df 100%) !important; color: #fff !important; font-size: clamp(10px, 3.8vw, 18px) !important; font-weight: 900 !important;
  padding: 16px 8px !important; border-radius: 50px !important; box-shadow: 0 6px 0 #155bb3 !important; animation: ctaShieldPop 3s ease-in-out infinite !important;
  width: 95% !important; max-width: 340px !important; margin: 0 auto !important; border: none !important;
}
body#pricelist #cta-isolation-system .cta-shield-link::after {
  content: "" !important; display: inline-block !important; width: 1.2em !important; height: 1.2em !important; margin-left: 6px !important;
  background-color: #fff !important; border-radius: 50% !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232478df' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: center !important; background-size: 60% !important;
}

@keyframes ctaShieldPop { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

/* ========================================================
   3. 価格表：入会金無料キャンペーン表示（打消し線）
======================================================== */
body#pricelist .membershipFee dd .fee-old-price{
  text-decoration: line-through !important;
  color: #999 !important;
  font-size: 0.8em !important;
  margin-right: 8px !important;
  /*display: inline-block !important;*/
}


body#pricelist .membershipFee dd .fee-new-price{
  color: #e70012 !important;
  font-weight: 900 !important;
  font-style: normal !important;
  font-size: 1.3em !important;
}
#pricelist #memberFee .feeTable dl dd.cpPrice span.big{
  display: inline;
  margin: 0;
  font-size: 2em;
  font-weight: bold;
}

body#pricelist .membershipFee dd .fee-new-price i{
  font-size: 0.6em !important;
  margin-left: 2px !important;
}

body#pricelist .membershipFee dd .fee-tax{
  display: block !important;
  font-size: 10px !important;
  /*color: #666 !important;*/
  margin-top: 2px !important;
}

/* ========================================================
   4. スマホ専用の詳細調整
======================================================== */
@media screen and (max-width: 767px) {
  /* CTA調整：幅と文字詰め */
  body#pricelist #cta-isolation-system .cta-shield-top{
    margin: 0 0 1.5em;
    flex-direction: column !important;
    gap: 10px;
  }
  body#pricelist #cta-isolation-system .cta-shield-inner {
    padding: 1.125em 0.625em 1.5em!important;
  }
  body#pricelist #cta-isolation-system .cta-shield-price-area {
    font-size: 13.2px !important;
    padding: 12px 4px !important;
    line-height: 1.6 !important;
    letter-spacing: -0.03em !important;
  }
  body#pricelist #cta-isolation-system .cta-shield-logo{ display: none!important; }

  /* 価格表調整：縦並び */
  body#pricelist .membershipFee dd .fee-old-price {
    display: block !important;
    margin-bottom: -5px !important;
  }
  /* 文字・画像サイズ調整 */
  body#pricelist #cta-isolation-system .cta-shield-badge{
    padding: 2px 0.8em;
    font-size: 3.74vw;
    font-weight: 600;
    letter-spacing: 0;
    background: #0f468e;
  }
  body#pricelist #cta-isolation-system .cta-shield-limit{
    margin: 0.4em 0 0;
    font-size: 5.07vw;
    color: #0f468e;
  }
  body#pricelist #cta-isolation-system .cta-shield-title{
    margin: 0.6em 0 0.1em!important;
  }
  body#pricelist #cta-isolation-system .cta-shield-impact{
    margin: 0 0 1.067vw!important;
    font-size: 1.8em !important;
  }
  body#pricelist #cta-isolation-system .cta-shield-illust{
    width: 78%!important;
    margin: auto!important;
  }
}

/* PC用レスポンシブ微調整 */
@media screen and (min-width: 768px) {
  body#pricelist #cta-isolation-system .cta-shield-txt-part { text-align: center; }
  /*body#pricelist #cta-isolation-system .cta-shield-logo-row {
    justify-content: center!important;
  }*/
  body#pricelist #cta-isolation-system .cta-shield-logo{
    width: 100px;
  }
  body#pricelist #cta-isolation-system .cta-shield-title{
    margin: 0.8em 0 0.2em !important;
    font-size: 1.75em !important;
  }
  body#pricelist #cta-isolation-system .cta-shield-impact { font-size: 3.25em !important; }
  body#pricelist #cta-isolation-system .cta-shield-illust { width: 220px !important; }
  body#pricelist #cta-isolation-system .cta-shield-link {
    padding: 18px 25px !important;
    font-size: 20px !important;
  }
}