@charset "UTF-8";

@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);
:root{
--bg:#f7f6f3;
--card:#ffffff;
--primary:#7b4f2b; /* 土色 */
--accent:#1fa7a0; /* ターコイズ */
--muted:#6b6b6b;
--max-width:1100px;
--radius:14px;
--gap:20px;
--shadow: 0 6px 20px rgba(16,24,40,0.08);
font-family: "Helvetica Neue", Inter, "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}


body {
  background-image: url("images/peru_background-min.jpg");
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


/* Container */
.wrap{max-width:var(--max-width);margin:40px auto;padding:24px;}




/* Hero */
.hero{display:grid;grid-template-columns:1fr;gap:var(--gap);align-items:center;margin-bottom:28px}
.hero .hero-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.hero-media{
height:420px;
background-image:url('images/peru_hero-min.jpg');
background-size:cover;
background-position:center}
.hero-inner{padding:28px}
.brand{display:flex;align-items:center;gap:14px}
.brand h1{margin:0;font-size:22px;color:var(--primary)}
.tag{background:var(--accent);color:#fff;padding:6px 10px;border-radius:8px;font-weight:600}
.hero p.lead{margin:14px 0 18px;font-size:16px;color:var(--muted)}
.cta{display:flex;gap:12px}
.btn{background:var(--primary);color:#fff;padding:12px 16px;border-radius:12px;text-decoration:none;font-weight:700;box-shadow:0 6px 18px rgba(123,79,43,0.12)}
.btn.ghost{background:transparent;color:var(--primary);border:2px solid rgba(123,79,43,0.12)}


/* Two-column main */
.cols{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-top:18px}


/* Card */
.card{background:var(--card);border-radius:12px;padding:18px;box-shadow:var(--shadow)}
h2{margin-top:0}


.card h2 {
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.2em;
  color: #2a2a2a;
  border-bottom: 3px solid #c19b76; /* ゴールド系アクセントカラー */
  display: inline-block;
  padding-bottom: 0.3em;
}

@media (max-width: 768px) {
  h2 {
    font-size: 1.8rem;
  }
}


/* Quick facts */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fact{background:#fff;border-radius:10px;padding:12px;border:1px solid #f0efe9}
.fact strong{display:block;color:var(--primary);font-size:14px}



/* Aboutセクション（マチュピチュ・縦長画像対応） */
.about-container {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  margin-top: 16px;
}

.about-photo {
  flex-shrink: 0;
  width: 340px; /* 固定幅で縦長を安定表示 */
}

.about-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4; /* 縦長比率 */
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.about-photo img:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}
.about-text {
  flex: 2;
  font-size: 15px;
padding-right: 30px; 
  line-height: 1.8;
  color: #333;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .about-container {
    flex-direction: column;
  }
  .about-photo {
    width: 100%;
    order: -1;
  }
  .about-photo img {
    aspect-ratio: auto;
  }
}



/* サーキット*/
.circuits {
}
.circuit img:hover {
transform: scale(1.08);
}
.circuit-content {
padding: 20px;
}
.circuit-content h3 {
color: #6b3e00;
margin-bottom: 10px;
}
.circuit-content p {
color: #333;
font-size: 1.4rem;
line-height: 1.8;
}
.chip {
display: inline-block;
background-color: #f4e8d0;
color: #7b4b00;
font-weight: bold;
font-size: 0.85rem;
padding: 5px 12px;
border-radius: 20px;
margin-bottom: 10px;
}
.modal {
display: none;
position: fixed;
z-index: 9999;
padding-top: 80px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.8);
}
.modal-content {
margin: auto;
display: block;
width: 80%;
max-width: 800px;
border-radius: 10px;
box-shadow: 0 0 20px rgba(255,255,255,0.3);
}
.close {
position: absolute;
top: 30px;
right: 45px;
color: #fff;
font-size: 40px;
font-weight: bold;
cursor: pointer;
}
.close:hover {
color: #ccc;
}


/* 折りたたみアコーディオン */
.accordion-btn {
  display: block;
  width: 100%;
  padding: 8px 12px;
  margin: 12px 0;
  background-color: #eee;
  border: none;
  border-radius: 6px;
  text-align: left;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s;
}
.accordion-btn:hover {
  background-color: #ddd;
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.accordion-content p {
  margin: 8px 0 0 0;
    font-size:1.4rm;
  line-height: 1.8;
}


@media screen and (max-width: 768px) {
.modal-content {
width: 95%;
}
}




/* Train cards */
.trains {
  display: flex;
  flex-wrap: wrap; /* 小さい画面では自動で折り返し */
  justify-content: center;
  gap: 24px; /* カード間の余白 */
  margin-top: 24px;
}

/* 各列車カード */
.train {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  width: 300px; /* 横3列を想定した幅 */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.train:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.15);
}
.train-img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-bottom: 1px solid #eee;
}
.train-text {
  padding: 16px;
}
.train-text h4 {
  font-size: 18px;
  margin-bottom: 8px;
}
.train-text p {
  font-size: 14px;
  line-height: 1.6;
  color: #555;
}
.train-text .upgrade {
  color: crimson;
  font-weight: bold;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .trains {
    flex-direction: column;
    align-items: center;
  }
  .train {
    width: 90%;
  }
}


/* その他の見どころカード */
.spots-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
  margin-top: 24px;
}
.spot-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.spot-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.15);
}
.spot-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}
.spot-card h3 {
  font-size: 18px;
  margin: 12px 16px 4px;
}
.spot-card p {
  font-size: 14px;
  color: #555;
  margin: 0 16px 16px;
}








/* オプショナルツアー全体 */
#optional-tours {
  text-align: center;
  margin-top: 60px;
}

.tours-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
  margin-top: 24px;
}

/* 各ツアーカード */
.tour-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  width: 340px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.tour-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.15);
}
.tour-card img {
  width: 100%;
  height: 500px;
  object-fit: cover;
}
.tour-card h3 {
  font-size: 18px;
  margin: 16px 16px 8px;
}
.tour-card p {
  font-size: 14px;
  color: #555;
  margin: 0 16px 16px;
  flex-grow: 1;
}

/* 各カードのボタン */
.tour-btn {
  display: inline-block;
  background-color: #b22222;
  color: #fff;
  padding: 10px 20px;
  border-radius: 8px;
  margin-bottom: 20px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease;
}
.tour-btn:hover {
  background-color: #d33;
}

/* 「他にもあります」ボタン */
.more-tours {
  margin-top: 40px;
}
.more-btn {
  display: inline-block;
  background-color: #b22222;
  color: #fff;
  padding: 14px 36px;
  font-size: 16px;
  font-weight: bold;
  border-radius: 10px;
  text-decoration: none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}
.more-btn:hover {
  background-color: #d33;
  transform: scale(1.05);
}

/* スマホ対応 */
@media (max-width: 768px) {
  .tours-grid {
    flex-direction: column;
    align-items: center;
  }
  .tour-card {
    width: 90%;
  }
}


















@media (min-width: 768px) {
.train {
flex-direction: column;
}
}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.gallery img{width:100%;height:140px;object-fit:cover;border-radius:8px}


/* Map */
.map{height:320px;border-radius:10px;overflow:hidden}
iframe{width:100%;height:100%;border:0}


/* FAQ accordion */
.faq-item{border-bottom:1px dashed #eee;padding:12px 0}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.faq-a{max-height:0;overflow:hidden;transition:max-height .36s ease;padding-top:0}
.faq-item.open .faq-a{padding-top:10px;max-height:400px}





/* Responsive */
@media (max-width:900px){
.cols{grid-template-columns:1fr}
.hero-media{height:260px}
}
