@charset "UTF-8";
/**
メディアクエリ
SP フォーストで記述する。
Twitter Bootstrap デフォルト準拠
 */
/**
SP（$desktop 未満）。media_desktop の裏返しで、境界がずれないよう
同じ変数から max-width を作る。

素の @media を書くと 768 を max-width 側にも書いてしまい、
min-width: 768px と 768px ちょうどで同時に成立する（後勝ちで表示が決まる）。
 */
/**
タブレット帯（$desktop 以上 $desktop2 未満）
 */
/* =========================================
   整理版CSS — ボタン重複削除済み
   ========================================= */
/* =========================================
   目次
   =========================================
   1. 共通スタイル・ユーティリティ
   2. フォーム関連（ボタン以外）
   3. ナビゲーション
   4. カード表示
   5. カート関連
   6. 注文・配送情報
   7. 商品表示
   8. コンテンツページ
   9. フッター
  10. レスポンシブ対応
   ========================================= */
/* =========================================
   1. 共通スタイル・ユーティリティ
   ========================================= */
.ec-reportDescription {
  font-weight: 500;
  line-height: 1.8;
}
/* サイト全体の <textarea> */
textarea {
  line-height: 1.8;
}
textarea.form-control,
.ec-form textarea {
  line-height: 1.8 !important;
}
textarea::-moz-placeholder {
  line-height: 1.8;
}
textarea::placeholder {
  line-height: 1.8;
}
/* 共通エラーメッセージ */
.ec-errorMessage {
  color: #de5d50;
}
/* カート内のアラート */
.cart_page .ec-cartRole .ec-alert-warning {
  background: none;
}
.cart_page .ec-alert-warning .ec-alert-warning__text {
  color: inherit;
  font-weight: 500;
}
/* =========================================
   2. フォーム関連（ボタン以外）
   ========================================= */
/* ペット情報フォーム */
.pet-form-group {
  padding: 20px 0;
  border-bottom: 1px dotted #ccc;
}
.pet-form-group:last-of-type {
  border-bottom: none;
}
.pet-accordion-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 500;
}
.mypage .pet-accordion-title .badge.badge-secondary {
  background: #fff;
  color: #111111;
  border-radius: 9999px;
  padding: 5px 15px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
}
.mypage .pet-name-with-suffix {
  width: 65% !important;
  line-height: 1;
  margin-bottom: 0;
}
.pet-name-with-suffix select,
.pet-name-with-suffix input[type=number] {
  width: auto;
  padding: 6px 10px;
  background-color: rgb(248, 248, 248);
}
.pet-name-with-suffix label {
  margin-right: 15px;
}
/* ラジオ/チェックボックスのカーソル */
label[for],
input[type=radio] + label,
input[type=checkbox] + label {
  cursor: pointer;
}
input[type=radio]:disabled + label,
input[type=checkbox]:disabled + label {
  cursor: not-allowed;
  opacity: 0.6;
}
.pet-name-with-suffix label {
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.pet-name-with-suffix input[type=radio],
.pet-name-with-suffix input[type=checkbox] {
  cursor: pointer;
}
/* ペット画像アップロード */
.pet-image-upload {
  position: relative;
}
.pet-image-section {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.pet-image-preview-container {
  display: flex;
  align-items: center;
  gap: 20px;
}
.pet-image-preview {
  width: 120px;
  height: 120px;
  border: 2px dashed #ddd;
  border-radius: 60px;
  position: relative;
  overflow: hidden;
  background: #fff;
  margin-right: 15px;
  display: inline-block;
}
.pet-image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.pet-image-placeholder {
  text-align: center;
  color: #999;
}
.pet-image-input {
  display: none;
}
/* ドロップゾーンローディング */
.drop-zone.is-loading .drop-zone-text {
  opacity: 0.85;
}
.drop-zone.is-loading .drop-zone-text::after {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 8px;
  border-radius: 50%;
  border: 2px solid rgba(0, 0, 0, 0.2);
  border-top-color: #6c757d;
  animation: dzspin 0.8s linear infinite;
}
@keyframes dzspin {
  to {
    transform: rotate(360deg);
  }
}
/* チェックボックス */
.ec-checkbox .form-check-input:checked[type=checkbox] {
  --bs-form-check-bg-image: none !important;
}
/* =========================================
   3. ナビゲーション
   ========================================= */
/* マイページ左ナビ */
.ec-navlistRole .ec-navlistRole__item,
.ec-navlistRole .ec-navlistRole__item a {
  background-color: transparent !important;
}
.ec-navlistRole .ec-navlistRole__item:hover,
.ec-navlistRole .ec-navlistRole__item:focus-within {
  background-color: transparent !important;
}
.ec-navlistRole .ec-navlistRole__item a {
  color: inherit;
  opacity: 1 !important;
  transition: color 0.18s ease;
}
.ec-navlistRole .ec-navlistRole__item a:hover {
  color: #b88b2d;
}
.ec-navlistRole .ec-navlistRole__item a:active {
  color: #173251;
}
.ec-navlistRole .ec-navlistRole__item.is-active a,
.ec-navlistRole .ec-navlistRole__item.-active a,
.ec-navlistRole .ec-navlistRole__item.active a,
.ec-navlistRole .ec-navlistRole__item a[aria-current=page] {
  color: #b88b2d !important;
  background-color: transparent !important;
}
.ec-navlistRole .ec-navlistRole__item a:focus-visible {
  outline: 2px solid rgba(29, 56, 92, 0.45);
  outline-offset: 2px;
}
/* ヘッダーナビ */
.ec-headerNaviRole .ec-headerNaviRole__megamenu__list {
  -moz-column-gap: 58px;
       column-gap: 58px;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__list li figure {
  border-radius: 0px;
  overflow: hidden;
  margin-bottom: 0px;
  padding: 0px 20px;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__trial__block a .info .price {
  font-weight: 600;
  display: flex;
  align-items: baseline;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__trial__block a .info .price .num {
  font-size: 28px;
  font-weight: 500;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__trial__block a .info .price .yen {
  font-size: 18px;
  font-weight: 500;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__trial__block a .info .price .note {
  font-weight: 500;
}
.ec-headerNaviRole .ec-headerNaviRole__megamenu__trial__block a .info p {
  margin-bottom: 10px;
}
/* =========================================
   4. カード表示
   ========================================= */
/* クレジットカード一覧 */
.ec-addressCards.-credit {
  display: grid;
  gap: 16px;
}
.ec-addressCard.-credit {
  position: relative;
  overflow: hidden;
  align-items: center;
  padding: 10px 20px;
}
.ec-addressCard.-credit .ec-addressCard__body {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 10px;
}
.ec-addressCard.-credit .credit-brand {
  display: flex;
  align-items: center;
  min-width: 45px;
}
.ec-addressCard.-credit .credit-brand i {
  font-size: 22px;
  line-height: 1;
  color: #b88b2d;
}
.credit-brand .brand-img {
  height: 22px;
  width: auto;
  -o-object-fit: contain;
     object-fit: contain;
  vertical-align: middle;
}
.ec-addressCard.-credit .credit-meta {
  display: grid;
  gap: 4px;
}
.ec-addressCard.-credit .credit-title {
  margin: 0;
  font-weight: 600;
}
.ec-addressCard.-credit .credit-title .brand {
  margin-right: 6px;
}
.ec-addressCard.-credit .credit-title .last4,
.ec-addressCard.-credit .credit-title .exp {
  color: #6c757d;
  font-size: 14px;
  font-weight: 500;
}
.ec-addressCard.-credit .credit-holder {
  margin: 0;
  color: #6c757d;
  font-size: 0.92em;
}
.ec-addressCard.-credit .credit-delete {
  position: absolute;
  right: 15px;
  cursor: pointer;
}
.ec-addressCard.-credit .credit-delete:hover {
  color: #dc3545;
}
.ec-addressCard.-credit .ec-addressCard__labelText {
  display: none;
  margin: 0px 25px 0px 5px;
  font-weight: 500;
}
.ec-addressCard.-credit .base-card {
  border: none;
  display: flex;
  justify-content: center;
  height: 100%;
  align-items: center;
}
.ec-addressCard.-credit.is-checked .ec-addressCard__labelText {
  display: block;
}
.ec-addressCard.-credit .credit-badge {
  margin-left: 8px;
  vertical-align: middle;
  font-size: 0.75em;
}
/* 住所カード */
.ec-addressCards {
  display: inline-grid;
  gap: 15px;
  width: 100%;
}
.ec-addressCard {
  display: flex;
  gap: 25px;
  border: 1px solid #ccc;
  padding: 20px;
  border-radius: 0.375rem;
}
.ec-addressCard:hover {
  cursor: pointer;
}
.ec-addressCard__radio {
  accent-color: #db5331;
}
/* =========================================
   5. カート関連
   ========================================= */
.ec-cartRole .alert,
.ec-cartRole .alert-danger,
.ec-cartRole .ec-alert,
.ec-cartRole .ec-alert-warning {
  background: #f8f5ed;
  border: 0px;
  color: #111111;
  border-radius: 10px;
  padding: 16px 20px;
}
.ec-cartRole .alert i,
.ec-cartRole .ec-alert i {
  color: #111111;
}
.ec-cartRole__main__trial__list li figure {
  margin-bottom: 0;
}
.ec-cartRole__side__note li {
  font-size: 12px;
  font-weight: 500;
}
/* =========================================
   6. 注文・配送情報
   ========================================= */
.ec-orderDelivery__shipping__address {
  font-weight: 500;
  font-size: 14px;
}
.ec-orderDelivery__shipping__address p {
  margin-bottom: 5px;
}
.customer-name01,
.customer-name02,
.customer-kana01,
.customer-kana02,
.customer-addr,
.customer-phone_number,
.customer-email {
  letter-spacing: 0.05em;
}
.customer-name01,
.customer-kana01,
.customer-name02 {
  margin-left: 0 !important;
  margin-right: 0.4em;
  padding: 0 !important;
}
.customer-postal-icon,
.cutomer-postal-icon {
  margin-left: 0 !important;
  margin-right: 0.2em;
  padding: 0 !important;
}
.ec-orderAccount p + p {
  margin-top: 5px;
}
.ec-orderOrder__block {
  border: 1px solid #d2cec8;
}
.ec-orderOrder__inner.ec-orderPayment {
  padding: 28px 32px;
}
.ec-orderOrder__inner .next-delivery-schedule {
  color: #666;
  font-size: 0.9em;
}
/* =========================================
   7. 商品表示
   ========================================= */
/* スライダー */
.ec-sliderItemRole .slideThumb {
  cursor: pointer;
  border: 1px solid transparent;
  box-sizing: border-box;
  opacity: 1;
}
.ec-sliderItemRole .slideThumb:hover {
  border: 1px solid #ccc;
}
.ec-sliderItemRole .slideThumb.is-active {
  border: 1px solid #111111;
}
/* 商品一覧 */
.ec-shelfGrid .ec-shelfGrid__item__title {
  display: block;
  margin-bottom: 12px;
}
.ec-shelfGrid__item__title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
.ec-shelfRole .ec-shelfGrid__item {
  color: #111111;
}
.ec-shelfRole .ec-shelfGrid__item figure {
  border-radius: 24px;
  overflow: hidden;
  transition: box-shadow 0.4s ease;
  margin-bottom: 0px;
}
.ec-shelfRole .ec-shelfGrid__item .ec-shelfGrid__item__icons {
  display: flex;
  gap: 10px;
  padding: 0px;
  flex-wrap: wrap;
  margin-bottom: 0px;
}
.ec-shelfRole .ec-shelfGrid__item .ec-shelfGrid__item__icons .ec-icon2 {
  padding: 8px 17px;
}
.ec-shelfRole .ec-shelfGrid__item .shelfGrid__item__detail_box {
  font-weight: 500;
}
.ec-shelfRole .ec-shelfGrid__item dl {
  padding: 0px;
  margin: 0px;
}
.ec-shelfRole .ec-shelfGrid__item dl dt {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
#page_product_list .ec-shelfGrid__item__price {
  margin-top: 0px;
  font-size: 16px;
  color: #111111;
}
#page_product_list .ec-shelfGrid__item__price .price_color {
  font-weight: 700;
}
#page_product_list .ec-shelfGrid__item__price .tax_area {
  font-size: 14px;
}
/* 商品フリーエリア */
.ec-shelfRole .ec-shelfGrid__item .product-freearea__title {
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 1.8;
  font-weight: 500;
  margin-bottom: 0px;
}
.product-freearea__title {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
.product-freearea__list {
  margin-top: 18px !important;
  padding-left: 1.5em !important;
  list-style-type: disc !important;
}
.product-freearea__list li {
  margin: 0 0 5px 0;
  font-size: 14px;
  font-weight: 500;
}
/* 商品詳細 */
.ec-productRole .ec-productRole__description {
  font-size: 18px;
  line-height: 1.8;
}
.ec-productRole__net {
  font-weight: 500;
  line-height: 1.8;
  font-size: 16px;
}
.ec-productRole__net .note {
  font-size: 12px;
}
.ec-productRole__profile .ec-price {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #000;
  font-size: 14px;
}
.ec-productRole__profile .ec-price__symbol {
  font-size: 24px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
}
.ec-productRole__profile .ec-price__amount {
  font-size: 40px;
  font-weight: 500;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ec-productRole__profile .ec-price__tax {
  font-size: 14px;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.ec-productRole .ec-productRole__trial__off {
  color: #111111;
  gap: 10px;
}
.ec-productRole__tag.tag_trial {
  color: #111111;
  border: 1px solid #111111;
  background: #fff;
}
.ec-productRole .ec-productRole__trial__price .ec-price__amount {
  color: #e94f2a;
}
.ec-productRole .ec-productRole__trial__price .ec-price__symbol {
  color: #e94f2a;
}
.ec-productRole .ec-productRole__tag {
  font-size: 15px;
}
/* 購入タブ */
.ec-productRole .ec-productRole__buyTab > li:last-child::after {
  content: "";
  display: block;
  width: 89px;
  height: 28px;
  background: url(../icon/icon_recommend.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: -12px;
  right: -5px;
  z-index: 1;
}
.ec-productRole__buyTab li a::before {
  display: none !important;
}
.ec-productRole__buyTab li a:focus {
  outline: none;
}
.ec-productRole__buyTab li a:focus-visible {
  outline: 2px solid var(--gd-accent, #c39d4a);
  outline-offset: 2px;
}
.ec-productRole__buyTab li a span {
  position: relative;
  font-weight: 600;
  padding-left: 32px;
  display: inline-block;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="white" stroke="%23cccccc" stroke-width="2"/></svg>');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 24px 24px;
  transition: all 0.2s ease;
}
.ec-productRole__buyTab li a:hover span {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="%23f7f7f7" stroke="%23aaaaaa" stroke-width="2"/></svg>');
}
.ec-productRole__buyTab li a.is-active span,
.ec-productRole__buyTab li.is-active a span {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="white" stroke="%23e94f2a" stroke-width="2"/><circle cx="12" cy="12" r="5" fill="%23e94f2a"/></svg>');
}
.ec-productRole .ec-productRole__buyTab__list__item label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  background: #fff;
  border-radius: 12px;
  padding: 18px;
  overflow: hidden;
  position: relative;
}
.ec-productRole .ec-productRole__buyTab__label {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
}
.ec-productRole .ec-productRole__buyTab__label__custom {
  font-size: 11px;
  margin-top: 2px;
  padding: 0px 4px;
}
.ec-productRole .ec-productRole__buyTab__price {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  -moz-column-gap: 5px;
       column-gap: 5px;
}
.ec-productRole .ec-productRole__buyTab__list__item label:has(input:checked) .ec-productRole__buyTab__label {
  /* background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="white" stroke="%23e94f2a" stroke-width="2"/><circle cx="12" cy="12" r="5" fill="%23e94f2a"/></svg>'); */
}
.ec-productRole .ec-productRole__buyTab__list__item input[type=radio] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ec-productRole .ec-productRole__buyTab__list__item label::before,
.ec-productRole .ec-productRole__buyTab__list__item label::after {
  display: none !important;
}
/* トライアル商品 */
.ec-shelfRole__trial__block {
  display: flex;
  background: rgba(246, 242, 232, 0.8);
  border-radius: 24px;
  align-items: center;
}
.ec-shelfRole__trial__block a .info h3 {
  text-align: left;
}
.ec-shelfRole__trial__block a .info h3 span,
.ec-shelfRole__trial__block a .info .tag {
  display: inline-block;
  background: #fff;
  border: 1px solid #000;
  border-radius: 24px;
  padding: 4px 8px;
  line-height: 1;
  font-size: 12px;
  font-weight: 500;
  vertical-align: middle;
  margin-left: 0;
}
.ec-shelfRole__trial__block a .info .ec-badge {
  font-size: 12px;
}
.ec-shelfRole__trial__block a .info .price {
  font-size: 14px;
  font-weight: 700;
  align-items: baseline;
  line-height: 1;
}
.ec-shelfRole__trial__block a .info .price + p {
  line-height: 1.8;
}
.front_page__product .splide__slide .ec-shelfGrid__item__icons {
  padding: 0px;
  margin-bottom: 0px;
}
.front_page__product .splide__slide dl {
  padding: 0px;
}
/* =========================================
   8. コンテンツページ
   ========================================= */
/* お知らせ */
.ec-newsRole .ec-newsRole__listItemTitle {
  font-size: 18px;
  line-height: 1.8;
  font-weight: 500;
}
.ec-newsRole .ec-newsRole__header h1,
.ec-newsRole .ec-newsRole__header .h1 {
  line-height: 1.6;
}
.ec-newsRole .ec-newsRole__articleExcerpt {
  padding: 32px 48px;
  margin-bottom: 80px;
  font-size: 18px;
  line-height: 2.2;
}
.ec-newsRole .ec-newsRole__articleContent p {
  margin: 20px 0;
  font-size: 16px;
  line-height: 2.2;
  font-weight: 500;
}
.ec-newsRole .ec-newsRole__articleContent h2,
.ec-newsRole .ec-newsRole__articleContent .h2 {
  margin: 96px 0 24px;
  color: #000;
  font-weight: 600;
}
.ec-newsRole .ec-newsRole__articleContent ul,
.ec-newsRole .ec-newsRole__articleContent ol {
  padding-left: 1.5em;
  list-style-type: disc;
}
.ec-newsRole .ec-newsRole__articleContent ul li,
.ec-newsRole .ec-newsRole__articleContent ul dt,
.ec-newsRole .ec-newsRole__articleContent ul dd,
.ec-newsRole .ec-newsRole__articleContent ol li,
.ec-newsRole .ec-newsRole__articleContent ol dt,
.ec-newsRole .ec-newsRole__articleContent ol dd,
.ec-newsRole .ec-newsRole__articleContent dl li,
.ec-newsRole .ec-newsRole__articleContent dl dt,
.ec-newsRole .ec-newsRole__articleContent dl dd {
  margin-bottom: 8px;
  font-weight: 500;
}
.ec-newsRole__articleFooter {
  margin-top: 140px;
}
/* FAQ */
.ec-faqRole__main .faq-answer {
  padding: 30px 100px 0 100px;
  line-height: 1.8;
  font-weight: 500;
}
/* コンシェルジュ */
.ec-authoritysRole__profile dl dd ul li {
  line-height: 1.8;
}
.ec-authoritysRole__profile dl dd ul li::before {
  top: 10px;
}
.ec-authoritysRole__contents p {
  line-height: 2.2;
}
.ec-pageHeader2 p {
  color: #111111;
}
/* プログレス */
.ec-progress .ec-progress__number {
  font-size: 24px;
  line-height: 38px;
  font-weight: 500;
}
/* =========================================
   9. フッター
   ========================================= */
.ec-footerRole .ec-footerRole__products dd ul li a {
  font-size: 14px;
}
.ec-footerRole .ec-footerRole__logo {
  margin-bottom: 60px;
}
.ec-orderPayment .ec-radio {
  display: none !important;
}
@media (max-width: 991px) {
  .ec-layoutRole .ec-layoutRole__contents {
    padding-top: 38px !important;
    padding-bottom: 20px !important;
    padding-right: 0px !important;
    padding-left: 0px !important;
  }
}
@media (max-width: 767px) {
  .ec-footerRole dd ul li a {
    font-size: 0.85rem !important;
  }
}
/* =========================================
   10. レスポンシブ対応
   ========================================= */
@media (min-width: 768px) {
  .pet-name-suffix {
    padding-left: 10px;
    font-weight: 500;
  }
  .add-pet-button {
    font-size: 16px;
    font-weight: 500;
  }
  .ec-navlistRole .active a {
    font-weight: 500;
  }
  .ec-headerNaviRole .ec-headerNaviRole__megamenu__list li h3,
  .ec-headerNaviRole .ec-headerNaviRole__megamenu__list li .h3 {
    font-weight: 600;
  }
  .ec-borderedDefs dl,
  .pet-form-group,
  .pet-info-container dl {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px 0 !important;
  }
  .ec-borderedDefs dl:last-of-type,
  .pet-info-container dl:last-of-type {
    border-bottom: none !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }
  .ec-borderedDefs dd,
  .pet-info-container dd {
    width: 65% !important;
    line-height: 1.8;
    margin-bottom: 0;
  }
  .ec-borderedDefs dd > :where(.ec-zipInput, .ec-select, .ec-input) + :where(.ec-zipInput, .ec-select, .ec-input) {
    margin-top: 15px;
  }
  .ec-borderedDefs dd .ec-input + .ec-input {
    margin-top: 15px;
  }
  .pet-image-preview {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f5f5f5 !important;
    border: none !important;
  }
  .pet-image-placeholder {
    padding-top: 0 !important;
    font-size: 14px;
    font-weight: 500;
  }
  input[type=radio] {
    accent-color: #db5331 !important;
    margin-right: 5px !important;
  }
  .ec-registerRole textarea,
  .ec-mypageRole textarea {
    font-family: inherit;
  }
  .ec-radio input {
    margin-right: 5px;
  }
  .ec-birth select {
    margin-left: 10px;
  }
  .ec-input input,
  .ec-birth input,
  .ec-select input,
  .ec-halfInput input,
  .ec-numberInput input,
  .ec-zipInput input,
  .ec-telInput input {
    padding: 6px 10px;
    margin-bottom: 0;
  }
  .ec-select {
    margin-bottom: 0;
  }
  .ec-label {
    margin-bottom: 0;
  }
  .ec-halfInput input[type=text] {
    width: 30%;
    margin-left: 5px;
  }
  .ec-birth input,
  .ec-halfInput input,
  .ec-numberInput input,
  .ec-telInput input {
    margin-top: 0;
    margin-bottom: 0;
  }
  .ec-login__passInput {
    margin-top: 15px;
  }
  .ec-registerRole {
    color: inherit;
  }
  .ec-cartRole {
    margin: 0 auto;
  }
  .ec-cartRole__wrap {
    align-items: flex-start;
    padding-bottom: 120px;
  }
  .ec-cartRole__side {
    position: sticky;
    top: 80px;
    align-self: flex-start;
  }
  .ec-imageGrid .ec-imageGrid__content {
    padding-left: 0px;
  }
  .ec-imageGrid .ec-imageGrid__content .prd-tl {
    margin-bottom: 5px;
    font-size: 16px;
    font-weight: 600;
  }
  .ec-imageGrid .ec-imageGrid__content .prd-qty {
    font-size: 14px;
    font-weight: 500;
  }
  .ec-cartRole__side__product figure img {
    width: 48px;
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .ec-cartRole__side__product ul li dl {
    margin-left: 0px;
  }
  .ec-borderedList {
    border-top: 0px;
  }
  .ec-borderedList li {
    padding: 25px 0;
  }
  .ec-borderedList li:first-child {
    padding-top: 0;
  }
  .ec-borderedList li:nth-child(n+2) {
    padding-top: 25px;
  }
  .ec-borderedList li:last-child {
    border-bottom: none !important;
    padding-bottom: 0px;
  }
  .ec-borderedList li .ec-imageGrid .ec-imageGrid__img {
    padding: 0px !important;
  }
  .ec-cartRole__side__product ul li dl dt {
    margin-bottom: 5px;
    font-size: 14px;
    font-weight: 600;
  }
  .ec-cartRole__side__product ul li dl dd {
    font-size: 14px;
    font-weight: 500;
  }
  .ec-cartRole__side__coupon__input {
    padding: 4px;
  }
  .ec-cartRole__side__coupon__input input {
    padding-left: 10px;
  }
  .ec-cartRole__side__product {
    border-bottom: 1px solid #b4b4b4;
  }
  .ec-cartRole__side__product ul li {
    -moz-column-gap: 15px;
         column-gap: 15px;
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 1px dashed #b4b4b4;
  }
  .ec-cartRole__side__product ul li:last-child {
    border-bottom: none !important;
  }
  .ec-cartRole__main__subscription__contents {
    text-align: center;
    padding: 0px 0px 0px 0px;
  }
  .ec-login .ec-login__link a.ec-link {
    font-size: 14px;
  }
  .ec-productRole .ec-productRole__buyTab__price .main .yen {
    font-weight: 600;
  }
  .ec-cartRole__side__header .pack-controls .amount .separator {
    margin: 0;
  }
  .ec-cartRole__main__trial__list li {
    margin-top: 25px;
    padding-top: 15px;
  }
  .ec-cartRole__main__trial__list li dl dt {
    margin-bottom: 5px;
    font-size: 16px;
    font-weight: 600;
  }
  .ec-cartRole__side__header .pack-controls .clear {
    font-size: 14px;
    -moz-column-gap: 4px;
         column-gap: 4px;
  }
  .ec-cartRole .text-muted,
  .ec-cartRole .text-danger {
    font-weight: 500;
  }
  .ec-shelfRole__trial {
    margin-bottom: 80px;
  }
  .ec-shelfRole__trial__wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    -moz-column-gap: 56px;
         column-gap: 56px;
  }
  .ec-shelfRole__trial__wrap > figure {
    width: 30%;
    flex-shrink: 0;
    margin-bottom: 0;
    padding: 10px;
  }
  .ec-shelfRole__trial__block {
    display: block;
    flex: 1;
    min-width: 0;
    margin-right: 0;
    background: rgba(246, 242, 232, 0.8);
    width: 100%;
  }
  .ec-shelfRole__trial__block a {
    display: flex;
    align-items: center;
    -moz-column-gap: 32px;
         column-gap: 32px;
    padding: 20px;
  }
  .ec-shelfRole__trial__block a .info h3 {
    margin: 5px 0 15px;
  }
  .ec-shelfRole__trial__block a .info h3 span {
    margin-left: 15px;
  }
  .ec-shelfRole__trial__block a .info p {
    margin-bottom: 5px;
  }
  .ec-shelfRole__trial__block a .info p .ec-badge {
    font-size: 13px;
  }
  .ec-shelfRole__trial__block a .info .price + p {
    margin-top: 20px;
  }
  .ec-shelfRole__trial__block a .fig {
    flex-shrink: 0;
  }
  .ec-shelfRole__trial__block a .fig figure {
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    box-sizing: content-box;
  }
  .ec-shelfRole__trial__block a .fig img {
    width: 100%;
    height: auto;
  }
  .ec-shelfRole__trial__wrap > figure img {
    width: 100%;
    height: auto;
    max-width: 100%;
  }
  .ec-shelfRole__trial__block h3,
  .ec-shelfRole__trial__block .h3 {
    font-weight: 500;
    line-height: 1.8;
  }
  .ec-shelfRole__trial__block__inner .fig {
    width: 100%;
  }
  .ec-shelfGrid__item__title {
    font-size: 22px;
    letter-spacing: 0.05em;
    line-height: 1.8;
  }
  .ec-shelfGrid .ec-shelfGrid__item__title__inner {
    width: 100%;
  }
  #page_product_list .ec-product__freearea .ec-shelfGrid__item__info {
    padding-top: 15px;
    margin: 20px 0 15px;
    border-top: 1px solid #d9d9d9;
  }
  #page_product_list .ec-product__freearea .ec-shelfGrid__item__info p {
    margin: 5px auto;
    font-size: 18px;
    line-height: 1.6;
    color: #666;
    width: -moz-fit-content;
    width: fit-content;
    background: linear-gradient(transparent 60%, rgba(255, 179, 0, 0.4470588235) 80%);
  }
  .ec-shelfRole__trial__block a .fig {
    width: 250px;
  }
  .ec-productRole .ec-productRole__buyTab > li:last-child::after {
    top: -12px;
    right: -5px;
  }
  .ec-productRole .ec-productRole__buyTab__list__item label::before {
    width: 24px;
    height: 24px;
    left: 18px;
  }
  .ec-productRole .ec-productRole__buyTab__list__item label:has(input:checked)::after {
    width: 14px;
    height: 14px;
    left: 23px;
  }
  .ec-productRole .ec-productRole__buyTab__label {
    font-size: 20px;
  }
  .ec-mypage__main .ec-productRole .ec-productRole__buyTab > li:last-child::after {
    display: none;
  }
  .credit-brand .brand-img {
    height: 24px;
  }
  .ec-productRole .ec-productRole__description {
    font-size: 18px;
    line-height: 1.8;
  }
}
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .br-pc {
    display: none;
  }
  .ec-conciergeRole__inner {
    padding: 40px;
  }
  #page_product_list .ec-product__freearea .ec-shelfGrid__item__info p {
    font-size: 1.5vw;
  }
}
@media (min-width: 1200px) {
  .ec-productRole .ec-productRole__buyTab__list__item label {
    flex-wrap: nowrap;
  }
  .ec-productRole .ec-productRole__buyTab__price {
    justify-content: flex-end;
    margin-top: 0;
  }
}
@media (max-width: 767px) {
  .br-pc {
    display: none;
  }
  .ec-conciergeRole__inner h2,
  .ec-conciergeRole__inner .h2 {
    font-size: 38px;
  }
  .ec-conciergeRole__inner h2::before,
  .ec-conciergeRole__inner .h2::before {
    margin: 0 auto 30px;
    transform: scale(0.8);
    transform-origin: center;
  }
  .ec-conciergeRole__lead {
    font-size: 16px;
    line-height: 1.8;
  }
  .ec-conciergeRole__privacy {
    font-size: 14px;
  }
  .ec-conciergeRole__point li {
    font-size: 16px;
    margin-bottom: 0;
  }
  .ec-newsRole .ec-newsRole__articleExcerpt {
    padding: 60px 0;
    margin: 60px 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
  }
  .ec-newsRole .ec-newsRole__articleContent h2,
  .ec-newsRole .ec-newsRole__articleContent .h2 {
    margin: 64px 0 16px;
    font-size: 22px;
    line-height: 1.6;
    font-weight: 600;
    color: #000;
  }
  .ec-newsRole .ec-newsRole__header h1,
  .ec-newsRole .ec-newsRole__header .h1 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.6;
  }
  .ec-newsRole .ec-newsRole__header .date {
    font-size: 14px;
  }
  .ec-newsRole .ec-newsRole__header .newsRole__header__info {
    margin-top: 30px;
  }
  .ec-newsRole .ec-newsRole__articleContent ul li,
  .ec-newsRole .ec-newsRole__articleContent ul dt,
  .ec-newsRole .ec-newsRole__articleContent ul dd,
  .ec-newsRole .ec-newsRole__articleContent ol li,
  .ec-newsRole .ec-newsRole__articleContent ol dt,
  .ec-newsRole .ec-newsRole__articleContent ol dd,
  .ec-newsRole .ec-newsRole__articleContent dl li,
  .ec-newsRole .ec-newsRole__articleContent dl dt,
  .ec-newsRole .ec-newsRole__articleContent dl dd {
    margin-bottom: 8px;
    font-weight: 500;
    font-size: 15px;
  }
  .ec-newsRole__articleFooter {
    margin-top: 60px;
  }
  .ec-newsRole .ec-newsRole__articleContent p {
    font-size: 15px;
    line-height: 2.2;
    font-weight: 500;
  }
  .ec-newsRole .ec-newsRole__listItemTitle {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.8;
  }
  .ec-newsRole__headerCat {
    margin-top: 0;
  }
  .ec-newsRole__headerCat dl {
    gap: 20px 8px;
  }
  #page_news_index .ec-pageHeader2 {
    margin-bottom: 0;
  }
  .ec-footerRole .ec-footerRole__logo img {
    width: 60%;
    margin: 0 auto;
  }
  #page_product_list .ec-shelfGrid__item__price {
    display: block;
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.6;
    color: #111111;
  }
  #page_product_list .ec-product__freearea .ec-shelfGrid__item__info {
    padding-top: 15px;
    margin: 20px 0 15px;
    border-top: 1px solid #d9d9d9;
  }
  #page_product_list .ec-product__freearea .ec-shelfGrid__item__info p {
    margin: 5px auto;
    font-size: 4vw;
    line-height: 1.6;
    color: #666;
    width: -moz-fit-content;
    width: fit-content;
    background: linear-gradient(transparent 60%, rgba(255, 179, 0, 0.4470588235) 80%);
  }
  .ec-faqRole__main .faq-question div {
    padding: 0 50px 0 16vw;
  }
}
/* =========================================
   アニメーション軽減設定
   ========================================= */
@media (prefers-reduced-motion: reduce) {
  .ec-navlistRole .ec-navlistRole__item a {
    transition: none;
  }
}
/* 上の定義との差分は padding-left だけ（他は同値の再掲だった） */
.ec-productRole .ec-productRole__buyTab__list__item label {
  padding-left: 32px;
}
.ec-productRole .ec-productRole__buyTab__list__item {
  margin-bottom: 16px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #111111;
  padding-left: 18px;
}
@media (max-width: 767px) {
  .ec-shelfRole__trial__block a {
    padding: 20px;
  }
  .ec-shelfRole__trial__block a .info .price {
    font-size: 12px;
  }
  .ec-shelfRole__trial__block a .info .price .num {
    font-size: 32px;
  }
  .ec-shelfRole__trial__block a .info .price .note {
    font-size: 10px;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .ec-shelfRole__trial__block a .info .price {
    font-size: 13px;
  }
  .ec-shelfRole__trial__block a .info .price .num {
    font-size: 32px;
  }
  .ec-shelfRole__trial__block a .info .price .note {
    font-size: 10px;
  }
  .ec-shelfRole__trial__block a .fig {
    width: 200px;
  }
  .ec-shelfRole__trial__block a {
    -moz-column-gap: 26px;
         column-gap: 26px;
    padding: 10px;
  }
}
@media (max-width: 1024px) {
  .ec-layoutRole__contents .ec-supportRole__line .r {
    width: 100%;
    text-align: center;
  }
  .ec-shelfRole .ec-shelfGrid__item .shelfGrid__item__detail_box {
    padding: 14px 10px 0 10px !important;
  }
  #page_product_list.product_page .ec-layoutRole__contents .ec-shelfRole .item-wrap {
    padding: 0px 10px 0 10px !important;
  }
  #page_product_list .product_stock_wrap {
    padding: 0px 10px 0 10px !important;
  }
  #page_product_list .ec-shelfRole .ec-shelfGrid__item dl dt {
    font-size: 1.4rem;
  }
  .ec-shelfRole__trial__block a .info .ec-badge {
    font-size: 0.7rem;
  }
}
.ec-supportRole__line .r .ec-blockBtn--action.-line {
  display: inline-flex;
}
.ec-layoutRole__contents .ec-supportRole__block2 .ec-supportRole__block3 {
  align-items: flex-start;
}
/* フッターのリンクは行の高さ（17px）がそのまま当たり判定になっており、
   iOS の推奨（44px）の半分以下だった。全ページ共通で効く。
   見た目を変えないよう、余白ではなく行の高さで確保する。 */
@media only screen and (max-width: 767px) {
  .ec-footerRole dd li a,
  .ec-footerRole__inner li a,
  .ec-footerNavi li a,
  .ec-footerRole .ec-footerTitle + ul li a,
  .ec-footerRole__link li a {
    /* line-height で 44px を作ると、li 側の余白に上乗せされて間延びする。
       行の高さは元のまま、flex の中央寄せで領域だけ確保する */
    display: flex;
    align-items: center;
    min-height: 44px;
  }
  /* ヘッダーのアイコン（メニュー・ロゴ・マイページ・カート）と
     お知らせバーも 44px を下回っていた。見た目は据え置き、
     当たり判定だけ確保する（中身は中央に置いたまま） */
  .gd-menu-button,
  .gd-brand,
  .gd-header .gd-action,
  .gd-action,
  .gd-ticker__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px !important;
    min-width: 44px;
  }
  /* 検索ボタンは 34x24。アイコンの大きさは変えず領域だけ広げる */
  .ec-headerSearch__keywordBtn {
    min-height: 44px;
    min-width: 44px;
  }
  /* 商品詳細の「1日あたりの給与量を見る」は 37px */
  .ec-productRole__modal {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}
html body .ec-layoutRole .ec-layoutRole__contents .ec-layoutRole__main {
  padding-top: 48px;
}
@media (max-width: 767.98px) {
  html body .ec-layoutRole .ec-layoutRole__contents .ec-layoutRole__main {
    padding-top: 32px;
  }
}
/* =========================================
   ページタイトル（.ec-pageHeader h1）の統一
   ログイン画面の見出し（.gd-register-panel h2）に合わせる。
   28px / 500 / lh1.45 / ls0 / #111111 / 中央（SP 24px）。
   -icon-login / -icon-cart の丸アイコンは廃止し、
   ページごとにアイコンが変わってばらつくのを防ぐ。
   ========================================= */
.ec-pageHeader h1 {
  display: block;
  margin: 0 0 32px;
  padding: 0;
  color: #111111;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: center;
}
.ec-pageHeader h1.-icon-login::before,
.ec-pageHeader h1.-icon-cart::before {
  content: none;
}
@media (max-width: 991.98px) {
  .ec-pageHeader h1 {
    font-size: 24px;
  }
}
.mypage .ec-layoutRole__main {
  padding-top: 20px !important;
}
.gd-trial-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.gd-trial-notice--brand {
  background: #fbf8f1;
  color: #111;
  border: 1px solid #b88b2d;
}
.gd-trial-notice--side {
  margin: 0 0 12px;
}
.gd-trial-notice__text {
  font-size: 12px;
  font-weight: 500;
}
/* 数字用の共通フォントクラス ── 日時・金額・注文番号・電話番号など数字系に付与。
   system-ui は日本語グリフを持たないため、数字/英字だけこのフォント、日本語は自動フォールバック。 */
.num-styled {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-feature-settings: "tnum"; /* 等幅数字で桁揃え */
}
/* GD マイページ一覧タイトル帯 共通（注文履歴・お届け先で共用） */
.mypage .gd-order-history__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2px;
  margin-bottom: 20px;
}
.mypage .gd-order-history__title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 18px;
  font-weight: 700;
  color: #111;
  margin: 0;
  letter-spacing: 0.02em;
}
.mypage .gd-order-history__icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.mypage .gd-order-history__count {
  font-size: 16px;
  font-weight: 500;
  color: #77736d;
  margin-left: 2px;
}
.mypage .gd-order-history__count .num {
  font-weight: 700;
  color: #111;
}
/* ============================================================
   gd-segTab : セグメント型タブ（共通コンポーネント）
   クーポンBOX / 定期便 で共用。商品詳細 buyTab と同じ見た目。
   選択判定は 2 方式に対応:
     - a[aria-selected="true"]  (クーポンBOX)
     - li.is-active > a         (定期便)
   共通 buyTab の span 背景SVGラジオは打ち消し、
   ラジオは a::before(外枠) / a::after(中点) で描く。
   ============================================================ */
.gd-segTab,
.ec-productRole .gd-segTab,
.ec-productRole__buyTab.gd-segTab,
.ec-couponBox__tabs.gd-segTab {
  display: grid;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  border: 1px solid #d2cec8;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.gd-segTab > li,
.ec-productRole .gd-segTab > li,
.ec-productRole__buyTab.gd-segTab > li,
.ec-couponBox__tabs.gd-segTab > li {
  display: flex;
  min-width: 0;
  width: 100%;
  margin: 0;
}
.gd-segTab > li:first-child > a,
.ec-productRole .gd-segTab > li:first-child > a,
.ec-productRole__buyTab.gd-segTab > li:first-child > a,
.ec-couponBox__tabs.gd-segTab > li:first-child > a {
  border-right: 1px solid #d2cec8;
}
.gd-segTab > li::before, .gd-segTab > li::after,
.ec-productRole .gd-segTab > li::before,
.ec-productRole .gd-segTab > li::after,
.ec-productRole__buyTab.gd-segTab > li::before,
.ec-productRole__buyTab.gd-segTab > li::after,
.ec-couponBox__tabs.gd-segTab > li::before,
.ec-couponBox__tabs.gd-segTab > li::after {
  content: none !important;
}
.gd-segTab > li > a,
.ec-productRole .gd-segTab > li > a,
.ec-productRole__buyTab.gd-segTab > li > a,
.ec-couponBox__tabs.gd-segTab > li > a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 72px;
  padding: 14px 18px 14px 52px;
  color: #59544f;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  background: #fff;
  white-space: nowrap;
}
.gd-segTab > li > a span,
.ec-productRole .gd-segTab > li > a span,
.ec-productRole__buyTab.gd-segTab > li > a span,
.ec-couponBox__tabs.gd-segTab > li > a span {
  display: inline;
  padding-left: 0 !important;
  background-image: none !important;
  background: none !important;
  font-weight: 700;
  white-space: nowrap;
}
.gd-segTab > li > a::before,
.ec-productRole .gd-segTab > li > a::before,
.ec-productRole__buyTab.gd-segTab > li > a::before,
.ec-couponBox__tabs.gd-segTab > li > a::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #d2cec8;
  background: #fff;
  box-sizing: border-box;
}
.gd-segTab > li > a::after,
.ec-productRole .gd-segTab > li > a::after,
.ec-productRole__buyTab.gd-segTab > li > a::after,
.ec-couponBox__tabs.gd-segTab > li > a::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: transparent;
  border: 0;
}
.gd-segTab > li > a:focus,
.ec-productRole .gd-segTab > li > a:focus,
.ec-productRole__buyTab.gd-segTab > li > a:focus,
.ec-couponBox__tabs.gd-segTab > li > a:focus {
  outline: none;
}
.gd-segTab > li > a:focus-visible,
.ec-productRole .gd-segTab > li > a:focus-visible,
.ec-productRole__buyTab.gd-segTab > li > a:focus-visible,
.ec-couponBox__tabs.gd-segTab > li > a:focus-visible {
  outline: 2px solid #c39d4a;
  outline-offset: -2px;
}
.gd-segTab > li > a[aria-selected=true],
.gd-segTab > li.is-active > a,
.ec-productRole .gd-segTab > li > a[aria-selected=true],
.ec-productRole .gd-segTab > li.is-active > a,
.ec-productRole__buyTab.gd-segTab > li > a[aria-selected=true],
.ec-productRole__buyTab.gd-segTab > li.is-active > a,
.ec-couponBox__tabs.gd-segTab > li > a[aria-selected=true],
.ec-couponBox__tabs.gd-segTab > li.is-active > a {
  color: #111111;
  background: #fbf6ea;
}
.gd-segTab > li > a[aria-selected=true] span,
.gd-segTab > li.is-active > a span,
.ec-productRole .gd-segTab > li > a[aria-selected=true] span,
.ec-productRole .gd-segTab > li.is-active > a span,
.ec-productRole__buyTab.gd-segTab > li > a[aria-selected=true] span,
.ec-productRole__buyTab.gd-segTab > li.is-active > a span,
.ec-couponBox__tabs.gd-segTab > li > a[aria-selected=true] span,
.ec-couponBox__tabs.gd-segTab > li.is-active > a span {
  background-image: none !important;
  background: none !important;
}
.gd-segTab > li > a[aria-selected=true]::before,
.gd-segTab > li.is-active > a::before,
.ec-productRole .gd-segTab > li > a[aria-selected=true]::before,
.ec-productRole .gd-segTab > li.is-active > a::before,
.ec-productRole__buyTab.gd-segTab > li > a[aria-selected=true]::before,
.ec-productRole__buyTab.gd-segTab > li.is-active > a::before,
.ec-couponBox__tabs.gd-segTab > li > a[aria-selected=true]::before,
.ec-couponBox__tabs.gd-segTab > li.is-active > a::before {
  border-color: #b88b2d;
}
.gd-segTab > li > a[aria-selected=true]::after,
.gd-segTab > li.is-active > a::after,
.ec-productRole .gd-segTab > li > a[aria-selected=true]::after,
.ec-productRole .gd-segTab > li.is-active > a::after,
.ec-productRole__buyTab.gd-segTab > li > a[aria-selected=true]::after,
.ec-productRole__buyTab.gd-segTab > li.is-active > a::after,
.ec-couponBox__tabs.gd-segTab > li > a[aria-selected=true]::after,
.ec-couponBox__tabs.gd-segTab > li.is-active > a::after {
  background: #b88b2d;
}
@media (min-width: 768px) {
  .gd-segTab > li > a,
  .ec-productRole .gd-segTab > li > a,
  .ec-productRole__buyTab.gd-segTab > li > a,
  .ec-couponBox__tabs.gd-segTab > li > a {
    font-size: 16px;
  }
}
@media (max-width: 767px) {
  .gd-segTab > li > a,
  .ec-productRole .gd-segTab > li > a,
  .ec-productRole__buyTab.gd-segTab > li > a,
  .ec-couponBox__tabs.gd-segTab > li > a {
    min-height: 60px;
    padding: 12px 10px 12px 42px;
    font-size: 13.5px;
  }
  .gd-segTab > li > a::before,
  .ec-productRole .gd-segTab > li > a::before,
  .ec-productRole__buyTab.gd-segTab > li > a::before,
  .ec-couponBox__tabs.gd-segTab > li > a::before {
    left: 12px;
    width: 20px;
    height: 20px;
  }
  .gd-segTab > li > a::after,
  .ec-productRole .gd-segTab > li > a::after,
  .ec-productRole__buyTab.gd-segTab > li > a::after,
  .ec-couponBox__tabs.gd-segTab > li > a::after {
    left: 17px;
    width: 9px;
    height: 9px;
  }
}
/* gd-segTab を包む borderedDefs の左右パディングを除去（タブをカード幅に揃える） */
.ec-borderedDefs.ec-subscriptionRole__tabDefs {
  padding: 0 !important;
  border: 0 !important;
  margin-bottom: 0 !important;
}
/* gd-segTab: li 自身の枠線を除去（a 側の区切り線と二重になり黒く見えるため） */
.gd-segTab > li,
.ec-productRole .gd-segTab > li,
.ec-productRole__buyTab.gd-segTab > li {
  border: 0 !important;
}
/* 定期便ページ: カード枠を廃止しクーポンBOXと同じフラット構成に揃える */
/* 定期便「一覧」のみカード枠を廃止（詳細画面の1カード化を壊さないよう限定） */
#page_mypage_subscription .ec-mypage__main .ec-editRole {
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
#page_mypage_subscription .ec-mypage__main .ec-productRole.ec-borderedDefs__inner {
  padding: 0 !important;
}
/* マイページ サイドメニュー: アイコンを #111111 に統一
   背景画像(SVG)のため color では変えられず、filter で黒化する。
   brightness(0) で真っ黒 → invert で #111 相当まで戻す */
.ec-navlistRole .ec-navlistRole__item a::before {
  filter: brightness(0) saturate(100%) invert(6%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(97%) contrast(100%);
}
/* マイページ サイドメニュー: 非アクティブのアイコンを #111111 に統一
   背景画像(SVG)のため color では変えられず filter で黒化する。
   .active（現在ページ）はゴールドのまま残す。 */
.ec-navlistRole .ec-navlistRole__item:not(.active) a::before {
  filter: brightness(0) saturate(100%) brightness(97%);
}
/* SP専用改行（768px以上で非表示）。br-pc の対。 */
.br-sp {
  display: inline;
}
@media (min-width: 768px) {
  .br-sp {
    display: none;
  }
}
/* =========================================
   フラッシュメッセージ（Bootstrap alert）をブランド色に
   成功: クリーム地＋ゴールドの左罫
   エラー: 淡い赤地＋赤の左罫
   ========================================= */
.alert-success {
  background-color: #f7f4ec;
  border: 1px solid #d2cec8;
  border-left: 3px solid #c39d4a;
  border-radius: 8px;
  color: #111111;
}
.alert-danger {
  background-color: #fdf3f2;
  border: 1px solid #e8c9c5;
  border-left: 3px solid #df4545;
  border-radius: 8px;
  color: #111111;
}
.alert-success .btn-close,
.alert-danger .btn-close {
  opacity: 0.5;
}
.alert-success .btn-close:hover,
.alert-danger .btn-close:hover {
  opacity: 0.8;
}