/* /line-contact/ 本文専用。本番の共通クラス・CTA画像は本番CSSで表示する。 */
.lx-main {
  --lx-navy: #14355d;
  --lx-blue: #224995;
  --lx-paper: #f4f7fb;
  color: var(--lx-navy);
  font-size: 16px;
  line-height: 1.8;
  word-break: break-word;
}
.lx-main *, .lx-main *::before, .lx-main *::after { box-sizing: border-box; }
.lx-main .thisinner { max-width: 1100px; }
.lx-main .nw { white-space: nowrap; }
.lx-main .lx-section { margin: 0; padding: 48px 0; }
.lx-main .lx-tint { background: var(--lx-paper); }
.lx-main .lx-intro { margin: 24px 0; }
.lx-main .lx-text-link { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 44px; color: var(--lx-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.lx-main .lx-text-link span { white-space: nowrap; }
.lx-main a:focus-visible, .lx-main summary:focus-visible, .lx-main [role="tab"]:focus-visible { outline: 3px solid #224995; outline-offset: 4px; }
.lx-main ::selection { background: #cbdcf5; color: #14355d; }
.lx-main section[id] { scroll-margin-top: 132px; }

.lx-line-page .topsidebar .sidebar-item:nth-child(2), .lx-line-page .topspscreen .spacillinks-list li:has(a[href^="tel:"]) { display: none; }
.lx-main .lx-hours { margin: 12px 0 6px; font-size: 13px; line-height: 1.7; text-align: center; }
.lx-main .lx-hours b { font-weight: inherit; }
.lx-main .lx-concerns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 28px; padding: 0; list-style: none; }
.lx-main .lx-concerns li { padding: 12px 0; }
.lx-main .lx-concerns h3 { margin-bottom: 12px; font-size: 19px; line-height: 1.7; font-weight: 700; }
.lx-main .lx-concerns h3::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 10px; background: #06c755; border-radius: 50%; }
.lx-main .lx-concerns p { font-size: 15px; }
.lx-main .lx-feature-apply-link { margin-top: 40px; padding-top: 32px; border-top: 1px solid #cbd7e5; }
.lx-line-page .lx-main[data-apply-link="hide"] .lx-feature-apply-link { display: none; }
.lx-main .lx-preparing { margin-top: 12px; color: #526278; font-size: 14px; }
.lx-main .lx-note { font-size: 14px; }


.lx-main #information .line-btitle { margin-top: 32px; }
.lx-main .lx-info-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; margin-top: 20px; }
.lx-main .lx-info-list > div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid #dce4ed; }
.lx-main .lx-info-list dt { font-weight: 700; }
.lx-main .lx-info-list dd { margin: 0; }
.lx-main .lx-photo-points { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 24px; padding: 0; list-style: none; }
.lx-main .lx-photo-points li { background: var(--lx-paper); border-radius: 5px; overflow: hidden; }
.lx-main .lx-photo-points img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; }
.lx-main .lx-photo-caption { padding: 14px 16px; }
.lx-main .lx-photo-points strong { display: block; margin-bottom: 8px; font-size: 22px; }
.lx-main .lx-photo-points p { font-size: 14px; }
.lx-main .lx-privacy { margin-top: 24px; font-size: 15px; }
.lx-main .lx-price-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 28px; }
.lx-main .lx-price-columns h3 { margin-bottom: 12px; font-size: 20px; font-weight: 700; }
.lx-main .lx-price-note { margin-top: 28px; }
.lx-main section.lx-methods .flow-buying .buying-menu { display: flex; }
.lx-main section.lx-methods .flow-buying .buying-body { display: block; }
.lx-main section.lx-methods .flow-buying .buying-body .tab-body-item { display: none; width: 100%; }
.lx-main section.lx-methods .flow-buying .buying-body .tab-body-item.current { display: block; }
.lx-main section.lx-methods .flow-buying .buying-body .tab-body-item[hidden] { display: none; }
.lx-main .lx-methods .tab-menu-item { cursor: pointer; }
.lx-main .lx-methods .buying-menu { list-style: none; padding: 0; }
@media (min-width: 751px) {
  .lx-main .lx-methods .buying-menu { gap: 20px; margin-top: 24px; }
  .lx-main .lx-methods .buying-menu .menu-item { width: 50%; padding: 16px; background: #ebf0f6; color: #224995; border-radius: 5px; text-align: center; }
  .lx-main .lx-methods .buying-menu .menu-item.current { color: #fff; background: #14355d; }
  .lx-main .lx-methods .buying-menu .tag { font-size: 12px; }
  .lx-main .lx-methods .buying-menu .menu-title { font-size: 20px; }
}
.lx-main .lx-method-content { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: start; gap: 32px; padding-top: 24px; min-height: 300px; }
.lx-main .lx-method-content img { width: 100%; height: 250px; object-fit: cover; border-radius: 5px; }
.lx-main .lx-method-content h3 { margin-bottom: 16px; font-size: 22px; font-weight: 700; }
.lx-main .lx-method-content .lx-text-link { display: flex; width: fit-content; margin-top: 12px; }
.lx-main .faq-list { margin-top: 28px; }
.lx-main details.qa-item > summary { list-style: none; min-height: 44px; }
.lx-main details.qa-item > summary::-webkit-details-marker { display: none; }
.lx-main section.faq .faq-list .list-qa details.qa-item[open] > .qa-item-body { display: block; }
.lx-main details.qa-item[open] .tieadd::before { transform: translate(-50%, -50%) rotate(90deg); }
.lx-main .lx-bottom-links { display: flex; justify-content: center; gap: 32px; margin-top: 20px; }
@media (max-width: 750px) {
  .lx-main { font-size: 15px; }
  .lx-main .thisinner { width: 100%; padding-left: 16px; padding-right: 16px; }
  .lx-main .lx-section { padding: 32px 0; }
  .lx-main section[id] { scroll-margin-top: 80px; }
  .lx-main .lx-hours { font-size: 12px; }
  .lx-main .lx-concerns { display: block; margin-top: 16px; }
  .lx-main .lx-concerns li + li { margin-top: 8px; border-top: 1px solid #dce4ed; padding-top: 20px; }
  .lx-main .lx-concerns h3 { font-size: 17px; margin-bottom: 4px; }
  .lx-main .lx-concerns p { font-size: 14px; }
  .lx-main .lx-feature-apply-link { margin-top: 28px; padding-top: 24px; }
  .lx-main .lx-info-list { grid-template-columns: 1fr; margin-top: 12px; }
  .lx-main .lx-info-list > div { grid-template-columns: 116px 1fr; gap: 12px; padding: 12px 0; font-size: 14px; }
  .lx-main .lx-photo-points { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
  .lx-main .lx-photo-caption { padding: 16px 12px; }
  .lx-main .lx-photo-points strong { font-size: 19px; }
  .lx-main .lx-photo-points p { font-size: 12px; }
  .lx-main .lx-privacy { font-size: 14px; }
  .lx-main .lx-price-columns { grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
  .lx-main .lx-price-columns h3 { font-size: 18px; margin-bottom: 8px; }
  .lx-main .lx-price-note { font-size: 14px; margin-top: 24px; }
  .lx-main .lx-method-content { grid-template-columns: 1fr; gap: 16px; min-height: 410px; }
  .lx-main .lx-method-content img { height: 180px; }
  .lx-main .lx-method-content h3 { font-size: 19px; margin-bottom: 8px; }
  .lx-main .lx-bottom-links { gap: 16px; }
}

/* 固定ページ: 固定ページと同じ一枚絵FV。テキストh1の扱いは本番と同じ。 */
.lx-main .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lx-main .lx-fv { padding: 0; margin: 0; height: auto; aspect-ratio: auto; background: #f3f9ff; }
.lx-main .lx-fv .fv-img { margin: 0 auto; max-width: 1664px; line-height: 0; }
.lx-main .lx-fv picture, .lx-main .lx-fv img { display: block; width: 100%; height: auto; }


.lx-main #corporate .lx-text-link { margin-top: 12px; }
/* 既存topnavの形を使い、ページをはみ出さない横送り。 */
.lx-main .lx-page-nav { top: 130px; }
.lx-main .lx-page-nav .LinksSwiper { position: relative; padding: 0 36px; }
.lx-main .lx-page-nav .links-wrapper { display: flex; width: 100%; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
.lx-main .lx-page-nav .swiper-initialized .links-wrapper { overflow: visible; scroll-snap-type: none; }
.lx-main .lx-page-nav .links-wrapper::-webkit-scrollbar { display: none; }
.lx-main .lx-page-nav .link { flex: 0 0 auto; scroll-snap-align: start; }
.lx-main .lx-page-nav .link a { min-height: 44px; }
.lx-main .lx-page-nav button { position: absolute; top: 0; width: 36px; min-height: 44px; height: 100%; border: 0; background: #fff; cursor: pointer; }
.lx-main .lx-page-nav button::before { display: none; }
.lx-main .lx-page-nav button::after { content: ''; display: block; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin: auto; }
.lx-main .lx-page-nav .link-prev::after { transform: rotate(-135deg); }
.lx-main .lx-page-nav button:disabled { visibility: hidden; }
@media (max-width: 750px) {
  .lx-main .lx-page-nav { top: 55px; padding: 0; font-size: 12px; }
  .lx-main .lx-page-nav .thisinner { padding: 0; }
  .lx-main .lx-page-nav .LinksSwiper { padding: 0 44px; }
  .lx-main .lx-page-nav button { width: 44px; }
  .lx-main section[id] { scroll-margin-top: 108px; }
}

/* v6: existing CTA images and link boxes share one dimension and ratio. */
.lx-main .lx-cta { margin: 24px auto 0; padding: 0; max-width: 720px; border: 0; }
.lx-main section.lx-cta .connection-lists { justify-content: center; gap: 24px 40px; margin: 0; }
.lx-main section.lx-cta .connection-lists .connection-item { width: 320px; max-width: 100%; padding: 0; }
.lx-main section.lx-cta .connection-lists .connection-item a.linktouch { display: block; width: 320px; max-width: 100%; min-height: 0; height: auto; aspect-ratio: 4 / 1; padding: 0; margin: 0 auto; line-height: 0; }
.lx-main section.lx-cta .connection-lists .connection-item a.linktouch picture,
.lx-main section.lx-cta .connection-lists .connection-item a.linktouch img { display: block; width: 100%; height: auto; }
.lx-main section.lx-cta .connection-lists .lx-cta-fallback { display: none; }
.lx-main section.lx-cta .connection-lists .lx-cta-unavailable picture { display: none; }
.lx-main section.lx-cta .connection-lists .lx-cta-unavailable .lx-cta-fallback { display: flex; width: 100%; height: 100%; min-height: 0; padding: 0; align-items: center; justify-content: center; gap: 10px; border-radius: 5px; background: #26c638; color: #fff; font-size: 22px; line-height: 1; }
.lx-main section.lx-cta .connection-lists .bluelinktouch .lx-cta-fallback { background: #344fc9; }
.lx-main .lx-cta-fallback svg { flex: 0 0 28px; width: 28px; height: 28px; fill: currentColor; }
.lx-main section.lx-cta .connection-lists .connection-item a[data-line-type="corporate"] { display: flex; align-items: center; justify-content: center; gap: 8px; height: 64px; aspect-ratio: auto; padding: 8px; border: 1px solid #168b3b; box-shadow: none; background: #fff; color: #168b3b; font-size: 17px; line-height: 1.4; }
.lx-main a[data-line-type="corporate"] svg { flex: 0 0 24px; width: 24px; height: 24px; fill: currentColor; }
.lx-main section.lx-cta .connection-lists .connection-item .lx-hours { margin: 10px 0 0; padding: 0; color: #14355d; font-size: 12px; font-weight: 400; line-height: 1.7; }
.lx-main section.lx-fv-cta { margin: 0; padding: 8px 16px 16px !important; max-width: none; background: #fff; border: 0; }
.lx-main section.lx-fv-cta .connection-lists .connection-item .item-ttl,
.lx-main #corporate section.lx-cta .connection-lists .connection-item .item-ttl { display: none; }
.lx-main section.lx-cta-compact .connection-lists .connection-item .lx-text-link { display: flex; justify-content: center; flex-wrap: nowrap; gap: 6px; margin-bottom: 8px; font-size: 14px; font-weight: 400; }
.lx-main section.lx-cta-compact .lx-text-link b { font-weight: 400; }
.lx-main section.lx-cta-compact .connection-item .lx-text-link span { padding: 0; color: inherit; font-size: inherit; }
.lx-main #bottom .lx-telephone { margin-top: 8px; }
.lx-main #bottom .lx-telephone > span { padding-top: 10px; font-size: 12px; }
/* Same PC FV treatment as the shared fixed-page fv-v2 component. */
@media (min-width: 751px) {
  .lx-main .lx-fv { background: #fff; }
  .lx-main .lx-fv .fv-img { padding: clamp(40px, 25.0909px + 1.8182vw, 60px) 0; }
  .lx-main .lx-fv img { max-width: 760px; max-height: 420px; width: 100%; height: auto; object-fit: contain; margin: 0 auto; }
}
/* One open sequence; whitespace and type carry the grouping. */
.lx-main .lx-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 24px 0 16px; padding: 0; list-style: none; }
.lx-main .lx-steps li { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.lx-main .lx-step-number { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; background: var(--lx-blue); color: #fff; font-size: 22px; font-weight: 700; line-height: 1; }
.lx-main .lx-flow-steps li:not(:last-child)::after { content: ''; position: absolute; height: 1px; top: 20px; left: calc(50% + 28px); width: calc(100% - 32px); background: #b7c9dd; }
.lx-main .lx-step-icon { display: block; width: 76px; height: 76px; max-width: none; margin: 8px 0; object-fit: contain; mix-blend-mode: multiply; }
.lx-main .lx-steps h3, .lx-main .lx-steps h4 { margin: 0 0 8px; min-height: 54px; font-size: 18px; line-height: 1.5; font-weight: 700; }
.lx-main .lx-steps p { font-size: 14px; text-align: left; width: 100%; }
.lx-main .lx-steps .lx-text-link { gap: 4px; align-self: flex-start; margin-top: 8px; font-size: 13px; }
.lx-main .lx-step-marker { display: flex; align-items: center; flex-direction: column; }
.lx-main .lx-corporate-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: center; gap: 40px; max-width: none; margin: 24px auto 0; }
.lx-main .lx-corporate-intro .lx-intro { margin: 0 0 16px; }
.lx-main .lx-corporate-intro img { display: block; width: 100%; height: auto; border-radius: 5px; }
.lx-main #corporate .lx-cta { margin: 0; max-width: 320px; }
.lx-main #corporate .lx-text-link { margin-top: 12px; }
@media (min-width: 751px) and (max-width: 900px) {
  .lx-main .lx-corporate-intro { gap: 24px; }
}
@media (max-width: 750px) {
  .lx-main .lx-fv .fv-img { max-width: 344px; }
  .lx-main section.lx-cta .connection-lists .connection-item { width: 100%; max-width: 320px; }
  .lx-main section.lx-cta .connection-lists .connection-item a.linktouch { width: 256px; }
  .lx-main section.lx-cta .connection-lists .lx-cta-unavailable .lx-cta-fallback { font-size: 20px; }
  .lx-main section.lx-cta .connection-lists .connection-item a[data-line-type="corporate"] { width: 256px; height: 56px; font-size: 16px; }
  .lx-main .lx-cta-fallback svg { flex-basis: 24px; width: 24px; height: 24px; }
  .lx-main section.lx-fv-cta .connection-lists .connection-item .lx-hours { margin-top: 8px; }
  .lx-main #bottom .connection-lists { flex-direction: column; align-items: center; gap: 24px; }
  .lx-main #bottom .lx-telephone { margin-top: 0; }
  .lx-main #bottom .connection-lists { gap: 20px; }
  .lx-main .lx-intro { margin: 20px 0; }
  .lx-main .lx-concerns li { padding-bottom: 8px; }
  .lx-main #information .line-btitle { margin-top: 24px; }
  .lx-main #information .lx-cta { margin-top: 16px; }
  .lx-main .lx-photo-caption { padding-top: 8px; padding-bottom: 8px; }
  .lx-main .lx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
  .lx-main .lx-flow-steps li::after { display: none; }
  .lx-main .lx-step-icon { width: 68px; height: 68px; }
  .lx-main .lx-steps h3, .lx-main .lx-steps h4 { min-height: 51px; font-size: 17px; }
  .lx-main .lx-steps p { font-size: 14px; line-height: 1.7; }
  .lx-main .lx-steps .lx-text-link { flex-wrap: nowrap; font-size: 12px; gap: 2px; letter-spacing: -0.02em; }
  .lx-main .lx-corporate-intro { grid-template-columns: 1fr; gap: 20px; margin-top: 20px; }
  .lx-main .lx-corporate-intro img { width: 100%; margin: 0; }
  .lx-main #corporate .lx-cta { margin: 0 auto; }
}
