/*
Theme Name: KDrive
Theme URI: 
Description: KDrive
Version: 1.0.0
Author: irotogi
Author URI: 
*/

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

body {
  padding: 0px;
  margin: 0px auto;
  font-family: 'Noto Sans JP', sans-serif;
  background-color: #fff;
}
h1 {
  font-size: clamp(5rem, 1.971rem + 6.32vw, 7.5rem);
  color: #333;
}
h2 {
  font-size: clamp(1.5rem, 1.197rem + 0.63vw, 1.75rem);
  color: #333;
}
p {
  font-size: clamp(1rem, 0.849rem + 0.32vw, 1.125rem);
  color: #333;
}

/* ヘッダー */
header {
  position: sticky;
  top: 0;           /* 画面の上端から0pxで固定 */
  z-index: 1000;    /* コンテンツより前面に出す */
  background: #fff; /* 背景をつけないと下の文字が透ける */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.header-sp {
  display: none;
}
.header-pc {
  display: flex;
  justify-content: space-between;
  margin: 0 30px;
  align-items: center;
}
.header-pc ul {
  display: flex;
  justify-content: center;
  gap: clamp(1.25rem, -1.022rem + 4.74vw, 3.125rem);
  align-items: center;
}
.header-pc li {
  list-style: none;
  position: relative;
}
.header-pc a {
  text-decoration: none;
  text-align: center;
  font-size: clamp(0.875rem, 0.572rem + 0.63vw, 1.125rem);
  color: #000;
  font-weight: bold;
}
.header-pc a:hover {
  color: #ff6a00;
}
.header-pc a img {
  width: clamp(9.375rem, 1.045rem + 17.38vw, 16.25rem);
  height: auto;
  transition: transform 0.3s ease;
}
.header-pc a img:hover {
  transform: scale(1.1);
}
.header-pc li::before {
  content: "";
  position :absolute;
  right: clamp(3.813rem, 1.995rem + 3.79vw, 5.313rem);
  top: 50%;
  width: 0.5em;             /* 棒の太さ */
  height: 2.0em;             /* 棒の長さ */
  background: #ff6a00;       /* オレンジ */
  transform: translateY(-50%) skewX(-20deg);  /* 斜めにする */
}
.header-pc li:last-child::before {
  display: none;
}
.header-pc li:first-child::before {
  left: -42%;
}

/* ハンバーガーボタン（PCでは非表示） */
.hamburger {
  display: none;
  width: 48px;
  height: 48px;
  position: relative;
  border: none;
  background: transparent;
  cursor: pointer;
}
.hamburger span {
  position: absolute;
  left: 10px;
  right: 10px;
  height: 2px;
  background: #222;
  transition: transform .25s ease, top .25s ease, opacity .2s ease;
}
.hamburger span:nth-child(1){ top: 14px; }
.hamburger span:nth-child(2){ top: 23px; }
.hamburger span:nth-child(3){ top: 32px; }

/* トップページ */
.main {
  position: relative;
  width: 100%;
  height: 90vh; /* 高さはお好みで */
  overflow: hidden;
}

/* スライド全体 */
.slideshow {
  position: relative;
  width: 100%;
  height: 100%;
}

/* 各スライド共通 */
.slide {
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0 と同じ */
  opacity: 0;
  background-size: cover;
  background-position: center;
  transition: opacity 1s ease; /* フェード用 */
}

/* JSでONになるクラス */
.slide.active {
  opacity: 1;
}


/* 1枚目 */
.slide1 {
  background: 
    linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), /* 黒を50%かける例 */
    url("images/32519285_m.jpg");
  background-size: cover;
  background-position: center;
}

/* 2枚目 */
.slide2 {
  background: 
    linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), /* 黒を50%かける例 */
    url("images/3658299_m.jpg");
  background-size: cover;
  background-position: center;
}


/* スライド内テキスト */
.slide-text {
  position: absolute;
  bottom: 20%;
  left: 10%;
  color: #fff;
  font-size: clamp(2.5rem, 0.985rem + 3.16vw, 3.75rem);
  font-weight: bold;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  font-family: "Noto Serif JP", serif;
  text-shadow: 
  2px 2px 4px #2e0d66,
  -2px -2px 4px #2e0d66,
   2px -2px 4px #2e0d66,
  -2px  2px 4px #2e0d66,
  0 0 24px rgba(0,0,0,0.7),
   0 0 48px rgba(0,0,0,0.5);
}
.slide-text2 {
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  transform: translateY(-50%);  /* X方向のセンタリングはやめる */
  text-align: center;
}

/* バナー */
.banner {
  position: absolute;
  bottom: 10%;
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.banner a img {
  width: clamp(18.75rem, 11.177rem + 15.8vw, 25rem);
}

/* ドットナビ */
.dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  background: #ccc;
  border-radius: 50%;
  cursor: pointer;
}

.dot.active {
  background: orange;
}


/* KDriveについて */
.title {
  display: flex;
  flex-direction: column;
  text-align: center;
  margin-top: 100px;
  margin-bottom: 80px;
}
.title h1 {
  color:#47198833;
  line-height: 1.0;
  margin-bottom: 10px;
}
.about-kdrive {
  background-image: url("images/silhouette_car.svg");
  background-repeat: no-repeat;
  background-position: left bottom;   /* 左下に配置 */
  background-size: 50%;               /* セクション幅に対してのサイズ感 */
  padding: 10px 0;                 /* 余白 */
  max-width: 100%;
}
.content1 {
  display: flex;
  flex-direction: column;
  text-align: center;
  max-width: 70%;
  margin: 0 auto 150px auto;
}
.content1 h2 span {
  color: #421D77;
}
.content1 h2 {
  margin-bottom: 40px;
}
.content1 p {
  line-height: 1.5;
  margin-bottom: 60px;
}
.content1 a img {
  max-width: 300px;
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
.content1 a img:hover {
  transform: scale(1.1);
}
.sp-only {
  display: none;
}


/* 事業紹介 */
.backgroundcolor {
  background-color: #4719880D;
  padding: 100px 0 200px 0;
}
.backgroundcolor .title {
  margin-top: 0;
}
.content2 {
  display: block;
  max-width: 100%;
}
.content2-item {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-bottom: 100px;
}
.content2-item img {
  width: clamp(18.75rem, 7.39rem + 23.7vw, 28.125rem);
}
.content2 a img {
  width: clamp(21.875rem, 18.088rem + 7.9vw, 25rem);
  height: auto;
  display: block;
  margin: 0 auto;
  transition: transform 0.3s ease;
}
.content2 a img:hover {
  transform: scale(1.1);
}


/* お知らせ */
.content3 {
  max-width: 70%;
  display: block;
  margin: 0 auto 100px auto;
}
.content3-item {
  display: flex;
  justify-content: flex-start;
  gap: 60px;
  border-bottom: 1px solid #CEBEE6;
  padding-bottom: 30px;
  padding-top: 30px;
}
.content3-item:first-child {
  border-top: 1px solid #CEBEE6;
  padding-top: 30px;
}
.content3-inner {
  display: flex;
  flex-direction: column;
  margin-bottom: 60px;
}
.content3 a img {
  max-width: 350px;
  width: 100%;
  height: auto;
  display: block;
  margin: 100px auto 0 auto;
  transition: transform 0.3s ease;
}
.content3 a img:hover {
  transform: scale(1.1);
}
.content3-news {
  background-image: url("images/silhouette_car2.svg");
  background-repeat: no-repeat;
  background-position: right bottom;   /* 左下に配置 */
  background-size: 40%;               /* セクション幅に対してのサイズ感 */
  padding: 20px 0;       
}
.content3-news a img {
  max-width: 350px;
  width: 100%;
  height: auto;
  display: block;
  margin: 100px auto 100px auto;
  transition: transform 0.3s ease;
}
.content3-news a img:hover {
  transform: scale(1.1);
}

/* お問い合わせ */
.contact-back {
  background-color: #421D77;
  padding: 100px 0 200px 0;
}
.contact-back .title {
  margin-top: 0;
}
.contact-back .title h1 {
  color: #ffffff33;
}
.contact-back .title h2 {
  color: #fff;
}
.content4 {
  max-width: 85%;
  display: flex;
  flex-direction: column;
  text-align: center;
  margin: 0 auto;
}
.content4 h2 {
  color: #fff;
  line-height: 1.8;
}
.contact-item {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-top: 100px;
}
.contact-item h2 {
  font-size: 48px;
  line-height: 1.0;
}

.contact-item a img {
  max-width: 100%;
  width: 500px;
  height: auto;
  display: block;
  margin: 0 auto;
  transition: transform 0.3s ease;
}
.contact-item a img:hover {
  transform: scale(1.1);
}




/* フッター */
.footer-inner {
  display: flex;
  justify-content: space-between;
  max-width: 90%;
  margin: 30px auto;
}
.footer-left {
  display: flex;
  flex-direction: column;
}
.footer-left img {
  max-width: 300px;
}
.footer-left p {
  margin-top: 10px;
  margin-left: 10px;
}
.footer-left p span {
  font-weight: bold;
  font-size: 24px;
}
.footer-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 30px;
  margin-top: 30px;
}
.footer-pc ul {
  display: flex;
  justify-content: center;
  gap: 50px;
  align-items: center;
}
.footer-pc li {
  list-style: none;
  position: relative;
}
.footer-pc a {
  text-decoration: none;
  text-align: center;
  font-size: 18px;
  color: #333;
  font-weight: bold;
}
.footer-pc a:hover {
  color: #ff6a00;
}
.footer-pc li::before {
  content: "";
  position :absolute;
  left: -35%;
  top: 50%;
  width: 0.5em;             /* 棒の太さ */
  height: 2.0em;             /* 棒の長さ */
  background: #ff6a00;       /* オレンジ */
  transform: translateY(-50%) skewX(-20deg);  /* 斜めにする */
}
.sns {
  display: flex;
  justify-content: center;
  gap: 30px;
}
.sns img {
  transition: transform 0.3s ease;
}
.sns img:hover {
  transform: scale(1.1);
}
.footer-item {
  display: flex;
  justify-content: center;
  gap: 30px;
}
.footer-item img {
  max-width: 250px;
  width: 100%;
  transition: transform 0.3s ease;
}
.footer-item img:hover {
  transform: scale(1.1);
}

/* コピーライト */
.copyright {
  background-color: #F1F1F1;
  padding: 10px;
}
.copyright p {
  font-size: 14px;
  text-align: center;
}



/* 事業紹介ページ */
.page-title {
  background: 
  linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)),
    url("images/25119539_p.jpg");
  background-repeat: no-repeat;   /* ← 繰り返しを止める */
  background-position: center;    /* ← 中央に配置 */
  background-size: cover;         /* ← 横幅いっぱいに拡大して高さトリミング */
  max-width: 100%;
  height: 350px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: 100px;
}
.page-title h1 {
  font-size: clamp(3.75rem, 2.235rem + 3.16vw, 5rem);
  color: #421D77;
  line-height: 1.4;
}
.page-title p {
  color: #333;
  font-weight: bold;
}
.title-text {
  position: absolute;
  bottom: 10%;
  left: 5%;
}
.sub-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 100px;
}
.sub-title h1 {
  font-size: clamp(3.75rem, 2.235rem + 3.16vw, 5rem);
  color: #CEBEE6;
  line-height: 1.2;
}
.sub-title p {
  color: #421D77;
  font-weight: bold;
}
.mission-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  width: 75%;
  margin: 0 auto;
  padding-bottom: 60px;
}
.mission-content img {
  max-width: 1000px;
  width: 100%;
}
.mission-content p {
  line-height: 1.6;
  display: block;
  margin-bottom: 20px;
}
.mission-content p span {
  font-weight: bold;
  display: block;
  margin-bottom: 20px;
}
.service-box {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  margin: 0 auto 0 auto;
}
.service-box-back {
  background-color: #4719880D;
  padding: 100px 0;
}
.service-box2 {
  margin: 100px 0;
}
.service-text {
  display: flex;
  flex-direction: column;
  width: 35%;
}
.service-title {
  margin-bottom: 30px;
}
.service-title p {
  font-weight: bold;
}
.service-title p span {
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  display: inline-flex;        /* Flexboxを使う */
  justify-content: center;     /* 横方向の中央揃え */
  align-items: center;         /* 縦方向の中央揃え */ 
  width: 2em;   
  height: 2em;
  border-radius: 50%;
  background-color: #421D77;
  margin-right: 10px; 
  padding-bottom: 2px;
}
.service-item {
  margin-bottom: 30px;
  display: block;
}
.service-item p span {
  background-color: #47198833;
  padding: 10px;
  display: inline-block;
  margin-bottom: 5px;
}
.service-image img {
  max-width: 500px;
  width: 100%;
}
.service-image {
  position: relative;
}
.service-image::before {
  content: "";
  position: absolute;
  top: 50px;   /* ずらし量（縦） */
  left: 50px;  /* ずらし量（横） */
  width: 100%;
  height: 100%;
  background-color: #47198833; /* 背景色（例: 薄紫） */
  z-index: -1; /* 画像の後ろに回す */
  border-radius: 0; /* 画像と同じ角丸があれば指定 */
}

/* 追加test */
.service-content1 {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  margin-bottom: 150px;
}
.service-content1::after {
  content: "";
  display: block;
  width: 75%; /* 線の長さ */
  border-bottom: 3px solid #cbbbe2;
  margin: 0 auto; /* 中央寄せするなら */
  padding-bottom: 150px;
}
.service-line::before {
  content: "";
  display: block;
  width: 75%; /* 線の長さ */
  margin: 0 auto; /* 中央寄せするなら */
  padding-bottom: 150px;
  border-top: #cbbbe2 3px solid;
}
.service-item {
  position: relative;
  width: 100%;
  margin-right: 10%;
  margin-bottom: 100px;
}
.service-item h1 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.375rem, -0.291rem + 3.48vw, 2.75rem);
  position: absolute;
  left: 50%;
  bottom: 2%;
}
.service-item img {
  width: clamp(31.25rem, 23.677rem + 15.8vw, 37.5rem);
}
.service-item-inner {
  display: flex;
  justify-content: center;
  gap: clamp(0.625rem, -0.89rem + 3.16vw, 1.875rem);
}
.service-item-inner img {
  width: clamp(12.5rem, 1.14rem + 23.7vw, 21.875rem);
}
.service-driver {
  margin-bottom: 100px;
}
.service-item-plus img {
  width: clamp(31.25rem, 0.958rem + 63.19vw, 56.25rem);
}

/* 会社案内ページ */
.company-title {
  background: 
  linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)),
    url("images/5151267_m.jpg");
    background-repeat: no-repeat;   /* ← 繰り返しを止める */
  background-position: bottom;    /* ← 中央に配置 */
  background-size: cover;         /* ← 横幅いっぱいに拡大して高さトリミング */
}

.message {
  background-color: #4719880D;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(1.875rem, -1.912rem + 7.9vw, 5rem);
  padding: 100px 0;
  margin-bottom: 200px;
}
.message-image {
  width: clamp(18.75rem, 7.39rem + 23.7vw, 28.125rem);
}
.message-image img {
  width: 100%;
  aspect-ratio: 1 / 1;  /* 正方形に固定 */
  object-fit: cover;
}
.message-text {
  width: 40%;
}
.message-text h2 {
  font-family: "Noto Serif JP", serif;
  line-height: 1.1;
  font-size: clamp(1.5rem, 0.894rem + 1.26vw, 2rem);
  margin-bottom: 30px;
}
.message-text h2 span {
  font-size: 16px;
  margin-left: 2px;
}
.message-text p {
  line-height: 1.6;
}
.message-text p span {
  font-weight: bold;
  display: block;
  margin-bottom: 10px;
}
.company-info {
  width: 80%;
  text-align: center;
  margin: 0 auto;
}
.info-title p {
  font-weight: bold;
  background-color: #47198833;
  padding: 30px 0;
}
.info-item {
  display: flex;
  border-bottom: 2px solid #cbbbe2; /* 横の区切り線 */
  padding: 30px 0 30px 15%;
}

.info-categoly {
  flex: 0 0 20%;              /* 幅を固定（例: 20%） */
  display: flex;
  align-items: center;        /* 縦方向の中央揃え */
  font-weight: bold;
}

.info-text {
  flex: 1;                    /* 残り幅いっぱい使う */
  display: flex;
  align-items: center;        /* 縦方向の中央揃え */
  text-align: left;
}
.sub-title-1 {
  margin-top: 200px;
}
.access {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 200px;
  background-color: #4719880D;
  padding: 100px 0;
}

.adress {
  text-align: left;
  width: 50%;          /* 親要素幅いっぱい */
  margin-top: 30px;     /* マップとの間に余白 */
}
.adress p {
  line-height: 1.6;
  text-align: left;
  margin-left: 20px;
}
.adress p span {
  font-weight: bold;
  margin-bottom: 10px;
  display: inline-block;
  background-color: #421D77;
  border-radius: 10px;
  color: #fff;
  padding: 10px 20px;
}
.adress-color p span {
  background-color: #ff6a00;
}
.adress-inner {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 700px;     /* マップと同じ幅に制限 */
}
.map iframe {
  width: 700px;        
  height: 500px;  
}



/* お知らせページ */
.news-title {
  background: 
  linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)),
    url("images/32844287_m.jpg");
    background-repeat: no-repeat;   /* ← 繰り返しを止める */
  background-position: top;    /* ← 中央に配置 */
  background-size: cover;         /* ← 横幅いっぱいに拡大して高さトリミング */
}
.news-inner {
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 80px;
  margin: 0 auto;
}
.news-item {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  width: 100%;
  border-bottom: 1px solid #CEBEE6;
  padding: 30px 0;
}
.news-item:first-child {
  border-top: 1px solid #CEBEE6;
}
.news-day {
  flex: 0 0 20%;
  display: flex;
  align-items: center;
  margin-left: 10%;
}
.news-text {
  flex: 1;
  display: flex;
  align-items: center;
}
.news-content {
  width: 60%;
  border-top: 3px solid #CEBEE6;
  border-bottom: 3px solid #CEBEE6;
  padding: 80px 0 30px 0;
  margin-bottom: 200px;
}
.news-number {
  display: block;
  margin: 0 auto;
  text-align: center;
  padding-top: 30px;
}
.archive {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  width: 15%;
}
.archive-title {
  border-bottom: 3px solid #CEBEE6;
  width: 100%;
  font-weight: bold;
  padding-left: 5px;
}
.archive-item {
  width: 100%;
  margin-top: 10px;
  padding-left: 5px;
}
.archive-item p {
  border-bottom: 1px solid #CEBEE6;
  padding-bottom: 10px;
  padding-top: 10px;
}


/* お問い合わせページ */
.contact-title {
  background: 
  linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)),
    url("images/23322330_m.jpg");
    background-repeat: no-repeat;   /* ← 繰り返しを止める */
  background-position: center;    /* ← 中央に配置 */
  background-size: cover;         /* ← 横幅いっぱいに拡大して高さトリミング */
}
.contact-tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 150px auto;
  background-color: #4719880D;
  padding: 50px 0;
  width: 70%;
}
.contact-mail {
  display: flex;
  flex-direction: column;
  align-items: start;
  width: 70%;
  margin: 0 auto 100px auto;
  border-bottom: #cbbbe2 3px solid;
}
.mail-text {
  border-bottom: #cbbbe2 3px solid;
  width: 100%;
  padding-bottom: 30px;
  padding-left: 20px;
}
.mail-text h2 {
  margin-bottom: 30px;
}

.mail-form {
  display: block;
  max-width: 900px;   /* 横幅を制限 */
  width: 100%;
  margin: 100px auto 100px auto;     /* 中央寄せ */
}
.mail-form .wpcf7 input[type="text"],
.mail-form .wpcf7 input[type="email"],
.mail-form .wpcf7 input[type="tel"],
.mail-form .wpcf7 textarea {
  width: 100%;          /* コンテナ幅いっぱいにする */
  font-size: 16px;      /* 文字も少し大きめに */
  padding: 12px;
  border-radius: 6px;
  border: 1px solid #ccc;
  margin-bottom: 20px;
}
.mail-form .wpcf7 input[type="submit"] {
  display: inline-block;
  background-color: #471988;  /* ブランドカラー */
  color: #fff;               /* 文字色 */
  font-size: 18px;
  font-weight: bold;
  padding: 14px 40px;
  border: none;
  border-radius: 6px;        /* 角丸 */
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

/* ホバー時の効果 */
.mail-form .wpcf7 input[type="submit"]:hover {
  background-color: #2e0d66;  /* 少し濃い紫 */
  transform: translateY(-2px); /* ふわっと浮く */
}

/* クリック時（押し込み） */
.mail-form .wpcf7 input[type="submit"]:active {
  transform: translateY(0);
}

.mail-form img {
  display: block;
  margin: 0 auto;
  width: 80%;
}
.recruit {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.recruit-1 {
  background-color: #4719880D;
  padding: 50px;
  margin-bottom: 50px;
}
.recruit-1 h2 {
  margin-bottom: 10px;
}
.recruit-2 {
  max-width: 1000px;
  width: 100%;
  margin-bottom: 30px;
}
.recruit-3 {
  margin-bottom: 200px
}
.recruit-2 {
  transition: transform 0.3s ease;
}
.recruit-2:hover {
  transform: scale(1.1);
}
.archive-item ul {
  list-style: none;   /* ●を消す */
  padding: 0;         /* 左の余白を消す */
  margin: 0;
}

.archive-item li {
  margin-bottom: 8px; /* 行間を調整 */
}

.archive-item li a, .archive-item li a:visited {
  text-decoration: none;   /* 下線消す */
  color: #333;             /* 文字色 */
}

.archive-item li a:hover {
  color: #471988;          /* ホバー時の色（ブランドカラーにすると◎） */
}
.news-text p a, .news-text p a:visited {
  text-decoration: none;
  color: #333;
}
.news-text p a:hover {
  color: #471988;          /* ホバー時の色（ブランドカラーにすると◎） */
}
.single-content {
  padding: 30px 0 30px 0;
}
.news-single-date {
  margin-bottom: 20px;
}
.text a, .text a:visited {
  text-decoration: none;
  color: #333;
}
.text a:hover {
  color: #471988;          /* ホバー時の色（ブランドカラーにすると◎） */
}





/* 動きをつける */
/* 初期状態（動かす要素だけ .reveal を付ける） */
.reveal { 
  opacity: 0; 
  transform: translateY(16px);
  will-change: transform, opacity;
}
.reveal.is-visible { 
  opacity: 1; 
  transform: none; 
  transition: opacity 1.5s ease, transform 1.5s ease;
}

/* 種類別（data-anim で出し方を変える） */
.reveal[data-anim="fade-up"] {}
.reveal[data-anim="slide-right"],
.reveal[data-anim="slide-left"]{
    transform: translateY(26px);  /* ← 横ずれをやめる */}
/* スタッガー（親に data-stagger が付いてると子を段階表示） */
[data-stagger] .reveal { transition-delay: var(--delay, 0s); }





/*--------------
  スマホ用スタイル
--------------*/
@media screen and (max-width:767px) {
  body {
    min-width: 375px;
    margin: 0;
  }
  h1 {
    font-size: 60px;
  }
  h2 {
    font-size: 18px;
  }
  p {
    font-size: 15px;
  }
  .reveal[data-anim="slide-right"],
  .reveal[data-anim="slide-left"]{
    transform: translateY(16px);  /* ← 横ずれをやめる */
  }
 .header-pc {
  display: none;
 }
header {
  background-color: #fff;
}
.header-logo {
  margin-left: 0;
  max-width: 200px;
}
.header-logo img {
  padding-top: 8px;
  padding-left: 10px;
  width: 100%;
}

.header-pc {
  display: none;
}
.header-sp {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
  margin: 0 auto;
}
#menu-sp {
  display: block;
  width: 100%;
  max-width: 30px;
  height: auto;
  position: absolute;
  top: 30px;
  right: clamp(1.875rem, 1.277rem + 2.55vw, 2.5rem);
}
#nav-sp {
  display: none;
  position: fixed;
  inset: 0;                 /* top/right/bottom/leftをまとめて全画面 */
  height: 100%;
  background-color: #421D77;
  width: 100%;
  z-index: 1001;  
}
#nav-close {
  position: absolute;
  top: 20px;
  right: clamp(1.5rem, 1rem + 2vw, 2rem);
  max-width: 60px;
  width: 100%;
  display: grid;
  place-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
}
#nav-close img {
  max-width: 60px;
  width: 100%;
  pointer-events: none;
}
#nav-sp ul {
  margin: 150px auto 0 auto;
  text-align: center;
}
#nav-sp a {
  text-decoration: none;
  font-size: 16px;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
}
#nav-sp li {
  list-style: none;
  margin-bottom: 30px;
  border-bottom: 0.5px solid #fff;
  padding-bottom: 30px;
}
#nav-sp li:first-child {
  border-top: 0.5px solid #fff;
  padding-top: 30px;
}
#nav-sp li:last-child {
  border-bottom: none;
}
.banner a img {
  max-width: 280px;
  width: 100%;
}

.slide-text {
  font-size: 30px;
  position: absolute;
  top: 25%;
  left: 10%;
  transform: none;
  right: 10%;      /* ← 両サイドから10%ずつに収める */
  width: auto;     /* ← 明示的にautoに */
}
.about-kdrive {
  background-size: 80%;
}
.title {
  margin-bottom: 50px;
}
.title h1 {
  margin-bottom: 0;
  letter-spacing: -0.03em;
}
.content1 {
  max-width: 80%;
}
.content1 h2 {
  margin-bottom: 30px;
  margin-left: 10%;
  font-size: 16px;
  text-align: left;
}
.pc-only {
  display: none;
}
.sp-only {
  display: inline;
}
.content1 p {
  text-align: left;
  width: 100%;
  display: block;
  margin: 0 auto 50px auto;
}
.content1 a img {
  max-width: 230px;
  transition: none;
}
.backgroundcolor {
  padding: 100px 0;
}
.content2-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  margin-bottom: 50px;
}
.content2-item img {
  width: clamp(15.625rem, 0.678rem + 63.78vw, 31.25rem);
}
.content2 a img {
  max-width: 250px;
  width: 100%;
}
.content3-news {
  background-size: 80%;
  padding: 0;
}
.content3 {
  max-width: 80%;
  margin: 0 auto 50px auto;
}
.content3-item {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-bottom: 20px;
  padding-top: 20px;
}
.content3-item:first-child {
  padding-top: 20px;
}
.content3-news a img {
  max-width: 250px;
  margin: 50px auto 100px auto;
  transition: none;
}
.contact-back {
  padding: 100px 0 100px 0;
}
.content4 {
  max-width: 80%;
}
.content4 h2 {
  line-height: 1.5;
  font-size: 16px;
  text-align: left;
  width: 90%;
  margin: 0 auto;
}
.contact-item {
  display: flex;
 flex-direction: column;
  gap: 20px;
  margin-top: 50px;
}
.contact-item a img {
  width: 250px;
  transition: none;
}
.footer-inner {
  display: flex;
  flex-direction: column;
  max-width: 90%;
  margin: 30px auto;
}
.footer-left {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.footer-left img {
  max-width: 250px;
}
.footer-left p {
  margin: 0 auto;
}
.footer-right {
  align-items: center;
}
.footer-pc ul {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}
.footer-pc li::before {
  display: none;
}
.footer-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.footer-left p span {
  font-size: 16px;
}
.page-title {
  height: clamp(12.5rem, 0.542rem + 51.02vw, 25rem);
}
.title-text {
  bottom: 5%;
  left: 5%;
}
.page-title h1 {
  font-size: 60px;
  line-height: 1.2;
  letter-spacing: -0.03em;
}
.sub-title {
  margin-bottom: 50px;
}
.sub-title h1 {
  font-size: 60px;
  line-height: 1.0;
  letter-spacing: -0.02em;
}
.mission-content {
  gap: 50px;
  width: 90%;
  margin: 0 auto 50px auto;
  padding-bottom: 0;
}
.mission-content p {
  line-height: 1.6;
  display: block;
  margin-bottom: 0;
  width: 90%;
}
.service-item {
  margin-bottom: 50px;
  margin-right: 0;
}
.service-item img {
  max-width: 280px;
  width: 100%;
}
.service-line::before {
  width: 90%;
  padding-bottom: 50px;
}
.service-item h1 {
  font-size: 16px;
  position: absolute;
  left: 25%;
  bottom: 5%;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.service-item-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}
.service-item-inner img {
  width: 75%;
}
.service-content1::after {
  width: 90%;
  padding-bottom: 50px;
}
.service-content1 {
  margin-bottom: 50px;
}
.service-driver {
  margin-bottom: 50px;
}
.service-item-plus img {
  width: 90%;
}
.message {
  flex-direction: column;
  gap: 50px;
  padding: 50px 0;
  margin: 0 auto 100px;
}
.message-image {
  width: 80%;
  display: block;
}
.message-text {
  width: clamp(17.5rem, 10.325rem + 30.61vw, 25rem);
}
.message-text h2 {
  line-height: 0.8;
  margin-bottom: 20px;
}
.info-item {
  display: flex;
  border-bottom: 2px solid #cbbbe2;
  padding: 30px 0 30px 5%;
}
.company-info {
  width: 90%;
}
.sub-title-1 {
  margin-top: 100px;
}
.access {
  margin-bottom: 100px;
  padding: 50px 0;
}
.map iframe {
  height: clamp(18.75rem, 6.792rem + 51.02vw, 31.25rem);   
  width: clamp(18.75rem, 6.792rem + 51.02vw, 31.25rem);
}
.adress-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 90%;
}
.adress {
  text-align: left;
  width: 90%;
  margin-top: 30px;
}
.news-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  margin: 0 auto 100px auto;
}
.news-content {
  width: 90%;
  padding: 80px 0 30px 0;
  margin-bottom: 50px;
}
.news-item {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  width: 100%;
  border-bottom: 1px solid #CEBEE6;
  padding: 30px 0;
}
.archive {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  width: 90%;
}
.contact-tel {
  margin: 50px auto;
  background-color: #4719880D;
  padding: 50px 0;
  width: 90%;
}
.contact-tel a img {
  width: 300px;
}
.contact-mail {
  align-items: center;
  width: 90%;
  margin: 0 auto 100px auto;
}
.mail-text {
  border-bottom: #cbbbe2 3px solid;
  width: 100%;
  padding-bottom: 30px;
  padding-left: 2%;
}
.mail-text h2 {
  margin-bottom: 20px;
}
.mail-form {
  display: block;
  margin: 50px auto;
  width: 100%;
  padding-bottom: 50px;
}
.mail-form img {
  width: 100%;
}
.recruit-1 {
  background-color: #4719880D;
  padding: 30px;
  margin-bottom: 50px;
}
.recruit {
  width: 90%;
  margin: 0 auto;
}
.recruit-2 {
  transition: none;
  width: 100%;
  margin-bottom: 30px;
}
.recruit-2 a img {
  width: 320px;
}
.recruit-3 {
  margin-bottom: 100px;
}
.message-image img {
  width: clamp(18.75rem, 9.782rem + 38.27vw, 28.125rem);
  display: block;
  margin: 0 auto;
}
.news-single-body {
  overflow-wrap: anywhere;
  word-break: break-word;
}






}
