/* Cursorvers Inc. Renewal Design System v2.0
 * Source of truth: ../00_spec/architecture.md and implementation-spec.md
 * Primitive tokens feed role tokens; components consume roles.
 */

:root {
  /* Primitive tokens */
  --c-ink: #13243F;
  --c-bg: #F4F1EA;
  --c-card: #FBFAF5;
  --c-band: #ECE7DB;
  --c-azure: #3E6FA8;
  --c-azure-rgb: 62, 111, 168;
  --c-azure-deep: #36618F;
  --c-azure-soft: #7FA3CC;
  --c-gold: #C8922E;
  --c-crimson: #9B2D30;
  --c-deep: #101D33;
  --c-slate: #6B7280;
  --c-grey: #6B6557;
  --c-hairline: #D8D4C8;
  --c-hairline-dark: #2A3A55;

  /* Role tokens */
  --surface-base: var(--c-bg);
  --surface-raised: var(--c-card);
  --surface-recessed: var(--c-band);
  --text-primary: var(--c-ink);
  --text-secondary: var(--c-grey);
  --text-muted: var(--c-slate);
  --accent: var(--c-azure);
  --accent-deep: var(--c-azure-deep);
  --accent-soft: var(--c-azure-soft);
  --warn: var(--c-crimson);

  /* Legacy aliases retained for existing class selectors */
  --c-flame: var(--accent);
  --c-flame-rgb: var(--c-azure-rgb);
  --c-surface: var(--surface-raised);
  --c-gray: var(--surface-recessed);
  --c-text: var(--text-primary);
  --c-text-sub: var(--text-secondary);
  --c-text-mute: var(--text-muted);
  --c-border: var(--c-hairline);
  --c-footer-bg: var(--c-deep);
  --c-footer-text: rgba(244,241,234,.85);
  --c-footer-border: var(--c-hairline-dark);
  --c-slate-900: var(--c-ink);

  --font-sans: "Noto Sans JP", "Hiragino Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-serif: "Noto Serif JP", "Hiragino Mincho ProN", Georgia, serif;
  --font-en: "Manrope", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius-card: 0.75rem;
  --radius-btn: 0.5rem;
  --radius-pill: 9999px;
  --shadow-sm: 0 1px 2px rgba(19,36,63,.05);
  --shadow-md: 0 1px 2px rgba(19,36,63,.05);
  --shadow-lg: 0 10px 24px -12px rgba(19,36,63,.14);
  --shadow-flame: 0 10px 24px -12px rgba(19,36,63,.14);
}

/* ---- Base ---- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans) !important;
  background-color: var(--c-bg);
  color: var(--c-text);
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.7;
}
.font-en { font-family: var(--font-en) !important; letter-spacing: 0.04em; }
.uppercase-en { font-family: var(--font-en) !important; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 700; }

a { color: inherit; text-decoration: none; }
a:hover { color: var(--c-flame); }
img { max-width: 100%; height: auto; }

/* ---- Skip link ---- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: 0.875rem 1.5rem;
  background: var(--c-flame);
  color: #FBFAF5;
  font-weight: 700;
  border-radius: 0 0 var(--radius-btn) 0;
}
.skip-link:focus { left: 0; }

/* ---- Focus ---- */
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 2px solid var(--c-flame);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---- Typography ---- */
.hero-h1 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw + 1rem, 3.25rem);
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--c-text);
  margin-bottom: 1.5rem;
}
.hero-sub {
  font-size: clamp(1.05rem, 1.2vw + .9rem, 1.375rem);
  line-height: 1.7;
  color: var(--c-text-sub);
  font-weight: 500;
  max-width: 56rem;
  margin: 0 auto 2rem;
}
.section-h2 {
  font-size: clamp(1.5rem, 1.5vw + 1rem, 2rem);
  line-height: 1.3;
  font-weight: 700;
  color: var(--c-text);
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}
.section-eyebrow {
  font-family: var(--font-en);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-flame);
  margin-bottom: 0.75rem;
  display: inline-block;
}
.section-sub {
  font-size: 1.0625rem;
  color: var(--c-text-sub);
  line-height: 1.8;
}
.section-padding { padding-top: 80px; padding-bottom: 80px; }
@media (max-width: 767px) {
  .section-padding { padding-top: 56px; padding-bottom: 56px; }
}

/* ---- Container ---- */
.container-wide { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; }
.container-base { max-width: 72rem; margin: 0 auto; padding: 0 1.5rem; }
.container-narrow { max-width: 56rem; margin: 0 auto; padding: 0 1.5rem; }

/* ---- Glass nav ---- */
.glass-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  background: rgba(244,241,234,0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0,0,0,0.05);
}
.glass-nav__inner {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.glass-nav__brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-weight: 700;
  color: var(--c-text);
  font-size: 1.0625rem;
  letter-spacing: -0.01em;
}
.glass-nav__brand img { height: 32px; width: 32px; border-radius: 999px; border: 1px solid var(--c-border); }
.glass-nav__brand:hover { color: var(--c-flame); }
.glass-nav__links {
  display: none;
  gap: 1.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--c-text-sub);
}
@media (min-width: 900px) { .glass-nav__links { display: flex; } }
.glass-nav__links a:hover { color: var(--c-flame); }
.glass-nav__links a.is-active {
  color: var(--c-flame);
  font-weight: 700;
}
.glass-nav__cta {
  font-family: var(--font-en);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border: 1px solid var(--c-border);
  color: var(--c-text-sub);
  border-radius: var(--radius-pill);
  white-space: nowrap;
  transition: all .2s ease;
}
.glass-nav__cta:hover {
  background: var(--c-flame);
  border-color: var(--c-flame);
  color: #FBFAF5;
}

/* mobile menu toggle */
.glass-nav__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  background: #FBFAF5;
  color: var(--c-text);
}
@media (min-width: 900px) { .glass-nav__toggle { display: none; } }
.glass-nav__mobile {
  display: none;
  border-top: 1px solid var(--c-border);
  background: #FBFAF5;
}
.glass-nav__mobile.is-open { display: block; }
.glass-nav__mobile a {
  display: block;
  padding: 0.875rem 1.5rem;
  border-bottom: 1px solid var(--c-gray);
  color: var(--c-text-sub);
  font-weight: 500;
}
.glass-nav__mobile a.is-active { color: var(--c-flame); font-weight: 700; }

/* ---- Pill eyebrow ---- */
.pill-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.85rem;
  border: 1px solid rgba(var(--c-azure-rgb),0.4);
  background: #FBFAF5;
  color: var(--c-flame);
  font-family: var(--font-en);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-sm);
}
.pill-eyebrow .dot-pulse {
  width: 6px; height: 6px;
  border-radius: 999px;
  background: var(--c-flame);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(1.4); }
}
@media (prefers-reduced-motion: reduce) {
  .pill-eyebrow .dot-pulse { animation: none; }
}

/* ---- Cards ---- */
.content-card {
  background: #FBFAF5;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-md);
  transition: all .3s ease;
}
.content-card__icon {
  width: 48px; height: 48px;
  border-radius: var(--radius-card);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--c-azure-rgb),0.08);
  color: var(--c-flame);
  font-size: 1.25rem;
}
.content-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-text);
  margin-bottom: 0.5rem;
}
.content-card__body {
  color: var(--c-text-sub);
  line-height: 1.75;
  font-size: 0.95rem;
}

/* ---- Buttons ---- */
.btn-primary, .btn-secondary, .btn-flame {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  transition: all .2s ease;
  cursor: pointer;
  white-space: nowrap;
}
.btn-primary {
  padding: 0.875rem 1.5rem;
  background: var(--c-text);
  color: #FBFAF5;
  border-radius: var(--radius-btn);
  border: 1px solid var(--c-text);
}
.btn-primary:hover { background: #2A3A55; color: #FBFAF5; }

.btn-secondary {
  padding: 0.625rem 1.25rem;
  border: 1px solid var(--c-border);
  color: var(--c-text-sub);
  background: #FBFAF5;
  border-radius: var(--radius-pill);
  font-family: var(--font-en);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
}
.btn-secondary:hover {
  background: var(--c-flame);
  border-color: var(--c-flame);
  color: #FBFAF5;
}

.btn-flame {
  padding: 0.875rem 1.625rem;
  background: var(--c-flame);
  color: #FBFAF5;
  border-radius: var(--radius-pill);
  border: 1px solid var(--c-flame);
  box-shadow: var(--shadow-flame);
}
.btn-flame:hover { background: #36618F; border-color: #36618F; color: #FBFAF5; }

.btn-arrow { transition: transform .2s ease; }
.btn-primary:hover .btn-arrow,
.btn-flame:hover .btn-arrow { transform: translateX(3px); }

/* ---- Tag chip ---- */
.tag-chip {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: var(--c-gray);
  color: #13243F;
  border-radius: var(--radius-pill);
  font-size: 0.8125rem;
  font-weight: 500;
}
.tag-chip--flame { background: rgba(var(--c-azure-rgb),0.1); color: var(--c-flame); }

/* ---- Schedule badge ---- */
.schedule-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 1.25rem;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-pill);
  color: var(--c-text);
  font-size: 0.875rem;
  font-weight: 600;
}
.schedule-badge i { color: var(--c-flame); }

/* ---- Hero wrapper ---- */
.hero-section {
  position: relative;
  overflow: hidden;
  background: #FBFAF5;
  padding-top: 8rem;
  padding-bottom: 6rem;
}
.hero-section--video { min-height: 92vh; display: flex; align-items: center; }
.hero-video-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.hero-video-bg video, .hero-video-bg img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(0.65) brightness(1.05) saturate(0.85);
}
.hero-video-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(244,241,234,0.85) 0%, rgba(244,241,234,0.7) 60%, rgba(244,241,234,0.95) 100%);
}
.hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 56rem;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

/* ---- Page header (sub pages) ---- */
.page-header {
  background: var(--c-surface);
  padding: 7.5rem 1.5rem 4rem;
  border-bottom: 1px solid var(--c-border);
}
.page-header__inner {
  max-width: 72rem;
  margin: 0 auto;
}
.page-header__breadcrumb {
  font-family: var(--font-en);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-text-mute);
  margin-bottom: 0.75rem;
}
.page-header__breadcrumb a:hover { color: var(--c-flame); }

/* ---- Footer ---- */
.site-footer {
  background: var(--c-footer-bg);
  color: var(--c-footer-text);
  padding: 4rem 1.5rem 2rem;
  border-top: 1px solid var(--c-footer-border);
}
.site-footer__inner {
  max-width: 80rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 2.5rem;
}
@media (max-width: 900px) { .site-footer__inner { grid-template-columns: 1fr 1fr; gap: 2rem; } }
@media (max-width: 560px) { .site-footer__inner { grid-template-columns: 1fr; } }
.site-footer__brand img { height: 36px; }
.site-footer__brand p { color: #7FA3CC; font-size: 0.875rem; line-height: 1.7; margin-top: 0.75rem; }
.site-footer__col h4 {
  font-family: var(--font-en);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #7FA3CC;
  margin-bottom: 1rem;
  font-weight: 700;
}
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.site-footer__col a { color: var(--c-footer-text); font-size: 0.9rem; }
.site-footer__col a:hover { color: var(--c-flame); }
.site-footer__bottom {
  max-width: 80rem;
  margin: 2.5rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--c-footer-border);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8125rem;
  color: #7FA3CC;
}

/* ---- Section helpers ---- */
.section-bg-surface { background: var(--c-surface); }
.divider {
  height: 1px;
  background: var(--c-border);
  margin: 0;
}

/* ---- Featured grid (3 columns) ---- */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 900px) { .feature-grid { grid-template-columns: 1fr; } }
.feature-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 767px) { .feature-grid--2 { grid-template-columns: 1fr; } }

/* ---- Lists prose ---- */
.prose {
  color: var(--c-text-sub);
  line-height: 1.9;
  font-size: 1.0625rem;
}
.prose h2 { color: var(--c-text); font-size: 1.5rem; font-weight: 700; margin: 2.5rem 0 1rem; }
.prose h3 { color: var(--c-text); font-size: 1.125rem; font-weight: 700; margin: 2rem 0 0.5rem; }
.prose p { margin: 1rem 0; }
.prose ul, .prose ol { margin: 1rem 0 1rem 1.5rem; }
.prose li { margin: 0.4rem 0; }
.prose a { color: var(--c-flame); text-decoration: underline; text-underline-offset: 3px; }

/* ---- News list ---- */
.news-list { list-style: none; padding: 0; margin: 0; }
.news-list li {
  border-top: 1px solid var(--c-border);
  padding: 1.25rem 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.news-list li:last-child { border-bottom: 1px solid var(--c-border); }
.news-list time {
  font-family: var(--font-en);
  color: var(--c-text-mute);
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  min-width: 6.5rem;
}
.news-list a { color: var(--c-text); font-weight: 500; flex: 1; }
.news-list a:hover { color: var(--c-flame); }

/* ---- Notice / alert ---- */
.notice {
  border-left: 4px solid var(--c-flame);
  background: rgba(var(--c-azure-rgb),0.06);
  padding: 1rem 1.25rem;
  border-radius: 0 var(--radius-btn) var(--radius-btn) 0;
  color: var(--c-text);
}
.notice--info { border-color: #3E6FA8; background: rgba(62,111,168,.08); }

/* ---- Override existing legacy classes (defensive) ---- */
/* Legacy navy mapped to brand azure */
.bg-brand-blue { background-color: var(--c-slate-900) !important; }
.text-brand-blue { color: var(--c-slate-900) !important; }
.border-brand-blue { border-color: var(--c-slate-900) !important; }
.hover\:bg-brand-blue:hover { background-color: var(--c-slate-900) !important; }
.hover\:text-brand-blue:hover { color: var(--c-flame) !important; }

/* Legacy black backgrounds → slate-900 */
.bg-brand-black { background-color: var(--c-footer-bg) !important; }
.text-brand-charcoal { color: var(--c-text) !important; }

/* Legacy mincho/serif fonts → Noto Sans JP */
.font-mincho, .font-serif,
[class*="font-mincho"] {
  font-family: var(--font-sans) !important;
  font-feature-settings: "palt" !important;
  letter-spacing: 0.02em;
}

/* Accent color remapping: use flame as accent */
.text-amber-500, .text-amber-600, .text-yellow-500, .text-yellow-600 { color: var(--c-flame) !important; }
.bg-amber-500, .bg-amber-600, .bg-yellow-500, .bg-yellow-600 { background-color: var(--c-flame) !important; }
.border-amber-500, .border-amber-600, .border-yellow-500, .border-yellow-600 { border-color: var(--c-flame) !important; }

/* Rule: Tailwind pastel blue/cyan/yellow backgrounds → gray gradient (no rule-violating accent) */
.bg-blue-50, .bg-blue-100, .bg-blue-100\/50, .bg-blue-50\/30, .bg-blue-50\/50,
.bg-cyan-50, .bg-cyan-100, .bg-sky-50, .bg-sky-100,
.bg-indigo-50, .bg-indigo-100,
.bg-yellow-50, .bg-yellow-100, .bg-yellow-50\/30, .bg-yellow-50\/50,
.bg-amber-50, .bg-amber-100,
.bg-green-50, .bg-green-100, .bg-emerald-50, .bg-emerald-100,
.bg-purple-50, .bg-purple-100, .bg-violet-50, .bg-violet-100,
.bg-pink-50, .bg-pink-100, .bg-red-50, .bg-red-100 {
  background-color: #FBFAF5 !important; /* slate-50 */
}
/* Solid accent backgrounds (yellow-400 badges etc.) → flame */
.bg-yellow-400, .bg-yellow-500, .bg-amber-400, .bg-amber-500 {
  background-color: var(--c-flame) !important;
  color: #FBFAF5 !important;
}
.text-yellow-900, .text-yellow-800, .text-amber-900, .text-amber-800 { color: #FBFAF5 !important; }

/* Gradient backgrounds with blue/cyan/yellow → gray gradient */
.bg-gradient-to-r.from-blue-50, .bg-gradient-to-br.from-blue-50,
.bg-gradient-to-r.from-cyan-50, .bg-gradient-to-br.from-cyan-50,
.bg-gradient-to-r.from-sky-50, .bg-gradient-to-br.from-sky-50,
.bg-gradient-to-r.from-yellow-50, .bg-gradient-to-br.from-yellow-50,
.bg-gradient-to-r.from-amber-50, .bg-gradient-to-br.from-amber-50,
.bg-gradient-to-r.from-indigo-50, .bg-gradient-to-br.from-indigo-50,
.bg-gradient-to-r.from-purple-50, .bg-gradient-to-br.from-purple-50,
.bg-gradient-to-r.from-green-50, .bg-gradient-to-br.from-green-50 {
  background: linear-gradient(135deg, #FBFAF5 0%, #ECE7DB 60%, #D8D4C8 100%) !important;
}

/* Border colors in blue/yellow families → border-flame or slate */
.border-blue-100, .border-blue-200, .border-cyan-100, .border-cyan-200,
.border-sky-100, .border-sky-200, .border-indigo-100, .border-indigo-200 {
  border-color: var(--c-border) !important;
}
.border-l-yellow-400, .border-l-yellow-500, .border-l-amber-400, .border-l-amber-500,
.border-yellow-400, .border-yellow-500 {
  border-color: var(--c-flame) !important;
}

/* Text in yellow family → slate for readability */
.text-yellow-400, .text-yellow-500, .text-yellow-600, .text-yellow-700,
.text-amber-400, .text-amber-700 { color: var(--c-flame) !important; }
.text-blue-500, .text-blue-600, .text-blue-700, .text-blue-800,
.text-cyan-500, .text-cyan-600, .text-cyan-700,
.text-sky-500, .text-sky-600, .text-sky-700,
.text-indigo-500, .text-indigo-600, .text-indigo-700 { color: var(--c-slate-900) !important; }

/* Rule: no purple/violet/green accents — neutralize to slate-900 */
[class*="text-purple"], [class*="text-violet"], [class*="text-fuchsia"], [class*="text-pink"],
[class*="text-green"], [class*="text-emerald"], [class*="text-teal"], [class*="text-lime"],
[class*="text-sky"], [class*="text-cyan"], [class*="text-indigo"] {
  color: var(--c-slate-900) !important;
}
[class*="bg-purple"], [class*="bg-violet"], [class*="bg-fuchsia"], [class*="bg-pink"],
[class*="bg-green"], [class*="bg-emerald"], [class*="bg-teal"], [class*="bg-lime"],
[class*="bg-sky"], [class*="bg-cyan"], [class*="bg-indigo"] {
  background-color: #ECE7DB !important; /* slate-100: neutral icon backdrop */
  color: var(--c-slate-900) !important;
}
/* But keep flame explicitly if someone applied it */
.text-brand-flame, .text-flame { color: var(--c-flame) !important; }
.bg-brand-flame, .bg-flame { background-color: var(--c-flame) !important; }

/* Hero subtitle: flame accent (replacement for text-brand-blue on subline) */
.hero-subline, .hero-motion-subline { color: var(--c-flame) !important; }

/* Hero main title accent override (stronger weight via font stack) */
.hero-motion-title { font-family: var(--font-serif)!important; font-weight: 600 !important; color: var(--c-slate-900) !important; }

/* Badges / pills with legacy brand-blue */
.border-brand-blue\/20 { border-color: rgba(var(--c-azure-rgb),.25) !important; }
.bg-brand-blue\/5 { background-color: rgba(var(--c-azure-rgb),.06) !important; }
.bg-brand-blue\/10 { background-color: rgba(var(--c-azure-rgb),.10) !important; }
/* Proof metric (text-brand-blue 4xl numbers) → slate-900 with flame underline */
.proof-metric, .text-brand-blue.font-bold.text-4xl, .text-brand-blue.font-bold.text-5xl {
  color: var(--c-slate-900) !important;
  border-bottom: 3px solid var(--c-flame);
  display: inline-block;
  padding-bottom: .25rem;
}

/* Legacy inline glass-nav override (sub-pages have navy border) */
header.glass-nav,
.glass-nav {
  background: rgba(244,241,234,0.88) !important;
  backdrop-filter: blur(14px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
  border-bottom: 1px solid rgba(19,36,63,.06) !important;
}

/* Body font force — inherits from body, works even if a page sets its own */
body, html {
  font-family: var(--font-sans) !important;
  font-feature-settings: "palt" !important;
  overflow-x: clip;
  color: var(--c-text);
  background-color: var(--c-bg);
}
body * { font-family: inherit; }
.font-en,
[class*="font-en"],
h1 .font-en, h2 .font-en, h3 .font-en {
  font-family: var(--font-en) !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Buttons: legacy <a class="bg-brand-blue text-white px-*"> auto-styles as btn-primary-like */
a.bg-brand-blue, button.bg-brand-blue {
  background-color: var(--c-slate-900) !important;
  color: #FBFAF5 !important;
  border-radius: 9999px !important;
  transition: background-color .2s ease, transform .2s ease !important;
}
a.bg-brand-blue:hover, button.bg-brand-blue:hover {
  background-color: var(--c-flame) !important;
  transform: translateY(-1px);
}

/* Utility: orange accent divider */
.section-divider--flame {
  width: 64px; height: 3px; background: var(--c-flame); border: 0; margin: 0 0 1.25rem 0;
}

/* phi-notice: neutral surface + flame border-only (orange as accent only, not background) */
.phi-notice {
  background: var(--c-surface) !important;
  border-left: 4px solid var(--c-flame) !important;
}

/* Footer build-id stamp (replaced at deploy time by scripts/update-build-id.js) */
.site-footer__build {
  letter-spacing: .08em;
  font-size: .65rem;
  color: #7FA3CC;
  opacity: .7;
}

/* Interactive comparison cards: flame-orange glow on hover/focus (accent only, no background) */
.card-interactive {
  border: 2px solid transparent;
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease;
}
@media (hover: hover) {
  .card-interactive:hover {
    border-color: var(--c-flame);
    box-shadow: 0 0 0 1px var(--c-flame), 0 10px 28px -8px rgba(var(--c-flame-rgb), .35);
    transform: translateY(-2px);
  }
}
.card-interactive:focus-within {
  border-color: var(--c-flame);
  box-shadow: 0 0 0 2px var(--c-flame), 0 10px 28px -8px rgba(var(--c-flame-rgb), .45);
}
@media (prefers-reduced-motion: reduce) {
  .card-interactive { transition: none; }
  .card-interactive:hover { transform: none; }
}

/* News / article body: better reading rhythm */
main article, main .prose {
  line-height: 1.85;
}
main article h2, main .prose h2 {
  margin-top: 2.5rem;
  padding-left: 1rem;
  border-left: 4px solid var(--c-flame);
  font-weight: 700;
}

/* Legacy gradient hero backgrounds — tone down */
.bg-gradient-to-br, .bg-gradient-to-r {
  /* keep gradient but ensure text contrast is inherited properly */
}

/* ---- Hero time-staggered reveal (v2: visible by default, animated only when armed) ---- */
@keyframes heroNavReveal {
  0%   { opacity: 0; transform: translate3d(0, -120%, 0); visibility: visible; }
  100% { opacity: 1; transform: translate3d(0, 0, 0);     visibility: visible; pointer-events: auto; }
}
@keyframes heroTokenReveal {
  0%   { opacity: 0; transform: translate3d(0, 32px, 0) scale(.98); filter: blur(8px); }
  60%  { opacity: 1; transform: translate3d(0, 0, 0) scale(1);     filter: blur(0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1);     filter: blur(0); }
}

.hero-nav-reveal {
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, -120%, 0);
  visibility: hidden;
  animation: heroNavReveal 1.55s cubic-bezier(0.16, 1, 0.3, 1) 1.25s forwards;
}

.hero-motion-armed .hero-motion-title .hero-motion-token,
.hero-motion-armed .hero-motion-title .hero-motion-subline {
  display: inline-block;
  opacity: 0;
  animation: heroTokenReveal 1.4s cubic-bezier(0.22, 1, 0.36, 1) var(--hero-stagger, 0s) forwards;
  will-change: opacity, transform, filter;
}

/* Hero title: v2 Noto Serif JP 900 */
.hero-motion-title {
  font-family: var(--font-serif) !important;
  font-size: clamp(2.75rem, 8.2vw, 6.75rem) !important;
  line-height: 1.18 !important;
  letter-spacing: 0.03em !important;
  font-weight: 900 !important;
}
.hero-motion-title .hero-motion-token {
  font-family: var(--font-serif) !important;
  font-weight: 900 !important;
}
.hero-motion-title .hero-motion-subline,
.hero-motion-title .hero-subline {
  font-family: var(--font-serif) !important;
  font-size: clamp(1.5rem, 3vw, 2.5rem) !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
  font-weight: 900 !important;
}

/* Keep the video halation (white wash) — user explicitly wants it preserved.
   Only zero out box-level fills that sit directly behind text letters. */
.hero-content,
.hero-motion-title,
.hero-motion-line,
.hero-motion-token,
.hero-motion-subline {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Token stagger: keep the hero reveal under the v2 timing budget. */
.hero-motion-armed .hero-motion-title .hero-motion-token,
.hero-motion-armed .hero-motion-title .hero-motion-subline {
  animation-delay: calc(var(--hero-stagger, 0s) + 0.45s) !important;
}

/* Reduced motion: respect user preference */
@media (prefers-reduced-motion: reduce) {
  .hero-nav-reveal,
  .hero-motion-title .hero-motion-token,
  .hero-motion-title .hero-motion-subline {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}

/* =========================================================
   v20260420d 追加パッチ
   1) proof-metric 数字を Noto Sans JP に統一（明朝fallback封じ）
   2) Hero 1行目「AIに、臨床の魂を」を毛筆化
   3) hover glow セレクタ拡張（div/article/details を包含）
   4) 規約違反の差し色（purple/green-100等）を中立化
   5) services.html ライトレビュー gradient → white
   6) subsidy 3ステップ（ヒアリング等）をカード化
   ========================================================= */

/* ---- 1. proof-metric font force ---- */
.proof-metric,
.mobile-proof-grid p[class*="text-4xl"],
.mobile-proof-grid p[class*="text-5xl"],
.mobile-proof-grid .proof-metric span {
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  font-feature-settings: "palt" !important;
}
/* ---- 1b. 「約20年」カードの視覚ウェイト調整（製品中立・3つの論点と墨量を揃える） ---- */
.proof-metric .proof-metric-unit {
  font-size: 0.72em !important;   /* 20 の 72% → 1.5rem時代（48%）より大幅強化 */
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  vertical-align: 0.06em;           /* ベースライン微調整 */
}

/* ---- 2. Hero typography: v2 Noto Serif JP stack ---- */
.hero-motion-brush,
.hero-motion-brush .hero-motion-token {
  font-family: var(--font-serif) !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em !important;
  font-size: clamp(3.75rem, 11vw, 9rem) !important;
  line-height: 1.08 !important;
  /* リアル 900 weight があるので stroke は控えめ、だが墨だまり感を残す */
  -webkit-text-stroke: 1.2px currentColor;
  paint-order: stroke fill;
  text-shadow:
    0 0 1px currentColor,
    0.8px 0 0 currentColor,
    -0.8px 0 0 currentColor,
    0 0.8px 0 currentColor,
    0 -0.8px 0 currentColor;
}

/* ---- 3. Violation palette neutralization (purple/green/pink 100/600 等) ---- */
.bg-purple-100, .bg-purple-50, .bg-pink-100, .bg-pink-50,
.bg-green-100, .bg-green-50, .bg-emerald-100, .bg-emerald-50,
.bg-teal-100, .bg-teal-50, .bg-cyan-100, .bg-cyan-50,
.bg-indigo-100, .bg-indigo-50, .bg-violet-100, .bg-violet-50,
.bg-red-100, .bg-red-50, .bg-rose-100 {
  background-color: rgba(19,36,63,0.06) !important;
}
.text-purple-600, .text-purple-700, .text-purple-500,
.text-green-600, .text-green-700, .text-green-500,
.text-pink-600, .text-pink-700,
.text-emerald-600, .text-emerald-700,
.text-teal-600, .text-teal-700,
.text-indigo-600, .text-indigo-700,
.text-violet-600, .text-violet-700 {
  color: var(--c-slate-900, #13243F) !important;
}
/* News tag pills: purple→slate, red→flame */
.bg-purple-600\/10 { background-color: rgba(19,36,63,0.08) !important; }
.bg-purple-600 { background-color: var(--c-slate-900, #13243F) !important; }
.bg-red-600\/10 { background-color: rgba(155,45,48,0.10) !important; }
.bg-red-600 { background-color: var(--c-flame) !important; }
.text-red-600, .text-red-700 { color: var(--c-flame) !important; }

/* ---- 5. services.html ライトレビュー: unify with white ---- */
.bg-gradient-to-br.from-blue-50,
.bg-gradient-to-br.from-blue-50.to-cyan-50,
.bg-gradient-to-br.from-cyan-50,
.bg-gradient-to-r.from-blue-50 {
  background: #FBFAF5 !important;
  border: 1px solid var(--c-border) !important;
}

/* ---- 6. subsidy 3ステップのカード化（.text-center wrap with gap-8 grid） ---- */
section#flow .grid > .text-center {
  background: #FBFAF5;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-card);
  padding: 2rem 1.5rem;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
/* 数字バッジは flame に揃える */
section#flow .grid > .text-center .rounded-full.bg-brand-blue {
  background-color: var(--c-flame) !important;
}

/* ---- Subsidy: 3ロール（当社/外部専門家/申請者）内部テキストもflame/navyに ---- */
.subsidy-role-card h3 { color: var(--c-slate-900, #13243F) !important; }

/* ---- Hero Follow-up heading：問い（H2）+ 答え（リード段落）へ分割 ---- */
.hero-followup-heading {
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  line-break: strict !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em !important;
  font-feature-settings: "palt" !important;
  /* 問いを一行で効かせるサイズ感（Tailwind text-5xl相当まで許容） */
  font-size: clamp(1.625rem, 3.6vw, 2.75rem) !important;
}
@media (min-width: 1280px) {
  .hero-followup-heading {
    font-size: clamp(2rem, 2.6vw, 3rem) !important;
  }
}
.hero-followup-lede {
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  line-break: strict !important;
  line-height: 1.7 !important;
  letter-spacing: 0.01em !important;
  font-size: clamp(1rem, 1.6vw, 1.25rem) !important;
}
@media (min-width: 1024px) {
  .hero-followup-lede { font-size: clamp(1.125rem, 1.4vw, 1.375rem) !important; }
}

/* =========================================================
   v20260421 サイズ感調整（cursorvers.jp と同程度の密度に）
   - Hero 1行目「AIに、臨床の魂を」を一段小さく
   - 主要見出しとリード段落を ~15% スケールダウン
   ========================================================= */
.hero-motion-brush,
.hero-motion-brush .hero-motion-token {
  font-size: clamp(3.25rem, 9.5vw, 7.5rem) !important;   /* was clamp(3.75rem, 11vw, 9rem) */
  line-height: 1.08 !important;
}

.hero-motion-title {
  font-size: clamp(2.5rem, 7.2vw, 5.75rem) !important;   /* was clamp(2.75rem, 8.2vw, 6.75rem) */
}

.hero-motion-title .hero-motion-subline,
.hero-motion-title .hero-subline {
  font-size: clamp(1.375rem, 2.6vw, 2.125rem) !important;    /* was clamp(1.5rem, 3vw, 2.5rem) */
}

.hero-content h1.text-display,
h1.text-display {
  font-size: clamp(2.5rem, 6.2vw, 4.25rem) !important;
  line-height: 1.1 !important;
}

.hero-followup-heading {
  font-size: clamp(1.5rem, 3.2vw, 2.5rem) !important;   /* was clamp(1.625rem, 3.6vw, 2.75rem) */
}
@media (min-width: 1280px) {
  .hero-followup-heading {
    font-size: clamp(1.75rem, 2.4vw, 2.625rem) !important;   /* was clamp(2rem, 2.6vw, 3rem) */
  }
}
.hero-followup-lede {
  font-size: clamp(0.9375rem, 1.4vw, 1.125rem) !important;   /* was clamp(1rem, 1.6vw, 1.25rem) */
}
@media (min-width: 1024px) {
  .hero-followup-lede { font-size: clamp(1rem, 1.2vw, 1.1875rem) !important; }
}

/* ==========================================================================
   v20260421 News cards v2 (visual-first)
   絵のある上段ビジュアル + 本文のプレスカード型
   ========================================================================== */
.news-scroll-v2 { gap: 1.25rem; }
.news-card-v2 {
  scroll-snap-align: start;
  flex: 0 0 auto;
  width: clamp(260px, 78vw, 320px);
  background: #FBFAF5;
  border: 1px solid #D8D4C8;
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
@media (min-width: 768px) { .news-card-v2 { width: 320px; } }
.news-card-v2:hover {
  border-color: rgba(229, 88, 18, 0.28);
  box-shadow: 0 10px 30px -12px rgba(17, 24, 39, 0.18);
  transform: translateY(-2px);
}
.news-card-v2-link { display: block; color: inherit; text-decoration: none; }
.news-card-v2-visual {
  position: relative;
  aspect-ratio: 16 / 10;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid #ECE7DB;
}
.news-card-v2-visual > .news-visual-lockup,
.news-card-v2-visual > .news-visual-caption {
  position: relative;
  z-index: 1;
}
.news-card-v2-body { padding: 18px 18px 20px; }
.news-card-v2-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.news-card-v2-tag {
  display: inline-block;
  font-size: 11px; font-weight: 700; letter-spacing: 0.04em;
  padding: 4px 10px; border-radius: 3px; color: #FBFAF5; line-height: 1.4;
}
.news-tag-flame   { background: #3E6FA8; }
.news-tag-navy    { background: #13243F; }
.news-tag-emerald { background: #36618F; }
.news-tag-amber   { background: #C8922E; }
.news-card-v2-date {
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 12px; color: #6B7280; letter-spacing: 0.02em;
}
.news-card-v2-title {
  font-size: 15px; font-weight: 700; color: #13243F;
  line-height: 1.55; margin: 0 0 8px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
@media (min-width: 768px) { .news-card-v2-title { font-size: 16px; } }
.news-card-v2-lede {
  font-size: 12.5px; color: #6B7280; line-height: 1.7; margin: 0 0 12px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.news-card-v2-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 700; color: #3E6FA8;
}
.news-card-v2-cta svg { transition: transform .25s ease; }
.news-card-v2:hover .news-card-v2-cta svg { transform: translateX(3px); }

/* Visual variants */
.news-visual-caption {
  font-size: 11.5px; color: rgba(244,241,234,0.72); letter-spacing: 0.02em;
}

.news-visual-lockup-card {
  background: #FBFAF5;
  display: flex; flex-direction: column; gap: 10px; padding: 18px 22px;
  align-items: center; justify-content: center;
}
.news-visual-lockup-card--emerald {
  background: #FBFAF5;
}
.news-visual-lockup { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; }
.news-visual-lockup--solo { justify-content: center; }
.news-visual-brand {
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 12px; font-weight: 800; letter-spacing: 0.08em; color: #13243F;
  padding: 8px 12px; border-radius: 6px; background: #FBFAF5; border: 1px solid #D8D4C8;
  text-transform: uppercase; white-space: nowrap;
}
.news-visual-wordmark {
  font-family: var(--font-en);
  font-size: 15px; font-weight: 800; letter-spacing: 0.02em;
  padding: 8px 12px; border-radius: 6px;
  background: #FBFAF5; border: 1px solid #D8D4C8;
  white-space: nowrap;
}
.news-visual-wordmark--flame { color: #3E6FA8; }
.news-visual-wordmark--amber { color: #C8922E; }
.news-visual-x { color: #3E6FA8; font-weight: 800; font-size: 18px; }
.news-visual-logo { max-height: 32px; max-width: 130px; object-fit: contain; }
.news-visual-lockup-card .news-visual-caption { color: #6B7280; font-size: 11px; letter-spacing: 0.06em; }

/* End */

/* =========================================================
   v20260510 mobile overflow fix — iPhone 13 Pro Max での
   .hero-followup-lede が word-break: keep-all で改行できず
   右側に overflow していた件への修正。BR を常に visible 化
   + モバイルで word-break を緩和。
   ========================================================= */
@media (max-width: 767px) {
  .hero-followup-lede {
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    line-break: auto !important;
  }
}


/* =========================================================
   Design System v2.0 component normalization
   ========================================================= */
body {
  background-color: var(--surface-base);
  color: var(--text-primary);
  letter-spacing: 0.02em;
}

h1, h2, h3,
.hero-h1,
.hero-motion-title,
.section-h2,
.proof-metric {
  font-family: var(--font-serif);
  font-feature-settings: "palt";
}

.hero-h1,
.hero-motion-title {
  font-size: clamp(2.5rem, 4.2vw + 1rem, 4.25rem);
  line-height: 1.16;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--text-primary);
}

.hero-sub,
.section-sub,
.hero-followup-lede {
  color: var(--text-secondary);
  line-height: 1.85;
}

.section-h2 {
  font-size: clamp(1.85rem, 2.2vw + 1rem, 2.625rem);
  line-height: 1.25;
  font-weight: 700;
  color: var(--text-primary);
}

.section-eyebrow,
.page-header__breadcrumb,
.news-card-v2-date {
  font-family: var(--font-en);
  color: var(--accent-deep);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.section-padding { padding-top: clamp(6rem, 10vw, 9rem); padding-bottom: clamp(6rem, 10vw, 9rem); }
.section-padding-lg { padding-top: clamp(7rem, 12vw, 11rem); padding-bottom: clamp(7rem, 12vw, 11rem); }
.mobile-tight-section { padding-top: clamp(3.75rem, 12vw, 6rem); padding-bottom: clamp(3.75rem, 12vw, 6rem); }

.glass-nav,
header.glass-nav {
  background: rgba(244,241,234,0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--c-hairline);
}
.glass-nav__brand img { width: auto; height: 34px; border: 0; border-radius: 0; mix-blend-mode: normal; }
.glass-nav__links a:hover,
.glass-nav__links a.is-active,
.glass-nav__mobile a.is-active,
.glass-nav__brand:hover { color: var(--accent-deep); }
.glass-nav__links a.is-active { text-decoration: underline; text-underline-offset: 6px; }
.glass-nav__toggle,
.glass-nav__mobile { background: var(--surface-raised); }

.content-card,
.card-hover,
.card-premium,
.service-card,
.news-card-v2,
section#flow .grid > .text-center {
  background: var(--surface-raised);
  border: 1px solid var(--c-hairline);
  border-radius: 12px;
  box-shadow: var(--shadow-md);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.content-card:hover,
.card-hover:hover,
.card-premium:hover,
.service-card:hover,
.news-card-v2:hover,
section#flow .grid > .text-center:hover {
  border-color: #C5BFAF;
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn-primary,
a.bg-brand-blue,
button.bg-brand-blue {
  background: var(--c-ink);
  border-color: var(--c-ink);
  color: var(--c-bg);
  border-radius: var(--radius-btn);
}
.btn-primary:hover,
a.bg-brand-blue:hover,
button.bg-brand-blue:hover {
  background: #0E1B30;
  color: var(--c-bg);
}
.btn-secondary {
  background: transparent;
  border: 1.5px solid var(--c-ink);
  color: var(--c-ink);
  border-radius: var(--radius-btn);
}
.btn-secondary:hover,
.btn-flame,
.btn-flame:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--c-bg);
  box-shadow: none;
}
.btn-flame:hover {
  background: #36618F;
  border-color: #36618F;
}

.hero-wrapper,
.hero-section {
  background: var(--surface-base);
}
.hero-overlay,
.hero-video-bg::after {
  background: linear-gradient(180deg, rgba(244,241,234,.42), rgba(244,241,234,.88) 78%, #F4F1EA 100%);
}
.hero-motion-token,
.hero-motion-subline,
.hero-motion-title .hero-motion-token,
.hero-motion-title .hero-motion-subline {
  opacity: 1;
  transform: none;
  animation: none;
  filter: none;
}
.hero-motion-armed .hero-motion-token,
.hero-motion-armed .hero-motion-subline,
.hero-motion-armed .hero-motion-title .hero-motion-token,
.hero-motion-armed .hero-motion-title .hero-motion-subline {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  animation: heroV2Reveal .9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: calc(.12s + var(--hero-stagger, 0s));
}
.hero-motion-armed .hero-motion-subline,
.hero-motion-armed .hero-motion-title .hero-motion-subline { animation-duration: 1.1s; }
@keyframes heroV2Reveal {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.hero-subline,
.hero-motion-subline { color: var(--accent-deep); }

.site-footer {
  background: var(--c-deep);
  color: rgba(244,241,234,.85);
  border-top: 1px solid var(--c-hairline-dark);
}
.site-footer__brand img { height: 36px; width: auto; }
.site-footer__brand p,
.site-footer__col h4,
.site-footer__bottom { color: rgba(244,241,234,.68); }
.site-footer__col a:hover { color: var(--accent-soft); }

.news-tag-flame,
.news-tag-amber,
.news-visual-wordmark--flame,
.news-visual-wordmark--amber,
.news-visual-x { color: var(--c-bg); background: var(--c-gold); }
.news-visual-wordmark--flame,
.news-visual-wordmark--amber { color: var(--c-gold); background: var(--surface-raised); }

.reveal {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity .7s cubic-bezier(0.22, 1, 0.36, 1), transform .7s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}
.reveal.is-visible,
.reveal.active {
  opacity: 1;
  transform: none;
}
[class*="marquee"]:hover { animation-play-state: paused; }

@media (max-width: 767px) {
  .br-pc { display: none; }
  h1,
  h2,
  h3,
  .section-h2,
  .hero-followup-heading,
  .hero-h1 {
    word-break: auto-phrase;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: .001ms;
  }
  .reveal,
  .hero-motion-armed .hero-motion-token,
  .hero-motion-armed .hero-motion-subline {
    opacity: 1;
    transform: none;
    animation: none;
    transition: none;
  }
}
