﻿:root {
  --navy:      #051a47;
  --blue:      #134c86;
  --blue-mid:  #1b5a97;
  --blue-light:#2a73b5;
  --gold:      #d3af61;
  --gold-light:#ffe286;
  --gray-bg:   #edf1f4;
  --text: #000000;
  --white:     #fff;
  --container: 1200px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--text);
  background: var(--white);
  min-width: 320px;
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 120px;
}

.section-label {
  font-size: 20px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 2px;
  margin-bottom: 12px;
}

.section-label--gold {
  color: var(--gold);
}

.section-heading {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 40px;
}

.section-heading--white {
  color: var(--white);
}

.btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #fca600;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  border: none;
  border-radius: 30px;
  padding: 12px 30px;
  cursor: pointer;
  letter-spacing: 1.6px;
  white-space: nowrap;
  min-width: 220px;
  justify-content: center;
}

/* ----------------------------------------
   HEADER
---------------------------------------- */
#header {
  background: var(--white);
  border-bottom: 1px solid #e0e4ea;
  position: sticky;
  top: 0;
  z-index: 100;
}

.header-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header-left {
  display: flex;
  align-items: center;
  gap: 24px;
}

.header-logo {
  height: 52px;
  width: auto;
}

.header-badges {
  height: 40px;
  width: auto;
}


.header-tel{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #193f94;
  font-weight: 700;
}

.header-tel-text{
  font-size: min(calc(14 / 1080 * 100vw), 14px);
  color: #000;
}

.header-tel-row{
  display: flex;
  align-items: center;
  gap: 10px;
}

.header-tel-hours{
  font-size: min(calc(14 / 1080 * 100vw), 14px);
  color: #000;
}

.header-tel-number{
  font-size: min(calc(28 / 1080 * 100vw), 28px);
  line-height: 1;
  color: #193f94;
}


@media screen and (max-width: 767px) {
  .header-tel{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #193f94;
    font-weight: 700;
  }

  .header-tel-text{
    font-size: min(calc(12 / 750 * 100vw), 14px);
    color: #000;
  }

  .header-tel-number{
    font-size: min(calc(29 / 750 * 100vw), 28px);
    line-height: 1;
    color: #193f94;
  }
}

/* タブレット・スマホ: 案内文／番号／営業時間の3段（営業時間を最下段に） */
@media (max-width: 1024px) {
  .header-tel-row {
    flex-direction: column;
    align-items: center;
    gap: 2px;
  }
  .header-tel-hours {
    order: 2;
  }
}

/* ----------------------------------------
   ABOUT
---------------------------------------- */
#about {
  background: var(--gray-bg);
  padding: 80px 0;
}

.about-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.about-header {
  text-align: center;
  margin-bottom: 56px;
}

.about-header .section-label {
  display: block;
}

.about-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.about-lead {
  font-size: 18px;
  line-height: 1.8;
  color: var(--text);
}


.about-body {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}


.about-left {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.about-text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--text);
}

.about-summary-card {
  background: var(--navy);
  border-radius: 8px;
  padding: 32px 36px;
}

.about-summary-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 20px;
}

.about-summary-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.about-summary-list li {
  font-size: 16px;
  font-weight: 700;
  color: var(--white);
  line-height: 1.6;
  padding-left: 0;
}

.about-summary-list li span {
  color: var(--white);
}


.about-right {
  flex: 1;
}

.about-pdca {
  width: 100%;
  border-radius: 8px;
}

/* ----------------------------------------
   NECESSITY
---------------------------------------- */
#necessity {
  background: var(--white);
  padding: 80px 0;
}

.necessity-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  position: relative;
}

/* 見出し左上の「ズバリ！」フキダシ */
.necessity-zubari {
  position: absolute;
  top: -11px;
  left: 80px;
  width: 180px;
  z-index: 2;
  pointer-events: none;
  transform: rotate(-12deg);
}

.necessity-zubari svg {
  width: 100%;
  height: auto;
  display: block;
}

/* aims-voice 見出し付近の「うちの会社これができてます」フキダシ */
.aims-voice-zubari {
  position: absolute;
  top: -8px;
  left: 20px;
  z-index: 2;
  pointer-events: none;
  transform: rotate(-12deg);
}

.aims-voice-zubari svg {
  height: auto;
  display: block;
}

/* PC・SPそれぞれ独立した幅（互いに連動しない） */
.aims-voice-zubari .zb-pc {
  width: 320px;
}

.aims-voice-zubari .zb-sp {
  width: 123px;
  display: none;
}

@media (max-width: 1200px) {
  .aims-voice-zubari {
    left: 16px;
    top: -20px;
  }
  .aims-voice-zubari .zb-pc {
    width: 240px;
  }
}

@media (max-width: 767px) {
  .aims-voice-zubari {
    left: 5px;
    top: 5px;
  }
  .aims-voice-zubari .zb-pc {
    display: none;
  }
  .aims-voice-zubari .zb-sp {
    display: block;
  }
}

@media (max-width: 1024px) {
  .necessity-zubari {
    width: 150px;
    left: 12px;
    top: -5px;
  }
}

@media (max-width: 767px) {
  .necessity-zubari {
    width: 120px;
    top: -15px;
    left: 4px;
  }
}

.necessity-header {
  text-align: center;
  margin-bottom: 56px;
}

.necessity-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.necessity-lead {
  font-size: 18px;
  line-height: 1.9;
  color: var(--text);
}

.necessity-grid {
  display: flex;
  gap: 24px;
  margin-bottom: 56px;
  flex-wrap: wrap;
  justify-content: center;
}

/* 各カードは2列分。下段の4・5枚目を中央寄せ */
.necessity-card:nth-child(4) {
  grid-column: 2 / 4;
}
.necessity-card:nth-child(5) {
  grid-column: 4 / 6;
}

.necessity-card {
  grid-column: span 2;
  background: var(--white);
  border: 1px solid #e0e4ea;
  border-radius: 8px;
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  width: calc((100% - 48px) / 3);
}

.necessity-icon {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.necessity-card-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.4;
}

.necessity-card-text {
  font-size: 13px;
  line-height: 1.8;
  color: var(--text);
}

.necessity-footer-text {
  text-align: center;
  font-size: 14px;
  line-height: 1.9;
  color: var(--text);
}

/* ----------------------------------------
   FV (Hero)
---------------------------------------- */
.aims-hero {
  position: relative;
  width: 100%;
  min-height: 780px;
  overflow: hidden;
  background: #edeae3;
  font-family: 'Noto Sans JP', sans-serif;
  display: flex;
  align-items: stretch;
}
.aims-hero__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 62% center;
  filter: saturate(1.03) brightness(1.05) contrast(1.01);
  z-index: 0;
}
/* light readability wash — keeps the photo, no dark overlay */
.aims-hero__wash {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(101deg, rgba(248,247,243,0.95) 0%, rgba(248,247,243,0.9) 30%, rgba(248,247,243,0.68) 47%, rgba(248,247,243,0.3) 63%, rgba(248,247,243,0) 80%);
}
.aims-hero__feather {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,0) 80%, rgba(244,242,236,0.55) 100%);
}
.aims-hero__vlabel {
  position: absolute; left: 30px; top: 50%; transform: translateY(-50%);
  writing-mode: vertical-rl; letter-spacing: 0.42em;
  font-size: 13px; font-weight: 700; color: rgba(120,95,45,0.20);
  z-index: 2; user-select: none;
}
.aims-hero__figure.pc-only {
  height: 100%;
  display: flex;
  align-items: flex-end;
  z-index: 2;
  animation: aimsFig 1s cubic-bezier(.16,.84,.34,1) both .15s;
  flex: 1;
}
.aims-hero__figure-inner { position: relative; }
.aims-hero__figure-shadow {
  position: absolute; left: 50%; bottom: -2%; transform: translateX(-50%);
  width: 118%; height: 90px;
  background: radial-gradient(50% 50% at 50% 50%, rgba(35,42,58,0.22) 0%, rgba(0,0,0,0) 72%);
  z-index: 0;
}
.aims-hero__figure img {
  position: relative; z-index: 1; height: 96%; max-height: 760px; width: auto; display: block;
}
.aims-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 3%;
  display: flex;
  align-items: center;
}
.aims-hero__inner {width: 70%;}

.aims-hero__kicker { display: flex; align-items: center; gap: 16px; animation: aimsUp .8s cubic-bezier(.16,.84,.34,1) both; }
.aims-hero__kicker-line { width: 34px; height: 2px; background: linear-gradient(90deg,#e6cd93,#c49a52); transform-origin: left; animation: aimsLine .9s cubic-bezier(.16,.84,.34,1) both .2s; }
.aims-hero__kicker-text { font-size: 13px; font-weight: 700; letter-spacing: 0.28em; color: #a8822c; }

.aims-hero__badge {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 22px;
  padding: 9px 18px; border: 1px solid rgba(178,134,47,0.55); border-radius: 999px;
  background: rgba(255,255,255,0.78); backdrop-filter: blur(6px);
  box-shadow: 0 4px 18px rgba(30,40,60,0.08);
  animation: aimsUp .8s cubic-bezier(.16,.84,.34,1) both .06s;
}
.aims-hero__badge-dot { width: 7px; height: 7px; border-radius: 50%; background: #e0c184; box-shadow: 0 0 10px rgba(224,193,132,0.8); }
.aims-hero__badge-text {font-size: 14px;font-weight: 700;letter-spacing: 0.02em;color: var(--text);}

.aims-hero__service { margin-top: 30px; font-size: 21px; font-weight: 700; letter-spacing: 0.04em; color: #a8822c; animation: aimsUp .8s cubic-bezier(.16,.84,.34,1) both .12s; }

.aims-hero__title {
  margin: 14px 0 0;
  font-size: clamp(27px, 3.6vw, 50px);
  font-weight: 900;
  line-height: 1.34;
  letter-spacing: 0.005em;
  color: var(--navy);
  animation: aimsUp .85s cubic-bezier(.16,.84,.34,1) both .18s;
}
.aims-hero__title .em {color: #172540;}
.aims-hero__title .ul { position: relative; white-space: nowrap; }
.aims-hero__title .ul::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 10px;
  background: linear-gradient(90deg, rgba(184,134,47,0.45), rgba(184,134,47,0.1));
  z-index: -1; border-radius: 2px;
}

.aims-hero__sub {margin: 26px 0 1em;font-size: 18px;font-weight: 700;line-height: 2.0;color: var(--navy);max-width: 100%;text-wrap: pretty;animation: aimsUp .85s cubic-bezier(.16,.84,.34,1) both .24s;}
.aims-hero__sub strong { color: #172540; font-weight: 700; }

.aims-hero__chips { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; animation: aimsUp .85s cubic-bezier(.16,.84,.34,1) both .30s; }

.aims-hero__chips.pc-only{
  display: flex; 
}

.aims-hero__chip {
  display: inline-flex; align-items: center; gap: 9px; padding: 11px 20px 11px 16px;
  border: 1px solid #16243f; border-radius: 999px; background: #16243f;
  box-shadow: 0 6px 18px rgba(22,36,63,0.18);
}
.aims-hero__chip span { font-size: 15px; font-weight: 700; color: #eef1f7; }

.aims-hero__ctas { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; animation: aimsUp .85s cubic-bezier(.16,.84,.34,1) both .36s; }
.aims-hero__cta-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  min-width: 460px;
  padding: 19px 28px;
  border-radius: 12px;
  background: #fca600;
  box-shadow: 0 14px 34px rgba(176,134,62,0.34), inset 0 1px 0 rgba(255,255,255,0.45);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
  width: 50%;
  text-align: center;
  position: relative;
}
.aims-hero__cta-primary > span:first-child {font-size: 22px;font-weight: 900;color: #fff;letter-spacing: 0.02em;margin-right: 15px;}
.aims-hero__cta-primary .arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 2px 6px rgba(120, 70, 0, 0.22);
    position: absolute;
    right: 30px;
}

.aims-hero__cta-secondary {
  display: inline-flex; align-items: center; gap: 12px; padding: 19px 30px; border-radius: 12px;
  border: 1.5px solid rgba(23,37,64,0.28); background: rgba(255,255,255,0.72);
  backdrop-filter: blur(6px); box-shadow: 0 6px 20px rgba(30,40,60,0.08);
  text-decoration: none; transition: border-color .2s ease, background .2s ease;
}
.aims-hero__cta-secondary:hover { border-color: rgba(184,134,47,0.8); background: rgba(255,255,255,0.94); }
.aims-hero__cta-secondary span { font-size: 18px; font-weight: 700; color: #172540; }

@keyframes aimsUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes aimsFig { from { opacity: 0; transform: translateY(28px) scale(1.01); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes aimsLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.btn-gold--large {
  font-size: 20px;
  padding: 18px 48px;
  border-radius: 40px;
  gap: 16px;
}

.header-right-wrap{
  display: flex;
  margin-left: auto;
  gap: 30px;
}

.header-right{

}

/* ----------------------------------------
   AIMS VOICE（AIMS取得で対外的に言えること）
---------------------------------------- */
#aims-voice {
  background: var(--gray-bg);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

/* 背景装飾テキスト */
.aims-voice__deco {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(48px, 8vw, 96px);
  font-weight: 900;
  color: rgba(19, 76, 134, 0.08);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  letter-spacing: 0.08em;
}

.aims-voice__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  position: relative;
  z-index: 1;
}

.aims-voice__header {
  text-align: center;
  margin-bottom: 56px;
}

.aims-voice__header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.aims-voice__lead {
  font-size: 18px;
  line-height: 1.9;
  color: var(--text);
}

/* ── 4つのカードグリッド ── */
.aims-voice__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 48px;
}

/* カード間の縦区切り線 */
.aims-voice__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 0 24px;
  text-align: center;
  border-right: 1px solid #b8c4d4;
}
.aims-voice__card:last-child {
  border-right: none;
}

/* 円形アイコン */
.aims-voice__circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 2px 12px rgba(19, 76, 134, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  color: var(--blue);
  flex-shrink: 0;
}

/* 誰に向けたメッセージか */
.aims-voice__to {
  font-size: 14px;
  font-weight: 700;
  color: var(--white);
  background: var(--navy);
  padding: 5px 18px;
  border-radius: 20px;
  white-space: nowrap;
}

/* メッセージ本文 */
.aims-voice__msg {
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.7;
}

/* ── ボトムバー ── */
.aims-voice__bar {
  background: var(--white);
  border-radius: 0 8px 8px 8px;
  padding: 28px 36px;
  font-size: 16px;
  color: var(--text);
  line-height: 1.8;
  position: relative;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.aims-voice__bar strong {
  color: var(--text);
}

.aims-voice__bar-label {
  position: absolute;
  top: -18px;
  left: 0;
  background: var(--navy);
  color: var(--white);
  font-size: 14px;
  font-weight: 700;
  padding: 6px 24px;
  border-radius: 4px 4px 0 0;
}

/* tablet */
@media (max-width: 1024px) {
  .aims-voice__inner {
    padding: 0 32px;
  }
  .aims-voice__header .section-heading {
    font-size: 30px;
  }
  .aims-voice__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 0;
  }
  .aims-voice__card:nth-child(2) {
    border-right: none;
  }
  .aims-voice__card:nth-child(3) {
    border-right: 1px solid #dde3ed;
  }
}

/* mobile */
@media (max-width: 767px) {
  #aims-voice {
    padding: 56px 0;
  }
  .aims-voice__inner {
    padding: 0 20px;
  }
  .aims-voice__header .section-heading {
    font-size: 22px;
  }
  .aims-voice__lead {
    font-size: 13px;
  }
  .aims-voice__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 0;
  }
  .aims-voice__card {
    padding: 0 5px;
    gap: 14px;
  }
  .aims-voice__card:nth-child(2) {
    border-right: none;
  }
  .aims-voice__card:nth-child(3) {
    border-right: 1px solid #dde3ed;
  }
  .aims-voice__circle {
    width: 76px;
    height: 76px;
    font-size: 28px;
  }
  .aims-voice__msg {
    font-size: 13px;
  }
  .aims-voice__bar {
    padding: 28px 20px 20px;
    font-size: 14px;
  }

  .header-right-wrap{
  display: flex;
  margin-left: auto;
  gap: 5px;
  align-items: center;
  }

  .header-sp-bottom{
    display: flex;
  }

  .header-sp-bottom .header-sp-bottom-left{
  width: 75%;
}

.aims-hero__figure{
  width: 25%;
}

  .aims-hero__cta-primary > span:first-child {
    font-size: 14px;
    font-weight: 900;
    color: #fff;
    letter-spacing: 0.02em;
    margin-right: 15px;
  }

  .aims-hero__cta-primary .arrow{
    width: 15px;
    height: 15px;
    right: 15px;
  }

.aims-hero__figure {
  height: 100%;
  display: flex;
  align-items: flex-end;
  z-index: 2;
  animation: aimsFig 1s cubic-bezier(.16,.84,.34,1) both .15s;
  flex: 1;
}
.aims-hero__figure-inner { 
  position: relative;
 }
.aims-hero__figure-shadow {
  position: static;
  left: 50%;
  bottom: -2%;
  width: 118%;
  height: 90px;
  z-index: 0;
}
.aims-hero__figure img {
  position: relative; z-index: 1; height: 96%; max-height: 760px; width: auto; display: block;
}
}

/* ----------------------------------------
   CERTIFICATION
---------------------------------------- */
#certification {
  background-color: var(--navy);
  background-image: url('../images/certification_bg.webp');
  background-size: cover;
  background-position: center;
  padding: 80px 0;
}

.cert-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.cert-header {
  text-align: center;
  margin-bottom: 56px;
}

.cert-lead {
  font-size: 18px;
  line-height: 1.8;
  color: var(--white);
}

/* 3ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â¹ÃƒÂ£Ã†â€™Ã¢â‚¬Â ÃƒÂ£Ã†â€™Ã†â€™ÃƒÂ£Ã†â€™Ã¢â‚¬â€ÃƒÂ¦Ã‚Â¨Ã‚ÂªÃƒÂ¤Ã‚Â¸Ã‚Â¦ÃƒÂ£Ã‚ÂÃ‚Â³ */
.cert-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.cert-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  flex: 1;
  max-width: 320px;
}

.cert-photo {
  width: 100%;
  border-radius: 8px;
  object-fit: cover;
}

.cert-label {
  background: var(--gold);
  color: var(--navy);
  font-size: 18px;
  font-weight: 700;
  padding: 10px 32px;
  border-radius: 4px;
  white-space: nowrap;
}

.cert-sub {
  font-size: 16px;
  color: var(--white);
  text-align: center;
  line-height: 1.7;
}

.cert-arrow {
  font-size: 32px;
  color: var(--gold);
  flex-shrink: 0;
}

/* ----------------------------------------
   SCOPE
---------------------------------------- */
#scope {
  background: var(--gray-bg);
  padding: 80px 0;
}

.scope-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.scope-header {
  text-align: center;
  margin-bottom: 56px;
}

.scope-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.scope-lead {
  font-size: 18px;
  line-height: 1.9;
  color: var(--text);
}

/* ÃƒÂ£Ã†â€™Ã¢â‚¬Â ÃƒÂ£Ã†â€™Ã‚Â¼ÃƒÂ£Ã†â€™Ã¢â‚¬â€œÃƒÂ£Ã†â€™Ã‚Â« */
.scope-table-wrap {
  margin-bottom: 48px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

.scope-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--white);
}

.scope-table thead tr {
  background: var(--navy);
}

.scope-table thead th {
  color: var(--white);
  font-size: 15px;
  font-weight: 700;
  padding: 20px 28px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.15);
}

.scope-table thead th:last-child {
  border-right: none;
}

.scope-table tbody tr {
  border-bottom: 1px solid #e0e4ea;
}

.scope-table tbody tr:last-child {
  border-bottom: none;
}

.scope-table tbody td {
  padding: 28px 20px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
  border-right: 1px solid #e0e4ea;
  vertical-align: middle;
}

.scope-table tbody td:last-child {
  border-right: none;
}

.scope-table tbody td.scope-role {
  font-size: 16px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
}

/* ÃƒÂ¥Ã‚Â½Ã‚Â¹ÃƒÂ¥Ã¢â‚¬Â°Ã‚Â²ÃƒÂ£Ã†â€™Ã…â€œÃƒÂ£Ã†â€™Ã†â€™ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â¯ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â¹ */
.scope-roles {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-bottom: 40px;
}

.scope-role-box {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  min-height: 160px;
}

.scope-role-box--producer {
  padding: 0;
  gap: 0;
  justify-content: flex-start;
  background: transparent;
}
.scope-role-photo-wrap {
  width: 100%;
  background: #fff;
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}
.scope-role-photo {
  width: 100%;
  height: 100px;
  object-fit: cover;
  object-position: center 18%;
  display: block;
}
.scope-role-text {
  width: 100%;
  background: #051a47;
  padding: 14px 8px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  border-radius: 0 0 8px 8px;
}
.scope-role-box--developer {background: #051a47;}
.scope-role-box--provider  {background: #051a47;}
.scope-role-box--user      {background: #051a47;}

.scope-role-en {
  font-size: 11px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 2px;
}

.scope-role-ja {
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
}

.scope-role-arrow {
  font-size: 20px;
  color: var(--navy);
  padding: 0 12px;
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.scope-note {
  font-size: 14px;
  color: var(--text);
  line-height: 1.7;
  text-align: center;
}

/* ----------------------------------------
   AFFINITY
---------------------------------------- */
#affinity {
  background: var(--white);
  padding: 80px 0;
}

.affinity-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.affinity-header {
  text-align: center;
  margin-bottom: 56px;
}

.affinity-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.affinity-lead {
  font-size: 18px;
  line-height: 1.9;
  color: var(--text);
  text-align: center;
}

.affinity-diagram {
  display: flex;
  justify-content: center;
  margin-bottom: 48px;
}

.affinity-diagram img {
  max-width: 640px;
  width: 100%;
}

.affinity-note {
  text-align: center;
  font-size: 14px;
  color: var(--text);
  line-height: 1.7;
}

/* ----------------------------------------
   BUILD PROCESS
---------------------------------------- */
#build-process {
  background: var(--gray-bg);
  padding: 80px 0;
}

.bp-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.bp-header {
  text-align: center;
  margin-bottom: 56px;
}

.bp-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.bp-lead {
  font-size: 18px;
  line-height: 1.9;
  color: var(--text);
}

.bp-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bp-step {
  display: grid;
  grid-template-columns: 64px 260px 1fr;
  align-items: center;
  gap: 0;
  background: var(--white);
  border: 1px solid #e0e4ea;
  border-radius: 8px;
  overflow: hidden;
}

.bp-num {
  background: var(--navy);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  min-height: 88px;
}

.bp-step-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  padding: 24px 32px;
  line-height: 1.5;
  border-right: 1px solid #e0e4ea;
}

.bp-step-desc {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text);
  padding: 24px 32px;
}

.bp-arrow {
  display: flex;
  justify-content: flex-start;
  padding-left: 22px;
  font-size: 20px;
  color: var(--navy);
  padding-top: 10px;
  padding-bottom: 10px;
}

/* ----------------------------------------
   SERVICE
---------------------------------------- */
#service {
  background: var(--white);
  padding: 80px 0;
}

.service-section {
      width: 1440px;
      background: #fff;
      padding: 125px 120px 100px;
      margin: auto;
      position: relative;
    }

/* service 見出し左の「6ヶ月～8ヶ月でゴール」フキダシ */
.service-zubari {
  position: absolute;
  top: 115px;
  left: 165px;
  z-index: 2;
  pointer-events: none;
  transform: rotate(-12deg);
}

.service-zubari svg {
  height: auto;
  display: block;
}

.service-zubari .zb-pc {
  width: 278px;
}

.service-zubari .zb-sp {
  width: 123px;
  display: none;
}

@media (max-width: 1024px) {
  .service-zubari {
    top: 35px;
    left: 24px;
  }
  .service-zubari .zb-pc {
    width: 220px;
  }
}

@media (max-width: 767px) {
  .scope-role-photo{
    height: 150px;
  }

  .service-zubari {
    top: 38px;
    left: 5px;
  }
  .service-zubari .zb-pc {
    display: none;
  }
  .service-zubari .zb-sp {
    display: block;
  }
}

    /* =====================
       Header
    ===================== */
    .section-header {
      text-align: center;
      margin-bottom: 89px;
    }

    .section-label {
      font-size: 24px;
      font-weight: 700;
      color: #134c86;
      letter-spacing: 0.05em;
      margin-bottom: 10px;
    }

    .section-label--gold{
      background: linear-gradient(to right, var(--gold), var(--gold-light), var(--gold));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;  
    }

    .section-title {
      font-size: 40px;
      font-weight: 700;
      color: #000;
      line-height: 1.35;
    }

    /* =====================
       Content layout
    ===================== */
    .content-area {
      display: flex;
      align-items: flex-start;
      padding-left: 15px; /* 135 - 120 = 15px */
    }

    /* =====================
       Left column
    ===================== */
    .left-col {
      width: 490px;
      flex-shrink: 0;
      margin-right: 84px; /* gap to timeline: 709 - 625 = 84px */
    }

    .left-subtitle {
      font-size: 20px;
      font-weight: 700;
      color: #051a47;
      line-height: 1.5;
      margin-bottom: 1px;
    }

    .left-heading {
      font-size: 40px;
      font-weight: 700;
      line-height: 1.5;
      background: linear-gradient(to left, #d3af61 0%, #ffe286 50%, #d3af61 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: transparent;
      margin-bottom: 15px;
    }

    .left-description {
      font-size: 16px;
      font-weight: 500;
      line-height: 1.7;
      color: #000;
      margin-bottom: 15px;
    }

    .left-note {
      background: #edf1f4;
      padding: 10px;
      font-size: 13px;
      font-weight: 400;
      line-height: 1.7;
      color: #000;
      margin-bottom: 50px;
    }

    .left-image {
      width: 490px;
      height: 577px;
      object-fit: cover;
      border-radius: 8px;
      display: block;
    }

    /* =====================
       Right column (Timeline)
    ===================== */
    .timeline-col {
      flex: 1;
      position: relative;
    }

    /* Vertical line */
    .timeline-col::before {
      content: '';
      position: absolute;
      left: 5.5px;   /* center of 12px dot */
      top: 13px;   /* center of first dot: top:7px + radius:6px */
      width: 1px;
      height: 877px;
      background: #ccc;
    }

    /* 期間ラベル（6ヶ月～8ヶ月間・縦書き） */
    .timeline-duration {
      position: absolute;
      left: -46px;
      top: 0;
      bottom: 0;
      width: 30px;
      pointer-events: none;
    }
    .td-line {
      position: absolute;
      top: 6px;
      bottom: 6px;
      left: 50%;
      transform: translateX(-50%);
      width: 2px;
      background: #134c86;
    }
    .td-cap {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      width: 18px;
      height: 2px;
      background: #134c86;
    }
    .td-cap--top { top: 6px; }
    .td-cap--bottom { bottom: 6px; }
    .td-text {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      writing-mode: vertical-rl;
      font-size: 18px;
      font-weight: 700;
      letter-spacing: 2px;
      color: #134c86;
      background: #fff;
      padding: 10px 0;
      white-space: nowrap;
    }
    .td-num { text-combine-upright: all; }

    /* =====================
       Step list
    ===================== */
    .step-list {
      list-style: none;
    }

    .step-item {
      position: relative;
      padding-left: 36px; /* 12px dot + 24px gap */
      margin-bottom: 26px;
    }

    .step-item:last-child {
      margin-bottom: 0;
    }

    /* Circle dot */
    .step-item::before {
      content: '';
      position: absolute;
      left: 0;
      top: 7px; /* (27px title height - 12px dot) / 2 Ã¢â€°Ë† 7.5 */
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #051a47;
    }

    .step-title {
      font-size: 20px;
      font-weight: 700;
      color: #000;
      line-height: normal;
      margin-bottom: 3px;
    }

    .step-desc {
      font-size: 16px;
      font-weight: 400;
      line-height: 1.4;
      color: #000;
      margin-bottom: 7px;
    }

    .step-item.no-tags .step-desc {
      margin-bottom: 0;
    }

    /* キックオフのサッカーボール（薄くテキスト背後に） */
    .step-ball {
      position: absolute;
      right: 60px;
      top: 50%;
      transform: translateY(-50%);
      width: 150px;
      height: auto;
      opacity: 0.15;
      z-index: 0;
    }
    .step-item.no-tags .step-title,
    .step-item.no-tags .step-desc {
      position: relative;
      z-index: 1;
    }

    .step-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .tag {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 4px 16px;
      border-radius: 30px;
      background: linear-gradient(
        -90deg,
        rgb(42, 115, 181) 0%,
        rgb(12, 64, 120) 55.706%,
        rgb(7, 22, 62) 100%
      );
      color: #fff;
      font-size: 14px;
      font-weight: 500;
      line-height: normal;
      white-space: nowrap;
    }

/* ----------------------------------------
   CONTACT
---------------------------------------- */
#contact {
  position: relative;
  background-color: var(--navy);
  background-image: url('../images/contacct.webp');
  background-size: cover;
  background-position: center right;
  overflow: hidden;
}

#contact::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    #051a47 0%,
    #051a47 35%,
    #0c3a72 55%,
    rgba(5, 26, 71, 0.6) 72%,
    transparent 88%
  );
  pointer-events: none;
}

.contact-inner {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
  padding: 60px 5%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 1200px;
  max-width: 100%;
}

.contact-inner .section-label--gold {
  margin-bottom: 0;
  background: linear-gradient(to left, #d3af61 0%, #ffe286 50%, #d3af61 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}

.contact-title {
  font-size: 44px;
  font-weight: 700;
  color: var(--white);
  line-height: 1.3;
}

.contact-desc {
  font-size: 18px;
  color: var(--white);
  line-height: 1.7;
}

.cta-wrap{
  display: flex;
  gap: 20px;
  width: 100%;
  justify-content: center;
  margin-top: 30px;
}

.cta-wrap .btn-gold{
  width: 408px;
  justify-content: center;
  display: flex;
  align-items: center;
  position: relative;
  max-width: 48%;
}

.cta-wrap .btn-gold i{
  margin-left: auto;
  position: absolute;
  right: 20px;
}

/* ----------------------------------------
   WHY UPF
---------------------------------------- */
#why-upf {
  padding: 80px 0;
  background: var(--gray-bg);
}

.why-inner {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 60px;
  position: relative;
}

/* 下を指す女性（カードを指し示す装飾） */
.why-presenter {
  position: absolute;
  left: -11px;
  top: -10px;
  width: 300px;
  height: auto;
  z-index: 0;
  pointer-events: none;
}

@media (max-width: 1200px) {
  .why-presenter {
    display: none;
  }
}

.why-header {
  text-align: center;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
}

.why-header .section-heading {
  font-size: 40px;
  margin-bottom: 20px;
}

.why-lead {
  font-size: 18px;
  line-height: 2;
  color: var(--text);
}

/* PCのみ: 女性画像に重なる部分の可読性確保（gray-bgで全周を縁取り） */
@media (min-width: 1201px) {
  .why-lead {
    text-shadow:
      -3px -3px 0 var(--gray-bg),
       0   -3px 0 var(--gray-bg),
       3px -3px 0 var(--gray-bg),
       3px  0   0 var(--gray-bg),
       3px  3px 0 var(--gray-bg),
       0    3px 0 var(--gray-bg),
      -3px  3px 0 var(--gray-bg),
      -3px  0   0 var(--gray-bg);
  }
}

/* 3ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â«ÃƒÂ£Ã†â€™Ã‚Â©ÃƒÂ£Ã†â€™Ã‚Â  */
.why-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
}

/* 1570px以下：3-2の2段組・センター寄せ */
@media (max-width: 1570px) {
  .why-cards {
    grid-template-columns: repeat(6, 1fr);
  }
  .why-card:nth-child(1) { grid-column: 1 / 3; }
  .why-card:nth-child(2) { grid-column: 3 / 5; }
  .why-card:nth-child(3) { grid-column: 5 / 7; }
  .why-card:nth-child(4) { grid-column: 2 / 4; }
  .why-card:nth-child(5) { grid-column: 4 / 6; }
}

/* 768〜1024px：2×2 */
@media (min-width: 768px) and (max-width: 1024px) {
  .why-cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .why-card:nth-child(1),
  .why-card:nth-child(2),
  .why-card:nth-child(3),
  .why-card:nth-child(4),
  .why-card:nth-child(5) {
    grid-column: auto;
  }
}

/* 780px以下：1列 */
@media (max-width: 767px) {
  .why-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .why-card:nth-child(1),
  .why-card:nth-child(2),
  .why-card:nth-child(3),
  .why-card:nth-child(4),
  .why-card:nth-child(5) {
    grid-column: 1 / -1;
  }
}

.why-card {
  background: var(--white);
  border-radius: 8px;
  padding: 30px 35px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.why-card-headline {
  font-size: clamp(16px, 1.3vw, 26px);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.3;
  text-align: center;
}

.why-card-sub {
  font-size: 15px;
  font-weight: 700;
  color: var(--gold);
  text-align: center;
}

.why-card-text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--text);
  margin-top: 4px;
}

.why-note {
  font-size: 14px;
  color:  var(--text);
  text-align: left;
  margin-top: 20px;
}

/* 1つ目カード内の注記（タブレット・スマホ時のみ右下に表示） */
.why-note-card {
  display: none;
}

@media (max-width: 1024px) {
  .why-note {
    display: none;
  }
  .why-note-card {
    display: block;
    margin-top: auto;
    align-self: flex-end;
    text-align: right;
    padding-top: 12px;
    font-size: 12px;
    color: #888;
  }
}

/* ----------------------------------------
   FLOW
---------------------------------------- */
#flow {
  background: #fff;
  padding: 80px 0;
}

.flow-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 100px;
}

.flow-header {
  text-align: center;
  margin-bottom: 48px;
}

.flow-header .section-heading {
  font-size: 40px;
  margin-bottom: 0;
  color: #1f3050;
}

#flow .section-label {
  font-size: 18px;
  letter-spacing: 3px;
  color: var(--blue);
}

.flow-steps {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.flow-step {
  display: flex;
  align-items: center;
  gap: 30px;
  background: var(--white);
  border: 1px solid #d8e3f2;
  border-radius: 16px;
  padding: 26px 34px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(31, 48, 80, 0.06);
}

.flow-step::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 7px;
  background: var(--blue);
}

.flow-step-main {
  display: flex;
  align-items: center;
  gap: 22px;
  flex: 1;
}

.flow-badge {
  position: relative;
  width: 58px;
  height: 58px;
  flex-shrink: 0;
  border: 2px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  font-size: 24px;
}

.flow-num {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flow-step-title {
  font-size: 22px;
  font-weight: 700;
  color:  var(--text);
  line-height: 1.4;
  margin-bottom: 6px;
}

.flow-step-desc {
  font-size: 15px;
  color:  var(--text);
  line-height: 1.7;
}

.flow-step-photo {
  width: 320px;
  height: 176px;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #d8e3f2;
}

.flow-step-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.flow-arrow {
  display: flex;
  justify-content: center;
  font-size: 26px;
  color: var(--blue);
  padding: 2px 0;
}

/* ----------------------------------------
   FAQ
---------------------------------------- */
#faq {
  background: var(--gray-bg);
  padding: 80px 0;
}

.faq-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.faq-header {
  text-align: center;
  margin-bottom: 56px;
}

.faq-header .section-heading {
  font-size: 40px;
  margin-bottom: 0;
}

.faq-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0 4%;
}

.faq-col {
  display: flex;
  flex-direction: column;
  width: 48%;
}

.faq-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px 0;
  border-bottom: 1px solid #d8dde6;
  width: 48%;
}

.faq-col > .faq-item:first-child {
  border-top: 1px solid #d8dde6;
  width: 48%;
}

.faq-q,
.faq-a {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.faq-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  object-fit: contain;
}

.faq-question {
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.5;
  padding-top: 6px;
}

.faq-answer {
  font-size: 16px;
  line-height: 1.9;
  color: var(--text);
  padding-top: 6px;
}

/* ----------------------------------------
   FORM
---------------------------------------- */
#form {
  position: relative;
  background-color: var(--gray-bg);
  background-image: url('../images/contact_bg.webp');
  background-size: cover;
  background-position: center;
  padding: 80px 0;
}

#form::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(237, 241, 244, 0.82);
  pointer-events: none;
}

.form-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
}

.form-header {
  text-align: center;
  margin-bottom: 48px;
}

.form-header p.text {
    font-size: 14px;
    line-height: 2;
    color: var(--text);
}

.form-header .section-heading h2{
  font-size: 40px;
  margin-bottom: 0;
}

/* ÃƒÂ§Ã¢â€žÂ¢Ã‚Â½ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â«ÃƒÂ£Ã†â€™Ã‚Â¼ÃƒÂ£Ã†â€™Ã¢â‚¬Â° */
.form-card {
  max-width: 660px;
  margin: 0 auto;
  background: var(--white);
  border-radius: 12px;
  padding: 48px 52px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

.cf7-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* 2ÃƒÂ£Ã¢â‚¬Å¡Ã‚Â«ÃƒÂ£Ã†â€™Ã‚Â©ÃƒÂ£Ã†â€™Ã‚Â ÃƒÂ¨Ã‚Â¡Ã…â€™ */
.cf7-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.cf7-row--full {
  grid-template-columns: 1fr;
}

.cf7-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cf7-label {
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  display: flex;
  align-items: center;
  gap: 8px;
}

.cf7-required {
  font-size: 12px;
  font-weight: 700;
  color: #e53935;
}

.cf7-optional {
  font-size: 12px;
  font-weight: 700;
  color: var(--blue-light);
}

.cf7-input,
.cf7-select,
.cf7-textarea {
  width: 100%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: var(--text);
  background: var(--white);
  border: 1px solid #c8cdd6;
  border-radius: 6px;
  padding: 12px 16px;
  outline: none;
  transition: border-color 0.2s;
}

.cf7-input:focus,
.cf7-select:focus,
.cf7-textarea:focus {
  border-color: var(--blue);
}

.cf7-input::placeholder,
.cf7-textarea::placeholder {
  color: #b0b8c4;
}

.cf7-select {
  appearance: auto;
  cursor: pointer;
}

.cf7-textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.7;
}

.cf7-note {
  font-size: 13px;
  color: #888;
  text-align: center;
  line-height: 1.7;
  margin-top: -8px;
}

.form-privacy {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text);
  cursor: pointer;
}

.form-privacy input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--navy);
  cursor: pointer;
}

.form-privacy a {
  color: var(--blue);
  text-decoration: underline;
}

.cf7-submit {
  width: 100%;
  background: var(--navy);
  color: var(--white);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 700;
  border: none;
  border-radius: 6px;
  padding: 20px;
  cursor: pointer;
  letter-spacing: 1px;
  transition: opacity 0.2s;
}

.cf7-submit:hover {
  opacity: 0.85;
}

/* ==============================
   E-E-A-T SECTION
============================== */
.eeat-section {
  background: #f0f4f9;
  border-top: 1px solid #d0dff2;
  border-bottom: 1px solid #d0dff2;
  padding: 40px 24px;
}
.eeat-inner {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #d0dff2;
  border-radius: 6px;
  overflow: hidden;
}
.eeat-header {
  background: linear-gradient(90deg, #003b7d 0%, #1762b8 100%);
  padding: 13px 24px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.eeat-header-text {
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.eeat-body {
  padding: 24px 28px 20px;
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.eeat-avatar {
  width: 50px;
  height: 50px;
  min-width: 50px;
  border-radius: 50%;
  background: #003b7d;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.04em;
}
.eeat-info {}
.eeat-role {
  font-size: 10px;
  font-weight: 700;
  color: #1a6abf;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.eeat-name {
  font-size: 16px;
  font-weight: 700;
  color: #003b7d;
  margin-bottom: 5px;
}
.eeat-creds {
  font-size: 12px;
  color: #4a6a8a;
  line-height: 1.8;
  margin-bottom: 8px;
}
.eeat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #e6f0fa;
  color: #1a6abf;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 99px;
  border: 1px solid #b3cfe8;
}
.eeat-meta {
  padding: 14px 28px;
  border-top: 1px solid #e8f0f8;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}
.eeat-meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #4a6a8a;
}
.eeat-meta-item svg { flex-shrink: 0; }
.eeat-meta-item strong { color: #003b7d; font-weight: 700; }
.eeat-note {
  padding: 11px 28px;
  background: #eaf2fb;
  border-top: 1px solid #d0dff2;
  font-size: 11px;
  color: #4a6a8a;
  line-height: 1.7;
  display: flex;
  align-items: flex-start;
  gap: 7px;
}
.eeat-note svg { margin-top: 1px; flex-shrink: 0; }
.eeat-note-link {
  color: #1a6abf;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

#timerex{
  padding: 60px 5%;
}

/* ----------------------------------------
   FOOTER
---------------------------------------- */
#footer {
  background: var(--white);
  border-top: 1px solid #e0e4ea;
  padding: 40px 0 0;
}

.footer-inner {
  width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  max-width: 100%;
}

.footer-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}

.footer-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.footer-badges {
  height: 42px;
  width: auto;
}

.footer-logo {
  height: 50px;
  width: auto;
}

.footer-service {
  font-size: 15px;
  font-weight: 500;
  color: var(--text);
}

.footer-links {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 24px;
  font-size: 14px;
  max-width: 400px;
}

.footer-links a {
  color: var(--text);
  text-decoration: none;
  transition: opacity 0.2s;
}

.footer-links a:hover {
  opacity: 0.6;
}

.footer-copy {
  font-size: 13px;
  color: var(--text);
  text-align: center;
  border-top: 1px solid #e0e4ea;
  margin-top: 32px;
  padding: 20px 0;
}
@media (min-width: 768px) {
  .pc-only{
    display: block;
  }
  .sp-only{
    display: none !important;
  }
}
/* ========================================
   RESPONSIVE â€” Tablet (max-width: 1024px)
======================================== */
@media (max-width: 1024px) {

  /* --- Utility --- */
  .section-heading {
    font-size: 28px;
  }

  /* --- Header --- */
  .header-inner {
    padding: 0 24px;
    max-width: 100%;
  }

  .header-badges {
    height: 30px;
    width: auto;
  }

  /* 768〜1024で横はみ出し防止: ボタンの固定幅を解除 */
  .header-right .btn-gold {
    min-width: 0;
    padding: 10px 18px;
  }

  /* --- FV (Hero) --- */
  .aims-hero {
    min-height: 560px;
  }

  .aims-hero__content {
    padding: 56px 40px 0;
  }

  .aims-hero__inner {
    padding-bottom: 30px;
  }

  .aims-hero__wash {
    background: linear-gradient(101deg, rgba(248,247,243,0.96) 0%, rgba(248,247,243,0.92) 42%, rgba(248,247,243,0.55) 62%, rgba(248,247,243,0) 86%);
  }

  .aims-hero__figure {
    right: 0;
  }

  .aims-hero__figure img {
  }

  /* --- About --- */
  .about-inner {
    padding: 0 32px;
  }

  .about-header .section-heading {
    font-size: 30px;
  }

  .about-body {
    gap: 32px;
  }

  /* --- Necessity --- */
  .necessity-inner {
    padding: 0 32px;
  }

  .necessity-header .section-heading {
    font-size: 30px;
  }

  .necessity-grid {
    grid-template-columns: repeat(6, 1fr);
  }

  .necessity-card:nth-child(4) {
    grid-column: 2 / 4;
  }

  .necessity-card:nth-child(5) {
    grid-column: 4 / 6;
  }

  /* --- Certification --- */
  .cert-inner {
    padding: 0 32px;
  }

  /* --- Scope --- */
  .scope-inner {
    padding: 0 32px;
  }

  .scope-header .section-heading {
    font-size: 30px;
  }

  .scope-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .scope-table {
    min-width: 600px;
  }

  /* --- Affinity --- */
  .affinity-inner {
    padding: 0 32px;
  }

  .affinity-header .section-heading {
    font-size: 30px;
  }

  /* --- Build Process --- */
  .bp-inner {
    padding: 0 32px;
  }

  .bp-header .section-heading {
    font-size: 30px;
  }

  .bp-step {
    grid-template-columns: 56px 200px 1fr;
  }

  /* --- Service --- */
  .service-section {
    width: 100%;
    padding: 60px 40px;
  }

  .section-title {
    font-size: 30px;
  }

  .content-area {
    padding-left: 0;
    gap: 40px;
  }

  .left-col {
    width: 360px;
    margin-right: 32px;
  }

  .left-image {
    width: 100%;
    height: auto;
  }

  /* --- Contact --- */
  .contact-inner {
    padding: 56px 40px;
  }

  .contact-title {
    font-size: 34px;
  }

  /* --- Why UPF --- */
  .why-inner {
    padding: 0 32px;
  }

  .why-header .section-heading {
    font-size: 30px;
  }

  .why-card {
    padding: 28px 20px;
  }

  /* --- Flow --- */
  .flow-inner {
    padding: 0 32px;
  }

  .flow-header .section-heading {
    font-size: 30px;
  }

  .flow-step-photo {
    width: 260px;
    height: 150px;
  }

  /* --- FAQ --- */
  .faq-inner {
    padding: 0 32px;
  }

  .faq-header .section-heading {
    font-size: 30px;
  }

  .faq-grid {
   display: flex;
  }

  /* --- Form --- */
  .form-inner {
    padding: 0 32px;
  }

  .form-header .section-heading {
    font-size: 30px;
  }
  .scope-role-ja{
    font-size: 18px;
  }
}

/* ========================================
   RESPONSIVE â€” Mobile (max-width: 768px)
======================================== */
@media (max-width: 767px) {
  .header-left{
    gap: 5px;
  }
  /* --- Utility --- */
  .section-heading {
    font-size: 22px;
    margin-bottom: 24px;
  }

  .section-label {
    font-size: 14px;
  }

  .btn-gold {
    font-size: 14px;
    padding: 12px 20px;
    min-width: 0;
    width: 100%;
    justify-content: center;
  }

  .btn-gold--large {
    font-size: 16px;
    padding: 16px 24px;
    border-radius: 32px;
    gap: 10px;
  }

  /* --- Header --- */
  .header-inner {
    padding: 0 16px;
    height: 60px;
  }

  .header-logo {
    height: 25px;
  }

  .header-badges {
  height: 19px;
  }

  .btn-gold.header-right > a,
  .header-right .btn-gold {
    font-size: 11px;
    padding: 5px;
    width: 15vw;
    min-width: 78px;
  }

  /* --- FV (Hero) --- */
  .aims-hero {
    min-height: 0;
    flex-direction: column;
  }

  .aims-hero__photo {
    object-position: 70% center;
  }

  .aims-hero__wash {
    background: linear-gradient(180deg, rgba(248,247,243,0.95) 0%, rgba(248,247,243,0.9) 55%, rgba(248,247,243,0.82) 100%);
    opacity: 0.7;
  }

  .aims-hero__feather,
  .aims-hero__vlabel {
    display: none;
  }

  .aims-hero__content {
    flex-direction: column;
    align-items: stretch;
    padding: 40px 15px 0;
    position: relative;
  }

  .aims-hero__inner {
    max-width: 100%;
    width: 100%;
    padding: 0;
    font-size: 14px;
  }

  /* スマホ下段: 左=chips/CTA・右=presenter（テキストに被らない通常配置） */
  .header-sp-bottom.sp-only {
    display: flex;
    align-items: flex-start;
    gap: 0;
    padding: 0 15px 0;
    position: relative;
    z-index: 3;
  }

  .header-sp-bottom .header-sp-bottom-left {
    flex: 1;
    min-width: 0;
    width: 65%;
    padding-bottom: 15px;
  }

  .aims-hero__figure {
    position: static;
    flex: 0 0 35%;
    width: 35%;
    height: auto;
    align-self: flex-end;
    justify-content: center;
    margin-top: 0;
  }

  .aims-hero__figure img {
    height: auto;
    max-height: 260px;
    max-width: 100%;
    width: auto;
  }

  .aims-hero__figure-shadow {
    display: none;
  }

  .aims-hero__kicker-text {
    font-size: 11px;
    letter-spacing: 0.16em;
  }

  .aims-hero__badge { margin-top: 16px; }
  .aims-hero__badge-text { font-size: 12px; }

  .aims-hero__service {
    font-size: 14px;
    margin-top: 22px;
  }

  .aims-hero__title {
    line-height: 1.45;
  }

  .aims-hero__sub {
    font-size: 14px;
    line-height: 1.9;
    margin-top: 18px;
  }

  .aims-hero__chips {
    gap: 5px;
    margin-top: 22px;
    width: 100%;
  }

  .aims-hero__chip {padding: 9px 10px;width: 150px;position: relative;}
  .aims-hero__chip span {font-size: 11px;position: absolute;left: 50%;transform: translateX(-50%);}

  .aims-hero__ctas {
    margin-top: 24px;
    gap: 12px;
    width: 100%;
    flex-direction: column;
  }

  .aims-hero__cta-primary,
  .aims-hero__cta-secondary {
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
    padding: 13px 10px 13px 15px;
  }

  /* --- About --- */
  #about {
    padding: 56px 0;
  }

  .about-inner {
    padding: 0 20px;
  }

  .about-header {
    margin-bottom: 32px;
  }

  .about-header .section-heading {
    font-size: 22px;
  }

  .about-lead {
    font-size: 13px;
  }

  .about-body {
    flex-direction: column;
    gap: 28px;
  }

  .about-summary-card {
    padding: 15px;
  }

  .about-summary-title {
    font-size: 15px;
  }

  .about-summary-list li {
    font-size: 12px;
  }

  .about-summary-list{
    font-size: 14px;
  }

  /* --- Necessity --- */
  #necessity {
    padding: 56px 0;
  }

  .necessity-inner {
    padding: 0 20px;
  }

  .necessity-header {
    margin-bottom: 32px;
  }

  .necessity-header .section-heading {
    font-size: 22px;
  }

  .necessity-lead {
    font-size: 13px;
  }

  .necessity-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 32px;
  }

  .necessity-card:nth-child(4),
  .necessity-card:nth-child(5) {
    grid-column: auto;
  }

  .necessity-card {
    padding: 24px 20px;
    text-align: center;
    width: 100%;
  }

  .necessity-footer-text {
    font-size: 13px;
  }

  /* --- Certification --- */
  #certification {
    padding: 56px 0;
  }

  .cert-inner {
    padding: 0 20px;
  }

  .cert-header {
    margin-bottom: 32px;
  }

  .cert-steps {
    flex-direction: column;
    gap: 16px;
  }

  .cert-step {
    max-width: 100%;
    width: 100%;
  }

  .cert-arrow {
    font-size: 24px;
    transform: rotate(90deg);
  }

  /* --- Scope --- */
  #scope {
    padding: 56px 0;
  }

  .scope-inner {
    padding: 0 20px;
  }

  .scope-header {
    margin-bottom: 32px;
  }

  .scope-header .section-heading {
    font-size: 22px;
  }

  .scope-lead {
    font-size: 13px;
  }

  .scope-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .scope-table {
    min-width: 560px;
  }

  .scope-table thead th,
  .scope-table tbody td {
    font-size: 13px;
    padding: 14px 12px;
  }

  .scope-roles {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px;
  }

  .scope-role-box {
    width: 100%;
    flex: none;
    padding: 16px 8px;
  }

  .scope-role-arrow {
    display: flex;
    justify-content: center;
    font-size: 20px;
    color: var(--navy);
    padding: 0;
  }

  .scope-role-arrow i {
    transform: rotate(90deg);
  }

  .scope-role-ja {
    font-size: 16px;
  }

  .scope-note {
    font-size: 12px;
  }

  /* --- Affinity --- */
  #affinity {
    padding: 56px 0;
  }

  .affinity-inner {
    padding: 0 20px;
  }

  .affinity-header {
    margin-bottom: 32px;
  }

  .affinity-header .section-heading {
    font-size: 22px;
  }

  .affinity-lead {
    font-size: 13px;
  }

  /* --- Build Process --- */
  #build-process {
    padding: 56px 0;
  }

  .bp-inner {
    padding: 0 20px;
  }

  .bp-header {
    margin-bottom: 32px;
  }

  .bp-header .section-heading {
    font-size: 22px;
  }

  .bp-lead {
    font-size: 13px;
  }

  .bp-step {
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
  }

  .bp-num {
    grid-row: 1 / 3;
    min-height: 0;
    font-size: 18px;
  }

  .bp-step-title {
    font-size: 15px;
    padding: 16px 16px 8px;
    border-right: none;
    border-bottom: 1px solid #e0e4ea;
  }

  .bp-step-desc {
    font-size: 13px;
    padding: 8px 16px 16px;
  }

  .bp-arrow {
    justify-content: center;
  }

  /* --- Service --- */
  .service-section {
    width: 100%;
    padding: 56px 20px;
  }

  .section-header {
    margin-bottom: 40px;
  }

  .section-title {
    font-size: 22px;
  }

  .content-area {
    flex-direction: column;
    padding-left: 0;
    gap: 40px;
  }

  .left-col {
    width: 100%;
    margin-right: 0;
  }

  .left-subtitle {
    font-size: 15px;
  }

  .left-heading {
    font-size: 28px;
  }

  .left-description {
    font-size: 14px;
  }

  .left-note {
    font-size: 12px;
    margin-bottom: 24px;
  }

  .left-image {
    width: 100%;
    height: auto;
  }

  .timeline-col::before {
    height: calc(100% - 26px);
    left: 51.5px;
    background: #ccc;
  }

  /* スマホ: step-listを右に寄せ、空いた左に期間ラベル */
  .step-list {
    padding-left: 46px;
  }

  .timeline-duration {
    left: 0;
  }

  /* スマホ: サッカーボールは薄くして背景に */
  .step-ball {
    left: auto;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 110px;
    opacity: 0.15;
    z-index: 0;
  }
  .step-item.no-tags .step-title,
  .step-item.no-tags .step-desc {
    position: relative;
    z-index: 1;
  }

  .step-title {
    font-size: 16px;
  }

  .step-desc {
    font-size: 14px;
  }

  /* --- Contact --- */
  #contact {
    background-image: url('../images/contacct-sp.webp');
    background-position: center;
  }

  #contact::before {
    background: linear-gradient(
      to bottom,
      rgba(5, 26, 71, 0.92) 0%,
      rgba(5, 26, 71, 0.85) 60%,
      rgba(5, 26, 71, 0.75) 100%
    );
  }

  .contact-inner {
    padding: 48px 20px;
    align-items: center;
    text-align: center;
  }

  .contact-title {
    font-size: 22px;
  }

  .contact-desc {
    font-size: 13px;
  }

  .cta-wrap{
  display: flex;
  flex-direction: column;
  gap: 20px;
  }

  /* --- Why UPF --- */
  #why-upf {
    padding: 56px 0;
  }

  .why-inner {
    padding: 0 20px;
  }

  .why-header {
    margin-bottom: 32px;
  }

  .why-header .section-heading {
    font-size: 22px;
  }

  .why-lead {
    font-size: 13px;
  }

  .why-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .why-card:nth-child(1),
  .why-card:nth-child(2),
  .why-card:nth-child(3),
  .why-card:nth-child(4),
  .why-card:nth-child(5) {
    grid-column: 1 / -1;
  }

  .why-card {
    padding: 28px 20px;
  }

  /* --- Flow --- */
  #flow {
    padding: 56px 0;
  }

  .flow-inner {
    padding: 0 20px;
  }

  .flow-header {
    margin-bottom: 32px;
  }

  .flow-header .section-heading {
    font-size: 22px;
  }

  .flow-step {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 22px 22px 22px 26px;
  }

  .flow-step-main {
    gap: 16px;
  }

  .flow-step-title {
    font-size: 18px;
  }

  .flow-step-desc {
    font-size: 13px;
  }

  .flow-step-photo {
    width: 100%;
    height: 190px;
  }

  .flow-arrow {
    font-size: 22px;
  }

  /* --- FAQ --- */
  #faq {
    padding: 56px 0;
  }

  .faq-inner {
    padding: 0 20px;
  }

  .faq-header {
    margin-bottom: 32px;
  }

  .faq-header .section-heading {
    font-size: 22px;
  }

  .faq-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .faq-col > .faq-item:first-child {
    border-top: none;
  }

  .faq-item {
    padding: 24px 0;
    width: 100%;
  }

  .faq-question,
  .faq-answer {
    font-size: 14px;
    padding-top: 2px;
  }

  .faq-icon {
    width: 28px;
    height: 28px;
  }

  /* --- Form --- */
  #form {
    padding: 56px 0;
  }

  .form-inner {
    padding: 0 20px;
  }

  .form-header {
    margin-bottom: 32px;
  }

  .form-header .section-heading {
    font-size: 22px;
  }

  .form-card {
    padding: 28px 20px;
  }

  .cf7-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cf7-label {
    font-size: 14px;
  }

  .cf7-input,
  .cf7-select,
  .cf7-textarea {
    font-size: 14px;
  }

  .cf7-submit {
    font-size: 16px;
    padding: 16px;
  }

  /* --- Footer --- */
  #footer {
    padding: 36px 0 24px;
  }

  .footer-inner {
    flex-direction: column;
    align-items: center;
    padding: 0 20px;
    gap: 16px;
  }

  .footer-left,
  .footer-right {
    align-items: center;
    gap: 16px;
  }

  .footer-logo {
    height: 45px;
  }

  .footer-service {
    font-size: 12px;
    text-align: center;
    padding: 0 20px;
  }

  .footer-copy {
    font-size: 11px;
    text-align: center;
    border-top: none;
    margin-top: 0;
    padding: 0;
  }

  .footer-brand {
    justify-content: center;
  }

  .footer-badges {
    height: 35px;
  }

  .footer-links {
    justify-content: center;
    max-width: none;
    gap: 8px 18px;
    font-size: 11px;
  }

  .cta-wrap{
    width: 90%;
  }

  .cta-wrap .btn-gold{
    width: 100%;
    max-width: 100%;
  }

  .pc-only{
    display: none !important;
  }
  .sp-only{
    display: block;
  }
}

/* ----------------------------------------
   ONAYAMI
---------------------------------------- */
.onayami {
  background-color: var(--navy);
  padding: 80px 0;
}

.onayami .section-heading {
  text-align: center;
  color: var(--white);
  margin-bottom: 48px;
}

/* ゴールドのアンダーライン */
.onayami .section-heading::after {
  content: '';
  display: block;
  width: 48px;
  height: 3px;
  background: linear-gradient(to right, var(--gold), var(--gold-light));
  border-radius: 2px;
  margin: 14px auto 0;
}

.onayami-check {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 60px;
}

/* ── リスト：縦1列 ── */
.onayami-check ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.onayami-check li {
  position: relative;
  padding-left: 56px;
  font-size: 18px;
  font-weight: 500;
  color: var(--white);
  line-height: 1.55;
}

/* ── チェックアイコン（check-list.webp） ── */
.onayami-check li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  background-image: url('../images/check-list.webp');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* ── 重要箇所の下線 ── */
/* onayamiセクション用：ゴールド下線 */
.onayami-u {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* why-cardセクション用：ハイライト */
.why-u {
  background: linear-gradient(transparent 60%, #ff6 60%);
}

@media (max-width: 1024px) {
  .onayami-check {
    padding: 0 32px;
  }
  .onayami-check li {
    font-size: 16px;
  }
}

@media (max-width: 767px) {
  .onayami {
    padding: 56px 0;
  }
  .onayami-check {
    padding: 0 20px;
  }
  .onayami-check ul {
    gap: 16px;
  }
  .onayami-check li {
    font-size: 14px;
    padding-left: 46px;
  }
  .onayami-check li::before {
    width: 30px;
    height: 30px;
  }
}

/**ロゴループ**/

    /* ===== セクション全体 ===== */
    .sec01 {
      background-color: #fff;
      position: relative;
      overflow: hidden;
      padding-top: min(calc(66 / 1080 * 100vw), 66px);
      padding-bottom: min(calc(80 / 1080 * 100vw), 80px);
      max-width: 1920px;
      margin: auto;
    }
    @media screen and (max-width: 767px) {
      .sec01 {
        padding-top: calc(80 / 750 * 100vw);
        padding-bottom: calc(90 / 750 * 100vw);
      }
    }

    /* ===== リード文 ===== */
    .sec01__lead {
      text-align: center;
      font-weight: 600;
      font-size: min(calc(28 / 1080 * 100vw), 28px);
      line-height: 1.6;
      letter-spacing: 0.08em;
      color: #093D79;
      /**
      position: absolute;
      top: min(calc(66 / 1080 * 100vw), 66px);
      left: 50%;
      transform: translateX(-50%);
      white-space: nowrap;
      **/
    }
    @media screen and (max-width: 767px) {
      .sec01__lead {
        font-size: calc(35 / 750 * 100vw);
        top: calc(80 / 750 * 100vw);
        width: 95%;
        margin: auto;
      }
    }

    /* ===== マーキーラッパー ===== */
    .sec01__marquee {
      margin-top: min(calc(161 / 1080 * 100vw), 161px);
      overflow: hidden;
    }
    @media screen and (max-width: 767px) {
      .sec01__marquee {
        margin-top: calc(304 / 750 * 100vw);
      }
    }

    /* ===== 行コンテナ ===== */
    .sec01__marquee-rows {
      display: flex;
      flex-direction: column;
      gap: min(calc(30 / 1080 * 100vw), 30px);
    }
    @media screen and (max-width: 767px) {
      .sec01__marquee-rows {
        gap: calc(30 / 750 * 100vw);
      }
    }

    /* ===== PC 画像サイズ ===== */
    .sec01__marquee-rows.pc .adlp-marquee:nth-child(1) .adlp-marquee__img {
      width: min(calc(2950 / 1080 * 100vw), 2950px);
    }
    .sec01__marquee-rows.pc .adlp-marquee:nth-child(2) .adlp-marquee__img {
      width: min(calc(2393 / 1080 * 100vw), 2393px);
    }

    /* ===== SP 画像サイズ ===== */
    .sec01__marquee-rows.sp .adlp-marquee:nth-child(1) .adlp-marquee__img {
      width: calc(2193 / 750 * 100vw);
    }
    .sec01__marquee-rows.sp .adlp-marquee:nth-child(2) .adlp-marquee__img {
      width: calc(2367 / 750 * 100vw);
    }
    .sec01__marquee-rows.sp .adlp-marquee:nth-child(3) .adlp-marquee__img {
      width: calc(1811 / 750 * 100vw);
    }
    .sec01__marquee-rows.sp .adlp-marquee:nth-child(4) .adlp-marquee__img {
      width: calc(1893 / 750 * 100vw);
    }

    /* ===== マーキー本体 ===== */
    .adlp-marquee {
      overflow: hidden;
    }
    .adlp-marquee.--r .adlp-marquee__track {
      animation-direction: reverse;
    }

    .adlp-marquee__track {
      display: flex;
      width: fit-content;
      animation: adlp-marquee var(--marquee-duration, 30s) linear infinite;
    }

    .adlp-marquee__img {
      flex-shrink: 0;
      height: auto;
      display: block;
    }

      .ub-area{background:#f8f5ef;padding: 90px 0;font-family:"Noto Sans JP",sans-serif;color:#1a1a2e;}
      .ub-inner{width:1080px;max-width:92%;margin:0 auto;}
      .ub-head{text-align:center;margin-bottom:42px;}
      .ub-en{display:inline-block;font-size:13px;letter-spacing:.22em;color:#093D79;font-weight:700;margin-bottom:12px;}
      .ub-en::before,.ub-en::after{content:"";display:inline-block;width:28px;height:1px;background:#c8a96e;vertical-align:middle;margin:0 12px;}
      .ub-title{font-size:26px;font-weight:700;color:#1a1a2e;line-height:1.4;}
      .ub-grid{display:grid;grid-template-columns: 170px 1fr 375px;gap: 25px;align-items:start;margin-bottom: 30px;}
      .ub-lead{font-size:16px;font-weight:700;color:#222;line-height:1.6;}
      .ub-booktitle{font-size:21px;font-weight:700;color:#1a1a2e;line-height:1.5;margin-top:2px;}
      .ub-sub{font-size:16px;font-weight:700;color:#222;margin-top:2px;}
      .ub-meta{font-size:12px;font-weight:400;color:#555;margin-left:2px;}
      .ub-body{font-size:14px;line-height:1.9;color:var(--text);margin-top:16px;}
      .ub-reviews-col{display:flex;flex-direction:column;}
      .ub-reviews-img{width:100%;height:auto;display:block;border-radius:4px;}
      .ub-reviews-col .ub-note{text-align:right;margin-top:8px;}
      .ub-crown{height: 54px;width:auto;flex-shrink:0;}
      .ub-cover{border-radius:2px;overflow:hidden;}
      .ub-cover img{width:100%;height:auto;display:block;}
      .ub-author{font-size:13px;color: var(--text);letter-spacing:.04em;margin-bottom:18px;}
      .ub-author b{font-weight:700;color:#093D79;}
      .ub-reviews{display:flex;gap:18px;}
      .ub-review{flex:1;background:#fff;border:1px solid #e4ddcd;border-radius:8px;padding:18px 20px;box-shadow:0 6px 16px rgba(9,61,121,.05);}
      .ub-stars{color:#c8a96e;font-size:13px;letter-spacing:2px;margin-bottom:8px;}
      .ub-rtitle{display:block;font-size:14px;font-weight:700;color:#093D79;line-height:1.5;margin-bottom:8px;}
      .ub-rtext{font-size:12.5px;line-height:1.85;color: var(--text);}
      .ub-note{font-size:11px;color:#8a7a5a;margin-top:14px;}
      .ub-div{width:100%;height:1px;background:#e2dccf;margin:52px 0;}
      .ub-rank{text-align:center;}
      .ub-badge{display:inline-block;background:#1a1a2e;color:#c8a96e;font-size:14px;font-weight:700;padding:8px 24px;border-radius:30px;letter-spacing:.08em;margin-bottom:20px;}
      .ub-rhead{display:flex;align-items:center;justify-content:center;gap:18px;font-size:24px;font-weight:700;color:#2b2b2b;line-height: 1.4;margin-bottom:36px;}
      .ub-rhead span{color:#c8a96e;}
      .ub-rgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
      .ub-ritem{text-align:center;}
      .ub-rimg{width:100%;margin-bottom:10px;}
      .ub-rimg img{width:100%;height:auto;display:block;}
      .ub-store{font-size:13px;font-weight:700;color:#1a1a2e;line-height:1.45;margin-bottom:2px;}
      .ub-cat{display:inline;font-size:13px;color:#333;}
      .ub-num{display:inline;font-size:13px;font-weight:400;color:#333;}
      @media screen and (max-width:767px){
        .ub-area{padding:48px 0;}
        .ub-title{font-size:20px;}
        .ub-grid{grid-template-columns:1fr;gap:26px;}
        .ub-cover{width:62%;margin:0 auto;}
        .ub-booktitle{font-size:18px;}
        .ub-sub{font-size:15px;}
        .ub-body{font-size:13px;}
        .ub-reviews-img{max-width:340px;margin:0 auto;}
        .ub-reviews-col .ub-note{text-align:center;}
        .ub-reviews{flex-direction:column;gap:14px;}
        .ub-div{margin:36px 0;}
        .ub-rhead{font-size:18px;margin-bottom:26px;gap:10px;}
        .ub-crown{height:24px;}
        .ub-rgrid{grid-template-columns:repeat(2,1fr);gap:12px;}
        .ub-cat,.ub-num{font-size:12px;}
        .ub-store{font-size:12px;}
      }

      /* ===== 代表メッセージ（MESSAGE） ===== */
      .ub-area .section-ceo{margin-bottom:0;}
      .ub-area .msg__head{display:flex;align-items:center;gap:14px;margin-bottom:24px;}
      .ub-area .msg__en{display:inline-flex;align-items:center;font-size:13px;letter-spacing:.22em;color:#093D79;font-weight:700;}
      .ub-area .msg__en::before{content:"";display:inline-block;width:28px;height:1px;background:#c8a96e;margin-right:12px;}
      .ub-area .ceo-tagline{font-size:24px;font-weight:700;line-height:1.55;color:#093D79;letter-spacing:.02em;padding-left:18px;border-left:4px solid #093D79;margin-bottom:28px;}
      .ub-area .ceo-body{max-width: 100%;font-size:15px;line-height:2.0;color: var(--text);}
      .ub-area .ceo-body p{}
      .ub-area .cname{text-align:right;margin-top:24px;line-height:1.7;}

      .book__head { margin-bottom:28px; }
      .book__en {display: inline-flex;align-items: center;font-size: 13px;letter-spacing: .22em;color: #093D79;font-weight: 700;}
      .book__en::before { content:""; display:inline-block; width:34px; height:1px; background:#c8a96e; vertical-align:middle; margin-right:12px; }
      .book__grid { display:grid; grid-template-columns:230px 1fr; gap:44px; align-items:start; }
      .book-cover { box-shadow:8px 10px 28px rgba(9,61,121,.18); border-radius:2px; overflow:hidden; }
      .book-cover img { width:100%; height:auto; }
      .book-info-author { font-size:13px; color: var(--text); letter-spacing:.04em; margin-bottom:18px; text-align:left; }
      .book-info-author b { font-weight:500; color:#093D79; }

      @media screen and (max-width:767px){
        .ub-area .ceo-tagline{font-size:19px;padding-left:14px;margin-bottom:22px;}
        .ub-area .ceo-body{font-size:14px;line-height:1.95;}
        .ub-area .cname{margin-top:20px;}
      }

    @keyframes adlp-marquee {
      0%   { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }

    /* ===== 注釈 ===== */
    .sec01__note {
      font-size: min(calc(16 / 1080 * 100vw), 16px);
      line-height: 1.5;
      color: #666;
      text-align: center;
      margin-top: min(calc(71 / 1080 * 100vw), 71px);
      white-space: nowrap;
    }

    @media screen and (max-width: 767px) {
      .sec01__note {
        font-size: calc(22 / 750 * 100vw);
        margin-top: calc(65 / 750 * 100vw);
        white-space: normal;
        text-align: justify;
        width: calc(630 / 750 * 100vw);
        margin-left: auto;
        margin-right: auto;
      }

      .sp-only{
        display: block;
      }

      .pc-only{
        display: none;
      }
    }
    @media screen and (min-width: 768px) and (max-width: 980px){
    .tab-on{
      display: block !important;
    }
  }
    .form-privacy{
      margin-top: 1em;
    }

/* ============================================
   HEADER（ISO27001 LPより移植）
   フォントはbodyのNoto Sans JPを継承
   ============================================ */
.adlp-header {
  width: 100%;
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 100;
  height: calc(100 / 750 * 100vw);
}

.adlp-header__inner {
  width: min(calc(1380 / 1280 * 100vw), 1380px);
  height: 100%;
  margin: auto;
  position: relative;
  max-width: 100%;
}

.adlp-header .w100 {
  width: 100% !important;
  display: block;
}

/* width/height属性による縦伸び防止（AIMS側にimgリセットがないため）
   PC側は .adlp-header__logo-main 等で height 指定するためSP限定 */
@media screen and (max-width: 767px) {
  .adlp-header img {
    max-width: 100%;
    height: auto;
  }
}

/* --- SPヘッダー --- */
.adlp-header__logo {
  position: absolute;
  left: calc(25 / 750 * 100vw);
  width: calc(123 / 750 * 100vw);
  top: calc(28 / 750 * 100vw);
}

.adlp-header__logo2 {
  position: absolute;
  left: calc(161 / 750 * 100vw);
  width: calc(160 / 750 * 100vw);
  top: calc(28 / 750 * 100vw);
}

.adlp-header__btn {
  position: absolute;
  right: calc(25 / 750 * 100vw);
  width: calc(150 / 750 * 100vw);
  height: calc(80 / 750 * 100vw);
  top: 0;
}

.adlp-header__btn .adlp-btn {
  display: block;
  width: 100%;
  height: 100%;
}

.adlp-header__btn .adlp-btn__bg {
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  right: 0;
  width: auto;
  height: calc(50 / 750 * 100vw);
  background: linear-gradient(to bottom, #FCA500 4.225%, #FC7E00 82.306%);
  border-radius: 5px;
  box-shadow: 0 calc(4 / 750 * 100vw) calc(4 / 750 * 100vw) 0 #9D9D9D;
}

.adlp-header__btn .adlp-btn__label {
  position: absolute;
  top: calc(50% - 1px);
  left: calc(50% + 0.5px);
  transform: translate(-50%, -50%);
  font-weight: 700;
  font-size: calc(16 / 750 * 100vw);
  line-height: 1.1;
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" 1;
  white-space: nowrap;
}

/* SP電話表示（既存 .header-tel との衝突回避のためリネーム） */
.adlp-header-sp-tel {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  color: #193f94;
  position: absolute;
  top: calc(13 / 750 * 100vw);
  right: min(calc(280 / 1080 * 100vw), 350px);
  width: min(calc(316 / 1080 * 100vw), 316px);
  height: min(calc(80 / 1080 * 100vw), 80px);
  font-weight: 700;
  line-height: 1.3;
}

.adlp-header-sp-tel-text {
  font-size: min(calc(12 / 750 * 100vw), 12px);
  color: #000;
}

.adlp-header-sp-tel-text02 {
  font-size: min(calc(12 / 750 * 100vw), 12px);
  color: #000;
  position: absolute;
  right: calc(25 / 750 * 100vw);
  bottom: 3px;
  font-weight: 700;
}

.adlp-header-sp-tel-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  position: relative;
  top: 3px;
}

.adlp-header-sp-tel-number {
  font-size: calc(30 / 750 * 100vw);
  letter-spacing: 0.02em;
  line-height: 1;
  color: #193f94;
  white-space: nowrap;
  font-weight: 700;
  text-decoration: none;
}

/* --- PCヘッダー --- */
@media screen and (min-width: 768px) {
  .adlp-header {
    height: min(calc(110 / 1080 * 100vw), 110px);
  }

  .adlp-header__inner--pc {
    position: static;
    max-width: 100%;
    height: 100%;
    padding: 0 min(calc(34 / 1080 * 100vw), 34px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: min(calc(20 / 1080 * 100vw), 20px);
  }

  /* 左：ロゴ＋認証バッジ */
  .adlp-header__logos {
    display: flex;
    align-items: center;
    gap: min(calc(20 / 1080 * 100vw), 20px);
    flex: none;
  }

  .adlp-header__logo-main {
    height: min(calc(58 / 1080 * 100vw), 58px);
    width: auto;
    display: block;
  }

  .adlp-header__badge {
    height: min(calc(40 / 1080 * 100vw), 40px);
    width: auto;
    display: block;
  }

  /* 右：電話＋CTA */
  .adlp-header__right {
    display: flex;
    align-items: center;
    gap: min(calc(24 / 1080 * 100vw), 24px);
    flex: none;
  }

  .adlp-header__tel {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: min(calc(5 / 1080 * 100vw), 5px);
  }

  .adlp-header__tel-label {
    font-size: min(calc(12 / 1080 * 100vw), 12px);
    font-weight: 700;
    color: #000;
    line-height: 1;
  }

  .adlp-header__tel-number {
    display: flex;
    align-items: center;
    gap: min(calc(8 / 1080 * 100vw), 8px);
    color: #193f94;
  }

  .adlp-header__tel-number svg {
    display: block;
    flex-shrink: 0;
    width: min(calc(28 / 1080 * 100vw), 28px);
    height: min(calc(28 / 1080 * 100vw), 28px);
  }

  .adlp-header__tel-num {
    font-size: min(calc(36 / 1080 * 100vw), 36px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: .01em;
    color: #193f94;
  }

  .adlp-header__tel-divider {
    width: 100%;
    height: 1px;
    background: #e2e2e2;
    margin: 1px 0;
  }

  .adlp-header__tel-hours {
    font-size: min(calc(11 / 1080 * 100vw), 11px);
    color: #000;
    line-height: 1;
  }

  /* CTAボタン */
  .adlp-header__cta {
    display: flex;
    align-items: center;
    gap: min(calc(14 / 1080 * 100vw), 14px);
    color: #fff;
    background: linear-gradient(180deg, #f6ab3c, #ef8a00);
    border-radius: min(calc(6 / 1080 * 100vw), 6px);
    padding: min(calc(12 / 1080 * 100vw), 12px) min(calc(26 / 1080 * 100vw), 26px);
    box-shadow: 0 min(calc(4 / 1080 * 100vw), 4px) min(calc(10 / 1080 * 100vw), 10px) rgba(239, 138, 0, .3);
    transition: opacity 0.2s;
    text-decoration: none;
  }

  .adlp-header__cta:hover {
    opacity: 0.85;
  }

  .adlp-header__cta-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
  }

  .adlp-header__cta-main {
    font-size: min(calc(18 / 1080 * 100vw), 18px);
    font-weight: 800;
    color: #fff;
  }

  .adlp-header__cta-sub {
    font-size: min(calc(11 / 1080 * 100vw), 11px);
    opacity: .95;
    color: #fff;
  }

  .adlp-header__cta-arrow {
    font-size: min(calc(20 / 1080 * 100vw), 20px);
    font-weight: 700;
    line-height: 1;
    color: #fff;
  }
}