/* =========================================================
   Career Pamphlet LP - Base Styles
   ========================================================= */

/* ---- Reset ---- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
ol {
  list-style: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

/* ---- Design Tokens ---- */
:root {
  --color-primary: #1cb98a;      /* green accent */
  --color-primary-dark: #14a074;
  --color-cta: #24c56b;          /* CTA green */
  --color-cta-dark: #1aa957;
  --color-navy: #1f2b52;         /* deep navy */
  --color-blue: #2f6bf6;         /* blue accent */
  --color-blue-light: #eaf1ff;
  --color-text: #222834;
  --color-text-light: #6b7280;
  --color-bg: #ffffff;
  --color-bg-soft: #f4f8fb;
  --color-border: #e2e8f0;

  --font-jp: 'Noto Sans JP', sans-serif;
  --font-en: 'Montserrat', sans-serif;

  --max-width: 1080px;   /* LP design width */
  --radius: 14px;
  --shadow: 0 8px 24px rgba(31, 43, 82, 0.08);
}

/* ---- Base ---- */
html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-jp);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

main {
  max-width: var(--max-width);
  margin: 0 auto;
  overflow: hidden;
  background: var(--color-bg);
}

/* ---- Utility ---- */
.section {
  padding: 48px 20px;
}

.en-label {
  font-family: var(--font-en);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* =========================================================
   Section styles will be appended below as we build them
   ========================================================= */

/* =========================================================
   HEADER (Logo bar)
   ========================================================= */
.site-header {
  background: #ffffff;
  border-bottom: 1px solid #eef1f6;
}

.site-header__inner {
  display: flex;
  align-items: center;
  padding: 16px 40px;
}

.site-logo {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.2;
}

.site-logo__text {
  font-family: var(--font-en);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: 0;
  color: var(--color-navy);
}

.site-logo__text-accent {
  color: var(--color-blue);
}

.site-logo__sub {
  font-family: var(--font-jp);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--color-text-light);
  margin-top: 2px;
}

@media (max-width: 820px) {
  .site-header__inner {
    padding: 10px 20px;
  }
  .site-logo__text {
    font-size: 22px;
  }
  .site-logo__sub {
    font-size: 10px;
    letter-spacing: 0.2em;
  }
}

/* =========================================================
   SECTION: FV (First View / Hero)
   ========================================================= */
.fv {
  position: relative;
  background-color: #eef5fb;
  background-image: url("assets/fv_grid_background.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 56px 40px 64px;
}

.fv__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.fv__content {
  flex: 1 1 auto;
  min-width: 0;
}

/* ---- Label ---- */
.fv__label {
  color: var(--color-blue);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 18px;
}

/* ---- Title ---- */
.fv__title {
  font-size: 52px;
  font-weight: 900;
  line-height: 1.28;
  letter-spacing: 0.01em;
  color: var(--color-text);
  margin-bottom: 24px;
}

.fv__title-accent {
  color: var(--color-blue);
}

/* ---- Lead ---- */
.fv__lead {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.7;
  color: #3a4150;
  margin-bottom: 28px;
}

.fv__lead-accent {
  color: var(--color-blue);
  font-weight: 700;
}

/* ---- Check list ---- */
.fv__checks {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-bottom: 28px;
}

.fv__checks li {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 18px;
  font-weight: 700;
  white-space: nowrap;
  color: var(--color-text);
}

.fv__check-icon {
  width: 20px;
  height: auto;
  flex-shrink: 0;
}

/* ---- CTA ---- */
.fv__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
  max-width: 620px;
  padding: 24px 28px;
  background: var(--color-cta);
  color: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgba(36, 197, 107, 0.35);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.fv__cta:hover {
  background: var(--color-cta-dark);
  transform: translateY(-2px);
  box-shadow: 0 14px 26px rgba(36, 197, 107, 0.42);
}

.fv__cta-text {
  font-size: 26px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.fv__cta-arrow {
  font-size: 26px;
  font-weight: 700;
}

/* ---- Note ---- */
.fv__note {
  font-size: 15px;
  font-weight: 700;
  color: #5a6270;
  text-align: center;
  max-width: 620px;
  margin: 14px 0 30px;
}

/* ---- Stat cards ---- */
.fv__stats {
  display: flex;
  gap: 16px;
  max-width: 620px;
}

.fv__stat {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid #e6edf5;
  border-radius: 14px;
  padding: 16px 14px;
  box-shadow: var(--shadow);
}

.fv__stat-icon {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}

.fv__stat-body {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.fv__stat-label {
  font-size: 14px;
  font-weight: 700;
  color: #5a6270;
}

.fv__stat-value {
  font-size: 21px;
  font-weight: 900;
  white-space: nowrap;
  color: var(--color-navy);
}

/* ---- Visual (phone) ---- */
.fv__visual {
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
}

.fv__phone {
  width: 320px;
  max-width: 40vw;
  height: auto;
  filter: drop-shadow(0 18px 30px rgba(31, 43, 82, 0.18));
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .fv {
    padding: 40px 20px 48px;
  }
  .fv__inner {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 28px;
  }
  .fv__visual {
    justify-content: center;
  }
  .fv__phone {
    width: 240px;
    max-width: 60%;
  }
  .fv__label {
    font-size: 15px;
    text-align: center;
  }
  .fv__title {
    font-size: 34px;
    text-align: center;
  }
  .fv__lead {
    font-size: 16px;
    text-align: center;
  }
  .fv__checks {
    justify-content: center;
    gap: 10px 16px;
  }
  .fv__checks li {
    font-size: 15px;
  }
  .fv__cta {
    margin: 0 auto;
    padding: 18px 20px;
  }
  .fv__cta-text {
    font-size: 19px;
  }
  .fv__note {
    margin-left: auto;
    margin-right: auto;
    font-size: 12px;
  }
  .fv__stats {
    margin: 0 auto;
    gap: 10px;
  }
  .fv__stat {
    flex-direction: column;
    text-align: center;
    gap: 6px;
    padding: 12px 8px;
  }
  .fv__stat-value {
    font-size: 17px;
  }
}

/* =========================================================
   SECTION: CONCERNS (こんな悩みありませんか？)
   ========================================================= */
.concerns {
  background-color: #eef4fb;
  background-image: url("assets/concerns_bg.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 60px 40px 72px;
}

.concerns__inner {
  text-align: center;
}

.concerns__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.14em;
  margin-bottom: 10px;
}

.concerns__title {
  font-size: 42px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.02em;
  margin-bottom: 40px;
}

/* ---- Grid of cards ---- */
.concerns__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.concern-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  background: #ffffff;
  border-radius: 16px;
  padding: 30px 24px;
  box-shadow: 0 10px 26px rgba(31, 43, 82, 0.07);
  text-align: left;
}

.concern-card__num {
  position: absolute;
  top: 14px;
  right: 18px;
  font-family: var(--font-en);
  font-size: 24px;
  font-weight: 800;
  color: var(--color-blue);
  line-height: 1;
}

.concern-card__icon {
  width: 58px;
  height: 58px;
  flex-shrink: 0;
}

.concern-card__text {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-blue);
  padding-right: 30px;
}

/* ---- Scroll arrow ---- */
.concerns__arrow {
  display: flex;
  justify-content: center;
  margin: 30px 0 24px;
}

.concerns__arrow img {
  width: 46px;
  height: auto;
  animation: concernsBounce 1.6s ease-in-out infinite;
}

@keyframes concernsBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(8px); }
}

/* ---- Solution banner ---- */
.concerns__solution {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: #ffffff;
  border-radius: 18px;
  padding: 26px 32px;
  box-shadow: 0 14px 30px rgba(31, 43, 82, 0.10);
}

.concerns__solution-check {
  width: 46px;
  height: auto;
  flex-shrink: 0;
}

.concerns__solution-text {
  font-size: 28px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
}

.concerns__solution-accent {
  color: var(--color-blue);
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .concerns {
    padding: 44px 20px 52px;
  }
  .concerns__label {
    font-size: 14px;
  }
  .concerns__title {
    font-size: 27px;
    margin-bottom: 26px;
  }
  .concerns__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .concern-card {
    padding: 20px 20px;
    gap: 14px;
  }
  .concern-card__num {
    top: 12px;
    right: 16px;
    font-size: 20px;
  }
  .concern-card__icon {
    width: 52px;
    height: 52px;
  }
  .concern-card__text {
    font-size: 16px;
  }
  .concerns__arrow img {
    width: 38px;
  }
  .concerns__solution {
    gap: 12px;
    padding: 18px 18px;
    border-radius: 14px;
  }
  .concerns__solution-check {
    width: 34px;
  }
  .concerns__solution-text {
    font-size: 17px;
    text-align: left;
  }
}

/* =========================================================
   SECTION: WHY CHOOSE US (選ばれる4つの理由)
   ========================================================= */
.why {
  background: #ffffff;
  padding: 62px 40px 56px;
}

.why__inner {
  text-align: center;
}

.why__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.16em;
  margin-bottom: 16px;
}

.why__pill {
  display: inline-block;
  background: var(--color-blue-light);
  color: var(--color-blue);
  font-size: 22px;
  font-weight: 800;
  padding: 10px 30px;
  border-radius: 999px;
  margin-bottom: 26px;
}

/* ---- Headline with people ---- */
.why__headline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 22px;
}

.why__person {
  flex-shrink: 0;
  height: auto;
}

.why__person--left {
  width: 128px;
}

.why__person--right {
  width: 150px;
}

.why__title {
  font-size: 44px;
  font-weight: 900;
  line-height: 1.3;
  color: var(--color-text);
  letter-spacing: 0.01em;
}

.why__title-big {
  display: inline-block;
  font-size: 64px;
  color: var(--color-blue);
  line-height: 1.2;
}

.why__sub {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 36px;
}

/* ---- Cards ---- */
.why__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.why-card {
  position: relative;
  background: #fbfcfe;
  border: 1px solid #e6ecf5;
  border-top: 3px solid var(--color-blue);
  border-radius: 14px;
  padding: 34px 14px 26px;
  text-align: center;
}

.why-card__num {
  position: absolute;
  top: -16px;
  left: -6px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-blue);
  color: #fff;
  border-radius: 50%;
  font-family: var(--font-en);
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 4px 10px rgba(47, 107, 246, 0.35);
}

.why-card__icon-wrap {
  width: 120px;
  height: 120px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: #eef3fc;
  display: flex;
  align-items: center;
  justify-content: center;
}

.why-card__icon {
  width: 62px;
  height: auto;
}

.why-card__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 16px;
  font-weight: 800;
  white-space: nowrap;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin-bottom: 12px;
}

.why-card__check {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.why-card__desc {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.65;
  color: #5a6270;
}

/* ---- Bottom banner ---- */
.why__banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 46px;
  padding: 22px 24px;
  border-top: 3px solid var(--color-blue);
  border-bottom: 3px solid var(--color-blue);
}

.why__banner-icon {
  width: 52px;
  height: auto;
  flex-shrink: 0;
}

.why__banner-text {
  font-size: 30px;
  font-weight: 900;
  color: var(--color-blue);
  letter-spacing: 0.01em;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .why {
    padding: 44px 20px 40px;
  }
  .why__label {
    font-size: 14px;
  }
  .why__pill {
    font-size: 16px;
    padding: 8px 20px;
    margin-bottom: 18px;
  }
  .why__headline {
    gap: 4px;
    margin-bottom: 16px;
  }
  .why__person--left {
    width: 62px;
  }
  .why__person--right {
    width: 72px;
  }
  .why__title {
    font-size: 22px;
  }
  .why__title-big {
    font-size: 34px;
  }
  .why__sub {
    font-size: 15px;
    margin-bottom: 30px;
  }
  .why__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 26px 14px;
  }
  .why-card {
    padding: 26px 14px 20px;
  }
  .why-card__num {
    width: 34px;
    height: 34px;
    font-size: 14px;
    top: -14px;
    left: -4px;
  }
  .why-card__icon-wrap {
    width: 88px;
    height: 88px;
    margin-bottom: 14px;
  }
  .why-card__icon {
    width: 46px;
  }
  .why-card__title {
    font-size: 15px;
  }
  .why-card__check {
    width: 16px;
    height: 16px;
  }
  .why-card__desc {
    font-size: 12.5px;
  }
  .why__banner {
    gap: 10px;
    padding: 16px 14px;
    margin-top: 34px;
  }
  .why__banner-icon {
    width: 34px;
  }
  .why__banner-text {
    font-size: 16px;
    text-align: left;
  }
}

/* =========================================================
   SECTION: ABOUT PRIVATE JOBS (非公開求人には理由があります)
   ========================================================= */
.private {
  background-color: #eef5fb;
  background-image: url("assets/private_bg.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 58px 40px 56px;
}

/* ---- Head (text + illustration) ---- */
.private__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 40px;
}

.private__head-text {
  flex: 1 1 auto;
  min-width: 0;
}

.private__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.14em;
  margin-bottom: 14px;
}

.private__title {
  font-size: 46px;
  font-weight: 900;
  line-height: 1.3;
  color: var(--color-text);
  letter-spacing: 0.01em;
  margin-bottom: 22px;
}

.private__title-accent {
  color: var(--color-blue);
}

.private__lead {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  color: #3a4150;
}

.private__illust {
  flex: 0 0 auto;
  width: 300px;
  max-width: 34%;
  height: auto;
}

/* ---- Grid of tiles ---- */
.private__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 36px;
}

.private-tile {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #ffffff;
  border: 1px solid #e3ebf4;
  border-radius: 14px;
  padding: 20px 26px;
  box-shadow: 0 8px 20px rgba(31, 43, 82, 0.06);
}

.private-tile__icon {
  width: 54px;
  height: 54px;
  flex-shrink: 0;
}

.private-tile__label {
  font-size: 22px;
  font-weight: 800;
  color: var(--color-text);
}

/* ---- Bottom banner ---- */
.private__banner {
  display: flex;
  align-items: center;
  gap: 18px;
  background: #ffffff;
  border-radius: 16px;
  padding: 22px 30px;
  box-shadow: 0 12px 28px rgba(31, 43, 82, 0.10);
}

.private__banner-lock {
  width: 52px;
  height: auto;
  flex-shrink: 0;
}

.private__banner-text {
  flex: 1 1 auto;
  font-size: 30px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
}

.private__banner-accent {
  color: var(--color-blue);
}

.private__banner-scroll {
  width: 46px;
  height: auto;
  flex-shrink: 0;
  animation: concernsBounce 1.6s ease-in-out infinite;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .private {
    padding: 44px 20px 44px;
  }
  .private__head {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 18px;
    margin-bottom: 30px;
  }
  .private__label {
    font-size: 14px;
  }
  .private__title {
    font-size: 27px;
  }
  .private__lead {
    font-size: 14px;
  }
  .private__lead br {
    display: none;
  }
  .private__illust {
    width: 200px;
    max-width: 60%;
    order: -1;
  }
  .private__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 26px;
  }
  .private-tile {
    gap: 10px;
    padding: 14px 14px;
  }
  .private-tile__icon {
    width: 40px;
    height: 40px;
  }
  .private-tile__label {
    font-size: 16px;
  }
  .private__banner {
    gap: 12px;
    padding: 16px 16px;
    border-radius: 14px;
  }
  .private__banner-lock {
    width: 36px;
  }
  .private__banner-text {
    font-size: 16px;
  }
  .private__banner-scroll {
    width: 34px;
  }
}

/* =========================================================
   SECTION: JOB SEARCH (好条件の求人が見つかる)
   ========================================================= */
.jobs {
  background: #ffffff;
  padding: 60px 40px 56px;
}

.jobs__inner {
  text-align: center;
}

.jobs__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.16em;
  margin-bottom: 14px;
}

.jobs__title {
  font-size: 48px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
  margin-bottom: 14px;
}

.jobs__title-accent {
  color: var(--color-blue);
}

.jobs__sub {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 34px;
}

/* ---- Panel ---- */
.jobs__panel {
  background: #f5f8fc;
  border: 1px solid #e7eef6;
  border-radius: 20px;
  padding: 34px 34px 40px;
  text-align: left;
}

/* ---- Search bar ---- */
.jobs__search {
  display: flex;
  align-items: stretch;
  gap: 14px;
  margin-bottom: 30px;
}

.search-field {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  padding: 0 14px;
  min-height: 58px;
}

.search-field__icon {
  width: 22px;
  height: 22px;
  color: #9aa6b6;
  flex-shrink: 0;
  margin-right: 10px;
}

.search-field__input {
  width: 100%;
  border: none;
  background: transparent;
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 500;
  color: var(--color-text);
  outline: none;
}

.search-field__input::placeholder {
  color: #9aa6b6;
}

.search-field__select {
  appearance: none;
  cursor: pointer;
  color: #9aa6b6;
  padding-right: 18px;
}

.search-field__select:valid,
.search-field__select.is-selected {
  color: var(--color-text);
}

.search-field__select option {
  color: var(--color-text);
}

.search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 0 30px;
  min-height: 58px;
  background: var(--color-blue);
  color: #fff;
  border-radius: 12px;
  font-size: 18px;
  font-weight: 800;
  white-space: nowrap;
  transition: background 0.18s ease, transform 0.18s ease;
}

.search-btn:hover {
  background: #1f5be0;
  transform: translateY(-1px);
}

.search-btn__icon {
  width: 20px;
  height: 20px;
}

/* ---- Bar (count + sort) ---- */
.jobs__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.jobs__count {
  font-size: 22px;
  font-weight: 900;
  color: var(--color-text);
}

.jobs__count strong {
  color: var(--color-blue);
  font-size: 24px;
  margin: 0 2px;
}

.jobs__sort {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  padding: 8px 14px;
}

.jobs__sort-icon {
  width: 18px;
  height: 18px;
  color: var(--color-text-light);
}

.jobs__sort-select {
  appearance: none;
  border: none;
  background: transparent;
  font-family: var(--font-jp);
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  cursor: pointer;
  outline: none;
  padding-right: 4px;
}

/* ---- Job list ---- */
.jobs__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.job-card {
  background: #ffffff;
  border: 1px solid #e4ebf4;
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 6px 16px rgba(31, 43, 82, 0.05);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.job-card:hover {
  box-shadow: 0 12px 26px rgba(31, 43, 82, 0.12);
  transform: translateY(-2px);
}

.job-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.job-card__badge {
  font-size: 12px;
  font-weight: 700;
  color: #1f9d6b;
  background: #e4f6ec;
  padding: 4px 10px;
  border-radius: 6px;
  white-space: nowrap;
}

.job-card__meta {
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
}

.job-card__fav {
  margin-left: auto;
  color: #c3ccd8;
  display: inline-flex;
  transition: color 0.18s ease, transform 0.18s ease;
}

.job-card__fav svg {
  width: 24px;
  height: 24px;
}

.job-card__fav:hover {
  color: #ff7a90;
  transform: scale(1.1);
}

.job-card__fav.is-active {
  color: #ff5a76;
}

.job-card__fav.is-active svg {
  fill: currentColor;
}

.job-card__title {
  font-size: 22px;
  font-weight: 800;
  color: var(--color-text);
  margin-bottom: 10px;
}

.job-card__salary {
  font-size: 15px;
  font-weight: 500;
  color: #6b7280;
  margin-bottom: 16px;
}

.job-card__salary strong {
  font-size: 20px;
  font-weight: 900;
  color: var(--color-blue);
  margin-left: 4px;
}

.job-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.job-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.job-card__tag {
  font-size: 11.5px;
  font-weight: 600;
  color: #3f5b8a;
  background: #eef3fc;
  border: 1px solid #dde7f7;
  padding: 4px 9px;
  border-radius: 6px;
  white-space: nowrap;
}

.job-card__detail {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-blue);
  background: #ffffff;
  border: 1px solid var(--color-blue);
  border-radius: 8px;
  padding: 8px 16px;
  transition: background 0.18s ease, color 0.18s ease;
}

.job-card__detail:hover {
  background: var(--color-blue);
  color: #fff;
}

.jobs__empty {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text-light);
  padding: 40px 0;
}

.jobs__note {
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: #9aa6b6;
  margin-top: 22px;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .jobs {
    padding: 44px 20px 40px;
  }
  .jobs__label {
    font-size: 14px;
  }
  .jobs__title {
    font-size: 26px;
  }
  .jobs__sub {
    font-size: 15px;
    margin-bottom: 26px;
  }
  .jobs__panel {
    padding: 20px 16px 26px;
    border-radius: 16px;
  }
  .jobs__search {
    flex-direction: column;
    gap: 10px;
    margin-bottom: 22px;
  }
  .search-field {
    min-height: 52px;
  }
  .search-btn {
    min-height: 52px;
    padding: 0 20px;
  }
  .jobs__bar {
    margin-bottom: 16px;
  }
  .jobs__count {
    font-size: 17px;
  }
  .jobs__count strong {
    font-size: 19px;
  }
  .jobs__sort {
    padding: 6px 10px;
  }
  .jobs__sort-select {
    font-size: 13px;
  }
  .jobs__list {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .job-card {
    padding: 18px 18px;
  }
  .job-card__title {
    font-size: 19px;
  }
  .job-card__salary strong {
    font-size: 18px;
  }
  .job-card__foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .job-card__detail {
    align-self: stretch;
    text-align: center;
  }
}

/* =========================================================
   SECTION: AI RESUME SCORE (AIが職務経歴書を分析)
   ========================================================= */
.airesume {
  background-color: #eaf1fb;
  background-image: url("assets/ai_bg.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 60px 40px 62px;
}

.airesume__inner {
  text-align: center;
}

.airesume__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  margin-bottom: 18px;
}

.airesume__title {
  font-size: 46px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
  line-height: 1.3;
  margin-bottom: 22px;
}

.airesume__title-accent {
  color: var(--color-blue);
}

.airesume__sub {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.8;
  color: #3a4150;
  margin-bottom: 40px;
}

/* ---- Body (card + improvements) ---- */
.airesume__body {
  display: flex;
  align-items: stretch;
  gap: 26px;
  text-align: left;
}

.airesume__card {
  flex: 1 1 55%;
  background: #ffffff;
  border-radius: 18px;
  padding: 10px;
  box-shadow: 0 16px 36px rgba(31, 43, 82, 0.12);
}

.airesume__card img {
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.airesume__improve {
  flex: 1 1 45%;
  display: flex;
  flex-direction: column;
}

.airesume__improve-title {
  font-size: 26px;
  font-weight: 900;
  color: var(--color-text);
  margin-bottom: 18px;
}

.airesume__improve-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 auto;
}

.improve-item {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #ffffff;
  border: 1px solid #e2ebf6;
  border-radius: 14px;
  padding: 20px 24px;
  font-size: 22px;
  font-weight: 800;
  color: var(--color-text);
  box-shadow: 0 8px 20px rgba(31, 43, 82, 0.06);
}

.improve-item__check {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}

.airesume__note {
  font-size: 14px;
  font-weight: 500;
  color: #7a8494;
  margin-top: 18px;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .airesume {
    padding: 44px 20px 46px;
  }
  .airesume__label {
    font-size: 14px;
  }
  .airesume__title {
    font-size: 25px;
  }
  .airesume__sub {
    font-size: 14.5px;
    margin-bottom: 30px;
  }
  .airesume__sub br {
    display: none;
  }
  .airesume__body {
    flex-direction: column;
    gap: 22px;
  }
  .airesume__improve-title {
    font-size: 21px;
    text-align: center;
  }
  .improve-item {
    padding: 16px 18px;
    font-size: 17px;
    gap: 12px;
  }
  .improve-item__check {
    width: 28px;
    height: 28px;
  }
  .airesume__note {
    text-align: center;
    font-size: 12.5px;
  }
}

/* =========================================================
   SECTION: SMART DOCUMENT (スマホだけで簡単作成)
   ========================================================= */
.smart {
  background: #ffffff;
  padding: 60px 40px 62px;
}

.smart__inner {
  text-align: center;
}

.smart__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  margin-bottom: 16px;
}

.smart__title {
  font-size: 46px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
  margin-bottom: 20px;
}

.smart__title-accent {
  color: var(--color-blue);
}

.smart__sub {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.8;
  color: #3a4150;
  margin-bottom: 40px;
}

/* ---- Panel ---- */
.smart__panel {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #ffffff;
  border: 1px solid #e7eef6;
  border-radius: 22px;
  padding: 36px 34px;
  box-shadow: 0 16px 40px rgba(31, 43, 82, 0.08);
}

.smart__visual {
  flex: 1 1 44%;
  min-width: 0;
}

.smart__visual img {
  width: 100%;
  height: auto;
}

.smart__right {
  flex: 1 1 56%;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* ---- Flow (入力 → 完成 → PDF) ---- */
.smart__flow {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
}

.flow-step {
  position: relative;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.flow-step__tag {
  display: inline-block;
  background: var(--color-blue);
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  padding: 8px 0;
  width: 100%;
  border-radius: 12px;
  margin-bottom: 12px;
}

.flow-step__box {
  width: 100%;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f7fd;
  border: 1px solid #dfe9f7;
  border-radius: 14px;
  padding: 22px 10px;
}

.flow-step__box img {
  width: auto;
  height: 78px;
  max-width: 90%;
}

.flow-arrow {
  align-self: center;
  color: var(--color-blue);
  font-size: 28px;
  font-weight: 900;
  flex: 0 0 auto;
  margin-top: 34px;
}

/* ---- Save box ---- */
.smart__save {
  display: flex;
  align-items: center;
  gap: 24px;
  background: #f3f7fd;
  border: 1px solid #dfe9f7;
  border-radius: 16px;
  padding: 22px 28px;
}

.smart__save-docs {
  display: flex;
  gap: 26px;
  flex-shrink: 0;
}

.smart__save-doc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.smart__save-doc img {
  height: 50px;
  width: auto;
}

.smart__save-doc span {
  font-size: 16px;
  font-weight: 800;
  color: var(--color-blue);
}

.smart__save-text {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.6;
  color: var(--color-text);
  text-align: left;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .smart {
    padding: 44px 20px 46px;
  }
  .smart__label {
    font-size: 14px;
  }
  .smart__title {
    font-size: 24px;
  }
  .smart__sub {
    font-size: 14.5px;
    margin-bottom: 30px;
  }
  .smart__sub br {
    display: none;
  }
  .smart__panel {
    flex-direction: column;
    gap: 26px;
    padding: 22px 18px;
    border-radius: 18px;
  }
  .smart__visual {
    max-width: 340px;
    margin: 0 auto;
  }
  .flow-step__tag {
    font-size: 15px;
  }
  .flow-step__box {
    padding: 16px 6px;
  }
  .flow-step__box img {
    height: 56px;
  }
  .flow-arrow {
    font-size: 20px;
    margin-top: 26px;
  }
  .smart__save {
    flex-direction: column;
    gap: 16px;
    padding: 18px 18px;
    text-align: center;
  }
  .smart__save-text {
    font-size: 16px;
    text-align: center;
  }
  .smart__save-text br {
    display: none;
  }
  .smart__save-doc img {
    height: 42px;
  }
}

/* =========================================================
   SECTION: USER REVIEWS (利用者の声)
   ========================================================= */
.reviews {
  background-color: #f2f7fd;
  background-image: url("assets/reviews_bg.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 58px 40px 62px;
}

.reviews__inner {
  text-align: center;
}

.reviews__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  margin-bottom: 12px;
}

.reviews__title {
  font-size: 44px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
  margin-bottom: 6px;
}

.reviews__title-accent {
  color: var(--color-blue);
}

.reviews__people {
  max-width: 460px;
  margin: 10px auto 34px;
}

/* ---- Shared review parts ---- */
.review-stars {
  color: #f6a723;
  font-size: 22px;
  letter-spacing: 2px;
}

.review-quote {
  font-family: var(--font-en);
  font-size: 46px;
  font-weight: 800;
  line-height: 0.6;
  color: #c3d6f2;
  align-self: flex-start;
}

.review-user {
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}

.review-avatar {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e6eefb;
  color: var(--color-blue);
  font-size: 15px;
  font-weight: 800;
}

.review-avatar--person {
  background: #dbe8fb;
}

.review-avatar--person svg {
  width: 30px;
  height: 30px;
  color: #3f6bd6;
}

.review-user__meta {
  display: flex;
  flex-direction: column;
  line-height: 1.35;
}

.review-user__name {
  font-size: 15px;
  font-weight: 800;
  color: var(--color-text);
}

.review-user__verified {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 600;
  color: #22a35b;
}

.review-user__verified svg {
  width: 15px;
  height: 15px;
}

/* ---- Featured review ---- */
.review-featured {
  display: flex;
  align-items: stretch;
  gap: 22px;
  background: #ffffff;
  border: 1px solid #dfeaf7;
  border-radius: 18px;
  padding: 30px 34px 30px 24px;
  box-shadow: 0 16px 36px rgba(31, 43, 82, 0.10);
  text-align: left;
  margin-bottom: 22px;
}

.review-featured__ribbon {
  flex: 0 0 auto;
  width: 104px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px 6px 30px;
  background: var(--color-blue);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.01em;
  text-align: center;
  border-radius: 6px 6px 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 86%, 0 100%);
  align-self: flex-start;
}

.review-featured__crown {
  width: 26px;
  height: 26px;
}

.review-featured__body {
  flex: 1 1 auto;
}

.review-featured__top {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
}

.review-featured__top .review-stars {
  font-size: 28px;
}

.review-featured__text {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.6;
  color: var(--color-text);
  padding-bottom: 20px;
  margin-bottom: 18px;
  border-bottom: 2px dotted #cfdcee;
}

.review-featured .review-avatar {
  width: 54px;
  height: 54px;
}

.review-featured .review-avatar--person svg {
  width: 34px;
  height: 34px;
}

.review-featured .review-user__name {
  font-size: 17px;
}

/* ---- Review grid ---- */
.review-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.review-card {
  background: #ffffff;
  border: 1px solid #e3ecf7;
  border-radius: 14px;
  padding: 24px 26px;
  box-shadow: 0 8px 20px rgba(31, 43, 82, 0.05);
  text-align: left;
}

.review-card--wide {
  grid-column: 1 / -1;
}

.review-card__top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.review-card__text {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
  color: #384150;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px dotted #d3deed;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .reviews {
    padding: 44px 18px 48px;
  }
  .reviews__label {
    font-size: 14px;
  }
  .reviews__title {
    font-size: 24px;
  }
  .reviews__people {
    max-width: 300px;
    margin: 8px auto 26px;
  }
  .review-featured {
    flex-direction: column;
    gap: 16px;
    padding: 22px 20px;
  }
  .review-featured__ribbon {
    flex-direction: row;
    width: auto;
    align-self: flex-start;
    padding: 10px 18px;
    gap: 10px;
    line-height: 1.3;
    clip-path: none;
    border-radius: 8px;
  }
  .review-featured__ribbon br {
    display: none;
  }
  .review-featured__ribbon span {
    text-align: left;
  }
  .review-featured__top .review-stars {
    font-size: 22px;
  }
  .review-featured__text {
    font-size: 17px;
  }
  .review-featured__text br {
    display: none;
  }
  .review-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .review-card {
    padding: 20px 20px;
  }
  .review-card__text {
    font-size: 15px;
  }
  .review-stars {
    font-size: 18px;
  }
}

/* =========================================================
   SECTION: INDUSTRIES (幅広い業界から求人が見つかる)
   ========================================================= */
.industries {
  background: #ffffff;
  padding: 60px 40px 60px;
}

.industries__inner {
  text-align: center;
}

.industries__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  margin-bottom: 16px;
}

.industries__title {
  font-size: 44px;
  font-weight: 900;
  color: var(--color-text);
  line-height: 1.35;
  letter-spacing: 0.01em;
  margin-bottom: 16px;
}

.industries__title-accent {
  color: var(--color-blue);
}

.industries__sub {
  font-size: 19px;
  font-weight: 500;
  color: #3a4150;
  margin-bottom: 40px;
}

/* ---- Grid ---- */
.industries__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.industry-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  background: #fbfcff;
  border: 1px solid #dbe6f6;
  border-radius: 14px;
  padding: 26px 10px 22px;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.industry-card:hover {
  border-color: var(--color-blue);
  box-shadow: 0 12px 26px rgba(47, 107, 246, 0.14);
  transform: translateY(-3px);
}

.industry-card__icon {
  width: 96px;
  height: 96px;
}

.industry-card__label {
  font-size: 22px;
  font-weight: 800;
  color: var(--color-text);
}

/* ---- Note ---- */
.industries__note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 34px;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text);
}

.industries__note-check {
  width: 30px;
  height: 30px;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .industries {
    padding: 44px 20px 46px;
  }
  .industries__label {
    font-size: 14px;
  }
  .industries__title {
    font-size: 24px;
  }
  .industries__sub {
    font-size: 14.5px;
    margin-bottom: 30px;
  }
  .industries__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  .industry-card {
    padding: 18px 6px 16px;
    gap: 10px;
  }
  .industry-card__icon {
    width: 64px;
    height: 64px;
  }
  .industry-card__label {
    font-size: 15px;
  }
  .industries__note {
    font-size: 14px;
    margin-top: 26px;
  }
  .industries__note-check {
    width: 22px;
    height: 22px;
  }
}

@media (max-width: 420px) {
  .industries__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =========================================================
   SECTION: HOW TO USE (かんたん3ステップ)
   ========================================================= */
.howto {
  background: #eef4fb;
  padding: 56px 40px 60px;
}

.howto__inner {
  text-align: center;
}

.howto__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  margin-bottom: 16px;
}

.howto__title {
  font-size: 48px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.01em;
  margin-bottom: 16px;
}

.howto__title-accent {
  color: var(--color-blue);
}

.howto__title-num {
  font-family: var(--font-en);
  font-size: 58px;
  font-weight: 800;
  margin: 0 4px;
}

.howto__sub {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 40px;
}

.howto__steps {
  max-width: 1000px;
  margin: 0 auto;
}

.howto__steps img {
  width: 100%;
  height: auto;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .howto {
    padding: 44px 20px 46px;
  }
  .howto__label {
    font-size: 14px;
  }
  .howto__title {
    font-size: 25px;
  }
  .howto__title-num {
    font-size: 32px;
  }
  .howto__sub {
    font-size: 15px;
    margin-bottom: 28px;
  }
}

/* =========================================================
   SECTION: FAQ (よくある質問)
   ========================================================= */
.faq {
  background-color: #f4f8fc;
  background-image: url("assets/faq_bg.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding: 58px 40px 62px;
}

.faq__inner {
  text-align: center;
}

.faq__label {
  color: var(--color-blue);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.2em;
  margin-bottom: 10px;
}

.faq__title {
  font-size: 40px;
  font-weight: 900;
  color: var(--color-text);
  letter-spacing: 0.02em;
  margin-bottom: 10px;
}

.faq__sub {
  font-size: 17px;
  font-weight: 500;
  color: #5a6270;
  margin-bottom: 38px;
}

/* ---- List ---- */
.faq__list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
  text-align: left;
}

.faq-item {
  background: #ffffff;
  border: 1px solid #e2ebf6;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(31, 43, 82, 0.05);
  overflow: hidden;
}

.faq-item.is-open {
  border-color: #cfe0fb;
  box-shadow: 0 12px 26px rgba(47, 107, 246, 0.10);
}

/* ---- Question (button) ---- */
.faq-q {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 22px 26px;
  text-align: left;
}

.faq-q__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.faq-q__text {
  flex: 1 1 auto;
  font-size: 21px;
  font-weight: 800;
  color: var(--color-text);
}

/* toggle (+ / chevron) */
.faq-toggle {
  position: relative;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

.faq-toggle::before,
.faq-toggle::after {
  content: "";
  position: absolute;
  background: var(--color-blue);
  border-radius: 2px;
  transition: transform 0.28s ease, opacity 0.28s ease;
}

/* horizontal bar of the + */
.faq-toggle::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  transform: translateY(-50%);
}

/* vertical bar of the + */
.faq-toggle::after {
  left: 50%;
  top: 0;
  width: 3px;
  height: 100%;
  transform: translateX(-50%);
}

/* when open: rotate to form a chevron-like state (vertical bar hides -> minus) */
.faq-item.is-open .faq-toggle::after {
  transform: translateX(-50%) scaleY(0);
  opacity: 0;
}

/* ---- Answer ---- */
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.32s ease;
}

.faq-a__body {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0 26px 24px;
  padding: 20px 22px;
  background: #f5f8fd;
  border-radius: 12px;
}

.faq-a__icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}

.faq-a__text {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.75;
  color: #3a4150;
  padding-top: 2px;
}

.faq__foot {
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  color: #5a6270;
  margin-top: 30px;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .faq {
    padding: 44px 18px 48px;
  }
  .faq__label {
    font-size: 14px;
  }
  .faq__title {
    font-size: 27px;
  }
  .faq__sub {
    font-size: 13.5px;
    margin-bottom: 28px;
  }
  .faq__list {
    gap: 12px;
  }
  .faq-q {
    padding: 16px 16px;
    gap: 12px;
  }
  .faq-q__icon {
    width: 34px;
    height: 34px;
  }
  .faq-q__text {
    font-size: 16px;
  }
  .faq-toggle {
    width: 22px;
    height: 22px;
  }
  .faq-a__body {
    margin: 0 16px 18px;
    padding: 16px 16px;
    gap: 10px;
  }
  .faq-a__icon {
    width: 28px;
    height: 28px;
  }
  .faq-a__text {
    font-size: 14.5px;
  }
  .faq__foot {
    font-size: 14px;
  }
}

/* =========================================================
   SECTION: FINAL CTA (まだ公開されていないかもしれません)
   ========================================================= */
.cta {
  background: radial-gradient(120% 90% at 50% 0%, #14294a 0%, #0d1b31 60%, #0b1728 100%);
  padding: 62px 40px 74px;
  text-align: center;
}

.cta__inner {
  max-width: 940px;
  margin: 0 auto;
}

/* logo */
.cta__logo {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.2;
  margin-bottom: 40px;
}

.cta__logo-text {
  font-family: var(--font-en);
  font-weight: 800;
  font-size: 30px;
  color: #ffffff;
}

.cta__logo-accent {
  color: #ffffff;
}

.cta__logo-sub {
  font-family: var(--font-jp);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: #9fb0c8;
  margin-top: 3px;
}

/* label */
.cta__label {
  color: #5b9bf5;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.2em;
  margin-bottom: 22px;
}

/* title */
.cta__title {
  font-size: 44px;
  font-weight: 900;
  line-height: 1.4;
  color: #ffffff;
  letter-spacing: 0;
  margin-bottom: 26px;
}

.cta__title-accent {
  color: #6aa8f7;
}

/* lead */
.cta__lead {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.9;
  color: #c2cee0;
  margin-bottom: 38px;
}

.cta__lead-strong {
  color: #ffffff;
  font-weight: 800;
  margin: 0 4px;
}

/* button */
.cta__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  padding: 26px 28px;
  background: var(--color-cta);
  color: #fff;
  border-radius: 14px;
  box-shadow: 0 0 40px rgba(36, 197, 107, 0.45), 0 12px 26px rgba(36, 197, 107, 0.30);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.cta__button:hover {
  background: var(--color-cta-dark);
  transform: translateY(-2px);
  box-shadow: 0 0 52px rgba(36, 197, 107, 0.55), 0 16px 30px rgba(36, 197, 107, 0.38);
}

.cta__button-text {
  font-size: 25px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.cta__button-arrow {
  font-size: 24px;
  font-weight: 700;
}

/* note */
.cta__note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 22px;
  font-size: 15px;
  font-weight: 500;
  color: #9fb0c8;
}

.cta__note-sep {
  width: 1px;
  height: 14px;
  background: #3a4a63;
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer {
  background: #ffffff;
  padding: 40px 40px 44px;
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.site-footer__logo {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.2;
}

.site-footer__logo-text {
  font-family: var(--font-en);
  font-weight: 800;
  font-size: 28px;
  color: var(--color-navy);
}

.site-footer__logo-accent {
  color: var(--color-blue);
}

.site-footer__logo-sub {
  font-family: var(--font-jp);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--color-text-light);
  margin-top: 3px;
}

.site-footer__copy {
  font-size: 13px;
  font-weight: 500;
  color: #9aa6b6;
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .cta {
    padding: 46px 20px 54px;
  }
  .cta__logo {
    margin-bottom: 28px;
  }
  .cta__logo-text {
    font-size: 24px;
  }
  .cta__label {
    font-size: 13px;
  }
  .cta__title {
    font-size: 26px;
  }
  .cta__lead {
    font-size: 15px;
  }
  .cta__lead br {
    display: none;
  }
  .cta__button {
    padding: 18px 18px;
    gap: 10px;
  }
  .cta__button-text {
    font-size: 18px;
  }
  .cta__note {
    gap: 12px;
    font-size: 13px;
    flex-wrap: wrap;
  }
  .site-footer {
    padding: 30px 20px 34px;
  }
  .site-footer__logo-text {
    font-size: 23px;
  }
}