/**
 * Responsive Styles
 * Animo Consulting Theme
 * Mobile-first approach
 */

/* ========================================
 * Tablet/Small Desktop (769px ~ 1100px)
 * Hero section responsive adjustments
 * ======================================== */

@media (max-width: 1100px) and (min-width: 769px) {
  .hero-section {
    --hero-content-left: 20%;
    --hero-title-width: min(500px, 75vw);
  background: none;
    margin-top: -22%;
  }
.hero-text{

  position: relative;}
  .hero-content {
    margin: 100px 0 0 4%;
    padding: 0px 0 0 0;
    width: 100%;
  }
.hero-container{
  content: "";
  background-image:
          linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.3) 15%, rgba(255, 255, 255, 0) 100%),
          url('../images/optimized/hero-main.jpeg');
  background-size: 80% auto;
  background-position: left calc(50% + 50px);
  background-repeat: no-repeat;
    width: 100%;
    min-height: 450px;
  padding: 0 0 0 clamp(250px, 50%, 600px);


}
.hero-content{
    width: fit-content;
  margin-bottom: var(--container-padding);
}
  .hero-title {
    font-size: clamp(28px, 5vw, 42px);
    line-height: 1.25;
  }
  .hero-english-subtitle{
    display: block;
    margin: 1rem 0;

  }
.hero-buttons{
  width: auto;
  margin: 1rem 0;
  padding: 0 var(--container-padding);
  justify-content: center;
  grid: 30% / repeat(2, auto);
}
.hero-btn{
  width: 30%;
  }


  .vision-section .container {
    width: auto;
    margin: 0;
    padding: 0 var(--container-padding);
  }

  .vision-lead {
    font-size: calc(var(--font-size-base) * 1.0);
  }

  .vision-description {
    font-size: calc(var(--font-size-base) * 0.9);
  }
  .news-section {
    width: 100%;
    margin: var(--spacing-xl) var(--container-padding);
    padding: 0;
  }
  .news-section .container{
    padding: 0;
  }
  .training-section {
    background: none;
  }
  .training-container{
    padding: 0 0 var(--spacing-lg) ;
    margin-left: 5%;
  }

  .training-text-content{
    background:
      linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.85) 10%, rgba(255, 255, 255, 0.4) 20%, rgba(255, 255, 255, 0) 30%),
      url('../images/optimized/service-training.jpg');
      background-size: 50%;
      background-position: -10% center;
      background-repeat: no-repeat;
  margin: 0;
    min-height: auto;
  }
  .training-text-content {
   width: 100%;
    margin: 0 auto;
    padding: 0 var(--container-padding) 0 40%;
    position: relative;
  }
  .training-description{
    font-weight: normal;
  }
    /* 障害者模擬体験セクション Tablet */
  .simulation-section:before{
   background: none;
  }
  .simulation-sections {
    background-position-y: 200px;
    background-position-x: 99%;
    background-size: 35% auto;
  }
  .simulation-section{
    position: relative;
  }
    .simulation-section:after{
    content: "";
    position: absolute;
      left:  -60px;
    top: 280px;
    width: 100%;
    height: 100%;
    background: url("../images/bg/tablet-bg_5.svg") no-repeat;
    background-size: 100%;
    background-position: right top;
    }
    .simulation-header{
      background: none;
      position: relative;
    }
  .simulation-header:before {
    content: "";
    position: absolute;
    top: 0;
    left: 30%;
    margin: 0!important;
    padding: var(--container-padding);
    width: 100%;

    min-height: 400px;
    display: block;
    align-items: flex-start;
    background-image:
            linear-gradient(to right, white 0%, rgba(255, 255, 255, 0.9) 5%, rgba(255, 255, 255, 0.6) 15%, rgba(255, 255, 255, 0.2) 25%, transparent 35%, transparent 100%),
            url('../images/optimized/service-simulation.jpg');
    background-size: 50% auto;
    background-position:  center;
    background-repeat: no-repeat;
    z-index: -1;

  }

  .simulation-header-content {
    width: 50%;
    margin-left: 5%;
    padding: var(--spacing-xl) 0;
  }

  .simulation-title {
    font-size: clamp(28px, 3.5vw, 40px);
    font-family: var(--font-family-heading);
    margin: 0 0 23px 0;
    letter-spacing: 0.1em;
    /* display/flex-direction は共通スタイルで定義済み */
  }

  .simulation-lead {
    width: 100%;
  }
  .simulation-sections {
  padding-right: 0;
    padding-left: clamp(2rem, 10vw, 10rem);
  }
  .simulation-section-item h3 {

    margin-left: 0;
  }
  .simulation-section-item p {
    padding-left: 0;

  }

  /* Online Section Tablet */
  .online-section {
    background: none;
    min-height: auto;
  }
  .online-container {
    padding: 0;
    background-position-y: 50px;
  }
    .online-header-content {
    background:
      linear-gradient(to left, white 0%, rgba(255, 255, 255, 0.9) 5%, rgba(255, 255, 255, 0.6) 15%, rgba(255, 255, 255, 0.2) 25%, transparent 35%, transparent 100%),
      url('../images/optimized/service-online.jpg');
    background-size: 50%;
    background-position: -10% center;
    background-repeat: no-repeat;
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--container-padding) 0 45%;
    min-height: auto;
  }
  /* Elearning Section Tablet */
  .elearning-section {
    background: none;
  }
  .elearning-container {
    grid-template-columns: 1fr;
    margin: 0;
    gap: 0;
  }
  .elearning-content{
    background: none;
    position: relative;

  }
  .elearning-title{
    margin-top: 2rem;
  }
  .elearning-title,
  .elearning-lead{
    margin-left: 50%;
  }
  .elearning-container:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 49%;
    height: 355px;
    background-image:
      linear-gradient(to right, rgba(255, 255, 255, 0) 100%, rgba(255, 255, 255, 0.5) 35%, rgba(255, 255, 255, 0.8) 20%, rgba(255, 255, 255, 0.9) 15%, white 0%
      ),
      url('../images/optimized/service-elearning_tablet.png');
    background-size: 100% auto;
    background-repeat: no-repeat;
    min-height: auto;
    z-index: -1;
  }
  .elearning-divider
  {
    padding: var(--spacing-xl)  var(--container-padding) 0 clamp(2rem, 10vw, 10rem);
  }
  .elearning-divider:after{
    content: "";
    position: absolute;
    left: -60px;
    top: 80px;
    width: 100%;
    height: 100%;
    background: url("../images/bg/tablet-bg_6.svg") no-repeat;
    background-size: contain;
    background-position: right top;
    z-index: -100;
  }
  .dispatch-section{
   margin: 0;
    padding: 0;
  }
  .dispatch-container{
  grid-template-columns: none;
    margin: 0 ;
}
.dispatch-section {
  background-position:
    right -10% top,
    right -10% top,
    left 0% top;
  min-height: auto;
  z-index: -1;
}

  .dispatch-content {
    background: none;
    width: 100%;
    margin-left: 5%;
    padding: 0;
  }

  .dispatch-container {
    background: url("../images/bg/tablet-bg_3.svg") no-repeat;
    background-size: 60% auto;
    background-position: -100px 70%;
    z-index: -100;
    width: 60%;
  }

  .dispatch-description,
  .dispatch-lead,
  .dispatch-title {
    /*width: 50%;*/
  }

  .dispatch-lead,
  .online-lead {
    font-weight: normal;
  }

  .simulation-lead,
  .online-lead,
  .elearning-lead,
  .simulation-lead {
    font-weight: normal;
  }
}

/* ========================================
 * Mobile (Default: ~ 768px)
 * ======================================== */

@media (max-width: 768px) {
  /* ========================================
   * Front Page Sections Mobile
   * ======================================= */
  /*.site-header{display:none }*/
 /* Hero: 1カラム化、背景画像非表示 */
  .hero-section {
    margin-top: -50px;
    min-height: auto;
    background: none;
    overflow: hidden;
    position: relative;
  }
.hero-content {
  background: url("../images/optimized/hero-main.jpeg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center top;
    width: 100%;
    padding: 0;
    margin: 0 0 var(--spacing-md) 0;
    min-height: 300px;
    text-align: center;
    align-items: center;
  }
  .hero-text {
    margin: 5rem 0 5em;
    padding: 1rem 0;
    background-color: rgb(255, 255, 255, 0.8);
    width: 100%;
  }

  .hero-title {
    font-size: clamp(24px, 8vw, 36px);
    width: 100%;
    max-width: none;
  }
  .hero-english-subtitle {
    display: block;
    margin: 0 auto;
  }
  .hero-buttons {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: var(--spacing-xs);
    width: 100%;
    padding: 0 var(--spacing-sm);
    position: relative;
    z-index: 1;
    margin: 1rem 0;
  }


  .hero-btn {
    padding: 12px 8px;
    min-width: auto;
    font-size: 13px;
    flex: 1;
    max-width: none;
    white-space: nowrap;
  }
  .vision-section {
    width: 100%;
    background-color: var(--color-bg-white);
    position: relative;
    z-index: 1;
  }
  /* Vision: パディング解消 */
 .vision-section .container {
   margin: 0 auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
  }

  /* News: 全幅化 */
  .news-section {
    width: 100%;
    margin: var(--spacing-lg) 0;
  }
/*障害理解研修セクション*/
.training-section{
  background-image: none;
}
.training-readme-content:after {
    content: "";
  background-image: url("../images/optimized/service-training.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 300px;
    width: 100%;
    position: absolute;
  z-index: -1;
}
.training-container{
  padding: 0;
}
.training-text-content {
  padding-left: 4%;
  padding-right: 0;
  padding-bottom: 0;
  width: 100%;
}

  .training-title {
    margin: 93px 0 0;}

  .training-title span{
    display: block;
    width: 100%;
    padding: 0.5em 1rem 0.5em ;
    background-color: rgb(104,177,179, 0.6);
    color: white;
    border-radius: 8px 8px 0 0;
}


  .training-description{
    font-weight: normal;
    margin: 0;
    padding: 1em 1rem 0 ;
    background-color: var(--color-accent-green);
    border-radius: 0 0 8px 8px;
    color: var(--color-text-dark);
  }
  /* Training: 縦並び化 */
  .training-visual {
    height: auto;
  }

  .training-photo {
    position: relative;
    width: 100%;
    height: 200px;
  }

  .training-circle-large {
    display: none;
  }

  .training-bottom-content {
    padding: var(--spacing-md);
    background-image: none;
    width: 100%;
  }

  /* 講師者派遣セクション モバイル（右寄せレイアウト） */
  .dispatch-section {
    background-image: none;
    min-height: auto;
    position: relative;
    padding-bottom: var(--spacing-sm);
  }
  .dispatch-section::before {
    content: "";
    background-image: url("../images/optimized/service-instructor.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 300px;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
  .dispatch-container {
    grid-template-columns: 1fr;
    padding: 0;
  }
  .dispatch-content {
    background: none;
    padding-right: 4%;
    padding-left: 0;
    padding-bottom: 0;
    width: 100%;
  }
  .dispatch-header {
    width: 100%;
    margin: 150px 0 0;
    display: block;
  }
  .dispatch-title {
    margin: 0;
    position: relative;
    width: 100%;
    display: block;
  }
  .dispatch-title .title-text {
    display: block;
    width: 100%;
    padding: 0.5em 1rem 0.5em;
    background-color: rgba(104, 177, 179, 0.8);
    color: white;
    border-radius: 8px 8px 0 0;
  }
  .dispatch-title::before {
    position: absolute;
    right: 0;
    top: -40px;
    left: auto;
  }
  .dispatch-lead {
    font-weight: normal;
    margin: 0;
    padding: 0.5em 1rem 1em;
    background-color: rgba(104, 177, 179, 0.8);
    border-radius: 0 0 8px 8px;
    width: 100%;
  }
.dispatch-divider{
  margin: var(--spacing-sm);
}
  /* オンラインセミナーセクション モバイル */
  .online-section {
    background-image: none;
  }
  .online-section::before {
    content: "";
    background-image: url("../images/optimized/service-online.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 300px;
    width: 100%;
    position: absolute;
  }
  .online-container {
    background-image: none;
    min-height: auto;
    padding: 0;
  }
  .online-header {
    min-height: auto;
  }
  .online-header-content {
    width: 100%;
    padding-left: 4%;
    padding-right: 0;
    padding-bottom: 0;
  }
  .online-title {
    margin: 106px 0 0;
  }
  .online-title:before {
  margin-top: -20px;
  }
   .online-title .title-text {
    display: block;
    width: 100%;
    padding: 0.5em 1rem 0.5em ;
    background-color: rgb(104, 177, 179, 0.8);
    color: white;
    border-radius: 8px 8px 0 0;
  }
  .online-lead {
    font-weight: normal;
    margin: 0;
    padding: 1em 1rem 0;
    background-color: rgba(104, 177, 179, 0.8);
    color: var(--color-text-dark);
    border-radius: 0 0 8px 8px;
  }

  /* 障害者模擬体験セクション モバイル（右寄せレイアウト） */
  .simulation-section::before,
  .simulation-section::after {
    display: none;
  }
  .simulation-header {
    background-image: none;
    min-height: auto;
    padding-left: 0;
    position: relative;
  }
  .simulation-header::before {
    content: "";
    background-image: url("../images/optimized/service-simulation.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 300px;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .simulation-header-content {
    width: 100%;
    padding-right: 4%;
    padding-left: 0;
    padding-bottom: 0;
    position: relative;
    z-index: 2;
  }
  .simulation-title {
    margin: 150px 0 0;
    position: relative;
    display: block;
    width: 100%;
  }
h2.simulation-title{
  color: white;
}
  .simulation-sections{
    margin:var(--spacing-sm) ;
  }
  .simulation-title .title-text {
    display: block;
    width: 100%;
    padding: 1em 1rem 0.5em;
    background-color: rgba(104, 177, 179, 0.8);
    border-radius: 8px 8px 0 0;
  }
  .simulation-title::before {
    position: absolute;
    right: 0;
    top: -40px;
    left: auto;
  }
  .simulation-lead {
    font-weight: normal;
    margin: 0;
    padding: 0.5em 1rem 0.5em;
    background-color: rgba(104, 177, 179, 0.8);
    border-radius: 0;
    width: 100%;
    color: var(--color-text-dark);
  }
  .simulation-description {
    font-weight: normal;
    margin: 0;
    padding: 0.5em 1rem 1em;
    background-color: rgba(104, 177, 179, 0.8);
    border-radius: 0 0 8px 8px;
    width: 100%;
    font-size: 0.9em;
  }
  .simulation-sections {
    width: 100%;
    padding-right: 0;
    background-image: none;
  }
  .simulation-section-item h3 {
    margin-left: 0;
    text-align: left;
  }
  .simulation-section-item p {
    padding-left: 0;
    text-align: left;
  }

  /* 研修動画作成セクション モバイル */
  .elearning-section {
    background-image: url("../images/optimized/service-elearning.jpg");
    background-size: 100% 200px;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: auto;
    padding: var(--spacing-lg) 0;
    padding-top: 0;
  }
  .elearning-section::before {
    display: none;
  }
  .elearning-container {
    display: block;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
  }
  .elearning-image {
    display: none;
  }
  .elearning-content {
    margin-left: var(--container-padding);
    padding-top: 0;
    border-radius: 0 0 8px 8px;
    background-image: none;
    margin-top: 0;
  }
  .elearning-header {
    margin: 0;
    padding: 0;
  }
  .elearning-title {
    margin: 120px 0 0;
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    color: white;
  }
  .elearning-title::before {
    position: absolute;
    right: 0;
    top: -50px;
    left: auto;
  z-index: 1;
  }
  .elearning-title .title-text {
    display: block;
    width: 100%;
    padding: 1em 1rem 0.5em;
    background-color: rgba(104, 177, 179, 0.8);
    color: white;
    border-radius: 8px 8px 0 0;
  }
  .elearning-lead {
    margin-bottom: var(--spacing-md);
    font-size: var(--font-size-base);
    padding: 0.5em 1rem 0.5em;
    background-color: rgba(104, 177, 179, 0.8);
    border-radius: 0 0 8px 8px;
  }
  .elearning-divider {
    margin-top: var(--spacing-md);
  }
  .elearning-btn {
    padding: 6px 16px;
    font-size: var(--font-size-small);
  }
  .elearning-examples,
  .elearning-note {
    font-size: var(--font-size-small);
    margin-bottom: var(--spacing-md);
  }
  /* YouTube: 1列化 */
  .youtube-grid {
    grid-template-columns: 1fr;
  }
}

/* Header Mobile & Tablet */
@media (max-width: 1024px) {
  /* スクロール時ヘッダー非表示 */
  .site-header {
    transition: transform 0.3s ease-in-out;
  }

  .site-header.header-hidden {
    transform: translateY(-100%);
  }

  /* ハンバーガーメニュー固定表示（透明背景・円形） */
  .mobile-hamburger {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 150;
    background: transparent;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* メニューが開いている時はハンバーガーボタンを非表示 */
  .mobile-hamburger.is-active {
    display: none;
  }

  /* ========================================
     全画面モバイルナビ
     ======================================== */
  .mobile-nav {
    display: block;
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--color-mobile-nav-bg);
    z-index: 140;
    overflow-y: auto;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    padding: 60px 20px 40px;
  }

  .mobile-nav.is-open {
    opacity: 1;
    visibility: visible;
  }

  /* 閉じるボタン */
  .mobile-nav-close {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    background: var(--color-mobile-nav-btn);
    border: none;
    border-radius: 8px;
    color: var(--color-text-white);
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    z-index: 145;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* コンテンツエリア */
  .mobile-nav-content {
    max-width: 600px;
    margin: 0 auto;
  }

  /* セクション */
  .mobile-nav-section {
    margin-bottom: 24px;
    border-bottom: 1px solid var(--color-mobile-nav-border);
    padding-bottom: 20px;
  }

  /* セクションタイトル */
  .mobile-nav-title {
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    color: var(--color-mobile-nav-title);
    margin: 0 0 16px 0;
  }

  .mobile-nav-title .nav-en {
    display: block;
    font-size: 11px;
    color: var(--color-mobile-nav-subtitle);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-top: 4px;
    font-weight: normal;
  }

  /* 2カラムグリッド */
  .mobile-nav-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .mobile-nav-grid li a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-mobile-nav-text);
    font-size: 14px;
    text-decoration: none;
  }

  .mobile-nav-grid li a img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
  }

  /* 単独リンクセクション */
  .mobile-nav-links {
    margin-top: 20px;
  }

  .mobile-nav-link {
    display: block;
    text-align: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-mobile-nav-border);
    color: var(--color-mobile-nav-title);
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
  }

  .mobile-nav-link .nav-en {
    display: block;
    font-size: 11px;
    color: var(--color-mobile-nav-subtitle);
    text-transform: uppercase;
    margin-top: 4px;
    font-weight: normal;
  }

  /* ページトップボタン */
  .mobile-nav-top {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin: 30px auto 0;
    background: var(--color-mobile-nav-border);
    border: none;
    border-radius: 50%;
    color: var(--color-mobile-nav-title);
    cursor: pointer;
  }

  .mobile-nav-top svg {
    width: 24px;
    height: 24px;
  }

  .header-top {
    position: relative;
  }

  .logo-image {
    height: 55px;
    margin-top: 8px;
  }

  /* 文字サイズ切り替えのみ非表示（電話番号は表示） */
  .font-size-switcher {
    display: none;
  }

  /* スマートフォンでは電話番号非表示 */
  .header-contact {
    display: none;
  }
}

/* タブレット用ヘッダー調整 (769px〜1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
  .header-top {
    padding: 1em 0 0.5rem;
  }

  /* 電話番号をハンバーガーメニューの左側に配置 */
  .header-contact {
    display: block;
    position: fixed;
    top: 20px;
    right: 70px;
    z-index: 150;
  }

  .header-contact .phone-link {
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .header-contact .phone-number {
    font-size: 18px;
    font-weight: bold;
  }
}

/* Header Mobile & Tablet (continued) */
@media (max-width: 1024px) {
  /* モバイル用ハンバーガーのみ表示、デスクトップ用は非表示 */
  .mobile-hamburger {
    display: flex;
  }

  .desktop-hamburger {
    display: none;
  }

  .header-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 300px;
    height: 100vh;
    background-color: var(--color-bg-white);
    box-shadow: var(--shadow-lg);
    transition: right var(--transition-slow);
    z-index: calc(var(--z-index-header) + 10);
    overflow-y: auto;
  }

  .header-nav.is-open {
    right: 0;
  }

  .nav-menu {
    flex-direction: column;
    align-items: stretch;
    padding: var(--spacing-lg) 0;
  }

  .nav-item {
    flex: none;
    width: 100%;
  }

  .nav-item a {
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
  }

  /* Menu Open - Body scroll lock */
  body.menu-open {
    overflow: hidden;
  }

  /* Footer Mobile */
  .footer-columns {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }

  /* バリアフリー・人事支援メニューを2列に */
  .footer-column--barrier-free .footer-menu,
  .footer-column--recruitment .footer-menu {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-sm);
  }

  .footer-bottom-inner {
    flex-direction: column;
    gap: var(--spacing-md);
    text-align: center;
  }

  .footer-meta {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  /* Cards Mobile */
  .service-card {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }

  .service-card--reverse {
    direction: ltr;
  }

  /* Grid Mobile */
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }
}


/* ========================================
 * Desktop (1025px ~)
 * ======================================== */

@media (min-width: 1025px) {
  /* モバイル用要素を非表示 */
  .hamburger-menu,
  .mobile-hamburger,
  .mobile-nav {
    display: none !important;
    visibility: hidden !important;
  }

  /* Container Wider */
  .container {
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
  }

  /* Hover Effects (Desktop Only) */
  .card:hover {
    transform: translateY(-8px);
  }

  .btn:hover {
    transform: translateY(-2px);
  }

}

/* ========================================
 * Submenu Responsive (1200px以下)
 * ======================================== */

@media (max-width: 1200px) {
  /* サブメニューは常に左から30%の位置に配置 */
  .submenu {
    left: 30%;
    max-width: none;
  }

  .submenu li a {
    padding: 8px 14px;
    font-size: 12px;
  }
}

@media (max-width: 1024px) {
  .submenu li a {
    padding: 6px 10px;
    font-size: 11px;
  }
}

/* ========================================
 * Large Desktop (1200px ~)
 * ======================================== */

@media (min-width: 1200px) {

  .section--large {
    padding: calc(var(--spacing-xxl) * 1.5) 0;
  }
}

/* ========================================
 * Print Styles
 * ======================================== */

@media print {
  .header-nav,
  .hamburger-menu,
  .site-footer,
  .btn,
  .font-size-switcher {
    display: none !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.5;
    color: #000;
    background: #fff;
  }

  a {
    text-decoration: underline;
    color: #000;
  }

  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 10pt;
    color: #666;
  }

  h1, h2, h3 {
    page-break-after: avoid;
  }

  img {
    max-width: 100% !important;
  }
}

/* ========================================
 * Accessibility - Reduced Motion
 * ======================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ========================================
 * High Contrast Mode
 * ======================================== */

@media (prefers-contrast: more) {
  .btn-outline {
    border-width: 3px;
  }

  .form-control:focus {
    outline: 3px solid;
  }

  a:focus {
    outline-width: 3px;
  }
}
/* test 1764814811 */
/* polling test 1764814857 */
@media (min-width: 2000px ) and (max-width: 3000px) {
  .hero-section {
    background-size: auto 100%;
    background-position-x:left;
  }
  .hero-container{
    margin: 0;
  }
  .hero-content{
    margin: 0 0 0 930px;
  }
  .hero-buttons,
  .vision-section  .container{
    margin-left: 930px;
  }


}