/* ==========================================================
   法人在庫一括買取（/kaitori/）専用スタイル
   色は theme.css の --c-primary（深緑）/ --c-accent（ゴールド）を使う
   ========================================================== */
.page-kaitori {
  --kt-green: #1f3d33;
  --kt-green-deep: #142a22;
  --kt-gold: #c49a52;
  --kt-gold-light: #e2c389;
  --kt-cream: #f6f2ea;
}
.page-kaitori main,
.page-kaitori .kt-section,
.page-kaitori .kt-cta { font-family: "Zen Kaku Gothic New", sans-serif; }

.kt-container { width: 100%; max-width: 120rem; margin: 0 auto; padding: 0 4rem; box-sizing: border-box; }
.kt-section { padding: 12rem 0; }

/* ---------- 共通：見出し・本文・ボタン ---------- */
.kt-eyebrow,
.kt-head__en {
  font-family: "Jura", sans-serif; font-weight: 700;
  font-size: 1.4rem; letter-spacing: .4em; color: var(--kt-gold);
  margin: 0 0 1.2rem;
}
.kt-title {
  font-weight: 900; font-size: 4rem; line-height: 1.4; letter-spacing: .06em;
  color: var(--kt-green); margin: 0;
}
.kt-text { font-size: 1.6rem; line-height: 2; color: #4a4a4a; margin: 2.4rem 0 0; }
.kt-head { text-align: center; margin-bottom: 6.4rem; }
.kt-head .kt-text { margin-top: 1.6rem; }
.kt-head--light .kt-title { color: #fff; }
.kt-head--light .kt-text { color: rgba(255,255,255,.82); }

.kt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem;
  min-height: 6.4rem; padding: 0 4rem; border-radius: 999px;
  font-size: 1.7rem; font-weight: 700; letter-spacing: .08em; text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.kt-btn svg { width: 2rem; height: 2rem; transition: transform .2s ease; }
.kt-btn:hover { transform: translateY(-2px); text-decoration: none; }
.kt-btn:hover svg { transform: translateX(4px); }
.kt-btn--gold { background: linear-gradient(135deg, #d4ac64, #b8893f); color: #fff !important; box-shadow: 0 10px 28px rgba(184,137,63,.38); }
.kt-btn--gold:hover { box-shadow: 0 14px 34px rgba(184,137,63,.5); }
.kt-btn--ghost { border: 1px solid rgba(255,255,255,.7); color: #fff !important; background: rgba(255,255,255,.06); }
.kt-btn--ghost:hover { background: #fff; color: var(--kt-green) !important; }
.kt-btn--large { min-height: 7.6rem; padding: 0 6.4rem; font-size: 1.9rem; }

/* ---------- ヒーロー ---------- */
.kt-hero.page-hero {
  display: flex; align-items: center;
  min-height: 78rem; height: 100vh; max-height: 92rem;
  background-size: cover; background-position: 70% center;
  overflow: hidden;
}
.kt-hero.page-hero::after { display: none; }
.kt-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(16,34,27,.94) 0%, rgba(16,34,27,.82) 34%, rgba(16,34,27,.35) 62%, rgba(16,34,27,.05) 82%),
    linear-gradient(0deg, rgba(16,34,27,.55) 0%, rgba(16,34,27,0) 30%);
}
.kt-hero__inner { position: relative; z-index: 1; width: 100%; max-width: 132rem; margin: 0 auto; padding: 10rem 6rem 6rem; box-sizing: border-box; color: #fff; }
.kt-hero__label {
  display: inline-flex; align-items: center; gap: 1.4rem;
  font-family: "Jura", sans-serif; font-weight: 700; font-size: 1.3rem; letter-spacing: .32em; color: var(--kt-gold-light);
  margin: 0 0 2.8rem;
}
.kt-hero__label span {
  font-family: "Zen Kaku Gothic New", sans-serif; letter-spacing: .14em; font-size: 1.4rem;
  color: var(--kt-green-deep); background: var(--kt-gold-light); padding: .5rem 1.4rem; border-radius: 3px;
}
.kt-hero__title {
  font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 900;
  font-size: clamp(4rem, 6.2vw, 8rem); line-height: 1.32; letter-spacing: .04em;
  margin: 0; color: #fff; text-shadow: 0 4px 30px rgba(0,0,0,.35);
}
.kt-hero__title em {
  font-style: normal; color: var(--kt-gold-light);
  background: linear-gradient(transparent 78%, rgba(196,154,82,.45) 78%);
}
.kt-hero__lead { font-size: 1.8rem; line-height: 1.95; margin: 3.2rem 0 0; color: rgba(255,255,255,.9); letter-spacing: .06em; }
.kt-hero__actions { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 4.4rem; }
.kt-hero__points { display: flex; flex-wrap: wrap; gap: 1.2rem 3.2rem; list-style: none; padding: 3.2rem 0 0; margin: 4.8rem 0 0; border-top: 1px solid rgba(255,255,255,.2); max-width: 72rem; }
.kt-hero__points li { display: flex; align-items: center; gap: 1rem; font-size: 1.5rem; color: rgba(255,255,255,.88); }
.kt-hero__points svg { width: 2.4rem; height: 2.4rem; color: var(--kt-gold-light); flex-shrink: 0; }
.kt-hero__points b { color: #fff; font-weight: 700; margin: 0 .2rem; }

/* ---------- こんな在庫 ---------- */
.kt-worry { background: var(--kt-cream); }
.kt-worry__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 8rem; align-items: center; }
.kt-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.kt-checks li {
  display: flex; align-items: center; gap: 1.6rem;
  background: #fff; border-radius: 10px; padding: 2rem 2.4rem;
  font-size: 1.65rem; font-weight: 700; color: #333; letter-spacing: .04em;
  box-shadow: 0 6px 20px rgba(31,61,51,.06);
}
.kt-checks svg {
  width: 2.8rem; height: 2.8rem; flex-shrink: 0; padding: .5rem; box-sizing: border-box;
  border-radius: 50%; background: var(--kt-green); color: #fff; stroke-width: 3;
}
.kt-banner {
  margin: 8rem 0 0; padding: 3.6rem 4rem; border-radius: 14px; text-align: center;
  background: linear-gradient(120deg, var(--kt-green-deep), #2c5545);
  color: #fff; font-size: 2.2rem; letter-spacing: .08em; line-height: 1.6;
  box-shadow: 0 20px 50px rgba(20,42,34,.25);
}
.kt-banner strong { color: var(--kt-gold-light); font-weight: 900; font-size: 2.8rem; }

/* ---------- 買取品目 ---------- */
.kt-items__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3.2rem; }
.kt-item { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 12px 36px rgba(31,61,51,.1); transition: transform .3s ease, box-shadow .3s ease; }
.kt-item:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(31,61,51,.16); }
.kt-item__photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.kt-item__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.kt-item:hover .kt-item__photo img { transform: scale(1.05); }
.kt-item__photo::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(16,34,27,.75)); }
.kt-item__en {
  position: absolute; left: 2.4rem; bottom: 1.6rem; z-index: 1; margin: 0;
  font-family: "Jura", sans-serif; font-weight: 700; font-size: 2.6rem; letter-spacing: .14em; color: #fff;
}
.kt-item__body { padding: 2.4rem 2.4rem 2.8rem; border-top: 4px solid var(--kt-gold); }
.kt-item__name { font-size: 1.9rem; font-weight: 900; color: var(--kt-green); margin: 0 0 .8rem; letter-spacing: .06em; }
.kt-item__desc { font-size: 1.45rem; line-height: 1.85; color: #555; margin: 0; }
.kt-note { text-align: center; font-size: 1.5rem; color: #555; margin: 4.8rem 0 0; }

/* ---------- 選ばれる理由 ---------- */
.kt-reasons { background: linear-gradient(180deg, #fff 0%, var(--kt-cream) 100%); }
.kt-reason { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7.2rem; align-items: center; }
.kt-reason + .kt-reason { margin-top: 10rem; }
.kt-reason--reverse .kt-reason__photo { order: 2; }
.kt-reason__photo { position: relative; }
.kt-reason__photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 6px; position: relative; z-index: 1; }
.kt-reason__photo::before {
  content: ""; position: absolute; inset: 3.2rem -3.2rem -3.2rem 3.2rem; border-radius: 6px;
  background: var(--kt-green); opacity: .9;
}
.kt-reason--reverse .kt-reason__photo::before { inset: 3.2rem 3.2rem -3.2rem -3.2rem; background: var(--kt-gold); opacity: .55; }
.kt-reason__no {
  font-family: "Jura", sans-serif; font-weight: 700; font-size: 8rem; line-height: 1;
  color: transparent; -webkit-text-stroke: 1.5px var(--kt-gold); margin: 0 0 1.6rem; letter-spacing: .04em;
}
.kt-reason__title { font-size: 3rem; font-weight: 900; line-height: 1.5; color: var(--kt-green); margin: 0; letter-spacing: .05em; }
.kt-tags { display: flex; flex-wrap: wrap; gap: .8rem; list-style: none; padding: 0; margin: 2.4rem 0 0; }
.kt-tags li { font-size: 1.3rem; font-weight: 700; color: var(--kt-green); background: #fff; border: 1px solid #d8d0c0; border-radius: 999px; padding: .6rem 1.6rem; }

/* ---------- ブランドへの配慮 ---------- */
.kt-brand { background: var(--kt-green-deep); position: relative; overflow: hidden; }
.kt-brand::before {
  content: ""; position: absolute; right: -16rem; top: -16rem; width: 56rem; height: 56rem; border-radius: 50%;
  border: 1px solid rgba(196,154,82,.35); pointer-events: none;
}
.kt-brand__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; position: relative; }
.kt-brand__card {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); border-radius: 14px;
  padding: 4rem 3.2rem; color: #fff;
}
.kt-brand__icon { display: inline-flex; align-items: center; justify-content: center; width: 6rem; height: 6rem; border-radius: 50%; background: rgba(196,154,82,.16); color: var(--kt-gold-light); margin-bottom: 2.4rem; }
.kt-brand__icon svg { width: 2.8rem; height: 2.8rem; }
.kt-brand__card h3 { font-size: 2rem; font-weight: 900; margin: 0 0 1.2rem; color: #fff; letter-spacing: .06em; }
.kt-brand__card p { font-size: 1.45rem; line-height: 1.9; margin: 0; color: rgba(255,255,255,.78); }
.kt-brand__note { text-align: center; font-size: 1.3rem; color: rgba(255,255,255,.6); margin: 4rem 0 0; }

/* ---------- 買取の流れ ---------- */
.kt-flow__list { display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; padding: 0; margin: 0; counter-reset: none; }
.kt-flow__list li {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 3.6rem 2.4rem 3.6rem 4rem; color: #fff; min-height: 26rem; box-sizing: border-box;
  clip-path: polygon(0 0, calc(100% - 2.4rem) 0, 100% 50%, calc(100% - 2.4rem) 100%, 0 100%, 2.4rem 50%);
}
.kt-flow__list li:first-child { clip-path: polygon(0 0, calc(100% - 2.4rem) 0, 100% 50%, calc(100% - 2.4rem) 100%, 0 100%); padding-left: 2.4rem; border-radius: 12px 0 0 12px; }
.kt-flow__list li:last-child { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 2.4rem 50%); border-radius: 0 12px 12px 0; }
.kt-flow__list li:nth-child(1) { background: #183229; }
.kt-flow__list li:nth-child(2) { background: #21423a; }
.kt-flow__list li:nth-child(3) { background: #2d5446; }
.kt-flow__list li:nth-child(4) { background: #3b6552; }
.kt-flow__list li:nth-child(5) { background: linear-gradient(135deg, #c9a058, #ad8236); }
.kt-flow__list li + li { margin-left: -1.2rem; }
.kt-flow__no { font-family: "Jura", sans-serif; font-weight: 700; font-size: 1.2rem; letter-spacing: .2em; color: var(--kt-gold-light); }
.kt-flow__list li:nth-child(5) .kt-flow__no { color: #fff; }
.kt-flow__icon { display: inline-flex; align-items: center; justify-content: center; width: 6.4rem; height: 6.4rem; border-radius: 50%; background: #fff; color: var(--kt-green); margin: 1.6rem 0 1.8rem; }
.kt-flow__icon svg { width: 3rem; height: 3rem; }
.kt-flow__list b { font-size: 1.7rem; font-weight: 900; letter-spacing: .04em; line-height: 1.4; }
.kt-flow__list small { display: block; font-size: 1.3rem; line-height: 1.7; margin-top: 1rem; color: rgba(255,255,255,.8); }

/* ---------- FAQ ---------- */
.kt-faq { background: var(--kt-cream); }
.kt-faq__wrap { max-width: 92rem; }
.kt-faq__list { display: grid; gap: 1.2rem; }
.kt-faq__item { background: #fff; border-radius: 10px; box-shadow: 0 4px 16px rgba(31,61,51,.05); overflow: hidden; }
.kt-faq__item summary {
  position: relative; list-style: none; cursor: pointer;
  padding: 2.4rem 6.4rem 2.4rem 7.2rem; font-size: 1.65rem; font-weight: 700; color: var(--kt-green); line-height: 1.6;
}
.kt-faq__item summary::-webkit-details-marker { display: none; }
.kt-faq__item summary::before {
  content: "Q"; position: absolute; left: 2.4rem; top: 50%; transform: translateY(-50%);
  font-family: "Jura", sans-serif; font-weight: 700; font-size: 2.4rem; color: var(--kt-gold);
}
.kt-faq__item summary::after {
  content: ""; position: absolute; right: 2.8rem; top: 50%; width: 1rem; height: 1rem; margin-top: -.7rem;
  border-right: 2px solid var(--kt-green); border-bottom: 2px solid var(--kt-green); transform: rotate(45deg); transition: transform .25s ease;
}
.kt-faq__item[open] summary::after { transform: rotate(225deg); margin-top: -.2rem; }
.kt-faq__item p { margin: 0; padding: 0 3.2rem 2.8rem 7.2rem; font-size: 1.5rem; line-height: 1.95; color: #555; }

/* ---------- 締めのCTA ---------- */
.kt-cta { position: relative; background-size: cover; background-position: center; padding: 14rem 0; text-align: center; color: #fff; }
.kt-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(16,34,27,.93), rgba(31,61,51,.8)); }
.kt-cta__inner { position: relative; }
.kt-cta__title { font-weight: 900; font-size: 5.2rem; letter-spacing: .08em; margin: 0; color: #fff; }
.kt-cta__lead { font-size: 1.8rem; margin: 2rem 0 4.8rem; color: rgba(255,255,255,.88); }
.kt-cta__note { font-size: 1.4rem; color: rgba(255,255,255,.7); margin: 2.4rem 0 0; letter-spacing: .1em; }

/* ---------- タブレット ---------- */
@media (max-width: 1080px) {
  .kt-items__grid, .kt-brand__grid { grid-template-columns: repeat(2, 1fr); }
  .kt-flow__list { grid-template-columns: 1fr; gap: 1rem; max-width: 56rem; margin: 0 auto; }
  .kt-flow__list li, .kt-flow__list li:first-child, .kt-flow__list li:last-child {
    clip-path: none; border-radius: 12px; min-height: 0; margin-left: 0;
    display: grid; grid-template-columns: 6.4rem 1fr; grid-template-rows: auto auto auto; column-gap: 2rem; text-align: left;
    padding: 2.4rem;
  }
  .kt-flow__list li + li { margin-left: 0; }
  .kt-flow__icon { grid-row: 1 / 4; margin: 0; }
  .kt-flow__list small br { display: none; }
}

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
  .kt-container { padding: 0 2rem; }
  .kt-section { padding: 8rem 0; }
  .kt-title { font-size: 2.6rem; }
  .kt-text { font-size: 1.5rem; }
  .kt-head { margin-bottom: 4rem; }

  .kt-hero.page-hero { height: auto; min-height: 0; max-height: none; background-position: 72% center; }
  .kt-hero::before { background: linear-gradient(180deg, rgba(16,34,27,.7) 0%, rgba(16,34,27,.86) 55%, rgba(16,34,27,.95) 100%); }
  .kt-hero__inner { padding: 12rem 2rem 6.4rem; }
  .kt-hero__label { flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
  .kt-hero__title { font-size: 3.6rem; }
  .kt-hero__lead { font-size: 1.5rem; margin-top: 2.4rem; }
  .kt-hero__actions { flex-direction: column; margin-top: 3.2rem; }
  .kt-hero__actions .kt-btn { width: 100%; }
  .kt-hero__points { flex-direction: column; gap: 1.2rem; margin-top: 3.2rem; padding-top: 2.4rem; }

  .kt-worry__grid { grid-template-columns: 1fr; gap: 4rem; }
  .kt-checks li { font-size: 1.5rem; padding: 1.6rem 1.8rem; }
  .kt-banner { margin-top: 4.8rem; padding: 2.8rem 2rem; font-size: 1.6rem; }
  .kt-banner strong { display: block; font-size: 1.9rem; margin-top: .4rem; letter-spacing: .02em; }

  .kt-items__grid, .kt-brand__grid { grid-template-columns: 1fr; gap: 2rem; }
  .kt-item__en { font-size: 2.2rem; }

  .kt-reason, .kt-reason--reverse { grid-template-columns: 1fr; gap: 4.8rem; }
  .kt-reason--reverse .kt-reason__photo { order: 0; }
  .kt-reason + .kt-reason { margin-top: 7.2rem; }
  .kt-reason__photo { margin-right: 1.6rem; }
  .kt-reason__photo::before { inset: 1.6rem -1.6rem -1.6rem 1.6rem; }
  .kt-reason--reverse .kt-reason__photo::before { inset: 1.6rem -1.6rem -1.6rem 1.6rem; }
  .kt-reason__no { font-size: 5.6rem; }
  .kt-reason__title { font-size: 2.3rem; }

  .kt-brand__card { padding: 3.2rem 2.4rem; }

  .kt-faq__item summary { padding: 2rem 5.2rem 2rem 5.6rem; font-size: 1.5rem; }
  .kt-faq__item summary::before { left: 1.8rem; font-size: 2rem; }
  .kt-faq__item p { padding: 0 2rem 2.4rem 5.6rem; font-size: 1.4rem; }

  .kt-cta { padding: 9.6rem 0; }
  .kt-cta__title { font-size: 2.6rem; letter-spacing: .04em; }
  .kt-cta__lead { font-size: 1.5rem; }
  .kt-btn--large { width: 100%; padding: 0 2rem; font-size: 1.7rem; }
}
