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

/* 全体設定 */
body {
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  padding: 0;
  line-height: 1.6;
  color: #333;
  background-color: #f9f9f9;
}

body.menu-open {
  overflow: hidden;
}

/* ヘッダーとナビゲーション */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  background-color: #003366; /* ヘッダー色 */
  color: #fff;

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #fff;
}

.logo {
  width: 50px; /* ロゴのサイズ */
  height: auto;
  margin-right: 10px;
}

.company-name {
  font-size: 20px;
  font-weight: bold;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .company-name {
    font-size: 18px;
  }
}

@media (max-width: 330px) {
  .company-name {
    font-size: 16px;
  }
}

/* ナビゲーション */
.main-nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 20px;
}

.main-nav a {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 10px 0;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s;
}

.main-nav a:hover {
  color: #ffd700;
}

/* ハンバーガーボタン初期状態（非表示） */
.hamburger {
  display: none;
  width: 30px;
  height: 24px;
  position: relative;
  cursor: pointer;
}

.hamburger span {
  position: absolute;
  width: 100%;
  height: 3px;
  background-color: #fff;
  transition: 0.3s;
}

.hamburger span:nth-child(1) {
  top: 0;
}

.hamburger span:nth-child(2) {
  top: 10px;
}

.hamburger span:nth-child(3) {
  top: 20px;
}

@media (max-width: 864px) {
  /* メニューは非表示にする */
  .main-nav {
    position: fixed;
    top: 70px;
    right: 0;

    width: 260px;
    background-color: #003366;

    padding: 20px;

    transform: translateX(100%);
    transition: transform 0.3s ease;
  }

  .main-nav ul {
    flex-direction: column;
    gap: 0;
  }

  /* スマホタップ */
  .main-nav a:active {
    opacity: 0.6;
  }

  .main-nav li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }

  .main-nav li:last-child {
    border-bottom: none;
  }

  .main-nav li a {
    position: relative; /* 絶対位置アイコンをa内に */
    padding-left: 40px; /* アイコン分スペース */
    display: block; /* 横並び */
    font-size: 18px;
  }

  /* ホームアイコン */
  .main-nav li .home-menu-icon {
    content: "";
    position: absolute; /* a内で絶対位置 */
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%23ffffff" d="M433.198,202.846l-69.291-69.236l-54.996-54.926l-52.823-53.018L0,281.562l37.928,37.905l34.026-33.995v200.86h150.257h67.577h150.257V285.442l34.026,34.026L512,281.562L433.198,202.846z M408.139,454.426H299.595V335.265h-87.191v119.161H103.862V253.589l152.227-152.103l152.05,152.049V454.426z"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* サービスアイコン */
  .main-nav li .toolbox-menu-icon {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%23ffffff" d="M386.234,78.954l-49.861,49.861l4.635,4.814c-3.302,2.667-6.644,5.269-9.888,7.579 c-5.236,3.74-10.262,6.74-13.669,8.147c-0.22,0.098-1.146,0.358-2.984,0.35c-2.936,0.032-7.847-0.716-13.864-1.634 c-6.042-0.911-13.27-1.902-21.417-1.911c-7.108-0.024-14.946,0.838-23.199,3.106c-8.236-2.26-16.059-3.106-23.149-3.097 c-8.156,0-15.384,0.992-21.426,1.911c-6.017,0.918-10.92,1.667-13.855,1.634c-1.846,0.016-2.765-0.26-2.952-0.35 c-3.635-1.488-9.116-4.806-14.758-8.912c-2.919-2.122-5.895-4.448-8.847-6.838l4.627-4.798l-49.861-49.861L0,209.216l49.861,49.861 l14.595-15.116l32.216,28.117c0.902,5.391,2.602,10.481,4.562,15.312c1.276,3.074,2.675,6.033,4.107,8.814 c-3.115,5.156-4.814,11.043-4.798,17.011c-0.008,5.92,1.618,11.969,4.96,17.344c5.082,8.172,13.222,13.311,22.011,14.937 c0.05,5.814,1.66,11.742,4.936,17.011c6.221,10.002,16.987,15.547,27.964,15.53c0.423,0,0.854-0.065,1.276-0.081 c0.553,4.651,2.082,9.286,4.7,13.498c6.221,10.001,16.994,15.547,27.955,15.53c1.09,0,2.172-0.114,3.269-0.22 c0.52,4.188,1.911,8.367,4.261,12.14c5.668,9.108,15.474,14.165,25.45,14.141c5.383,0.008,10.896-1.456,15.791-4.497l14.946-9.301 c2.944,1.902,6.033,3.577,9.277,4.943c6.042,2.545,12.571,4.106,19.361,4.114c7.448,0.033,15.311-2.008,22.076-6.765 c4.407-3.073,8.139-7.286,11.196-12.253c0.472,0.016,0.854,0.098,1.342,0.106c3.098,0,6.497-0.464,9.864-1.513 c3.39-1.032,6.757-2.578,10.351-4.634c8.57-4.83,13.709-11.937,16.206-18.027c0.553-1.333,0.951-2.586,1.309-3.797 c2.074-0.658,4.058-1.464,5.854-2.504c6.627-3.814,10.945-9.611,13.604-15.433c2.667-5.88,3.838-11.986,3.854-17.856 c0-0.578-0.073-1.139-0.098-1.708c4.334-1.772,8.228-4.236,11.546-7.139c3.399-2.977,6.253-6.44,8.375-10.392 c2.115-3.935,3.53-8.44,3.538-13.375c0.008-3.212-0.651-6.595-2.09-9.766c-0.464-1.008-1.122-1.935-1.724-2.87 c2.53-4.53,5.106-9.635,7.22-15.148c1.586-4.172,2.92-8.546,3.684-13.141l33.59-29.313l15.742,16.303L512,209.216L386.234,78.954z  M138.744,320.428l-0.578,0.366c-1.504,0.928-3.082,1.342-4.708,1.35c-3.017-0.016-5.912-1.488-7.611-4.228 c-0.927-1.504-1.35-3.09-1.35-4.7c0.016-3.033,1.48-5.912,4.212-7.611l19.751-12.27c1.504-0.935,3.082-1.341,4.691-1.358 c3.033,0.032,5.912,1.48,7.62,4.236l10.172-6.318l-10.172,6.326c0.927,1.496,1.341,3.073,1.35,4.684 c-0.017,2.114-0.773,4.131-2.138,5.757L143.02,317.2C141.476,318.159,140.069,319.273,138.744,320.428z M165.113,352.733 c-1.504,0.927-3.082,1.35-4.7,1.35c-3.025-0.016-5.919-1.48-7.619-4.22c-0.928-1.504-1.342-3.098-1.35-4.708 c0.007-2.097,0.764-4.114,2.122-5.724l16.97-10.562c1.537-0.952,2.928-2.057,4.253-3.212l0.618-0.374 c1.504-0.935,3.09-1.35,4.692-1.35c3.041,0.016,5.911,1.48,7.618,4.228c0.927,1.504,1.342,3.073,1.35,4.692 c-0.016,3.016-1.471,5.911-4.236,7.627L165.113,352.733z M218.771,369.419l-19.726,12.262c-1.496,0.928-3.074,1.35-4.7,1.35 c-3.017-0.016-5.912-1.48-7.611-4.22c-0.927-1.512-1.341-3.09-1.35-4.708c0.025-3.033,1.48-5.903,4.212-7.611l19.751-12.27 c1.504-0.935,3.082-1.341,4.691-1.341c3.033,0.007,5.912,1.471,7.62,4.22c0.926,1.505,1.341,3.082,1.35,4.7 C222.991,364.816,221.536,367.694,218.771,369.419z M249.353,389.421c0.625,1,0.894,2.041,0.902,3.13 c-0.016,2.025-0.984,3.952-2.846,5.115l-16.938,10.521c-1.008,0.634-2.049,0.902-3.147,0.902c-2.032-0.008-3.959-0.992-5.106-2.829 c-0.626-1.017-0.895-2.058-0.903-3.146c0.024-2.042,0.992-3.953,2.821-5.091h0.008l16.954-10.538 c1.033-0.642,2.066-0.911,3.147-0.911c2.041,0.016,3.952,0.984,5.098,2.83l10.18-6.31L249.353,389.421z M381.071,315.061 c-0.87,1.683-2.854,3.878-5.366,5.415c-2.513,1.554-5.432,2.464-8.229,2.456c-0.993,0-1.952,0.17-2.887,0.414 c-1.708-0.374-3.416-0.894-5.098-1.561c-5.212-2.033-10.082-5.326-13.522-8.107c-1.724-1.39-3.09-2.642-4.001-3.512l-1.008-1 l-0.22-0.228l-0.033-0.032H340.7c-3.351-3.643-9.026-3.887-12.677-0.537c-3.651,3.351-3.903,9.026-0.544,12.701 c0.3,0.309,4.814,5.236,12.205,10.311c3.708,2.537,8.139,5.123,13.237,7.123c1.179,0.464,2.407,0.894,3.668,1.285 c0.35,0.788,0.797,1.537,1.325,2.244l-0.024,0.017c0.065,0.048,0.553,1.594,0.512,3.578c0.058,3.309-1.146,7.643-2.878,10.033 c-0.845,1.22-1.707,1.992-2.544,2.472c-0.854,0.472-1.716,0.781-3.334,0.805l-0.578-0.008c-0.342-0.016-0.666,0.041-1,0.057 c-0.016,0-0.024,0-0.024,0c-7.79,0.033-15.042-3.309-20.393-6.968c-2.667-1.805-4.806-3.643-6.245-4.992 c-0.708-0.667-1.252-1.22-1.586-1.561l-0.349-0.374l-0.057-0.073h-0.008c-3.244-3.724-8.895-4.131-12.644-0.886 c-3.757,3.252-4.163,8.92-0.911,12.676l-0.008-0.007c0.35,0.39,4.497,5.17,11.71,10.082c4.748,3.211,10.944,6.537,18.303,8.456 c-0.081,0.212-0.13,0.423-0.228,0.635c-0.943,2.13-2.293,4.325-5.968,6.472c-2.481,1.416-4.253,2.155-5.497,2.529 c-1.252,0.374-1.951,0.448-2.846,0.455c-1.162,0.017-2.911-0.244-5.822-0.838c-0.528-0.113-1.056-0.146-1.585-0.178 c-0.196-0.082-0.382-0.155-0.594-0.261c-2.976-1.399-6.603-3.928-9.278-6.082c-1.342-1.065-2.48-2.041-3.261-2.732l-0.878-0.797 l-0.203-0.195l-0.041-0.032c-3.586-3.431-9.278-3.301-12.709,0.284c-3.423,3.586-3.293,9.278,0.293,12.701 c0.187,0.17,3.968,3.798,9.269,7.603c0.943,0.667,1.984,1.342,3.025,2.008c-1.464,2.334-2.992,3.936-4.488,5.001 c-2.391,1.643-4.993,2.423-8.343,2.44c-3,0.008-6.53-0.732-10.058-2.228c-1.171-0.488-2.317-1.179-3.472-1.821 c0.675-2.521,1.049-5.131,1.041-7.75c0.008-5.391-1.472-10.904-4.513-15.791c-5.163-8.302-13.774-13.181-22.792-13.978 c0-0.326,0.056-0.65,0.056-0.984c0.008-5.911-1.618-11.977-4.952-17.344v0.017c-6.228-10.034-17.011-15.58-27.972-15.556 c-0.422,0-0.854,0.073-1.276,0.09c-0.553-4.66-2.082-9.278-4.699-13.49h0.007c-5.082-8.188-13.229-13.326-22.019-14.937 c-0.056-5.814-1.658-11.742-4.936-17.011h0.008c-6.22-10.009-17.011-15.563-27.972-15.547c-5.928,0-11.969,1.627-17.344,4.96 l-11.538,7.172c-0.277-0.634-0.626-1.252-0.878-1.887c-2.008-4.805-3.269-9.546-3.407-12.814l-0.268-5.058l-38.598-33.695 l73.18-75.792c3.741,3.066,7.579,6.107,11.515,8.953c6.521,4.7,12.985,8.847,19.588,11.628c4.237,1.748,8.367,2.179,12.157,2.187 c6.066-0.024,11.627-1.065,17.425-1.911c0.374-0.065,0.764-0.097,1.146-0.155c-7.968,6.838-14.921,14.238-20.8,21.126 c-4.952,5.814-9.131,11.294-12.441,15.766c-3.268,4.448-5.789,8.034-6.895,9.449c-5.448,7.09-7.789,15.571-7.838,24.068 c0.024,7.904,2.122,16.132,7.57,23.085c2.716,3.439,6.326,6.448,10.635,8.497c4.302,2.065,9.229,3.122,14.36,3.122 c6.367-0.017,13.042-1.561,20.109-4.53c22.182-9.383,45.047-15.636,62.252-19.49c8.603-1.919,15.799-3.252,20.816-4.09 c0.944-0.155,1.732-0.285,2.513-0.414l75.271,64.888l0.032,0.016l0.025,0.041C381.73,313.378,381.615,314.053,381.071,315.061z  M389.78,260.395l-0.261,5.058c-0.138,2.894-1.122,6.976-2.773,11.205c-0.838,2.211-1.862,4.44-2.935,6.634l-65.92-56.821 c-2.561-2.211-5.976-3.236-9.334-2.813c-0.585,0.114-48.934,6.18-97.047,26.46c-4.789,2.024-8.383,2.65-10.79,2.634 c-1.959,0-3.155-0.35-4.041-0.773c-1.285-0.626-2.204-1.513-3.114-3.212c-0.87-1.674-1.464-4.146-1.455-6.748 c-0.049-3.74,1.285-7.546,2.78-9.35c1.863-2.407,4.139-5.692,7.278-9.937c4.658-6.31,10.985-14.474,18.53-22.418 c7.529-7.944,16.287-15.636,25.467-21.036c12.417-7.293,22.996-9.123,33.022-9.156c6.171-0.008,12.09,0.764,17.864,1.634 c5.789,0.854,11.367,1.878,17.417,1.911c3.781-0.008,7.887-0.439,12.108-2.163l0.056-0.016c6.603-2.781,13.067-6.928,19.588-11.628 c3.912-2.83,7.766-5.887,11.49-8.944l72.035,74.604L389.78,260.395z"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* ビルアイコン */
  .main-nav li .building-menu-icon {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%23ffffff" d="M360.27,88.997V0H151.723v192.169H24.586V512h147.5h30.512h106.799h30.512h147.507V88.997H360.27z M446.69,471.276H339.907h-30.512H202.597h-30.512H65.311V232.893h127.145V40.724h127.089v89.005h20.362H446.69V471.276z"/><rect x="240.052" y="86.778" width="31.904" height="40.621" fill="%23ffffff"/><rect x="240.052" y="188.637" width="31.904" height="40.621" fill="%23ffffff"/><rect x="240.052" y="290.496" width="31.904" height="40.63" fill="%23ffffff"/><rect x="240.052" y="392.356" width="31.904" height="40.628" fill="%23ffffff"/><rect x="375.804" y="186.522" width="31.904" height="40.629" fill="%23ffffff"/><rect x="375.804" y="288.389" width="31.904" height="40.621" fill="%23ffffff"/><rect x="375.804" y="390.248" width="31.904" height="40.621" fill="%23ffffff"/><rect x="104.293" y="288.389" width="31.912" height="40.621" fill="%23ffffff"/><rect x="104.293" y="390.248" width="31.912" height="40.621" fill="%23ffffff"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* はてなアイコン */
  .main-nav li .question-menu-icon {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%23ffffff" d="M437.015,74.978C390.77,28.696,326.608-0.014,256,0C185.393-0.014,121.223,28.696,74.982,74.978C28.696,121.223-0.014,185.393,0,256c-0.014,70.608,28.696,134.778,74.982,181.023C121.226,483.304,185.393,512.015,256,512c70.608,0.015,134.77-28.696,181.015-74.977c46.288-46.245,75-110.415,74.985-181.023C512.015,185.393,483.304,121.223,437.015,74.978z M399.474,112.526c36.756,36.8,59.415,87.356,59.429,143.474c-0.014,56.119-22.674,106.674-59.429,143.474c-36.8,36.762-87.363,59.415-143.474,59.429c-56.114-0.014-106.674-22.667-143.474-59.429c-36.76-36.8-59.415-87.355-59.43-143.474c0.015-56.118,22.67-106.674,59.43-143.474c36.8-36.763,87.359-59.415,143.474-59.43C312.112,53.112,362.674,75.763,399.474,112.526z"/><path fill="%23ffffff" d="M242.749,329.326c-14.208,0-25.73,11.519-25.73,25.726c0,14.192,11.522,25.718,25.73,25.718c14.196,0,25.714-11.526,25.714-25.718C268.463,340.845,256.945,329.326,242.749,329.326z"/><path fill="%23ffffff" d="M184.363,173.852l17.515,14.037c3.566,2.852,8.674,2.748,12.118-0.252c0,0,2.152-3.889,8.896-7.741c6.778-3.83,15.57-6.911,28.708-6.956c11.462-0.022,21.459,4.252,28.278,10.097c3.385,2.904,5.918,6.133,7.47,9.11c1.563,2.986,2.133,5.6,2.126,7.585c-0.03,6.711-1.337,11.104-3.222,14.837c-1.433,2.8-3.303,5.274-5.715,7.674c-3.596,3.6-8.482,6.926-13.955,9.985c-5.482,3.082-11.389,5.808-17.359,9.096c-6.808,3.778-14.022,9.194-19.345,17.326c-2.659,4.015-4.737,8.622-6.059,13.466c-1.334,4.867-1.937,9.956-1.937,15.148c0,5.541,0,10.096,0,10.096c0,5.215,4.237,9.46,9.463,9.46h22.788c5.222,0,9.456-4.245,9.456-9.46c0,0,0-4.555,0-10.096c0-2,0.23-3.296,0.452-4.104c0.374-1.229,0.585-1.534,1.208-2.282c0.626-0.711,1.896-1.792,4.237-3.088c3.419-1.919,8.915-4.512,15.141-7.882c9.322-5.096,20.648-12.007,30.204-23.422c4.748-5.703,8.948-12.556,11.86-20.452c2.918-7.904,4.503-16.792,4.489-26.304c-0.008-9.637-2.622-18.8-6.882-26.926c-6.415-12.207-16.467-22.37-28.919-29.748c-12.448-7.341-27.47-11.822-43.777-11.822c-20.097-0.052-36.797,5.192-49.396,12.444c-12.656,7.222-18.111,15.629-18.111,15.629c-2.126,1.852-3.326,4.534-3.278,7.341C180.878,169.467,182.17,172.104,184.363,173.852z"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* メールアイコン */
  .main-nav li .mail-menu-icon {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="%23ffffff" d="M510.678,112.275c-2.308-11.626-7.463-22.265-14.662-31.054c-1.518-1.915-3.104-3.63-4.823-5.345c-12.755-12.818-30.657-20.814-50.214-20.814H71.021c-19.557,0-37.395,7.996-50.21,20.814c-1.715,1.715-3.301,3.43-4.823,5.345C8.785,90.009,3.63,100.649,1.386,112.275C0.464,116.762,0,121.399,0,126.087V385.92c0,9.968,2.114,19.55,5.884,28.203c3.497,8.26,8.653,15.734,14.926,22.001c1.59,1.586,3.169,3.044,4.892,4.494c12.286,10.175,28.145,16.32,45.319,16.32h369.958c17.18,0,33.108-6.145,45.323-16.384c1.718-1.386,3.305-2.844,4.891-4.43c6.27-6.267,11.425-13.741,14.994-22.001v-0.064c3.769-8.653,5.812-18.171,5.812-28.138V126.087C512,121.399,511.543,116.762,510.678,112.275z M46.509,101.571c6.345-6.338,14.866-10.175,24.512-10.175h369.958c9.646,0,18.242,3.837,24.512,10.175c1.122,1.129,2.179,2.387,3.112,3.637L274.696,274.203c-5.348,4.687-11.954,7.002-18.696,7.002c-6.674,0-13.276-2.315-18.695-7.002L43.472,105.136C44.33,103.886,45.387,102.7,46.509,101.571z M36.334,385.92V142.735L176.658,265.15L36.405,387.435C36.334,386.971,36.334,386.449,36.334,385.92z M440.979,420.597H71.021c-6.281,0-12.158-1.651-17.174-4.552l147.978-128.959l13.815,12.018c11.561,10.046,26.028,15.134,40.36,15.134c14.406,0,28.872-5.088,40.432-15.134l13.808-12.018l147.92,128.959C453.137,418.946,447.26,420.597,440.979,420.597z M475.666,385.92c0,0.529,0,1.051-0.068,1.515L335.346,265.221L475.666,142.8V385.92z"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* ハンバーガーを表示 */
  .hamburger {
    display: flex;
  }

  .hamburger.active span:nth-child(1) {
    transform: rotate(45deg);
    top: 10px;
  }

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

  .hamburger.active span:nth-child(3) {
    transform: rotate(-45deg);
    top: 10px;
  }

  /* メニューを開いたとき */
  .main-nav.active {
    transform: translateX(0);
  }
}

.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 998;
}

.menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* =====================
   ホーム
===================== */
/* ヒーローセクション */
.hero {
  position: relative;
  margin-top: 70px;
  overflow: hidden;
  background-color: #001a33; /* ロゴに合う濃い色 */
  background-image: url("../images/background.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  padding: 100px 20px;
  color: white;
  text-align: center;

  opacity: 0; /* 初期は透明 */
  transition: opacity 1.5s ease;
}

/* 表示後 */
.hero.show {
  opacity: 1;
}

/* 黒い半透明レイヤー */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
}

/* 文字を前面に */
.hero > * {
  position: relative;
  z-index: 1;
}

.hero h1 {
  font-size: 2em;
  margin-bottom: 10px;
}

.hero p {
  font-size: 1em;
}

.hero-header {
  display: flex;
  justify-content: center; /* 中央揃え */
  align-items: center; /* 縦中央揃え */
  gap: 15px; /* ロゴと文字の間隔 */
  margin-bottom: 20px;
  white-space: nowrap;
}

.hero-logo {
  opacity: 0;
  transform: translateY(-10px); /* 軽く上からフェードイン */
  transition:
    opacity 1s ease,
    transform 1s ease;
}

.hero-logo.show {
  opacity: 1;
  transform: translateY(0);
}

.hero-company-name {
  color: white;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition:
    opacity 1s ease,
    transform 1s ease;
}

.hero-company-name.show {
  opacity: 1;
  transform: translateY(0);
}

.hero-text {
  opacity: 0;
  transform: translateX(30px); /* 右からスタート */
  transition:
    opacity 1s ease,
    transform 1s ease;
}

.hero-text.show {
  opacity: 1;
  transform: translateX(0);
}

@media (max-width: 820px) {
  .hero h1.hero-company-name {
    font-size: 20px;
  }

  .hero-logo {
    width: 60px;
  }

  .hero h2 {
    font-size: 16px;
  }

  .hero p {
    font-size: 14px;
  }
}

@media (max-width: 360px) {
  .hero h2 {
    font-size: 15px;
  }
}

/* ニュースセクション */
.news {
  max-width: 900px;
  margin: 40px auto;
  padding: 20px;
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* =====================
   サービス
===================== */
/* ページ全体のラッパー */
.page-wrapper {
  width: 100%;
  max-width: 1200px; /* PC最大幅 */
  margin: 0 auto; /* 中央寄せ */
  padding: 70px 15px 0;
}

#services h1 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 20px;
  font-weight: bold;
  color: #003366;
}

/* サービスカード */
.services-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin: 20px 0;
}

.service-card {
  background-color: white;
  padding: 20px;
  border-radius: 8px;
  width: 100%;
  max-width: 320px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  border: 2px solid transparent; /* 枠は透明で初期化。activeになったときにborderが追加されても、カードサイズが変わらず上下にズレないようにする */
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border 0.2s ease;
}

.service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* 
  スワイプ（タッチ操作）でもカードを浮かせるため
  active状態にもhover時と同じtransformを適用
*/
.service-card.active {
  border: 2px solid #004080;
  background-color: #f0f8ff;
  transform: translateY(-5px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.service-row {
  display: flex;
  align-items: center;
  gap: 14px;
}

.service-row h3 {
  white-space: nowrap;
}

.service-icon {
  width: 32px;
  height: 32px;

  display: flex;
  align-items: center; /* 縦中央 */
  justify-content: center; /* 横中央 */
}

.service-icon svg {
  width: 100%;
  height: 100%;
  display: block; /* 余計な隙間防止 */
  fill: #003366;
}

.service-card h3 {
  margin: 0;
  font-size: 18px;
}

@media (max-width: 430px) {
  .service-card {
    max-width: none;
  }
}

#details-wrapper {
  position: relative;
  width: 100%;
  max-width: 1000px;
  min-height: 100px;
  overflow: hidden;
  margin: 20px auto;
  border-radius: 8px;
  background-color: #e6f0ff;
}

@media (max-width: 768px) {
  #details-wrapper {
    min-height: 200px;
  }
}

.service-detail {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 0;
  text-align: center;

  /* 最初は右外に置いておく */
  transform: translateY(-50%) translateX(100%);

  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (max-width: 768px) {
  .service-detail {
    text-align: left;
  }
}

.service-detail.active {
  transform: translateY(-50%) translateX(0);
  z-index: 2;
}

/* 次へ移動（左へ消える） */
.service-detail.exit-left {
  transform: translateY(-50%) translateX(-100%);
  z-index: 1;
}

/* 前へ移動（右へ消える） */
.service-detail.exit-right {
  transform: translateY(-50%) translateX(100%);
  z-index: 1;
}

/* 左から入るための初期位置 */
.service-detail.enter-left {
  transform: translateY(-50%) translateX(-100%);
}

/* 右から入るための初期位置 */
.service-detail.enter-right {
  transform: translateY(-50%) translateX(100%);
}

.service-detail p {
  padding: 10px;
  font-size: 16px;
  line-height: 1.8;
  font-weight: bold;
}

@media (max-width: 330px) {
  .service-detail p {
    font-size: 14px;
  }
}

.indicator-container {
  text-align: center;
  margin-top: 10px;
}

.indicator {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 6px;
  background-color: #ccc;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.3s;
}

.indicator.active {
  background-color: #004080;
}

/* 検証範囲テーブル */
.verification-range {
  margin-top: 60px;
}

.verification-range h3 {
  text-align: center;
  font-size: 24px;
  color: #003366;
  margin-bottom: 10px;
}

.verification-range .note {
  text-align: center;
  margin-bottom: 20px;
  color: #555;
}

.table-wrapper {
  width: 100%;
  margin: 30px auto; /* 中央寄せ */
  overflow-x: auto; /* スマホ対応 */
}

.range-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.range-table th,
.range-table td {
  border: 1px solid #ddd;
  padding: 10px;
  font-size: 14px;
}

.range-table th {
  background: #003366;
  color: white;
  text-align: center;
}

.range-table td {
  vertical-align: middle;
}

.range-table tr:nth-child(even) {
  background: #f7f9fc;
}

/* =====================
   会社情報
===================== */
#about {
  max-width: 900px;
  margin: 110px auto 40px;
  padding: 20px;
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

#about h1 {
  font-size: 28px;
  margin-bottom: 20px;
  color: #333;
}

/* =====================
   よくあるご質問
===================== */
.faq-page {
  max-width: 900px;
  margin: 0 auto;
  padding: 70px 20px 40px;
}

.faq-page h1 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 40px;
  color: #003366;
}

.faq-item {
  margin-bottom: 30px;
  padding: 20px;
  border-left: 4px solid #003366;
  background: #f8f9fb;
  border-radius: 6px;
}

.faq-item h2 {
  font-size: 18px;
  margin-bottom: 10px;
  color: #003366;
}

.faq-item p {
  line-height: 1.7;
}

/* =====================
   お問い合わせ・ご依頼
===================== */
#contact {
  max-width: 900px;
  margin: 110px auto 40px;
  padding: 20px;
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

#contact h1 {
  font-size: 28px;
  margin-bottom: 20px;
  color: #333;
}

.contact-btn {
  display: inline-block;
  padding: 10px 20px;
  background-color: #003366;
  color: #fff;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s;
}

.contact-btn:hover {
  background-color: #0055aa;
}

/* =====================
   プライバシーポリシー
===================== */
#privacy {
  max-width: 900px;
  margin: 110px auto 40px;
  padding: 20px;
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

#privacy h1 {
  font-size: 28px;
  margin-bottom: 20px;
  color: #333;
}

#privacy h2 {
  font-size: 20px;
  margin-top: 30px;
  margin-bottom: 10px;
  color: #003366;
  border-left: 4px solid #003366;
  padding-left: 10px;
}

/* フッター */
footer {
  background-color: #004080;
  color: white;
  text-align: center;
  padding: 15px 10px;
  font-size: 0.9em;
  margin-top: 40px;
}

footer a {
  color: white;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.4);
  transition: 0.3s;
}

footer a:hover {
  color: #ffd700;
  text-decoration-color: #ffd700;
}
