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

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #f9f9f9;
}

/* Header */
header {
    background-color: #333;
    color: #fff;
    // padding: 1rem 0;
}

header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

header h1 a {
    color: #fff;
    text-decoration: none;
    font-size: 1.5rem;
    font-weight: bold;
}

header nav ul {
    list-style: none;
    display: flex;
}

header nav ul li {
    margin-left: 1rem;
}

header nav ul li a {
    color: #fff;
    text-decoration: none;
    padding: 0.5rem 1rem;
    transition: background 0.3s;
}

header nav ul li a:hover {
    background: #575757;
    border-radius: 5px;
}

/* Hero Section */
#hero {
    background: url('https://via.placeholder.com/1920x800') no-repeat center center/cover;
    color: #fff;
    text-align: center;
    padding: 5rem 1rem;
}

#hero .hero-text h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

#hero .hero-text p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    color: #333333;
}

#hero .btn {
    background: #ff7f50;
    color: #fff;
    padding: 0.8rem 2rem;
    text-decoration: none;
    border-radius: 5px;
    font-size: 1rem;
    transition: background 0.3s;
    display: inline-block;
    margin-bottom: 4rem; /* ← ここ追加 */
}


#hero .btn:hover {
    background: #ff5722;
}

.hero-logo {
    width: 300px;         /* 必要に応じて調整 */
    max-width: 100%;
    height: auto;
    margin-bottom: 0rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.mini-logo {
    width: 200px;         /* 必要に応じて調整 */
    height: auto;
    margin-bottom: 0rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Sections */
.container {
    max-width: 1200px;
    margin: -3rem auto;
    padding: 0 1rem;
}

h2 {
    font-size: 2rem;
    color: #333;
    margin-bottom: 1rem;
    margin-top: 6rem; /* これは全体で効かせる */
    border-bottom: 3px solid #ff7f50;
    display: inline-block;
    padding-bottom: 0.3rem;
}

#about p {
    font-size: 1rem;
    margin-bottom: 2rem;
    color: #333333;
}

#about h2 {
    margin-top: 0 !important;
}

#hero h2 {
    margin-top: 20px !important;
}

#gallery {
    margin-top: 50px !important;
}

#gallery .business-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    max-width: 1168px;
    margin: 0 auto;
}

#gallery .business-list img {
    width: calc((1168px - 1.5rem) / 2);
    height: auto;
    display: block;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#company {
    margin-bottom: 150px !important;
}

/* アクセス（地図）セクションの下に余白を追加 */
#access {
  margin-bottom: 4rem;  /* お好みで値を調整 */
}

.business-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.business-list article {
    flex: 1 1 calc(33.333% - 1rem);
    background: #fff;
    padding: 1rem;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s;
    text-align: center;
}

.business-list article:hover {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.business-list article h3 {
    font-size: 1.5rem;
    color: #333;
    margin-bottom: 0.5rem;
}

.business-list article p {
    font-size: 1rem;
    color: #666;
}

/* Contact Form */
form {
    background: #fff;
    padding: 2rem;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

form input,
form textarea {
    width: 100%;
    padding: 0.8rem;
    margin-bottom: 1rem;
    border: 1px solid #ddd;
    border-radius: 5px;
}

form button {
    background: #ff7f50;
    color: #fff;
    padding: 0.8rem 2rem;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1rem;
    transition: background 0.3s;
}

form button:hover {
    background: #ff5722;
}


/* フッター内の .container は余白リセット */
footer .container {
    margin: 0 auto;       /* 上下のマージンをなくす */
    padding: 1rem 1rem;   /* 必要なら左右も調整 */
}

/* Footer */
footer {
    background: #333;
    color: #fff;
    text-align: center;
    padding: 1rem 0;
    /* 浮動要素があればクリア */
    clear: both;
    /* テキストを中央寄せ */
    text-align: center;
}

footer p {
    font-size: 0.9rem;
    margin: 0;
}

/* 取り扱いブランドのリンク色を #ff8559、下線無し、訪問済みも同色 */
.manufacturer-list a:link,
.manufacturer-list a:visited {
  color: #ff8559;
  text-decoration: none;
}

/* 必要に応じてホバー時の色も同じに */
.manufacturer-list a:hover,
.manufacturer-list a:active {
  color: #ff3333;
  text-decoration: none;
}


@media (max-width: 768px) {
  header {
      padding: 0;
    }

    header .container {
        flex-direction: column;
        align-items: flex-start;
    }

    header nav ul {
        flex-direction: column;
        width: 100%;
        padding: 0;
    }

    header nav ul li {
        margin: 0.5rem 0;
    }

    #gallery .business-list img {
        width: 100%;
    }

    .business-list article {
        flex: 1 1 100%;
    }
}


@media (max-width: 768px) {
    #gallery .business-list img {
        width: 100% !important;
        height: auto;
    }

    #gallery .business-list {
        padding: 0 1rem;
    }
}


/* スマホでの横はみ出し修正：展開店舗 */
@media (max-width: 768px) {
    #gallery {
        padding: 0 1rem;
        overflow-x: hidden;
    }

    #gallery .business-list {
        flex-direction: column;
        align-items: center;
    }

    #gallery .business-list img {
        width: 100% !important;
        height: auto;
        max-width: 100%;
    }

    .business-list article {
        flex: 1 1 100%;
        max-width: 100%;
    }
}


/* スマホでバナー画像が枠をはみ出さないように修正 */
@media (max-width: 768px) {
    #gallery .business-list img {
        display: block;
        margin: 0 auto;
        width: 100%;
        height: auto;
        max-width: 100%;
    }

    #gallery .business-list {
        padding: 0 1rem;
        box-sizing: border-box;
        width: 100%;
    }

    .business-list article {
        flex: 1 1 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .business-list article img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    }

    h2 {
    font-size: 1.4rem;
    }


}

header .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem;
}

/* h1と☰を横並びに */
.header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ハンバーガーアイコン */
.menu-toggle {
  display: none;
  font-size: 2rem;
  background: none;
  border: none;
  color: white;
  cursor: pointer;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  /* header-topはflexのままで、containerはそのままに */
  .header-top {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }

  .menu-toggle {
    display: block;
  }

  .hero-logo {
      width: 200px;         /* 必要に応じて調整 */
  }

  #hero {

    padding: 0;
    margin-top: 50px;

  }

  #hero .hero-text h2 {
      font-size: 1.3rem;
      margin-bottom: 1rem;
  }

  #main-nav {
    display: none;
    margin-top: 1rem;
  }

  #main-nav.active {
    display: block;
  }

  #main-nav ul li a {
    padding: 0.4rem 1rem;     /* ← 上下の余白を調整 */
    line-height: 1.2;         /* ← 行間を詰める */
    font-size: 0.95rem;       /* ← 文字サイズも少し小さく */
  }

  #main-nav ul {
    padding: 0;
    margin: 0;
  }

  #main-nav ul li {
    margin: 0.3rem 0;         /* ← 間隔を減らす */
  }
}
