/* =============================================================
   Drum School Woody — v3 Responsive (2026-05-27)
   - Aesop / Hermès / Apple landing 路線
   - 純白 / 極細ヘアライン / モノクロUI / 直角カード / Subtle motion
   - 3メディアクエリ: desktop 1280+ / tablet 768-1279 / mobile -767
   ============================================================= */

/* ---------- Reset / Base ---------- */
body.v3-page {
  margin: 0;
  padding: 0;
  background: #fff;
  color: #0a0a0a;
  font-family: "Helvetica Neue", "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.75;
  letter-spacing: 0.04em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt";
}

body.v3-page * { box-sizing: border-box; }
body.v3-page img { max-width: 100%; display: block; }
body.v3-page a { color: inherit; text-decoration: none; }

/* ---------- Skip link ---------- */
body.v3-page .skip-link {
  position: absolute; left: -9999px; top: -9999px;
}
body.v3-page .skip-link:focus { left: 16px; top: 16px; z-index: 1000; background:#fff; padding:8px 16px; border:1px solid #000; }

/* ---------- Nav (fixed minimal, centered like footer) — global scope so city-page pages use it too ---------- */
.v3-nav,
body.city-page .v3-nav,
body.luxe .v3-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  padding: 15px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 9px;
  z-index: 100;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 0.5px solid rgba(0,0,0,0.08);
}
.v3-logo {
  font-size: 11px;
  letter-spacing: 0.5em;
  font-weight: 400;
  display: flex; gap: 0;
  /* 0.5em の右余白を相殺して光学的に中央へ */
  margin-left: 0.5em;
}
.v3-logo span { display:inline-block; }
.v3-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4px 0;
}
.v3-menu a {
  padding: 0 13px;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  font-weight: 400;
  color: #0a0a0a;
  transition: opacity .2s ease;
  white-space: nowrap;
}
.v3-menu a:hover { opacity: 0.55; }
@media (max-width: 767px) {
  .v3-nav { padding: 12px 14px; gap: 7px; }
  .v3-menu a { padding: 0 9px; font-size: 10px; letter-spacing: 0.14em; }
}

/* ---------- Eyebrow / typography ---------- */
.v3-eyebrow {
  font-size: 10px;
  letter-spacing: 0.42em;
  font-weight: 400;
  color: rgba(0,0,0,0.55);
  margin: 0 0 28px;
  text-transform: uppercase;
}
.v3-h1 {
  font-size: clamp(36px, 6vw, 76px);
  line-height: 1.15;
  font-weight: 200;
  letter-spacing: 0.06em;
  margin: 0 0 24px;
}
.v3-h2 {
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.25;
  font-weight: 200;
  letter-spacing: 0.08em;
  margin: 0 0 36px;
}
.v3-tagline {
  font-size: clamp(13px, 1.4vw, 16px);
  letter-spacing: 0.12em;
  font-weight: 300;
  line-height: 1.9;
  color: rgba(0,0,0,0.7);
  margin: 0 0 48px;
}
.v3-note {
  font-size: 12.5px;
  letter-spacing: 0.1em;
  color: rgba(0,0,0,0.55);
  font-weight: 300;
}

/* ---------- Hero ---------- */
.v3-hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  padding-top: 64px; /* nav clearance */
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.v3-hero-image {
  position: relative;
  width: 100%;
  flex: 1;
  min-height: 60vh;
}
.v3-hero-image picture,
.v3-hero-image img {
  width: 100%; height: 100%;
  position: absolute; inset: 0;
  object-fit: cover;
  object-position: center 22%;
}
/* dark gradient overlay for legibility (mobile/tablet only — desktop has split layout) */
.v3-hero-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.18) 35%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
.v3-hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 8vw 14vh;
  pointer-events: none;
  z-index: 2;
}
.v3-hero-content > * { pointer-events: auto; }
.v3-hero-content .v3-h1 {
  color: #fff;
  text-shadow: 0 1px 16px rgba(0,0,0,0.35);
}
.v3-hero-content .v3-tagline {
  color: rgba(255,255,255,0.94);
  text-shadow: 0 1px 8px rgba(0,0,0,0.35);
}
.v3-hero-content .v3-eyebrow {
  color: rgba(255,255,255,0.85);
  text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

@media (min-width: 1280px) {
  .v3-hero {
    min-height: 92vh;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    align-items: stretch;
    padding-top: 0;
  }
  .v3-hero-image {
    grid-column: 2 / 3;
    grid-row: 1;
    min-height: 92vh;
  }
  .v3-hero-image::after {
    display: none; /* no overlay on desktop split layout */
  }
  .v3-hero-image img { object-position: center 42%; }
  .v3-hero-content {
    grid-column: 1 / 2;
    grid-row: 1;
    position: relative;
    inset: auto;
    padding: 0 0 0 9vw;
    align-self: center;
    justify-content: center;
    max-width: 620px;
  }
  .v3-hero-content .v3-h1,
  .v3-hero-content .v3-tagline,
  .v3-hero-content .v3-eyebrow {
    color: #0a0a0a;
    text-shadow: none;
  }
  .v3-hero-content .v3-tagline { color: rgba(0,0,0,0.7); }
  .v3-hero-content .v3-eyebrow { color: rgba(0,0,0,0.55); }
}

@media (max-width: 767px) {
  .v3-hero {
    min-height: 92vh;
  }
  .v3-hero-image img { object-position: center 18%; }
  .v3-hero-content {
    padding: 0 24px 12vh;
    text-align: center;
    align-items: center;
  }
}

/* ---------- CTA ---------- */
.v3-cta {
  display: inline-block;
  padding: 18px 56px;
  border: 0.5px solid #0a0a0a;
  font-size: 11.5px;
  letter-spacing: 0.36em;
  font-weight: 400;
  text-transform: uppercase;
  transition: all .25s ease;
  background: transparent;
  color: #0a0a0a;
}
.v3-cta:hover {
  background: #0a0a0a;
  color: #fff;
}
.v3-cta--ghost {
  border: 0.5px solid rgba(255,255,255,0.85);
  color: #fff;
}
.v3-cta--ghost:hover {
  background: #fff;
  color: #0a0a0a;
}

.v3-hero .v3-cta {
  margin-top: 8px;
}
@media (max-width: 1279px) {
  .v3-hero .v3-cta {
    border-color: rgba(255,255,255,0.92);
    color: #fff;
    background: rgba(0,0,0,0.18);
    backdrop-filter: blur(2px);
  }
  .v3-hero .v3-cta:hover {
    background: rgba(255,255,255,0.95);
    color: #0a0a0a;
  }
}

/* ---------- Section base ---------- */
.v3-section {
  padding: 120px 40px;
  max-width: 1440px;
  margin: 0 auto;
  text-align: center;
}
.v3-section--wide {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 767px) {
  .v3-section { padding: 80px 24px; }
}

/* ---------- Stats (numbers as hero) ---------- */
.v3-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 140px 40px;
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}
.v3-stat {
  padding: 0 32px;
  border-right: 0.5px solid rgba(0,0,0,0.12);
}
.v3-stat:last-child { border-right: none; }
.v3-stat-num {
  display: block;
  font-size: clamp(34px, 4.6vw, 64px);
  font-weight: 100;
  line-height: 1;
  letter-spacing: 0.01em;
  margin-bottom: 18px;
  font-feature-settings: "tnum";
}
.v3-stat-num sup {
  font-size: 0.45em;
  vertical-align: super;
  margin-left: 4px;
}
.v3-stat-label {
  display: block;
  font-size: 10.5px;
  letter-spacing: 0.32em;
  font-weight: 400;
  color: rgba(0,0,0,0.55);
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .v3-stats {
    grid-template-columns: 1fr;
    padding: 80px 24px;
    gap: 56px;
  }
  .v3-stat {
    border-right: none;
    border-bottom: 0.5px solid rgba(0,0,0,0.12);
    padding-bottom: 56px;
  }
  .v3-stat:last-child { border-bottom: none; padding-bottom: 0; }
}

/* ---------- Lesson grid ---------- */
.v3-lesson-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1200px;
  margin: 0 auto;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.v3-lesson-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1 / 1.05;
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  text-align: center;
  padding: 28px;
  transition: background-color .3s ease;
  position: relative;
}
.v3-lesson-card:hover {
  background-color: #0a0a0a;
  color: #fff;
}
.v3-lesson-card-region {
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 200;
  letter-spacing: 0.1em;
  margin: 0;
}
.v3-lesson-card-meta {
  font-size: 10.5px;
  letter-spacing: 0.28em;
  color: rgba(0,0,0,0.55);
  margin-top: 18px;
  transition: color .3s ease;
}
.v3-lesson-card:hover .v3-lesson-card-meta { color: rgba(255,255,255,0.7); }
@media (max-width: 1023px) {
  .v3-lesson-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .v3-lesson-grid { grid-template-columns: 1fr; }
  .v3-lesson-card { aspect-ratio: 16 / 7; }
}

/* ---------- Atmosphere (fullwidth photo) ---------- */
.v3-atmosphere {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #fafafa;
}
.v3-atmosphere img {
  width: 100%;
  display: block;
  height: auto;
}
.v3-atmosphere--tall {
  height: 60vh;
  min-height: 480px;
}
.v3-atmosphere--tall img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 767px) {
  .v3-atmosphere--tall {
    height: 48vh;
    min-height: 360px;
  }
}

/* ---------- Instructor ---------- */
.v3-instructor {
  padding: 160px 40px;
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}
.v3-instructor-bio {
  font-size: clamp(14px, 1.5vw, 17px);
  line-height: 2;
  letter-spacing: 0.08em;
  font-weight: 300;
  color: rgba(0,0,0,0.78);
  max-width: 560px;
  margin: 0 auto 56px;
}
@media (max-width: 767px) {
  .v3-instructor { padding: 100px 24px; }
}

/* ---------- Link (text CTA) ---------- */
.v3-link {
  display: inline-block;
  font-size: 11.5px;
  letter-spacing: 0.32em;
  font-weight: 400;
  text-transform: uppercase;
  padding: 8px 0;
  border-bottom: 0.5px solid #0a0a0a;
  transition: opacity .2s ease;
}
.v3-link:hover { opacity: 0.55; }

/* ---------- YouTube grid ---------- */
.v3-youtube-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  max-width: 1280px;
  margin: 64px auto 0;
}
.v3-youtube-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f5f5f5;
  transition: opacity .25s ease;
}
.v3-youtube-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.v3-youtube-thumb:hover { opacity: 0.85; }
.v3-youtube-thumb:hover img { transform: scale(1.04); }
@media (max-width: 1023px) {
  .v3-youtube-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .v3-youtube-grid { grid-template-columns: repeat(2, 1fr); gap: 2px; }
}

/* ---------- Footer ---------- */
.v3-footer {
  padding: 88px 40px 56px;
  text-align: center;
  border-top: 0.5px solid rgba(0,0,0,0.08);
  margin-top: 80px;
}
.v3-footer-mark {
  font-size: 11px;
  letter-spacing: 0.5em;
  font-weight: 400;
  margin: 0 0 14px;
}
.v3-footer-name {
  font-size: 10.5px;
  letter-spacing: 0.28em;
  color: rgba(0,0,0,0.55);
  margin: 0;
}

/* ---------- Reveal (subtle motion) ---------- */
body.v3-page .v3-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}
body.v3-page .v3-reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  body.v3-page .v3-reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- Final CTA ---------- */
.v3-final-cta {
  padding: 160px 40px;
  text-align: center;
  background: #fafafa;
}
.v3-final-cta .v3-h2 { margin-bottom: 48px; }
@media (max-width: 767px) {
  .v3-final-cta { padding: 100px 24px; }
}

/* ---------- Hero CTA row (2 buttons side-by-side) ---------- */
.v3-hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 8px;
}
@media (min-width: 1280px) {
  .v3-hero .v3-hero-cta-row {
    justify-content: flex-start;
  }
}

/* CTA variants — primary は黒地白文字、ghost も必ずボーダー付きで「ボタン」と認識される */
.v3-cta--primary {
  background: #0a0a0a !important;
  color: #fff !important;
  border-color: #0a0a0a !important;
}
.v3-cta--primary:hover {
  background: #fff !important;
  color: #0a0a0a !important;
  border-color: #0a0a0a !important;
}
.v3-cta--ghost {
  background: transparent !important;
  color: #0a0a0a !important;
  border: 0.5px solid #0a0a0a !important;
}
.v3-cta--ghost:hover {
  background: #0a0a0a !important;
  color: #fff !important;
}

/* hero (image overlaid) — モバイル/タブレットでは白文字+overlay */
@media (max-width: 1279px) {
  .v3-hero .v3-cta--primary {
    background: #fff !important;
    color: #0a0a0a !important;
    border-color: #fff !important;
  }
  .v3-hero .v3-cta--primary:hover {
    background: transparent !important;
    color: #fff !important;
    border-color: #fff !important;
  }
  .v3-hero .v3-cta--ghost {
    background: transparent !important;
    color: #fff !important;
    border: 0.5px solid rgba(255,255,255,0.92) !important;
  }
  .v3-hero .v3-cta--ghost:hover {
    background: #fff !important;
    color: #0a0a0a !important;
    border-color: #fff !important;
  }
}

/* ---------- Value Proposition Grid (Why Woody) ---------- */
.v3-value-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  max-width: 1080px;
  margin: 64px auto 0;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.v3-value-card {
  padding: 56px 48px;
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  text-align: left;
  background: #fff;
}
.v3-value-num {
  font-size: 11px;
  letter-spacing: 0.4em;
  color: rgba(0,0,0,0.4);
  margin: 0 0 24px;
  font-weight: 400;
}
.v3-value-h3 {
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 300;
  letter-spacing: 0.08em;
  margin: 0 0 20px;
  line-height: 1.4;
  color: #0a0a0a;
}
.v3-value-body {
  font-size: 13.5px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: rgba(0,0,0,0.78);
  margin: 0;
  font-weight: 300;
}
@media (max-width: 767px) {
  .v3-value-grid { grid-template-columns: 1fr; }
  .v3-value-card { padding: 40px 28px; }
}

/* ---------- Process (3-step) ---------- */
.v3-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  max-width: 1080px;
  margin: 64px auto 0;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.v3-process-card {
  padding: 48px 36px;
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  text-align: center;
  background: #fff;
}
.v3-process-num {
  font-size: 11px;
  letter-spacing: 0.4em;
  color: rgba(0,0,0,0.4);
  margin: 0 0 20px;
  font-weight: 400;
}
.v3-process-h3 {
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 300;
  letter-spacing: 0.08em;
  margin: 0 0 20px;
  line-height: 1.4;
  color: #0a0a0a;
}
.v3-process-body {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: rgba(0,0,0,0.78);
  margin: 0;
  font-weight: 300;
  text-align: left;
}
@media (max-width: 767px) {
  .v3-process-grid { grid-template-columns: 1fr; }
  .v3-process-card { padding: 36px 24px; }
}

/* ---------- FAQ digest ---------- */
.v3-faq {
  max-width: 720px;
  margin: 48px auto 0;
  text-align: left;
}
.v3-faq details {
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  padding: 24px 0;
}
.v3-faq summary {
  cursor: pointer;
  list-style: none;
  font-size: 15px;
  letter-spacing: 0.06em;
  font-weight: 400;
  color: #0a0a0a;
  padding-right: 32px;
  position: relative;
}
.v3-faq summary::-webkit-details-marker { display: none; }
.v3-faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: -2px;
  font-size: 22px;
  font-weight: 200;
  color: rgba(0,0,0,0.4);
  transition: transform 0.2s ease;
}
.v3-faq details[open] summary::after { content: "−"; }
.v3-faq details p {
  margin-top: 16px;
  font-size: 13.5px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: rgba(0,0,0,0.75);
  font-weight: 300;
}

/* ---------- Footer links ---------- */
.v3-footer-links {
  margin: 28px 0 0 !important;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}
.v3-footer-links a {
  font-size: 10.5px;
  letter-spacing: 0.28em;
  color: rgba(0,0,0,0.55);
  text-transform: uppercase;
  transition: color 0.2s ease;
}
.v3-footer-links a:hover { color: #0a0a0a; }

/* ---------- Method grid ---------- */
.v3-method-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  max-width: 1080px;
  margin: 0 auto;
  text-align: left;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.v3-method-item {
  padding: 60px 56px;
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
}
.v3-method-num {
  font-size: 11px;
  letter-spacing: 0.4em;
  color: rgba(0,0,0,0.4);
  margin: 0 0 24px;
  font-weight: 400;
}
.v3-method-h3 {
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 300;
  letter-spacing: 0.08em;
  margin: 0 0 20px;
  line-height: 1.4;
}
.v3-method-body {
  font-size: 13.5px;
  line-height: 2;
  letter-spacing: 0.06em;
  color: rgba(0,0,0,0.72);
  margin: 0;
}
@media (max-width: 767px) {
  .v3-method-grid {
    grid-template-columns: 1fr;
  }
  .v3-method-item { padding: 48px 32px; }
}

/* ---------- Voices ---------- */
.v3-voices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  max-width: 1280px;
  margin: 0 auto;
  text-align: left;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.v3-voice {
  margin: 0;
  padding: 40px 36px 36px;
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  display: flex;
  flex-direction: column;
  background: #fff;
}
.v3-voice-stars {
  font-size: 11px;
  letter-spacing: 0.18em;
  color: #0a0a0a;
  margin: 0 0 18px;
}
.v3-voice blockquote {
  margin: 0 0 24px;
  padding: 0;
  font-size: 13.5px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: rgba(0,0,0,0.82);
  font-weight: 300;
  flex: 1;
}
.v3-voice figcaption {
  font-size: 10.5px;
  letter-spacing: 0.3em;
  color: rgba(0,0,0,0.5);
  text-transform: none;
  padding-top: 16px;
  border-top: 0.5px solid rgba(0,0,0,0.12);
}
@media (max-width: 1023px) {
  .v3-voices { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .v3-voices { grid-template-columns: 1fr; }
  .v3-voice { padding: 32px 24px 28px; }
}

/* ---------- Utilities ---------- */
.v3-divider {
  width: 1px;
  height: 56px;
  background: rgba(0,0,0,0.16);
  margin: 0 auto;
  border: 0;
}

/* =====================================================
   city-page (luxe) — visual unification with v3
   既存13ページのHTMLはそのままに、CSSで v3 と同じ
   タイポ・余白・カード・CTA に統一する
   ===================================================== */

body.city-page.luxe {
  font-family: "Helvetica Neue", "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", sans-serif !important;
  font-weight: 300 !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  letter-spacing: 0.04em !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt";
  color: #0a0a0a !important;
  background: #fff !important;
  padding-top: 0 !important;
}

/* city-hero — nav clearance + v3 hero look */
body.city-page.luxe .city-hero {
  padding-top: 140px !important;
  padding-bottom: 80px !important;
  background: #fff !important;
  text-align: center !important;
}
body.city-page.luxe .city-hero-inner {
  max-width: 880px !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
  text-align: center !important;
}
body.city-page.luxe .woody-icon {
  display: block !important;
  margin: 0 auto 36px !important;
  color: #0a0a0a !important;
  width: 44px !important;
  height: 44px !important;
}
body.city-page.luxe .city-eyebrow {
  font-size: 10px !important;
  letter-spacing: 0.42em !important;
  font-weight: 400 !important;
  color: rgba(0,0,0,0.55) !important;
  margin: 0 0 28px !important;
  text-transform: uppercase !important;
}
body.city-page.luxe .city-h1 {
  font-size: clamp(28px, 4.4vw, 52px) !important;
  line-height: 1.25 !important;
  font-weight: 200 !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 24px !important;
  color: #0a0a0a !important;
  white-space: normal !important;
}
body.city-page.luxe h2,
body.city-page.luxe .city-section h2 {
  font-size: clamp(24px, 3.4vw, 40px) !important;
  line-height: 1.3 !important;
  font-weight: 200 !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 36px !important;
}
body.city-page.luxe .city-tagline {
  font-size: clamp(13px, 1.4vw, 16px) !important;
  letter-spacing: 0.18em !important;
  font-weight: 300 !important;
  color: rgba(0,0,0,0.7) !important;
  margin: 0 0 24px !important;
}
body.city-page.luxe .city-intro {
  font-size: 14.5px !important;
  line-height: 2 !important;
  letter-spacing: 0.06em !important;
  font-weight: 300 !important;
  color: rgba(0,0,0,0.82) !important;
  margin: 0 auto 28px !important;
  max-width: 720px !important;
}
body.city-page.luxe .city-note {
  font-size: 13px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.06em !important;
  color: rgba(0,0,0,0.6) !important;
  font-weight: 300 !important;
  margin: 16px auto !important;
  max-width: 720px !important;
}
body.city-page.luxe .city-meta {
  font-size: 11.5px !important;
  letter-spacing: 0.2em !important;
  color: rgba(0,0,0,0.5) !important;
  font-weight: 300 !important;
  margin: 16px 0 !important;
}

/* sections */
body.city-page.luxe .city-section {
  padding: 100px 32px !important;
  max-width: 1080px !important;
  margin: 0 auto !important;
  text-align: center !important;
  background: #fff !important;
}
body.city-page.luxe .city-section h2 {
  text-align: center !important;
}
body.city-page.luxe .city-bullets {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 auto !important;
  max-width: 720px !important;
  text-align: left !important;
}
body.city-page.luxe .city-bullets li {
  padding: 18px 0 18px 28px !important;
  border-bottom: 0.5px solid rgba(0,0,0,0.1) !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.05em !important;
  color: rgba(0,0,0,0.82) !important;
  position: relative !important;
  list-style: none !important;
  font-weight: 300 !important;
}
body.city-page.luxe .city-bullets li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 26px !important;
  width: 14px !important;
  height: 0.5px !important;
  background: #0a0a0a !important;
}
body.city-page.luxe .city-bullets li:last-child {
  border-bottom: none !important;
}

/* CTA */
body.city-page.luxe .city-cta {
  display: inline-block !important;
  padding: 18px 56px !important;
  border: 0.5px solid #0a0a0a !important;
  background: transparent !important;
  color: #0a0a0a !important;
  font-size: 11.5px !important;
  letter-spacing: 0.36em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  margin: 16px 8px !important;
  cursor: pointer !important;
}
body.city-page.luxe .city-cta:hover {
  background: #0a0a0a !important;
  color: #fff !important;
}

/* details/summary (FAQページ) */
body.city-page.luxe details {
  border-bottom: 0.5px solid rgba(0,0,0,0.12) !important;
  padding: 24px 0 !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  text-align: left !important;
}
body.city-page.luxe details summary {
  cursor: pointer !important;
  list-style: none !important;
  font-size: 15px !important;
  letter-spacing: 0.06em !important;
  font-weight: 400 !important;
  color: #0a0a0a !important;
  padding-right: 32px !important;
  position: relative !important;
  font-family: inherit !important;
}
body.city-page.luxe details summary::-webkit-details-marker { display: none !important; }
body.city-page.luxe details summary::after {
  content: "+" !important;
  position: absolute !important;
  right: 0 !important;
  top: -2px !important;
  font-size: 22px !important;
  font-weight: 200 !important;
  color: rgba(0,0,0,0.4) !important;
  transition: transform 0.2s ease !important;
}
body.city-page.luxe details[open] summary::after {
  content: "−" !important;
}
body.city-page.luxe details p {
  margin-top: 16px !important;
  font-size: 13.5px !important;
  line-height: 2 !important;
  letter-spacing: 0.05em !important;
  color: rgba(0,0,0,0.75) !important;
  font-weight: 300 !important;
}

/* luxe-card */
body.city-page.luxe .luxe-card {
  border: 0.5px solid rgba(0,0,0,0.12) !important;
  padding: 64px 56px !important;
  max-width: 1080px !important;
  margin: 60px auto !important;
  background: #fff !important;
  border-radius: 0 !important;
  transition: border-color 0.3s ease !important;
}
body.city-page.luxe .luxe-card:hover {
  border-color: rgba(0,0,0,0.28) !important;
}

@media (max-width: 767px) {
  body.city-page.luxe .city-hero { padding-top: 110px !important; padding-bottom: 60px !important; }
  body.city-page.luxe .city-hero-inner { padding: 0 24px !important; }
  body.city-page.luxe .city-section { padding: 60px 24px !important; }
  body.city-page.luxe .luxe-card { padding: 40px 28px !important; margin: 40px 12px !important; }
}

/* site-footer-loop (既存フッター) を v3-footer 風に */
body.city-page.luxe .site-footer-loop {
  padding: 88px 40px 56px !important;
  text-align: center !important;
  border-top: 0.5px solid rgba(0,0,0,0.08) !important;
  margin-top: 80px !important;
  background: #fff !important;
}
body.city-page.luxe .site-footer-inner {
  max-width: none !important;
  text-align: center !important;
}
body.city-page.luxe .site-footer-mark {
  font-size: 11px !important;
  letter-spacing: 0.5em !important;
  font-weight: 400 !important;
  margin: 0 0 14px !important;
  color: #0a0a0a !important;
}
body.city-page.luxe .site-footer-name {
  font-size: 10.5px !important;
  letter-spacing: 0.28em !important;
  color: rgba(0,0,0,0.55) !important;
  margin: 0 !important;
}

/* reveal animation (既に scroll-reveal.js が制御) — v3 と同じカーブ */
body.city-page.luxe .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}
body.city-page.luxe .reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  body.city-page.luxe .reveal { opacity: 1; transform: none; transition: none; }
}

/* payment-card-grid (payment page) */
body.city-page.luxe .payment-card-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 0 !important;
  max-width: 1080px !important;
  margin: 48px auto !important;
  border-top: 0.5px solid rgba(0,0,0,0.12) !important;
  border-left: 0.5px solid rgba(0,0,0,0.12) !important;
}
body.city-page.luxe .payment-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 36px 24px !important;
  border-right: 0.5px solid rgba(0,0,0,0.12) !important;
  border-bottom: 0.5px solid rgba(0,0,0,0.12) !important;
  background: #fff !important;
  text-decoration: none !important;
  color: #0a0a0a !important;
  transition: background-color 0.3s ease !important;
  border-radius: 0 !important;
  text-align: center !important;
  min-height: 180px !important;
}
body.city-page.luxe .payment-card:hover {
  background: #0a0a0a !important;
  color: #fff !important;
}
body.city-page.luxe .payment-card-region {
  font-size: 18px !important;
  font-weight: 200 !important;
  letter-spacing: 0.16em !important;
  margin-bottom: 8px !important;
}
body.city-page.luxe .payment-card-time {
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  color: rgba(0,0,0,0.55) !important;
  margin-bottom: 12px !important;
  transition: color 0.3s ease !important;
}
body.city-page.luxe .payment-card:hover .payment-card-time {
  color: rgba(255,255,255,0.7) !important;
}
body.city-page.luxe .payment-card-price {
  font-size: 24px !important;
  font-weight: 200 !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 16px !important;
}
body.city-page.luxe .payment-card-cta {
  font-size: 10px !important;
  letter-spacing: 0.32em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,0.55) !important;
  transition: color 0.3s ease !important;
  padding-top: 12px !important;
  border-top: 0.5px solid rgba(0,0,0,0.12) !important;
  width: 100% !important;
}
body.city-page.luxe .payment-card:hover .payment-card-cta {
  color: rgba(255,255,255,0.7) !important;
  border-top-color: rgba(255,255,255,0.18) !important;
}
@media (max-width: 600px) {
  body.city-page.luxe .payment-card-grid { grid-template-columns: 1fr !important; }
}

/* form inputs (trial pages) */
body.city-page.luxe input[type="text"],
body.city-page.luxe input[type="email"],
body.city-page.luxe input[type="tel"],
body.city-page.luxe textarea,
body.city-page.luxe select {
  width: 100% !important;
  padding: 14px 16px !important;
  border: 0.5px solid rgba(0,0,0,0.2) !important;
  border-radius: 0 !important;
  background: #fff !important;
  font-size: 16px !important;
  font-family: inherit !important;
  font-weight: 300 !important;
  letter-spacing: 0.03em !important;
  transition: border-color 0.2s ease !important;
}
body.city-page.luxe input:focus,
body.city-page.luxe textarea:focus,
body.city-page.luxe select:focus {
  outline: none !important;
  border-color: #0a0a0a !important;
}
body.city-page.luxe label {
  display: block !important;
  font-size: 11px !important;
  letter-spacing: 0.28em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,0.6) !important;
  margin-bottom: 8px !important;
  margin-top: 24px !important;
}
body.city-page.luxe button[type="submit"] {
  display: inline-block !important;
  padding: 18px 56px !important;
  border: 0.5px solid #0a0a0a !important;
  background: transparent !important;
  color: #0a0a0a !important;
  font-size: 11.5px !important;
  letter-spacing: 0.36em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  margin-top: 32px !important;
}
body.city-page.luxe button[type="submit"]:hover {
  background: #0a0a0a !important;
  color: #fff !important;
}

/* ======================================================
   CENTERING — 中央そろえ徹底(全要素実描画幅での誤差ゼロ目標)
   ====================================================== */

/* All v3 sections: 必ず中央コンテナ */
body.v3-page .v3-section,
body.v3-page .v3-stats,
body.v3-page .v3-instructor,
body.v3-page .v3-final-cta {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* All v3 inner content: 中央そろえ強制 */
body.v3-page .v3-section > *,
body.v3-page .v3-instructor > *,
body.v3-page .v3-final-cta > * {
  margin-left: auto;
  margin-right: auto;
}

/* Eyebrow / headings / taglines: 完全中央 */
body.v3-page .v3-eyebrow,
body.v3-page .v3-h1,
body.v3-page .v3-h2,
body.v3-page .v3-tagline,
body.v3-page .v3-note {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Tagline / note の幅制御 */
body.v3-page .v3-tagline {
  max-width: 720px;
}
body.v3-page .v3-note {
  max-width: 720px;
}

/* Lesson grid: 必ず中央 */
body.v3-page .v3-lesson-grid {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Value / process / voices グリッドも */
body.v3-page .v3-value-grid,
body.v3-page .v3-process-grid,
body.v3-page .v3-voices,
body.v3-page .v3-youtube-grid,
body.v3-page .v3-faq {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Stats grid: 各 stat も内部中央 */
body.v3-page .v3-stat {
  text-align: center !important;
}
body.v3-page .v3-stat-num,
body.v3-page .v3-stat-label {
  display: block !important;
  text-align: center !important;
}

/* Hero CTA row: モバイル時は中央, デスクトップ時は左寄せ(コピーに合わせる) */
body.v3-page .v3-hero .v3-hero-cta-row { justify-content: center; }
@media (min-width: 1280px) {
  body.v3-page .v3-hero .v3-hero-cta-row { justify-content: flex-start; }
}

/* city-page also: extra center enforcement */
body.city-page.luxe .city-section,
body.city-page.luxe .city-hero {
  margin-left: auto !important;
  margin-right: auto !important;
}
body.city-page.luxe .city-section > h2,
body.city-page.luxe .city-section > p,
body.city-page.luxe .city-section > .city-eyebrow {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* footer is centered */
body.v3-page .v3-footer,
body.city-page.luxe .site-footer-loop {
  text-align: center !important;
}

/* ============================================================
   2026-06 仕上げ: ヘッダーCTA / フッター拡充 / 中央hero / イラスト
   ============================================================ */

/* --- フッター: 法務リンク + コピーライト --- */
.v3-footer-legal {
  margin: 22px 0 0;
  display: flex; gap: 22px;
  justify-content: center; flex-wrap: wrap;
}
.v3-footer-legal a {
  font-size: 10px; letter-spacing: 0.2em;
  color: rgba(0,0,0,0.42); transition: color .2s ease;
}
.v3-footer-legal a:hover { color: #0a0a0a; }
.v3-footer-copy {
  margin: 24px 0 0;
  font-size: 10px; letter-spacing: 0.24em;
  color: rgba(0,0,0,0.38);
}

/* ============================================================
   中央そろえ Hero（丸い小さな顔写真・左右を贅沢に）
   ============================================================ */
body.v3-page .v3-hero--center {
  display: block;
  min-height: 0;
  padding: 150px 8vw 112px;
  text-align: center;
  overflow: visible;
}
body.v3-page .v3-hero--center .v3-hero-inner {
  max-width: 680px;
  margin: 0 auto;
  display: flex; flex-direction: column; align-items: center;
}
body.v3-page .v3-hero--center .v3-hero-portrait {
  width: 132px; height: 132px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 40px;
  box-shadow: 0 6px 30px rgba(0,0,0,0.10);
}
body.v3-page .v3-hero--center .v3-hero-portrait img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 26%;
}
body.v3-page .v3-hero--center .v3-h1,
body.v3-page .v3-hero--center .v3-tagline,
body.v3-page .v3-hero--center .v3-eyebrow { color: #0a0a0a; text-shadow: none; }
/* タイトルは1行に固定（句読点で中央が崩れて見えないように） */
body.v3-page .v3-hero--center .v3-h1 {
  font-size: clamp(30px, 7vw, 60px);
  white-space: nowrap;
  letter-spacing: 0.04em;
}
body.v3-page .v3-hero--center .v3-tagline { color: rgba(0,0,0,0.7); }
body.v3-page .v3-hero--center .v3-eyebrow { color: rgba(0,0,0,0.55); }
body.v3-page .v3-hero--center .v3-hero-cta-row { justify-content: center !important; margin-top: 18px; }
/* 中央heroはどの幅でも黒文字ボタン（白背景に映えるように上書き） */
body.v3-page .v3-hero--center .v3-cta--primary { background:#0a0a0a !important; color:#fff !important; border-color:#0a0a0a !important; }
body.v3-page .v3-hero--center .v3-cta--primary:hover { background:#fff !important; color:#0a0a0a !important; border-color:#0a0a0a !important; }
body.v3-page .v3-hero--center .v3-cta--ghost { background:transparent !important; color:#0a0a0a !important; border:0.5px solid #0a0a0a !important; }
body.v3-page .v3-hero--center .v3-cta--ghost:hover { background:#0a0a0a !important; color:#fff !important; }
@media (max-width: 767px) {
  body.v3-page .v3-hero--center { padding: 116px 24px 84px; }
  body.v3-page .v3-hero--center .v3-hero-portrait { width: 112px; height: 112px; margin-bottom: 32px; }
}

/* ============================================================
   ミニマル・イラスト（細線モノクロのセクションアイコン）
   ============================================================ */
.v3-ill {
  display: block;
  width: 40px; height: 40px;
  margin: 0 auto 22px;
  color: #0a0a0a;
}
.v3-ill svg { width: 100%; height: 100%; display: block; }
/* カード内アイコンは番号の近くに小さく */
.v3-card-ill {
  display: block; width: 30px; height: 30px;
  margin: 0 0 18px; color: #0a0a0a;
}
.v3-process-card .v3-card-ill { margin: 0 auto 18px; }
.v3-card-ill svg { width: 100%; height: 100%; display: block; }

/* ============================================================
   2026-06-01b 仕上げ第2弾
   ============================================================ */

/* 1. カードの中身も中央そろえ（価値カード/ステップ） */
.v3-value-card,
.v3-value-card .v3-value-body,
.v3-process-card,
.v3-process-card .v3-process-body { text-align: center !important; }
.v3-card-ill { margin-left: auto !important; margin-right: auto !important; }

/* 3. FAQ: 「＋」を廃止し常時オープン・中央そろえ（押さなくても答えが見える） */
.v3-faq summary::after,
body.city-page .city-section details summary::after { content: "" !important; display: none !important; }
.v3-faq summary,
body.city-page .city-section details summary {
  cursor: default !important;
  pointer-events: none !important;
  text-align: center !important;
  padding-right: 0 !important;
  list-style: none !important;
}
.v3-faq details, .v3-faq details p,
body.city-page .city-section details,
body.city-page .city-section details p { text-align: center !important; }
.v3-faq details[open], body.city-page .city-section details[open] { }

/* 4. レッスン料金表（場所ごとに60分・120分をまとめる） */
.lesson-price-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 0;
  max-width: 1120px;
  margin: 48px auto 0;
  border-top: 0.5px solid rgba(0,0,0,0.12);
  border-left: 0.5px solid rgba(0,0,0,0.12);
}
.lesson-price-card {
  border-right: 0.5px solid rgba(0,0,0,0.12);
  border-bottom: 0.5px solid rgba(0,0,0,0.12);
  padding: 34px 20px;
  text-align: center;
}
.lesson-price-region {
  font-size: 19px; font-weight: 300; letter-spacing: 0.12em;
  margin: 0 0 18px; color: #0a0a0a;
}
.lesson-price-row {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 18px 0;
  border-top: 0.5px solid rgba(0,0,0,0.08);
  color: #0a0a0a;
}
.lesson-price-row:first-of-type { border-top: 0; }
.lpr-time { font-size: 11px; letter-spacing: 0.28em; color: rgba(0,0,0,0.5); }
.lpr-price { font-size: 24px; font-weight: 200; letter-spacing: 0.04em; }
.lpr-cta {
  font-size: 10px; letter-spacing: 0.2em; color: rgba(0,0,0,0.55);
  border-bottom: 0.5px solid rgba(0,0,0,0.25); padding-bottom: 2px;
  transition: color 0.2s ease;
}
.lesson-price-row[aria-disabled="true"] .lpr-cta { color: rgba(0,0,0,0.4); }
.lesson-price-row:hover .lpr-cta { color: #0a0a0a; }
@media (max-width: 900px) {
  .lesson-price-grid { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 680px; }
}
@media (max-width: 560px) {
  .lesson-price-grid { grid-template-columns: 1fr; max-width: 420px; }
}

/* ============================================================
   2026-06-01c: heroロゴ / 講師の丸写真 / FAQ一行一文
   ============================================================ */
/* hero: ロゴ（一筆の樹） */
body.v3-page .v3-hero--center .v3-hero-logo {
  width: 92px; height: 92px;
  margin: 0 auto 34px;
}
body.v3-page .v3-hero--center .v3-hero-logo img { width: 100%; height: 100%; display: block; }
@media (max-width: 767px) {
  body.v3-page .v3-hero--center .v3-hero-logo { width: 78px; height: 78px; margin-bottom: 28px; }
}
/* 講師プロフィール: 丸い顔写真 */
body.v3-page .v3-instructor-portrait {
  width: 132px; height: 132px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 32px;
  box-shadow: 0 6px 30px rgba(0,0,0,0.10);
}
body.v3-page .v3-instructor-portrait img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 26%;
}

/* ============================================================
   2026-06-01d: 料金表 オンライン別枠 + 3都市横並び（幅広）
   ============================================================ */
.lesson-price-wrap { max-width: 1180px; margin: 48px auto 0; }
.lesson-price-online {
  border: 0.5px solid rgba(0,0,0,0.12);
  padding: 34px 24px 26px;
  text-align: center;
  margin-bottom: 20px;
}
.lesson-price-online .lesson-price-region { margin-bottom: 2px; }
.lesson-price-sub {
  font-size: 11px; letter-spacing: 0.22em;
  color: rgba(0,0,0,0.5); margin: 0 0 6px;
}
.lesson-price-online-rows { display: flex; justify-content: center; flex-wrap: wrap; }
.lesson-price-online-rows .lesson-price-row { border-top: 0; padding: 16px 56px; min-width: 220px; }
.lesson-price-online-rows .lesson-price-row + .lesson-price-row {
  border-left: 0.5px solid rgba(0,0,0,0.08);
}
.lesson-price-grid--3 {
  grid-template-columns: repeat(3, minmax(0,1fr));
  max-width: none;
  margin-top: 0;
}
@media (max-width: 760px) {
  .lesson-price-grid--3 { grid-template-columns: 1fr; }
  .lesson-price-online-rows .lesson-price-row + .lesson-price-row {
    border-left: 0; border-top: 0.5px solid rgba(0,0,0,0.08);
  }
}

/* ============================================================
   2026-06-01e: 中央そろえ徹底（リスト既定インデント除去・見出しindentリセット）
   線のあるセクションで文字が右に寄る不具合の修正
   ============================================================ */
body.city-page .city-bullets,
body.luxe .city-bullets {
  list-style: none !important;
  padding-left: 0 !important;
  padding-inline-start: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
body.city-page .city-bullets li,
body.luxe .city-bullets li {
  text-align: center !important;
  text-indent: 0 !important;
  padding-left: 0 !important;
  padding-inline-start: 0 !important;
  list-style: none !important;
}
body.city-page .city-section > h2,
body.city-page .payment-section > h2,
body.luxe .city-section > h2 { text-indent: 0 !important; }

/* ============================================================
   2026-06-01f: 中央そろえ最終修正（特異度を既存ルールに合わせる）
   - city-bullets li の 28px 左パディングを除去（右ズレの主因）
   - city/payment セクション見出しの text-indent と非対称パディングを除去
   ============================================================ */
body.city-page.luxe .city-bullets li,
body.luxe .city-bullets li,
body.city-page .city-bullets li {
  padding: 8px 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-inline: 0 !important;
  text-indent: 0 !important;
  text-align: center !important;
}
body.city-page.luxe .city-section > h2,
body.city-page.luxe .payment-section > h2,
body.luxe .city-section > h2,
.city-section > h2,
.payment-section > h2,
.city-h2 {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-inline: 0 !important;
  text-indent: 0 !important;
}

/* ============================================================
   2026-06-01g: ヘッダー書式を全ページ完全統一
   （city-page/style.css による weight300・字間狭・別フォント上書きを是正）
   ============================================================ */
.v3-nav .v3-logo,
.v3-nav .v3-logo span,
body.city-page .v3-nav .v3-logo,
body.luxe .v3-nav .v3-logo,
body.city-page.luxe .v3-nav .v3-logo,
body.city-page.luxe .v3-nav .v3-logo span,
body.luxe .v3-nav .v3-logo span {
  font-family: "Helvetica Neue","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  letter-spacing: 0.5em !important;
  text-indent: 0 !important;
  color: #0a0a0a !important;
}
.v3-nav .v3-menu a,
body.city-page .v3-nav .v3-menu a,
body.luxe .v3-nav .v3-menu a,
body.city-page.luxe .v3-nav .v3-menu a {
  font-family: "Helvetica Neue","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif !important;
  font-weight: 400 !important;
  font-size: 10.5px !important;
  letter-spacing: 0.2em !important;
  text-indent: 0 !important;
  color: #0a0a0a !important;
}
@media (max-width: 767px) {
  body .v3-nav .v3-menu a { font-size: 10px !important; letter-spacing: 0.14em !important; }
}
