@charset "UTF-8";

/* =========================================
   Variables & Reset
   ========================================= */
:root {
  --primary-color: #539B35;
}

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

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

iframe {
  border: none; /* または frameborder="0" の代わり */
  transform: translateZ(0);
}

.page:not(.home) p  {
  margin: 0;
}

/* =========================================
   Layout & Utilities
   ========================================= */

.ol-article__inner {
  max-width: 1000px;
}
.l-container {
  width: 100%;
  padding-top: clamp(3.5rem, 2.878rem + 2.65vw, 5rem);
  padding-bottom: clamp(3.5rem, 2.878rem + 2.65vw, 5rem);
  margin-right: auto;
  margin-left: auto;
}

.u-pc-only { display: none; }
@media screen and (min-width: 641px) {
  .u-pc-only { display: block; }
  .u-sp-only { display: none; }
}

.u-text-center { text-align: center; }
.u-mb-lg { margin-bottom: 60px; }
.u-mb-md { margin-bottom: 40px; }
.u-mb-sm { margin-bottom: 20px; }

.relative {
  position: relative;
}
/* =========================================
   Components
   ========================================= */

/* Section Title */
.c-section-title {
  font-size: clamp(1.5rem, 1.293rem + 0.88vw, 2rem);
  text-align: center;
  margin-bottom: clamp(2.5rem, 1.878rem + 2.65vw, 4rem);
  position: relative;
  font-weight: 700;
}

/* ドットの装飾 */
.c-section-title::after {
  content: '';
  display: block;
  /* ドット5個分の幅 (6px * 5 + 間隔) */
  width: 70px; 
  height: 6px;
  /* タイトルから下に16px */
  margin: 6px auto 0;
  /* 背景でドットを描画 (円形のグラデーション) */
  background-image: radial-gradient(circle, #8FC320 3px, transparent 3px);
  background-size: 14px 6px; /* ドットの中心間隔 */
  background-position: center;
  background-repeat: repeat-x;
}

/* Page Header */
.c-page-header__inner {
  margin: auto;
  max-width: 1280px;
}
.c-page-header {
  position: relative;
  width: 100%;
  height: 180px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 641px) {
  .c-page-header {
    height: 250px;
    justify-content: flex-start;
  }
}
.c-page-header__title {
  margin-left: 5%;
  background: rgba(255, 255, 255, 0.9);
  padding: 15px 30px;
  font-size: clamp(1.25rem, 1.198rem + 0.22vw, 1.375rem);
  border-radius: 4px;
}
@media screen and (min-width: 641px) {
  .c-page-header__title {
    margin-left: 10%;
  }
}

/* Button */
.c-btn {
  display: inline-block;
  background-color: #539B35;
  padding: 15px 40px;
  border-radius: 50px;
  font-weight: bold;
  text-align: center;
}
.c-btn--primary {
  width: 100%;
  max-width: 372px;
  color: #fff;
}

/* CTA Section (Footer前) */
.c-cta {
  background-color: #e8f5e9;
  padding: 60px 0;
  text-align: center;
  margin-top: 80px;
}
.c-cta__title {
  font-size: 1.5rem;
  margin-bottom: 20px;
}
.c-cta__tel {
  font-size: 2rem;
  color: var(--primary-color);
  font-weight: bold;
  display: block;
  margin: 10px 0;
}
.c-cta__line-btn {
  display: inline-block;
  background-color: #06c755;
  color: #fff;
  padding: 15px 30px;
  border-radius: 30px;
  font-weight: bold;
  margin-top: 20px;
}