@import url("https://fonts.googleapis.com/css2?family=Material+Icons&family=Noto+Sans+JP:wght@300;400;500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");

:root {
  --bg-dark: #000d0d;
  --bg-panel: #191c1c;
  --bg-card: #2a2a2a;
  --cyan: #00ffff;
  --cyan-soft: #2ad1d1;
  --cyan-deep: #4db8b8;
  --white: #ffffff;
  --ink: #000d0d;
  --body-text: #333333;
  --muted: #b3b3b3;
  --max: 71.25rem;
  --font-sans: "Noto Sans JP", "Zen Kaku Gothic New", system-ui, sans-serif;
  --font-display: "Zen Kaku Gothic New", "Noto Sans JP", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--bg-panel); color: var(--white); font-family: var(--font-sans); font-size: 16px; }
body { margin: 0; min-width: 20rem; background: var(--bg-panel); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
a:hover {
  text-decoration: underline;
  text-underline-offset: 0.14em;
}
a.hero-cta:hover,
a.cta-button:hover,
a.trial-link:hover {
  text-decoration: none;
}
.site-header { height: 4rem; padding: 0.75rem 3rem; display: flex; align-items: center; justify-content: space-between; background: var(--bg-dark); }
.logo-mark { width: 14.5rem; height: 2rem; }
.logo-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.trial-link { background: var(--cyan-soft); color: var(--ink); border-radius: 0.25rem; padding: 0.75rem 1rem; font: 700 1rem/1 var(--font-sans); letter-spacing: .08em; }
.hero { position: relative; min-height: 43.75rem; overflow: hidden; background: #d7c8a0; }
.hero::before { content: ""; position: absolute; inset: 0; background: url("assets/hero-background.webp") center center / 100% auto no-repeat; }
.hero-bg { position: absolute; inset: 0; z-index: 1; background: rgba(185, 229, 185, .18); }
.hero-copy { position: relative; z-index: 2; margin: 4.5rem 0 0 2rem; width: 40.3125rem; padding: 2rem; border-radius: 2rem; background: rgba(20,18,0,.2); backdrop-filter: blur(0.625rem); }
.hero-heading { margin: 0; font-family: var(--font-display); font-size: 3.5rem; line-height: 1.4; font-weight: 500; word-break: keep-all; overflow-wrap: normal; }
.hero-sub { margin: 1rem 0 1.5rem; font-family: var(--font-display); font-size: 1.5rem; line-height: 1.4; word-break: keep-all; overflow-wrap: normal; }
.hero-cta, .cta-button { display: block; background: var(--cyan-soft); color: var(--ink); border-radius: 0.5rem; text-align: center; font-weight: 700; }
.hero-cta { padding: 2rem 3rem; font-size: 1.5rem; }
.device-mock { position: absolute; z-index: 2; right: 8.75rem; bottom: 0; width: 27.5rem; height: 30.1875rem; background: url("assets/hero-device-mock.webp") center / cover no-repeat; }
.album-cover { position: absolute; left: 11.13%; top: 25.95%; width: 77.73%; height: auto; aspect-ratio: 1; background: url("assets/hero-album-cover.webp") center / cover no-repeat; color: #003366; padding: 1rem; font-weight: 700; }
.album-cover .hero-listen-button { left: auto; right: 1.46%; bottom: 2.34%; min-height: 12.87%; }
.hero-play-icon { width: 1rem; height: 1.125rem; flex: 0 0 auto; position: relative; }
.hero-play-icon::before { content:""; position: absolute; left: 0.1875rem; top: 0.0625rem; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 11px solid var(--cyan); }
.reliability { background: #1e2424; min-height: 7.1875rem; padding: 1rem 8rem; display: flex; justify-content: center; align-items: center; gap: 2rem; }
.reliability div { display: flex; align-items: center; gap: 0.5rem; color: rgba(255,255,255,.95); font-size: 1.125rem; line-height: 1.4; font-weight: 700; text-align: center; letter-spacing: -.04em; }
.reliability span { white-space: nowrap; }
.reliability div::before, .reliability div::after { content: ""; width: 2.559021rem; height: 5.201614rem; flex: 0 0 auto; background: center / contain no-repeat; }
.reliability div::before { background-image: url("assets/icons/laurel_wreath_left.svg"); }
.reliability div::after { background-image: url("assets/icons/laurel_wreath_right.svg"); }
section { padding-left: 1rem; padding-right: 1rem; }
.solutions { background: var(--bg-dark); padding-top: 6rem; padding-bottom: 6rem; display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.solutions-1 { padding-top: 8rem; }
.brand-stack { text-align: center; display: flex; flex-direction: column; gap: 1rem; align-items: center; margin-bottom: 2rem; }
.brand-stack p { margin: 0; font-family: var(--font-display); font-size: 2rem; font-weight: 700; }
.brand-logo { display: block; width: min(23.083125rem, 100%); max-width: 100%; }
.brand-logo img { display: block; width: 100%; height: auto; }
h2 { margin: 0; font-size: 2rem; line-height: 1.4; text-align: center; }
h3 { margin: 0; color: var(--cyan-deep); font-size: 2rem; line-height: 1.4; text-align: center; }
p { margin: 0; }
.heading-subcopy { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 0; }
.content-section { width: min(var(--max), 100%); display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.content-section + .content-section { margin-top: 4rem; }
.section-lead { max-width: var(--max); text-align: center; font-size: 1.25rem; line-height: 1.4; font-weight: 500; }
.feature-grid { width: min(var(--max), 100%); display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2rem; }
.feature-card { min-height: 25rem; border-radius: 1rem; background: var(--bg-card); padding: 3rem 2rem 2rem; display: flex; flex-direction: column; justify-content: center; gap: 1.5rem; border: 3px solid rgba(255,255,255,.12); }
.feature-card h3 { font-size: 2rem; color: var(--cyan); }
.feature-card p { font-size: 1.25rem; line-height: 1.6; letter-spacing: 0.0625rem; }
.feature-icon { height: 5.5rem; margin: 0 auto; background: center / contain no-repeat; }
.feature-card--cost .feature-icon { width: 5.5rem; background-image: url("assets/icons/cost.svg"); }
.feature-card--music .feature-icon { width: 5.75rem; background-image: url("assets/icons/music.svg"); }
.feature-card--copyright .feature-icon { width: 5.5rem; background-image: url("assets/icons/copyright.svg"); }
.feature-card--device .feature-icon { width: 9.125rem; background-image: url("assets/icons/device.svg"); }
.compare-table { width: min(var(--max), 100%); table-layout: fixed; border-collapse: separate; border-spacing: 0.125rem 0.0625rem; font-family: var(--font-display); margin-top: 2rem; margin-bottom: 2rem; }
.compare-col-label { width: 20%; }
.compare-col-service { width: 40%; }
.compare-table th, .compare-table td { background: var(--bg-card); color: #fff; padding: 1rem 1.5rem; text-align: center; font-size: 1.125rem; line-height: 1.2; border: 1px solid #111; }
.compare-table tbody th { text-align: right; }
.compare-table thead th:first-child { background:transparent; border-color: transparent; }
.compare-table thead th:nth-child(2) { background:#b3b3b3; color: var(--ink); }
.compare-table thead th:nth-child(3) { background:var(--cyan); color: var(--ink); }
.compare-table thead th:nth-child(2),
.compare-table tbody tr:first-child th { border-top-left-radius:1rem; }
.compare-table thead th:nth-child(3) { border-top-right-radius:1rem; }
.compare-table tbody tr:last-child th { border-bottom-left-radius:1rem; }
.compare-table tbody tr:last-child td:last-child { border-bottom-right-radius:1rem; }
.cta-block { display: flex; flex-direction: column; align-items: center; gap: 1rem; width: min(46.25rem,100%); }
.cta-button { padding: 2rem 3rem; min-width: 39.375rem; font-size: 1.5rem; line-height: 1; }
.cta-button--small { padding: 0.75rem 1rem; min-width: auto; font-size: 1rem; }
.cta-button--medium { padding: 2rem 3rem; min-width: auto; font-size: 1.5rem; }
.cta-supplement { color: #fff; font-size: 1.125rem; font-weight: 700; text-align: center; }
.cta-supplement--dark { color: var(--ink); }
.qa-list { width: min(64.625rem, 100%); display: flex; flex-direction: column; gap: 1rem; }
.qa-item { border: 1px solid #848484; padding: 1rem; color: #fff; background: transparent; }
.qa-item summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 0.5rem; justify-content: flex-start; font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; }
.qa-item summary span:nth-child(2) { flex:1; text-align: left; }
.qa-item summary::after { content:"⌄"; margin-left: auto; font-size: 1.125rem; }
.qa-item[open] summary::after { content:"⌃"; }
.qa-answer { display: flex; gap: 0.5rem; margin-top: 0.5rem; font-family: var(--font-display); font-size: 1.125rem; line-height: 1.4; }
.values { background: var(--bg-panel); padding-top: 6rem; padding-bottom: 6rem; display: flex; flex-direction: column; align-items: center; gap: 4.5rem; }
.values > h2 { width: min(var(--max), 100%); }
.value-card { width: min(var(--max),100%); background: rgba(255,255,255,.9); color: var(--body-text); border: 4px solid #fff; border-radius: 1rem; padding: 4.5rem 3rem; display: flex; flex-direction: column; gap: 2rem; align-items: center; }
.value-card > p { max-width: 61.25rem; text-align: left; font-size: 1.25rem; line-height: 1.6; font-weight: 500; }
.value-card h3 { width: 100%; text-align: center; }
.value-card--cost > p,
.value-card--device > p { text-align: center; }
.value-card--cost { gap: 1.5rem; }
.value-card--cost > p { margin-bottom: 0.75rem; }
.value-card--cost .pricing-tabs { margin-top: 0; padding-bottom: 0.5rem; }
.value-card--cost .pricing-grid { margin-top: 0; padding-top: 1.75rem; }
.value-qa .qa-item { color: var(--ink); border-color: #adb7bf; }
.value-qa .qa-answer { color: var(--ink); }
.qa-item--static .qa-question {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: flex-start;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
}
.qa-item--static .qa-question span:nth-child(2) {
  flex: 1;
  text-align: left;
}
.value-card > .rights-description { width: min(57.25rem, 100%); text-align: left; font-weight: 300; }
.copyright-badges { width: 39.375rem; max-width: 100%; display: flex; justify-content: center; gap: 4rem; text-align: center; color: #2a2a2a; }
.copyright-badge { width: 17.6875rem; min-height: 14.25rem; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 1rem; }
.copyright-badge p { margin: 0; font-size: 1rem; line-height: 1.871875; font-weight: 500; color: #2a2a2a; }
.copyright-badge .jasrac-number { width: 17.6875rem; height: 9.5rem; padding: 2rem; border: 3px solid #1f1f1f; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; line-height: 1.2; color: #1f1f1f; text-align: center; }
.mark { width: 17.6875rem; height: 9.5rem; padding: 1rem 2rem; border: 3px solid #1f1f1f; display: flex; align-items: center; justify-content: center; font-size: 6rem; line-height: 1.2; font-weight: 700; color: #1f1f1f; }
.playlist-grid { width: 63.249375rem; max-width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 18.416875rem)); justify-content: space-between; gap: 2.0625rem 3.999375rem; }
.playlist-card { background: transparent; border: 0; padding: 0; display: flex; flex-direction: column; gap: 0.875rem; color: #003366; }
.playlist-art { position: relative; width: 100%; aspect-ratio: 1; border-radius: 0.5rem; background: center / cover no-repeat; overflow: hidden; cursor: pointer; }
.playlist-card h4 { margin: 0; text-align: center; font-size: 1.2rem; line-height: 1.1733333269755046; font-weight: 700; }
.tags { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.tags span { background: rgba(0,51,102,.08); color: #003366; border-radius: 62.5rem; padding: 0.25rem 0.75rem; font-size: 0.81875rem; line-height: 1.602290012205575; font-weight: 700; }
.playlist-card p { color: #333333; font-size: 1rem; line-height: 1.6; font-weight: 400; }
.playlist-card .album { color: #003366; font-weight: 600; }
.playlist-card .sub { color: #003366; font-size: 0.95rem; font-weight: 700; }
.listen-badge { appearance: none; border: 0; cursor: pointer; position: absolute; left: 0.75rem; bottom: 0.75rem; height: 2.25rem; padding: 0 1rem; border-radius: 0.5rem; display: flex; align-items: center; gap: 0.5rem; background: rgba(33,33,33,.9); color: #fff; font-size: 1rem; line-height: 1; font-weight: 700; font-family: var(--font-sans); }
.listen-badge .material-icons { font-size: 1.125rem; line-height: 1; display: block; }
.listen-badge { transition: background-color .18s ease, box-shadow .18s ease, filter .18s ease, transform .1s ease; }
.listen-badge:hover { background:#3a3a3a; color: var(--cyan); box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,.3); }
.material-icons { font-family: "Material Icons"; font-weight: normal; font-style: normal; font-size: 1.25rem; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: "liga"; -webkit-font-smoothing: antialiased; }
.pricing-grid { width: 61.25rem; max-width: 100%; display: grid; grid-template-columns: repeat(3, 19.75rem); align-items: end; justify-content: space-between; gap: 1rem; padding-top: 3.25rem; }
.price-card { background: #fff; border: 4px solid #b4e5e5; border-radius: 1rem; padding: 0 1.5rem 3rem; min-height: 17.875rem; text-align: center; color: var(--ink); position: relative; display: flex; flex-direction: column; align-items: center; overflow: visible; }
.price-card:first-child { min-height:21.875rem; border: 8px solid var(--cyan-soft); }
.price-card-head { order: 1; width: calc(100% + 3rem); margin: 0 -1.5rem 2.75rem; display: flex; flex-direction: column; align-items: center; position: relative; }
.price-card h4 { position: absolute; left: 50%; top: -3.875rem; transform: translateX(-50%); min-width: 8.25rem; margin: 0; padding: 0.5rem 1rem; border-radius: 0; background: #b4e5e5; color: #2a2a2a; font-size: 1.25rem; line-height: 1.4; font-weight: 700; white-space: nowrap; }
.price-card:first-child h4 { top:-4.5rem; background: var(--cyan-soft); color: #fff; }
.price-card h4::after { content: ""; position: absolute; left: 50%; bottom: -0.625rem; transform: translateX(-50%); width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 10px solid #b4e5e5; }
.price-card:first-child h4::after { border-top-color:var(--cyan-soft); }
.price-card h5 { width: 100%; margin: 0; padding: 1rem 0; background: #b4e5e5; color: var(--ink); font-size: 1.5rem; line-height: 1.1667; font-weight: 700; }
.price-card:first-child h5 { background:var(--cyan-soft); color: #fff; }
.price-card p { order: 3; font-size: 1.125rem; line-height: 1.111; font-weight: 500; }
.price-card .price { margin: 0.25rem 0 2.25rem; font-size: 1.875rem; line-height: 1.2; font-weight: 500; }
.price-card:first-child .price { font-size:2rem; line-height: 1.125; font-weight: 700; }
.badge { order: 2; background: #F59E0B; border-radius: 0; padding: 0.5rem 1rem; font-weight: 700; color: #fff; display: inline-block; margin: -1.25rem auto 1.5rem; }
.pricing-tabs { display: flex; align-items: center; justify-content: center; gap: 0.0625rem; flex-wrap: nowrap; padding-bottom: 2rem; }
.price-tab { appearance: none; border: 0; background: #b4e5e5; color: rgba(0,26,26,.5); border-radius: 0; padding: 0.5rem 1rem; font-size: 1.125rem; line-height: 1.5; font-weight: 500; display: inline-block; margin: 0; cursor: pointer; }
.price-tab:first-child { border-radius:0.5rem 0 0 0.5rem; }
.price-tab:last-child { border-radius:0 0.5rem 0.5rem 0; }
.price-tab.is-active { background: var(--cyan-soft); color: #fff; font-weight: 700; }
.note { color: #364153; font-size: 1rem; }
.device-panel { width: min(41.25rem, 100%); aspect-ratio: 660 / 411; background: url("assets/device-support-panel.webp") center / contain no-repeat; border-radius: 1.5rem; }
.steps { display: flex; gap: 1.4375rem; width: 100%; justify-content: center; }
.step { flex: 1; background: #fff; border-radius: 1rem; padding: 1.5rem; display: flex; flex-direction: column; align-items: center; }
.step-num { color: var(--cyan-soft); font-size: 3rem; font-weight: 700; }
.step h4 { font-size: 1.1875rem; color: #1f1f1f; margin: 0.5rem 0; text-align: center; }
.step p { width: 100%; font-size: 1rem; color: #2a2a2a; text-align: left; }
.conclusion { background: var(--bg-dark); padding-top: 9rem; padding-bottom: 10rem; display: flex; flex-direction: column; align-items: center; gap: 4rem; }
.last-cta { width: min(var(--max),100%); border: 2px solid #6bd1d1; border-radius: 1rem; box-shadow: 0 0 1.75rem rgba(180,229,229,.5); padding: 4rem 2rem; display: flex; flex-direction: column; gap: 2rem; align-items: center; }
.last-cta h2 { font-size: 2rem; }
.estimate-form { width: min(var(--max),100%); background: var(--bg-card); border-radius: 2rem; padding: 4.5rem 4rem; display: flex; flex-direction: column; gap: 2rem; align-items: center; }
.estimate-icons { display: flex; align-items: flex-end; justify-content: center; gap: 1.5rem; width: 100%; }
.estimate-icon { display: block; width: auto; height: auto; }
.estimate-icon--payment { width: 15.875rem; }
.estimate-form h2 { color: var(--cyan); font-size: 2rem; }
.estimate-form p { max-width: 43.6875rem; text-align: center; font-size: 1.125rem; line-height: 1.8; }
.fake-input { width: 39.375rem; background: #fff; color: var(--ink); border: 2px solid #b3b3b3; border-radius: 0.5rem; padding: 1rem; text-align: center; font-size: 1.25rem; font-family: inherit; box-sizing: border-box; outline: none; -webkit-appearance: none; appearance: none; }
.fake-input::placeholder { color:#b3b3b3; opacity: 1; }
.fake-input:focus { border-color: var(--cyan); }
.consent { display: flex; align-items: center; gap: 0.625rem; font-size: 1.125rem; }
.consent span { width: 1.875rem; height: 1.875rem; background: #fff; border: 2px solid #b3b3b3; border-radius: 0.5rem; }
.consent input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.consent input[type="checkbox"]:focus-visible + span { outline: 3px solid var(--cyan); outline-offset: 0.125rem; }
.consent input[type="checkbox"]:checked + span { background: var(--cyan-soft); border-color: var(--cyan-soft); }
.estimate-form button { width: 39.375rem; height: 4.875rem; border: 0; border-radius: 0.5rem; background: var(--cyan-soft); color: var(--ink); font-size: 1.25rem; font-weight: 700; }
.estimate-mailto { color: var(--cyan); font-size: 1.5rem; font-weight: 700; text-decoration: none; padding: 1rem 2rem; }
.estimate-mailto:hover { text-decoration: underline; text-underline-offset: 0.14em; }

/* index2: meaning-based spacing scale (no alignment changes) */
.distance-v2 {
  --space-xl: clamp(4rem, 8vw, 7.5rem);   /* different meaning blocks */
  --space-lg: clamp(2rem, 4vw, 3.5rem);    /* same section major groups */
  --space-md: clamp(1rem, 2vw, 1.75rem);    /* tightly related elements */
}

.distance-v2 .hero + .reliability,
.distance-v2 .reliability + .solutions,
.distance-v2 .solutions + .solutions,
.distance-v2 .solutions + .values,
.distance-v2 .values + .conclusion,
.distance-v2 .conclusion + .faq {
  margin-top: var(--space-xl);
}

.distance-v2 .solutions > .section-lead,
.distance-v2 .values > h2,
.distance-v2 .conclusion .last-cta,
.distance-v2 .faq > .faq-heading {
  margin-bottom: var(--space-lg);
}

.distance-v2 .feature-grid,
.distance-v2 .compare-table,
.distance-v2 .qa-list,
.distance-v2 .playlist-grid,
.distance-v2 .pricing-grid,
.distance-v2 .steps,
.distance-v2 .cta-block {
  margin-top: var(--space-md);
}

.distance-v2 .value-card + .value-card {
  margin-top: var(--space-lg);
}

.distance-v2 .estimate-form > p {
  margin-top: 0.5rem;
  margin-bottom: var(--space-md);
}

.distance-v2 .estimate-form > .consent {
  margin-top: 0.25rem;
}

@media (max-width: 67.125rem) {
  .distance-v2 {
    --space-xl: clamp(2.5rem, 8vw, 4.5rem);
    --space-lg: clamp(1.5rem, 5vw, 2.5rem);
    --space-md: clamp(0.75rem, 3vw, 1.25rem);
  }
}
.faq { background: var(--bg-panel); padding-top: 5rem; padding-bottom: 5rem; display: flex; flex-direction: column; align-items: center; }
.faq h2 { font-family: var(--font-display); font-size: 2rem; font-weight: 400; margin-bottom: 2rem; }
.site-footer { background: var(--bg-dark); padding: 6.25rem 1rem 17.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; justify-content: center; max-width: 61.25rem; margin-bottom: 1.5rem; }
.site-footer a { font-family: var(--font-display); font-size: 1rem; }
.site-footer p { font-family: var(--font-display); font-size: 1rem; line-height: 1.43; }
.manifest-only { position: absolute; width: 0.0625rem; height: 0.0625rem; overflow: hidden; clip-path: inset(50%); white-space: pre-wrap; }

.hero-cta:hover, .cta-button:hover, .trial-link:hover, .estimate-form button:hover, .playlist-card button:hover, .listen-badge:hover { filter: brightness(1.08); }
.hero-cta:focus-visible, .cta-button:focus-visible, .trial-link:focus-visible, .estimate-form button:focus-visible, .playlist-card button:focus-visible, .listen-badge:focus-visible, .site-footer a:focus-visible { outline: 3px solid var(--cyan); outline-offset: 0.25rem; }
.hero-cta:active, .cta-button:active, .trial-link:active, .estimate-form button:active, .playlist-card button:active, .listen-badge:active { transform: translateY(0.0625rem); }
.estimate-form button:disabled, .playlist-card button:disabled, .listen-badge:disabled, .cta-button[aria-disabled="true"] { opacity: .5; cursor:not-allowed; }
.estimate-form.is-error .fake-input, .consent.is-error span { border-color: #ff6b6b; box-shadow: 0 0 0 0.1875rem rgba(255, 107, 107, .18); }
.estimate-form.is-loading, .cta-block.is-loading { cursor: progress; opacity: .72; }
@media (min-width: 87.5rem) {
  .hero-copy { margin-left:calc((100% - 87.5rem) / 2 + 2rem); }
  .device-mock { right: calc((100% - 87.5rem) / 2 + 8.75rem); }
}
@media (min-width: 67.1875rem) and (max-width: 87.4375rem) {
  .hero { min-height:clamp(38.75rem, 50vw, 43.75rem); }
  .hero::before { left:50%; top: 0; width: 87.5rem; height: 43.75rem; transform: translateX(-50%); background-size: cover; }
  .hero-copy { width: min(37.5rem, calc(100% - 29.375rem)); margin: 3.5rem 0 0 2rem; padding: 2rem; }
  .hero-heading { font-size: clamp(3rem, 4.6vw, 4rem); }
  .hero-sub { font-size: clamp(1.5rem, 2.3vw, 2rem); }
  .hero-cta { font-size: clamp(1.5rem, 2.3vw, 2rem); padding: 1.75rem 2.5rem; }
  .device-mock { right: clamp(2rem, 6vw, 8.75rem); width: clamp(22.5rem, 34vw, 27.5rem); height: auto; aspect-ratio: 440 / 483; }
  .album-cover { width: 77.7%; height: auto; aspect-ratio: 1; }
}
@media (max-width: 67.125rem) {
  .site-header { height:2.91875rem; padding: 0.75rem 3rem; justify-content: flex-start; }
  .logo-mark { width: 10.25rem; height: 1.5rem; }
  .trial-link { display: none; }
  .hero { min-height: 49.4375rem; background-size: cover; }
  .hero::before { inset:0; width: auto; height: auto; background-size: cover; }
  .hero-copy { margin: 1.75rem 0.75rem 0; width: auto; padding: 2rem; border-radius: 2rem; }
  .hero-heading { font-size: 2rem; }
  .hero-sub { font-size: 1.5rem; }
  .hero-cta { font-size: 1.125rem; padding: 1rem 2rem; }
  .device-mock { width: 21.25rem; height: 23.375rem; right: 1.6875rem; bottom: 0; }
  .album-cover .hero-listen-button { left: auto; right: 1.46%; bottom: 2.34%; }
  .hero-play-icon { width: 0.773125rem; height: 0.87rem; }
  .hero-play-icon::before { left:0.14375rem; top: 0.048125rem; border-top-width: 6.19px; border-bottom-width: 6.19px; border-left-width: 8.5px; }
  .reliability { min-height: 10.5rem; padding: 1rem 0; gap: 1rem; overflow: hidden; }
  .reliability div { font-size: 1rem; min-width: 5.25rem; }
  .reliability div::before, .reliability div::after { width:1.844875rem; height: 3.75rem; }
  .solutions { padding: 4rem 1rem; }
  .solutions-1 { padding-top: 3rem; }
  .brand-stack p { font-size: 1.3125rem; }
  .brand-logo { width: min(34.625rem, 100%); }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.5rem; }
  .section-lead, .feature-card p, .value-card p { font-size: 1.125rem; }
  .feature-grid, .playlist-grid, .pricing-grid, .steps { grid-template-columns: 1fr; display: grid; }
  .feature-card { min-height: 0; padding: 2rem 2rem 1rem; }
  .feature-card h3 { font-size: 1.5rem; }
  .compare-table th, .compare-table td { font-size: 1rem; padding: 1rem 0.5rem; }
  .cta-button { min-width: 0; width: 100%; padding: 1rem; font-size: 1rem; line-height: 1.76; }
  .cta-supplement { font-size: 1rem; line-height: 1.76; }
  .values { padding: 6rem 1rem; gap: 2rem; }
  .value-card { padding: 4.5rem 1rem; }
  .copyright-badges { flex-direction: column; gap: 1.5rem; }
  .pricing-grid { width: 100%; }
  .price-card, .price-card:first-child { min-height:0; padding: 4.5rem 1.25rem 1.5rem; }
  .playlist-card { width: 100%; }
  .copyright-badges { flex-direction: column; align-items: center; gap: 1.5rem; }
  .device-panel { width: 100%; max-width: 20.625rem; height: auto; }
  .conclusion { padding: 4rem 1rem; }
  .last-cta { padding: 2rem; }
  .last-cta h2 { font-size: 2rem; }
  .estimate-form { padding: 4.5rem 1rem; }
  .estimate-form h2 { font-size: 2rem; }
  .fake-input, .estimate-form button { width: 100%; font-size: 1.125rem; }
  .faq h2 { font-size: 2rem; }
  .qa-item summary, .qa-answer { font-size: 1.25rem; }
  .site-footer { padding-bottom: 20rem; }
}
@media (min-width: 40.0625rem) and (max-width: 67.125rem) {
  h2,
  .last-cta h2,
  .estimate-form h2,
  .faq h2 { font-size:2rem !important; }
  h3,
  .value-card h3,
  .page-v2 .value-card h3 { font-size: 2rem; }
  .feature-card h3,
  .page-v2 .feature-card h3 { font-size: 2rem; }
  .page-v2 .section-v2 h2 { font-size: 2rem; }
  .section-lead { font-size: 1.25rem; }
  .feature-card p { font-size: 1.25rem; }
  .value-card > p { font-size: 1.25rem; }
  .cta-button { font-size: 1.5rem; line-height: 1; }
  .cta-supplement { font-size: 1.125rem; line-height: 1.4; }
  .qa-item summary { font-size: 1.25rem; }
  .qa-answer { font-size: 1.125rem; }
  .hero { min-height: clamp(35rem, 62vw, 43.75rem); }
  .hero-copy { width: clamp(18.75rem, 54vw, 35rem); margin: 3rem 0 0 1.5rem; padding: 1.75rem; }
  .hero-heading { font-size: clamp(2.125rem, 5vw, 3.25rem); line-height: 1.4; }
  .hero-sub { font-size: clamp(1.25rem, 2.8vw, 1.75rem); line-height: 1.45; }
  .hero-cta { width: min(100%, 32.5rem); font-size: clamp(1.125rem, 2.4vw, 1.625rem); padding: 1.25rem 2rem; }
  .device-mock { width: clamp(15.625rem, 35vw, 22.5rem); height: auto; aspect-ratio: 340 / 374; right: 1.5rem; bottom: 0; }
  .hero-listen-button { font-size: clamp(0.96688rem, 1.86vw, 1.25rem); }
  .cta-button { width: min(100%, 39.375rem); }
  .estimate-icons { gap: 1rem; }
  .estimate-icon--payment { width: 13.75rem; }
  .estimate-form .fake-input { width: min(100%, 32.5rem) !important; }
  .estimate-form .fake-input,
  .estimate-form button { font-size: 1.25rem; }
  .estimate-form button { width: auto !important; min-width: 0; padding: 0 8rem !important; }
  .reliability { min-height: auto; padding: 1rem 1.5rem; gap: 1.5rem; overflow: visible; }
  .reliability div { min-width: 0; }
  .solutions-1 .feature-grid { width: min(var(--max), 100%); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .solutions-1 .feature-card { min-height: 25rem; padding: 3rem 2rem 2rem; }
  .solutions-1 .feature-card h3 { font-size: 2rem; }
  .solutions-1 .feature-card p { font-size: 1.25rem; }
  .solutions-1 .compare-table th,
  .solutions-1 .compare-table td { font-size: 1.125rem; line-height: 1.2; padding: 1rem 1rem; }
  .solutions-1 .compare-table tbody th { padding: 1rem 2rem; }
  .playlist-grid { width: min(63.249375rem, 100%); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: space-between; gap: 2.0625rem 2rem; }
  .playlist-card { width: auto; }
  .pricing-grid { width: min(61.25rem, 100%); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; justify-content: space-between; gap: 1rem; padding-top: 3.25rem; }
  .value-card--cost .pricing-grid { margin-top: 0; padding-top: 1.75rem; }
  .price-card { min-height: 17.875rem; padding: 0 1.25rem 3rem; }
  .price-card:first-child { min-height:21.875rem; padding: 0 1.25rem 3rem; }
  .price-card-head { width: calc(100% + 2.5rem); margin: 0 -1.25rem 2.75rem; }
  .price-card h5 { width: 100%; margin: 0; font-size: 1.5rem; }
  .price-card p { font-size: 1.125rem; line-height: 1.111; }
  .price-card .price { font-size: 1.875rem; line-height: 1.2; }
  .price-card:first-child .price { font-size:2rem; }
  .steps { display: flex; gap: 1.4375rem; width: 100%; justify-content: center; }
  .step { flex: 1; }
  .copyright-badges { flex-direction: row; align-items: flex-start; gap: 1.5rem; }
  .copyright-badge { width: min(17.6875rem, calc((100% - 1.5rem) / 2)); }
  .copyright-badge .jasrac-number,
  .mark { width: 100%; }
}
@media (max-width: 40rem) {
  /* ヒーロー: 狭い幅のみ — 見出しの有効幅・折返し・端末モック下の予約（他ブレークポイント非影響） */
  .hero-copy {
    margin: 1.75rem 0.5rem calc(23.375rem + 1rem);
    width: auto;
    max-width: none;
  }
  .hero .heading-subcopy {
    gap: 0.5rem;
  }
  .hero-heading {
    font-size: clamp(1.75rem, 5vw, 2rem);
    overflow-wrap: break-word;
  }
  .hero-sub {
    margin: 0.25rem 0 1rem;
    word-break: normal;
    overflow-wrap: anywhere;
  }
  .hero-cta {
    white-space: nowrap;
    padding: 1rem 0.75rem;
    letter-spacing: -0.03em;
  }
  .device-mock { left:50%; right: auto; transform: translateX(-50%); }
  .reliability { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: auto; padding: 1rem; gap: 1rem 0.5rem; overflow: visible; }
  .reliability div { justify-content: center; min-width: 0; gap: 0.25rem; font-size: clamp(0.8125rem, 4vw, 1rem); }
  .reliability div::before,
  .reliability div::after { width:clamp(1.375rem, 7.5vw, 1.844875rem); height: clamp(2.8125rem, 15.2vw, 3.75rem); }
}

/* index2.html scoped layout system */
body.page-v2 {
  --container-wide: min(71.25rem, calc(100% - 2rem));
  --container-narrow: min(61.25rem, calc(100% - 2rem));
  --space-section: clamp(4rem, 8vw, 7rem);
  --space-block: clamp(1.5rem, 4vw, 2.5rem);
  --text-lg: clamp(1.125rem, 2.1vw, 1.5rem);
}

.page-v2 .container {
  width: var(--container-wide);
  margin: 0 auto;
}

.page-v2 .content-narrow {
  width: var(--container-narrow);
}

.page-v2 .section-v2 {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
}

.page-v2 .section-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: var(--space-block);
}

.page-v2 .section-header > p {
  font-size: clamp(1.25rem, 3vw, 2rem);
  font-weight: 700;
  text-align: center;
}

.page-v2 .section-v2 h2 {
  font-size: clamp(1.75rem, 4vw, 2.625rem);
  line-height: 1.35;
}

.page-v2 .section-v2 .section-lead {
  font-size: var(--text-lg);
  line-height: 1.6;
  margin-bottom: var(--space-block);
}

.page-v2 .cta-button {
  width: min(100%, 47.5rem);
  min-width: 0;
  border: 0;
}

.page-v2 .cta-button--primary {
  background: var(--cyan);
  color: var(--ink);
}

.page-v2 .cta-button--secondary {
  background: #98dede;
  color: #002b2b;
}

.page-v2 .qa-list {
  width: 100%;
}

.page-v2 .value-card {
  gap: var(--space-block);
}

.page-v2 .value-card h3 {
  font-size: clamp(1.5rem, 3.2vw, 2.25rem);
  color: #008181;
}

.page-v2 .playlist-grid {
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.75rem;
}

.page-v2 .pricing-grid {
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-v2 .estimate-form {
  width: 100%;
}

.page-v2 .form-field {
  width: min(100%, 39.375rem);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.page-v2 .form-field label {
  font-size: 1rem;
  font-weight: 600;
}

.page-v2 .form-field input[type="email"] {
  border: 2px solid #b3b3b3;
  border-radius: 0.5rem;
  padding: 1rem;
  font-size: 1.125rem;
}

.page-v2 .consent input[type="checkbox"] {
  width: 1.375rem;
  height: 1.375rem;
  margin: 0;
}

.page-v2 .consent {
  gap: 0.75rem;
}

.page-v2 .solutions-2,
.page-v2 .faq {
  background: var(--bg-panel);
}

@media (max-width: 60rem) {
  .page-v2 .playlist-grid,
  .page-v2 .pricing-grid,
  .page-v2 .steps,
  .page-v2 .feature-grid {
    grid-template-columns: 1fr;
    display: grid;
  }

  .page-v2 .price-card,
  .page-v2 .price-card:first-child {
    min-height: 0;
    padding: 3.5rem 1.25rem 1.5rem;
  }
}
