@charset "UTF-8";

/* ==========================================================================
   components.css — c-* 再利用パーツ
   ========================================================================== */

/* --- ピルボタン（アウトライン＋円形矢印、ホバーで反転） --- */

.c-btn {
  --btn-c: var(--brand);
  --btn-on: #fff;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 10px 10px 10px 26px;
  border-radius: 999px;
  border: 1.5px solid var(--btn-c);
  color: var(--btn-c);
  background: #fff;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body);
  line-height: var(--lh-tight);
  cursor: pointer;
  transition: background .22s var(--ease-out), color .22s var(--ease-out);
}

.c-btn__ico {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--btn-c);
  color: var(--btn-on);
  display: grid;
  place-items: center;
  font-size: var(--fs-md);
  flex-shrink: 0;
  transition: background .22s var(--ease-out), color .22s var(--ease-out);
}

.c-btn:hover {
  background: var(--btn-c);
  color: var(--btn-on);
}

.c-btn:hover .c-btn__ico {
  background: var(--btn-on);
  color: var(--btn-c);
}

.c-btn:active {
  transform: scale(.98);
}

.c-btn--sm {
  padding: 7px 7px 7px 20px;
  font-size: var(--fs-sm);
  gap: 12px;
}

.c-btn--sm .c-btn__ico {
  width: 30px;
  height: 30px;
  font-size: var(--fs-caption);
}

/* --- テキスト＋矢印リンク --- */

.c-btn-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  color: var(--btn-c, var(--brand));
}

.c-btn-link__arw {
  transition: transform .2s var(--ease-out);
}

.c-btn-link:hover .c-btn-link__arw {
  transform: translateX(5px);
}

/* --- 赤背景上のアウトラインボタン --- */

.c-btn-onred {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 10px 10px 10px 26px;
  border: 1.5px solid rgba(255,255,255,0.9);
  border-radius: var(--radius-pill);
  color: var(--brand);
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  background: #fff;
  cursor: pointer;
  transition: background .3s var(--ease-out), color .3s var(--ease-out);
}

.c-btn-onred:hover {
  background: var(--brand);
  color: #fff;
}

.c-btn-onred__arw {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-md);
  flex-shrink: 0;
}

/* --- ハンバーガー --- */

.c-burger {
  display: none;
  margin-left: auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--brand);
  border: none;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  padding: 0;
}

.c-burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .25s var(--ease-out), opacity .2s var(--ease-out);
}

.c-burger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.c-burger.is-open span:nth-child(2) {
  opacity: 0;
}

.c-burger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* グローバルナビの項目数（6件＋CTA）が横幅に収まらなくなる幅からバーガーへ切り替える。 */

@media (max-width: 1120px) {
  .c-burger {
    display: flex;
  }
}

/* --- モバイルメニュー --- */

.c-mobile-menu {
  margin: 10px clamp(12px,2vw,26px) 0;
  background: var(--neutral-000);
  border: 1px solid var(--border-hairline);
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(20,16,12,0.14);
  padding: 12px;
  display: flex;
  flex-direction: column;
}

/* JS が hidden 属性で開閉する。[hidden] より後・高詳細度で確実に隠す */
.c-mobile-menu[hidden] {
  display: none;
}

.c-mobile-menu a {
  padding: 14px 16px;
  border-radius: 12px;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body);
  color: var(--ink-900);
}

.c-mobile-menu a.is-active {
  color: var(--brand);
}

.c-mobile-menu__cta {
  padding: 8px 16px 4px;
}

.c-mobile-menu__cta a{
  color: var(--brand);
  padding: 14px 8vw;
}

/* CTA の .c-btn は PC と同じピル形状を維持（.c-mobile-menu a の 12px 上書きを打ち消す） */
.c-mobile-menu__cta .c-btn {
  border-radius: 999px;
}

/* --- Eyebrow ラベル（赤ドット＋欧文） --- */

.c-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-en-ghost);
  font-weight: var(--fw-bold);
  font-size: max(16px, 1.25vw);
  color: var(--brand);
}

.c-eyebrow--light {
  color: #fff;
}

.c-eyebrow--ink {
  color: var(--ink-500);
}

.c-eyebrow--blue {
  color: var(--blue-500);
}

.c-eyebrow--red {
  color: var(--red-500);
}

.c-eyebrow__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.c-eyebrow--light .c-eyebrow__dot {
  box-shadow: 0 0 0 3px rgba(255,255,255,0.28);
}

/* --- ニュースバー --- */

.c-news-bar {
  background: var(--surface-card);
  border-bottom: 1px solid var(--border-hairline);
}

.c-news {
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 66px;
  flex-wrap: wrap;
  padding-top: 14px;
  padding-bottom: 14px;
}

.c-news__link {
  display: flex;
  align-items: center;
  gap: 22px;
  flex: 1;
  min-width: 0;
  color: inherit;
}

.c-news__label {
  font-family: var(--font-en-ghost);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  color: var(--brand);
}

.c-news__date {
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  color: var(--text-muted);
}

.c-news__body {
  font-family: var(--font-jp);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--text-body);
  flex: 1;
  min-width: 0;
}

.c-news__viewall {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  color: var(--brand);
}

.c-news__viewall .arw {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid var(--brand);
  color: var(--brand);
  display: grid;
  place-items: center;
  font-size: var(--fs-sm);
  flex-shrink: 0;
  transition: background .22s var(--ease-out), transform .2s var(--ease-out);
}

.c-news:hover .c-news__viewall .arw {
  transform: translateX(3px);
}

@media (max-width: 720px) {
  .c-news {
    flex-wrap: nowrap;
    column-gap: 14px;
  }

  /* News・日付までを1段目、タイトルを2段目に折り返し左端を揃える */
  .c-news__link {
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 12px;
    row-gap: 4px;
  }

  .c-news__body {
    flex: 0 0 100%;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .c-news__viewall {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .c-eyebrow {
    font-size: max(16px, 3vw);
  }
}

/* --- クロスフェード写真ローテーター --- */

.c-sec-h2 {
  font-size: clamp(32px, 4.6vw, 60px);
}
.c-rotator {
  position: relative;
}

.c-rotator__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.1s var(--ease-out);
}

.c-rotator__img.is-active {
  opacity: 1;
}

/* --- 規格タグ（ピル） --- */

.c-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.c-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  line-height: var(--lh-tight);
  color: var(--brand);
  background: #fff;
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-pill);
  padding: 12px 22px;
}

.c-tag--blue {
  color: var(--accent);
}

/* --- カテゴリーラベル（Primary / Secondary） --- */

.c-catlabel {
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: 50px;
  padding: 6px 24px;
  background: var(--brand);
}

.c-catlabel--blue {
  background: var(--accent);
}

.c-catlabel__en {
  font-family: var(--font-en-ghost);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  color: #fff;
}

.c-catlabel__jp {
  font-family: var(--font-jp);
  font-weight: var(--fw-black);
  font-size: var(--fs-h3);
  color: #fff;
}

/* --- 大きなセクション見出し（各セクションで inline の font-size を指定、SPで統一） --- */

@media (max-width: 600px) {
  .c-sec-h2 {
    font-size: clamp(38px,8.5vw,70px);
  }
}

/* --- 商品カードの「こだわり」バッジ --- */

.c-badge {
  align-self: flex-start;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  color: var(--red-500);
  background: #FDEDEE;
  border-radius: var(--radius-sm);
  padding: 7px 16px;
  line-height: var(--lh-tight);
}

/* --- 見出し先頭の丸ドット --- */

.c-dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--brand);
  margin-right: 14px;
  vertical-align: middle;
}

.c-dot--sm {
  width: 10px;
  height: 10px;
  margin-right: 12px;
}

.c-dot--blue {
  background: var(--accent);
}

/* ==========================================================================
   下層ページ共通コンポーネント
   ========================================================================== */

/* パンくず */

.c-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-family: var(--font-jp);
  font-weight: 600;
  font-size: var(--fs-caption);
  color: var(--text-muted);
}

.c-crumb a {
  color: var(--text-muted);
}

.c-crumb a:hover {
  color: var(--brand);
}

.c-crumb .sep {
  color: var(--border-strong);
}

.c-crumb .cur {
  color: var(--brand);
}

/* セクション見出し */

.c-sechead {
  position: relative;
}

.c-sechead__h2 {
  font-family: var(--font-jp);
  font-weight: var(--fw-black);
  font-size: clamp(28px,4vw,48px);
  line-height: var(--lh-tight);
  color: var(--text-heading);
  margin: 18px 0 0;
}

.c-sechead__lead {
  font-family: var(--font-jp);
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  line-height: var(--lh-body);
  color: var(--text-body);
  margin: 18px 0 0;
  max-width: 64ch;
}

.c-sechead__lead--full {
  max-width: none;
}

@media (max-width: 640px) {
  .c-sechead__h2 {
    font-size: 30px;
  }
}

/* 下部CTA帯（右端フラッシュのカード） */

.c-cta {
  position: relative;
  z-index: 2;
  background: var(--neutral-000);
  padding: clamp(64px,9vw,120px) 0 clamp(56px,7vw,96px);
}

.c-cta__card {
  position: relative;
  overflow: hidden;
  margin-left: clamp(20px,6vw,120px);
  background: var(--accent-hover);
  border-radius: clamp(28px,4vw,48px) 0 0 clamp(28px,4vw,48px);
  padding: clamp(44px,6vw,84px) clamp(30px,5vw,80px);
}

.c-cta--red .c-cta__card {
  background: var(--brand);
}

.c-cta__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-cta__scrim {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--accent-hover) 88%, transparent);
}

.c-cta--red .c-cta__scrim {
  background: color-mix(in srgb, var(--brand) 88%, transparent);
}

.c-cta__ghost {
  position: absolute;
  left: clamp(20px,4vw,60px);
  top: 30%;
  transform: translateY(-50%);
  font-family: var(--font-en-ghost);
  font-weight: var(--fw-bold);
  font-size: 150px;
  line-height: .8;
  color: rgba(255,255,255,0.10);
  white-space: nowrap;
  user-select: none;
}

.c-cta__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr auto;
  gap: clamp(28px,5vw,64px);
  align-items: center;
}

.c-cta__h2 {
  font-family: var(--font-jp);
  font-weight: var(--fw-black);
  font-size: clamp(26px,3.6vw,42px);
  color: #fff;
  margin: 16px 0 20px;
  line-height: var(--lh-heading);
}

.c-cta__text {
  font-family: var(--font-jp);
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  line-height: var(--lh-body);
  color: rgba(255,255,255,0.94);
  margin: 0;
  max-width: 58ch;
}

.c-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: #fff;
  color: var(--accent-hover);
  border-radius: var(--radius-pill);
  padding: 16px 18px 16px 30px;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body);
  white-space: nowrap;
  transition: filter .2s var(--ease-out);
}

.c-cta--red .c-cta__btn {
  color: var(--brand);
}

.c-cta__btn:hover {
  filter: brightness(0.96);
}

.c-cta__btn-ico {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0,0,0,0.06);
  display: grid;
  place-items: center;
  font-size: var(--fs-md);
}

@media (max-width: 760px) {
  .c-cta__grid {
    grid-template-columns: 1fr;
  }
}

/* 番号付きカード（強み・設備など） */

.c-card2 {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.c-card2__img {
  position: relative;
  padding: clamp(18px,2vw,26px) clamp(18px,2vw,26px) 0;
  background: #fff;
}

.c-card2__img > * {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: clamp(12px,1.4vw,18px);
  overflow: hidden;
  background: var(--neutral-300);
  object-fit: cover;
}

.c-card2__body {
  padding: 2vw;
}

.c-card2 p {
  font-family: var(--font-jp);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--text-body);
  margin: 0;
}

/* ソフトピル */

.c-pillrow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.c-pill {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-caption);
  padding: 8px 20px;
  border-radius: 999px;
  line-height: var(--lh-tight);
}

.c-pill--blue-soft {
  background: #E1F0FA;
  color: #0A6FA5;
}

.c-pill--blue {
  background: var(--accent-hover);
  color: #fff;
}

.c-pill--red {
  background: var(--brand);
  color: #fff;
}

/* チェックリスト */

.c-check {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: clamp(28px,4vw,44px);
  list-style: none;
  padding: 0;
}

.c-check li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-family: var(--font-jp);
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  line-height: var(--lh-body);
  color: var(--text-body);
}

.c-check .ico {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--accent-hover);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: var(--fs-sm);
  margin-top: 1px;
}

/* --- 連絡先（電話・メール） --- */

.c-tel-link,
.p-privacy a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

.c-contact-mail {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: #fff;
  color: var(--accent-hover);
  border-radius: var(--radius-pill);
  padding: 13px 13px 13px 26px;
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  justify-content: space-between;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

.c-contact-mail:hover {
  background: var(--accent-hover);
  color: #fff;
}

.c-contact-mail:hover .c-contact-mail__arw {
  background: #fff;
  color: var(--accent-hover);
}

.c-contact-mail__label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}

.c-contact-mail__label svg {
  display: block;
  flex-shrink: 0;
}

.c-contact-mail__arw {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(48,154,192,0.12);
  display: grid;
  place-items: center;
  font-size: var(--fs-sm);
}

@media (min-width: 761px) {
  .c-contact-mail__label {
    flex: 1;
    justify-content: center;
  }
}

@media (max-width: 760px) {
  .c-tel-link,
  .p-privacy a[href^="tel:"] {
    pointer-events: auto;
  }

  .c-contact-mail {
    font-size: var(--fs-caption);
  }

  .c-contact-mail__label {
    gap: 8px;
  }

  .c-contact-mail__arw {
    width: 30px;
    height: 30px;
    font-size: var(--fs-caption);
  }
  .c-card2__body {
    padding: 8vw;
  }
}
