/* ==========================================================================
   ATHLETE JAPAN v3 — Navy × Gold Premium Corporate
   Trustworthy, intelligent, premium design system
   Navy hero/footer, warm white content, gold accents, red CTAs
   ========================================================================== */

:root {
  /* Navy Palette */
  --navy: #0F1B2D;
  --navy-light: #162540;
  --navy-mid: #1C2E4A;
  --navy-text: #8B9BB5;

  /* Warm Neutrals */
  --white: #FFFFFF;
  --warm-white: #FAF8F5;
  --warm-gray: #F2EFE9;
  --warm-border: #E5E0D8;
  --light-border: #D9D4CC;

  /* Gold (logo-matched) */
  --gold: #C5975B;
  --gold-light: #D9B87C;
  --gold-dark: #A67C4A;
  --gold-glow: rgba(197,151,91,0.2);
  --gold-gradient: linear-gradient(135deg, #D9B87C, #C5975B, #A67C4A);

  /* Red CTA */
  --red: #B91C1C;
  --red-hover: #991B1B;
  --red-glow: rgba(185,28,28,0.18);

  /* Text */
  --text-on-dark: #E8E4DF;
  --text-on-dark-sub: #8B9BB5;
  --text-on-dark-muted: #5A6A82;
  --text-on-light: #1A1816;
  --text-on-light-sub: #5E6470;
  --text-on-light-muted: #8A8580;

  /* Fonts */
  --font-en: 'Inter', system-ui, sans-serif;
  --font-ja: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-display: 'Inter', var(--font-ja);

  /* Layout */
  --header-h: 120px;
  --container: 1440px;
  --container-sm: 960px;
  --container-lg: 1600px;

  /* Shape */
  --radius: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* Effects */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 30px rgba(0,0,0,0.1);
  --shadow-card: 0 2px 16px rgba(0,0,0,0.07);
  --shadow-glow: 0 0 40px var(--gold-glow);
  --transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);

  /* Context-aware aliases — default = light background context */
  --text: var(--text-on-light);
  --text-secondary: var(--text-on-light-sub);
  --text-muted: var(--text-on-light-muted);
  --text-dark: var(--text-on-light);
  --text-dark-secondary: var(--text-on-light-sub);
  --bg: var(--navy);
  --bg-elevated: var(--warm-white);
  --bg-card: var(--white);
  --bg-card-hover: var(--warm-white);
  --border: var(--warm-border);
  --border-light: var(--warm-border);
}

/* Dark context overrides — navy backgrounds swap all aliases */
.sec--dark, .cta-banner, .pg-hero, .footer, .hero {
  --text: var(--text-on-dark);
  --text-secondary: var(--text-on-dark-sub);
  --text-muted: #8B9BB5;
  --text-dark: var(--text-on-dark);
  --text-dark-secondary: var(--text-on-dark-sub);
  --border: rgba(255,255,255,0.12);
  --bg-card: rgba(255,255,255,0.05);
  --bg-card-hover: rgba(255,255,255,0.08);
}

/* ---------- Reset ---------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; }
body {
  font-family: var(--font-ja);
  background: var(--white);
  color: var(--text-on-light);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
ul,ol { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea,select { font-family:inherit; font-size:inherit; }
::selection { background:rgba(197,151,91,0.25); color:var(--navy); }

/* ---------- Typography ---------- */
.t-display { font-family:var(--font-display); font-size:clamp(2.5rem,7vw,5.5rem); font-weight:800; line-height:1.05; letter-spacing:-0.04em; }
.t-h1 { font-size:clamp(2rem,5vw,3.5rem); font-weight:800; line-height:1.1; letter-spacing:-0.03em; }
.t-h2 { font-size:clamp(1.5rem,3.5vw,2.5rem); font-weight:700; line-height:1.2; letter-spacing:-0.02em; }
.t-h3 { font-size:clamp(1.125rem,2.5vw,1.5rem); font-weight:700; line-height:1.3; }
.t-h4 { font-size:1.0625rem; font-weight:600; line-height:1.4; }
.t-body { font-size:0.9375rem; line-height:1.9; }
.t-small { font-size:0.8125rem; line-height:1.7; }
.t-xs { font-size:0.6875rem; }
.t-label { font-family:var(--font-en); font-size:0.6875rem; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; }
.t-gold { background:var(--gold-gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.t-muted { color: var(--text-on-light-muted); }

/* ---------- Layout ---------- */
.wrap { width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(1rem,4vw,2.5rem); }
.wrap--sm { max-width:var(--container-sm); }
.wrap--lg { max-width:var(--container-lg); }
.sec { padding:clamp(3rem,7vw,5rem) 0; }
.sec--sm { padding:clamp(1.5rem,4vw,2.5rem) 0; }
.grid { display:grid; gap:1.5rem; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:1024px) { .grid-4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:768px) { .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; } .hide-sp { display:none!important; } }
.center { text-align:center; }

/* ---------- Section Variants ---------- */

/* DARK = Navy (hero, footer, accent bands) */
.sec--dark {
  background: var(--navy);
  color: var(--text-on-dark);
}
.sec--dark .t-muted { color: var(--text-on-dark-sub); }
.sec--dark .label { color: var(--gold-light); }
.sec--dark .label::before { background: var(--gold-light); }

/* ELEVATED = Warm off-white (most content sections) */
.sec--elevated {
  background: var(--warm-white);
  color: var(--text-on-light);
}
.sec--elevated .t-muted { color: var(--text-on-light-sub); }

/* LIGHT = Pure white */
.sec--light {
  background: var(--white);
  color: var(--text-on-light);
}
.sec--light .t-muted { color: var(--text-on-light-sub); }

/* Section label */
.label {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-en); font-size:0.6875rem; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-dark);
  margin-bottom:1rem;
}
.label::before { content:""; width:28px; height:1px; background:var(--gold-dark); }
.label--light { color:var(--gold-light); }
.label--light::before { background:var(--gold-light); }
.label--dark { color:var(--gold-dark); }

/* Gold rule */
.gold-rule { width:48px; height:2px; background:var(--gold-gradient); border-radius:2px; }
.gold-rule--center { margin:0 auto 1.5rem; }

/* ---------- Header ---------- */
.header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--header-h);
  transition: background var(--transition), backdrop-filter var(--transition), border-color var(--transition);
}

/* On home hero (dark bg) */
.header--top { background:transparent; border-bottom:1px solid transparent; }
.header--top .header__logo img { filter:none; }
.header--top .header__nav a { color:rgba(255,255,255,0.7); }
.header--top .header__nav a:hover, .header--top .header__nav a.active { color:#fff; }
.header--top .header__toggle span { background:#fff; }

/* Scrolled state / Subpages — same navy look as TOP */
.header--solid {
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.header--solid .header__logo img { filter:none; }
.header--solid .header__nav a { color:rgba(255,255,255,0.7); }
.header--solid .header__nav a:hover, .header--solid .header__nav a.active { color:#fff; }
.header--solid .header__toggle span { background:#fff; }

.header__inner {
  display:flex; align-items:center; justify-content:space-between;
  height:100%; width:100%;
  padding:0 clamp(1rem,3vw,2rem) 0 clamp(1rem,3vw,2.5rem);
}
.header__logo img { height:108px; width:auto; transition:filter var(--transition); }
@media(max-width:768px) { .header__logo img { height:72px; } }
.header__nav { display:flex; align-items:center; gap:clamp(1.25rem,2.5vw,2rem); }
.header__nav a {
  font-size:0.75rem; font-weight:500; letter-spacing:0.06em;
  position:relative; padding:2px 0; transition:color var(--transition);
}
.header__nav a::after {
  content:""; position:absolute; bottom:-2px; left:0;
  width:0; height:1.5px; background:var(--gold);
  transition:width var(--transition);
}
.header__nav a:hover::after, .header__nav a.active::after { width:100%; }

/* Language Switcher */
.lang-switch {
  display:inline-flex; align-items:center; gap:0;
  border:1px solid rgba(255,255,255,0.25); border-radius:9999px;
  overflow:hidden; margin-left:0.75rem;
  background:rgba(255,255,255,0.05);
}
.lang-switch button {
  padding:6px 14px; font-size:0.75rem; font-weight:600;
  background:transparent; color:rgba(255,255,255,0.55); border:none;
  cursor:pointer; transition:all var(--transition); letter-spacing:0.04em;
  font-family:var(--font-en);
}
.lang-switch button.active {
  background:var(--gold); color:#fff;
}
.lang-switch button:hover:not(.active) { color:#fff; }
/* On light header */
.header--solid-light .lang-switch { border-color:var(--warm-border); background:transparent; }
.header--solid-light .lang-switch button { color:var(--text-on-light-sub); }
.header--solid-light .lang-switch button.active { background:var(--navy); color:#fff; }
@media(max-width:1024px) {
  .lang-switch { margin-left:0.5rem; }
  .lang-switch button { padding:5px 10px; font-size:0.6875rem; }
}

/* CTA button — high specificity to override .header__nav a and .header--solid .header__nav a */
.header__nav a.header__cta-btn,
.header--solid .header__nav a.header__cta-btn,
.header--top .header__nav a.header__cta-btn {
  padding: 20px 52px;
  font-size: 0.9375rem;
  font-weight: 700;
  border-radius: 9999px;
  color: #fff;
  background: linear-gradient(135deg, #E8483F 0%, #D4362D 50%, #C52A22 100%);
  border: none;
  box-shadow: 0 2px 10px rgba(229,57,53,0.35), inset 0 1px 0 rgba(255,255,255,0.15);
  letter-spacing: 0.04em;
  position: static;
}
.header__nav a.header__cta-btn:hover {
  color: #fff;
  background: linear-gradient(135deg, #F05A52 0%, #E8483F 50%, #D4362D 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(229,57,53,0.45), inset 0 1px 0 rgba(255,255,255,0.2);
}
.header__nav a.header__cta-btn::after { display:none!important; }

.header__toggle { display:none; flex-direction:column; gap:5px; padding:4px; z-index:1010; }
.header__toggle span { display:block; width:22px; height:1.5px; border-radius:2px; transition:all var(--transition); }
.header__toggle.active span:nth-child(1) { transform:rotate(45deg) translate(4.5px,4.5px); }
.header__toggle.active span:nth-child(2) { opacity:0; }
.header__toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(4.5px,-4.5px); }
@media(max-width:1024px) { .header__nav { display:none; } .header__toggle { display:flex; } }

/* Mobile nav — slide-in drawer from right */
.mob-nav {
  position:fixed; top:0; right:-280px; width:280px; height:100vh;
  background:var(--navy); z-index:1005;
  display:flex; flex-direction:column;
  padding:calc(var(--header-h) + 1.5rem) 2rem 2rem;
  gap:0; overflow-y:auto;
  transition:right 0.4s cubic-bezier(0.4,0,0.2,1);
  box-shadow:-4px 0 30px rgba(0,0,0,0.3);
}
.mob-nav.open { right:0; }
.mob-nav a {
  font-size:0.9375rem; font-weight:500; color:rgba(255,255,255,0.7);
  padding:0.875rem 0; border-bottom:1px solid rgba(255,255,255,0.06);
  transition:color var(--transition);
}
.mob-nav a:hover { color:var(--gold-light); }
.mob-nav__cta {
  display:block; margin-top:1.25rem;
  padding:14px 24px; font-size:0.875rem!important; font-weight:700;
  border-radius:9999px; color:#fff!important;
  background:linear-gradient(135deg, #E8483F 0%, #D4362D 50%, #C52A22 100%);
  box-shadow:0 2px 10px rgba(229,57,53,0.35);
  text-align:center; border-bottom:none;
}
/* モバイルメニュー内の言語切替：自然な幅・中央寄せ */
.mob-nav .lang-switch {
  align-self:flex-start;
  margin:1rem 0 0 !important;
  width:auto;
  display:inline-flex;
}
.mob-nav .lang-switch button {
  padding:7px 16px; font-size:0.75rem;
}
/* Overlay behind drawer */
.mob-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.4);
  z-index:1004; opacity:0; pointer-events:none;
  transition:opacity 0.4s ease;
}
.mob-overlay.open { opacity:1; pointer-events:auto; }

/* Scroll progress */
.scroll-bar { position:fixed; top:0; left:0; height:2px; background:var(--gold-gradient); z-index:1100; width:0; }

/* ---------- Hero v2 — Diagonal Athlete Stripes ---------- */
.hero-v2 {
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; background:var(--navy);
}
.hero-v2__bg {
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--navy) 0%, #0D1829 50%, #0A1220 100%);
}
/* Left text */
.hero-v2__body {
  position:relative; z-index:10; width:55%; max-width:800px;
  padding:calc(var(--header-h) + 4rem) 0 4rem clamp(3rem,7vw,7rem);
}
/* Stripe container — right half */
.hero-v2__stripes {
  position:absolute; top:0; right:0; width:52%; height:100%; z-index:2;
  display:flex; overflow:hidden;
}
/* Individual stripe */
.hero-v2__stripe {
  position:relative; flex:1; overflow:hidden;
  clip-path:polygon(20% 0%, 100% 0%, 80% 100%, 0% 100%);
  margin-left:-4%;
}
.hero-v2__stripe:first-child { margin-left:0; }
.hero-v2__stripe img {
  width:100%; height:100%; object-fit:cover; object-position:center 20%;
  filter:brightness(0.88) saturate(1);
  transition:filter 0.5s ease, transform 0.5s ease;
}
.hero-v2__stripe:hover img {
  filter:brightness(1) saturate(1.05);
  transform:scale(1.05);
}
/* Gold accent line between stripes */
.hero-v2__stripe::after {
  content:""; position:absolute; top:0; right:0; width:2px; height:100%;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
  z-index:3; opacity:0.5;
}
.hero-v2__stripe:last-child::after { display:none; }
/* Gradient overlay on stripes for depth */
.hero-v2__stripes::before {
  content:""; position:absolute; inset:0; z-index:5; pointer-events:none;
  background:linear-gradient(90deg, var(--navy) 0%, transparent 15%, transparent 85%, rgba(15,27,45,0.3) 100%);
}
.hero-v2__stripes::after {
  content:""; position:absolute; inset:0; z-index:4; pointer-events:none;
  background:linear-gradient(180deg, rgba(15,27,45,0.4) 0%, transparent 30%, transparent 70%, rgba(15,27,45,0.6) 100%);
}

/* 単独アスリート表示 (他2名は承認待ち時) */
.hero-v2__stripes--single { width:34%; }
.hero-v2__stripes--single .hero-v2__stripe { margin-left:0; }
.hero-v2__stripes--single .hero-v2__stripe::after { display:none; }
.hero-v2__stripes--single::before {
  background:linear-gradient(90deg, var(--navy) 0%, transparent 30%, transparent 85%, rgba(15,27,45,0.3) 100%);
}

/* Mobile: stripes behind text, full width */
@media(max-width:1024px) {
  .hero-v2__body { width:100%; padding:calc(var(--header-h) + 3rem) clamp(1.25rem,4vw,2.5rem) 3rem; }
  .hero-v2__stripes { width:100%; opacity:0.35; }
  .hero-v2__stripes--single { width:100%; opacity:0.35; }
}
@media(max-width:768px) {
  .hero-v2 { min-height:85vh; }
  .hero-v2__stripes { opacity:0.4; }
  .hero-v2__body { padding:calc(var(--header-h) + 2rem) 1.25rem 2.5rem; }
  .hero-v2__body .hero__actions { flex-direction:column; gap:0.75rem; }
  .hero-v2__body .hero__actions .btn { width:100%; text-align:center; }
}

/* Keep old hero class for potential reuse */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; }
.hero__media { position:absolute; inset:0; z-index:0; }
.hero__media img { width:100%; height:100%; object-fit:cover; filter:brightness(0.3) saturate(0.8); }
.hero__grain {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(15,27,45,0.6) 0%, rgba(15,27,45,0.2) 40%, rgba(15,27,45,0.8) 100%);
}
.hero__body {
  position:relative; z-index:2; max-width:var(--container); margin:0 auto;
  padding:calc(var(--header-h) + 4rem) clamp(1rem,4vw,2.5rem) 4rem;
}
.hero__kicker {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-en); font-size:0.625rem; font-weight:600;
  letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-light);
  margin-bottom:1.5rem;
}
.hero__kicker::before { content:""; width:36px; height:1px; background:var(--gold); }
.hero__title {
  font-size:clamp(2rem,6vw,3.75rem); font-weight:800; line-height:1.2;
  letter-spacing:-0.02em; color:#fff; max-width:700px; margin-bottom:1.25rem;
}
.hero__desc {
  font-size:clamp(0.875rem,1.8vw,1rem); color:rgba(255,255,255,0.55);
  line-height:2; max-width:520px; margin-bottom:2rem;
}
.hero__actions { display:flex; gap:0.75rem; flex-wrap:wrap; }

/* Page Hero (subpages) — Navy background */
.pg-hero {
  position:relative;
  padding:calc(var(--header-h) + 3.5rem) 0 clamp(2.5rem,5vw,3.5rem);
  background:var(--navy); overflow:hidden;
}
.pg-hero::after {
  content:""; position:absolute; top:-30%; right:-15%;
  width:500px; height:500px;
  background:radial-gradient(circle, var(--gold-glow) 0%, transparent 70%);
  border-radius:50%; pointer-events:none;
}
.pg-hero__title {
  position:relative; z-index:1;
  font-size:clamp(2rem,6vw,3.25rem); font-weight:800;
  color:#fff; letter-spacing:-0.03em; margin-bottom:0.75rem;
}
.pg-hero__sub {
  position:relative; z-index:1;
  font-size:0.9375rem; color:#A8B4C8; max-width:540px; line-height:1.9;
}
.pg-hero .label { color:var(--gold-light); position:relative; z-index:1; }
.pg-hero .label::before { background:var(--gold-light); }

/* Breadcrumb */
.breadcrumb {
  position:relative; z-index:1; display:flex; align-items:center; gap:0.5rem;
  font-size:0.75rem; color:#94A3B8; margin-bottom:1.25rem;
}
.breadcrumb a:hover { color:var(--gold-light); }
.breadcrumb span { color:#7B8DA6; }
.breadcrumb a { transition:color var(--transition); }
.breadcrumb a:hover { color:var(--gold); }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 30px; font-size:0.875rem; font-weight:600;
  border-radius:var(--radius-full); border:1.5px solid transparent;
  transition:all var(--transition); cursor:pointer; white-space:nowrap;
}
.btn--red { background:var(--red); color:#fff; border-color:var(--red); }
.btn--red:hover { background:var(--red-hover); border-color:var(--red-hover); transform:translateY(-2px); box-shadow:0 8px 30px var(--red-glow); }
.btn--gold { background:transparent; color:var(--gold); border-color:rgba(197,151,91,0.4); }
.btn--gold:hover { border-color:var(--gold); background:rgba(197,151,91,0.06); }
/* Gold on dark backgrounds */
.sec--dark .btn--gold { color:var(--gold-light); border-color:rgba(197,151,91,0.3); }
.sec--dark .btn--gold:hover { border-color:var(--gold-light); background:rgba(197,151,91,0.08); }
.btn--white { background:#fff; color:var(--navy); border-color:#fff; }
.btn--white:hover { background:var(--warm-white); transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.btn--ghost { background:transparent; color:var(--text-on-light); border-color:var(--warm-border); }
.btn--ghost:hover { border-color:var(--navy); transform:translateY(-2px); }
.btn--navy { background:var(--navy); color:#fff; border-color:var(--navy); }
.btn--navy:hover { background:var(--navy-light); transform:translateY(-2px); box-shadow:0 8px 25px rgba(15,27,45,0.3); }
.btn--lg { padding:16px 38px; font-size:0.9375rem; }
.btn--sm { padding:9px 22px; font-size:0.8125rem; }
.btn .arrow { transition:transform 0.2s; }
.btn:hover .arrow { transform:translateX(4px); }

/* ---------- Cards ---------- */
/* Dark section cards */
.card {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:var(--radius-lg); padding:2rem;
  transition:all var(--transition);
}
.card:hover {
  background:rgba(255,255,255,0.07);
  border-color:rgba(197,151,91,0.2);
  transform:translateY(-4px);
  box-shadow:0 8px 30px rgba(0,0,0,0.15);
}

/* Light section cards */
.card--light {
  background:var(--white);
  border:1px solid var(--warm-border);
}
.card--light:hover {
  border-color:var(--gold);
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
}
.card--light .card__title { color:var(--text-on-light); }
.card--light .card__text { color:var(--text-on-light-sub); }

/* Elevated section cards (on warm-white bg) */
.sec--elevated .card {
  background:var(--white);
  border:1px solid var(--warm-border);
}
.sec--elevated .card:hover {
  border-color:var(--gold);
  box-shadow:var(--shadow-lg);
  background:var(--white);
}
.sec--elevated .card__title { color:var(--text-on-light); }
.sec--elevated .card__text { color:var(--text-on-light-sub); }

.card__icon {
  width:52px; height:52px; border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center;
  background:rgba(197,151,91,0.08); margin-bottom:1.25rem;
}
.card__num {
  font-family:var(--font-en); font-size:0.625rem; font-weight:700;
  letter-spacing:0.15em; color:var(--gold); margin-bottom:0.75rem;
}
.card__title { font-size:1.0625rem; font-weight:700; margin-bottom:0.5rem; }
.card__text { font-size:0.875rem; color:var(--text-on-dark-sub); line-height:1.8; }

/* ---------- Stats ---------- */
.stats-row { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:1.5rem; }
.stat { text-align:center; padding:1.5rem 0; }
.stat__val {
  font-family:var(--font-en); font-size:clamp(2rem,5vw,3.25rem);
  font-weight:800; line-height:1;
  background:var(--gold-gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin-bottom:0.35rem;
}
.stat__lbl { font-size:0.75rem; color:var(--text-on-dark-sub); letter-spacing:0.04em; }
/* Stats on light bg */
.sec--elevated .stat__lbl, .sec--light .stat__lbl { color:var(--text-on-light-sub); }

/* ---------- Pricing ---------- */
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; align-items:start; }
@media(max-width:768px) { .price-grid { grid-template-columns:1fr; } }

.price-card {
  background:var(--white); border:1px solid var(--warm-border);
  border-radius:var(--radius-lg); padding:2rem; position:relative;
  transition:all var(--transition);
}
.price-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.price-card--hot { border-color:var(--gold); box-shadow:var(--shadow-glow); }
.price-badge {
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background:var(--gold-gradient); color:#fff; font-size:0.625rem;
  font-weight:700; padding:3px 14px; border-radius:var(--radius-full);
  letter-spacing:0.08em; white-space:nowrap;
}
.price-card__name { font-size:0.6875rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-on-light-sub); margin-bottom:0.75rem; }
.price-card__amount { font-family:var(--font-en); font-size:2.25rem; font-weight:800; color:var(--navy); line-height:1; }
.price-card__amount span { font-size:0.875rem; font-weight:400; color:var(--text-on-light-sub); }
.price-card__desc { font-size:0.8125rem; color:var(--text-on-light-muted); margin:0.75rem 0 1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--warm-border); }
.price-card__list { margin-bottom:1.5rem; }
.price-card__list li { display:flex; align-items:flex-start; gap:8px; font-size:0.8125rem; color:var(--text-on-light-sub); padding:5px 0; }
.price-card__list li::before { content:"\2713"; color:var(--gold); font-weight:700; flex-shrink:0; }
.price-card__btn { width:100%; text-align:center; }

/* Dark bg pricing override */
.sec--dark .price-card { background:rgba(255,255,255,0.07); border-color:rgba(255,255,255,0.18); }
.sec--dark .price-card:hover { background:rgba(255,255,255,0.09); border-color:rgba(255,255,255,0.28); }
.sec--dark .price-card--hot { border-color:var(--gold); background:rgba(197,151,91,0.08); }
.sec--dark .price-card__amount { color:#fff; }
.sec--dark .price-card__name { color:var(--gold-light); letter-spacing:0.14em; }
.sec--dark .price-card__desc { color:var(--text-on-dark); border-color:rgba(255,255,255,0.15); }
.sec--dark .price-card__list li { color:var(--text-on-dark-sub); }

/* ---------- Process / Steps ---------- */
.process { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; position:relative; }
.process::before { content:""; position:absolute; top:36px; left:12.5%; right:12.5%; height:1px; background:var(--warm-border); }
@media(max-width:768px) { .process { grid-template-columns:1fr; } .process::before { display:none; } }
.step { text-align:center; position:relative; }
.step__num {
  width:72px; height:72px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.25rem; font-family:var(--font-en); font-size:1.25rem; font-weight:800;
  background:var(--white); border:1px solid var(--warm-border); color:var(--text-on-light-muted);
  position:relative; z-index:1; transition:all var(--transition);
}
.step:hover .step__num { border-color:var(--gold); color:var(--gold); box-shadow:var(--shadow-glow); }
.step__title { font-size:0.9375rem; font-weight:700; margin-bottom:0.35rem; color:var(--text-on-light); }
.step__text { font-size:0.75rem; color:var(--text-on-light-sub); line-height:1.7; }

/* Process on dark bg */
.sec--dark .process::before { background:rgba(255,255,255,0.08); }
.sec--dark .step__num { background:var(--navy); border-color:rgba(255,255,255,0.1); color:var(--text-on-dark-muted); }
.sec--dark .step:hover .step__num { border-color:var(--gold); color:var(--gold); }
.sec--dark .step__title { color:var(--text-on-dark); }
.sec--dark .step__text { color:var(--text-on-dark-sub); }

/* ---------- Timeline ---------- */
.timeline { position:relative; padding-left:36px; }
.timeline::before { content:""; position:absolute; top:0; left:13px; bottom:0; width:1px; background:var(--warm-border); }
.tl-item { position:relative; padding-bottom:2rem; }
.tl-item:last-child { padding-bottom:0; }
.tl-dot { position:absolute; left:-29px; top:5px; width:10px; height:10px; border-radius:50%; background:var(--gold); border:2px solid var(--warm-white); box-shadow:0 0 0 2px var(--gold); }
.tl-date { font-family:var(--font-en); font-size:0.75rem; font-weight:600; color:var(--gold-dark); margin-bottom:0.15rem; }
.tl-title { font-size:0.9375rem; font-weight:700; margin-bottom:0.15rem; color:var(--text-on-light); }
.tl-text { font-size:0.8125rem; color:var(--text-on-light-sub); }

/* ---------- Info Table ---------- */
.info-tbl { width:100%; border-collapse:collapse; }
.info-tbl th,.info-tbl td { padding:1.25rem 1.5rem; text-align:left; border-bottom:1px solid var(--warm-border); font-size:0.9375rem; }
.info-tbl th { width:170px; font-weight:600; color:var(--text-on-light); background:var(--warm-gray); vertical-align:top; }
.info-tbl td { color:var(--text-on-light-sub); line-height:1.8; }
@media(max-width:768px) { .info-tbl th,.info-tbl td { display:block; width:100%; padding:0.75rem 1rem; } .info-tbl th { border-bottom:none; padding-bottom:0.25rem; } }

/* ---------- News ---------- */
.news-item {
  display:flex; align-items:flex-start; gap:1.25rem;
  padding:0.875rem 0; border-bottom:1px solid var(--warm-border);
  transition:padding-left var(--transition);
}
.news-item:hover { padding-left:0.75rem; }
/* TOPページ: 最新3件のみ表示 */
#topNewsList .news-item:nth-child(n+4) { display:none; }
.news-date { font-family:var(--font-en); font-size:0.75rem; font-weight:500; color:var(--text-on-light-muted); white-space:nowrap; min-width:90px; }
.news-tag {
  display:inline-block; font-size:0.5625rem; font-weight:600; padding:2px 8px;
  border-radius:var(--radius-full); background:rgba(185,28,28,0.08); color:var(--red); margin-right:0.75rem;
}
.news-title { font-size:0.875rem; font-weight:500; color:var(--text-on-light-sub); transition:color var(--transition); }
.news-item:hover .news-title { color:var(--gold-dark); }
@media(max-width:768px) { .news-item { flex-direction:column; gap:0.35rem; } }

/* ---------- Forms ---------- */
.form-group { margin-bottom:1.25rem; }
.form-label { display:block; font-size:0.8125rem; font-weight:600; color:var(--text-on-light); margin-bottom:0.35rem; }
.form-label .req { color:var(--red); font-size:0.6875rem; margin-left:4px; }
.form-input,.form-select,.form-textarea {
  width:100%; padding:12px 14px; border:1px solid var(--warm-border);
  border-radius:var(--radius); font-size:0.9375rem; color:var(--text-on-light);
  background:var(--white); transition:border-color var(--transition), box-shadow var(--transition);
}
.form-input:focus,.form-select:focus,.form-textarea:focus {
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-glow);
}
.form-textarea { min-height:150px; resize:vertical; }
.form-input::placeholder,.form-textarea::placeholder { color:var(--text-on-light-muted); }
.form-error { display:none; font-size:0.6875rem; color:var(--red); margin-top:0.2rem; }

/* ---------- Footer ---------- */
.footer {
  background:var(--navy); color:var(--text-on-dark-sub);
  padding:4rem 0 1.5rem; border-top:none;
}
.footer__grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,0.08); }
@media(max-width:768px) { .footer__grid { grid-template-columns:1fr; gap:2rem; } }
.footer__logo img { height:120px; width:auto; filter:brightness(0) invert(1); margin-bottom:1.5rem; }
.footer__desc { font-size:0.75rem; color:#8B9BB5; line-height:1.8; max-width:280px; }
.footer__heading { font-size:0.625rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.6); margin-bottom:1rem; }
.footer__links li { margin-bottom:0.35rem; }
.footer__links a { font-size:0.75rem; color:#8B9BB5; transition:color var(--transition); }
.footer__links a:hover { color:var(--gold); }
.footer__bottom { display:flex; justify-content:space-between; align-items:center; padding-top:1.25rem; font-size:0.6875rem; color:#6B7D96; }
@media(max-width:768px) { .footer__bottom { flex-direction:column; gap:0.5rem; text-align:center; } }

/* ---------- CTA Banner ---------- */
.cta-banner {
  position:relative; padding:clamp(4rem,10vw,7rem) 0; overflow:hidden;
  background:var(--navy); color:var(--text-on-dark);
}
.cta-banner .t-muted { color:var(--text-on-dark-sub); }
.cta-banner::before {
  content:""; position:absolute; top:-40%; left:-10%; width:500px; height:500px;
  background:radial-gradient(circle, var(--red-glow) 0%, transparent 70%); border-radius:50%;
}
.cta-banner::after {
  content:""; position:absolute; bottom:-30%; right:-10%; width:400px; height:400px;
  background:radial-gradient(circle, var(--gold-glow) 0%, transparent 70%); border-radius:50%;
}
.cta-banner .wrap { position:relative; z-index:1; }

/* ---------- Ticker ---------- */
.ticker {
  overflow:hidden; white-space:nowrap; padding:1rem 0;
  border-top:1px solid var(--warm-border); border-bottom:1px solid var(--warm-border);
  background:var(--warm-white);
}
.ticker__inner { display:inline-flex; gap:3rem; animation:ticker 30s linear infinite; }
.ticker__item {
  font-family:var(--font-en); font-size:clamp(1.5rem,4vw,2.5rem);
  font-weight:800; letter-spacing:-0.02em; color:var(--warm-border); opacity:0.6;
}
.ticker__item span { color:var(--gold); opacity:1; }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ---------- Animations ---------- */
.anim { opacity:0; transform:translateY(28px); transition:opacity 0.7s ease, transform 0.7s ease; }
.anim--left { transform:translateX(-28px); }
.anim--right { transform:translateX(28px); }
.anim--scale { transform:scale(0.96); }
.anim.is-visible { opacity:1; transform:translate(0) scale(1); }
.d1{transition-delay:.08s} .d2{transition-delay:.16s} .d3{transition-delay:.24s} .d4{transition-delay:.32s} .d5{transition-delay:.4s}

/* ---------- Activity Photo Carousel ---------- */
.activity-carousel { overflow:hidden; padding:0; }
.activity-track {
  display:flex; gap:0.75rem;
  animation:actScroll 35s linear infinite;
  width:max-content;
}
.activity-track:hover { animation-play-state:paused; }
.activity-track img {
  height:240px; width:auto; border-radius:var(--radius-lg);
  object-fit:cover; flex-shrink:0;
}
@keyframes actScroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@media(max-width:768px) {
  .activity-track img { height:160px; }
}

/* ---------- Case Study Carousel ---------- */
.cs-carousel { position:relative; overflow:hidden; padding:1.5rem 0; }
.cs-track {
  display:flex; gap:1.5rem;
  animation:csScroll 25s linear infinite;
  width:max-content;
}
.cs-track:hover { animation-play-state:paused; }

.cs-card {
  flex-shrink:0; width:420px;
  background:var(--white); border:1px solid var(--warm-border);
  border-radius:var(--radius-lg); padding:2rem;
  transition:all var(--transition); cursor:pointer;
  display:flex; flex-direction:column; justify-content:space-between;
}
.cs-card:hover { border-color:var(--gold); box-shadow:var(--shadow-lg); transform:translateY(-3px); }

.cs-card__industry {
  display:inline-block; font-size:0.5625rem; font-weight:600;
  padding:3px 10px; border-radius:var(--radius-full);
  background:rgba(197,151,91,0.1); color:var(--gold-dark);
  margin-bottom:1rem; align-self:flex-start;
}
.cs-card__quote {
  font-size:0.875rem; color:var(--text-on-light-sub); line-height:1.9;
  margin-bottom:1.25rem; flex:1;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.cs-card__quote::before { content:"\201C"; font-size:2rem; color:var(--gold); line-height:0; vertical-align:-0.5em; margin-right:4px; }
.cs-card__metric {
  background:var(--warm-white); border-radius:var(--radius); padding:0.75rem 1rem;
  margin-bottom:1.25rem; text-align:center;
}
.cs-card__metric-val {
  font-family:var(--font-en); font-size:1.25rem; font-weight:800;
  background:var(--gold-gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.cs-card__metric-sub { font-size:0.6875rem; color:var(--text-on-light-muted); }
.cs-card__footer { display:flex; align-items:center; justify-content:space-between; }
.cs-card__person { font-size:0.75rem; color:var(--text-on-light-sub); }
.cs-card__person strong { display:block; font-size:0.8125rem; color:var(--text-on-light); font-weight:600; }
.cs-card__company { font-size:0.8125rem; font-weight:700; color:var(--text-on-light); }
.cs-card__link {
  font-size:0.6875rem; font-weight:600; color:var(--gold-dark);
  display:flex; align-items:center; gap:4px;
}

@keyframes csScroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

@media(max-width:768px) {
  .cs-card { width:300px; padding:1.5rem; }
  .cs-card__quote { font-size:0.8125rem; -webkit-line-clamp:3; }
  .cs-card__metric-val { font-size:1rem; }
}

/* ==========================================================================
   RESPONSIVE — Tablet (max-width: 1024px)
   ========================================================================== */
@media(max-width:1024px) {
  :root { --header-h: 80px; }
  .header__logo img { height:80px; }

  /* Any inline 2-col grids → stack */
  .sp-col { display:flex!important; flex-direction:column!important; gap:2rem!important; }
  .sp-col>[style*="order"] { order:0!important; }
}

/* ==========================================================================
   RESPONSIVE — Mobile (max-width: 768px)
   ========================================================================== */
@media(max-width:768px) {
  :root { --header-h: 68px; }

  /* --- Header --- */
  .header__logo img { height:80px; }
  .header__nav { display:none; }
  .header__toggle { display:flex; }

  /* --- Mobile Nav Overlay --- */
  .mob-nav { padding:2rem 1.5rem; gap:1.5rem; }
  .mob-nav a { font-size:1.125rem; }

  /* --- Hero (Home) --- */
  .hero { min-height:85vh; }
  .hero__body { padding:calc(var(--header-h) + 2rem) 1.25rem 3rem; }
  .hero__kicker { font-size:0.5625rem; margin-bottom:1rem; }
  .hero__title { font-size:1.5rem; line-height:1.35; margin-bottom:1rem; }
  .hero__desc { font-size:0.8125rem; line-height:1.8; margin-bottom:1.5rem; }
  .hero__actions { flex-direction:column; gap:0.75rem; }
  .hero__actions .btn { width:100%; text-align:center; padding:16px 24px; }

  /* --- Page Hero (Subpages) --- */
  .pg-hero { padding:calc(var(--header-h) + 2rem) 0 2rem; }
  .pg-hero__title { font-size:1.75rem; }
  .pg-hero__sub { font-size:0.8125rem; }
  .breadcrumb { font-size:0.6875rem; margin-bottom:1rem; }

  /* --- Sections --- */
  .sec { padding:3rem 0; }
  .sec--sm { padding:2rem 0; }
  .wrap { padding:0 1.25rem; }

  /* --- Typography on mobile --- */
  .t-h1 { font-size:1.625rem; }
  .t-h2 { font-size:1.375rem; }
  .t-h3 { font-size:1.0625rem; }
  .t-body { font-size:0.875rem; }

  /* --- Grids → single column --- */
  .grid-2, .grid-3, .grid-4 { grid-template-columns:1fr; }
  .sp-col { display:flex!important; flex-direction:column!important; gap:1.5rem!important; }
  .sp-col>[style*="order"] { order:0!important; }
  .hide-sp { display:none!important; }

  /* --- Force inline grids to stack --- */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1.4fr"],
  [style*="grid-template-columns: 1fr 1.4fr"],
  [style*="grid-template-columns:1fr 1.8fr"],
  [style*="grid-template-columns: 1fr 1.8fr"],
  [style*="grid-template-columns:1fr 340px"],
  [style*="grid-template-columns: 1fr 340px"],
  [style*="grid-template-columns:280px 1fr"],
  [style*="grid-template-columns: 280px 1fr"] {
    display:flex!important;
    flex-direction:column!important;
    gap:2rem!important;
  }
  [style*="order:2"], [style*="order: 2"] { order:0!important; }
  [style*="order:1"], [style*="order: 1"] { order:0!important; }

  /* --- Cards --- */
  .card { padding:1.5rem; }
  .card--light { padding:1.5rem; }

  /* --- Buttons --- */
  .btn { padding:12px 24px; font-size:0.8125rem; }
  .btn--lg { padding:14px 28px; font-size:0.875rem; }

  /* --- Header CTA (hidden on mobile, shown in mob-nav instead) --- */
  .header__nav a.header__cta-btn,
  .header--solid .header__nav a.header__cta-btn,
  .header--top .header__nav a.header__cta-btn {
    display:none;
  }

  /* --- Pricing --- */
  .price-grid { grid-template-columns:1fr; gap:1.5rem; }
  .price-card { padding:1.5rem; }
  .price-card--hot { transform:none; }
  .price-card__amount { font-size:1.75rem; }

  /* --- Stats --- */
  .stats-row { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .stat { padding:1rem 0; }
  .stat__val { font-size:1.75rem; }
  .stat__lbl { font-size:0.6875rem; }

  /* --- Process / Steps --- */
  .process { grid-template-columns:1fr; gap:1.5rem; }
  .process::before { display:none; }
  .step { display:flex; align-items:center; gap:1rem; text-align:left; }
  .step__num { width:52px; height:52px; font-size:1rem; margin:0; flex-shrink:0; }
  .step__title { font-size:0.875rem; }

  /* --- Timeline --- */
  .timeline { padding-left:28px; }
  .tl-dot { left:-23px; width:8px; height:8px; }

  /* --- Info Table --- */
  .info-tbl th, .info-tbl td { display:block; width:100%; padding:0.75rem 1rem; }
  .info-tbl th { border-bottom:none; padding-bottom:0.25rem; font-size:0.8125rem; }
  .info-tbl td { font-size:0.8125rem; }

  /* --- News --- */
  .news-item { flex-direction:column; gap:0.35rem; padding:1rem 0; }
  .news-date { font-size:0.6875rem; }
  .news-title { font-size:0.8125rem; }

  /* --- Forms --- */
  .form-input, .form-select, .form-textarea { padding:10px 12px; font-size:0.875rem; }

  /* --- Ticker --- */
  .ticker { padding:0.75rem 0; }
  .ticker__item { font-size:1.125rem; }

  /* --- Footer --- */
  .footer { padding:3rem 0 1.25rem; }
  .footer__grid { grid-template-columns:1fr; gap:2rem; }
  .footer__logo { display:block; text-align:center; }
  .footer__logo img { height:160px; margin:0 auto; }
  .footer__desc { max-width:100%; }
  .footer__bottom { flex-direction:column; gap:0.5rem; text-align:center; }

  /* --- CTA Banner --- */
  .cta-banner { padding:3rem 0; }
  .cta-banner .btn { width:100%; }

  /* --- Animations: reduce motion for performance --- */
  .anim { transform:translateY(16px); }
  .anim--left { transform:translateX(-16px); }
  .anim--right { transform:translateX(16px); }

  /* --- Images in split layouts --- */
  [style*="aspect-ratio"] { aspect-ratio:16/10!important; }
  [style*="height:360px"] { height:220px!important; }
  [style*="height:340px"] { height:220px!important; }
}

/* ==========================================================================
   RESPONSIVE — Small Mobile (max-width: 480px)
   ========================================================================== */
@media(max-width:480px) {
  :root { --header-h: 60px; }
  .header__logo img { height:64px; }
  .hero__title { font-size:1.25rem; }
  .pg-hero__title { font-size:1.25rem; }
  .t-h1 { font-size:1.375rem; }
  .t-h2 { font-size:1.1875rem; }
  .stats-row { grid-template-columns:1fr 1fr; }
  .stat__val { font-size:1.5rem; }
  .wrap { padding:0 1rem; }
  .sec { padding:2.5rem 0; }
  .card { padding:1.25rem; }
  .footer__logo img { height:120px; margin:0 auto; }
}

/* ==========================================================================
   RESPONSIVE — iPhone optimization (≤480px)
   日本語テキストの自然な改行・タッチターゲット・オーバーフロー防止
   ========================================================================== */
@media(max-width:480px) {
  /* 日本語の自然な改行：句読点で折り返さない、英数字は単語単位 */
  body { word-break: normal; overflow-wrap: anywhere; line-break: strict; }
  h1, h2, h3, h4, .t-h1, .t-h2, .t-h3, .hero__title, .pg-hero__title {
    word-break: normal; overflow-wrap: break-word; line-break: strict;
  }
  /* テーブル・コード等が画面幅を超えそうな要素は横スクロール対応 */
  table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
  /* iOSのタップ強調色を抑制 */
  a, button { -webkit-tap-highlight-color: rgba(197,151,91,0.15); }

  /* 画像はみ出し防止 */
  img, video { max-width:100%; height:auto; }
  /* セクション余白の更なる最適化 */
  .pg-hero { padding:calc(var(--header-h) + 1.5rem) 0 1.75rem; }
  .pg-hero__sub { font-size:0.75rem; }
  /* CTAバナー */
  .cta-banner { padding:2.5rem 0; }
  .cta-banner .t-h2 { font-size:1.125rem; }

  /* ヒーロータイトルの強制改行を緩和 */
  .hero__title br, .pg-hero__title br { display:none; }

  /* ヒーロー文章の最大幅を画面幅に */
  .hero__desc { max-width:100% !important; }

  /* インラインスタイルで指定された最大幅を画面幅に追従させる */
  [style*="max-width:540px"], [style*="max-width: 540px"],
  [style*="max-width:560px"], [style*="max-width: 560px"],
  [style*="max-width:600px"], [style*="max-width: 600px"],
  [style*="max-width:640px"], [style*="max-width: 640px"],
  [style*="max-width:680px"], [style*="max-width: 680px"],
  [style*="max-width:700px"], [style*="max-width: 700px"] {
    max-width:100% !important;
  }

  /* 価格カード調整 */
  .price-card { padding:1.25rem; }
  .price-card__amount { font-size:1.5rem; }
  .price-feature { font-size:0.8125rem; padding:5px 0; }

  /* ニュース・カードの間隔 */
  .news-item { padding:0.875rem 0; }
  .news-title { font-size:0.8125rem; line-height:1.65; }

  /* フォーム余白（タップしやすく） */
  .form-input, .form-select, .form-textarea {
    padding:12px 14px; font-size:16px; /* 16px=iOSでズームを防ぐ */
  }

  /* ボタン配置 */
  .btn { width:auto; min-height:44px; }
  .btn--lg { min-height:52px; }

  /* フッターの所在地は読みやすく */
  .footer__links li > span { font-size:0.6875rem !important; }
}

/* ==========================================================================
   RESPONSIVE — Extra Small (≤375px / iPhone SE / mini)
   ========================================================================== */
@media(max-width:375px) {
  :root { --header-h: 56px; }
  .wrap { padding:0 0.875rem; }
  .header__logo img { height:56px; }
  .hero__title { font-size:1.125rem; }
  .pg-hero__title { font-size:1.125rem; }
  .t-h1 { font-size:1.25rem; }
  .t-h2 { font-size:1.0625rem; }
  .t-h3 { font-size:0.9375rem; }
  .price-card__amount { font-size:1.375rem; }
  .stat__val { font-size:1.25rem; }
  .footer__logo img { height:96px; }
  .label, .label--light { font-size:0.625rem; }
  .breadcrumb { font-size:0.625rem; }
}

/* ==========================================================================
   比較表の横スクロール (service.html)
   ========================================================================== */
@media(max-width:768px) {
  .compare-tbl-wrap {
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    margin:0 -1.25rem; padding:0 1.25rem 0.5rem;
    /* スクロールヒント */
    background:linear-gradient(90deg, transparent 0, transparent calc(100% - 24px), rgba(15,27,45,0.05) 100%);
  }
  .compare-tbl-wrap .compare-tbl { min-width:560px; display:table; overflow:visible; }
  .compare-tbl-wrap::after {
    content:"← 横にスクロール →"; display:block;
    text-align:center; font-size:0.6875rem; color:var(--text-on-light-muted);
    padding-top:0.5rem; opacity:0.7;
  }
}
