
/* =========================
  ADD same
========================= */
.addSame{
  border:1px solid #dd9292;
  background-color: #f4e9e9;
  padding: 15px;
}
.addSame__all{
  font-size: 1em;
  font-weight: bold;
}
.child-group{
  background-color: #fff;
  padding: 10px;
  margin: 5px 10px;
}
.child-group li{
  display: block;
  line-height: 1.3;
  margin-bottom:8px;
}
.child-group li:last-child{
  margin-bottom: 0;
}
.spe-change--txt{
  font-size: .8em;
  text-decoration: underline;
  color: #00a0dc;
  margin-left: 23px;
}
.addSame-modal-ttl{
font-weight: bold;
}
.addSame-modal--txt{
  font-size: .9em;
  margin-bottom:5px;
  margin-top:10px;
  display: block;
  font-weight: 700;
}
.addSame-modal--choice{
  background-color: #f3f4f6;
  padding: 15px;
  font-size: .9em;
}
.addSame-modal--ttl{
  font-weight: bold;
  font-size: 1.1em;
}

.radio {
  display: block;
  margin-bottom: 3px;
  cursor: pointer;
}
.radio:last-child{
  margin-bottom: 0;
}
.radio--custom {
  display: flex;
  align-items: center;
  gap: 8px;
}

.quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid #8bdef2;
  border-radius: 4px;
  overflow: hidden;
  font-size: .9em;
  margin-left:10px;
}

.quantity__btn {
  width: 26px;
  height: 26px;
  border: none;
  background: #8bdef2;
  cursor: pointer;
  color: #fff;
  font-weight: bold;
}

.quantity__input {
  width: 40px;
  text-align: center;
  border: none;
  outline: none;
}

/* Chrome / Edge / Safari */
.quantity__input::-webkit-outer-spin-button,
.quantity__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
.quantity__input[type="number"] {
  -moz-appearance: textfield;
}

.addSame__total{
  font-weight: bold;
  color:#c43737;
  font-size: 1.1em;
  text-align: right;
  padding: 5px 10px 0;
}
.addSame__total--ttl{
  font-size: .8em;
  color:#fff;
  background-color: #c43737;
  border-radius: 20px;
  padding: 2px 8px;
}

/* =========================
  ADD 購入できるお薬一覧
========================= */
.section--medicine{
    border-bottom: 1px solid #e2e2e2;
    padding-bottom:15px;
}
.reserve-ttl{
    padding: 2px 5px 2px 0;
    border-right:solid 1px #ddd;
    font-weight: bold;
    font-size: .9em;
    margin-right:10px;
}
.section--medicine .section__title{
background-image: url(../images/icon_med.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    padding-left: 27px;
    background-position: left center;
}

.medicineCategory {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding-bottom: 5px;
  -webkit-overflow-scrolling: touch;
  margin-bottom:10px;
}
.medicineCategory::-webkit-scrollbar {
  display: none;
}
.medicineCategory__btn {
  flex: 0 0 auto;
}
.medicineCategory__btn {
  padding: 4px 18px;
  border: 1px solid #898989;
  color: #2f2725;
  background: #fff;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: 0.3s;
  font-size: .8em;
  background-color: #f3f3f3;
}
.medicineCategory__btn.is-active {
  border: 1px solid #8bdef2;
  color: #00a0dc;
  background-color: #fff;
}

@media screen and (min-width: 769px){
.medicineCategory {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
}

.medicineCategory:active {
  cursor: grabbing;
}

.medicineCategory::-webkit-scrollbar {
  display: none;
}
}

.medicineCategory__list{
  border: 1px solid #8bdef2;
  border-bottom: 1px dashed #8bdef2;
  background: #fff;
  padding: 10px 15px 25px;
}
.medicineCategory__list--cap{
  font-size: .8em;
  color: #595757;
  text-align: center;
}
.medicineList li{
  margin-bottom: 7px;
}

.medicineItem--name{
  font-weight: bold;
  font-size: 1.1em;
}
.medicineItem__current{
  font-size: .8em;
  margin-left: 10px;
}
.medicineItem__dose{
  display: flex;
  justify-content: space-between;
  background-color: #f3f3f3;
  font-size: .8em;
  margin-left: 10px;
  padding: 6px 12px;
}
.medicineItem__dose--ttl{
  font-weight: bold;
}

.supplementCategory__list{
  border: 1px solid #8bdef2;
  border-top: 0;
  background: #fff;
  padding: 10px 15px 25px;
}
.supplementCategory__list h3{
  color:#6e6c6c;
  font-weight: bold;
}
.supplementList li{
  margin-bottom: 7px;
}

.supplementItem--name{
  font-weight: bold;
  font-size: 1.1em;
}
.supplementItem--effect{
  border-radius: 20px;
  border:solid 1px #a0a0a0;
  padding: 3px 8px 1px;
  font-size: 9px;
  margin-left:3px;
  display: inline-block;
  text-align: center;
}
.supplementItem--effect__txt{
  border-left: solid 1px #595757;
  padding-left: 5px;
  margin-left: 5px;
}
@media screen and (max-width: 768px){
  .supplementItem--effect__txt{
  border-top: dashed 1px #595757;
   border-left:none;
  padding-left: 0px;
  margin-left: 0px;
  padding-top: 2px;
  margin-top: 1px;
  display: block;
  }
}
.supplementItem__current{
  font-size: .8em;
  margin-left: 10px;
}
.supplementItem__dose{
  display: flex;
  justify-content: space-between;
  background-color: #f3f3f3;
  font-size: .8em;
  margin-left: 10px;
  padding: 6px 12px;
}
.supplementItem__dose--ttl{
  font-weight: bold;
}

/* =====================
   固定料金バー
===================== */

.fixedTotal {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background: #fff;
  border-top: 1px solid #ddd;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.08);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: 0.3s;
}

.fixedTotal.is-show {
  opacity: 1;
  pointer-events: auto;
}

.fixedTotal__inner {
  padding:24px 24px 15px;
  width: 100%;
}
.medTotal{
  background-color: #f3f4f6;
  display: flex;
   justify-content: space-between;
   width: 100%;
   padding: 7px;
}
.postageTotal{
  display: flex;
   justify-content: space-between;
   width: 100%;
   padding: 7px;
}

/* 合計 */
.fixedTotal__price {
  border-top: solid 1px #595757;
  font-size: 18px;
  font-weight: bold;
  color: #2f2725;
  text-align: right;
}

@media (min-width: 769px) {
  .fixedTotal {
    background: transparent;
    border: none;
    box-shadow: none;
  }
  .fixedTotal__inner {
    max-width: 800px;
    margin: 0 auto 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    padding: 18px 24px;
  }
}

.fixedTotal__priceList {
  font-size: 16px;
  line-height: 1.6;
  font-weight: bold;
}

.fixedTotal__total {
  border-top: solid 1px #b1b1b1;
  font-size: 18px;
  font-weight: bold;
  margin-top: 4px;
  text-align: right;
  color: #c43737;
  padding: 7px 7px 0;
}

/* =========================
  ADD 配送方法選択、クーポンコード、ポイント
========================= */
.section--others{
  background-color: #fff;
  border-bottom: 1px solid #e2e2e2;
  padding: 20px 0;
}
.addOthers__shippingMethod--ttl {
    padding: 5px 0 5px 28px;
    background-image: url(../images/icon_bd02_ds.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    background-position: left center;
}
.addOthers__couponCode--ttl {
    padding: 5px 0 5px 28px;
    background-image: url(../images/icon_bd03_coupon.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    background-position: left center;
}
.addOthers__point--ttl {
    padding: 5px 0 5px 28px;
    background-image: url(../images/icon_bd04_point.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    background-position: left center;
}


/* =============================
   共通セレクトUI
============================= */

.addSelect {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.addSelect__ttl {
  font-size: 18px;
  font-weight: bold;
}

.addSelect__control {
  width: 320px;
  position: relative;
}

.addSelect__control select {
  width: 100%;
  padding: 10px 40px 10px 20px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 26px;
  background: #f3f4f6;
  appearance: none;
  cursor: pointer;
}

.addSelect__control::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid #666;
  border-bottom: 2px solid #666;
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;
}

@media (max-width: 768px) {
  .addSelect {
    flex-direction: column;
    align-items: flex-start;
  }
  .addSelect__control {
    width: 100%;
    margin-top: 10px;
  }
  .addOthers__shippingMethod--inner,.addOthers__couponCode--inner{
  width: 100%;
}

}

.couponItem__current {
    font-size: .8em;
    margin-left: 10px;
    display: flex;
    padding-top: 5px;
}
.couponItem--amount{
  color:#c43737;
  font-weight: bold;
}

/*-----ポイント-----*/
.pointDisplay{
  display: flex;
  align-items: center;
  gap:20px;
}
.pointDisp--have--ttl{
  border-radius: 25px;
  color: #fff;
  font-weight: bold;
  background-color: #f7bf34;
  padding: 5px 10px;
  font-size: 13px;
  margin-right:5px;
}
.pointDisplay--have--disp{
  font-weight: bold;
  color: #c43737;
}

.pointUse {
  margin-top: 24px;
}

.pointUse__ttl {
  font-weight: bold;
  margin-bottom: 12px;
}

.pointUse__item {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  cursor: pointer;
}

.pointUse__partial {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pointUse__input {
  width: 80px;
  padding: 6px;
  border: 1px solid #ccc;
  border-radius: 4px;
  appearance: textfield;
}

.pointUse__input::-webkit-outer-spin-button,
.pointUse__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.pointUse__discount {
  color: #e45f2f;
  font-weight: bold;
}

.pointBox {
  margin-top: 5px;
  background-color: #f3f4f6;
  padding: 16px 16px 12px;
  border-radius: 10px;
}
.pointUseAll{
  color:#c43737;
}

.pointBox__title {
  font-weight: bold;
  margin-bottom: 15px;
}

.pointOption {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  cursor: pointer;
}

.pointOption input[type="radio"] {
  cursor: pointer;
}

.pointInputWrap {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: 10px;
}

.pointInput {
  width: 80px;
  padding: 3px 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
  background: #f5f5f5;
  text-align: right;
  transition: 0.2s;
}

.pointInput.is-active {
  background: #fff;
  border-color: #2d98d4;
}

.pointInput:focus {
  outline: none;
  border-color: #e45f2f;
}

/* 0入力時 */
.pointInput.is-zero {
  color: #999;
}

.pointUnit {
  font-size: .9em;
}

.pointResult {
  color: #c43737;
  margin-left: 5px;
}

/* =========================
  ADD ご請求額の確認
========================= */

.billedAmount{
  border:1px solid #bcbcbc;
  background-color: #fff;
  padding: 20px 20px 5px;
}

.priceList {
  list-style: none;
  margin: 0;
  padding: 0;

}

.priceList li {
  display: flex;
  justify-content: space-between;
  padding: 12px 15px;
}

.priceList li:nth-child(1),
.priceList li:nth-child(3) {
  background: #f5f5f5;
}

.priceList__label {
  text-align: left;
}

.priceList__value {
  text-align: right;
}

.priceList__total {
  font-weight: bold;
  border-top: solid 1px #b1b1b1;
  color:#c43737;
  font-weight: bold;
  font-size: 1.2em;
}

/*-----お届け先-----*/
.address{
  padding: 25px 0;
}
.address__ttl{
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #bcbcbc;
  padding-bottom: 5px;
}
.address__ttl .btn-common{
  line-height: 2;
  padding: 2px 20px 2px 15px;
  font-size: .9em;
}
.shippingAddress{
  padding:16px;
  border:1px solid #ddd;
  border-radius:8px;
  background:#fafafa;
}

.shippingAddress__ttl{
  font-size:16px;
  font-weight:700;
  margin-bottom:8px;
}
.shippingAddress__body{
  padding: 15px 10px;
  font-size: 1.1em;
}
.shippingAddress__body p{
  margin:4px 0;
  line-height:1.6;
}

/*-----支払い方法-----*/
.payment{
  padding: 25px 0;
}
.payment__ttl{
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #bcbcbc;
  padding-bottom: 5px;
}
.payment__ttl .btn-common{
  line-height: 2;
  padding: 2px 20px 2px 15px;
  font-size: .9em;
}
.payment__body{
  padding: 15px 10px;
  font-size: 1.1em;
}

/*-----配送方法-----*/
.deliveryDate{
  padding: 25px 0;
}
.deliveryDate__ttl{
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #bcbcbc;
  padding-bottom: 5px;
}
.deliveryDate__ttl .btn-common{
  line-height: 2;
  padding: 2px 20px 2px 15px;
  font-size: .9em;
}
.deliveryDate__body{
  padding: 15px 10px;
  font-size: 1.1em;
}

/*-----確認-----*/
.confirmation{
  padding: 20px 20px 80px;
  margin: auto;
  text-align: center;
}
.confirmation a.btn-common--big{
padding: 15px;
    font-size: 1.2em;
    display: block;
    border-radius: 40px;
    width: 80%;
    max-width: 300px;
    margin: auto;
}
.confirmation a.btn-common::after {
    right: 13px;
}
.confirmation .btn-common::after {
    width: 8px;
    height: 8px;
    border-top: 2px solid #00a0dc;
    border-right: 2px solid #00a0dc;
}
.confirmation .btn-common {
    border: 2px solid #8bdef2;
}




/* =====================
クーポン手入力 20260318追加
===================== */

.coupon-input{
display:flex;
gap:10px;
align-items:center;
margin-top:5px;
justify-content: space-between;
}

/* 入力欄 */
.coupon-input__field{
flex:1;
padding:7px 12px;
border:1px solid #ccc;
border-radius:6px;
align-items: center;
}

.coupon-input .btn-common{
  border-radius:6px;
  padding:14px 15px;
}

.coupon-input .btn-common::after {
    width: 0;
    height: 0;
    border: none;
}

.addOthers__couponOn .coupon-input{
  background-color:#f3f4f6;
  padding:8px 14px;
  min-width: 260px;
}

.addOthers__couponOn .couponItem__current{
  padding-top: 0px;
}