@charset "UTF-8";
/*
 * func.v2.css — 使い方ガイドページ専用
 * 依存: tokens.css, common.css
 * 操作ガイド（Portrait / Landscape のSVGアニメをグリッド表示）
 */

#main {
  background: #2e2e2e;
  color: #fff;
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

#main .container--narrow {
  max-width: var(--container-max, 1480px);
}

.guide-hero {
  text-align: center;
  padding-block: clamp(4rem, 7vw, 7rem) 1.5rem;
}
.guide-hero h1 {
  color: #fff;
  font-size: 3rem;
  font-weight: var(--fw-medium);
  letter-spacing: .04em;
}

.guide-section {
  max-width: 960px;
  margin-inline: auto;
  padding-block: clamp(2.5rem, 5vw, 4rem) 1.25rem;
}
.guide-section + .guide-section {
  border-top: 0;
}
.guide-section__head {
  margin-bottom: 1.5rem;
  text-align: left;
}
.guide-section__head h2 {
  color: #fff;
  font-size: 1.25rem;
  font-weight: var(--fw-medium);
  letter-spacing: .02em;
}
.guide-section__head span {
  display: block;
  margin-top: .25rem;
  color: #ffffff9e;
  font-size: .875rem;
}

.guide-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr);
}
.guide-item {
  text-align: left;
}
.guide-item__fig {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  background: #ffffff05;
  border: 1px solid #ffffff29;
  border-radius: 9px;
}
#v5_portrait .guide-item__fig {
  aspect-ratio: 150 / 170;
}
#v5_landscape .guide-item__fig {
  aspect-ratio: 150 / 170;
}
.guide-item__fig img {
  width: auto;
  max-width: 78%;
  max-height: 78%;
}
/* Portrait の図版は少し大きく（外枠は flex で縦中央寄せ済み） */
#v5_portrait .guide-item__fig img {
  max-width: 100%;
  max-height: 100%;
}
.guide-animation {
  display: block;
  width: auto;
  max-width: 78%;
  max-height: 78%;
}
.guide-animation--portrait {
  aspect-ratio: 150 / 170;
}
.guide-animation--landscape {
  aspect-ratio: 150 / 130;
}
.guide-item h3 {
  color: #fff;
  font-size: .95rem;
  font-weight: var(--fw-bold);
  line-height: 1.45;
}
.guide-item p {
  margin-top: .25rem;
  color: #ffffffb8;
  font-size: .78rem;
  line-height: 1.5;
}

/* 使い方カードのロード時エントランス（スタッガー入場 / fade + 持ち上げ）
   初期の非表示状態は JS が .guide-anim-ready を付けたときだけ適用し、
   JS無効環境ではカードが常に表示されるようにする。 */
@media (prefers-reduced-motion: no-preference) {
  .guide-anim-ready .guide-item {
    opacity: 0;
    transform: translateY(16px) scale(0.96);
    will-change: opacity, transform;
  }
  /* 発火クラス（JSで付与）。expo-out で上品に止まる */
  .guide-anim-ready .guide-item.is-in {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition:
      opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
      transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  }
}

.guide-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  max-width: 960px;
  margin-top: 1.75rem;
  margin-inline: auto;
}
.guide-links--single {
  margin-bottom: .5rem;
}
.js-guide-env-ready .guide-mode-environment + .guide-links {
  margin-top: .75rem;
}
.guide-links .btn {
  --btn-outline-invert-color: #2e2e2e;
  min-width: min(100%, 280px);
  min-height: 42px;
  padding: .7em 1.5em;
  border-color: #ffffff9e;
  border-radius: 14px;
  color: #fff;
  background: transparent;
  box-shadow: none;
  font-size: .82rem;
  font-weight: var(--fw-medium);
}
.guide-links .btn:hover {
  border-color: currentColor;
  color: var(--btn-outline-invert-color);
  background: #fff;
  box-shadow: none;
  transform: none;
}
.guide-links .btn::before {
  display: none;
}
.guide-link--details::after {
  content: "▽";
  order: -1;
  font-size: .85em;
}
.guide-link--details[aria-expanded="true"]::after {
  content: "△";
}

/* ページ下部の CTA（無料お試し誘導） */
.guide-cta {
  margin-top: clamp(3rem, 6vw, 5rem);
  text-align: center;
}
.guide-cta__title {
  color: #fff;
  font-size: 1.9rem;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: .03em;
}
.guide-cta__fig {
  display: flex;
  justify-content: center;
  margin-block: clamp(1.5rem, 4vw, 2.5rem);
}
.guide-cta__book {
  width: 220px;
  max-width: 60%;
  height: auto;
}
/* トップページ ヒーローの「無料トライアル」ボタンと同じ見た目に揃える
   （.hero__cta .btn-primary 相当。index.v2.css は func では未読み込みのため再定義） */
.guide-cta__btn {
  min-width: min(100%, 220px);
  min-height: 60px;
  border: 1px solid #00CFFF;
  border-radius: 20px;
  background: linear-gradient(135deg, #169dda 0%, #3666ff 100%);
  color: #fff;
  box-shadow: 0px 8px 10px #00000033;
}
.guide-cta__btn:hover {
  border-color: #00cfffb3;
  background: linear-gradient(135deg, #1aa9e8 0%, #416fff 100%);
  color: #fff;
}

.guide-mode-environment {
  margin-top: clamp(2rem, 4vw, 3rem);
}
.js-guide-env-ready .guide-mode-environment {
  margin-top: 0;
}
.tables table {
  width: 100%;
  border-collapse: collapse;
  color: #eee;
}
.tables th {
  padding: 20px 0;
  text-align: center;
}
.tables th span {
  display: block;
  position: relative;
  width: 100px;
  height: 110px;
  margin: 0 auto;
  overflow: hidden;
}
.tables th img {
  display: block;
  position: absolute;
  max-width: none;
}
.tables th img.Firefox { left: -100px; }
.tables th img.Chrome { left: -200px; }
.tables th img.Safari { left: -300px; }
.tables th img.iOS { left: -400px; }
.tables th img.Android { left: -500px; }
.tables th img.iPad { left: -600px; }
.tables tbody tr:nth-child(odd) {
  background-color: #343434;
}
.tables .hr {
  padding: 120px 0 10px;
}
.tables tbody td {
  padding: 20px 10px;
  text-align: center;
  vertical-align: middle;
}
.tables tbody td.capt {
  color: #888;
  font-size: 14px;
}
.tables tbody td img {
  display: block;
  margin: 0 auto 20px;
}
.tables tbody td span {
  display: block;
  color: #888;
  font-size: 12px;
}
.tables tbody td dl {
  color: #888;
  font-size: 14px;
}
.tables tbody td dt {
  margin: 8px 0 0;
  color: #e8e8e8;
}
.tables tbody td dd {
  margin: 0;
}
.tables tbody tr.guide-print-row {
  background-color: #2e2e2e;
}
.tables tbody tr.guide-print-row td {
  padding: 28px 10px 18px;
  color: #ffffffdb;
  font-size: 12px;
  line-height: 1.45;
}
.tables tbody tr.guide-print-row td img {
  margin-bottom: 10px;
}
.tables tbody tr.guide-print-row td span {
  margin-top: 2px;
  color: #ffffff3d;
  font-size: 10px;
  line-height: 1.55;
}
.tables tbody tr.guide-print-notes {
  background-color: #2e2e2e;
}
.tables tbody tr.guide-print-notes td.caps {
  padding: 6px 20px 22px;
  color: #ffffff47;
  font-size: 11px;
  line-height: 1.6;
  text-align: left;
}
.caps {
  padding: 20px 0 50px;
  color: #888;
  font-size: 12px;
  text-align: left;
}
.caps ol {
  margin: 0;
  padding-left: 1.4em;
}
.guide_img a {
  display: block;
  position: relative;
  text-decoration: none;
}
.guide_img a img {
  display: block;
  width: 100%;
  transition: .3s;
}
.guide_img a::before {
  content: "+ 拡大する";
  display: block;
  position: absolute;
  top: 36%;
  left: 48%;
  z-index: 3;
  width: 120px;
  color: #fff;
  font-weight: var(--fw-bold);
  line-height: 48px;
  letter-spacing: 4px;
  text-align: center;
  opacity: 0;
  transition: .3s;
}
.guide_img a:hover img {
  filter: blur(4px);
  opacity: .5;
}
.guide_img a:hover::before {
  opacity: 1;
}
.guide_pc4 {
  max-width: 903px;
  height: auto;
  margin: 0 auto;
  padding: 50px 0;
}
.guide_sp {
  max-width: 685px;
  height: auto;
  margin: 0 auto;
  padding: 50px 0;
}
.table_wrap {
  position: relative;
  scroll-margin-top: calc(var(--header-h, 64px) + 1.5rem);
}
.table_wrap + .table_wrap {
  margin-top: clamp(3rem, 6vw, 5rem);
}
.table_cont {
  overflow: hidden;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.table_cont::-webkit-scrollbar {
  display: none;
}
.js-guide-env-ready .table_wrap {
  height: 0;
  overflow: hidden;
}
.js-guide-env-ready .table_wrap.is-expanded {
  height: auto;
  margin-top: clamp(2rem, 4vw, 3rem);
}

html {
  scroll-behavior: smooth;
}

@media (min-width: 768px) {
  .guide-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (prefers-reduced-motion: no-preference) {

}

@media (max-width: 767px) {
  .guide-hero {
    padding-block: 3rem 1rem;
  }
  .guide-environment {
    padding-block-start: 3rem;
  }
  .table_cont {
    overflow-x: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
