#page {
    overflow-x: hidden;
  }
  
  /* ページヘッダー */
  .page-header {
      padding: 2.8rem 0 3.3rem 0;
      position: relative;
  }
  
  .page-header .container {
      position: relative;
  }
  
  .page-header .container::after {
      content: "";
      position: absolute;
      bottom: -3rem;
      left: calc(-50vw + 50%);
      right: 0;
      height: 2px;
      background-color: #0062B0;
  }
  
  .page-header .container::before {
      content: "";
      position: absolute;
      bottom: calc(-3rem + 1px);
      right: 0;
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background-color: #0062B0;
      transform: translateY(50%);
  }
  
  .page-title h1 {
      font-size: 2.5rem;
      font-weight: bold;
      color: var(--text-dark);
      margin: 0;
      display: flex;
      align-items: center;
      flex-wrap: wrap;
  }
  
  .page-title h1 span {
      font-size: 1.2rem;
      font-weight: bold;
      top:3px;
      position: relative;
      color: var(--primary-blue);
      margin-left: 1rem;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  }
  @media (max-width: 768px) { 
      .page-title h1 span {
          padding-left:0 !important;
          margin-top: .5rem;
          margin-left: 0 !important;
      }
  }
  
  /* パンくず */
  main .breadpath {
      margin: 1rem 0;
      color:#0062B0;
      font-size: .8rem;
  }
  main .breadpath a {
      color:#0062B0;
  }
  @media (max-width: 768px) { 
      main .breadpath {
          margin-top: 2rem;
      }
  }
  
  /* 製品セクション */
  .products-section {
      background-color: #ffffff;
      padding: 4rem 0;
  }
  
  .product-category {
      margin-bottom: 2rem;
  }
  
  .product-category:last-child {
      border-bottom: none;
      margin-bottom: 0;
  }
  
  /* カテゴリーヘッダー */
  .product-category-header {
      position: relative;
      background-color: #0062B0;
      display: flex;
      align-items: center;
      cursor: pointer;
      border-radius: 8px 8px 0 0;
      overflow: hidden;
  }
  
  .category-header-image {
      width: 100%;
      display: block;
      position: relative;
      z-index: 1;
      pointer-events: none;
  }
  
  .category-header-image img {
      width: 100%;
      height: auto;
      object-fit: cover;
      display: block;
  }
  
  .category-header-text {
      position: absolute;
      top: 50%;
      left: 2rem;
      transform: translateY(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      justify-content: center;
  }
  
  .category-header-link {
      position: absolute;
      top: 50%;
      right: 2rem;
      transform: translateY(-50%);
      z-index: 2;
      display: inline-block;
  }
  
  .category-header-link img {
      width: 120px;
      height: auto;
      max-width: 100%;
      display: block;
  }
  
  .product-category-header h2 {
      font-size: 1.8rem;
      font-weight: bold;
      color: #ffffff;
      margin-bottom: 1rem;
      position: relative;
      display: inline-block;
      padding-bottom:.5rem;
  }
  
  .product-category-header h2::after {
      content: "";
      position: absolute;
      bottom: -0.5rem;
      left: 0;
      width: calc(100% + 4rem);
      height: 1px;
      background-color: #ffffff;
  }
  
  .product-category-header h2::before {
      content: "";
      position: absolute;
      bottom: calc(-0.5rem + 1px);
      left: calc(100% + 4rem);
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background-color: #ffffff;
      transform: translateY(50%);
  }
  
  .category-subtitle {
      font-size: 1rem;
      color: #98CEF8;
      margin: 0;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  }
  
  /* 製品画像 */
  .product-category .product-list {
      background-color: #003B6A;
      padding:2rem;
      border-radius: 0 0 8px 8px;
  }
  .product-image {
      margin-bottom: 2rem;
  }
  
  .product-image img {
      width: 100%;
      height: auto;
      border-radius: 8px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
      display: block;
  }
  
  /* 製品リスト */
  .product-list {
      margin-bottom: 2rem;
  }
  
  .product-list ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      margin-bottom: 1rem;
  }
  
  .product-list ul li {
      width: calc(50% - 0.5rem);
      padding: 0;
      margin: 0;
      border: none;
  }
  
  .product-list ul li::before {
      display: none;
  }
  
  .product-list ul li a {
      display: block;
      background-color: #ffffff;
      color: #0062B0;
      padding: 0.8rem 1.5rem;
      border-radius: 8px;
      text-decoration: none;
      font-size: 1rem;
      font-weight: bold;
      text-align: left;
      transition: all 0.3s ease;
      border: 1px solid #0062B0;
      position: relative;
      padding-left: 2.5rem;
  }
  
  .product-list ul li a::before {
      content: "▶";
      position: absolute;
      left: 1rem;
      color: #0062B0;
      font-size: 1rem;
  }
  
  .product-list ul li a:hover {
      background-color: #0062B0;
      color: #ffffff;
      text-decoration: none;
  }
  
  .product-list ul li a:hover::before {
      color: #ffffff;
  }
  
  /* 製品アクションボタン */
  .product-actions {
    text-align: center;
  }
  .product-actions a {
    margin-top: 0;
    margin-bottom: .5rem;
  }
  .close-btn {
      background-color: transparent;
      color: #ffffff;
      padding: 0.8rem 2rem;
      border-radius: 9999px;
      font-weight: bold;
      border: 1px solid #ffffff;
      cursor: pointer;
      transition: all 0.3s ease;
  }
  
  .close-btn:hover {
      background-color: #ffffff;
      color: #0062B0;
  }
  
  /* レスポンシブデザイン */
  
  
  @media (max-width: 768px) {
      .page-header {
          padding: 3rem 0 2rem 0;
          margin-top: 0px;
          margin-bottom: 1rem;
      }
      
      .product-title {
          flex-direction: column;
          align-items: initial !important;
      }
      
      .product-title span {
          margin-left: 0 !important;
          margin-top: 0.5rem;
      }
      
      .page-header .container::after {
          left: calc(-50vw + 50%);
          width: 95vw;
      }
      
      .page-header .container::before {
          left: calc(-50vw + 50% + 95vw - 4.5px);
      }
      
      .page-title h1 {
          font-size: 1.8rem;
        flex-direction: column;
        align-items: start;
      }
      
      .page-title h1 span {
          font-size: 1rem;
      }
      .product-01 .page-title h1 span,
      .product-02 .page-title h1 span,
      .product-03 .page-title h1 span,
      .product-04 .page-title h1 span,
      .product-05 .page-title h1 span,
      .product-06 .page-title h1 span,
      .product-07 .page-title h1 span {
        padding-left: 0 !important;
      }
      
      .products-section {
          padding: 2rem 0;
      }
      
      .product-category {
          margin-bottom: .5rem;
          padding: .5rem 0;
      }
      
      .product-category-header {
          margin-bottom: 0rem;
          border-radius: 8px 8px 0 0;
          overflow: hidden;
      }
      
      .product-category-header {
          min-height: 80px;
      }
      
      .category-header-text {
          padding-left: .2rem;
          left:1rem;
          width:50%;
      }
      
      .product-category-header h2 {
          font-size: 1.2rem;
          padding-bottom: .3rem;
          line-height: 1.4;
      }
      
      .product-category-header h2::after {
          width: 100%;
      }
      
      .product-category-header h2::before {
          left: calc(100% - 3.5px);
      }
      
      .category-subtitle {
          font-size: 0.8rem;
      }
      
      .category-header-link {
          top: auto;
          bottom: .5rem;
          right: .5rem;
          transform: none;
      }
      
      .product-image {
          margin-bottom: 1.5rem;
      }
      
      .product-list {
          margin-bottom: 1.5rem;
          padding:1rem !important;
          border-radius: 0 0 8px 8px;
      }
      
      .product-list ul li {
          width: 100%;
      }
      
      .product-list ul li a {
          font-size: 0.9rem;
          padding: 0.7rem .5rem;
          padding-left: 1.4rem;
      }
      .product-list ul li a::before {
          left: .5rem;
          font-size:.8rem;
          top:.85rem;
      }
      
      .product-actions {
          flex-direction: column;
      }
      
      .btn-product-list,
      .close-btn {
          font-size:.8rem;
          text-align: center;
          padding: 0.4rem 1rem;
      }
  }
  
  /* Product Details Section */
  .product-details-section {
      background-color: #EBF7FF;
      padding: 4rem 0;
  }
  
  .product-detail-item {
      margin-bottom: 4rem;
      background-color: #ffffff;
      border-radius: 8px;
      padding: 2rem;
  }
  
  .product-detail-item:last-child {
      margin-bottom: 0;
  }
  
  .product-detail-item h2 {
      font-size: 1.5rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 1rem;
      padding-bottom: .5rem;
      border-bottom: 1px solid var(--primary-blue);
      margin-top: .2rem;
  }
  
  .product-description-text {
      font-size: 1rem;
      line-height: 1.8;
      color: var(--text-dark);
      margin-bottom: 1.5rem;
  }
  
  .related-documents {
      margin-bottom: 1rem;
      padding:1rem;
      border: 1px solid var(--primary-blue);
      border-radius: 5px;
  }
  
  .related-documents h3 {
      font-size: 1rem;
      font-weight: bold;
      color: var(--text-dark);
      margin-bottom: .6rem;
  }
  
  .related-documents ul {
      list-style: none;
      padding: 0;
      margin: 0;
  }
  
  .related-documents ul li {
      font-size: 0.95rem;
      color: var(--text-dark);
      margin-bottom: 0.5rem;
      padding-left: 0;
      display: inline-block;
      margin-right: 1rem;
  }
  
  .related-documents ul li a {
      text-decoration: underline;
      color: var(--primary-blue);
      position: relative;
      padding-left: 1rem;
      font-size: .85rem;
  }
  
  .related-documents ul li a::before {
      content: "・";
      position: absolute;
      left: 3px;
      top:0;
      color: var(--primary-blue);
  }
  
  .related-documents ul li a:hover {
      color: #0062B0;
      text-decoration: none;
      transition: .3s;
  }
  
  .product-actions {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
  }
  
  .product-actions .btn {
      padding: 0.8rem 2rem;
      font-weight: bold;
      border-radius: 4px;
      text-decoration: none;
      transition: all 0.3s ease;
  }
  
  .product-actions .btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }
 
    .product-actions h3 {
      font-size: 1rem;
      color: var(--primary-blue);
      margin: 0;
      padding-right: 0;
      position: relative;
      text-align: left;
      width: 100%;
      margin-bottom: .4rem;
  }
  
  .product-actions h3::after {
      content: "";
      position: absolute;
      height: 1px;
      width:calc(100% - 5.8rem); 
      right:0;
      top:50%;
      opacity: .5;
      background-color: var(--primary-blue);
  }
  
  /* Products Navigation Section */
  .products-nav-section {
      background-color: #0062B0;
      background-image: url('../img/top/product_bg.png');
      background-size: cover;
      background-position: center center;
      padding: 4rem 0;
      text-align: center;
  }
  
  .products-nav-section .section-title {
      font-size: 2rem;
      font-weight: bold;
      color: #ffffff;
      text-align: center;
      margin-bottom: 3rem;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      display: inline-block;
      position: relative;
  }
  
  .products-nav-section .section-title span {
      font-size: 1.2rem;
      color: #98CEF8;
      margin-left: 0;
      margin-bottom: 0.9rem;
      display: block;
  }
  
  .products-nav-section .section-title::after {
      content: "";
      position: absolute;
      top: calc(1.2rem + 0.9rem - 5px);
      left: 50%;
      transform: translateX(-50%);
      width: calc(100% + 4rem);
      height: 1px;
      background-color: #ffffff;
  }
  
  .products-nav-section .section-title::before {
      content: "";
      position: absolute;
      top: calc(1.2rem + 0.9rem - 5px);
      left: calc(100% + 2rem);
      transform: translateY(-50%);
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background-color: #ffffff;
  }
  
  /* product詳細ページ用のスタイル */
  .product-nav .mb-2 {
    margin-bottom: 1rem !important;
  }
  .product-nav a {
      display: block;
      background-color: #0062B0;
      color: #ffffff;
      font-size: .9rem;
      font-weight: bold !important;
      padding: 1rem 1.5rem;
      border-radius: 8px;
      text-decoration: none;
      text-align: left;
      transition: all 0.2s ease;
      position: relative;
      padding-left: 2.5rem;
      margin-bottom: 1rem;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 4px 0 #003d73;
  }
  
  .product-nav a::before {
      content: "▶";
      position: absolute;
      left: 1rem;
      color: #ffffff;
      font-size: 1rem;
  }
  
  .product-nav a:hover {
      background-color: #005299;
      color: #ffffff;
      text-decoration: none;
      transform: translateY(2px);
      box-shadow: 0 2px 0 #003d73;
  }
  
  .product-nav a:active {
      transform: translateY(3px);
      box-shadow: 0 1px 0 #003d73;
  }
  
  .product-nav-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      background-color: #ffffff;
      color: var(--primary-blue);
      font-weight: bold !important;
      padding: 1rem;
      border-radius: 8px;
      text-decoration: none;
      transition: all 0.3s ease;
      border: 1px solid rgba(255, 255, 255, 0.2);
      height: 100%;
  }
  
  .product-nav-link:hover {
      background-color: rgba(255, 255, 255, 0.2);
      color: #ffffff;
      text-decoration: none;
      transform: translateY(-2px);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  }
  
  .product-nav-link span {
      font-size: 1rem;
      flex: 1;
      text-align: left;
  }
  
  .product-nav-link i {
      font-size: 1rem;
      margin-left: 1rem;
      width: 2rem;
      height: 2rem;
      background-color: #0062B0;
      color: #ffffff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
  }
  
  @media (max-width: 768px) {
      .product-details-section {
          padding: 2rem 0;
      }
      
      .product-detail-item {
          margin-bottom: 3rem;
      }
      
      .product-detail-item h2 {
          font-size: 1.4rem;
          margin-bottom: 1rem;
          line-height: 1.5;
          margin-top: 1rem;
      }
      
      .product-description-text {
          font-size: 0.9rem;
          margin-bottom: 1rem;
      }
      
      .related-documents {
          margin-bottom: 1.5rem;
      }
      
      .product-actions {
          flex-direction: column;
          gap: 0.2rem;
      }
      
      .product-actions .btn {
          width: 100%;
          text-align: center;
      }
      
      .products-nav-section {
          padding: 2rem 0;
      }
      
      .products-nav-section .section-title {
          font-size: 1.5rem;
          margin-bottom: 2rem;
      }
      
      .products-nav-section .section-title span {
          font-size: 1rem;
          display: block;
          margin-left: 0;
          margin-bottom: 0.9rem;
      }
      
      .products-nav-section .section-title::after {
          top: calc(1rem + 0.9rem - 5px);
      }
      
      .products-nav-section .section-title::before {
          top: calc(1rem + 0.9rem - 5px);
      }
      
      .product-nav-link {
          padding: 1rem 1rem;
          font-size: 0.9rem;
      }
      
      .product-nav-link i {
          width: 1.6rem;
          height: 1.6rem;
          font-size: 0.8rem;
      }
  }
  
  /* カタログセクション */
  .catalogue-section {
      background-color: #0062B0;
      padding: 2rem 0;
      text-align: center;
      margin-top: 2rem;
  }
  
  .catalogue-section a {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      background-color: #ffffff;
      color: var(--primary-blue);
      font-weight: bold !important;
      padding: 1rem 1.5rem;
      border-radius: 8px;
      text-decoration: none;
      transition: all 0.2s ease;
      border: 1px solid rgba(255, 255, 255, 0.2);
      min-width: 300px;
      box-shadow: 0 4px 0 #003B6A;
      position: relative;
  }
  
  .catalogue-section a:hover {
      color: var(--primary-blue);
      text-decoration: none;
      transform: translateY(2px);
      box-shadow: 0 2px 0 #003B6A;
  }
  
  .catalogue-section a i {
      font-size: 1rem;
      margin-left: 1rem;
      width: 2rem;
      height: 2rem;
      background-color: #0062B0;
      color: #ffffff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
  }
  
  @media (max-width: 768px) {
      .catalogue-section a i {
          width: 1.6rem;
          height: 1.6rem;
          font-size: 0.8rem;
      }
  }
  
  @media (max-width: 768px) {
      .catalogue-section {
          padding: 2rem 0;
      }
      
      .catalogue-section a {
          min-width: auto;
          width: 100%;
          max-width: 100%;
      }
  }
  
  /*----------------------------------------------------
  MANUFACTURING Page
  ----------------------------------------------------*/
  /* WashiON PRIDE Section */
  /* manufacturingページ専用のアニメーション */
  .manufacturing .pride-section {
      opacity: 0;
      transform: translateY(50px);
      transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  }
  
  .manufacturing .pride-section.animate-in {
      opacity: 1;
      transform: translateY(0);
  }
  
  .pride-section h2 {
      font-size: 2rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 1rem;
      letter-spacing: 0.1em;
  }
  
  .pride-section p {
      color: var(--primary-blue);
      font-weight: bold;
      line-height: 1.8;
  }
  
  @media (max-width: 768px) { 
      .pride-section {
          padding: 2rem 15px;
      }
      
      .pride-section .container {
          padding: 0;
      }
      
      .pride-section h2 {
          font-size: 1.2rem;
      }
      
      .pride-section p {
          font-size: .85rem;
      }
  }
  /* Slogan Section */
  .themes-section {
      background-color: #EBF7FF;
      padding: 4rem 0;
      overflow: hidden;
  }
  .themes-section h2 {
      font-size: 1.9rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 4rem;
      letter-spacing: 0.1em;
      text-align: center;
  }
  @media (max-width: 768px) { 
      .themes-section h2 {
          font-size: 1.4rem;
      }
  }
  
  /* Theme Content */
  .theme-title {
      display: flex;
      align-items: baseline;
      gap: 1rem;
      margin-bottom: -1.9rem;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  }
  
  .theme-number {
      font-size: 4rem;
      font-weight: bold;
      color: #0062B0;
  }
  
  .theme-title-en {
      font-weight: bold;
      color: #0062B0;
      margin: 0;
      font-size: 2rem;
  }
  
  /* Theme Info */
  .theme-info {
      background-color: #0062B0;
      color: #ffffff;
      padding: 2rem;
      position: relative;
      margin-right: -100px;
      padding-right: calc(100px + 1rem);
      z-index: 1;
      margin-bottom: -2rem;
      margin-top: 0;
      text-align: justify;
      border-radius:8px;
  }
  .theme-item {
      margin-bottom: 5rem;
  }
  
  .theme-life .theme-info {
      margin-right: 0;
      margin-left: -100px;
      padding-left: calc(100px + 1rem);
      padding-right: 2rem;
      z-index: 1;
  }
  .theme-life .theme-title {
      justify-content: end;
  }
  .theme-life .theme-info h3 {
      text-align: right;
  }
  
  .theme-info * {
      color: #ffffff;
  }
  .theme-info p {
      font-weight: 300;
  }
  
  .theme-image {
      position: relative;
      z-index: 2;
  }
  
  /* 02 LIFEの画像を前面に表示 */
  .theme-life .col-md-6.order-md-1 {
      position: relative;
      z-index: 3;
  }
  
  .theme-life .col-md-6.order-md-2 {
      position: relative;
      z-index: 1;
  }
  
  .theme-life .theme-image {
      z-index: 3;
  }
  
  .theme-life .theme-title-ja::after {
    left: calc(-100px - 1rem);
}
.theme-title-ja {
    position: relative;
    padding-bottom: 0.5rem;
}

.theme-title-ja::after {
    content: "";
    position: absolute;
    bottom: -0.1rem;
    left: calc(-2rem);
    right: 0;
    height: 1px;
    background-color: #ffffff;
}

.theme-title-ja::before {
    content: "";
    position: absolute;
    bottom: calc(-0.1rem + 1px);
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #ffffff;
    transform: translateY(50%);
}
  @media (max-width: 768px) { 
      .themes-section h2 {
          margin-bottom: 1rem;
      }
      .theme-info {
          margin-right: 0;
          padding-right: 2rem;
          margin-left: -15px;
      }
      .theme-image {
          margin-right: -18px;
      }
      .theme-life .theme-info {
          margin-left: 0;
          padding-left: 2rem;
          margin-right: -15px;
      }
      .theme-life .theme-image {
          margin-left: -18px;
          margin-right: 0;
      }
      .theme-item {
          margin-bottom: 1rem;
      }
        
        .theme-title-ja::after {
            left: calc(-2rem);
        }
        
        .theme-life .theme-title-ja::after {
            left: calc(-2rem);
        }
      
  }
  
  /* Theme Item Scroll Animations - manufacturingページ専用 */
  .manufacturing .theme-item .col-md-6 {
      opacity: 0;
      transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  }
  
  /* 01 PROPERTY & 03 LIVING: 左側のcol（theme-content）は左から */
  .manufacturing .theme-property .col-md-6:first-child,
  .manufacturing .theme-living .col-md-6:first-child {
      transform: translateX(-50px);
  }
  
  /* 01 PROPERTY & 03 LIVING: 右側のcol（theme-image）は右から */
  .manufacturing .theme-property .col-md-6:last-child,
  .manufacturing .theme-living .col-md-6:last-child {
      transform: translateX(50px);
  }
  
  /* 02 LIFE: order-md-1（左側、theme-image）は左から */
  .manufacturing .theme-life .col-md-6.order-md-1 {
      transform: translateX(-50px);
  }
  
  /* 02 LIFE: order-md-2（右側、theme-content）は右から */
  .manufacturing .theme-life .col-md-6.order-md-2 {
      transform: translateX(50px);
  }
  
  /* アニメーション実行時 - すべてのcol要素を元の位置に */
  .manufacturing .theme-item.animate-in .col-md-6 {
      opacity: 1;
      transform: translateX(0);
  }
  
  @media (max-width: 768px) {
      .manufacturing .theme-item .col-md-6 {
          transform: translateY(30px);
      }
      
      .manufacturing .theme-item.animate-in .col-md-6 {
          transform: translateY(0);
      }
  }
  
  /*----------------------------------------------------
  COMPANY Page
  ----------------------------------------------------*/
  
  /* 共通セクションタイトル */
  .section-title {
      font-size: 1.8rem;
      font-weight: bold;
      color: var(--text-dark);
      text-align: center;
      margin-bottom: 2rem;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: relative;
      width: 100%;
      padding-bottom: 1.5rem;
      display: inline-flex;
      width: auto;
  }
  
  .section-title span {
      font-size: 1rem;
      color: var(--primary-blue);
      margin-bottom: 0.9rem;
      display: block;
  }
  
  .section-title::after {
      content: "";
      position: absolute;
      bottom: calc(4.4rem - 3px);
      left: 50%;
      transform: translateX(-50%);
      width: 200px;
      height: 1px;
      background-color: var(--primary-blue);
  }
  
  .section-title::before {
      content: "";
      position: absolute;
      bottom: calc(4.4rem - 6px);
      left: calc(50% + 100px - 3.5px);
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background-color: var(--primary-blue);
  }
  @media (max-width: 768px) { 
      .section-title {
          margin-bottom: .5rem !important;
      }
  }
  
  /* 白色バージョン */
  .section-title.white {
      color: #ffffff;
  }
  
  .section-title.white span {
      color: #98CEF8;
  }
  
  .section-title.white::after {
      background-color: #ffffff;
  }
  
  .section-title.white::before {
      background-color: #ffffff;
  }
  
  .philosophy-section {
      background-color: #0062B0;
      background-image: url('../img/company/philosophy_bg.png');
      background-position: bottom;
      background-size: 100% auto;
      background-repeat: no-repeat;
      padding: 4rem 0;
      margin-top: 2rem;
  }
  @media (max-width: 768px) { 
      .philosophy-section {
          background-size: cover;
      }
  }
  
  .philosophy-section .row:first-child {
      text-align: center;
  }
  
  .philosophy-section p {
      text-align: center;
      color: #ffffff;
  }
  
  .philosophy-text {
      font-size: 1rem;
      line-height: 2;
      color: #ffffff;
      text-align: center;
      max-width: 900px;
      margin: 0 auto;
      padding: 0 2rem;
      font-weight: 400;
      letter-spacing: 0.05em;
  }
  
  @media (max-width: 992px) {
      .philosophy-text {
          font-size: 1rem;
          line-height: 1.9;
          padding: 0 1.5rem;
          max-width: 100%;
      }
  }
  
  @media (max-width: 768px) {
      .philosophy-section {
          padding: 2rem 0;
      }
      
      .philosophy-section .section-title span {
          display: block;
          margin-left: 0;
          margin-top: 0.5rem;
      }
      
      .philosophy-text {
          font-size: 0.9rem;
          line-height: 1.8;
          padding: 0 1rem;
          letter-spacing: 0.03em;
      }
  }
  
  @media (max-width: 576px) {
      .philosophy-text {
          font-size: 0.9rem;
          line-height: 1.7;
          padding: 0 0.75rem;
          letter-spacing: 0.02em;
      }
  }
  
  /*----------------------------------------------------
  Profile Section (会社概要)
  ----------------------------------------------------*/
  .profile-section {
      background-color: #ffffff;
      padding: 4rem 0;
  }
  
  .profile-col-left,
  .profile-col-right {
      padding: 0 2rem;
  }
  
  .profile-table {
      width: 100%;
      border-collapse: collapse;
  }
  
  .profile-item {
      position: relative;
  }
  
  .profile-label {
      font-size: 0.9rem;
      font-weight: bold;
      color: var(--text-dark);
      padding: 0 0 0.5rem 0;
      letter-spacing: 0.2em;
      vertical-align: top;
      width: 30%;
  }
  
  .profile-value {
      font-size: 0.95rem;
      color: var(--text-dark);
      line-height: 1.8;
      padding: 0 0 0.5rem 0;
  }
  .officer-item {
      display: flex;
  }
  .officer-item .officer-position {
      width: 8rem;
  }
  .profile-table th {
      border-bottom: 2px solid var(--primary-blue);
      padding:1rem 0 .4rem 0;
      text-align: center;
  }
  .profile-table td {
      border-bottom: 2px solid #999;
      padding:1rem 0 .4rem 0;
  }
  @media (max-width: 768px) { 
      .profile-table th {
          display: block;
          width: 100%;
          padding:0;
          padding-bottom: .2rem;
          text-align: left;
      }
      .profile-table td {
          display: block;
          width: 100%;
          padding:0;
          padding-top: .2rem;
          padding-bottom: 1rem;
          border:none;
      }
      
  }
  /*----------------------------------------------------
  History Section (会社沿革)
  ----------------------------------------------------*/
  .history-section {
      background-color: #ffffff;
      padding: 4rem 0;
  }
  .history-section .container {
      background-color: #EBF7FF;
      padding-top: 3rem;
      padding-bottom: 3rem;
  }
  
  .history-timeline {
      position: relative;
  }
  
  .history-timeline::before {
      content: "";
      position: absolute;
      left: calc(45%);
      top: 1rem;
      bottom: 0;
      width: 2px;
      background-color: var(--primary-blue);
      transform: translateX(-50%);
      height: calc(100% + 2rem);
  }
  
  .history-item {
      position: relative;
      display: flex;
      align-items: center;
      margin-bottom: 0.6rem;
  }
  
  .history-item:last-child {
      margin-bottom: 0;
  }
  
  .history-item::before {
      content: "";
      position: absolute;
      left: calc(45%);
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background-color: var(--primary-blue);
      transform: translateX(-50%);
      z-index: 1;
  }
  
  .history-date {
      width: 45%;
      padding-right: 2rem;
      text-align: right;
      font-size: 0.9rem;
      color: var(--primary-blue);
      line-height: 1.6;
      font-weight: 600;
  }
  
  .history-content {
      width: 55%;
      padding-left: 2rem;
      text-align: left;
      font-size: 0.9rem;
      color: var(--text-dark);
      line-height: 1.8;
      font-weight: 600;
  }
  
  /* レスポンシブ */
  @media (max-width: 992px) {
      .profile-col-left,
      .profile-col-right {
          padding: 0 1rem;
      }
      
      .profile-item:not(:last-child)::after {
          bottom: -1rem;
      }
      
      .history-timeline::before {
          left: calc(30% + 2px);
      }
      
      .history-item::before {
          left: calc(30% + .1rem);
          width: 10px;
          height: 10px;
      }
      
      .history-date {
          width: 30%;
          padding-right: 1.5rem;
          font-size: 1rem;
      }
      
      .history-content {
          width: 70%;
          padding-left: 1.5rem;
          font-size: 1rem;
      }
  }
  
  @media (max-width: 768px) {
      .profile-section {
          padding: 2rem 0;
      }
      .section-title::after {
          width: 150px;
      }
      
      .section-title::before {
          left: calc(50% + 75px - 3.5px);
      }
      .history-section {
          padding-top: 0;
      }
      .profile-col-left,
      .profile-col-right {
          padding: 0 1rem;
          margin-bottom: 2rem;
      }
      
      .profile-label {
          font-size: 1rem;
      }
      
      .profile-value {
          font-size: 1rem;
          line-height: 1.5;
      }
      .history-timeline::before {
          left: 0;
          transform: translateX(-50%);
          top:.9em;
      }
      .history-section {
          padding:2rem 0;
      }
      .history-item::before {
          left: 0;
          top:.5em;
          transform: translateX(-50%);
      }
      .history-item {
          flex-direction: column;
          align-items: flex-start;
          margin-bottom: .5rem;
      }
      .history-date {
          width: 100%;
          text-align: left;
          padding:0;
          padding-bottom: 0rem;
          padding-left: 1em;
      }
      .history-content {
          width: 100%;
          padding-left: 1em;
          padding-top: .1rem;
      }
      
  }
  
  /*----------------------------------------------------
  Access Section (事業所・アクセス)
  ----------------------------------------------------*/
  .map-section .col-12 {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
  }
  
  .map-section .section-title {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0;
      z-index: 1;
      padding-left:2rem;
  }
  
  .map-section .section-title::after {
      left: 0;
      transform: none;
      width: calc(100% + 2rem);
  }
  
  .map-section .section-title::before {
      left: calc(100% + 2rem - 3.5px);
      transform: none;
  }
  
  .map-section .col-12 img {
      width: 100%;
      height: 100%;
  }
  
  @media (max-width: 768px) {
      .map-section {
          padding-top:0;
      }
      .map-section .col-12 {
          display: block;
          position: static;
          text-align: center;
      }
      .map-section .col-12 img {
          width: 100%;
          height: auto;
          margin-top: 2rem;
      }
      
      .map-section .section-title {
          position: relative;
          margin-bottom: 2.5rem;
          padding-left: 0;
          padding-bottom: 0;
          text-align: center;
      }
      
      .map-section .section-title span {
          margin-bottom: 0.9rem;
      }
      
      .map-section .section-title::after {
          content: "";
          position: absolute;
          top: calc(1rem + .6rem);
          left: 50%;
          transform: translateX(-50%);
          width: 150px;
          height: 1px;
          background-color: var(--primary-blue);
      }
      
      .map-section .section-title::before {
          content: "";
          position: absolute;
          top: calc(1rem + .6rem - 3px);
          left: calc(50% + 75px - 3.5px);
          width: 7px;
          height: 7px;
          border-radius: 50%;
          background-color: var(--primary-blue);
      }
  }
  
  .office-section {
      margin-top: 3rem;
  }
  
  .office-section.row {
      display: flex;
      align-items: stretch;
  }
  
  .office-section.row > .col-6 {
      display: flex;
      flex-direction: column;
  }
  
  .office-section.row > .col-6 > .row {
      flex-shrink: 0;
  }
  
  .office-section .col-md-6 {
      display: flex;
      flex-direction: column;
  }
  
  .office-section h3,
  .branch-section h3 {
      font-size: 1.2rem;
      font-weight: bold;
      background-color: var(--primary-blue);
      color: #ffffff;
      padding: 1rem;
      display: block;
      border-radius: 5px;
      margin-bottom: 1.5rem;
  }
  .branch-section h3 {
      margin-top: 3rem;
  }
  .office-section h4,
  .branch-section h4 {
      font-size: 1.1rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: .4rem;
      padding-bottom: .4rem;
      border-bottom: 1px solid var(--primary-blue);
      position: relative;
  }
  
  .office-section h4::after,
  .branch-section h4::after {
      content: "";
      position: absolute;
      right: 0;
      bottom: -3px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background-color: var(--primary-blue);
  }
  .office-section address,
  .branch-section address {
      font-size: 0.95rem;
      color: var(--text-dark);
      line-height: 1.6;
      margin-bottom: .5rem;
  }
  .office-section address a,
  .branch-section address a {
      color: var(--text-dark);
      text-decoration: none;
  }
  .office-section .white-btn,
  .branch-section .white-btn {
      margin-top: .2rem;
      padding:.1rem 0;
      display: block;
      font-size:.7rem;
      text-align: center;
  }
  .office-section .route-info {
      margin-top: 1rem;
      padding:1rem;
      background-color: #EBF7FF;
      flex: 1;
      display: flex;
      flex-direction: column;
      position: relative;
  }
  
  .office-section .route-info .row {
      position: relative;
  }
  
  .office-section .route-info::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 1rem;
      bottom: 1rem;
      width: 1px;
      height:calc(100% - 2rem);
      background-color: var(--primary-blue);
  }
  
  .office-section .route-info h5 {
      font-size: 0.8rem;
      margin-bottom: .3rem;
      font-weight: bold;
      color: var(--primary-blue);
  }
  .office-section .route-info p {
      font-size: 0.75rem;
      color: var(--text-dark);
      line-height: 1.6;
      margin-bottom: 0;
  }
  .branch-section .branches {
      position: relative;
      padding-left: 2rem;
      margin-bottom: 1.5rem;
  }
  .branch-section .branches::before {
      content: "";
      position: absolute;
      left: 1rem;
      top: 0;
      bottom: 0;
      width: 5px;
      height: 100%;
      background-color: var(--primary-blue);
  } 
  .branch-section .branches h4 {
      margin-left: -1rem;
      padding-left: 1rem;;
  }
  
  /*----------------------------------------------------
  Development History Table (製品開発沿革)
  ----------------------------------------------------*/
  .dev-hisotry {
      background-color: #EBF7FF;
      padding: 4rem 0;
  }
  .development-table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 2rem;
  }
  
  .development-table thead {
      background-color: var(--primary-blue);
  }
  
  .development-table th,
  .development-table td {
      font-size: 0.85rem;
      padding: 0.5rem;
  }
  
  .development-table th {
      color: #ffffff;
      font-weight: bold;
      text-align: left;
      border-bottom: 1px solid var(--primary-blue);
  }
  
  .development-table th:first-child {
      width: 13rem;
  }
  
  .development-table th:nth-child(2) {
      width: 28%;
  }
  
  .development-table th:nth-child(3) {
      width: 60%;
  }
  
  .development-table tbody tr {
      border-bottom: none;
  }
  
  .development-table tbody tr:nth-child(even) {
      background-color: #ffffff;
  }
  
  .development-table td {
      vertical-align: top;
      border-top: none;
      border-bottom: none;
      color: var(--text-dark);
      line-height: 1.6;
  }
  
  .development-table td:first-child {
      font-weight: 500;
      color: var(--primary-blue);
    vertical-align: middle;
    text-align: center;
  }
  
  .development-table td:nth-child(2) {
      border-left: 1px solid var(--primary-blue);
      border-right: 1px solid var(--primary-blue);
  }
  
  .development-table td:last-child {
      border-right: none;
  }
  
  /* レスポンシブ */
  @media (max-width: 768px) {
      .development-table th,
      .development-table td {
          font-size: 0.85rem;
          padding: 0.5rem;
      }
      
      .development-table th:first-child {
          width: 15%;
      }
      
      .development-table th:nth-child(2) {
          width: 25%;
      }
      
      .development-table th:nth-child(3) {
          width: 60%;
      }
  }
  
  /* テーブルアコーディオン */
  .development-table tbody tr.table-row-hidden {
      display: none;
  }
  
  .development-table tbody tr.table-row-hidden.show {
      display: table-row;
  }
  
  /*----------------------------------------------------
  Q&A Section (Q&A)
  ----------------------------------------------------*/
  .qa-nav a {
      display: block;
      background-color: #0062B0;
      color: #ffffff;
      font-size: .9rem;
      font-weight: bold !important;
      padding: .5rem 1.5rem;
      border-radius: 8px;
      text-decoration: none;
      text-align: left;
      transition: all 0.2s ease;
      position: relative;
      padding-left: 2.5rem;
      margin-bottom: 1rem;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 4px 0 #003d73;
  }
  
  .qa-nav a::before {
      content: "▶";
      position: absolute;
      left: 1rem;
      color: #ffffff;
      font-size: 1rem;
  }
  
  .qa-nav a:hover {
      background-color: #005299;
      color: #ffffff;
      text-decoration: none;
      transform: translateY(2px);
      box-shadow: 0 2px 0 #003d73;
  }
  
  .qa-section {
      background-color:#EBF7FF;
      padding: 2rem 0;
  }
  .qa-section h2 {
      font-size: 1.3rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 1rem;
      line-height: 1.5;
  }
  
  .qa-card {
      background-color: #ffffff;
      border-radius: 10px;
      padding:1rem 2rem;
      margin-bottom: 1.5rem;
  }
  .qa-card h3 {
      font-size: 1rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 0rem;
      line-height: 1.5;
      position: relative;
      padding-right: 3rem;
      cursor: pointer;
      user-select: none;
  }
  
  .qa-card h3 .qa-toggle-icon {
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 2rem;
      height: 2rem;
      background-color: var(--primary-blue);
      color: #ffffff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.5rem;
      font-weight: normal;
      line-height: 1;
      font-style: normal;
      transition: transform 0.3s ease;
  }
  
  .qa-card h3 .qa-toggle-icon::before {
      content: "+";
  }
  
  .qa-card.active h3 .qa-toggle-icon::before {
      content: "−";
  }
  .qa-card .caps-q {
      color: #0062B0;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      padding-right: .5em;
      font-size: 1.4rem;
  }
  .qa-card .cat {
      background-color: var(--primary-blue);
      color: #ffffff;
      font-size: 0.8rem;
      padding: 0.2em 0.5em .3em .5em;
      top: -2px;
      position: relative;
      border-radius: 5px;
      font-weight: bold;
      margin-right: .5em;
  }
  .qa-card .answer {
      display: flex;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease, padding-top 0.3s ease, padding-bottom 0.3s ease;
      padding-top: 0;
      padding-bottom: 0;
  }
  
  .qa-card.active .answer {
      max-height: 1000px;
      padding-top: 1rem;
      padding-bottom: 0;
  }
  .qa-card .answer .caps-a {
      font-weight: bold;
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      padding-right: .5em;
      font-size: 1.4rem;
  }
  .qa-card .answer p {
      font-size: 0.9rem;
      line-height: 1.6;
      margin-bottom: 0;
      padding-top: .4rem;
  }
  
  #q2,
  #q4 {
      background-color: #fff;
  }
  #q2 .qa-card,
  #q4 .qa-card {
      background-color: #EBF7FF;
  }
  
  /*----------------------------------------------------
  News Section (新着情報)
  ----------------------------------------------------*/
  
  #news .news-nav {
      padding:1rem 0;
  }
  #news .news-nav h3 {
      font-size: 1.2rem;
      font-weight: bold;
      color: var(--primary-blue);
      font-family: "Lexend", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      margin-bottom: 0;
  }
  
  #news .news-nav .cat,
  #news .news-nav .archive {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: .5rem;
      padding:1rem 0;
  }
  #news .news-nav .cat {
      border-bottom: 1px solid var(--primary-blue);
  }
  #news .news-nav .cat a {
      display: inline-block;
      border: 1px solid var(--primary-blue);
      border-radius: 999px;
      padding: 0.2rem 0.6rem .3rem .6rem;
      color: var(--primary-blue);
      text-decoration: none;
      transition: all 0.3s ease;
      font-size: 0.8rem;
  }
  #news .news-nav .cat a:hover,
  #news .news-nav .cat a.active {
      background-color: var(--primary-blue);
      color: #ffffff;
  }
  @media (max-width: 768px) { 
      #news .news-nav {
          padding:1rem 0;
      }
      #news .news-nav h3 {
          font-size: 1rem;
      }
      #news .news-nav .cat {
          flex-direction: column;
          text-align: left;
          align-items: flex-start;
      }
  }
  
  /* NEWSリスト */
  #news .news-list {
      padding-bottom: 3rem;
  }
  #news .news-list ul {
      padding:0;
      list-style: none;
  }
  #news .news-list li {
      margin-bottom: 1rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid #ddd;
  }
  #news .news-list .date,
  #news .news-list .cat {
      font-size: 0.7em;
  }
  #news .news-list .cat {
      display: inline-block;
      margin-left: 0.5rem;
      padding: 0.1rem 0.6rem;
      background-color: var(--primary-blue);
      color: #ffffff;
      font-size: 0.7rem;
      border-radius: 9999px;
  }
  #news .news-list h3 a {
      font-size: 1rem;
      text-decoration: none;
      color:#222;
      margin: 0.2rem 0 0;
  }
  #news .news-list h3 a:hover {
      color: var(--primary-blue);
      transition: .3s;
  }
  
  /*----------------------------------------------------
  Single Article Page (記事詳細ページ)
  ----------------------------------------------------*/
  
  #single .single-content {
      padding: 2rem 0 3rem;
  }
  
  /* 記事本文エリア */
  
  #single .article-meta {
      margin-bottom: 1rem;
  }
  
  #single .article-date {
      font-size: 0.9rem;
      color: #333;
      display: block;
      margin-bottom: .6rem;
  }
  
  #single .article-category {
      display: inline-block;
      padding: 0.1rem 1.2rem;
      background-color: var(--primary-blue);
      color: #ffffff;
      font-size: 0.8rem;
      border-radius: 999px;
  }
  
  #single .article-title {
      font-size: 1.4rem;
      font-weight: 500;
      color: #222;
      padding-bottom: .3rem;
      border-bottom: 1px solid var(--primary-blue);
      margin-bottom: 1.5rem;
      line-height: 1.6;
  }
  
  #single .article-body {
      margin-bottom: 2rem;
  }
  
  #single .article-body p {
      font-size: .9rem;
      line-height: 1.7;
      color: #333;
      margin-bottom: 1rem;
  }
  
  #single .article-body img {
      max-width: 100%;
      height:auto;
      margin-bottom: 1rem;
  }
  
  #news .form-select {
    width:initial !important
  }
  #news .pagination-links {
    text-align: center;
  }
  #news .page-numbers {
    display: inline-flex;
    padding:0;
    list-style: none;
    gap: 0.5rem;
    background-color: #98CEF8;
    border-radius: 999px;
    padding: .5rem 1rem;
  }
  #news .page-numbers li {
    display: inline-block;
  }
  #news .page-numbers li span,
  #news .page-numbers li a {
    padding: .1rem .5rem;
    background-color: #fff;
    font-size: 0.75rem;
  }
  #news .page-numbers li a {
    text-decoration: none;
    color: var(--primary-blue);
    border-radius: 999px;
  }
  #news .page-numbers li a:hover {
    background-color: var(--primary-blue);
    color: #ffffff;
  }
  #news .page-numbers .dots {
    background-color: transparent;
    padding:.3rem 0;
  }
  #news .page-numbers .current {
    background-color: var(--primary-blue);
    color: #ffffff;
  }
  #news .page-numbers .prev,
  #news .page-numbers .next {
    background-color: var(--primary-blue);
    color: #ffffff;
  }
  #news .page-numbers .prev:hover,
  #news .page-numbers .next:hover {
    background-color: #fff;
    color: var(--primary-blue);
  }

  /* ページネーション */
  #single .article-navigation {
      margin-top: 0rem;
      padding-top: 2rem;
  }
  
  #single .nav-buttons {
      text-align: center;
  }
  #single .nav-buttons .inner {
      display: inline-flex;
      background-color: #EBF7FF !important;
      border-radius: 999px;
      padding: 1rem 2.2rem;
      gap: 1rem;
      flex-wrap: wrap;
  }
  #single .nav-btn {
      display: inline-flex;
      align-items: center;
      padding: 0.2rem 1.2rem;
      background-color: var(--primary-blue);
      color: #ffffff;
      text-decoration: none;
      border-radius: 999px;
      font-size: 0.9rem;
      transition: all 0.3s ease;
  }
  
  #single .nav-btn:hover {
      background-color: #fff;
      color: var(--primary-blue);
  }
  
  #single .nav-btn i {
      font-weight: bold;
      font-size: 1.1em;
  }
  
  #single .nav-btn.next span:last-child {
      margin-left: 0.3rem;
  }
  
  /* 新着記事一覧 */
  #single .latest-articles {
      padding: 2rem;
      background-color: #F4F7F8;
      border-radius: 10px;
  }
  
  #single .latest-title {
      font-size: 1.2rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 1rem;
  }
  
  #single .latest-list {
      list-style: none;
      padding: 0;
      margin: 0;
  }
  
  #single .latest-item {
      padding: .5rem 0;
      border-bottom: 1px solid var(--primary-blue);
  }
  
  #single .latest-item:last-child {
      border-bottom: none;
  }
  
  #single .latest-meta {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 0.2rem;
  }
  
  #single .latest-date {
      font-size: 0.8rem;
      color: #666;
  }
  
  #single .latest-category {
      display: inline-block;
      padding: 0.1rem 0.6rem;
      background-color: var(--primary-blue);
      color: #ffffff;
      font-size: 0.6rem;
      border-radius: 9999px;
  }
  
  #single .latest-snippet {
      font-size: 0.8rem;
      line-height: 1.6;
      color: #333;
      margin: 0;
  }
  #single .latest-snippet a {
      text-decoration: none;
      color: #333;
      transition: .3s;
  }
  #single .latest-snippet a:hover {
      color: var(--primary-blue);
      transition: .3s;
  }
  
  
  /* レスポンシブ対応 */
  
  @media (max-width: 768px) {
      #single .article-title {
          font-size: 1.3rem;
      }
      
      #single .nav-buttons .inner {
          padding: 1rem .8rem;
          gap: .5rem;
      }
      
      #single .nav-btn {
          justify-content: center;
          font-size:.7em;
      }
      #single .article-navigation {
          margin-bottom: 1rem;
      }
  }
  
  /*----------------------------------------------------
  Contact Page (お問い合わせページ)
  ----------------------------------------------------*/
  
  #contact .contact-content {
      padding: 2rem 0 3rem;
  }
  
  /* ヘッダーリンク */
  #contact .contact-header-links {
      background-color: #EBF7FF;
      padding: 2rem 0;
      margin-bottom: 2rem;
      text-align: center;
      color: var(--primary-blue);
  }
  #contact .contact-header-links p{
      margin-bottom: 0;
  }
  #contact .contact-header-links a.blue-btn {
      padding: 0.4rem 2.5rem !important;
  }
  
  /* 電話・FAXでのお問い合わせ */
  #contact .contact-methods {
      margin-bottom: 3rem;
  }
  
  #contact .contact-methods .row {
      align-items: stretch;
  }
  
  #contact .contact-methods .col-md-6 {
      display: flex;
      flex-direction: column;
  }
  
  #contact .contact-methods .inner {
      display: flex;
      flex-direction: column;
      flex: 1;
  }
  
  #contact .contact-method {
      padding: 1rem;
      border-radius: 8px;
      margin-bottom: 1rem;
      flex: 1;
      border: 1px solid var(--primary-blue);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
  }
  
  #contact .contact-methods h3 {
      font-size: 1rem;
      text-align: center;
      font-weight: bold;
      color: #222;
      margin-bottom: 0.8rem;
  }
  
  #contact .contact-method .contact-number {
      font-size: 1.5rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 0rem;
  }
  #contact .contact-method .contact-number a{
      color: var(--primary-blue);
      text-decoration: none;
      transition: .3s;
  }
  #contact .contact-method .contact-number a:hover{
      color: var(--text-dark);
      transition: .3s;
  }
  
  #contact .contact-method .contact-hours {
      font-size: 0.8rem;
      color: var(--primary-blue);
      margin: 0;
  }
  
  /* お問い合わせフォーム */
  #contact .contact-form-section {
      margin-bottom: 3rem;
  }
  
  #contact .form-title {
      font-size: 1.5rem;
      font-weight: bold;
      text-align: center;
      color: var(--primary-blue);
      margin-bottom: 2rem;
      padding-bottom: 0.5rem;
  }
  
  
  /* フォームテーブル */
  #contact .form-table {
      width: 100%;
      border-collapse: collapse;
  }
  
  #contact .form-table tr.form-group {
      border-top: 1px solid #ddd;
  }
  
  #contact .form-table tr.form-group:first-child {
      border-top: none;
  }
  /* select要素にカスタムドロップダウンアイコン */
#contact select.form-control {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='currentColor' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 12px 12px;
    padding-right: 2.5rem;
    color: var(--text-dark);
}

#contact select.form-control:focus {
    color: var(--primary-blue);
}
  #contact .form-table th.form-label {
      padding: 1.5rem 1rem 1.5rem 0;
      font-weight: 500;
      color: #333;
      font-size: 0.9rem;
      width: 16rem;
      text-align: left;
      vertical-align: middle;
      position: relative;
  }
  
  #contact .form-table th.form-label label {
      display: block;
      margin: 0;
  }
  
  #contact .form-table td {
      padding: 1.5rem 0;
      vertical-align: middle;
  }
  
  #contact .form-table th.form-label .required {
      position: absolute;
      right: 1rem;
      top: 50%;
      transform: translateY(-50%);
      background-color: #1D9BFF;
      color: #ffffff;
      font-size: 0.6rem;
      padding: 0.2rem 0.5rem;
      border-radius: 999px;
      white-space: nowrap;
      margin-left: 0;
  }
  
  
  #contact .form-control {
      width: 100%;
      padding: 0.6rem 0.8rem;
      border: 1px solid #CBCBCB;
      border-radius: 4px;
      font-size: 0.95rem;
      transition: border-color 0.3s ease;
      background-color: #F4F7F8;
  }
  
  #contact .form-control:focus {
      outline: none;
      border-color: var(--primary-blue);
      box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
  }
  
  #contact textarea.form-control {
      resize: vertical;
      min-height: 120px;
  }
  
  /* ラジオボタングループ */
  #contact .radio-group {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 0.8rem;
  }
  
  #contact .radio-item {
      display: flex;
      align-items: center;
  }
  
  #contact .radio-item input[type="radio"] {
      margin-right: 0.5rem;
      cursor: pointer;
  }
  
  #contact .radio-item label {
      margin: 0;
      font-weight: normal;
      cursor: pointer;
      font-size: 0.9rem;
  }
  
  /* チェックボックスフィールドグループ */
  #contact td .mwform-checkbox-field.horizontal-item {
      display: inline-flex;
      align-items: center;
      margin-right: 1rem;
      margin-bottom: 0.8rem;
  }
  
  #contact td .mwform-checkbox-field.horizontal-item label {
      display: flex;
      align-items: center;
      margin: 0;
      cursor: pointer;
      font-weight: normal;
      font-size: 0.9rem;
  }
  
  #contact td .mwform-checkbox-field.horizontal-item input[type="checkbox"] {
      margin-right: 0.5rem;
      cursor: pointer;
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      accent-color: var(--primary-blue);
      border: 1px solid #CBCBCB;
      border-radius: 3px;
  }
  
  #contact td .mwform-checkbox-field-text {
      font-size: 0.9rem;
      color: var(--text-dark);
      line-height: 1.5;
  }
  
  /* チェックボックスフィールドのコンテナ（td内）をflexレイアウトに */
  #contact .form-table td:has(.mwform-checkbox-field) {
      display: flex;
      flex-wrap: wrap;
      gap: 0.8rem;
      align-items: flex-start;
  }
  .mw_wp_form .horizontal-item + .horizontal-item {
    margin-left: 0 !important;
  }
  
  /* プライバシーポリシー確認 */
  #contact .privacy-notice {
      text-align: center;
  }
  
  #contact .privacy-notice p {
      margin: 0;
      font-size: 0.8rem;
      color: var(--text-dark);
  }
  #contact .privacy-notice p a {
      color: var(--text-dark);
  }
  
  /* 確認ボタン */
  #contact .form-submit {
      text-align: center;
      margin: 2rem 0;
  }
  
  #contact .btn-submit {
      background-color: var(--primary-blue);
      color: #ffffff;
      border: none;
      padding: 1rem 3rem;
      font-size: 1.1rem;
      font-weight: bold;
      border-radius: 999px;
      cursor: pointer;
      transition: all 0.3s ease;
  }

  
  #contact .btn-submit:hover {
      background-color: #0056b3;
      transform: translateY(-2px);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }
  
  /* プライバシーポリシー */
  #contact .privacy-policy {
      margin-top: 3rem;
  }
  
  #contact .privacy-title {
      font-size: 1.5rem;
      font-weight: bold;
      color: var(--primary-blue);
      margin-bottom: 1.5rem;
      padding-bottom: 0.5rem;
      border-bottom: 2px solid var(--primary-blue);
      position: relative;
      cursor: pointer;
      user-select: none;
  }
  
  #contact .privacy-title span {
      font-size: 1rem;
      font-weight: normal;
      color: var(--primary-blue);
      font-family: "Lexend", sans-serif;
      font-weight: bold;
      margin-left: 0.5rem;
  }
  
  #contact .privacy-title .privacy-icon {
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      color: var(--primary-blue);
      font-size: 1.2rem;
      transition: transform 0.3s ease;
  }
  
  #contact .privacy-title.active .privacy-icon {
      transform: translateY(-50%) rotate(180deg);
  }
  
  #contact .privacy-content {
      line-height: 1.8;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease, margin-bottom 0.3s ease;
      margin-bottom: 0;
  }
  
  #contact .privacy-content.active {
      max-height: 5000px;
      margin-bottom: 1.5rem;
  }
  
  #contact .privacy-content h3,
  #contact .privacy-content h4 {
      font-size: .8rem;
      font-weight: bold;
      color: #222;
      margin-top: 1rem;
      margin-bottom: .5rem;
  }
  
  #contact .privacy-content h3:first-child {
      margin-top: 0;
  }
  
  #contact .privacy-content p {
      font-size: 0.8rem;
      color: #333;
      margin-bottom: .5rem;
  }
  
  #contact .privacy-contact p:last-child {
      margin-bottom: 0;
  }
  
  /* レスポンシブ対応 */
  @media (max-width: 768px) {
      #contact .contact-header-links {
          flex-direction: column;
          gap: 0.8rem;
          align-items: flex-end;
      }
      
      #contact .contact-method {
          margin-bottom: 1rem;
      }
      
      #contact .radio-group {
          grid-template-columns: 1fr;
      }
      
      /* チェックボックスフィールドのレスポンシブ対応 */
      #contact td .mwform-checkbox-field.horizontal-item {
          width: 100%;
          margin-right: 0;
          margin-bottom: 0.6rem;
      }
      
      #contact .form-table td:has(.mwform-checkbox-field) {
          display: block;
      }
      
      #contact .form-title,
      #contact .privacy-title {
          font-size: 1.3rem;
      }
      
      #contact .btn-submit {
          width: 100%;
          padding: 1rem;
      }
      
      #contact .privacy-policy {
          padding: 0;
      }
      #contact .privacy-policy h2 {
          font-size: 1rem;
      }
      #contact .privacy-policy h2 span {
          font-size: .7em !important;
      }
  
      /* テーブルレイアウトのレスポンシブ対応 */
      #contact .form-table,
      #contact .form-table thead,
      #contact .form-table tbody,
      #contact .form-table tr,
      #contact .form-table th,
      #contact .form-table td {
          display: block;
      }
      
      #contact .form-table tr.form-group {
          border-top: 1px solid #ddd;
          padding: 1rem 0;
      }
      
      #contact .form-table tr.form-group:first-child {
          border-top: 1px solid #ddd;
      }
      
      #contact .form-table th.form-label {
          width: 100%;
          padding: 0 0 0.5rem 0;
          text-align: left;
      }
      
      #contact .form-table td {
          padding: 0;
          width: 100%;
      }
  }
  