@charset "UTF-8";
/* =========================================================
   下層ページ（concept / gallery / company / privacy）
   ========================================================= */

/* メイン画像のあるページはヘッダーを画像に重ねる */
.has-hero .header-spacer { display: none; }
.p-hero { height: 389px; background: var(--c-light) center / cover no-repeat; }
.p-hero.is-gallery { height: 360px; }
@media (max-width: 540px) {
  .p-hero { height: 200px; }
  .p-hero.is-gallery { height: 162px; }
}

.p-breadcrumb {
  display: flex;
  gap: 10px;
  padding: 20px 10px 0;
  font-family: var(--f-en);
  font-size: 20px;
  line-height: 1.4;
  color: var(--c-text);
}
.p-breadcrumb a:hover { opacity: .6; }
.p-breadcrumb span { font-weight: 700; }
@media (max-width: 540px) {
  .p-breadcrumb { font-size: 13px; }
}

/* ---------- CONCEPT ---------- */
.c-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 127px 20px 50px;
  font-family: var(--f-mincho);
  color: var(--c-text);
}
.c-intro__lead { width: 512px; max-width: 100%; font-size: 32px; font-weight: 400; line-height: 1.4; }
.c-intro__text { width: 907px; max-width: 100%; margin-top: 39px; font-size: 28px; line-height: 1.4; text-align: center; }
.c-intro__img { width: 706px; margin-top: 99px; }

.c-gallery {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 100px 20px 165px;
  background: var(--c-dark);
}
.c-gallery__title { font-family: var(--f-en); font-size: 72px; font-weight: 600; line-height: 1.4; color: var(--c-white); }
.c-gallery__list { display: grid; grid-template-columns: repeat(3, 255px); gap: 30px; margin-top: 72px; }
.c-gallery__list img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }

@media (max-width: 900px) {
  .c-gallery__list { grid-template-columns: repeat(3, 1fr); width: 100%; max-width: 825px; }
}
@media (max-width: 540px) {
  .c-intro { padding: 36px 28px 0; }
  .c-intro__lead { font-size: 24px; }
  .c-intro__text { margin-top: 40px; font-size: 18px; }
  .c-intro__img { width: 100%; margin-top: 50px; }
  .c-gallery { padding: 38px 30px 50px; }
  .c-gallery__title { font-size: 48px; }
  .c-gallery__list { gap: 15px; margin-top: 25px; }
}

/* ---------- GALLERY ---------- */
.g2-intro {
  padding: 80px 20px 80px;
  background: var(--c-dark);
  color: var(--c-white);
  font-family: var(--f-mincho);
  text-align: center;
}
.g2-intro__lead { font-size: 28px; font-weight: 400; line-height: 1.4; }
.g2-intro__text { max-width: 1020px; margin: 25px auto 0; font-size: 22px; line-height: 1.4; }
.g2-grid { padding: 65px 20px 65px; background: var(--c-dark); }
.g2-grid ul { display: grid; grid-template-columns: repeat(3, 323px); gap: 30px; justify-content: center; }
.g2-grid button { display: block; width: 100%; padding: 0; border: 0; background: none; transition: opacity .2s; }
.g2-grid button:hover { opacity: .85; }
.g2-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.page-gallery .access { margin-top: 0; }
@media (max-width: 1060px) {
  .g2-grid ul { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 540px) {
  .g2-intro { padding: 40px 19px 50px; }
  .g2-intro__lead { font-size: 18px; }
  .g2-intro__text { margin-top: 25px; font-size: 15px; }
  .g2-grid { padding: 65px 15px 30px; }
  .g2-grid ul { grid-template-columns: repeat(2, 1fr); gap: 30px; }
}

/* ---------- COMPANY ---------- */
.co { display: flex; flex-direction: column; align-items: center; padding: 76px 20px 50px; color: var(--c-text); }
.co__title {
  padding: 0 40px 20px;
  border-bottom: 1px solid #000;
  font-family: var(--f-serif);
  font-size: 34px;
  font-weight: 400;
  line-height: 1.4;
}
.co__box {
  width: 800px;
  max-width: 100%;
  margin-top: 50px;
  padding: 33px;
  border: 1px solid #c3c3c3;
  border-radius: 4px;
  font-family: var(--f-sans);
}
.co__row { display: flex; align-items: flex-start; gap: 30px; }
.co__info { flex: 0 0 360px; }
.co__info h2 { font-size: 20px; font-weight: 700; line-height: 1.4; }
.co__route { margin: 8px 0 0 19px; font-size: 16px; line-height: 1.4; }
.co__tel { display: flex; align-items: center; gap: 8px; margin-top: 15px; font-size: 16px; }
.co__info dl { margin-top: 10px; }
.co__info dl div { display: flex; align-items: flex-start; gap: 15px; margin-top: 4px; }
.co__info dt { flex: 0 0 100px; padding: 4px 0; background: var(--c-white); font-size: 16px; text-align: center; }
.co__info dd { margin: 0; padding-top: 4px; font-size: 16px; line-height: 1.4; }
.co__img { flex: 1; min-width: 0; height: 190px; border-radius: 4px; object-fit: cover; }
.co__map { display: block; width: 100%; height: 400px; margin-top: 30px; border: 0; }
.co__box + .co__title { margin-top: 104px; }
.co__list { width: 700px; max-width: 100%; margin: 30px 0 0; font-family: var(--f-serif); }
.co__list div { display: flex; align-items: center; border-bottom: 1px solid #c9c9c9; }
.co__list dt { flex: 0 0 210px; padding: 13px 0; font-size: 25px; line-height: 1.4; color: #101010; }
.co__list dd { flex: 1; margin: 0; padding: 15px 0; font-size: 22px; line-height: 1.4; }
@media (max-width: 840px) {
  .co__row { flex-direction: column; }
  .co__info { flex: none; }
  .co__img { flex: none; width: 100%; }
  .co__map { height: 320px; }
}
@media (max-width: 540px) {
  .co { padding: 0 30px 50px; }
  .co__title { margin-top: 0; font-size: 28px; }
  .co__box { margin-top: 30px; padding: 15px; }
  .co__info h2 { font-size: 16px; }
  .co__route, .co__tel, .co__info dt, .co__info dd { font-size: 14px; }
  .co__info dt { flex-basis: 90px; }
  .co__box + .co__title { margin-top: 50px; }
  .co__list dt { flex-basis: 95px; font-size: 16px; }
  .co__list dd { font-size: 16px; }
}

/* ---------- PRIVACY ---------- */
.pv-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 330px;
  background: var(--c-dark);
  color: var(--c-white);
  font-family: var(--f-sans);
}
.pv-head__crumb { position: absolute; top: 24px; left: 24px; display: flex; gap: 12px; font-size: 13px; }
.pv-head__crumb a:hover { opacity: .7; }
.pv-head h1 { margin-top: -30px; font-size: 32px; font-weight: 700; line-height: 1.7; letter-spacing: .05em; }
.pv-body {
  width: 800px;
  max-width: 100%;
  margin: 24px auto 60px;
  padding: 50px;
  font-family: var(--f-sans);
  font-size: 15px;
  line-height: 1.7;
  color: var(--c-text);
}
.pv-body h2 { margin-top: 26px; font-size: 15px; font-weight: 700; line-height: 1.4; }
.pv-body h2 + p { margin-top: 10px; }
.pv-body p + p { margin-top: 10px; }
.pv-body a { text-decoration: underline; }
.pv-links { margin-top: 10px; padding-left: 1.2em; list-style: disc; }
.pv-links li + li { margin-top: 4px; }
@media (max-width: 540px) {
  .pv-head { height: 260px; }
  .pv-head__crumb { top: 9px; left: 13px; font-size: 11px; }
  .pv-head h1 { font-size: 22px; }
  .pv-body { margin: 0 auto 40px; padding: 42px; font-size: 14px; }
  .pv-body h2 { font-size: 14px; }
}
