@charset "UTF-8";
/* ==========================================================================
   home.css — index.html 固有
   Hero / ABOUT US / FOR BRIDAL / GALLERY / ACCESS / SNS
   ========================================================================== */

/* --------------------------------------------------------------------------
   ヒーロー
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100svh;
  min-height: 560px;
  overflow: hidden;
  background: var(--color-ivory);
}
.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__logo {
  position: relative;
  width: 202px;
  max-width: 52vw;
  height: auto;
}
.hero__title { margin: 0; }

/* --------------------------------------------------------------------------
   ABOUT US / FOR BRIDAL — 写真とテキストの 2 カラム
   -------------------------------------------------------------------------- */
.feature {
  display: grid;
  gap: 24px;
  align-items: start;
}
/* 写真が左（ABOUT US） */
.feature--image-left  { grid-template-columns: 359fr 717fr; }
/* 写真が右（FOR BRIDAL） */
.feature--image-right { grid-template-columns: 717fr 359fr; }

.feature__figure { margin: 0; }
.feature__figure img {
  width: 100%;
  height: auto;
  border-radius: 999px 999px var(--radius) var(--radius); /* 上部がアーチ型 */
  object-fit: cover;
}

.feature__body {
  font-family: var(--font-mincho);
  color: var(--color-beige);
  text-align: center;
}
/* 各セクションの 1 行目だけ大きく、色も濃いブラウンになる */
.feature__body .feature__lead {
  margin-bottom: 1.4em;
  color: var(--color-brown);
  font-size: var(--fs-xl);
  font-weight: 500;
  line-height: 1.75;
}
.feature__body p {
  font-size: 1rem;
  line-height: 1.75;
}
.feature__body p + p { margin-top: 1.75em; }
.feature__body .feature__lead + p { margin-top: 0; }

.feature__sign {
  margin-top: 2em;
  font-size: 1rem;
  text-align: right;
}

/* --------------------------------------------------------------------------
   ACCESS
   -------------------------------------------------------------------------- */
.access {
  display: grid;
  grid-template-columns: 571fr 487fr;
  gap: 42px;
  align-items: center;
}
.access__map {
  width: 100%;
  aspect-ratio: 466 / 285;
  border: 0;
  border-radius: var(--radius);
}

.access__info {
  font-family: var(--font-mincho);
  color: var(--color-brown);
}
.access__info dt {
  margin-bottom: 2px;
  font-size: var(--fs-medium);
  font-weight: 500;
}
.access__info dt::before {
  margin-right: 8px;
  color: var(--color-beige);
  font-family: "Font Awesome 6 Free";
  font-size: .8em;
  font-weight: 900;
  content: "\f0da";              /* fa-caret-right */
}
.access__info dd {
  margin: 0 0 16px;
  padding-left: 18px;
  font-size: var(--fs-medium);
}
.access__actions {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  margin-top: 28px;
}

/* --------------------------------------------------------------------------
   GALLERY（トップの抜粋）
   -------------------------------------------------------------------------- */
.top-gallery__more { margin-top: 32px; text-align: center; }

/* --------------------------------------------------------------------------
   SNS
   -------------------------------------------------------------------------- */
.sns-list {
  display: flex;
  gap: 56px;
  align-items: center;
  justify-content: center;
}
.sns-list a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  font-size: 46px;
  line-height: 1;
  transition: opacity .2s;
}
.sns-list a:hover { opacity: .7; }
.sns-list img { width: 52px; height: 52px; }
.sns-list .fa-line   { color: var(--color-line); }
.sns-list .fa-tiktok { color: #010101; }

/* --------------------------------------------------------------------------
   レスポンシブ
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .access { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .access__info { text-align: center; }
  .access__info dd { padding-left: 0; }
}

@media (max-width: 600px) {
  .feature--image-left,
  .feature--image-right { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  /* 写真は文章のあとに回す */
  .feature--image-left .feature__figure { order: 2; }
  .feature__figure img { max-width: 280px; margin-inline: auto; }
  .sns-list { gap: 32px; }
  .sns-list a { width: 44px; height: 44px; font-size: 38px; }
  .sns-list img { width: 40px; height: 40px; }
}
