@charset "UTF-8";
/*==============================

0. General
1. Header
   1.1 General Header
   1.2 Navigation
2. Main
3. Footer
4. Page
   4.1 Common
   4.2 Home
   4.3 mission
   4.4 service
       4.4.1 General
       4.4.2 web-content
       4.4.3 system-development
       4.4.4 content-marketing
   4.5 solution
   4.6 content
       4.6.1 Common
       4.6.2 BIZ Kaigi
       4.6.3 G-LIVE
   4.7 company
   4.8 contact
5. 404
6. Media Query
   6.1 1080px
   6.2 768px
   6.3 480px

株式会社XDi 2025/8-
===============================*/


/*==============================================
0. General
================================================*/
* { box-sizing: border-box; }

body {margin: 0;font-family: 'Helvetica Neue', sans-serif;transition: overflow 0.3s ease;}
body.no-scroll {overflow: hidden;}
.fs-18 {font-size: 18px;}
.fs-20 {font-size: 20px;}
.fs-30 {font-size: 30px;}

/*==============================================
1. Header
================================================*/
/*
1.1 General Header
===============================*/
header {position: fixed;top: 0;width: 100%;display: flex;justify-content: space-between;align-items: center;padding: 20px 40px;z-index: 1001;transition: transform 0.3s ease;}
header.hide {transform: translateY(-100%);}
.logo {width: 70px;height: 70px;object-fit: contain;}

/*
1.2 Navigation
===============================*/
.menu-container {display: flex;align-items: center;gap: 20px;}
.menu {display: flex;gap: 30px;list-style: none;background: #fff;border-radius: 20px;padding: 20px;margin: 0;}
.menu li a {color: #333;text-decoration: none;font-weight: bold;}
.burger {width: 60px;height: 60px;display: flex;flex-direction: column;justify-content: center;align-items: flex-end;gap: 6px;cursor: pointer;background: #000;border-radius: 50%;padding: 10px;position: relative;transition: transform 0.4s ease;}
.burger.open {animation: rotateBurger 0.6s ease forwards;}
@keyframes rotateBurger {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(180deg); }
}
.burger span {display: block;background: #fff;height: 3px;border-radius: 2px;transition: all 0.4s ease;}
.burger span:nth-child(1),
.burger span:nth-child(3) {width: 20px;}
.burger span:nth-child(2) {width: 10px;align-self: flex-end;}
.burger.open span:nth-child(1) {transform: rotate(45deg) translate(6px, 6px);}
.burger.open span:nth-child(2) {opacity: 0;transform: translateX(30px);}
.burger.open span:nth-child(3) {transform: rotate(-45deg) translate(6px, -6px);}
.overlay {position: fixed;top: 0; left: 0;width: 100vw;height: 100vh;background: #21303A;color: #fff;display: flex;flex-direction: column;align-items: center;justify-content: flex-start;padding: 120px 20px 40px;z-index: 2000;overflow-y: auto;opacity: 0;transform: scale(0.9);pointer-events: none;transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);}
.overlay.active {opacity: 1;transform: scale(1);pointer-events: auto;}
.overlay-logo {position: absolute;top: 30px;left: 30px;width: 70px;height: 70px;}
.overlay-logo img {width: 100%;height: 100%;object-fit: contain;}
.overlay-menu {display: flex;justify-content: center;gap: 40px;padding: 0;margin: 0 0 40px 0;list-style: none;width: 100%;max-width: 900px;}
.overlay-menu li a {color: #fff;font-size: 1.8rem;text-decoration: none;font-weight: bold;white-space: nowrap;transition: color 0.3s ease;}
.overlay-menu li a:hover {color: #ddd;}.features {display: flex;justify-content: center;gap: 30px;max-width: 900px;width: 100%;flex-wrap: nowrap;}
.feature-item {display: flex;flex-direction: column;align-items: center;color: #fff;max-width: 250px;text-align: center;}
.feature-item img {max-width: 200px;border-radius: 10px;margin-bottom: 15px;object-fit: cover;}
.close-btn {position: absolute;top: 30px;right: 30px;width: 30px;height: 30px;cursor: pointer;user-select: none;opacity: 0;transform: scale(0.7) rotate(90deg);transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);z-index: 2100;}
.close-btn::before,
.close-btn::after {content: "";position: absolute;top: 50%;left: 50%;width: 30px;height: 3px;background-color: #fff;border-radius: 2px;transform-origin: center;transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);}
.close-btn::before {transform: translate(-50%, -50%) rotate(45deg);}
.close-btn::after {transform: translate(-50%, -50%) rotate(-45deg);}
.overlay.active .close-btn {opacity: 1;transform: scale(1) rotate(0deg);}
@media (max-width: 768px) {
  .menu {display: none;}
  .overlay-menu {flex-direction: column;gap: 20px;margin-bottom: 30px;}
  .features {flex-direction: column;gap: 30px;}
  .feature-item {max-width: 100%;}
}
/* モバイルオーバーレイメニュー個別色指定 */
@media (max-width: 768px) {
  .overlay-menu {flex-direction: column;gap: 20px;margin-bottom: 30px;width: 100%;}
  .overlay-menu li {width: 100%;}
  .overlay-menu li:nth-child(1) a {display: block;width: 100%;background-color: #007BFF; /* 青 */padding: 12px 20px;border-radius: 8px;text-align: center;}
  .overlay-menu li:nth-child(2) a {display: block;width: 100%;background-color: #FF7F00; /* オレンジ */padding: 12px 20px;border-radius: 8px;text-align: center;}
  .overlay-menu li:nth-child(3) a {display: block;width: 100%;background-color: #28A745; /* 緑 */padding: 12px 20px;border-radius: 8px;text-align: center;}
  .overlay-menu li:nth-child(4) a {display: block;width: 100%;background-color: #FFD700; /* 金 */color: #000;padding: 12px 20px;border-radius: 8px;text-align: center;}
  .overlay-menu li:nth-child(5) a {display: block;width: 100%;background-color: #FFD700; /* 金 */color: #000;padding: 12px 20px;border-radius: 8px;text-align: center;}
}
.two-image-section {display: flex;gap: 20px;margin: 40px 0;padding: 0 15%;box-sizing: border-box; /* paddingで幅がはみ出さないように */}
.image-card {flex: 1;display: flex;flex-direction: column;align-items: center;}
.two-img-box {position: relative;width: 100%;aspect-ratio: 2 / 1; /* 横2:縦1の比率 */overflow: hidden;border-radius: 12px;}
.two-img-box img {width: 100%;height: 100%;object-fit: cover;}
.image-title {margin-top: 10px;font-size: 1.1rem;text-align: center;}
@media (max-width: 768px) {
  .two-image-section {flex-direction: column;}
}

/*==============================================
2. Main
================================================*/
main {padding: 120px 20px 60px;background: #fff;}

/*==============================================
3. Footer
================================================*/
.site-footer {background-color: #21303A;color: #fff;padding: 100px 20px 20px;text-align: center;}
.footer-inner {max-width: 1200px;margin: 0 auto 20px;display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 20px;}
.footer-logo {display: flex;flex-direction: column;align-items: center;text-align: center;}
.footer-logo img {display: block;height: 50px;}
.footer-logo h3 {margin: 5px 0 0 0;font-size: 20px;line-height: 1.2;color: #fff;}
.footer-logo a {text-decoration: none;color: inherit;}
.footer-logo a:hover h3 {color: #ccc;}
.footer-menu {list-style: none;display: flex;gap: 25px;padding: 0;margin: 0;flex-wrap: wrap;}
.footer-menu li a {color: #fff;text-decoration: none;font-size: 0.95rem;display: inline-block;transform: rotate(-45deg);transform-origin: left center;}
.footer-menu li a:hover {text-decoration: underline;}
.footer-copy {font-size: 0.85rem;color: #aaa;text-align: center;padding-top: 10px;border-top: 1px solid #2a3d47;}
@media (max-width: 768px) {
  .footer-inner {flex-direction: column;align-items: flex-start;}
  .footer-menu {flex-direction: column;gap: 10px;margin-top: 10px;}
  .footer-menu li a {transform: none;}
}

/*==============================================
4. Page
================================================*/
/*
4.1 Common
===============================*/
h2 {font-size: 30px;color: #000;}
h3 {font-size: 25px;color: #000;}
.centered-title {text-align: center;font-size: 40px;color: #333;font-weight: bold;margin: 20px 0;}
@media (max-width: 768px) {
  .centered-title {font-size: 30px;}
}
.main-title {font-size: 46px;font-weight: 700;color: #333;display: flex;align-items: center;margin-bottom: 20px;}
.main-title .line {display: inline-block;width: 5px;height: 46px;background-color: #333;margin-right: 12px;transform: scaleY(0);transform-origin: top;
animation: lineGrow 0.4s ease forwards;}
.main-title .text {opacity: 0;transform: translateX(-15px);animation: textSlide 0.4s ease forwards;animation-delay: 0.4s; /* 縦ラインの後に出る */letter-spacing: 0.5px;}
.text h1 {font-size: 46px;}
@keyframes lineGrow {
  to {transform: scaleY(1);}
}
@keyframes textSlide {
  to {opacity: 1;transform: translateX(0);}
}
@media (max-width: 768px) {
  .main-title {font-size: 25px;}
}
/* 見出しデザイン */
.bizkaigi-title {font-size: 1.6rem;font-weight: bold;color: #fff;background: linear-gradient(135deg, #6a11cb, #2575fc);padding: 12px 20px;border-radius: 8px;display: inline-block;box-shadow: 0 4px 10px rgba(0,0,0,0.15);margin-bottom: 20px;letter-spacing: 0.5px;}
/* レスポンシブ対応 */
@media (max-width: 768px) {
  .bizkaigi-title {font-size: 1.3rem;padding: 10px 16px;}
}
/* 右寄せのパンくずリスト（固定なし） */
.right-breadcrumb {background: rgba(255, 255, 255, 0.9);border-radius: 12px;padding: 10px 15px;box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);font-size: 0.9rem;text-align: right; /* 右寄せ */margin-left: auto; /* 右側に寄せる */width: 250px;}
.right-breadcrumb ul {list-style: none;margin: 0;padding: 0;}
.right-breadcrumb li {margin: 4px 0;}
.right-breadcrumb a {text-decoration: none;color: #0073aa;}
.right-breadcrumb a:hover {text-decoration: underline;}
/* モバイル用 */
@media (max-width: 768px) {
  .right-breadcrumb {font-size: 0.8rem;padding: 8px 10px;width: 100%;}
}
.section {max-width: 1200px;margin: 80px auto;padding: 0 20px;}
.section h2 {font-size: 2rem;margin-bottom: 20px;}  
.section-block {display: flex;flex-wrap: wrap;margin-bottom: 60px;}
.section-block .left,
.section-block .right {flex: 1;min-width: 300px;padding: 10px 20px;}
.section-block img {width: 100%;height: auto;border-radius: 30px;}
.section-block h3 {font-size: 1.8rem;margin-bottom: 10px;}
.section-block p {font-size: 1rem;line-height: 1.6;}
@media (max-width: 768px) {
.section-block {flex-direction: column;}
}

/* ------------------------------
   section-block モバイル専用 左右逆順
------------------------------ */
@media (max-width: 768px) {
  .section-block {display: flex;flex-direction: column;}
  /* テキスト(right-up)を上 */
  .section-block .right-up {order: 1;}
  /* 画像(left-down)を下 */
  .section-block .left-down {order: 2;}
}
.section-gap{position: relative;display: flow-root;--gap: 120px;}
.section-gap::after{content: "";display: block;height: var(--gap);pointer-events: none;}
@media (max-width: 768px){
  .section-gap{ --gap: 80px;}
}
/* COTENTアニメーション */
.floating-content-text {font-size: 10rem;color: rgba(0, 0, 0, 0.05);text-align: center;width: 100%;font-weight: bold;animation: floatText 6s ease-in-out infinite;margin-bottom: 40px;word-break: break-word;/* ←単語途中でも折り返し */overflow-wrap: break-word;/* ←古いブラウザ対策 */line-height: 0.9;padding: 0 10px;}
@keyframes floatText {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}
/* COTENTアニメーションスモールサイズ */
.floating-content-text-s {font-size: 5rem;color: rgba(0, 0, 0, 0.5);text-align: center;width: 100%;font-weight: bold;animation: floatText 6s ease-in-out infinite;margin: 30px 0;word-break: break-word;/* ←単語途中でも折り返し */overflow-wrap: break-word;/* ←古いブラウザ対策 */line-height: 0.9;padding: 0 10px;}
@keyframes floatText-s {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}
/* COTENTアニメーションスモールサイズ２ */
.floating-content-text-s2 {font-size: 4rem;color: rgba(0, 0, 0, 0.5);text-align: center;width: 100%;font-weight: bold;animation: floatText 6s ease-in-out infinite;margin: 30px 0;word-break: break-word;/* ←単語途中でも折り返し */overflow-wrap: break-word;/* ←古いブラウザ対策 */line-height: 0.9;padding: 0 10px;}
@keyframes floatText-s2 {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}
/* パステルレインボーアニメーション */
@keyframes pastelRainbow {
  0% {background-position: 0% 50%;}
  100% {background-position: 100% 50%;}
}
.floating-content-text {position: relative;font-size: 10rem;font-weight: bold;text-align: center;width: 100%;margin-bottom: 40px;word-break: break-word;overflow-wrap: break-word;line-height: 0.9;padding: 0 10px;color: rgba(0, 0, 0, 0.05);animation: floatText 6s ease-in-out infinite;z-index: 1;}
/* Webコンテンツ制作：縦並びリスト */
.service-list {list-style: none;padding: 0;margin: 20px 0;display: flex;flex-direction: column;gap: 16px;}
.service-list li {position: relative;padding-left: 40px;font-size: 1.05rem;color: #333;background: #fff;border: 1px solid #ddd;border-left: 6px solid #4696af;border-radius: 8px;padding: 12px 16px 12px 40px;transition: all 0.3s ease;}
.service-list li::before {content: "✓";position: absolute;left: 16px;top: 50%;transform: translateY(-50%);color: #4696af;font-size: 1.2rem;}
.service-list li:hover {background-color: #f0f8ff;border-left-color: #007BFF;transform: translateX(4px);}
@media (max-width: 768px) {
  .service-list li {font-size: 1rem;padding: 10px 14px 10px 36px;}
}
.bizkaigi-service-list {list-style: none;margin: 0;padding: 0;counter-reset: bizkaigi-counter;}
.bizkaigi-service-list li {position: relative;margin-bottom: 16px;padding-left: 50px;font-size: 1.05rem;line-height: 1.6;background: #ffffffcc;border-radius: 8px;padding-top: 12px;padding-bottom: 12px;padding-right: 16px;box-shadow: 0 2px 6px rgba(0,0,0,0.08);transition: transform 0.3s ease, box-shadow 0.3s ease;}
.bizkaigi-service-list li:hover {transform: translateY(-3px);box-shadow: 0 4px 12px rgba(0,0,0,0.12);}
/* 番号のデザイン */
.bizkaigi-service-list li::before {counter-increment: bizkaigi-counter;content: counter(bizkaigi-counter);position: absolute;left: 15px;top: 50%;transform: translateY(-50%);background: linear-gradient(135deg, #6a11cb, #2575fc);color: white;font-weight: bold;font-size: 0.9rem;width: 26px;height: 26px;line-height: 26px;text-align: center;border-radius: 50%;box-shadow: 0 2px 4px rgba(0,0,0,0.2);}
/* View More ボタン */
.view-more-wrap {text-align: center;margin: 2rem 0;}
.view-more-btn {display: inline-block;padding: 10px 20px;background-color: #21303A;color: #fff;font-size: 14px;text-decoration: none;border-radius: 4px;transition: background-color 0.3s ease, transform 0.3s ease;}
.view-more-btn:hover {background-color: #555;transform: translateY(-2px);}
/* overlay用 View More ボタン */
.view-more-ov-wrap {text-align: center;margin: 0.1rem 0;}
.view-more-ov-btn {display: inline-block;padding: 10px 20px;background-color: #92815F;color: #fff;font-size: 14px;text-decoration: none;border-radius: 8px;transition: background-color 0.3s ease, transform 0.3s ease;}
.view-more-ov-btn:hover {background-color: #555;transform: translateY(-2px);}
/* overlay用 View More ボタン（コンテンツ） */
.view-more-ov-wrap-cont {text-align: center;margin: 0.1rem 0;}
.view-more-ov-btn-cont {margin-top: 20px;display: inline-block;padding: 10px 60px;background-color: #BBA183;color: #fff;font-size: 14px;text-decoration: none;border-radius: 8px;transition: background-color 0.3s ease, transform 0.3s ease;}
.view-more-ov-btn-cont:hover {background-color: #555;transform: translateY(-2px);}
/* 「お問い合わせ」専用ボタン */
.contact-btn {background-color: #ffffff;border-radius: 20px;margin-top: -5px;padding: 6px 14px;color: #21303A!important;display: inline-block;text-decoration: none;transition: background-color 0.3s ease, color 0.3s ease;}
.contact-btn:hover {background-color: #f0f0f0;}
.fade-slide-up.animate {animation: fadeSlideUp 0.8s ease-out forwards;}
@keyframes fadeSlideUp {
  to {opacity: 1;transform: translateY(0);}
}
/* 横並び配置、スマホでは縦並び */
.circle-blocks {display: flex;gap: 32px;justify-content: center;align-items: flex-start;flex-wrap: wrap;}
.circle-block {flex: 1 1 0;max-width: 320px;min-width: 220px;display: flex;flex-direction: column;align-items: center;text-align: center;margin-bottom: 24px;}
.circle-block img {width: 260px;height: 260px;border-radius: 50%;object-fit: cover;margin-bottom: 18px;border: 3px solid #eee;background: #fff;}
.circle-block h2 {font-size: 1.25rem;margin: 0 0 10px;color: #333;}
.circle-block p {font-size: 1rem;margin: 0;color: #555;}
@media (max-width: 900px) {
  .circle-blocks {flex-direction: column;gap: 32px;align-items: stretch;}
  .circle-block {max-width: 100%;margin-bottom: 32px;}
}
@keyframes morphFloat {
  0% {transform: translateY(0px);border-radius: 50%;}
  25% {transform: translateY(-10px);border-radius: 20%;}
  50% {transform: translateY(-12px);border-radius: 0%;}
  75% {transform: translateY(-10px);border-radius: 20%;}
  100% {transform: translateY(0px);border-radius: 50%;}
}
.circle-block img {width: 260px;height: 260px;object-fit: cover;margin-bottom: 18px;border: 3px solid #eee;background: #fff;
animation: morphFloat 6s ease-in-out infinite;}
.circle-block:nth-child(1) img {animation-delay: 0s;}
.circle-block:nth-child(2) img {animation-delay: 1.2s;}
.circle-block:nth-child(3) img {animation-delay: 2.4s;}
.circle-block-section-alt {max-width: 1200px;margin: 40px auto;padding: 0 20px;}
.circle-blocks-alt {display: flex;gap: 20px;justify-content: center;flex-wrap: wrap;}
.circle-block-alt {flex: 1 1 calc(33.333% - 40px);max-width: 340px;text-align: center;margin-bottom: 0;}
.circle-block-alt img {
  width: 100%;
  aspect-ratio: 3 / 2; /* 横3：縦2比率 */
  object-fit: cover;
  animation: morphRect 6s ease-in-out infinite;
  border: 3px solid #eee;
  background: #fff;
}
.circle-block-alt h2 {font-size: 1.25rem;margin: 0 0 10px;color: #333;}
@keyframes morphRect {
  0%   { border-radius: 40px; }
  25%  { border-radius: 20px; }
  50%  { border-radius: 0px; }
  75%  { border-radius: 20px; }
  100% { border-radius: 40px; }
}
.circle-block-alt:nth-child(1) img {animation-delay: 0s;}
.circle-block-alt:nth-child(2) img {animation-delay: 1.5s;}
.circle-block-alt:nth-child(3) img {animation-delay: 3s;}
@media (max-width: 768px) {
  .circle-blocks-alt {flex-direction: column;align-items: center;}
  .circle-block-alt {width: 100%;max-width: 90%;margin-bottom: 0;}
}
.mission-section {background-color: #b0e0e6;border-radius: 20px;padding: 30px;margin: 40px auto;max-width: 1200px;box-sizing: border-box;}

/* ------------------------------
   強調用テキスト span（手書き風ライン＋アニメーション）
------------------------------ */
.emphasis {font-size: 1.2em;font-weight: bold;color: #000;position: relative;display: inline-block;}
.emphasis-line {position: absolute;left: 0;bottom: 0.1em;height: 0.35em;width: 0;border-radius: 2px;background: repeating-linear-gradient(-45deg,#FFD800 0 4px,#FFC700 4px 6px);box-shadow: 1px 0 #FFD700, -1px 0 #FFD700; /* 左右にかすれ感 */}

/*
4.2 Home
===============================*/
/*-- メインビジュアル --*/ 
.hero {position: relative;width: 100%;height: calc(var(--vh, 1vh) * 100);background: url("https://xdi.co.jp/assets/imsges/home/top_mainIMG-01.jpg") center/cover no-repeat;display: flex;justify-content: center;align-items: center;text-align: center;}
.hero img {width: 100%;height: 100%;object-fit: cover;display: block;}
@media screen and (max-width: 1024px) {
  .hero {height: 100svh; /* Safe viewport height（対応ブラウザのみ） */}
}
@media screen and (max-width: 768px) {
  .hero {height: calc(var(--vh, 1vh) * 100);}
}
.pickup-box {position: absolute;bottom: 20px;left: 20px;width: 250px;background: #ffffff;color: #111111;border: 1px solid #cccccc;border-radius: 12px;padding: 10px 15px;display: flex;flex-direction: column;justify-content: center;text-align: left;}
.pickup-box h2 {margin: 0 0 5px;font-size: 1rem;background: #111111;color: #ffffff;border-radius: 5px;padding: 5px;display: inline-block;width: fit-content;}
.pickup-box p {margin: 0;font-size: 0.9rem;}
.pickup-box a {color: #111111;text-decoration: underline;}
.pickup-box a:hover {text-decoration: none;}
.popup{position: fixed;inset: auto auto 20px 30px; /* bottom:20px; left:30px と同義 */padding: 1em;background: #333; color:#fff; border-radius:8px; font-size:14px;opacity: 0; pointer-events: none;transform: translate3d(0,0,0);transition: opacity .25s ease, transform .25s ease;z-index: 9999;}
.popup.show{opacity: 1;transform: translate3d(0,-40px,0);}
.popup-message{position: fixed;left: 0; top: 0;background: rgba(0,0,0,.85);color:#fff;padding:18px 22px;border-radius:8px;font-size:12px;line-height:1.4;opacity:0;transform: translate(-50%, -8px);pointer-events:none;       /* クリックを邪魔しない */transition: opacity .2s ease, transform .2s ease;z-index: 10000;margin: 0 0 120px 30px!important;white-space: nowrap;}
.popup-message.show{opacity:1;transform: translate(-50%, -16px);}
.popup-message::after{content:"";position:absolute;left:50%;transform: translateX(-50%);top:100%;border:6px solid transparent;border-top-color: rgba(0,0,0,.85);}
/* テキストアニメーション */
.hero-content {text-align: center;}
#animated-text {font-size: 40px;color: #000000;line-height: 1.6;}
@media (max-width: 768px) {
  #animated-text {font-size: 24px;}
}
.line {display: block;overflow: hidden;}
.char {display: inline-block;opacity: 0;transform: translateX(-20px);animation: slideIn 0.6s forwards;}
@keyframes slideIn {
  to {opacity: 1;transform: translateX(0);}
}
/* ===== Scroll Down 誘導アニメーション ===== */
.scrolldown1 {position: absolute;left: 50%;bottom: 10px;height: 50px;transform: translateX(-50%);transition: opacity 0.8s ease; /* ←フェード用 */opacity: 1;}
/* Scrollテキスト */
.scrolldown1 span {position: absolute;left: -15px; top: -15px;color: #000;font-size: 0.7rem;letter-spacing: 0.05em;}
/* 線の描写 */
.scrolldown1::after {content: "";position: absolute;top: 0;width: 1px;height: 30px;background: #000;animation: pathmove 1.4s ease-in-out infinite;opacity: 0;}
@keyframes pathmove {
  0% {height: 0;top: 0;opacity: 0;}
  30% {height: 30px;opacity: 1;}
  100% {height: 0;top: 50px;opacity: 0;}
}

/*
4.3 Mission
===============================*/
.impact-section {background-color: #f5f5f5;padding: 40px 20px;margin: 40px 60px;border-radius: 0;text-align: center;width: auto;box-shadow: 0 5px 20px rgba(0,0,0,0.1);}
.impact-title {font-size: 28px;font-weight: bold;color: #333;margin-bottom: 20px;position: relative;display: inline-block;padding-bottom: 10px;}
.impact-title::after {content: "";position: absolute;left: 50%;bottom: 0;transform: translateX(-50%);width: 60px;height: 4px;background-color: #ff6f61;border-radius: 2px;}
.impact-section p {font-size: 18px;color: #555;line-height: 1.8;}
@media (max-width: 768px) {
  .impact-section {margin: 40px 5px;padding: 20px 10px;}
}

/*
4.4 Service
===============================*/
/*===== 4.4.1 General =====*/
.content-area {background-color: #777;border-radius: 16px; /* お好みで調整 */ padding: 40px; /* 内側の余白 */margin: 0 auto;box-sizing: border-box;}
@media (max-width: 768px) {
  .content-area {padding: 10px;margin-left: 2px;margin-right: 2px;}
}
@media (min-width: 769px) {
  .content-area {margin-left: 50px;margin-right: 50px;}
}
.section-block-cont {display: flex;flex-wrap: wrap;margin-bottom: 60px;}
.section-block-cont .left,
.section-block-cont .right {flex: 1;min-width: 300px;padding: 10px 20px;}
.section-block-cont img {width: 100%;height: auto;border-radius: 20px;}
.section-block-cont h3 {font-size: 1.8rem;margin-bottom: 10px;}
.section-block-cont p {font-size: 1rem;line-height: 1.6;}
@media (max-width: 768px) {
  .section-block-cont {flex-direction: column;}
}
.section-block-cont.white-rounded {background-color: #fff;border-radius: 12px;padding: 20px;box-sizing: border-box;}
@media (max-width: 768px) {
  .section-block-cont.white-rounded {padding: 3px;margin-left: 10px;margin-right: 10px;}
}
@media (min-width: 769px) {
  .section-block-cont.white-rounded {margin-left: 20px;margin-right: 20px;}
}

/*===== 4.4.2 web-content =====*/

/*===== 4.4.3 system-development =====*/

/*===== 4.4.4 content-marketing =====*/

/*
4.5 Solution
===============================*/

/*
4.6 Content
===============================*/
/*===== 4.6.1 Common =====*/

/*===== 4.6.2 BIZ Kaigi =====*/
.bizkaigi-rainbow-section {width: 100%;padding: 40px 0;background: linear-gradient(to right,#ffcccc,#ffe5cc,#ffffcc,#e5ffcc,#ccffff,#cce5ff,#e5ccff);
}
.bizkaigi-image-block {display: flex;flex-direction: column;align-items: center;gap: 12px;}
.bizkaigi-image-title {font-size: 1.8rem;font-weight: bold;color: #000000;margin: 0;text-align: center;}
.bizkaigi-image-container {width: 60%;aspect-ratio: 2 / 1;overflow: hidden;border-radius: 16px;}
.bizkaigi-image-container img {width: 100%;height: 100%;object-fit: cover;}
@media (max-width: 768px) {
  .bizkaigi-image-container {width: 98%;}
  .bizkaigi-image-title {font-size: 1.3rem;}
}

/*===== 4.6.3 G-LIVE =====*/
.image-wrapper {width: 100%;max-width: 100vw;overflow: hidden;border-radius: 16px;box-shadow: 0 6px 18px rgba(0,0,0,0.08);opacity: 0;transform: translateY(30px);/* ←下から出てくる効果 */transition: opacity 0.8s ease, transform 0.8s ease;}
.image-wrapper.show {opacity: 1;transform: translateY(0);}
.image-wrapper img {display: block;width: 100%;height: 620px;object-fit: cover;border-radius: inherit;}
@media (max-width: 480px) {
  .image-wrapper img { height: 260px; }
}
.custom-section {display: flex;align-items: center;gap: 20px;margin-bottom: 40px;}
.custom-section .image-container {flex: 1;display: flex;justify-content: center;align-items: center;}
.custom-section .image-container img {width: 320px;height: 320px;border-radius: 50%;object-fit: cover;box-shadow: 0 4px 12px rgba(0,0,0,0.1);animation: floatOnly 4s ease-in-out infinite;}
@keyframes floatOnly {
  0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}
.custom-section .text-container {flex: 2;}
.custom-section .text-container h2 {margin-top: 0;}
.custom-section.reverse {flex-direction: row-reverse;}
@media (max-width: 768px) {
  .custom-section {flex-direction: column;text-align: center;}
  .custom-section.reverse {flex-direction: column;}
  .custom-section .image-container img {width: 260px;height: 260px;}
}
.features-block {background: linear-gradient(135deg, #ffd1dc, #ffe5b4, #ffffb4, #b4ffb4, #b4ffff, #d1b4ff);border-radius: 20px;padding: 30px;margin: 0 40px;}
@media (max-width: 768px) {
  .features-block {margin: 0 5px;padding: 20px;}
}

/*
4.7 Company
===============================*/
.company {max-width: 1000px;margin: 0 auto;padding-left: 50px;padding-right: 50px;}
@media screen and (max-width: 600px) {
  .company {padding-left: 20px;padding-right: 20px;}
}
.company-info h2 {font-size: 24px;font-weight: 600;border-bottom: 1px solid #ddd;padding-bottom: 8px;margin-bottom: 30px;color: #111;}
.info-grid {display: flex;flex-direction: column;gap: 16px;}
.info-row {display: flex;flex-wrap: wrap;border-bottom: 1px solid #eee;padding-bottom: 12px;}
.info-row dt {width: 160px;font-weight: bold;color: #555;}
.info-row dd {margin: 0;flex: 1;color: #333;}
.name {text-align: right;font-weight: bold;}
@media screen and (max-width: 600px) {
  .info-row {flex-direction: column;}
  .info-row dt {width: 100%;margin-bottom: 4px;}
  .info-row dd {width: 100%;}
}

/*
4.8 Contact
===============================*/
.form-wrapper {max-width: 600px;background: #fff;padding: 30px;margin: auto;border-radius: 8px;box-shadow: 0 0 10px rgba(0,0,0,0.1);}
input, textarea {width: 100%;padding: 10px;margin-top: 10px;font-size: 16px;border: 1px solid #ccc;border-radius: 4px;}
label {display: block;margin-top: 20px;font-weight: bold;}
button {margin-top: 25px;padding: 12px 20px;width: 100%;font-size: 16px;border: none;background: #333;color: white;border-radius: 5px;cursor: pointer;}
.error {color: red;margin-top: 8px;}
.captcha-group {display: flex;align-items: center;gap: 10px;margin-top: 10px;}

/*==============================================
5. 404
================================================*/

/*==============================================
6. Media Query
================================================*/
/*
6.1 1080px
===============================*/

/*
6.2 768px
===============================*/

/*
6.3 480px
===============================*/



