/* ==========================================================================
   about.css — page-specific styles for the About page
   ========================================================================== */

.photo-placeholder {
  background: var(--color-brown-light);
}

/* Concept
   ========================================================================== */

.about-concept {
	margin-top: 60px;
  display: flex;
  gap: 50px;
  align-items: flex-start;
}

.about-concept__text {
  flex-shrink: 0;
  width: 350px;
}

.about-concept__lead {
  margin-top: 12px;
  font-family: var(--font-sans);
  line-height: 1.9;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
}

.about-concept__photos {
  position: relative;
  flex: 1;
  aspect-ratio: 629 / 540;
}

.about-concept__photo {
  position: absolute;
  overflow: hidden;
}

.about-concept__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-concept__photo--1 {
  left: 0;
  top: 0;
  width: 53.5%;
  height: 88%;
}

.about-concept__photo--2 {
  right: 0;
  top: 16.7%;
  width: 53.5%;
  height: 88%;
}

/* Rooms + compact store info
   ========================================================================== */

.about-info {
  margin-top: 120px;
}

.about-rooms {
  display: flex;
  gap: 40px;
  margin-top: 30px;
}

.about-rooms__item {
  flex: 1;
}

.about-rooms__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.about-rooms__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-rooms__caption {
  margin-top: 12px;
  font-family: var(--font-sans);
  line-height: 1.9;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
}

.about-info__list {
  margin: 40px 0 0;
}

.about-info__row {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding: 8px 10px;
  border-top: 1px solid var(--color-gold);
}

.about-info__row:last-child {
  border-bottom: 1px solid var(--color-gold);
}

.about-info__label {
  width: 130px;
  flex-shrink: 0;
  font-family: var(--font-sans);
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
}

.about-info__value {
  margin: 0;
  font-family: var(--font-sans);
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
}

.about-info__access {
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}

.about-info__access li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-family: var(--font-sans);
  line-height: 24px;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
  margin-top: 4px;
}

.about-info__icon {
  display: block;
  width: 10px;
  height: 10px;
  margin-top: 7px;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: var(--color-gold);
}

.about-info .map {
  margin-top: 40px;
  height: 450px;
}

/* Chef / Sommelier
   ========================================================================== */

.about-staff {
  position: relative;
	margin-top: 120px;
  padding: 120px 0;
  background-image: url("../images/top/bg-texture-red.jpg");
  background-repeat: repeat;
}

.about-staff__row {
  display: flex;
  align-items: flex-start;
  gap: 70px;
}

.about-staff__row + .about-staff__row {
  margin-top: -100px;
}

.about-staff__row--offset {
  margin-left: 370px;
}

.about-staff__photo {
  flex-shrink: 0;
  width: 320px;
  aspect-ratio: 320 / 450;
  overflow: hidden;
}

.about-staff__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
}

.about-staff__text {
  color: var(--color-yellow);
}

.about-staff__title {
  display: block;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 4rem;
  letter-spacing: 0.28rem;
  color: var(--color-yellow);
}

.about-staff__label {
  display: block;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.28rem;
  color: var(--color-gold);
}

.about-staff__name {
  margin-top: 30px;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 4rem;
  letter-spacing: 0.28rem;
  color: var(--color-yellow);
}

.about-staff__credentials {
  margin-top: 15px;
  font-family: var(--font-sans);
  line-height: 1.8;
  letter-spacing: 0.8px;
  color: var(--color-yellow);
}

/* Ingredients
   ========================================================================== */

.about-ingredients {
  margin-top: 120px;
}

.about-ingredients__heading {
  text-align: center;
}

.about-ingredients__intro {
  margin-top: 40px;
  display: flex;
  gap: 50px;
  align-items: flex-start;
}

.about-ingredients__intro-text {
  flex-shrink: 0;
  width: 350px;
}

.about-ingredients__intro-lead {
  font-family: var(--font-sans);
  line-height: 1.9;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
}

.about-ingredients__intro-photo {
  flex-shrink: 0;
  width: 600px;
  aspect-ratio: 600 / 450;
  overflow: hidden;
}

.about-ingredients__intro-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-producer {
  margin-top: 100px;
}

.about-producer__title {
  display: block;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 3rem;
  letter-spacing: 0.147rem;
  color: var(--color-brown-dark);
}

.about-producer__label {
  display: block;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.28rem;
  color: var(--color-gold);
}

.about-producer__lead {
  margin-top: 30px;
  font-family: var(--font-sans);
  line-height: 1.9;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
  text-align: justify;
}

.about-producer__link {
  color: var(--color-gold);
  text-decoration: underline;
}

.about-producer__photos {
  display: flex;
  gap: 40px;
  margin-top: 60px;
}

.about-producer__photos--single .about-producer__photo {
  flex: 1;
  aspect-ratio: 1000 / 450;
}

.about-producer__photo {
  flex: 1;
  aspect-ratio: 480 / 360;
  overflow: hidden;
}

.about-producer__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Pairing
   ========================================================================== */

.about-pairing {
  position: relative;
  margin-top: 120px;
  padding: 100px 0 120px;
  background-image: url("../images/top/bg-texture.jpg");
  background-repeat: repeat;
}

.about-pairing__cards {
  display: flex;
  gap: 20px;
  margin-top: 40px;
}

.about-pairing__card {
  flex: 1;
  background: var(--color-white);
  padding: 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
}

.about-pairing__card .button {
  margin-top: auto;
}

.about-pairing__photo {
  width: 100%;
  aspect-ratio: 420 / 315;
  overflow: hidden;
}

.about-pairing__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-pairing__text {
  width: 100%;
}

.about-pairing__title {
  display: block;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 3rem;
  letter-spacing: 0.147rem;
  color: var(--color-brown-dark);
}

.about-pairing__label {
  display: block;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.2rem;
  color: var(--color-gold);
}

.about-pairing__lead {
  margin-top: 20px;
  font-family: var(--font-sans);
  line-height: 1.9;
  letter-spacing: 0.8px;
  color: var(--color-brown-dark);
  text-align: justify;
}

/* ==========================================================================
   Responsive — tablet (768px〜1199px) / SP (〜767px)
   ========================================================================== */

@media (max-width: 1199px) {
	.about-concept {
		margin-top: 40px;
  }

  .about-concept,
  .about-ingredients__intro {
    flex-direction: column;
    gap: 30px;
  }

  .about-concept__text,
  .about-ingredients__intro-text {
    width: 100%;
  }

  .about-concept__photos {
    width: 100%;
  }

	.about-rooms {
		gap: 30px;
		margin-top: 30px;
	}

	.about-rooms__caption {
		margin-top: 8px;
	}

	.about-info {
		margin-top: 100px;
	}

	.about-info__list {
		margin: 30px 0 0;
	}

	.about-info__row {
		gap: 10px;
	}

	.about-info__label {
		width: 100px;
	}

  .about-ingredients__intro-photo {
    width: 100%;
  }

	.about-staff {
		margin-top: 100px;
		padding: 100px 0;
	}

	.about-ingredients {
		margin-top: 80px;
	}

	.about-pairing {
		margin-top: 100px;
		padding: 80px 0 100px;
	}

	.about-staff__row + .about-staff__row {
		margin-top: 50px;
	}

  .about-staff__row--offset {
    margin-left: 0;
  }

  .about-staff__photo {
    width: 260px;
  }

	.about-staff__title {
		font-size: 3.2rem;
	}

	.about-staff__label {
		font-size: 1.2rem;
	}

	.about-staff__name {
		margin-top: 20px;
		font-size: 2.6rem;
	}

	.about-staff__credentials {
		margin-top: 10px;
		font-size: 1.6rem;
		line-height: 1.9;
	}
	.about-pairing__card {
		padding: 25px;
	}

	.about-producer {
		margin-top: 60px;
	}

	.about-producer__title,
  .about-pairing__title {
    font-size: 2.2rem;
  }

	.about-producer__lead {
		margin-top: 10px;
	}

	.about-producer__photos {
		margin-top: 30px;
		gap: 30px;
	}

	.about-producer__label,
	.about-pairing__label {
		font-size: 1.2rem;
	}
}

@media (max-width: 767px) {
  .about-concept {
		margin-top: 30px;
  }

  .about-info {
		margin-top: 50px;
  }

  .about-ingredients {
		margin-top: 40px;
  }

  .about-rooms,
  .about-producer__photos,
  .about-pairing__cards {
    flex-direction: column;
  }

	.about-pairing__cards {
		margin-top: 20px;
	}

	.about-rooms {
		gap: 20px;
		margin-top: 20px;
	}

	.about-info__list {
		margin: 20px 0 0;
	}

  .about-staff {
    margin-top: 60px;
    padding: 60px 0;
  }

  .about-pairing {
    margin-top: 60px;
    padding: 40px 0 60px;
  }

  .about-info__row {
    flex-direction: column;
    gap: 0;
		padding: 6px;
  }

  .about-info__label {
    width: auto;
    line-height: 1.4;
    font-size: 1.4rem;
  }

  .about-info__value {
    line-height: 1.6;
    font-size: 1.4rem;
  }

  .about-info__row--hours .about-info__value {
    line-height: 1.6;
    padding: 0;
  }

  .about-info__access li {
    font-size: 1.4rem;
  }

	.about-staff__row + .about-staff__row {
		margin-top: 50px;
	}

	.about-staff__row {
    flex-direction: column;
		justify-content: center;
    gap: 20px;
		width: 270px;
		margin: 0 auto;
  }

	.about-staff__photo {
		width: 100%;
	}

	.about-staff__credentials {
		margin-top: 10px;
		font-size: 1.4rem;
		line-height: 1.9;
	}

  .about-staff__title,
  .about-staff__name {
    font-size: 2.2rem;
  }

  .about-staff__name {
    margin-top: 10px;
  }

	.about-staff__label {
		font-size: 1.0rem;
	}

	.about-producer {
		margin-top: 30px;
	}

  .about-producer__title,
  .about-pairing__title {
    font-size: 2.2rem;
  }

	.about-producer__photos {
		margin-top: 20px;
		gap: 20px;
	}

	.about-producer__label,
	.about-pairing__label {
		font-size: 1.0rem;
	}
}
