.main-content {
    padding-bottom: 0;
}
.page-title-en {
	line-height: 1.2;
}
/* Common Section Styles */
/* 縦長の写真が入っても帯の高さを一定に保つ
   ※ 高さを変えたい場合は aspect-ratio の値を調整
      16/9（やや横長） / 2/1（低め） / 21/9（さらに低め） */
.main-visual img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Headings */
.section-header {
    text-align: center;
    margin-bottom: 60px;
}

.section-title {
	margin-bottom: 10px;
	font-size: clamp(2rem, 1.58rem + 0.61vw, 2.5rem);
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #352209;
}

.section-subtitle {
	font-size: 20px;
	font-weight: 400;
    font-family: "Noto Serif JP", serif;
}

@media (max-width: 768px) {
    .section-title {
        font-size: 28px;
    }
}

/* Flex utilities */
.flex {
    display: flex;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-center {
    justify-content: center;
    align-items: center;
}

.gap-20 {
    gap: 20px;
}

.gap-30 {
    gap: 30px;
}

/* Grid utilities */
.grid {
    display: grid;
}
.grid.grid-cols-2.gap-30.mt-60 {
	align-items: stretch;
}
.grid-cols-2 {
	grid-template-columns: repeat(2, 1fr);
	align-items: center;
}
.grid-cols-3 {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 992px) {
    .grid-cols-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    .grid-cols-2,
    .grid-cols-3 {
        grid-template-columns: repeat(1, 1fr);
    }
}

/* Text alignment */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

/* Custom list marker style (for policies) */
.list-marker {
	display: flex;
	align-items: flex-start;
	margin-bottom: 10px;
	line-height: 2;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 300;
}
.list-marker-symbol {
    display: block;
    width: 14px;
    height: 14px;
    margin-top: 5px;
    margin-right: 15px;
    /* Customize the marker style, here a solid brown square */
    background-color: #352209;
    flex-shrink: 0;
}

/* section_1.css */

/* section_2.css */
.features {
	font-family: "Noto Serif JP", serif;
	padding-top: 160px;
}
.features-text-title {
	font-size: 24px;
	font-weight: 500;
	margin-bottom: 40px;
}

.features-text-content {
	font-size: 15px;
	line-height: 1.8;
	font-family: "Noto Sans JP", sans-serif;
    font-weight: 300;
}

/* 投稿画像の比率がバラバラでも高さを揃える */
.features-image img,
.message-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	display: block;
}

.features-card {
	background: #fff;
	border: 1px solid #eee;
	padding: 40px;
}

.features-card-title {
	font-size: 20px;
	font-weight: 400;
	margin-bottom: 25px;
}

.features-card-list {
	list-style: none;
	border-top: 1px solid #e5e5e5;
	padding-top: 30px;
}
/* Specific text color for values inside features card if needed, e.g., the name in the card. Here using default. */
.features-card-value {
    color: #c98e6c;
    /* Sample accent color */
}

@media (max-width: 768px) {
    .features {
        padding-top:80px;
    }
    .features-card {
        padding: 30px 20px;
    }
}

.mt-60 {
    margin-top: 60px;
}

/* section_3.css */
#gallery {
	padding-top: 227px;
}

/* カード内を縦フレックスにして、文章量が違っても下端を揃える */
.gallery-card {
	background-color: #fcfbf6;
	border: 1px solid #eee;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
	display: flex;
	flex-direction: column;
}

/* 画像の比率を固定。縦長・横長どの画像でも同じ高さの枠に収まる
   ※ 比率を変えたい場合は aspect-ratio の値だけ調整（16/9, 3/2 など） */
.gallery-card img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	display: block;
}
.gallery-card-content {
    padding: 25px 20px;
    flex: 1;
}

.gallery-card-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
}

.gallery-card-text {
    font-size: 14px;
    line-height: 1.7;
}

@media (max-width: 768px) {
    #gallery {
	padding-top: 110px;
}
    .gallery-card-content {
        padding: 20px 15px;
    }
}

/* section_4.css */
#message {
	padding-top: 227px;
}
.message-text-title {
	font-size: 24px;
	font-weight: 500;
	margin-bottom: 20px;
	font-family: "Noto Serif JP", serif;
}
.message-text-content {
    font-size: 15px;
    line-height: 1.8;
}

/* section_5.css */
#info {
	padding-top: 100px;
}
.info .container,
.access .container {
	display: flex;
	gap: clamp(40px, 8.125vw, 156px);
	justify-content: space-between;
	align-items: flex-start;
}
@media (max-width: 768px) {
    #message {
	padding-top: 110px;
}
.info .grid, .access .map-container {
	width: 100%;
}
.info .container, .access .container {
	flex-direction: column;
}
}
.info .grid,
.access .map-container {
	flex: 1;
	min-width: 0;
}

.info-item {
	position: relative;
	padding-top: clamp(20px, 2.3vw, 45px);
}

.info-label {
	margin: 0 0 5px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
}


/* ========================================
   全項目：上側
======================================== */

.info-item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 200px;
	height: 4px;
	background: rgb(220, 201, 166);
	z-index: 2;
}

.info-item::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: rgb(214, 201, 180);
	z-index: 1;
}


/* ========================================
   最後の2項目：下側
======================================== */

/* 1pxの細線はborder-bottom */
.info-item:nth-last-child(-n+2) {
	border-bottom: 1px solid rgb(214, 201, 180);
    	padding-bottom: clamp(25px, 3.1vw, 60px);

}

/*
 * 4pxのアクセントラインは
 * 擬似要素ではなくlinear-gradientで追加
 */
.info-item:nth-last-child(-n+2) {
	background-image: linear-gradient(
		to right,
		rgb(220, 201, 166) 0,
		rgb(220, 201, 166) 200px,
		transparent 200px
	);
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: 100% 4px;
}
.info-value {
    font-size: 16px;
}

.mb-60 {
    margin-bottom: 60px;
}
#access {
	padding-top: 80px;
}
@media (max-width: 768px) {
.mb-60 {
	margin-bottom: 30px;
}
}
.gap-x-60 {
    column-gap: 60px;
}

.gap-y-30 {
    row-gap: 30px;
}

.col-span-2 {
    grid-column: span 2;
}

@media (max-width: 768px) {
    .col-span-2 {
        grid-column: span 1;
    }
}

/* section_6.css */

.map-container {
    border: 1px solid #ddd;
}
.map-container iframe {
	width: 100%;
}


/* cta-section styles */
.cta-section {
	background: linear-gradient(180deg, #fff2f0 0%, #ffe5e0 100%);
	padding: 80px 20px;
	text-align: center;
	margin-top: 187px;
}

.cta-title {
	font-size: 24px;
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: 25px;
	color: #352209;
	font-family: "Noto Serif JP", serif;
}

.cta-text {
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 40px;
  color: #352209;
}

.cta-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

/* ボタンの共通スタイル */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 15px;
	border-radius: 30px;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	min-width: 320px;
	transition: background-color 0.3s ease, opacity 0.3s ease;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.btn-green {
  background-color: #42b27a; /* 画像の鮮やかな緑色を再現 */
  color: #ffffff !important;
}

.btn-green:hover {
  opacity: 0.9;
}

/* 右矢印の作成 */
.arrow-right {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 15px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  transform: rotate(45deg);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
.cta-section {
	padding: 60px 15px;
	margin-top: 90px;
}
  .cta-title {
    font-size: 20px;
  }
  .cta-buttons {
    flex-direction: column;
    width: 100%;
    gap: 15px;
  }
  .btn {
    width: 100%;
    min-width: auto;
  }
}