/* Gallery Iseo - About(갤러리 소개) 전용 스타일
   about-grid / visit / visit-list 기본 스타일은 styles.css 에 있고,
   여기서는 방문 섹션의 갤러리 사진 배치와 카페(랩에쏘) 섹션을 정의한다. */

/* About 본문 문단을 좌측 제목(h2)과 같은 선상에서 시작.
   좌측 열은 section-kicker(About) 높이만큼 h2가 내려오므로,
   우측 본문에도 동일한 높이의 보이지 않는 여백(kicker 라인+마진)을 준다. (데스크톱 2단에서만) */
@media (min-width: 861px) {
  .about-page .about-grid .about-body::before {
    content: "\00a0";
    display: block;
    font-size: 12px;
    line-height: normal;
    margin: 0 0 14px;
  }
}

/* 방문 섹션 안의 갤러리 사진: 2x2 그리드 */
.about-page .visit {
  align-items: start;
}
.about-page .visit.is-image-empty {
  grid-template-columns: minmax(0, 1fr);
}
.about-page .visit.is-image-empty .visit-info {
  width: min(100%, 920px);
}
.about-page .visit .about-gallery-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-self: start;
}
.about-page .about-gallery-photos figure {
  margin: 0;
  overflow: hidden;
  background: #f7f7f7;
  aspect-ratio: 4 / 5;
}
.about-page .about-gallery-photos figure:only-child {
  grid-column: 1 / -1;
}
.about-page .about-gallery-photos img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-page .visit-no-icon span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.about-page .visit-no-icon span::before {
  display: inline-block;
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  content: "";
}

/* ===== Cafe(랩에쏘 로스터즈) 섹션 ===== */
.labesso-section {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.78fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}

.labesso-section.is-image-empty {
  grid-template-columns: minmax(0, 1fr);
}

.labesso-section.is-image-empty .labesso-info {
  width: min(100%, 920px);
}

.labesso-photo {
  display: grid;
  place-items: center;
  margin: 0;
  overflow: hidden;
  background: #ffffff;
  aspect-ratio: 1 / 1;
}

.labesso-photo img {
  display: block;
  width: min(78%, 520px);
  height: auto;
  object-fit: contain;
}

.labesso-info h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.08;
}

.labesso-info .section-kicker {
  margin: 0 0 14px;
  color: var(--clay);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
}

.labesso-copy {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.labesso-list {
  margin-top: 32px;
  border-top: 1px solid var(--line);
}

.labesso-list > div {
  display: grid;
  grid-template-columns: 32px minmax(82px, 0.7fr) minmax(0, 1.2fr);
  gap: 16px;
  align-items: center;
  min-height: 64px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}

.labesso-list > div::before {
  width: 24px;
  height: 24px;
  background: currentColor;
  content: "";
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
}

.labesso-list > .labesso-no-icon::before {
  background: transparent;
}

.labesso-hours::before {
  mask-image: url("../iseo/assets/icon-clock.svg");
  -webkit-mask-image: url("../iseo/assets/icon-clock.svg");
}
.labesso-phone::before {
  mask-image: url("../iseo/assets/icon-phone.svg");
  -webkit-mask-image: url("../iseo/assets/icon-phone.svg");
}
.labesso-instagram::before {
  mask-image: url("../iseo/assets/icon-instagram.svg");
  -webkit-mask-image: url("../iseo/assets/icon-instagram.svg");
}

.labesso-list span {
  color: var(--muted);
  font-size: 15px;
  font-weight: 500;
}

.labesso-list strong {
  justify-self: end;
  color: var(--ink);
  font-size: 17px;
  font-weight: 400;
  text-align: right;
}

.labesso-list a { color: inherit; text-decoration: none; }
.labesso-list a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* 관리자 SEO 설정과 구조화 데이터가 공유하는 FAQ */
.about-faq {
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}

.about-faq-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Poppins", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.16;
}

.about-faq-list {
  border-top: 1px solid var(--line);
}

.about-faq-list details {
  border-bottom: 1px solid var(--line);
}

.about-faq-list summary {
  position: relative;
  padding: 24px 46px 24px 0;
  color: var(--ink);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  cursor: pointer;
  list-style: none;
}

.about-faq-list summary::-webkit-details-marker { display: none; }
.about-faq-list summary::after {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 18px;
  height: 18px;
  color: var(--muted);
  font-size: 21px;
  font-weight: 300;
  line-height: 16px;
  text-align: center;
  transform: translateY(-50%);
  content: "+";
}
.about-faq-list details[open] summary::after { content: "−"; }

.about-faq-answer {
  padding: 0 46px 25px 0;
}
.about-faq-answer p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

/* 관리자 편집 바 */
.about-admin-bar {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 12px clamp(20px, 6vw, 80px) 0;
}
.about-admin-bar a {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; border: 1px solid var(--line); border-radius: 999px;
  font-size: 13px; color: var(--muted); background: #fff;
}
.about-admin-bar a:hover { color: var(--ink); border-color: var(--ink); }

/* ===== 반응형 ===== */
@media (max-width: 860px) {
  .about-page .visit .about-gallery-photos { gap: 12px; }
  .about-page .about-gallery-photos figure { aspect-ratio: 4 / 3; }
  .labesso-section { grid-template-columns: 1fr; gap: 24px; }
  .about-faq { grid-template-columns: 1fr; gap: 24px; }
  .labesso-list { margin-top: 24px; }
  .labesso-list > div {
    grid-template-columns: 28px minmax(72px, auto) minmax(0, 1fr);
    gap: 12px; min-height: 58px;
  }
  .labesso-list strong { justify-self: start; font-size: 15px; text-align: left; }

  /* 모바일: About 글자 크기 전체 축소 */
  .about-page .about-grid h2,
  .about-page .visit h2,
  .about-page .labesso-info h2,
  .about-page .about-faq-heading h2 { font-size: clamp(22px, 5.4vw, 30px); line-height: 1.2; }
  .about-page .about-grid .about-body,
  .about-page .visit-info p,
  .about-page .labesso-copy { font-size: 14.5px; line-height: 1.7; }
  .about-page .section-kicker { font-size: 11.5px; margin-bottom: 10px; }
  .about-page .visit-list span,
  .about-page .visit-list strong { font-size: 14px; }
  .about-page .labesso-list span { font-size: 13.5px; }
  .about-page .labesso-list strong { font-size: 15px; }
}

@media (max-width: 520px) {
  .about-page .visit .about-gallery-photos { grid-template-columns: 1fr; }

  .about-page .about-grid h2,
  .about-page .visit h2,
  .about-page .labesso-info h2,
  .about-page .about-faq-heading h2 { font-size: clamp(20px, 6.2vw, 26px); }
  .about-page .about-grid .about-body,
  .about-page .visit-info p,
  .about-page .labesso-copy { font-size: 13.5px; }
  .about-page .section-kicker { font-size: 11px; }
  .about-page .visit-list span,
  .about-page .visit-list strong { font-size: 13px; }
  .about-faq-list summary { padding: 20px 38px 20px 0; font-size: 15px; }
  .about-faq-answer { padding: 0 38px 21px 0; }
  .about-faq-answer p { font-size: 13.5px; }
}
