/* ===========================
   アドバンスメント LP スタイル
   =========================== */

/* ===== VARIABLES ===== */
:root {
  --red: #c0272d;
  --red-dark: #9a1f24;
  --red-light: #e8474d;
  --navy: #1a2342;
  --navy-mid: #2d3a5e;
  --gray-dark: #333333;
  --gray-mid: #666666;
  --gray-light: #999999;
  --bg: #f7f5f2;
  --bg-white: #ffffff;
  --bg-cream: #faf8f5;
  --border: #e0dbd4;
  --section-pad: 100px;
}

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

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Noto Serif JP', sans-serif; /* ← Noto Serif JP に変更 */
  background: var(--bg-white);
  color: var(--gray-dark);
  line-height: 1.8;
  font-size: 15px;
}

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

/* ===== HEADER / NAV ===== */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  height: 80px;
  display: flex;
  align-items: center;
  padding: 0;
}

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

.header-logo-img {
  height: 56px; /* ← 好みで調整 */
  width: auto;
}

.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.logo-icon {
  width: 36px;
  height: 36px;
  background: var(--red);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-icon svg {
  width: 22px;
  height: 22px;
  fill: white;
}

.logo-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  letter-spacing: 0.05em;
}

nav {
  display: flex;
  align-items: center;
  gap: 32px; 
  margin-right: 0;
  margin-left: auto; /* ← 左側に余白を自動で入れて中央寄り */
}

nav a {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--gray-dark);
  text-decoration: none;
  letter-spacing: 0.08em;
  position: relative;
  transition: color 0.2s;
}

nav a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--red);
  transition: width 0.3s;
}

nav a:hover {
  color: var(--red);
}

nav a:hover::after {
  width: 100%;
}

/* 修正後 */
.nav-cta {
  background: #000000;
  color: white !important;
  padding: 2px 16px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: space-between; /* ← 左右に振り分け */
  min-width: 110px; /* ← ボックスの幅を確保 */
}

.nav-cta::before {
  content: '▶';
  font-size: 8px;
  order: 2; /* テキストの後ろに */
}

.nav-cta:hover {
  background: var(--red-dark) !important;
  color: white !important;
}

.nav-cta::after {
  display: none !important;
}

/* ===== HAMBURGER ===== */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--gray-dark);
  transition: 0.3s;
}

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

.hamburger.open span:nth-child(2) {
  opacity: 0;
}

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

/* ===== MOBILE NAV ===== */
.mobile-nav {
  display: none;
  position: fixed;
  top: 80px;
  left: 0;
  right: 0;
  bottom: 0;
  background: white;
  z-index: 999;
  padding: 40px 30px;
  flex-direction: column;
  gap: 28px;
}

.mobile-nav.open {
  display: flex;
}

.mobile-nav a {
  font-size: 16px;
  font-weight: 500;
  color: var(--gray-dark);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 16px;
  letter-spacing: 0.08em;
}

.mobile-nav .nav-cta {
  text-align: center;
  padding: 14px;
  border-bottom: none;
}

/* ===== HERO ===== */
.hero {
  margin-top: 80px;
  position: relative;
  width: 100%;
  /* スクリーンショットと同じ横長比率 */
  aspect-ratio: 16 / 7;
  min-height: 320px;
  max-height: 700px;
  overflow: hidden;
  background: #dce4dc;
}

/* 画像は hero.png を同フォルダに置いて差し替え可能 */
.hero-photo {
  position: absolute;
  inset: 0;
  background: url('image/hero.png') center/cover no-repeat;
}

/* ===== SLIDESHOW ===== */
.slideshow {
  position: absolute;
  inset: 0;
}

.slide {
  position: absolute;
  inset: 0;
  background: center/cover no-repeat;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slide.active {
  opacity: 1;
}

/* ドットナビゲーション */
.slideshow-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}

.dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
  transition: background 0.3s;
}

.dot.active {
  background: white;
}

/* テキスト可読性のための左下グラデーション（控えめ） */
.hero-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,0.30) 0%,
    transparent 50%
  );
}

/* キャッチコピー：左下固定 */
.hero-catch {
  position: absolute;
  bottom: 9%;
  left: 5%;
}

.hero-catch-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 300;
  color: #ffffff;
  line-height: 2.0;
  letter-spacing: 0.15em;
  /* 明るい写真でも読めるよう薄いシャドウ */
  text-shadow:
    0 1px 6px rgba(0,0,0,0.15),
    0 0 20px rgba(255,255,255,0.2);
}

/* ===== SECTION COMMON ===== */
section {
  padding: var(--section-pad) 0;
}

.container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
}

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

.sp-only {
  display: none;
}

.sp-xs-only {
  display: none;
}

.section-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 10px;
}

.section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 500;
  color: var(--navy);
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.section-sub {
  margin-top: 14px;
  font-size: clamp(14px, 2vw, 16px);
  color: var(--gray-mid);
  line-height: 1.9;
}

.divider {
  width: 40px;
  height: 2px;
  background: var(--red);
  margin: 16px 0;
}

/* ===== INTRO BAND ===== */
.intro-band {
  background: #ffffff;
  padding: 80px 60px;
}

.intro-band__inner {
    display: grid;
    grid-template-columns: 280px 1fr auto;
    gap: 56px;
    align-items: start;
    max-width: 1100px;
    margin-top: 60px;
    margin-right: auto;
    margin-left: auto;
}

.intro-images img {
  width: 100%;
  border-radius: 4px;
  margin-top: -60px;
}

/* 中：本文テキスト */
.intro-text {
  font-size: 16px;
  color: var(--gray-dark);
  letter-spacing: 0.04em;
  max-width: 580px; /* ← 数字を小さくするほど狭くなる */
}

.intro-text p + p {
  margin-top: 32px;
}

/* 右：縦書きキャッチ */
.intro-catch {
  align-self: start;
}

.intro-catch-text {
  writing-mode: vertical-rl;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 300;
  color: var(--gray-dark);
  line-height: 1.3;
  letter-spacing: 0.3em;
  white-space: pre-line;
}

/* ===== SERVICE ===== */
.service-section {
  background: #ffffff;
}

.service-layout {
  display: grid;
  grid-template-columns: 1fr 420px;
  grid-template-areas:
    "heading image"
    "lead    image"
    "content image";
  align-items: center;
  gap: 0px;
}

.service-heading {
  grid-area: heading;
}

.service-lead-wrap {
  grid-area: lead;
}

.service-content {
  grid-area: content;
  padding-top: 8px;
}

/* "Service 業務案内" タイトル */
.service-title-en {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  color: var(--gray-dark);
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  line-height: 1.2;
}

.service-title-ja {
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 600;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  margin-left: 8px;
}

.service-lead {
  font-size: 15px;
  color: var(--gray-mid);
  line-height: 1.9;
  margin-bottom: 20px;
}

/* グループタイトル */
.service-group {
  margin-bottom: 8px;
}

.service-group-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(18px, 2vw, 20px);
  font-weight: 500;
  color: var(--gray-dark);
  margin-bottom: 16px;
  letter-spacing: 0.06em;
}

/* リスト */
.service-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}

.service-list li {
  font-size: 16px;
  color: var(--gray-dark);
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/* 画像アイコン */
.svc-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
  opacity: 0.75;
}

/* 点線区切り */
.service-divider {
  border: none;
  border-top: 1px dashed var(--border);
  margin: 18px 0;
  width: 75%;
}

/* 右：画像 */
.service-image {
  grid-area: image;
}

.service-img-wrap {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 4px;
}

.service-office-photo {
  width: 100%;
  height: 100%;
  background: url('image/service.png') center/cover no-repeat;
}


.message-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    "image  title"
    "image  body";
  grid-template-rows: auto 1fr;
  gap: 0 40px;
  align-items: start;
}

.message-img-wrap {
  grid-area: image;
  position: relative;
}

.message-text {
  grid-area: title;
}

.message-body {
  grid-area: body;
}

.message-photo {
  position: relative;
}

.message-photo::after {
  content: '';
  position: absolute;
  width: 80%;   /* ← 四角のサイズ */
  height: 80%;  /* ← 四角のサイズ */
  background: #ECF2F5;
  bottom: -80px;  /* ← 下にずらす */
  right: 205px;   /* ← 右にずらす */
  z-index: -1;    /* ← 画像の後ろに */
  border-radius: 4px;
}

.message-photo-img {
  border-radius: 4px;
  display: block;
  width: 100%;
  height: auto;
}

.message-name-text {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(15px, 2vw, 16px);
  font-weight: 100;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  margin-top: 13px;
  text-align: center; /* ← 中央揃え */
}

.message-title-en {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  color: var(--gray-dark);
  letter-spacing: 0.08em;
  margin-top: -10px;
  margin-bottom: 20px;
  line-height: 1.2;
}

.message-title-ja {
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 600;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  margin-left: 8px;
}

.message-body {
  font-size: clamp(14px, 2vw, 16px);
  line-height: 1.955;
  color: var(--gray-dark);
  margin-top: 0px; /* ← 好みで調整 */
}

.message-body p + p {
  margin-top: clamp(14px, 2vw, 16px);
}

/* ===== COMPANY ===== */
.company-section {
  background: #ffffff;
}

/* タイトル：横並び・中央揃え */
.company-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 0 10px;
  margin-bottom: 56px;
  text-align: center;
}

.company-header .company-lead {
  flex-basis: 100%;
  margin-top: 16px;
}

.company-title-en {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  color: var(--gray-dark);
  letter-spacing: 0.08em;
  line-height: 1.1;
}

.company-title-ja {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 600;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  margin-bottom: 12px;
}

.company-lead {
  font-size: clamp(14px, 2vw, 15px);
  color: var(--gray-mid);
  letter-spacing: 0.08em;
}

/* テーブル＋画像 */
.company-layout {
  display: grid;
  grid-template-columns: 1fr 390px;
  grid-template-areas: "table image";
  gap: 40px;
  align-items: center;
}

.company-table-wrap {
  grid-area: table;
}

.company-img-wrap {
  grid-area: image;
  overflow: hidden;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.company-table tr:not(:last-child) td,
.company-table tr:not(:last-child) th {
  border-bottom: 1px dashed var(--border);
}

.company-table th {
  width: 100px;
  padding: 12px 0;
  font-size: 16px;
  font-weight: 200;
  line-height: 1.4;
  color: var(--gray-dark);
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.company-table td {
  padding: 7px 0;
  font-size: 16px;
  color: var(--gray-dark);
  line-height: 1.4;
  font-weight: 200; /* ← 追加 */
}

.company-img-wrap {
  overflow: hidden;
}

.company-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

/* ===== PARTNER COMPANIES ===== */
.partners-block {
  margin-top: 64px;
  position: relative;
}

.partners-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 600;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  padding-bottom: 12px;
  margin-bottom: -32px;
}

.partners-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  background: #ECF2F5;
  margin: 0 calc(-50vw + 50%); /* ← 画面幅いっぱい */
  padding: 40px calc(50vw - 50%) 48px;
}

/* タイトルの中央から画面幅いっぱいに背景を敷く */
.partners-list::before {
  content: '';
  position: fixed; /* ← 画面幅いっぱい */
  left: 0;
  right: 0;
  top: 0; /* JSで動的に調整が必要なため固定は難しい */
  background: #ECF2F5;
  z-index: -1;
}

.partner-box {
  border: 1px solid #c8d8e8;
  border-radius: 4px;
  padding: 20px 24px;
  background: #ffffff;
}

.partner-box-title {
  font-size: clamp(15px, 2vw, 20px);
  color: var(--gray-dark);
  margin-bottom: 10px;
  letter-spacing: 0.05em;
  font-weight: 400;
}

.partner-box-text {
  font-size: clamp(14px, 2vw, 16px);
  color: var(--gray-dark);
  line-height: 2.0;
  letter-spacing: 0.01em;
  font-weight: 200;
}

/* ===== STAFF ===== */
.staff-section {
  background: #ffffff;
  padding-bottom: 200px; /* キャッチ下の余白 + ボックス半分 */
}

/* 左縦書きタイトル＋右コンテンツ */
.staff-layout {
  display: block;
}

.staff-title-wrap {
  text-align: center;
  margin-bottom: 48px;
}

.staff-title-vertical {
  writing-mode: horizontal-tb;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 600;
  color: var(--gray-dark);
  letter-spacing: 0.2em;
  line-height: 1.8;
  text-align: center;
}

.staff-content {
  flex: 1;
}

/* 3カラムグリッド */
.staff-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.staff-card {
  background: transparent;
}

.staff-photo-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 2px;
}

.staff-info {
  padding: 14px 4px 0;
}

.staff-name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(15px, 2vw, 20px);
  font-weight: 400;
  color: var(--gray-dark);
  margin-bottom: 8px;
  text-align: center;
}

.staff-desc {
  font-size: clamp(14px, 2vw, 16px);
  color: var(--gray-dark);
  line-height: 2.0;
}

/* キャッチボックス */
.staff-catch {
  max-width: 560px; /* ← 数字を小さくするほど狭くなる */
  margin: 48px auto 0; /* ← 中央揃え */
  padding: 20px 0px;
  background: #ECF2F5;
  border-radius: 4px;
  text-align: center;
}

.staff-catch p {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 3vw, 24px);
  font-weight: 400;
  color: var(--gray-dark);
  line-height: 2.2;
  letter-spacing: 0.1em;
}

/* ===== CONTACT ===== */
.contact-section {
  position: relative;
  overflow: visible;
  padding: 0;
  margin-top: 0px; /* ボックス半分だけ食い込む */
  z-index: 2;
}

/* 背景画像 */
.contact-inner {
  position: relative;
  background: url('image/contact-bg.png') center/cover no-repeat;
  padding: 80px 70px 300px;
  max-width: 100%;
}

.contact-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.1);
}

.contact-layout {
  position: absolute;
  top: -75px;
  left: 0;        /* ← left: 50% をやめる */
  right: 0;       /* ← 追加 */
  margin: 0 auto; /* ← 中央揃え */
  width: calc(100% - 140px);
  max-width: 900px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  z-index: 1;
}

.contact-box {
  background: rgba(51,51,51,1);
  border-radius: 6px;
  padding: 20px 35px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  text-align: center;
}

.contact-box-label {
  font-size: clamp(14px, 3.5vw, 16px);
  color: rgba(255,255,255,1);
  letter-spacing: 0.08em;
}

.phone-number {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 3.5vw, 24px);
  font-weight: 400;
  color: white;
  letter-spacing: 0.15em;
  line-height: 1.2;
}

.tel-label {
  font-size: clamp(12px, 3.5vw, 14px);
  letter-spacing: 0.2em;
  margin-right: 4px;
  vertical-align: middle;
}

.hours {
  font-size: clamp(14px, 3.5vw, 16px);
  color: rgba(255,255,255,1);
}

.contact-box-mail {
  display: flex;
  align-items: center;
  justify-content: center;
}

.mail-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  white-space: nowrap;
  color: white;
  letter-spacing: 0.1em;
  line-height: 1.8;
  text-align: center;
}

/* ===== FOOTER ===== */
footer {
  background: #ffffff;
  padding: 48px 0 24px;
  border-top: 1px solid var(--border);
}

.footer-inner {
  display: flex;
  align-items: center;
  justify-content: center; /* ← 追加 */
  gap: 40px;
  margin-bottom: 32px;
}

.footer-logo-img {
  height: 56px;
  width: auto;
  display: block;
}

.footer-address {
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.2em; /* ← 数字を大きくするほど広がる */
  font-weight: 500; /* ← 追加。400より太くなる */
}

.footer-nav {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 28px;
}

.footer-nav a {
  font-size: 14px;
  color: var(--gray-dark);
  text-decoration: none;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: color 0.2s;
}

.footer-nav a:hover {
  color: var(--red);
}

.pdf-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.footer-bottom {
  margin-top: 16px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  text-align: center;
  font-size: 11px;
  color: var(--gray-light);
  letter-spacing: 0.05em;
}

.footer-nav-pdf-wrap {
  display: flex;
  gap: 24px;
  white-space: nowrap;
}

/* ===== ANIMATIONS ===== */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-up.visible {
  opacity: 1;
  transform: none;
}

.fade-up:nth-child(2) { transition-delay: 0.1s; }
.fade-up:nth-child(3) { transition-delay: 0.2s; }
.fade-up:nth-child(4) { transition-delay: 0.3s; }

/* ===== UTILITY ===== */
.text-center { text-align: center; }
.divider-center { margin: 16px auto; }

/* ===== RESPONSIVE ===== */
@media (max-width: 900px) {
  :root { --section-pad: 70px; }

  header { padding: 0 0px; }
	
  .header-inner { padding: 0 24px; } /* ← 数字を大きくするほど外側に */	
	
  nav { display: none; }
  .hamburger { display: flex; }

  .hero-catch { bottom: 8%; left: 4%; }

  .intro-band { 
	  padding: 60px 46px;
	  max-width: 600px; /* ← 好みで調整 */
	  margin: 0 auto;
	}

  .intro-band__inner {
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px;
	align-items: start; /* ← centerからstartに変更 */
  }

  .intro-images {
    grid-column: 1;
    grid-row: 1;
	margin-top: 0;
  }
	
  .intro-images img {
    height: 100%;
	width: auto; /* ← 横幅を自動調整 */
    object-fit: contain; /* ← 切り取らずに収める */
    margin-top: 0; /* PC版のずらしをリセット */
    max-height: 680px; /* ← 好みで調整 */
	object-position: center top; /* ← 上を基準に表示 */
  }

  .intro-catch {
    grid-column: 2;
    grid-row: 1;
    align-self: start; /* ← centerからstartに変更 */
  }

  .intro-text {
    grid-column: 1 / -1;
    grid-row: 2;
    max-width: 100%;
    margin-top: 10px;
	font-size: clamp(14px, 2vw, 16px); /* ← 最小14px */
    line-height: 2.0;
  }

  .intro-catch-text {
    writing-mode: vertical-rl;
    font-size: clamp(14px, 3.5vw, 38px);
    line-height: 1.2;
    letter-spacing: 0.2em;
  }
	
.container {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 46px;
  }

  .service-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "image"
      "lead"
      "content";
    gap: 12px;
  }
	
  .sp-only {
    display: block;
  }
	
.pc-only {
  display: none;
}

  .message-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "image"
      "body";
    gap: 0px;
  }

  .message-text {
    grid-area: title;
    order: unset;
	margin-bottom: 12px;
  }

  .message-img-wrap {
    grid-area: image;
    order: unset;
    max-width: 100%;
  }
	
  .message-photo-img {
    max-width: none; /* ← 制限を解除 */
  }
	
 .message-photo {
    width: 90%; /* ← 全体の75%が画像 */
	margin-left: auto; /* ← 右寄せ */
  }
	
  .message-photo::after {
    width: 70%;        /* ← 四角の横幅 */
    height: 70%;       /* ← 四角の縦幅 */
    bottom: -20px;     /* ← 画像からの距離を近く */
    right: 40%;      /* ← 右側に出す */
  }

  .message-body {
    grid-area: body;
    order: unset;
	margin-top: 24px;
  }

  .message-title-en {
    font-size: 40px;
    margin-bottom: 0px;
  }

  .message-title-ja {
    display: block;
    margin-left: 0;
    font-size: 20px;
	margin-top: 10px;
    margin-bottom: 15px;
  }
	
	.message-name-text {
	margin-top: 10px;
	}

  .company-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "image"
      "table";
    gap: 24px;
  }

  .company-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    margin-bottom: 30px;
  }
	
  .company-header .company-lead {
    margin-top: -10px;
  }
	
 .service-title-en {
    font-size: 40px;
    margin-bottom: 0px;
  }

  .service-heading {
    margin-bottom: 0;
  }
	
  .service-title-en::after {
    content: '';
    display: none;
  }

  .service-title-ja {
    margin-left: 0;
    padding-left: 0;
    display: block;
    margin-top: 10px;
    margin-bottom:15px;
  }
	
  .service-lead-wrap {
    margin-top: 20px;
    padding-top: 0;
  }
	
  .service-list li {
    font-size: 15px; /* ← 好みで調整 */
  }

.partners-title {
    text-align: center;
    margin-bottom: -26px;
  }

  .partner-box-title {
    text-align: center;
  }

  .partner-box-text {
    display: block;
    /* ・区切りを1行1社に */
  }	
	
.staff-layout {
    grid-template-columns: 1fr;
  }

  .staff-title-wrap {
    text-align: center;
  }

  .staff-title-vertical {
    writing-mode: horizontal-tb; /* 縦書きを横書きに */
    letter-spacing: 0.2em;
  }

  .staff-grid {
    grid-template-columns: 1fr; /* 1カラムに */
  }

  .staff-name {
    text-align: center;
  }

  .staff-grid { grid-template-columns: 1fr 1fr; }
	
.contact-layout {
  position: absolute;
  top: 70px;
  left: 0;        /* ← left: 50% をやめる */
  right: 0;       /* ← 追加 */
  margin: 0 auto; /* ← 中央揃え */
  width: calc(100% - 140px);
  max-width: 600px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  z-index: 1;
}

  .contact-box {
    padding: 20px 0px;
    gap: 0px;
  }

  .mail-text {
    font-size: 20px;
  }

  .footer-inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
	gap: 18px; /* ← 現在の値を小さく */
  }
	
.footer-logo {
    margin-bottom: 0px; /* ← 数字を大きくするほど広がる */
  }

  .footer-address {
    text-align: center;
  }

    .footer-nav {
    display: grid;
    grid-template-columns: repeat(4, auto);
    justify-content: center;
    gap: 16px 24px;
  }

  .footer-nav-pdf-wrap {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    gap: 24px;
    white-space: nowrap;
  }

  .footer-nav-pdf {
    white-space: nowrap;
  }

  .footer-bottom {
    text-align: center;
  }

}

@media (max-width: 600px) {
  :root { --section-pad: 56px; }

  .hero {
    aspect-ratio: 4 / 3;
    max-height: none;
    min-height: 260px;
  }

  .hero-catch-title { font-size: clamp(16px, 5vw, 22px); }

  .staff-grid {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin: 48px auto 0;
  }
	
.staff-layout {
   grid-template-columns: 1fr;
    grid-template-rows: auto; /* ← 追加 */
    gap: 0;
  }

  .company-table th {
    width: 100px;
    font-size: 12px;
  }

  .company-table td { font-size: 12px; }

  .contact-box { padding: 28px 30px; }

.contact-layout {
  position: absolute;
  top: 45px;
  left: 0;        /* ← left: 50% をやめる */
  right: 0;       /* ← 追加 */
  margin: 0 auto; /* ← 中央揃え */
  width: calc(100% - 100px);
  max-width: 900px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  z-index: 1;
}
}
	
@media (max-width: 500px) {
  .sp-xs-only {
    display: block;
  }
	
	 .mail-text {
    font-size: 12px;
  }
}