/* Apps showcase — /apps/ */
:root {
  --apps-bg: #ffffff;
  --apps-ink: #0a0a0a;
  --apps-soft: #2a2a26;
  --apps-muted: #6a6a65;
  --apps-line: rgba(0, 0, 0, 0.18);
  --apps-line-soft: rgba(0, 0, 0, 0.08);
  --apps-tone: #fafaf8;
}
body.apps-body {
  background: var(--apps-bg);
  color: var(--apps-ink);
  font-family: var(--font-sans);
  font-weight: 300;
  letter-spacing: 0.02em;
  overflow-x: hidden;
}

.apps-grid-section { padding: 80px 24px; }
.apps-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
@media (max-width: 980px) { .apps-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .apps-grid { grid-template-columns: 1fr; gap: 32px; } }
.apps-platform-nav {
  width: min(100%, 520px);
  margin: 0 auto 64px;
  padding: 12px;
  border-top: 0.5px solid var(--apps-line-soft);
  border-bottom: 0.5px solid var(--apps-line-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px 28px;
  flex-wrap: wrap;
}
.apps-platform-nav a {
  min-height: 34px;
  padding: 8px 18px;
  border: 0.5px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--apps-ink);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-indent: 0.18em;
}
.apps-platform-nav a:hover {
  border-color: var(--apps-ink);
}
.apps-platform-section {
  max-width: 1200px;
  margin: 0 auto;
}
.apps-platform-section + .apps-platform-section {
  margin-top: 96px;
  padding-top: 80px;
  border-top: 0.5px solid var(--apps-line-soft);
}
.apps-platform-heading {
  max-width: 640px;
  margin: 0 auto 48px;
  text-align: center;
}
.apps-platform-eyebrow {
  margin: 0 0 14px;
  color: var(--apps-muted);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
}
.apps-platform-heading h2 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(24px, 4vw, 34px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
}

.app-card { border: 0.5px solid var(--apps-line); background: var(--apps-bg); display: flex; flex-direction: column; transition: background 0.4s ease, border-color 0.3s ease; }
.app-card:hover { background: var(--apps-tone); }
.app-card-link { color: var(--apps-ink); display: block; padding: 32px 28px 16px; }
.app-card-header { margin-bottom: 24px; }
.app-card-name { font-weight: 200; font-size: 22px; letter-spacing: 0.18em; margin: 0 0 8px; }
.app-card-sub { font-family: var(--font-sans); font-weight: 300; font-size: 13px; letter-spacing: 0.06em; color: var(--apps-soft); margin: 0; line-height: 1.7; }
.app-card-mockup { display: flex; justify-content: center; margin: 12px 0 24px; min-height: 268px; }
.app-card-mockup .phone-mockup { width: 180px; height: auto; }
.app-card-meta { display: flex; justify-content: space-between; font-size: 10px; letter-spacing: 0.18em; color: var(--apps-muted); border-top: 0.5px solid var(--apps-line-soft); padding-top: 16px; margin-top: auto; }
.app-card-action { border-top: 0.5px solid var(--apps-line-soft); padding: 16px 28px; text-align: center; }
.card-cta { font-size: 11px; letter-spacing: 0.22em; color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-ink); padding-bottom: 2px; }
.card-status { font-size: 10px; letter-spacing: 0.18em; color: var(--apps-muted); }

.apps-philosophy { border-top: 0.5px solid var(--apps-line-soft); border-bottom: 0.5px solid var(--apps-line-soft); padding: 96px 24px; background: var(--apps-tone); }
.apps-philosophy-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.apps-philosophy-eyebrow { font-family: var(--font-sans); font-size: 12px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; margin: 0 0 18px; }
.apps-philosophy-title { font-family: var(--font-sans); font-weight: 300; font-size: clamp(24px, 4vw, 32px); line-height: 1.6; letter-spacing: 0.04em; margin: 0 0 32px; }
.apps-philosophy-body { font-size: 14px; line-height: 2.1; color: var(--apps-soft); margin: 0; }

.apps-cta { padding: 96px 24px; text-align: center; }
.apps-cta-inner { max-width: 640px; margin: 0 auto; }
.apps-cta h2 { font-family: var(--font-sans); font-weight: 300; font-size: clamp(22px, 4vw, 28px); letter-spacing: 0.06em; margin: 0 0 24px; }
.apps-cta p { font-size: 13px; line-height: 2.1; color: var(--apps-muted); margin: 0 0 32px; }
.apps-cta-button { display: inline-block; padding: 14px 32px; border: 0.5px solid var(--apps-ink); font-size: 12px; letter-spacing: 0.22em; color: var(--apps-ink); transition: background 0.3s ease, color 0.3s ease; }
.apps-cta-button:hover { background: var(--apps-ink); color: #fff; }
.apps-related-row a { font-size: 12px; letter-spacing: 0.18em; color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-line); padding-bottom: 2px; }

.app-hero { padding: 120px 24px 64px; text-align: center; border-bottom: 0.5px solid var(--apps-line-soft); }
.app-hero-inner { max-width: 760px; margin: 0 auto; }
.app-hero-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; margin: 0 0 18px; }
.app-hero-name { font-weight: 200; font-size: clamp(56px, 9vw, 88px); letter-spacing: 0.18em; line-height: 1; margin: 0 0 16px; }
.app-hero-sub { font-family: var(--font-sans); font-weight: 300; font-size: clamp(15px, 2vw, 18px); letter-spacing: 0.08em; color: var(--apps-soft); margin: 0 0 24px; }
.app-hero-tagline { font-family: var(--font-sans); font-weight: 300; font-size: clamp(20px, 3vw, 28px); letter-spacing: 0.06em; color: var(--apps-ink); margin: 0 0 48px; }
.app-hero-mockup { display: flex; justify-content: center; margin: 0 0 48px; }
.app-hero-mockup .phone-mockup { width: 280px; height: auto; }
.app-hero-cta { margin-top: 32px; }
.app-cta { display: inline-block; padding: 16px 36px; border: 0.5px solid var(--apps-ink); font-size: 12px; letter-spacing: 0.22em; color: var(--apps-ink); transition: background 0.3s ease, color 0.3s ease; }
.app-cta:hover { background: var(--apps-ink); color: #fff; }
.app-cta-meta { font-size: 10px; letter-spacing: 0.22em; color: var(--apps-muted); margin: 14px 0 0; }
.app-cta-coming p { font-family: var(--font-sans); font-size: 13px; letter-spacing: 0.08em; color: var(--apps-muted); margin: 0 0 16px; }
.app-cta-secondary { font-size: 11px; letter-spacing: 0.22em; color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-line); padding-bottom: 2px; }

.app-story { padding: 96px 24px; background: var(--apps-tone); border-bottom: 0.5px solid var(--apps-line-soft); }
.app-story-inner { max-width: 640px; margin: 0 auto; text-align: center; }
.app-story-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; margin: 0 0 24px; }
.app-story-body { font-family: var(--font-sans); font-weight: 300; font-size: clamp(15px, 2.4vw, 18px); line-height: 2.1; letter-spacing: 0.06em; color: var(--apps-ink); margin: 0; }

.app-features { padding: 96px 24px; }
.app-features-inner { max-width: 920px; margin: 0 auto; }
.app-features-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; text-align: center; margin: 0 0 18px; }
.app-features-title { font-family: var(--font-sans); font-weight: 300; font-size: clamp(24px, 4vw, 32px); letter-spacing: 0.04em; text-align: center; margin: 0 0 64px; }
.app-features-list { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 720px) { .app-features-list { grid-template-columns: 1fr; gap: 32px; } }
.app-feature { border-top: 0.5px solid var(--apps-ink); padding: 24px 0; }
.app-feature-num { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); margin: 0 0 14px; }
.app-feature-title { font-family: var(--font-sans); font-weight: 400; font-size: 18px; letter-spacing: 0.06em; color: var(--apps-ink); margin: 0 0 14px; line-height: 1.6; }
.app-feature-body { font-size: 13px; line-height: 2.1; color: var(--apps-soft); margin: 0; }

.app-meta { padding: 64px 24px; border-top: 0.5px solid var(--apps-line-soft); }
.app-meta-inner { max-width: 720px; margin: 0 auto; }
.app-meta dl { margin: 0; display: grid; grid-template-columns: 1fr 2fr; gap: 16px 24px; }
.app-meta dt { font-size: 11px; letter-spacing: 0.18em; color: var(--apps-muted); }
.app-meta dd { font-size: 13px; letter-spacing: 0.04em; color: var(--apps-ink); margin: 0; }
.app-meta a { color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-line); }

.apps-footer { padding: 64px 24px 40px; border-top: 0.5px solid var(--apps-line-soft); text-align: center; }
.apps-footer-mark { font-weight: 200; letter-spacing: 0.22em; font-size: 13px; color: var(--apps-ink); margin: 0 0 18px; }
.apps-footer-meta { font-size: 10px; letter-spacing: 0.16em; color: var(--apps-muted); line-height: 2; margin: 0; }
.apps-footer-meta a { color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-line); }

.phone-mockup { /* Style Guide v1 §4.3: 影禁止 — drop-shadow 削除 */ }

.device-shot {
  --device-width: 220px;
  --device-radius: 32px;
  --device-border: 6px;
  --device-aspect: 9 / 19.5;
  position: relative;
  display: block !important;
  width: min(100%, var(--device-width));
  aspect-ratio: var(--device-aspect);
  margin: 0 auto !important;
  overflow: hidden;
  border: var(--device-border) solid var(--apps-ink);
  border-radius: var(--device-radius);
  background: #fff;
  box-sizing: border-box;
}
.device-shot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.device-shot--iphone { --device-width: 176px; --device-radius: 32px; --device-border: 5px; --device-aspect: 1290 / 2796; }
.device-shot--ipad { --device-width: 220px; --device-radius: 18px; --device-border: 5px; --device-aspect: 3 / 4; }
.device-shot--mac { --device-width: 238px; --device-radius: 8px; --device-border: 5px; --device-aspect: 16 / 10; }
.device-shot--watch { --device-width: 150px; --device-radius: 30px; --device-border: 5px; --device-aspect: 2 / 3; }
.app-card-mockup .device-shot--iphone { --device-width: 168px; }
.app-card-mockup .device-shot--ipad { --device-width: 198px; }
.app-card-mockup .device-shot--mac { --device-width: 230px; align-self: center; }
.app-card-mockup .device-shot--watch { --device-width: 132px; }
.app-hero-mockup .device-shot--iphone { --device-width: min(280px, 72vw); }
.app-hero-mockup .device-shot--ipad { --device-width: min(340px, 78vw); }
.app-hero-mockup .device-shot--mac { --device-width: min(520px, 86vw); }
.app-hero-mockup .device-shot--watch { --device-width: min(210px, 56vw); }
.app-screens-fig .device-shot--iphone { --device-width: min(220px, 68vw); }
.app-screens-fig .device-shot--ipad { --device-width: min(260px, 72vw); }
.app-screens-fig .device-shot--mac { --device-width: min(320px, 82vw); }
.app-screens-fig .device-shot--watch { --device-width: min(170px, 54vw); }

@media (max-width: 640px) {
  .app-card-mockup { min-height: 248px; }
  .app-card-mockup .device-shot--iphone { --device-width: 156px; }
  .app-card-mockup .device-shot--ipad { --device-width: 184px; }
  .app-card-mockup .device-shot--mac { --device-width: min(260px, 78vw); }
}

@media (max-width: 720px) {
  .apps-hero { padding: 80px 24px 56px; }
  .apps-grid-section { padding: 56px 16px; }
  .apps-platform-nav { margin-bottom: 48px; }
  .apps-platform-section + .apps-platform-section {
    margin-top: 72px;
    padding-top: 56px;
  }
  .apps-platform-heading { margin-bottom: 36px; }
  .apps-philosophy { padding: 64px 24px; }
  .apps-cta { padding: 64px 24px; }
  .app-hero { padding: 80px 24px 48px; }
  .app-features { padding: 64px 24px; }
  .app-story { padding: 64px 24px; }
}

/* ----- A11y / mobile tap targets ----- */
.apps-header nav a {
  padding: 8px 0;        /* ≥16px height + 11px font ≈ 27px → see media queries below */
  display: inline-block;
}
@media (max-width: 720px) {
  .apps-header-inner { padding: 14px 16px; gap: 12px; flex-wrap: wrap; }
  .apps-header nav { gap: 14px; row-gap: 6px; justify-content: center; }
  .apps-header nav a { padding: 12px 0; font-size: 10.5px; letter-spacing: 0.18em; }
  .apps-header nav .apps-back { border-left: none; padding-left: 0; }
}
@media (max-width: 480px) {
  .apps-header nav { gap: 10px; }
  .apps-mark { font-size: 12px; letter-spacing: 0.28em; }
  .app-meta dl { grid-template-columns: 1fr; gap: 4px 0; }
  .app-meta dt { font-size: 10.5px; padding-top: 12px; border-top: 0.5px solid var(--apps-line-soft); margin-top: 4px; }
  .app-meta dd { font-size: 13px; padding-bottom: 4px; }
  .apps-footer { padding: 48px 20px 32px; }
}

/* ----- Visited / focus states for keyboard a11y ----- */
.apps-header nav a:focus-visible,
.apps-cta-button:focus-visible,
.app-cta:focus-visible,
.app-cta-secondary:focus-visible,
.card-cta:focus-visible {
  outline: 0.5px solid var(--apps-ink);
  outline-offset: 4px;
}

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion: reduce) {
  .app-card,
  .apps-header nav a,
  .apps-cta-button,
  .app-cta {
    transition: none !important;
  }
}

/* ----- Print: hide nav, footer, ensure single-column ----- */
@media print {
  .apps-header, .apps-footer { display: none; }
  body.apps-body { color: #000; }
}

/* ----- aria-current indication ----- */
.apps-header nav a[aria-current="page"] {
  color: var(--apps-ink);
  border-bottom: 0.5px solid var(--apps-ink);
  padding-bottom: 6px;
}

/* ───── v2 additions (2026-05-09 夜) ───── */

/* Hero unification line */
.br-mobile-only { display: none; }
@media (max-width: 640px) { .br-mobile-only { display: inline; } }

/* "白黒ミニマル原則" statement */
.apps-statement { padding: 64px 24px; text-align: center; border-bottom: 0.5px solid var(--apps-line-soft); }
.apps-statement-inner { max-width: 640px; margin: 0 auto; }
.apps-statement-line { font-family: var(--font-sans); font-size: 13px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; margin: 0 0 18px; }
.apps-statement-body { font-size: 14px; line-height: 2.1; letter-spacing: 0.04em; color: var(--apps-ink); margin: 0; }

/* Filter / sort controls (pure CSS, no JS — 視覚デザインのみ) */
.apps-grid-controls {
  max-width: 1200px; margin: 0 auto 48px; padding: 0 8px;
  display: flex; flex-wrap: wrap; gap: 32px; justify-content: center;
  border-top: 0.5px solid var(--apps-line-soft);
  border-bottom: 0.5px solid var(--apps-line-soft);
  padding: 24px 16px;
}
.apps-grid-controls fieldset { border: none; margin: 0; padding: 0; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.apps-grid-controls legend { font-size: 10px; letter-spacing: 0.22em; color: var(--apps-muted); padding: 0 8px 0 0; text-transform: uppercase; }
.apps-grid-controls label { font-size: 11px; letter-spacing: 0.12em; color: var(--apps-soft); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.apps-grid-controls input[type="radio"] { accent-color: var(--apps-ink); width: 12px; height: 12px; }
@media (max-width: 720px) { .apps-grid-controls { gap: 18px; padding: 16px 12px; } }

/* Card hover refinement (white / black 反転トーン) */
.app-card { position: relative; overflow: hidden; }
.app-card::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--apps-ink); transform: scaleX(0); transform-origin: left center;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.app-card:hover::before { transform: scaleX(1); }
.app-card:hover .app-card-name { letter-spacing: 0.20em; transition: letter-spacing 0.45s ease; }
@media (prefers-reduced-motion: reduce) {
  .app-card::before, .app-card:hover .app-card-name { transition: none; transform: scaleX(0); letter-spacing: 0.18em; }
}

/* Philosophy 3-block grid */
.apps-philosophy-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; max-width: 1080px; margin: 48px auto 0; text-align: left;
}
@media (max-width: 920px) { .apps-philosophy-grid { grid-template-columns: 1fr; gap: 32px; } }
.apps-philosophy-block { padding: 24px 0; border-top: 0.5px solid var(--apps-ink); }
.apps-philosophy-block-num { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); margin: 0 0 14px; }
.apps-philosophy-block-title { font-family: var(--font-sans); font-weight: 400; font-size: 17px; letter-spacing: 0.06em; line-height: 1.6; color: var(--apps-ink); margin: 0 0 14px; }
.apps-philosophy-block-body { font-size: 13px; line-height: 2.1; color: var(--apps-soft); margin: 0; }

/* Story episodes */
.app-story-episodes {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 720px; margin: 48px auto 0; text-align: left;
}
@media (max-width: 720px) { .app-story-episodes { grid-template-columns: 1fr; gap: 24px; } }
.app-story-episode { padding: 20px 0; border-top: 0.5px solid var(--apps-line); }
.app-story-episode-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); margin: 0 0 12px; }
.app-story-episode-body { font-size: 13px; line-height: 2.0; color: var(--apps-ink); margin: 0; }

/* Feature kind tag */
.app-feature-kind {
  display: inline-block; margin-left: 12px; font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.18em; color: var(--apps-muted);
  border-left: 0.5px solid var(--apps-line); padding-left: 12px;
}
.app-feature--philosophy .app-feature-title { }
.app-feature--constraint .app-feature-title::before { content: "— "; color: var(--apps-muted); }

/* Multiple screens row */
.app-screens-section { padding: 72px 24px; border-top: 0.5px solid var(--apps-line-soft); }
.app-screens-inner { max-width: 1080px; margin: 0 auto; }
.app-screens-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); text-align: center; margin: 0 0 32px; text-transform: uppercase; }
.app-screens-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; align-items: end; }
@media (max-width: 800px) { .app-screens-row { grid-template-columns: 1fr; gap: 40px; } }
.app-screens-fig { margin: 0; text-align: center; }
.app-screens-fig .phone-mockup { width: 220px; max-width: 100%; height: auto; }
.app-screens-fig figcaption { font-size: 11px; letter-spacing: 0.18em; color: var(--apps-muted); margin-top: 16px; }

/* Related apps */
.app-related { padding: 72px 24px; border-top: 0.5px solid var(--apps-line-soft); background: var(--apps-tone); }
.app-related-inner { max-width: 1080px; margin: 0 auto; text-align: center; }
.app-related-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.22em; color: var(--apps-muted); text-transform: uppercase; margin: 0 0 32px; }
.app-related-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 720px) { .app-related-row { grid-template-columns: 1fr; gap: 16px; } }
.app-related-card {
  display: flex; flex-direction: column; gap: 8px; padding: 24px 20px;
  border: 0.5px solid var(--apps-line); background: var(--apps-bg); color: var(--apps-ink);
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.app-related-card:hover { border-color: var(--apps-ink); transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .app-related-card:hover { transform: none; transition: none; } }
.app-related-name { font-weight: 200; font-size: 18px; letter-spacing: 0.18em; }
.app-related-sub { font-family: var(--font-sans); font-size: 12px; letter-spacing: 0.06em; color: var(--apps-soft); }

/* aria-current for app pages */
.apps-header nav a[aria-current="page"] { color: var(--apps-ink); border-bottom: 0.5px solid var(--apps-ink); padding-bottom: 6px; }

/* Mark line: extra letter-spacing for full brand */
.apps-mark { font-weight: 200; font-size: 12px; letter-spacing: 0.32em; }
@media (max-width: 720px) { .apps-mark { font-size: 11px; letter-spacing: 0.24em; } }

/* ───── v2 タイポグラフィ修正 (2026-05-09 夜・Woody フィードバック対応) ───── */

/* 日本語見出しの禁則・改行制御 */
.apps-hero-title,
.apps-statement-line,
.apps-statement-body,
.apps-philosophy-title,
.apps-philosophy-block-title,
.apps-cta h2,
.app-hero-name,
.app-hero-sub,
.app-hero-tagline,
.app-story-body,
.app-features-title,
.app-feature-title {
  /* 日本語の禁則処理を厳格に */
  line-break: strict;
  /* 単語内分割を禁止（CJK でも一語として扱う */
  word-break: keep-all;
  /* 句読点ぶら下げ */
  hanging-punctuation: allow-end;
  /* 行を均等に分配（モダンブラウザのみ）*/
  text-wrap: balance;
  /* プロポーショナル詰め */
  font-feature-settings: "palt" on;
  /* 見出しの両端揃え／改行ぶら下げ含めた最終整形 */
  overflow-wrap: anywhere;
}

/* 「整える。」など句読点を含む短句の単独落ち防止用ユーティリティ */
.nowrap-jp {
  white-space: nowrap;
}

/* ヒーロー全体: 中央寄せ + 上下余白増 + 最大幅厳格化 */
.apps-hero {
  padding: 144px 24px 96px;        /* 上下を一段増やす（v1: 120px 24px 80px） */
  text-align: center;
}
.apps-hero-inner {
  max-width: 760px;
  margin: 0 auto;
  padding-inline: 12px;            /* 内側の見えない padding で視覚中心を整える */
}

/* タイトル自身を視覚的に中央へ寄せる */
.apps-hero-title {
  text-align: center;
  letter-spacing: 0.06em;          /* やや広げて中央感アップ（v1: 0.04em） */
}

/* リード/メタも幅を絞って中央視覚的に */
.apps-hero-lead,
.apps-hero-meta {
  max-width: 640px;
  margin-inline: auto;
}

/* 個別アプリページの hero も同様 */
.app-hero {
  padding: 144px 24px 80px;        /* 一段増（v1: 120px 24px 64px） */
}
.app-hero-inner {
  max-width: 760px;
  margin: 0 auto;
  padding-inline: 12px;
}
.app-hero-name,
.app-hero-sub,
.app-hero-tagline {
  text-align: center;
}

/* モバイル: 上下余白を抑えつつ中央寄せ維持 */
@media (max-width: 720px) {
  .apps-hero { padding: 96px 20px 64px; }
  .app-hero { padding: 96px 20px 56px; }
  .apps-hero-title { letter-spacing: 0.04em; }
}

@media (max-width: 640px) {
  html {
    overflow-x: hidden;
  }
  .apps-main,
  .apps-hero,
  .apps-statement,
  .apps-grid-section,
  .apps-philosophy,
  .apps-cta {
    overflow-x: hidden;
  }
  .apps-header-inner {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center !important;
    align-items: center !important;
  }
  .apps-header nav {
    width: 100%;
    max-width: 312px;
    justify-content: center !important;
    column-gap: 14px;
    row-gap: 8px;
  }
  .apps-header nav a {
    font-size: 10px;
    letter-spacing: 0.14em;
  }
  .apps-hero-title {
    width: 100%;
    max-width: 100%;
    padding-inline: 0;
    font-size: clamp(28px, 8vw, 34px);
    line-height: 1.6;
    overflow-wrap: anywhere;
  }
  .apps-hero-title .nowrap-jp,
  .apps-philosophy-title .nowrap-jp,
  .apps-cta h2 .nowrap-jp {
    display: block;
    white-space: normal;
  }
  .apps-body .nowrap-jp {
    white-space: normal;
  }
  .apps-hero-lead,
  .apps-hero-meta,
  .apps-statement-body,
  .apps-philosophy-block-body,
  .app-story-body,
  .app-feature-body {
    max-width: min(100%, 332px);
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: anywhere;
  }
.apps-grid-controls,
.apps-platform-nav,
.apps-platform-section,
.apps-platform-heading,
.apps-grid-controls fieldset {
  max-width: 100%;
  box-sizing: border-box;
}
  .apps-grid-controls label {
    white-space: normal;
  }
  .apps-grid {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .app-card {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .app-card-link {
    box-sizing: border-box;
    padding-inline: 18px;
  }
  .app-card-action {
    padding-inline: 18px;
  }
  .app-card-meta {
    flex-wrap: wrap;
    line-height: 1.9;
  }
  .app-card-meta span {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

/* 句読点直前で折り返さない補助（古いブラウザ向け） */
.apps-hero-title,
.app-hero-tagline,
.apps-cta h2,
.apps-philosophy-title {
  /* IE/Edge legacy 用。モダンは line-break: strict が優先 */
  -webkit-line-break: strict;
}

/* hanging-punctuation 非対応ブラウザのフォールバック: padding-inline で擬似補正 */
@supports not (hanging-punctuation: allow-end) {
  .apps-hero-title { padding-inline-end: 0.5em; }
  .app-hero-tagline { padding-inline-end: 0.5em; }
}

/* ─────────────────────────────────────────────
   app-card-name dot — visually center the name by removing dot from layout width
   ───────────────────────────────────────────── */
.app-card-name {
  text-align: center;
}
.app-card-name .dot {
  display: inline-block;
  width: 0;
  overflow: visible;
}
.app-card-header { text-align: center; }

/* ─────────────────────────────────────────────
   FORCEFUL CENTERING — iPhone mockups & all phone screens
   These rules apply with higher specificity to defeat any
   inherited left-alignment from parent elements.
   ───────────────────────────────────────────── */
.app-card-mockup,
.app-hero-mockup,
.app-screens-fig {
  display: flex !important;
  flex-direction: column;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  width: 100%;
}
.app-card-mockup > .phone-mockup,
.app-hero-mockup > .phone-mockup,
.app-screens-fig > .phone-mockup {
  display: block !important;
  margin: 0 auto !important;
  float: none !important;
}
.app-screens-row {
  align-items: start !important;
  justify-items: center !important;
}
.app-screens-fig figcaption {
  text-align: center !important;
  width: 100%;
}

/* Apps grid card content — make sure all centered */
.app-card-link,
.app-card-header,
.app-card-meta {
  text-align: center !important;
}
.app-card-meta {
  justify-content: center !important;
  gap: 16px;
}

/* Ensure app hero block content is centered */
.app-hero,
.app-hero-inner,
.apps-hero,
.apps-hero-inner,
.apps-statement,
.apps-statement-inner,
.apps-platform-section,
.apps-platform-heading,
.apps-philosophy-inner,
.apps-cta,
.apps-cta-inner,
.app-story-inner,
.app-features-inner {
  text-align: center;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ─────────────────────────────────────────────
   data-reveal FALLBACK — ensure app cards always visible
   If JS fails or reveal-on-scroll doesn't fire, cards must still render.
   ───────────────────────────────────────────── */
.apps-grid [data-reveal],
.app-card[data-reveal] {
  opacity: 1 !important;
  transform: none !important;
}
.apps-grid .app-card {
  opacity: 1 !important;
  visibility: visible !important;
}

/* ─────────────────────────────────────────────
   OPTICAL CENTERING — compensate trailing letter-spacing
   When using letter-spacing, the trailing character carries a
   right-side bleed that visually shifts text leftward. We fix
   this by adding text-indent equal to letter-spacing.
   ───────────────────────────────────────────── */
.app-hero-name {
  text-indent: 0.18em; /* matches letter-spacing 0.18em */
}
.app-card-name {
  text-indent: 0.18em;
}
.app-related-name {
  text-indent: 0.18em;
}
.apps-mark {
  letter-spacing: 0.22em;
  text-indent: 0.22em;
}
.app-features-title,
.apps-philosophy-title,
.app-story-eyebrow,
.app-features-eyebrow,
.app-screens-eyebrow,
.app-related-eyebrow {
  text-indent: 0;
}

/* Hero name: explicit block-level center with compensation */
.app-hero-name {
  display: block;
  width: 100%;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0.18em; /* visually balance letter-spacing trail */
  padding-right: 0;
}


/* ═════════════════════════════════════════════
   APPS PAGES — FORCE CENTER (no exceptions)
   ═════════════════════════════════════════════ */

/* Every element on /apps/* pages */
.apps-body, .apps-body *,
.apps-header, .apps-header *,
.apps-main, .apps-main *,
.apps-footer, .apps-footer *,
.app-hero, .app-hero *,
.app-story, .app-story *,
.app-features, .app-features *,
.app-screens-section, .app-screens-section *,
.app-related, .app-related *,
.apps-cta, .apps-cta *,
.apps-grid-section, .apps-grid-section *,
.apps-platform-section, .apps-platform-section *,
.apps-philosophy, .apps-philosophy *,
.apps-statement, .apps-statement *,
.apps-hero, .apps-hero * {
  text-align: center !important;
}

/* Apps header — logo + nav centered */
.apps-header-inner {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}
.apps-header nav {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px;
}

/* Apps grid — center grid items */
.apps-grid {
  margin-left: auto !important;
  margin-right: auto !important;
  justify-items: center !important;
}
.apps-grid--mac {
  grid-template-columns: repeat(2, minmax(0, 360px)) !important;
  justify-content: center !important;
}
.app-card {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* All feature lists center */
.app-features-list {
  display: grid;
  justify-items: center !important;
  align-items: start !important;
}
.app-feature {
  text-align: center !important;
  width: 100%;
}
.app-feature-num,
.app-feature-title,
.app-feature-body,
.app-feature-kind {
  text-align: center !important;
}

/* Screens row — perfectly centered phone mockups */
.app-screens-row {
  justify-items: center !important;
  align-items: start !important;
}
.app-screens-fig {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.app-screens-fig .phone-mockup {
  display: block !important;
  margin: 0 auto !important;
}
.app-screens-fig figcaption {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Related apps row */
.app-related-row {
  justify-items: center !important;
}
.app-related-card {
  text-align: center !important;
  align-items: center !important;
}

/* Apps filter / sort controls — center the radio groups */
.apps-grid-controls {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px;
}
.apps-filter, .apps-sort {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap;
  gap: 16px;
}
.apps-filter legend, .apps-sort legend {
  text-align: center !important;
  width: 100%;
}

/* Mockup containers always center */
.app-card-mockup, .app-hero-mockup {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 0 auto !important;
}

/* Hero meta perfectly centered */
.app-hero-meta, .app-hero-eyebrow, .app-hero-sub, .app-hero-tagline {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* All meta / spec lists center */
dl, dt, dd { text-align: center !important; }
.app-spec, .app-spec * { text-align: center !important; }

/* Thin typography pass */
.apps-body,
.apps-main,
.apps-body button,
.apps-body input,
.apps-body select,
.apps-body textarea {
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
}

.apps-hero-title,
.apps-philosophy-title,
.apps-cta h2,
.app-hero-name,
.app-hero-sub,
.app-hero-tagline,
.app-card-name,
.app-feature-title,
.apps-philosophy-block-title,
.app-related-name {
  font-family: var(--font-sans) !important;
  font-weight: 200 !important;
}

.app-card-sub,
.app-feature-body,
.apps-hero-lead,
.apps-hero-meta,
.app-story-body,
.app-meta dd {
  font-weight: 300 !important;
}

/* Unified identity hero for app index */
.apps-hero {
  min-height: 74svh !important;
  display: grid !important;
  place-items: center !important;
  padding: clamp(128px, 18vh, 190px) 24px clamp(72px, 12vh, 118px) !important;
}

.apps-hero-inner {
  width: min(100%, 760px) !important;
  max-width: 760px !important;
}

.apps-hero-eyebrow {
  font-size: 12px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  letter-spacing: 0.24em !important;
  text-indent: 0.24em !important;
  text-transform: uppercase !important;
  margin: 0 0 clamp(22px, 3vw, 30px) !important;
}

.apps-hero-title {
  font-size: clamp(36px, 5.7vw, 72px) !important;
  line-height: 1.16 !important;
  letter-spacing: 0.1em !important;
  text-indent: 0.1em !important;
  text-transform: uppercase !important;
  margin: 0 0 clamp(22px, 3vw, 30px) !important;
}

.apps-hero-lead {
  font-size: clamp(14px, 1.35vw, 17px) !important;
  line-height: 2 !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 clamp(28px, 4vw, 42px) !important;
}

@media (max-width: 760px) {
  .apps-hero {
    min-height: 72svh !important;
    padding: 132px 20px 76px !important;
  }

  .apps-hero-eyebrow {
    font-size: 11px !important;
    letter-spacing: 0.2em !important;
    text-indent: 0.2em !important;
    margin-bottom: 20px !important;
  }

  .apps-hero-title {
    font-size: clamp(32px, 9.5vw, 42px) !important;
    line-height: 1.24 !important;
    letter-spacing: 0.08em !important;
    text-indent: 0.08em !important;
  }

  .apps-hero-lead {
    font-size: 13px !important;
  }
}

/* Final apps typography pass: keep product names sans, give Japanese copy the wide serif tone. */
.apps-body,
.apps-main,
.apps-body button,
.apps-body input,
.apps-body select,
.apps-body textarea {
  font-family: var(--font-serif-ja) !important;
  letter-spacing: 0.11em !important;
}

.apps-hero-title,
.app-hero-name,
.app-card-name,
.app-related-name,
.apps-platform-eyebrow,
.apps-hero-eyebrow,
.app-hero-eyebrow,
.app-features-eyebrow,
.app-screens-eyebrow,
.app-related-eyebrow {
  font-family: var(--font-sans) !important;
}

.app-card-sub,
.apps-hero-lead,
.apps-hero-meta,
.apps-statement-body,
.apps-philosophy-block-body,
.app-story-body,
.app-feature-body,
.app-meta dd,
.app-hero-sub,
.app-hero-tagline {
  font-family: var(--font-serif-ja) !important;
  letter-spacing: clamp(0.12em, 0.55vw, 0.22em) !important;
}

/* Final apps typography pass: match main site with thin gothic and wide tracking. */
.apps-body,
.apps-body *,
.apps-main,
.apps-main *,
.apps-body button,
.apps-body input,
.apps-body select,
.apps-body textarea {
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  letter-spacing: 0.13em !important;
}

.apps-mark,
.apps-hero-title,
.app-hero-name,
.app-card-name,
.app-related-name {
  font-weight: 200 !important;
  letter-spacing: clamp(0.18em, 0.45vw, 0.32em) !important;
  text-indent: clamp(0.18em, 0.45vw, 0.32em) !important;
}

.app-card,
.apps-card,
.app-feature-card,
.app-related-card,
.app-screens-fig {
  text-align: center !important;
  justify-items: center !important;
  align-items: center !important;
}

/* Final iPhone/iPad pass for Apps: same white and thin-line system. */
@media (max-width: 1180px) {
  .apps-body,
  .apps-main,
  .apps-header,
  .apps-footer,
  .apps-hero,
  .apps-grid-section,
  .apps-platform-section,
  .app-card,
  .app-feature-card,
  .app-related-card,
  .app-screens-fig {
    background: #fff !important;
    color: var(--apps-ink) !important;
  }

  .apps-header {
    border-bottom: 0.5px solid var(--apps-line-soft) !important;
  }

  .apps-header-inner {
    width: min(100%, 920px) !important;
    padding: clamp(20px, 4vw, 34px) clamp(18px, 4vw, 40px) !important;
    gap: clamp(18px, 3vw, 32px) !important;
  }

  .apps-mark {
    font-size: clamp(18px, 3.2vw, 24px) !important;
    line-height: 1 !important;
  }

  .apps-header nav {
    width: min(100%, 760px) !important;
    justify-content: center !important;
    gap: clamp(34px, 10vw, 148px) !important;
  }

  .apps-header nav a {
    color: var(--apps-ink) !important;
    font-size: clamp(12px, 1.9vw, 15px) !important;
    letter-spacing: 0.26em !important;
    text-indent: 0.26em !important;
  }

  .apps-hero {
    min-height: auto !important;
    padding: clamp(76px, 12vw, 142px) clamp(18px, 4vw, 40px) clamp(72px, 11vw, 128px) !important;
  }

  .apps-hero-title {
    font-size: clamp(40px, 8.2vw, 76px) !important;
    line-height: 1.16 !important;
    letter-spacing: clamp(0.12em, 0.86vw, 0.24em) !important;
    text-indent: clamp(0.12em, 0.86vw, 0.24em) !important;
  }

  .apps-hero-lead,
  .apps-hero-meta {
    max-width: min(100%, 680px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    line-height: 2 !important;
  }

  .apps-platform-nav {
    gap: 0 !important;
    border: 0.5px solid var(--apps-line-soft) !important;
    background: #fff !important;
  }

  .apps-platform-nav a {
    min-height: 50px !important;
    border: 0 !important;
    border-right: 0.5px solid var(--apps-line-soft) !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: var(--apps-ink) !important;
  }

  .apps-grid {
    gap: 0 !important;
    border: 0.5px solid var(--apps-line-soft) !important;
    background: #fff !important;
  }

  .app-card {
    min-height: auto !important;
    border: 0 !important;
    border-right: 0.5px solid var(--apps-line-soft) !important;
    border-bottom: 0.5px solid var(--apps-line-soft) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .app-card-link {
    padding: clamp(30px, 5vw, 48px) clamp(18px, 4vw, 32px) 18px !important;
  }

  .app-card-name {
    font-size: clamp(22px, 3.6vw, 30px) !important;
    line-height: 1.2 !important;
  }

  .app-card-sub {
    font-size: clamp(12px, 1.8vw, 14px) !important;
    line-height: 1.9 !important;
    color: var(--apps-ink) !important;
  }

  .app-card-mockup {
    min-height: auto !important;
    margin: 24px auto 28px !important;
  }

  .app-card-action {
    border-top: 0.5px solid var(--apps-line-soft) !important;
  }
}

@media (max-width: 720px) {
  .apps-header-inner {
    width: 100% !important;
    padding: 22px 20px 20px !important;
    gap: 20px !important;
  }

  .apps-mark {
    font-size: 18px !important;
    letter-spacing: 0.48em !important;
    text-indent: 0.48em !important;
  }

  .apps-header nav {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    width: 100% !important;
    gap: 0 !important;
    margin-top: 10px !important;
  }

  .apps-header nav a {
    padding: 12px 0 !important;
    font-size: 12px !important;
    letter-spacing: 0.22em !important;
    text-indent: 0.22em !important;
    text-align: center !important;
  }

  .apps-hero {
    padding: 64px 22px 70px !important;
  }

  .apps-hero-title {
    font-size: clamp(34px, 10vw, 44px) !important;
    line-height: 1.18 !important;
    letter-spacing: 0.1em !important;
    text-indent: 0.1em !important;
  }

  .apps-hero-lead,
  .apps-hero-meta {
    font-size: 13px !important;
    line-height: 1.95 !important;
    letter-spacing: 0.08em !important;
  }

  .apps-grid-section {
    padding: 58px 20px !important;
  }

  .apps-platform-nav {
    width: min(100%, 320px) !important;
  }

  .apps-platform-nav a {
    font-size: 12px !important;
  }

  .apps-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    border-bottom: 0 !important;
  }

  .app-card {
    width: 100% !important;
    border-right: 0 !important;
  }

  .app-card-link {
    padding: 34px 22px 18px !important;
  }

  .app-card-name {
    font-size: 28px !important;
    letter-spacing: 0.16em !important;
    text-indent: 0.16em !important;
  }

  .app-card-sub {
    max-width: 24em !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.08em !important;
  }

  .device-shot--iphone {
    --device-width: min(178px, 54vw) !important;
  }

  .device-shot--ipad {
    --device-width: min(230px, 72vw) !important;
  }

  .device-shot--mac {
    --device-width: min(300px, 82vw) !important;
  }

  .device-shot--watch {
    --device-width: min(132px, 42vw) !important;
  }
}

/* Keep APPS on the same first-view grid as DRUM and CAMERA. */
.apps-body .apps-hero {
  min-height: 0 !important;
  padding-top: var(--mode-hero-top) !important;
  padding-right: 24px !important;
  padding-bottom: var(--mode-hero-bottom) !important;
  padding-left: 24px !important;
  border-bottom: 0.5px solid var(--apps-line-soft) !important;
  background: #fff !important;
}

.apps-body .apps-hero-inner {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.apps-body .apps-hero-eyebrow {
  margin: 0 0 24px !important;
  color: var(--apps-muted) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  letter-spacing: var(--mode-hero-label-track) !important;
  text-indent: var(--mode-hero-label-track) !important;
}

.apps-body .apps-hero-title {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
  color: var(--apps-ink) !important;
  font-family: var(--font-sans) !important;
  font-size: var(--mode-hero-title-size) !important;
  font-weight: 200 !important;
  line-height: 1.12 !important;
  letter-spacing: var(--mode-hero-title-track) !important;
  text-indent: var(--mode-hero-title-track) !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.apps-body .apps-hero-lead {
  max-width: min(100%, 760px) !important;
  margin: 0 auto 22px !important;
  color: var(--apps-ink) !important;
  font-size: clamp(17px, 1.7vw, 26px) !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.11em !important;
  text-indent: 0.11em !important;
  text-align: center !important;
}

.apps-body .apps-hero-meta {
  max-width: min(100%, 720px) !important;
  margin: 0 auto 34px !important;
  color: var(--apps-muted) !important;
  font-size: clamp(12px, 1.15vw, 15px) !important;
  font-weight: 300 !important;
  line-height: 2.05 !important;
  letter-spacing: 0.11em !important;
  text-indent: 0.11em !important;
  text-align: center !important;
}

.apps-body .city-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: min(100%, 300px) !important;
  min-height: 56px !important;
  margin-top: 0 !important;
  padding: 0 34px !important;
  border: 0.5px solid var(--apps-line) !important;
  background: #fff !important;
  color: var(--apps-ink) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.16em !important;
  text-indent: 0.16em !important;
  text-align: center !important;
  text-decoration: none !important;
}

@media (max-width: 720px) {
  .apps-body .apps-hero {
    padding-top: var(--mode-hero-top) !important;
    padding-bottom: var(--mode-hero-bottom) !important;
  }

  .apps-body .apps-hero-eyebrow {
    margin-bottom: 22px !important;
    font-size: 12px !important;
  }

  .apps-body .apps-hero-title {
    margin-bottom: 24px !important;
    font-size: var(--mode-hero-title-size) !important;
    line-height: 1.16 !important;
    letter-spacing: var(--mode-hero-title-track) !important;
    text-indent: var(--mode-hero-title-track) !important;
  }

  .apps-body .apps-hero-lead {
    margin-bottom: 18px !important;
    font-size: 18px !important;
    line-height: 1.85 !important;
    letter-spacing: 0.1em !important;
    text-indent: 0.1em !important;
  }

  .apps-body .apps-hero-meta {
    margin-bottom: 30px !important;
    font-size: 12px !important;
    line-height: 2 !important;
    letter-spacing: 0.08em !important;
    text-indent: 0.08em !important;
  }

  .apps-body .city-cta {
    width: min(100%, 340px) !important;
    min-height: 58px !important;
    font-size: 13px !important;
  }
}

/* 2026-05-15: real screenshots should never crop app UI, and App Store links stay text-only. */
.device-shot img {
  object-fit: contain !important;
  object-position: center !important;
  background: #fff !important;
}

.apps-body .app-cta,
.apps-body .card-cta,
.apps-body .app-cta-secondary {
  display: inline-flex !important;
  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--apps-ink) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.24em !important;
  text-indent: 0.24em !important;
}

.apps-body .app-cta:hover,
.apps-body .card-cta:hover,
.apps-body .app-cta-secondary:hover {
  background: transparent !important;
  color: var(--apps-ink) !important;
}
