/* LINE consultation page. All selectors are scoped to .line-page. */
.line-page {
  --line-gold: #a58d19;
  --line-text: #4b4b4b;
  color: var(--line-text);
  background: #fdfcf8;
  font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  overflow: hidden;
}

.line-page *,
.line-page *::before,
.line-page *::after { box-sizing: border-box; }

.line-page img { display: block; max-width: 100%; }
.line-page a { color: inherit; }

.line-page__hero {
  position: relative;
  padding: 84px 24px 92px;
  background: linear-gradient(180deg, #f2e6ea 0%, #f8f3e7 27%, #fdfcf8 62%);
  isolation: isolate;
}

.line-page__hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 54px;
  left: max(24px, calc((100vw - 1720px) / 2));
  width: clamp(180px, 21vw, 400px);
  aspect-ratio: 788 / 815;
  background: url("https://nikolino-shika.com/system_panel/uploads/images/20260918002608582208.png") center / contain no-repeat;
  pointer-events: none;
}

.line-page__breadcrumb {
  max-width: 1720px;
  margin: 0 auto;
  font-size: 12px;
  letter-spacing: .02em;
}
.line-page__breadcrumb a { text-decoration: none; }
.line-page__breadcrumb a:hover { opacity: .65; }

.line-page__hero-heading {
  margin: 88px auto 0;
  text-align: center;
  color: var(--line-gold);
}
.line-page__eyebrow {
  display: block;
  margin-bottom: 2px;
  font: 400 15px/1.3 Georgia, "Times New Roman", serif;
}
.line-page__title {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(28px, 2vw, 38px);
  font-weight: 500;
  line-height: 1.5;
}

.line-page__intro {
  width: min(95%, 1000px);
  margin: 1rem auto 0;
  text-align: center;
}
.line-page__lead {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  margin: 0 0 24px;
  color: var(--line-gold);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(19px, 1.35vw, 26px);
  font-weight: 600;
  line-height: 1.7;
}
.line-page__lead::before,
.line-page__lead::after {
  content: "✦";
  flex: none;
  font-family: Georgia, serif;
  font-size: 28px;
  font-weight: 400;
}
.line-page__intro-image {
  width: min(100%, 475px);
  height: auto;
  margin: 0 auto;
  object-fit: cover;
}
.line-page__intro-copy {
  margin: 42px auto 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .025em;
}
.line-page__intro-copy p { margin: 0; }
.line-page__intro-copy p + p { margin-top: 19px; }

.line-page__questions {
  padding: 82px 24px 92px;
  background: #fff;
}
.line-page__section-heading {
  margin: 0 auto 36px;
  text-align: center;
  color: var(--line-gold);
}
.line-page__section-heading::before {
  content: "✧";
  display: block;
  margin-bottom: 10px;
  font-family: Georgia, serif;
  font-size: 38px;
  line-height: 1;
}
.line-page__section-heading::after {
  content: "";
  display: block;
  width: 52px;
  height: 2px;
  margin: 17px auto 0;
  background: var(--line-gold);
}
.line-page__section-title {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(21px, 1.5vw, 28px);
  font-weight: 500;
  line-height: 1.5;
}
.line-page__questions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 78px;
  width: min(100%, 960px);
  margin: 0 auto;
}
.line-page__question {
  display: flex;
  align-items: center;
  min-height: 88px;
  gap: 22px;
  margin: 0;
  padding: 16px 30px;
  border: 2px solid var(--line-gold);
  border-radius: 7px;
  color: var(--line-gold);
  font-size: 17px;
  line-height: 1.5;
}
.line-page__question::before {
  content: "?";
  display: grid;
  flex: none;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--line-gold);
  color: #fff;
  font: 600 19px/1 Georgia, serif;
}

.line-page__flow {
  padding: 92px 24px 122px;
  background: #fdfcf8;
}
.line-page__flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(32px, 5vw, 90px);
  width: min(100%, 1340px);
  margin: 60px auto 0;
}
.line-page__flow-item { min-width: 0; text-align: center; }
.line-page__flow-number {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: #ff818d;
  color: #fff;
  font: 600 21px/1 Georgia, serif;
}
.line-page__flow-title {
  margin: 0;
  color: var(--line-gold);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.5;
}
.line-page__flow-text {
  min-height: 65px;
  margin: 14px auto 18px;
  font-size: 15px;
  line-height: 1.65;
}
.line-page__flow-image {
  width: 100%;
  aspect-ratio: 692 / 450;
  object-fit: cover;
}
.line-page__reply-note {
  width: min(100%, 650px);
  margin: 38px max(0px, calc((100% - 1340px) / 2)) 0 auto;
  font-size: 14px;
  line-height: 1.65;
}
.line-page__photo-note {
  width: min(100%, 1150px);
  margin: 86px auto 0;
  padding: 38px 32px;
  border-radius: 14px;
  background: #fff0f2;
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
}
.line-page__photo-title {
  margin: 0 0 12px;
  font-size: 19px;
  font-weight: 500;
}
.line-page__photo-note p { margin: 0; }
.line-page__photo-list { margin: 12px 0 0; padding: 0; list-style: none; }
.line-page__photo-list li::before { content: "・"; }
.line-page__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 590px);
  margin: 54px auto 0;
  padding: 18px 22px 24px;
  border-radius: 11px;
  background: #348e23;
  color: #fff !important;
  text-align: center;
  text-decoration: none;
  transition: opacity .25s ease;
}
.line-page__cta:hover { opacity: .8; }
.line-page__cta-small {
  min-width: 320px;
  max-width: 100%;
  padding: 5px 20px;
  border-radius: 999px;
  background: #fff;
  color: #348e23;
  font-size: 13px;
  line-height: 1.3;
}
.line-page__cta-main {
  margin-top: 13px;
  font-size: clamp(27px, 2.1vw, 38px);
  font-weight: 700;
  line-height: 1.45;
}
.line-page__cta-bottom {
  margin-top: 4px;
  font-size: 21px;
  font-weight: 600;
}

@media (max-width: 1024px) {
  .line-page__hero { padding-top: 90px; }
  .line-page__hero-heading { margin-top: 76px; }
  .line-page__intro { margin-top: 150px; }
  .line-page__questions-grid { gap: 22px; }
  .line-page__flow-grid { gap: 28px; }
  .line-page__flow-title { font-size: 18px; }
  .line-page__flow-text { font-size: 14px; }
}

@media (max-width: 767px) {
  .line-page__hero { padding: 94px 20px 72px; }
  .line-page__hero::before { top: 80px; left: -25px; width: 210px; opacity: .8; }
  .line-page__breadcrumb { font-size: 11px; }
  .line-page__hero-heading { margin-top: 58px; }
  .line-page__title { font-size: 27px; }
  .line-page__intro { margin-top: 132px; }
  .line-page__lead { gap: 8px; margin-bottom: 18px; font-size: 19px; }
  .line-page__lead::before,
  .line-page__lead::after { font-size: 18px; }
  .line-page__intro-image { width: min(100%, 475px); }
  .line-page__intro-copy { margin-top: 28px; font-size: 13px; line-height: 1.9; }
  .line-page__intro-copy p + p { margin-top: 18px; }
  .line-page__questions { padding: 64px 20px 72px; }
  .line-page__section-heading { margin-bottom: 30px; }
  .line-page__section-title { font-size: 21px; }
  .line-page__questions-grid { grid-template-columns: 1fr; gap: 14px; max-width: 480px; }
  .line-page__question { min-height: 65px; gap: 14px; padding: 12px 18px; font-size: 15px; }
  .line-page__question::before { width: 26px; height: 26px; font-size: 16px; }
  .line-page__flow { padding: 70px 20px 90px; }
  .line-page__flow-grid { grid-template-columns: 1fr; gap: 48px; max-width: 480px; margin-top: 42px; }
  .line-page__flow-number { margin-bottom: 10px; }
  .line-page__flow-title { font-size: 20px; }
  .line-page__flow-text { min-height: 0; margin: 10px auto 16px; font-size: 14px; }
  .line-page__reply-note { max-width: 480px; margin: 35px auto 0; font-size: 13px; }
  .line-page__photo-note { margin-top: 55px; padding: 28px 18px; font-size: 13px; }
  .line-page__photo-title { font-size: 17px; }
  .line-page__cta { margin-top: 40px; }
  .line-page__cta-small { min-width: 0; font-size: 11px; }
  .line-page__cta-main { font-size: clamp(23px, 6vw, 30px); }
  .line-page__cta-bottom { font-size: 17px; }
}


/* LINE page icons, flow numbers and CTA paragraph layout */
.line-page__lead::before,
.line-page__lead::after {
  content: "";
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 22px;
  background: url("https://nikolino-shika.com/system_panel/uploads/images/star01.png") center / contain no-repeat;
}
.line-page__section-heading::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  margin: 0 auto 10px;
  background: url("https://nikolino-shika.com/system_panel/uploads/images/star02.png") center / contain no-repeat;
}
.line-page__flow-number {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
}
.line-page__flow-item:nth-child(2) .line-page__flow-number,
.line-page__flow-item:nth-child(3) .line-page__flow-number {
  color: #fff;
}
.line-page__cta p {
  margin: 0;
}
.line-page__cta .line-page__cta-main {
  margin-top: 13px;
  color: #fff;
}
.line-page__cta .line-page__cta-bottom {
  margin-top: 4px;
  color: #fff;
}

/* Intro and flow item backgrounds. */
.line-page__intro {
  background-color: #FDFCF8;
  padding-bottom: 56px;
}
.line-page__flow-item { background-color: #fff; }
@media (max-width: 767px) {
  .line-page__intro { padding-bottom: 40px; }
}
