/* ==========================================================================
   Variables - S.Line Corporate Theme Design Tokens
   ========================================================================== */

:root {
  /* ------------------------------------------------------------------
     Colors
     ------------------------------------------------------------------ */

  /* Brand — matched to official logo (logo-sline-official.png) */
  --color-brand-primary: #8BA4C8;
  --color-brand-secondary: #6B8BB5;
  --color-brand-light: #C5D3E8;
  --color-brand-lighter: #E8EDF5;
  --color-brand-dark: #5A7AA3;

  /* Accent (soft yellow/gold from logo dots) */
  --color-accent-yellow: #E8D44D;
  --color-accent-yellow-light: #F2EAAA;

  /* Backgrounds */
  --color-bg: #ffffff;
  --color-bg-white: #ffffff;
  --color-bg-dark: #252525;
  --color-bg-darker: #202020;
  --color-bg-accent: #f7f7f7;
  --color-bg-cta: #8BA4C8;

  /* Text */
  --color-text-primary: #111111;
  --color-text-secondary: #555555;
  --color-text-muted: #999999;
  --color-text-white: #ffffff;
  --color-text-brand: #8BA4C8;

  /* Border */
  --color-border: #e0e0e0;
  --color-border-light: #eeeeee;
  --color-border-dark: #cccccc;

  /* State */
  --color-success: #4caf50;
  --color-error: #e53935;
  --color-warning: #ff9800;
  --color-info: #2196f3;

  /* Overlay */
  --color-overlay-dark: rgba(0, 0, 0, 0.5);
  --color-overlay-darker: rgba(0, 0, 0, 0.7);
  --color-overlay-light: rgba(255, 255, 255, 0.1);

  /* Brand hover/active derivatives */
  --color-brand-primary-hover: #7A96BC;
  --color-brand-primary-active: #6B8BB5;
  --color-cta-hover: #7A96BC;

  /* Glass-morphism */
  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-bg-dark: rgba(17, 17, 17, 0.9);
  --glass-border: rgba(0, 0, 0, 0.06);
  --glass-blur: 20px;

  /* ------------------------------------------------------------------
     Typography
     ------------------------------------------------------------------ */

  /* Font families */
  --font-jp: "Noto Sans JP", "Yu Gothic", "Hiragino Sans", sans-serif;
  --font-en: "Outfit", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Outfit", "Noto Sans JP", sans-serif;

  /* Font sizes - Fluid typography with clamp() */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: clamp(1.063rem, 1rem + 0.2vw, 1.125rem);
  --text-xl: clamp(1.125rem, 1rem + 0.4vw, 1.25rem);
  --text-2xl: clamp(1.25rem, 1rem + 0.8vw, 1.5rem);
  --text-3xl: clamp(1.5rem, 1.1rem + 1.2vw, 1.875rem);
  --text-4xl: clamp(1.75rem, 1.1rem + 2vw, 2.5rem);
  --text-5xl: clamp(2rem, 1rem + 3vw, 3.25rem);
  --text-6xl: clamp(2.5rem, 1rem + 4.5vw, 4.25rem);
  --text-7xl: clamp(3rem, 1rem + 6vw, 5.5rem);

  /* Line heights */
  --leading-none: 1;
  --leading-tight: 1.2;
  --leading-snug: 1.35;
  --leading-normal: 1.6;
  --leading-relaxed: 1.8;
  --leading-loose: 2.0;

  /* Font weights */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  --fw-black: 900;

  /* Letter spacing */
  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-wider: 0.08em;
  --tracking-widest: 0.15em;
  --tracking-ultra: 0.25em;

  /* ------------------------------------------------------------------
     Spacing
     ------------------------------------------------------------------ */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;
  --space-5xl: 8rem;

  /* Section padding - fluid */
  --section-padding-sm: clamp(2rem, 1rem + 3vw, 3rem);
  --section-padding: clamp(3.5rem, 2rem + 5vw, 6rem);
  --section-padding-lg: clamp(5rem, 3rem + 6vw, 8rem);

  /* ------------------------------------------------------------------
     Container
     ------------------------------------------------------------------ */
  --container-narrow: 800px;
  --container-default: 1100px;
  --container-wide: 1280px;
  --container-padding: clamp(1rem, 0.5rem + 2vw, 2rem);

  /* ------------------------------------------------------------------
     Border radius
     ------------------------------------------------------------------ */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* ------------------------------------------------------------------
     Shadows - Layered for depth
     ------------------------------------------------------------------ */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.03), 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 4px 6px rgba(0, 0, 0, 0.02), 0 12px 28px rgba(0, 0, 0, 0.08);
  --shadow-xl: 0 8px 16px rgba(0, 0, 0, 0.03), 0 20px 48px rgba(0, 0, 0, 0.1);
  --shadow-2xl: 0 12px 24px rgba(0, 0, 0, 0.04), 0 32px 64px rgba(0, 0, 0, 0.12);
  --shadow-hover: 0 8px 16px rgba(0, 0, 0, 0.04), 0 24px 48px rgba(0, 0, 0, 0.1);
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 4px 8px rgba(0, 0, 0, 0.03), 0 16px 32px rgba(0, 0, 0, 0.08);
  --shadow-brand: 0 4px 16px rgba(0, 0, 0, 0.08), 0 8px 32px rgba(0, 0, 0, 0.06);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.05);

  /* ------------------------------------------------------------------
     Easing - Signature curves
     ------------------------------------------------------------------ */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);

  /* ------------------------------------------------------------------
     Transitions
     ------------------------------------------------------------------ */
  --transition-fast: 0.15s var(--ease-smooth);
  --transition-base: 0.3s var(--ease-smooth);
  --transition-slow: 0.5s var(--ease-out-expo);
  --transition-slower: 0.7s var(--ease-out-expo);

  /* ------------------------------------------------------------------
     Z-index
     ------------------------------------------------------------------ */
  --z-behind: -1;
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-fixed: 300;
  --z-overlay: 400;
  --z-modal: 500;
  --z-header: 1000;
  --z-toast: 1100;
  --z-max: 9999;

  /* ------------------------------------------------------------------
     Header
     ------------------------------------------------------------------ */
  --header-height: 80px;
  --header-height-scrolled: 64px;

  /* ------------------------------------------------------------------
     Breakpoints (as comments for reference, used in media queries)
     sm:  540px
     md:  768px
     lg:  1024px
     xl:  1280px
     ------------------------------------------------------------------ */
}

/* ==========================================================================
   Reset - Modern CSS Reset
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

nav ul,
nav ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

fieldset {
  border: none;
}

textarea {
  resize: vertical;
}

iframe {
  border: 0;
}

summary {
  cursor: pointer;
}

[hidden] {
  display: none !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Typography - Fluid type scale & refined heading system
   ========================================================================== */

/* ------------------------------------------------------------------
   Google Fonts loaded via <link> in header.php:
   - Noto Sans JP: 400, 500, 700
   - Lato: 400, 700
   ------------------------------------------------------------------ */

/* Base typography */
body {
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: var(--fw-regular);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt" 1;
}

/* Headings - fluid sizing via clamp() variables, no media queries needed */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-jp);
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text-primary);
  text-wrap: balance;
}

h1 { font-size: var(--text-5xl); }
h2 { font-size: var(--text-4xl); line-height: var(--leading-snug); }
h3 { font-size: var(--text-2xl); line-height: var(--leading-snug); }
h4 { font-size: var(--text-xl);  line-height: var(--leading-normal); }
h5 { font-size: var(--text-lg);  line-height: var(--leading-normal); }
h6 { font-size: var(--text-base); line-height: var(--leading-normal); }

/* English font for numbers and specific elements */
.is-en,
[lang="en"] {
  font-family: var(--font-en);
  letter-spacing: var(--tracking-normal);
}

/* Display heading - hero-level impact */
.is-display {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  line-height: var(--leading-none);
  letter-spacing: var(--tracking-tight);
}

/* Paragraph */
p {
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wide);
}

p + p {
  margin-top: 1em;
}

/* Small text */
small {
  font-size: var(--text-sm);
}

/* Strong */
strong, b {
  font-weight: var(--fw-bold);
}

/* Emphasis */
em, i {
  font-style: italic;
}

/* Mark */
mark {
  background: linear-gradient(transparent 60%, var(--color-brand-light) 60%);
  padding: 0.1em 0.2em;
}

/* ==========================================================================
   Section Heading Pattern - refined with decorative accents
   ========================================================================== */
.c-section-heading {
  text-align: center;
  margin-bottom: var(--space-3xl);
  position: relative;
}

/* English label above heading - flanked with gradient lines */
.c-section-heading__en {
  display: inline-flex;
  align-items: center;
  gap: var(--space-md);
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-ultra);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
  position: relative;
}

/* Decorative gradient lines flanking label */
.c-section-heading__en::before,
.c-section-heading__en::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  border-radius: 1px;
  flex-shrink: 0;
}

.c-section-heading__en::before {
  background: linear-gradient(90deg, transparent, var(--color-brand-primary));
}

.c-section-heading__en::after {
  background: linear-gradient(90deg, var(--color-brand-primary), transparent);
}

@media (min-width: 768px) {
  .c-section-heading__en::before,
  .c-section-heading__en::after {
    width: 48px;
  }
}

/* Japanese heading */
.c-section-heading__ja {
  display: block;
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wider);
  position: relative;
}

/* Subtle decorative dot after heading */
.c-section-heading__ja::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  background: var(--color-brand-primary);
  border-radius: 50%;
  margin: var(--space-md) auto 0;
  opacity: 0.4;
}

/* Description */
.c-section-heading__desc {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* Section label (standalone) */
.c-section-label {
  display: inline-block;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-ultra);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.c-section-label--light {
  color: var(--color-brand-light);
}

/* Dark (now accent) background section heading overrides */
.l-section--dark .c-section-heading__en {
  color: var(--color-brand-primary);
}

.l-section--dark .c-section-heading__en::before {
  background: linear-gradient(90deg, transparent, var(--color-brand-primary));
}

.l-section--dark .c-section-heading__en::after {
  background: linear-gradient(90deg, var(--color-brand-primary), transparent);
}

.l-section--dark .c-section-heading__ja {
  color: var(--color-text-primary);
}

.l-section--dark .c-section-heading__ja::after {
  background: var(--color-brand-primary);
  opacity: 0.15;
}

.l-section--dark .c-section-heading__desc {
  color: var(--color-text-secondary);
}

/* Japanese text line-height override for long content */
.is-jp-body {
  line-height: var(--leading-loose);
  letter-spacing: var(--tracking-wide);
}

/* Selection color */
::selection {
  background-color: var(--color-brand-light);
  color: var(--color-text-primary);
}

/* ==========================================================================
   Base - Default element styles
   ========================================================================== */

/* Body */
body {
  background-color: var(--color-bg);
  overflow-x: hidden;
}

/* Links */
a {
  color: var(--color-brand-primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-brand-primary-hover);
}

a:focus-visible {
  outline: 2px solid var(--color-brand-primary);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

/* Focus visible for all interactive elements */
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--color-brand-primary);
  outline-offset: 2px;
}

/* Images */
img {
  display: block;
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
}

figcaption {
  margin-top: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Lists (in content areas) */
.s-content ul,
.s-content ol {
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.s-content ul {
  list-style-type: disc;
}

.s-content ol {
  list-style-type: decimal;
}

.s-content li + li {
  margin-top: 0.5em;
}

.p-typography ul,
.p-typography ol {
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.p-typography ul {
  list-style-type: disc;
}

.p-typography ol {
  list-style-type: decimal;
}

.p-typography li + li {
  margin-top: 0.5em;
}

/* Tables */
table {
  width: 100%;
  border-collapse: collapse;
}

/* Horizontal rule */
hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: var(--space-2xl) 0;
}

/* Blockquote */
blockquote {
  border-left: 4px solid var(--color-brand-primary);
  padding: var(--space-md) var(--space-lg);
  margin: var(--space-lg) 0;
  background-color: var(--color-bg-accent);
  font-style: italic;
  color: var(--color-text-secondary);
}

blockquote p:last-child {
  margin-bottom: 0;
}

blockquote cite {
  display: block;
  margin-top: var(--space-sm);
  font-size: var(--text-sm);
  font-style: normal;
  color: var(--color-text-muted);
}

/* Code */
code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.875em;
  background-color: var(--color-bg-accent);
  padding: 0.15em 0.4em;
  border-radius: var(--radius-sm);
}

pre {
  background-color: var(--color-bg-dark);
  color: var(--color-text-white);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  overflow-x: auto;
  margin: var(--space-lg) 0;
}

pre code {
  background: none;
  padding: 0;
  font-size: var(--text-sm);
  color: inherit;
}

/* Selection */
::selection {
  background-color: var(--color-brand-light);
  color: var(--color-text-primary);
}

/* Screen reader only */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ------------------------------------------------------------------
   Container
   ------------------------------------------------------------------ */
.l-container {
  width: 100%;
  max-width: var(--container-default);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.l-container--narrow {
  max-width: var(--container-narrow);
}

.l-container--wide {
  max-width: var(--container-wide);
}

@media (min-width: 768px) {
  .l-container {
    padding-left: var(--space-xl);
    padding-right: var(--space-xl);
  }
}

@media (min-width: 1024px) {
  .l-container {
    padding-left: var(--space-2xl);
    padding-right: var(--space-2xl);
  }
}

/* ==========================================================================
   Header - Enhanced with animations and micro-interactions
   ========================================================================== */

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-height);
  z-index: var(--z-header);
  transition:
    height 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ------------------------------------------------------------------
   Default state: transparent (on top of hero)
   ------------------------------------------------------------------ */
.l-header--transparent {
  background-color: transparent;
}

/* Solid background (non-hero pages) */
.l-header--solid {
  background-color: var(--color-bg-white);
  box-shadow: var(--shadow-sm);
}

/* ------------------------------------------------------------------
   Scrolled state: solid white with blur
   ------------------------------------------------------------------ */
.l-header.is-scrolled {
  height: var(--header-height-scrolled);
  background-color: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.06);
}

/* ------------------------------------------------------------------
   Hidden on scroll down, show on scroll up
   ------------------------------------------------------------------ */
.l-header.is-hidden {
  transform: translateY(-100%);
}

/* ------------------------------------------------------------------
   Progress bar at top of header
   ------------------------------------------------------------------ */
.l-header__progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 1;
  pointer-events: none;
}

.l-header__progress-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #1a1a1a, #333333);
  transition: width 0.1s linear;
}

/* ------------------------------------------------------------------
   Header inner layout
   ------------------------------------------------------------------ */
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

@media (min-width: 768px) {
  .l-header__inner {
    padding: 0 var(--space-xl);
  }
}

/* ------------------------------------------------------------------
   Logo - animated on load
   ------------------------------------------------------------------ */
.l-header__logo {
  flex-shrink: 0;
  z-index: calc(var(--z-header) + 1);
  opacity: 0;
  transform: translateY(-8px);
  animation: headerLogoIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
}

@keyframes headerLogoIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.l-header__logo a {
  display: flex;
  align-items: center;
}

.l-header__logo img {
  height: 40px;
  width: auto;
  transition: height 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-header.is-scrolled .l-header__logo img {
  height: 32px;
}

/* ------------------------------------------------------------------
   Navigation
   ------------------------------------------------------------------ */
.l-header__nav {
  display: none;
}

@media (min-width: 1024px) {
  .l-header__nav {
    display: flex;
    align-items: center;
  }
}

.l-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
}

.l-header__nav-item {
  position: relative;
  opacity: 0;
  transform: translateY(-6px);
  animation: headerNavIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Stagger nav items on load */
.l-header__nav-item:nth-child(1) { animation-delay: 0.3s; }
.l-header__nav-item:nth-child(2) { animation-delay: 0.38s; }
.l-header__nav-item:nth-child(3) { animation-delay: 0.46s; }
.l-header__nav-item:nth-child(4) { animation-delay: 0.54s; }
.l-header__nav-item:nth-child(5) { animation-delay: 0.62s; }
.l-header__nav-item:nth-child(6) { animation-delay: 0.70s; }
.l-header__nav-item:nth-child(7) { animation-delay: 0.78s; }

@keyframes headerNavIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Nav link with animated underline */
.l-header__nav-link {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wide);
  padding: var(--space-sm) 0;
  transition: color 0.3s ease;
  position: relative;
}

/* Animated underline from left */
.l-header__nav-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--color-brand-primary);
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-header__nav-link:hover,
.l-header__nav-link.is-current {
  color: var(--color-brand-primary);
}

.l-header__nav-link:hover::after,
.l-header__nav-link.is-current::after {
  width: 100%;
}

/* ------------------------------------------------------------------
   Transparent header nav colors
   ------------------------------------------------------------------ */
.l-header--transparent .l-header__nav-link {
  color: var(--color-text-white);
}

.l-header--transparent .l-header__nav-link::after {
  background-color: var(--color-brand-light);
}

.l-header--transparent .l-header__nav-link:hover,
.l-header--transparent .l-header__nav-link.is-current {
  color: var(--color-brand-light);
}

/* Scrolled transparent to solid text */
.l-header--transparent.is-scrolled .l-header__nav-link {
  color: var(--color-text-primary);
}

.l-header--transparent.is-scrolled .l-header__nav-link::after {
  background-color: var(--color-brand-primary);
}

.l-header--transparent.is-scrolled .l-header__nav-link:hover,
.l-header--transparent.is-scrolled .l-header__nav-link.is-current {
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Nav link label structure (en/ja)
   ------------------------------------------------------------------ */
.l-header__menu-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: var(--space-sm) var(--space-xs);
  text-decoration: none;
  position: relative;
  transition: color 0.3s ease;
}

.l-header__menu-en {
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-brand-primary);
  transition: color 0.3s;
}

.l-header__menu-ja {
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wide);
  transition: color 0.3s;
}

.l-header__menu-link:hover .l-header__menu-ja {
  color: var(--color-brand-primary);
}

/* Animated underline for en/ja links */
.l-header__menu-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--color-brand-primary);
  transform: translateX(-50%);
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-header__menu-link:hover::after,
.l-header__menu-item.is-current .l-header__menu-link::after {
  width: 80%;
}

/* Transparent header en/ja overrides */
.l-header--transparent .l-header__menu-en {
  color: var(--color-brand-light);
}

.l-header--transparent .l-header__menu-ja {
  color: rgba(255, 255, 255, 0.9);
}

.l-header--transparent .l-header__menu-link::after {
  background: var(--color-brand-light);
}

.l-header--transparent.is-scrolled .l-header__menu-en {
  color: var(--color-brand-primary);
}

.l-header--transparent.is-scrolled .l-header__menu-ja {
  color: var(--color-text-primary);
}

.l-header--transparent.is-scrolled .l-header__menu-link::after {
  background: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Mega Menu (Services dropdown)
   ------------------------------------------------------------------ */
.l-header__mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  width: 520px;
  background: var(--color-bg-white);
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
  padding: var(--space-lg);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.3s;
  pointer-events: none;
}

.l-header__menu-item:hover .l-header__mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(4px);
  pointer-events: auto;
}

/* Top accent gradient */
.l-header__mega-menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary));
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

/* Arrow pointer */
.l-header__mega-menu::after {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: var(--color-bg-white);
  border-top: 1px solid rgba(0, 0, 0, 0.04);
  border-left: 1px solid rgba(0, 0, 0, 0.04);
}

.l-header__mega-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-xs);
}

.l-header__mega-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  padding: var(--space-md);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background-color 0.2s, transform 0.2s;
}

.l-header__mega-item:hover {
  background: var(--color-bg-accent);
  transform: translateX(2px);
}

.l-header__mega-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.02));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-brand-primary);
  transition: background 0.3s, color 0.3s;
}

.l-header__mega-item:hover .l-header__mega-icon {
  background: linear-gradient(135deg, #1a1a1a, #333333);
  color: #fff;
}

.l-header__mega-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.l-header__mega-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  transition: color 0.2s;
}

.l-header__mega-item:hover .l-header__mega-title {
  color: var(--color-brand-primary);
}

.l-header__mega-desc {
  font-size: 11px;
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

/* Prevent gap between link and mega menu */
.l-header__menu-item--has-children {
  position: relative;
}

.l-header__menu-item--has-children::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 0;
  right: 0;
  height: 16px;
}

@media (max-width: 1023px) {
  .l-header__mega-menu {
    display: none;
  }
}

/* ------------------------------------------------------------------
   Dropdown menu with staggered items (legacy/simple)
   ------------------------------------------------------------------ */
.l-header__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 200px;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: var(--space-sm) 0;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-header__nav-item:hover .l-header__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

/* Stagger dropdown links */
.l-header__dropdown-item {
  opacity: 0;
  transform: translateY(-6px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.l-header__nav-item:hover .l-header__dropdown-item {
  opacity: 1;
  transform: translateY(0);
}

.l-header__nav-item:hover .l-header__dropdown-item:nth-child(1) { transition-delay: 0.05s; }
.l-header__nav-item:hover .l-header__dropdown-item:nth-child(2) { transition-delay: 0.1s; }
.l-header__nav-item:hover .l-header__dropdown-item:nth-child(3) { transition-delay: 0.15s; }
.l-header__nav-item:hover .l-header__dropdown-item:nth-child(4) { transition-delay: 0.2s; }
.l-header__nav-item:hover .l-header__dropdown-item:nth-child(5) { transition-delay: 0.25s; }
.l-header__nav-item:hover .l-header__dropdown-item:nth-child(6) { transition-delay: 0.3s; }

.l-header__dropdown-link {
  display: block;
  padding: var(--space-sm) var(--space-lg);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  white-space: nowrap;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    padding-left 0.2s ease;
}

.l-header__dropdown-link:hover {
  background-color: var(--color-bg-accent);
  color: var(--color-brand-primary);
  padding-left: calc(var(--space-lg) + 4px);
}

/* ------------------------------------------------------------------
   Header CTA
   ------------------------------------------------------------------ */
.l-header__cta {
  display: none;
}

@media (min-width: 1024px) {
  .l-header__cta {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-left: var(--space-xl);
    opacity: 0;
    animation: headerNavIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.8s forwards;
  }
}

.l-header__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 28px;
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-sm);
  position: relative;
  overflow: hidden;
  transition:
    background-color 0.3s ease,
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Shine effect on CTA */
.l-header__cta-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.2) 50%,
    transparent 100%
  );
  transform: skewX(-25deg);
}

.l-header__cta-btn:hover::before {
  animation: btnShine 0.6s ease forwards;
}

@keyframes btnShine {
  from { left: -100%; }
  to { left: 150%; }
}

.l-header__cta-btn:hover {
  background-color: var(--color-brand-primary-hover);
  color: var(--color-text-white);
  transform: translateY(-1px);
}

/* ------------------------------------------------------------------
   Hamburger button (mobile) - smooth morphing animation
   ------------------------------------------------------------------ */
.l-header__hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  cursor: pointer;
  z-index: calc(var(--z-header) + 2);
  position: relative;
}

@media (min-width: 1024px) {
  .l-header__hamburger {
    display: none;
  }
}

.l-header__hamburger-line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-text-primary);
  transition:
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.3s ease,
    width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: center;
}

/* Transparent header lines */
.l-header--transparent .l-header__hamburger-line {
  background-color: var(--color-text-white);
}

.l-header--transparent.is-scrolled .l-header__hamburger-line {
  background-color: var(--color-text-primary);
}

.l-header__hamburger-line + .l-header__hamburger-line {
  margin-top: 6px;
}

/* Staggered line widths for visual interest */
.l-header__hamburger-line:nth-child(2) {
  width: 18px;
  align-self: flex-end;
}

.l-header__hamburger:hover .l-header__hamburger-line:nth-child(2) {
  width: 24px;
}

/* ------------------------------------------------------------------
   Hamburger open state: morph to X
   ------------------------------------------------------------------ */
.l-header__hamburger.is-open .l-header__hamburger-line:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
  background-color: var(--color-text-primary);
}

.l-header__hamburger.is-open .l-header__hamburger-line:nth-child(2) {
  opacity: 0;
  width: 0;
}

.l-header__hamburger.is-open .l-header__hamburger-line:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
  background-color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Mobile menu - fullscreen overlay with animations
   ------------------------------------------------------------------ */
.l-header__mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background-color: var(--color-bg-white);
  z-index: var(--z-header);
  padding: calc(var(--header-height) + var(--space-2xl)) var(--container-padding) var(--space-2xl);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-header__mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
}

/* ------------------------------------------------------------------
   Mobile nav links with staggered entrance
   ------------------------------------------------------------------ */
.l-header__mobile-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.l-header__mobile-nav-item {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Stagger mobile nav items */
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(1) {
  opacity: 1; transform: translateY(0); transition-delay: 0.1s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(2) {
  opacity: 1; transform: translateY(0); transition-delay: 0.16s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(3) {
  opacity: 1; transform: translateY(0); transition-delay: 0.22s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(4) {
  opacity: 1; transform: translateY(0); transition-delay: 0.28s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(5) {
  opacity: 1; transform: translateY(0); transition-delay: 0.34s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(6) {
  opacity: 1; transform: translateY(0); transition-delay: 0.40s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(7) {
  opacity: 1; transform: translateY(0); transition-delay: 0.46s;
}
.l-header__mobile-menu.is-open .l-header__mobile-nav-item:nth-child(8) {
  opacity: 1; transform: translateY(0); transition-delay: 0.52s;
}

.l-header__mobile-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md) 0;
  font-size: var(--text-lg);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  border-bottom: 1px solid var(--color-border);
  transition: color 0.2s ease;
}

.l-header__mobile-nav-link:hover,
.l-header__mobile-nav-link.is-current {
  color: var(--color-brand-primary);
}

/* Arrow indicator for mobile links */
.l-header__mobile-nav-link::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.4;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.l-header__mobile-nav-link:hover::after {
  opacity: 1;
  transform: rotate(45deg) translate(2px, -2px);
}

/* Mobile English subtitle */
.l-header__mobile-nav-sub {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin-top: 2px;
}

/* ------------------------------------------------------------------
   Mobile menu CTA
   ------------------------------------------------------------------ */
.l-header__mobile-cta {
  margin-top: var(--space-2xl);
  text-align: center;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.55s,
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.55s;
}

.l-header__mobile-menu.is-open .l-header__mobile-cta {
  opacity: 1;
  transform: translateY(0);
}

.l-header__mobile-cta .c-btn {
  width: 100%;
  max-width: 300px;
}

/* ------------------------------------------------------------------
   Mobile menu social / contact info
   ------------------------------------------------------------------ */
.l-header__mobile-info {
  margin-top: var(--space-2xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border);
  opacity: 0;
  transition: opacity 0.4s ease 0.6s;
}

.l-header__mobile-menu.is-open .l-header__mobile-info {
  opacity: 1;
}

/* ------------------------------------------------------------------
   Scroll Progress Bar
   ------------------------------------------------------------------ */
.c-progress-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: transparent;
  z-index: 1;
  overflow: hidden;
}

.c-progress-bar__fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-light), var(--color-brand-secondary));
  background-size: 200% 100%;
  animation: progressGradient 3s ease infinite;
  border-radius: 0 1px 1px 0;
  transition: width 0.1s linear;
}

@keyframes progressGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Show progress bar only when scrolled */
.l-header:not(.is-scrolled) .c-progress-bar {
  opacity: 0;
}

/* ------------------------------------------------------------------
   Body lock when menu open
   ------------------------------------------------------------------ */
body.is-menu-open {
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .l-header {
    transition: none;
  }

  .l-header__logo {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .l-header__nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .l-header__cta {
    animation: none;
    opacity: 1;
  }

  .l-header__nav-link::after {
    transition: none;
  }

  .l-header__dropdown,
  .l-header__dropdown-item {
    transition: none;
  }

  .l-header__hamburger-line {
    transition: none;
  }

  .l-header__mobile-menu {
    transition: none;
  }

  .l-header__mobile-nav-item {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .l-header__mobile-cta {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .l-header__mobile-info {
    opacity: 1;
    transition: none;
  }

  .l-header__cta-btn::before {
    display: none;
  }

  .l-header__mobile-nav-link::after {
    transition: none;
  }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.l-footer {
  background-color: var(--color-bg-accent);
  color: var(--color-text-secondary);
}

/* Footer main area */
.l-footer__main {
  padding: var(--space-4xl) 0 var(--space-3xl);
}

.l-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}

@media (min-width: 540px) {
  .l-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .l-footer__grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: var(--space-3xl);
  }
}

/* Footer column: Brand */
.l-footer__brand {
  grid-column: 1 / -1;
}

@media (min-width: 1024px) {
  .l-footer__brand {
    grid-column: auto;
  }
}

.l-footer__logo {
  display: inline-block;
  margin-bottom: var(--space-lg);
}

.l-footer__logo img {
  height: 36px;
  width: auto;
}

.l-footer__desc {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-muted);
  max-width: 300px;
}

/* Social icons */
.l-footer__social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-top: var(--space-lg);
}

.l-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background-color: var(--color-bg-white);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border-light);
  text-decoration: none;
  flex-shrink: 0;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.l-footer__social-link:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  border-color: var(--color-brand-primary);
}

.l-footer__social-link svg,
.l-footer__social-link img {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Footer column heading */
.l-footer__heading {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
  font-family: var(--font-en);
}

/* Footer navigation links (used as both nav-link and link classes) */
.l-footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.l-footer__nav-link,
.l-footer__link {
  display: inline-block;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  padding: var(--space-xs) 0;
  text-decoration: none;
  transition: color var(--transition-fast);
}

.l-footer__nav-link:hover,
.l-footer__link:hover {
  color: var(--color-brand-primary);
}

/* Footer contact info */
.l-footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.l-footer__contact-item svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 3px;
  opacity: 0.6;
}

/* ------------------------------------------------------------------
   Footer bottom bar
   ------------------------------------------------------------------ */
.l-footer__bottom {
  border-top: 1px solid var(--color-border-light);
  padding: var(--space-lg) 0;
}

.l-footer__bottom-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 768px) {
  .l-footer__bottom-inner {
    flex-direction: row;
    justify-content: space-between;
  }
}

.l-footer__copyright,
.l-footer__copy {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-en);
  letter-spacing: var(--tracking-wide);
}

.l-footer__bottom-nav {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
}

.l-footer__bottom-link {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  transition: color var(--transition-fast);
}

.l-footer__bottom-link:hover {
  color: var(--color-text-primary);
}

/* ==========================================================================
   Sidebar - Blog sidebar layout
   ========================================================================== */

.l-sidebar {
  width: 100%;
}

@media (min-width: 1024px) {
  .l-sidebar {
    width: 300px;
    flex-shrink: 0;
    position: sticky;
    top: calc(var(--header-height-scrolled) + var(--space-xl));
    align-self: flex-start;
    max-height: calc(100vh - var(--header-height-scrolled) - var(--space-2xl));
    overflow-y: auto;
  }
}

/* Widget base */
.l-sidebar__widget {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  margin-bottom: var(--space-lg);
  box-shadow: var(--shadow-sm);
}

.l-sidebar__widget:last-child {
  margin-bottom: 0;
}

/* Widget heading */
.l-sidebar__widget-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 2px solid var(--color-brand-primary);
  letter-spacing: var(--tracking-wide);
}

/* Search form */
.l-sidebar__search {
  display: flex;
  align-items: stretch;
}

.l-sidebar__search-input {
  flex: 1;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-right: none;
  border-radius: var(--radius-md) 0 0 var(--radius-md);
  font-size: var(--text-sm);
  background-color: var(--color-bg);
  transition: border-color var(--transition-fast);
}

.l-sidebar__search-input:focus {
  border-color: var(--color-brand-primary);
  outline: none;
}

.l-sidebar__search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  background-color: var(--color-brand-primary);
  border: 1px solid var(--color-brand-primary);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  color: var(--color-text-white);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.l-sidebar__search-btn:hover {
  background-color: var(--color-brand-primary-hover);
}

.l-sidebar__search-btn svg {
  width: 16px;
  height: 16px;
}

/* Category list */
.l-sidebar__category-list {
  display: flex;
  flex-direction: column;
}

.l-sidebar__category-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-sm) 0;
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  border-bottom: 1px solid var(--color-border-light);
  transition: color var(--transition-fast);
}

.l-sidebar__category-link:last-child {
  border-bottom: none;
}

.l-sidebar__category-link:hover {
  color: var(--color-brand-primary);
}

.l-sidebar__category-count {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-en);
}

/* Recent posts */
.l-sidebar__recent-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.l-sidebar__recent-item {
  display: flex;
  gap: var(--space-sm);
}

.l-sidebar__recent-thumb {
  width: 72px;
  height: 52px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  flex-shrink: 0;
}

.l-sidebar__recent-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.l-sidebar__recent-body {
  flex: 1;
  min-width: 0;
}

.l-sidebar__recent-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition-fast);
}

.l-sidebar__recent-title:hover {
  color: var(--color-brand-primary);
}

.l-sidebar__recent-date {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-en);
  margin-top: var(--space-xs);
}

/* Tag cloud */
.l-sidebar__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.l-sidebar__tag {
  display: inline-block;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
  background-color: var(--color-bg);
  border-radius: var(--radius-sm);
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast);
}

.l-sidebar__tag:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

/* CTA banner widget */
.l-sidebar__cta {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  text-align: center;
  padding: var(--space-xl) var(--space-lg);
}

.l-sidebar__cta .l-sidebar__widget-title {
  color: var(--color-text-white);
  border-bottom-color: rgba(255, 255, 255, 0.3);
}

.l-sidebar__cta-text {
  font-size: var(--text-sm);
  margin-bottom: var(--space-md);
  line-height: var(--leading-relaxed);
}

/* ==========================================================================
   Grid - Layout utilities
   ========================================================================== */

/* ------------------------------------------------------------------
   CSS Grid system
   ------------------------------------------------------------------ */
.l-grid {
  display: grid;
  gap: var(--space-lg);
}

/* 2-column grid */
.l-grid--2 {
  grid-template-columns: 1fr;
}

@media (min-width: 540px) {
  .l-grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 3-column grid */
.l-grid--3 {
  grid-template-columns: 1fr;
}

@media (min-width: 540px) {
  .l-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .l-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* 4-column grid */
.l-grid--4 {
  grid-template-columns: 1fr;
}

@media (min-width: 540px) {
  .l-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .l-grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Gap variants */
.l-grid--gap-sm {
  gap: var(--space-sm);
}

.l-grid--gap-md {
  gap: var(--space-md);
}

.l-grid--gap-lg {
  gap: var(--space-lg);
}

.l-grid--gap-xl {
  gap: var(--space-xl);
}

.l-grid--gap-2xl {
  gap: var(--space-2xl);
}

.l-grid--gap-3xl {
  gap: var(--space-3xl);
}

/* ------------------------------------------------------------------
   Flexbox utilities
   ------------------------------------------------------------------ */
.l-flex {
  display: flex;
}

.l-flex--column {
  flex-direction: column;
}

.l-flex--wrap {
  flex-wrap: wrap;
}

.l-flex--center {
  align-items: center;
  justify-content: center;
}

.l-flex--between {
  align-items: center;
  justify-content: space-between;
}

.l-flex--start {
  align-items: flex-start;
}

.l-flex--end {
  justify-content: flex-end;
}

.l-flex--gap-sm {
  gap: var(--space-sm);
}

.l-flex--gap-md {
  gap: var(--space-md);
}

.l-flex--gap-lg {
  gap: var(--space-lg);
}

.l-flex--gap-xl {
  gap: var(--space-xl);
}

/* ------------------------------------------------------------------
   Section spacing
   ------------------------------------------------------------------ */
.l-section {
  padding-top: var(--section-padding-sm);
  padding-bottom: var(--section-padding-sm);
}

@media (min-width: 768px) {
  .l-section {
    padding-top: var(--section-padding);
    padding-bottom: var(--section-padding);
  }
}

@media (min-width: 1024px) {
  .l-section {
    padding-top: var(--section-padding-lg);
    padding-bottom: var(--section-padding-lg);
  }
}

.l-section--sm {
  padding-top: var(--space-2xl);
  padding-bottom: var(--space-2xl);
}

@media (min-width: 768px) {
  .l-section--sm {
    padding-top: var(--section-padding-sm);
    padding-bottom: var(--section-padding-sm);
  }
}

.l-section--lg {
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
}

@media (min-width: 768px) {
  .l-section--lg {
    padding-top: var(--section-padding-lg);
    padding-bottom: var(--section-padding-lg);
  }
}

/* Section backgrounds */
.l-section--white {
  background-color: var(--color-bg-white);
}

.l-section--accent {
  background-color: var(--color-bg-accent);
}

.l-section--dark {
  background-color: var(--color-bg-accent);
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Content + Sidebar layout (blog)
   ------------------------------------------------------------------ */
.l-content-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
}

@media (min-width: 1024px) {
  .l-content-sidebar {
    flex-direction: row;
    gap: var(--space-3xl);
  }
}

.l-content-sidebar__main {
  flex: 1 1 0%;
  min-width: 0;
  position: relative;
  z-index: 1;
}

/* max-width removed — layout sizing handled by parent flex/grid */

.l-content-sidebar__side {
  width: 100%;
  position: relative;
  z-index: 0;
}

@media (min-width: 1024px) {
  .l-content-sidebar__side {
    flex: 0 0 300px;
    width: 300px;
    max-width: 300px;
  }
}

/* ==========================================================================
   Buttons - Enhanced with advanced interactions
   ========================================================================== */

/* ------------------------------------------------------------------
   Base button
   ------------------------------------------------------------------ */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: 16px 40px;
  font-family: var(--font-jp);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  line-height: 1;
  letter-spacing: var(--tracking-wide);
  text-align: center;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition:
    background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

/* Allow text wrapping for large buttons with long labels */
.c-btn--lg {
  white-space: normal;
  text-align: center;
}

.c-btn:focus-visible {
  outline: 2px solid var(--color-brand-primary);
  outline-offset: 2px;
}

/* Hover lift effect */
.c-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.c-btn:active {
  transform: translateY(0);
  box-shadow: none;
}

/* ------------------------------------------------------------------
   Ripple effect on click (::after)
   ------------------------------------------------------------------ */
.c-btn::after {
  content: "";
  position: absolute;
  top: var(--ripple-y, 50%);
  left: var(--ripple-x, 50%);
  width: 0;
  height: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
}

.c-btn.is-rippling::after {
  animation: btnRipple 0.6s ease-out forwards;
}

@keyframes btnRipple {
  0% {
    width: 0;
    height: 0;
    opacity: 0.5;
    transform: translate(-50%, -50%) scale(0);
  }
  100% {
    width: 300px;
    height: 300px;
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* ------------------------------------------------------------------
   Magnetic hover (JS sets --btn-magnetic-x, --btn-magnetic-y)
   ------------------------------------------------------------------ */
.c-btn--magnetic {
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.3s ease;
}

.c-btn--magnetic:hover {
  transform:
    translate(
      var(--btn-magnetic-x, 0),
      var(--btn-magnetic-y, 0)
    );
}

/* ------------------------------------------------------------------
   Shine sweep on hover (::before)
   ------------------------------------------------------------------ */
.c-btn--shine::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.25) 50%,
    transparent 100%
  );
  transform: skewX(-25deg);
  z-index: 1;
  pointer-events: none;
}

.c-btn--shine:hover::before {
  animation: btnShine 0.6s ease forwards;
}

@keyframes btnShine {
  from {
    left: -100%;
  }
  to {
    left: 150%;
  }
}

/* ------------------------------------------------------------------
   Gradient border animation
   ------------------------------------------------------------------ */
.c-btn--gradient-border {
  background: var(--color-bg-white);
  border: none;
  position: relative;
  z-index: 0;
  padding: 18px 42px; /* slightly larger to compensate for border trick */
}

.c-btn--gradient-border::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: var(--radius-full);
  padding: 2px;
  background: linear-gradient(135deg, #1a1a1a, #333333, #333333);
  background-size: 200% 200%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  z-index: -1;
  transition: background-position 0.5s ease;
}

.c-btn--gradient-border:hover::before {
  background-position: 100% 100%;
}

.c-btn--gradient-border:hover {
  color: #1a1a1a;
}

/* ------------------------------------------------------------------
   Arrow slide on hover
   ------------------------------------------------------------------ */
.c-btn--arrow::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg) translateX(0);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  margin-left: var(--space-xs);
}

.c-btn--arrow:hover::after {
  animation: btnArrowSlide 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes btnArrowSlide {
  0% {
    transform: rotate(45deg) translateX(0);
    opacity: 1;
  }
  40% {
    transform: rotate(45deg) translateX(8px);
    opacity: 0;
  }
  41% {
    transform: rotate(45deg) translateX(-8px);
    opacity: 0;
  }
  100% {
    transform: rotate(45deg) translateX(0);
    opacity: 1;
  }
}

/* ------------------------------------------------------------------
   Underline draw (text-only buttons)
   ------------------------------------------------------------------ */
.c-btn--text {
  background: none;
  border: none;
  padding: 8px 0;
  border-radius: 0;
  position: relative;
  overflow: visible;
}

.c-btn--text::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: currentColor;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-btn--text:hover {
  transform: none;
  box-shadow: none;
}

.c-btn--text:hover::after {
  width: 100%;
}

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

/* Primary */
.c-btn--primary {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  border-color: var(--color-brand-primary);
}

.c-btn--primary:hover {
  background-color: var(--color-brand-primary-hover);
  border-color: var(--color-brand-primary-hover);
  color: var(--color-text-white);
}

.c-btn--primary:active {
  background-color: var(--color-brand-primary-active);
  border-color: var(--color-brand-primary-active);
}

/* Secondary / Outline */
.c-btn--secondary,
.c-btn--outline {
  background-color: transparent;
  color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
}

.c-btn--secondary:hover,
.c-btn--outline:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.c-btn--secondary:active,
.c-btn--outline:active {
  background-color: var(--color-brand-primary-hover);
  border-color: var(--color-brand-primary-hover);
  color: var(--color-text-white);
}

/* White */
.c-btn--white {
  background-color: var(--color-bg-white);
  color: var(--color-text-primary);
  border-color: var(--color-bg-white);
}

.c-btn--white:hover {
  background-color: var(--color-bg);
  border-color: var(--color-bg);
  color: var(--color-text-primary);
}

/* Dark */
.c-btn--dark {
  background-color: var(--color-bg-dark);
  color: var(--color-text-white);
  border-color: var(--color-bg-dark);
}

.c-btn--dark:hover {
  background-color: #3d3d3d;
  border-color: #3d3d3d;
  color: var(--color-text-white);
}

/* Ghost (transparent with white border, for dark backgrounds) */
.c-btn--ghost {
  background-color: transparent;
  color: var(--color-text-white);
  border-color: rgba(255, 255, 255, 0.6);
}

.c-btn--ghost:hover {
  background-color: var(--color-text-white);
  color: var(--color-text-primary);
  border-color: var(--color-text-white);
}

/* ------------------------------------------------------------------
   Sizes
   ------------------------------------------------------------------ */

/* Small */
.c-btn--sm {
  padding: 10px 24px;
  font-size: var(--text-xs);
}

/* Large */
.c-btn--lg {
  padding: 20px 56px;
  font-size: var(--text-base);
}

/* Full width */
.c-btn--full {
  width: 100%;
}

/* ------------------------------------------------------------------
   Icon button
   ------------------------------------------------------------------ */
.c-btn--icon {
  width: 48px;
  height: 48px;
  padding: 0;
  border-radius: var(--radius-full);
}

.c-btn--icon svg {
  width: 20px;
  height: 20px;
}

/* ------------------------------------------------------------------
   Disabled state
   ------------------------------------------------------------------ */
.c-btn:disabled,
.c-btn.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
  box-shadow: none;
}

/* ------------------------------------------------------------------
   Loading state
   ------------------------------------------------------------------ */
.c-btn.is-loading,
.c-btn--loading {
  pointer-events: none;
  position: relative;
  color: transparent !important;
}

.c-btn.is-loading::before,
.c-btn--loading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  margin-left: -9px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: var(--color-text-white);
  border-radius: 50%;
  animation: btnSpin 0.6s linear infinite;
}

/* Loading for outline/light buttons */
.c-btn--secondary.is-loading::before,
.c-btn--secondary.c-btn--loading::before {
  border-color: rgba(0, 0, 0, 0.08);
  border-top-color: var(--color-brand-primary);
}

@keyframes btnSpin {
  to {
    transform: rotate(360deg);
  }
}

/* ------------------------------------------------------------------
   Success state
   ------------------------------------------------------------------ */
.c-btn--success {
  background-color: #4caf50;
  border-color: #4caf50;
  color: #fff;
  pointer-events: none;
}

.c-btn--success::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 16px;
  border-right: 2.5px solid #fff;
  border-bottom: 2.5px solid #fff;
  transform: translate(-50%, -60%) rotate(45deg);
  animation: btnCheckmark 0.3s ease forwards;
}

@keyframes btnCheckmark {
  0% {
    opacity: 0;
    transform: translate(-50%, -60%) rotate(45deg) scale(0);
  }
  50% {
    transform: translate(-50%, -60%) rotate(45deg) scale(1.2);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -60%) rotate(45deg) scale(1);
  }
}

.c-btn--success > span,
.c-btn--success > .c-btn__text {
  opacity: 0;
}

/* ------------------------------------------------------------------
   Button group
   ------------------------------------------------------------------ */
.c-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.c-btn-group--center {
  justify-content: center;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-btn {
    transition: none;
  }

  .c-btn.is-rippling::after {
    animation: none;
  }

  .c-btn--shine:hover::before {
    animation: none;
  }

  .c-btn--arrow:hover::after {
    animation: none;
    transform: rotate(45deg) translateX(3px);
  }

  .c-btn--gradient-border::before {
    transition: none;
  }

  .c-btn--text::after {
    transition: none;
  }

  .c-btn.is-loading::before,
  .c-btn--loading::before {
    animation: none;
    border-color: var(--color-text-white);
  }

  .c-btn--success::before {
    animation: none;
    opacity: 1;
    transform: translate(-50%, -60%) rotate(45deg) scale(1);
  }

  .c-btn--magnetic:hover {
    transform: none;
  }
}

/* ==========================================================================
   Cards - Enhanced with advanced interactions
   ========================================================================== */

/* ------------------------------------------------------------------
   Base card
   ------------------------------------------------------------------ */
.c-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition:
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.c-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-border);
}

/* Card link wrapper */
a.c-card {
  text-decoration: none;
  color: inherit;
}

/* ------------------------------------------------------------------
   Card image
   ------------------------------------------------------------------ */
.c-card__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}

.c-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card:hover .c-card__image img {
  transform: scale(1.05);
}

/* Image reveal on scroll (clip-path transition) */
.c-card__image[data-reveal] {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card__image[data-reveal].is-visible {
  clip-path: inset(0 0 0 0);
}

/* ------------------------------------------------------------------
   Card body
   ------------------------------------------------------------------ */
.c-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--space-xl) var(--space-lg);
}

/* Category label */
.c-card__category {
  display: inline-block;
  align-self: flex-start;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-sm);
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-sm);
}

/* Category on image overlay */
.c-card__image .c-card__category {
  position: absolute;
  top: var(--space-md);
  left: var(--space-md);
  background-color: var(--color-bg-white);
  z-index: var(--z-base);
}

/* Card title */
.c-card__title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  line-height: var(--leading-snug);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-sm);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Card text */
.c-card__text {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-secondary);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: var(--space-md);
}

/* Card meta (date, author) */
.c-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-top: auto;
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border-light);
}

.c-card__date {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-en);
  letter-spacing: var(--tracking-wide);
}

.c-card__author {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.c-card__author-avatar {
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  overflow: hidden;
}

.c-card__author-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ------------------------------------------------------------------
   Card link / more
   ------------------------------------------------------------------ */
.c-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-brand-primary);
  margin-top: auto;
  transition: gap 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card__link::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card:hover .c-card__link {
  gap: var(--space-sm);
}

.c-card:hover .c-card__link::after {
  transform: rotate(45deg) translate(2px, -2px);
}

/* ------------------------------------------------------------------
   3D Tilt on hover (JS sets --tilt-x, --tilt-y via mousemove)
   ------------------------------------------------------------------ */
.c-card--3d {
  perspective: 1000px;
  transform-style: preserve-3d;
}

.c-card--3d:hover {
  transform: none; /* override base hover transform */
  box-shadow: var(--shadow-card);
}

.c-card--3d .c-card__inner {
  transition: transform 0.15s ease-out;
  transform:
    rotateX(var(--tilt-x, 0deg))
    rotateY(var(--tilt-y, 0deg))
    translateZ(0);
  will-change: transform;
}

.c-card--3d:hover .c-card__inner {
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

/* Reset on mouse leave (JS removes custom props) */
.c-card--3d .c-card__inner {
  transform-style: preserve-3d;
}

/* Shine overlay for 3D card */
.c-card--3d .c-card__shine {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  background: radial-gradient(
    circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(255, 255, 255, 0.1) 0%,
    transparent 60%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
}

.c-card--3d:hover .c-card__shine {
  opacity: 1;
}

/* ------------------------------------------------------------------
   Glass morphism variant
   ------------------------------------------------------------------ */
.c-card--glass {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

.c-card--glass:hover {
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* Glass on dark bg */
.c-card--glass-dark {
  background: rgba(44, 44, 44, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--color-text-white);
}

.c-card--glass-dark .c-card__title {
  color: var(--color-text-white);
}

.c-card--glass-dark .c-card__text {
  color: rgba(255, 255, 255, 0.7);
}

/* ------------------------------------------------------------------
   Gradient border on hover (::before trick)
   ------------------------------------------------------------------ */
.c-card--gradient-border {
  position: relative;
  background: var(--color-bg-white);
  z-index: 0;
}

.c-card--gradient-border::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(135deg, #1a1a1a, #333333, #333333, #e0e0e0);
  border-radius: calc(var(--radius-lg) + 2px);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card--gradient-border:hover::before {
  opacity: 1;
}

/* Inner container to maintain white bg */
.c-card--gradient-border .c-card__body {
  background: var(--color-bg-white);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  position: relative;
  z-index: 1;
}

/* ------------------------------------------------------------------
   Skeleton loading state
   ------------------------------------------------------------------ */
.c-card--skeleton {
  pointer-events: none;
}

.c-card--skeleton .c-card__image {
  background: var(--color-border-light);
}

.c-card--skeleton .c-card__title,
.c-card--skeleton .c-card__text,
.c-card--skeleton .c-card__date,
.c-card--skeleton .c-card__category {
  background: linear-gradient(
    90deg,
    var(--color-bg-accent) 25%,
    var(--color-border-light) 50%,
    var(--color-bg-accent) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  color: transparent;
  border-radius: 4px;
}

.c-card--skeleton .c-card__title {
  width: 80%;
  height: 20px;
}

.c-card--skeleton .c-card__text {
  width: 100%;
  height: 48px;
  -webkit-line-clamp: unset;
}

.c-card--skeleton .c-card__date {
  width: 60px;
  height: 14px;
}

.c-card--skeleton .c-card__image img {
  visibility: hidden;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* ------------------------------------------------------------------
   Magnetic hover (JS sets --magnetic-x, --magnetic-y)
   ------------------------------------------------------------------ */
.c-card--magnetic {
  transition:
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-card--magnetic:hover {
  transform:
    translate(
      var(--magnetic-x, 0),
      var(--magnetic-y, 0)
    );
}

/* ------------------------------------------------------------------
   Stacking cards effect (mobile)
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-cards--stacking {
    position: relative;
  }

  .c-cards--stacking .c-card {
    position: sticky;
    top: calc(var(--header-height, 80px) + var(--card-index, 0) * 8px);
  }

  .c-cards--stacking .c-card:nth-child(1) { --card-index: 0; }
  .c-cards--stacking .c-card:nth-child(2) { --card-index: 1; }
  .c-cards--stacking .c-card:nth-child(3) { --card-index: 2; }
  .c-cards--stacking .c-card:nth-child(4) { --card-index: 3; }
  .c-cards--stacking .c-card:nth-child(5) { --card-index: 4; }
}

/* ------------------------------------------------------------------
   Horizontal variant
   ------------------------------------------------------------------ */
.c-card--horizontal {
  flex-direction: row;
}

.c-card--horizontal .c-card__image {
  width: 200px;
  flex-shrink: 0;
  aspect-ratio: auto;
}

.c-card--horizontal .c-card__body {
  justify-content: center;
}

@media (max-width: 539px) {
  .c-card--horizontal {
    flex-direction: column;
  }

  .c-card--horizontal .c-card__image {
    width: 100%;
    aspect-ratio: 16 / 10;
  }
}

/* ------------------------------------------------------------------
   Card sizes
   ------------------------------------------------------------------ */
.c-card--sm .c-card__body {
  padding: var(--space-md);
}

.c-card--sm .c-card__title {
  font-size: var(--text-sm);
}

.c-card--lg .c-card__body {
  padding: var(--space-2xl) var(--space-xl);
}

.c-card--lg .c-card__title {
  font-size: var(--text-xl);
}

/* ------------------------------------------------------------------
   Flat (no shadow) variant
   ------------------------------------------------------------------ */
.c-card--flat {
  box-shadow: none;
  border: 1px solid var(--color-border);
}

.c-card--flat:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-border-dark);
}

/* ------------------------------------------------------------------
   Featured card (hero-level emphasis)
   ------------------------------------------------------------------ */
.c-card--featured {
  background: linear-gradient(135deg, var(--color-bg-white) 0%, var(--color-bg-accent) 100%);
  border: 1px solid var(--color-border-light);
}

.c-card--featured .c-card__body {
  padding: var(--space-xl) var(--space-xl) var(--space-2xl);
}

.c-card--featured::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary), var(--color-brand-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s var(--ease-out-expo);
}

.c-card--featured:hover::after {
  transform: scaleX(1);
}

/* ------------------------------------------------------------------
   Icon badge on card
   ------------------------------------------------------------------ */
.c-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary));
  color: var(--color-text-white);
  margin-bottom: var(--space-lg);
  position: relative;
  transition: transform 0.4s var(--ease-out-expo);
}

.c-card__icon svg {
  width: 24px;
  height: 24px;
}

.c-card:hover .c-card__icon {
  transform: scale(1.08) rotate(3deg);
}

/* Inner glow on card hover */
.c-card__icon::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: calc(var(--radius-lg) + 6px);
  background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary));
  opacity: 0;
  z-index: -1;
  filter: blur(12px);
  transition: opacity 0.4s var(--ease-out-expo);
}

.c-card:hover .c-card__icon::after {
  opacity: 0.3;
}

/* ------------------------------------------------------------------
   Diagonal reveal overlay on image
   ------------------------------------------------------------------ */
.c-card--diagonal .c-card__image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    transparent 40%,
    rgba(0, 0, 0, 0.035) 60%,
    rgba(0, 0, 0, 0.06) 100%
  );
  z-index: 1;
  opacity: 0;
  transition: opacity 0.5s var(--ease-out-expo);
}

.c-card--diagonal:hover .c-card__image::before {
  opacity: 1;
}

/* ------------------------------------------------------------------
   Number label on card (e.g., "01", "02")
   ------------------------------------------------------------------ */
.c-card__number {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: 0.1em;
  opacity: 0.5;
  z-index: 2;
}

/* ------------------------------------------------------------------
   Card top accent bar
   ------------------------------------------------------------------ */
.c-card--accent-top {
  border-top: 3px solid var(--color-brand-primary);
}

.c-card--accent-top:hover {
  border-top-color: var(--color-brand-secondary);
}

/* ------------------------------------------------------------------
   Card hover content slide-up
   ------------------------------------------------------------------ */
.c-card__hover-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-lg);
  background: linear-gradient(to top, rgba(26, 26, 46, 0.9) 0%, transparent 100%);
  color: var(--color-text-white);
  transform: translateY(100%);
  transition: transform 0.5s var(--ease-out-expo);
  z-index: 3;
}

.c-card:hover .c-card__hover-content {
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-card {
    transition: none;
  }

  .c-card__image img {
    transition: none;
  }

  .c-card__image[data-reveal] {
    clip-path: none;
    transition: none;
  }

  .c-card--3d .c-card__inner {
    transition: none;
    transform: none !important;
  }

  .c-card--3d .c-card__shine {
    display: none;
  }

  .c-card--gradient-border::before {
    transition: none;
  }

  .c-card--skeleton .c-card__title,
  .c-card--skeleton .c-card__text,
  .c-card--skeleton .c-card__date,
  .c-card--skeleton .c-card__category {
    animation: none;
  }

  .c-card--magnetic:hover {
    transform: none;
  }

  .c-card__link::after {
    transition: none;
  }
}

/* ==========================================================================
   Forms
   ========================================================================== */

/* Form group */
.c-form-group {
  margin-bottom: var(--space-lg);
}

.c-form-group:last-child {
  margin-bottom: 0;
}

/* Label */
.c-form-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  letter-spacing: var(--tracking-wide);
}

.c-form-label--required::after {
  content: "必須";
  display: inline-block;
  margin-left: var(--space-sm);
  padding: 2px 8px;
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  background-color: var(--color-error);
  border-radius: var(--radius-sm);
  vertical-align: middle;
}

/* Input & Textarea base */
.c-form-input,
.c-form-textarea,
.c-form-select {
  display: block;
  width: 100%;
  padding: 14px var(--space-md);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  color: var(--color-text-primary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
  appearance: none;
}

.c-form-input::placeholder,
.c-form-textarea::placeholder {
  color: var(--color-text-muted);
}

/* Focus state */
.c-form-input:focus,
.c-form-textarea:focus,
.c-form-select:focus {
  outline: none;
  border-color: var(--color-brand-primary);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.035);
}

/* Textarea */
.c-form-textarea {
  min-height: 160px;
  resize: vertical;
  line-height: var(--leading-relaxed);
}

/* Select */
.c-form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 44px;
  cursor: pointer;
}

/* Checkbox & Radio */
.c-form-check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  cursor: pointer;
}

.c-form-check + .c-form-check {
  margin-top: var(--space-sm);
}

.c-form-check input[type="checkbox"],
.c-form-check input[type="radio"] {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--color-brand-primary);
  cursor: pointer;
}

.c-form-check__label {
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  line-height: var(--leading-normal);
  cursor: pointer;
}

/* Help text */
.c-form-help {
  display: block;
  margin-top: var(--space-xs);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-normal);
}

/* ------------------------------------------------------------------
   Validation states
   ------------------------------------------------------------------ */

/* Error */
.c-form-group.is-error .c-form-input,
.c-form-group.is-error .c-form-textarea,
.c-form-group.is-error .c-form-select {
  border-color: var(--color-error);
}

.c-form-group.is-error .c-form-input:focus,
.c-form-group.is-error .c-form-textarea:focus,
.c-form-group.is-error .c-form-select:focus {
  box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.15);
}

.c-form-error {
  display: block;
  margin-top: var(--space-xs);
  font-size: var(--text-xs);
  color: var(--color-error);
  font-weight: var(--fw-medium);
}

/* Success */
.c-form-group.is-success .c-form-input,
.c-form-group.is-success .c-form-textarea,
.c-form-group.is-success .c-form-select {
  border-color: var(--color-success);
}

/* ------------------------------------------------------------------
   Two-column form row
   ------------------------------------------------------------------ */
.c-form-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .c-form-row {
    flex-direction: row;
  }

  .c-form-row > .c-form-group {
    flex: 1;
    margin-bottom: 0;
  }
}

/* ------------------------------------------------------------------
   CF7 (Contact Form 7) overrides
   ------------------------------------------------------------------ */
.wpcf7-form {
  max-width: 100%;
}

.wpcf7-form p {
  margin-bottom: var(--space-lg);
}

.wpcf7-form label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea {
  display: block;
  width: 100%;
  padding: 14px var(--space-md);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  color: var(--color-text-primary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="url"]:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--color-brand-primary);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.035);
}

.wpcf7-form textarea {
  min-height: 160px;
  resize: vertical;
}

.wpcf7-form select {
  display: block;
  width: 100%;
  padding: 14px var(--space-md);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 44px;
}

.wpcf7-form input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 56px;
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  background-color: var(--color-brand-primary);
  border: 2px solid var(--color-brand-primary);
  border-radius: var(--radius-full);
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
}

.wpcf7-form input[type="submit"]:hover {
  background-color: var(--color-brand-primary-hover);
  border-color: var(--color-brand-primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

/* CF7 validation messages */
.wpcf7-not-valid-tip {
  display: block;
  margin-top: var(--space-xs);
  font-size: var(--text-xs);
  color: var(--color-error);
  font-weight: var(--fw-medium);
}

.wpcf7-response-output {
  margin-top: var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  border: none !important;
}

.wpcf7-mail-sent-ok {
  background-color: rgba(76, 175, 80, 0.1);
  color: var(--color-success);
}

.wpcf7-validation-errors,
.wpcf7-spam-blocked {
  background-color: rgba(229, 57, 53, 0.1);
  color: var(--color-error);
}

/* CF7 spinner */
.wpcf7-spinner {
  display: none;
}

/* ==========================================================================
   Tables
   ========================================================================== */

/* Table wrapper for responsiveness */
.c-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: var(--space-lg);
}

/* Base table */
.c-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.c-table th,
.c-table td {
  padding: var(--space-md) var(--space-lg);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border);
}

.c-table th {
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  background-color: var(--color-bg-accent);
  white-space: nowrap;
}

.c-table td {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Striped rows */
.c-table--striped tbody tr:nth-child(even) {
  background-color: var(--color-bg);
}

/* Hover rows */
.c-table--hover tbody tr {
  transition: background-color var(--transition-fast);
}

.c-table--hover tbody tr:hover {
  background-color: var(--color-bg-accent);
}

/* Bordered variant */
.c-table--bordered {
  border: 1px solid var(--color-border);
}

.c-table--bordered th,
.c-table--bordered td {
  border: 1px solid var(--color-border);
}

/* ------------------------------------------------------------------
   Company info table (definition list style)
   ------------------------------------------------------------------ */
.c-table--company {
  border-top: 1px solid var(--color-border);
}

.c-table--company th {
  width: 160px;
  background-color: transparent;
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  vertical-align: middle;
}

@media (min-width: 768px) {
  .c-table--company th {
    width: 200px;
  }
}

.c-table--company td {
  color: var(--color-text-primary);
}

/* Responsive: stack on mobile */
@media (max-width: 539px) {
  .c-table--company th,
  .c-table--company td {
    display: block;
    width: 100%;
    padding: var(--space-sm) 0;
  }

  .c-table--company th {
    padding-top: var(--space-md);
    border-bottom: none;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    letter-spacing: var(--tracking-wider);
  }

  .c-table--company td {
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
  }
}

/* ------------------------------------------------------------------
   Price table
   ------------------------------------------------------------------ */
.c-table--price th:last-child,
.c-table--price td:last-child {
  text-align: right;
}

.c-table--price .c-table__price {
  font-family: var(--font-en);
  font-weight: var(--fw-bold);
  font-size: var(--text-lg);
  color: var(--color-brand-primary);
}

.c-table--price .c-table__price-unit {
  font-size: var(--text-sm);
  font-weight: var(--fw-regular);
  color: var(--color-text-secondary);
  font-family: var(--font-jp);
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.c-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-xs);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.c-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
}

/* Separator */
.c-breadcrumb__item + .c-breadcrumb__item::before {
  content: "/";
  display: inline-block;
  margin-right: var(--space-xs);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

/* Link */
.c-breadcrumb__link {
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.c-breadcrumb__link:hover {
  color: var(--color-brand-primary);
}

/* Home icon */
.c-breadcrumb__home svg {
  width: 14px;
  height: 14px;
}

/* Current page (not linked) */
.c-breadcrumb__current {
  color: var(--color-text-muted);
  pointer-events: none;
}

/* ------------------------------------------------------------------
   Breadcrumb on hero (white text variant)
   ------------------------------------------------------------------ */
.c-breadcrumb--white {
  color: rgba(255, 255, 255, 0.6);
}

.c-breadcrumb--white .c-breadcrumb__item + .c-breadcrumb__item::before {
  color: rgba(255, 255, 255, 0.4);
}

.c-breadcrumb--white .c-breadcrumb__link {
  color: rgba(255, 255, 255, 0.8);
}

.c-breadcrumb--white .c-breadcrumb__link:hover {
  color: var(--color-text-white);
}

.c-breadcrumb--white .c-breadcrumb__current {
  color: rgba(255, 255, 255, 0.6);
}

/* ------------------------------------------------------------------
   Yoast SEO breadcrumb override
   ------------------------------------------------------------------ */
.yoast-breadcrumb {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.yoast-breadcrumb a {
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.yoast-breadcrumb a:hover {
  color: var(--color-brand-primary);
}

.yoast-breadcrumb .breadcrumb_last {
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-breadcrumb {
    font-size: 11px;
    gap: 4px;
  }

  .c-breadcrumb__item + .c-breadcrumb__item::before {
    font-size: 11px;
    margin-right: 4px;
  }

  .c-breadcrumb__home svg {
    width: 12px;
    height: 12px;
  }

  .yoast-breadcrumb {
    font-size: 11px;
  }
}

/* ==========================================================================
   Pagination
   ========================================================================== */

.c-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  margin-top: var(--space-3xl);
}

/* Base page item */
.c-pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 var(--space-sm);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.c-pagination__item:hover {
  background-color: var(--color-bg-accent);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

/* Current page */
.c-pagination__item.is-current,
.c-pagination__item--current {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-white);
  pointer-events: none;
}

/* Disabled */
.c-pagination__item.is-disabled,
.c-pagination__item--disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Dots / ellipsis */
.c-pagination__dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: 2px;
}

/* Previous / Next arrows */
.c-pagination__prev,
.c-pagination__next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 var(--space-sm);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.c-pagination__prev:hover,
.c-pagination__next:hover {
  background-color: var(--color-bg-accent);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.c-pagination__prev svg,
.c-pagination__next svg {
  width: 16px;
  height: 16px;
}

/* Arrow characters */
.c-pagination__prev::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}

.c-pagination__next::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg);
}

/* ------------------------------------------------------------------
   WordPress default pagination override
   ------------------------------------------------------------------ */
.nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  margin-top: var(--space-3xl);
}

.nav-links .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 var(--space-sm);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.nav-links .page-numbers:hover {
  background-color: var(--color-bg-accent);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.nav-links .page-numbers.current {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-white);
  pointer-events: none;
}

.nav-links .page-numbers.dots {
  border: none;
  background: none;
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-pagination {
    gap: 4px;
    margin-top: var(--space-2xl);
  }

  .c-pagination__item {
    min-width: 36px;
    height: 36px;
    font-size: var(--text-xs);
    padding: 0 var(--space-xs);
  }

  .c-pagination__prev,
  .c-pagination__next {
    min-width: 36px;
    height: 36px;
  }

  .c-pagination__dots {
    min-width: 28px;
    height: 36px;
  }

  .nav-links {
    gap: 4px;
    margin-top: var(--space-2xl);
  }

  .nav-links .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: var(--text-xs);
    padding: 0 var(--space-xs);
  }
}

/* ==========================================================================
   Accordion - FAQ style
   ========================================================================== */

.c-accordion {
  border-top: 1px solid var(--color-border);
}

/* Accordion item */
.c-accordion__item {
  border-bottom: 1px solid var(--color-border);
}

/* Trigger button */
.c-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--space-lg) 0;
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-wide);
  transition: color var(--transition-fast);
  gap: var(--space-md);
}

.c-accordion__trigger:hover {
  color: var(--color-brand-primary);
}

/* Q label */
.c-accordion__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  font-family: var(--font-en);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  margin-right: var(--space-sm);
}

.c-accordion__trigger-text {
  flex: 1;
}

/* Plus/minus icon */
.c-accordion__icon {
  position: relative;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.c-accordion__icon::before,
.c-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: var(--color-text-primary);
  transition: transform var(--transition-base);
}

.c-accordion__icon::before {
  width: 14px;
  height: 2px;
  margin-left: -7px;
  margin-top: -1px;
}

.c-accordion__icon::after {
  width: 2px;
  height: 14px;
  margin-left: -1px;
  margin-top: -7px;
}

/* Open state - rotate minus */
.c-accordion__item.is-open .c-accordion__icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

.c-accordion__item.is-open .c-accordion__trigger {
  color: var(--color-brand-primary);
}

/* Content area */
.c-accordion__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-slow);
}

.c-accordion__content-inner {
  padding: 0 0 var(--space-lg) 0;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-loose);
}

/* Content with A label */
.c-accordion__answer {
  display: flex;
  gap: var(--space-sm);
}

.c-accordion__answer-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  font-family: var(--font-en);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-full);
}

.c-accordion__answer-text {
  flex: 1;
  padding-top: var(--space-xs);
}

/* Open state content visible */
.c-accordion__item.is-open .c-accordion__content {
  max-height: 1000px;
}

/* ------------------------------------------------------------------
   Variant: Card style
   ------------------------------------------------------------------ */
.c-accordion--card {
  border-top: none;
}

.c-accordion--card .c-accordion__item {
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-sm);
  overflow: hidden;
}

.c-accordion--card .c-accordion__item:last-child {
  margin-bottom: 0;
}

.c-accordion--card .c-accordion__trigger {
  padding: var(--space-lg);
}

.c-accordion--card .c-accordion__content-inner {
  padding: 0 var(--space-lg) var(--space-lg);
}

.c-accordion--card .c-accordion__item.is-open {
  border-color: var(--color-brand-light);
  box-shadow: var(--shadow-sm);
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-accordion__trigger {
    padding: var(--space-md) 0;
    font-size: var(--text-sm);
    gap: var(--space-sm);
  }

  .c-accordion__label {
    width: 28px;
    height: 28px;
    font-size: var(--text-sm);
  }

  .c-accordion__icon {
    width: 20px;
    height: 20px;
  }

  .c-accordion__content-inner {
    font-size: var(--text-xs);
    padding-bottom: var(--space-md);
  }

  .c-accordion__answer-label {
    width: 28px;
    height: 28px;
    font-size: var(--text-sm);
  }

  .c-accordion__answer-text {
    font-size: var(--text-xs);
  }

  /* Card variant */
  .c-accordion--card .c-accordion__trigger {
    padding: var(--space-md);
  }

  .c-accordion--card .c-accordion__content-inner {
    padding: 0 var(--space-md) var(--space-md);
  }
}

/* ==========================================================================
   Loading / Splash Screen
   ========================================================================== */

/* Body lock during loading */
body.is-loading {
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Fullscreen overlay
   ------------------------------------------------------------------ */
.c-loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  z-index: 9999;
  background-color: #1c1c1c;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition:
    opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.8s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-loading.is-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(1.02);
}

/* ------------------------------------------------------------------
   Logo SVG draw-on animation
   ------------------------------------------------------------------ */
.c-loading__logo {
  width: 120px;
  height: 120px;
  margin-bottom: 40px;
}

.c-loading__logo svg {
  width: 100%;
  height: 100%;
}

/* SVG path draw-on via stroke-dashoffset */
.c-loading__logo svg path,
.c-loading__logo svg line,
.c-loading__logo svg polyline,
.c-loading__logo svg polygon,
.c-loading__logo svg circle,
.c-loading__logo svg rect {
  fill: none;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
  animation: loadingDrawOn 2s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes loadingDrawOn {
  0% {
    stroke-dashoffset: 300;
    fill-opacity: 0;
  }
  70% {
    stroke-dashoffset: 0;
    fill-opacity: 0;
  }
  100% {
    stroke-dashoffset: 0;
    fill-opacity: 1;
    fill: #ffffff;
  }
}

/* Stagger individual paths */
.c-loading__logo svg *:nth-child(2) {
  animation-delay: 0.15s;
}

.c-loading__logo svg *:nth-child(3) {
  animation-delay: 0.3s;
}

.c-loading__logo svg *:nth-child(4) {
  animation-delay: 0.45s;
}

.c-loading__logo svg *:nth-child(5) {
  animation-delay: 0.6s;
}

/* ------------------------------------------------------------------
   Brand text staggered reveal: "S.Line"
   ------------------------------------------------------------------ */
.c-loading__text {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  font-family: var(--font-en, "Outfit", sans-serif);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #ffffff;
  margin-bottom: 48px;
  overflow: hidden;
}

.c-loading__char,
.c-loading__letter {
  display: inline-block;
  opacity: 0;
  transform: translateY(100%);
  animation: loadingCharReveal 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.c-loading__char:nth-child(1),
.c-loading__letter:nth-child(1) { animation-delay: 0.8s; }
.c-loading__char:nth-child(2),
.c-loading__letter:nth-child(2) { animation-delay: 0.88s; }
.c-loading__char:nth-child(3),
.c-loading__letter:nth-child(3) { animation-delay: 0.96s; }
.c-loading__char:nth-child(4),
.c-loading__letter:nth-child(4) { animation-delay: 1.04s; }
.c-loading__char:nth-child(5),
.c-loading__letter:nth-child(5) { animation-delay: 1.12s; }
.c-loading__char:nth-child(6),
.c-loading__letter:nth-child(6) { animation-delay: 1.20s; }

@keyframes loadingCharReveal {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ------------------------------------------------------------------
   Progress bar
   ------------------------------------------------------------------ */
.c-loading__bar,
.c-loading__progress {
  position: relative;
  width: 240px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.15);
  border-radius: 1px;
  overflow: hidden;
}

.c-loading__bar-fill,
.c-loading__progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background: #ffffff;
  border-radius: 1px;
  animation: loadingBarFill 2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes loadingBarFill {
  0% {
    width: 0%;
  }
  30% {
    width: 40%;
  }
  60% {
    width: 70%;
  }
  80% {
    width: 90%;
  }
  100% {
    width: 100%;
  }
}

/* ------------------------------------------------------------------
   Percentage text (optional)
   ------------------------------------------------------------------ */
.c-loading__percent {
  margin-top: 16px;
  font-family: var(--font-en, "Outfit", sans-serif);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.35);
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-loading {
    transition: none;
  }

  .c-loading__logo svg path,
  .c-loading__logo svg line,
  .c-loading__logo svg polyline,
  .c-loading__logo svg polygon,
  .c-loading__logo svg circle,
  .c-loading__logo svg rect {
    animation: none;
    stroke-dashoffset: 0;
    fill: #ffffff;
    fill-opacity: 1;
  }

  .c-loading__char,
  .c-loading__letter {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .c-loading__bar-fill,
  .c-loading__progress-bar {
    animation: none;
    width: 100%;
  }
}

/* ==========================================================================
   Custom Cursor (desktop only)
   ========================================================================== */

/* Only show custom cursor on devices with fine pointer (hover) */
@media (hover: hover) and (pointer: fine) {

  /* Hide default cursor on supported devices */
  body.has-custom-cursor,
  body.has-custom-cursor * {
    cursor: none !important;
  }

  /* ------------------------------------------------------------------
     Outer ring
     ------------------------------------------------------------------ */
  .c-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
    border: 1px solid #1a1a1a;
    border-radius: 50%;
    pointer-events: none;
    z-index: 10000;
    transform: translate(-50%, -50%);
    transition:
      width 0.3s cubic-bezier(0.16, 1, 0.3, 1),
      height 0.3s cubic-bezier(0.16, 1, 0.3, 1),
      border-color 0.3s ease,
      background-color 0.3s ease,
      border-radius 0.3s cubic-bezier(0.16, 1, 0.3, 1),
      opacity 0.3s ease;
    mix-blend-mode: difference;
    will-change: transform;
  }

  /* ------------------------------------------------------------------
     Inner dot
     ------------------------------------------------------------------ */
  .c-cursor__dot {
    position: fixed;
    top: 0;
    left: 0;
    width: 8px;
    height: 8px;
    background-color: #1a1a1a;
    border-radius: 50%;
    pointer-events: none;
    z-index: 10001;
    transform: translate(-50%, -50%);
    transition:
      width 0.15s cubic-bezier(0.16, 1, 0.3, 1),
      height 0.15s cubic-bezier(0.16, 1, 0.3, 1),
      background-color 0.3s ease,
      opacity 0.2s ease;
    will-change: transform;
  }

  /* ------------------------------------------------------------------
     State: Hovering interactive elements
     ------------------------------------------------------------------ */
  .c-cursor.is-hover {
    width: 60px;
    height: 60px;
    border-color: #333333;
  }

  .c-cursor.is-hover .c-cursor__dot,
  .c-cursor__dot.is-hover {
    width: 4px;
    height: 4px;
    opacity: 0.5;
  }

  /* ------------------------------------------------------------------
     State: Active (mousedown)
     ------------------------------------------------------------------ */
  .c-cursor.is-active {
    width: 32px;
    height: 32px;
    border-color: #e0e0e0;
  }

  .c-cursor__dot.is-active {
    width: 6px;
    height: 6px;
  }

  /* ------------------------------------------------------------------
     State: Text selection bar
     ------------------------------------------------------------------ */
  .c-cursor.is-text {
    width: 4px;
    height: 32px;
    border-radius: 2px;
    background-color: rgba(0, 0, 0, 0.12);
    border-color: transparent;
  }

  .c-cursor__dot.is-text {
    opacity: 0;
  }

  /* ------------------------------------------------------------------
     State: Link hover (larger with label)
     ------------------------------------------------------------------ */
  .c-cursor.is-link {
    width: 80px;
    height: 80px;
    border-color: rgba(0, 0, 0, 0.04);
    background-color: rgba(0, 0, 0, 0.02);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-cursor.is-link::after {
    content: "View";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-en, "Cormorant Garamond", serif);
    font-size: 11px;
    letter-spacing: 0.08em;
    color: #1a1a1a;
    white-space: nowrap;
    opacity: 1;
    transition: opacity 0.2s ease;
  }

  .c-cursor__dot.is-link {
    opacity: 0;
  }

  /* ------------------------------------------------------------------
     State: Hidden (when cursor leaves window)
     ------------------------------------------------------------------ */
  .c-cursor.is-hidden {
    opacity: 0;
  }

  .c-cursor__dot.is-hidden {
    opacity: 0;
  }

  /* ------------------------------------------------------------------
     State: Drag
     ------------------------------------------------------------------ */
  .c-cursor.is-drag {
    width: 64px;
    height: 64px;
    border-style: dashed;
  }

  .c-cursor.is-drag::after {
    content: "Drag";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-en, "Cormorant Garamond", serif);
    font-size: 11px;
    letter-spacing: 0.08em;
    color: #1a1a1a;
  }

} /* end @media (hover: hover) and (pointer: fine) */

/* Ensure no custom cursor on touch devices */
@media (hover: none) {
  .c-cursor,
  .c-cursor__dot {
    display: none !important;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-cursor,
  .c-cursor__dot {
    transition: none;
  }
}

/* ==========================================================================
   Image Lightbox / Modal
   ========================================================================== */

/* ------------------------------------------------------------------
   Overlay backdrop
   ------------------------------------------------------------------ */
.c-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  z-index: 9998;
  background-color: rgba(0, 0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  background-color: rgba(0, 0, 0, 0.92);
}

/* ------------------------------------------------------------------
   Image container
   ------------------------------------------------------------------ */
.c-lightbox__image-wrap {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0.85);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-lightbox.is-open .c-lightbox__image-wrap {
  transform: scale(1);
  opacity: 1;
  transition-delay: 0.1s;
}

.c-lightbox__image {
  max-width: 90vw;
  max-height: 85vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 4px;
  user-select: none;
  -webkit-user-drag: none;
}

/* ------------------------------------------------------------------
   Close button
   ------------------------------------------------------------------ */
.c-lightbox__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 3;
  padding: 0;
  opacity: 0;
  transform: translateY(-10px);
  transition:
    opacity 0.3s ease 0.3s,
    transform 0.3s ease 0.3s;
}

.c-lightbox.is-open .c-lightbox__close {
  opacity: 1;
  transform: translateY(0);
}

.c-lightbox__close::before,
.c-lightbox__close::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: rgba(255, 255, 255, 0.8);
  transition: background-color 0.2s ease;
}

.c-lightbox__close::before {
  transform: rotate(45deg);
}

.c-lightbox__close::after {
  transform: rotate(-45deg);
}

.c-lightbox__close:hover::before,
.c-lightbox__close:hover::after {
  background-color: #1a1a1a;
}

/* ------------------------------------------------------------------
   Navigation arrows
   ------------------------------------------------------------------ */
.c-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  cursor: pointer;
  z-index: 3;
  padding: 0;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
  opacity: 0;
}

.c-lightbox.is-open .c-lightbox__nav {
  opacity: 1;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease,
    opacity 0.3s ease 0.3s;
}

.c-lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
}

.c-lightbox__nav--prev {
  left: 20px;
}

.c-lightbox__nav--next {
  right: 20px;
}

/* Arrow icons via CSS */
.c-lightbox__nav::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(255, 255, 255, 0.8);
  border-bottom: 2px solid rgba(255, 255, 255, 0.8);
}

.c-lightbox__nav--prev::before {
  transform: rotate(135deg);
  margin-left: 3px;
}

.c-lightbox__nav--next::before {
  transform: rotate(-45deg);
  margin-right: 3px;
}

.c-lightbox__nav--prev:hover {
  transform: translateY(-50%) translateX(-2px);
}

.c-lightbox__nav--next:hover {
  transform: translateY(-50%) translateX(2px);
}

/* ------------------------------------------------------------------
   Caption
   ------------------------------------------------------------------ */
.c-lightbox__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 24px 80px;
  text-align: center;
  color: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  line-height: 1.6;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.4s ease 0.35s,
    transform 0.4s ease 0.35s;
}

.c-lightbox.is-open .c-lightbox__caption {
  opacity: 1;
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Counter (e.g. "3 / 12")
   ------------------------------------------------------------------ */
.c-lightbox__counter {
  position: absolute;
  top: 24px;
  left: 24px;
  font-family: var(--font-en, "Cormorant Garamond", serif);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.6);
  z-index: 3;
  opacity: 0;
  transition: opacity 0.3s ease 0.3s;
}

.c-lightbox.is-open .c-lightbox__counter {
  opacity: 1;
}

/* ------------------------------------------------------------------
   Swipe indicator (mobile)
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-lightbox__nav {
    width: 40px;
    height: 40px;
  }

  .c-lightbox__nav--prev {
    left: 10px;
  }

  .c-lightbox__nav--next {
    right: 10px;
  }

  .c-lightbox__caption {
    padding: 20px 16px;
    font-size: 13px;
  }
}

/* ------------------------------------------------------------------
   Keyboard focus styles
   ------------------------------------------------------------------ */
.c-lightbox__close:focus-visible,
.c-lightbox__nav:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-lightbox,
  .c-lightbox__image-wrap,
  .c-lightbox__close,
  .c-lightbox__nav,
  .c-lightbox__caption,
  .c-lightbox__counter {
    transition: none;
  }
}

/* ==========================================================================
   Reading Progress Bar
   ========================================================================== */

.c-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 1001; /* above header */
  background-color: transparent;
  pointer-events: none;
}

.c-progress-bar__fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #1a1a1a, #333333);
  border-radius: 0 2px 2px 0;
  transition: width 0.1s linear;
  will-change: width;
}

/* Glow effect on the leading edge */
.c-progress-bar__fill::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 80px;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.06));
  border-radius: 0 2px 2px 0;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-progress-bar__fill {
    transition: none;
  }
}

/* ==========================================================================
   Floating CTA Button
   ========================================================================== */

.c-floating-cta {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 999;
  transform: translateY(100px);
  opacity: 0;
  visibility: hidden;
  transition:
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Visible state (JS adds after scroll threshold) */
.c-floating-cta.is-visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

/* Hidden when near footer */
.c-floating-cta.is-hidden {
  transform: translateY(100px);
  opacity: 0;
  visibility: hidden;
}

/* ------------------------------------------------------------------
   Button
   ------------------------------------------------------------------ */
.c-floating-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background-color: #1a1a1a;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  color: #fff;
  text-decoration: none;
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.035),
    0 2px 6px rgba(0, 0, 0, 0.1);
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s ease;
  position: relative;
  animation: floatingCtaPulse 2.5s ease-in-out infinite;
}

.c-floating-cta__btn:hover {
  background-color: #333333;
  box-shadow:
    0 6px 24px rgba(0, 0, 0, 0.045),
    0 3px 10px rgba(0, 0, 0, 0.12);
  transform: scale(1.05);
  animation: none;
}

.c-floating-cta__btn:active {
  transform: scale(0.95);
}

/* Pulse animation ring */
@keyframes floatingCtaPulse {
  0% {
    box-shadow:
      0 4px 16px rgba(0, 0, 0, 0.035),
      0 2px 6px rgba(0, 0, 0, 0.1),
      0 0 0 0 rgba(0, 0, 0, 0.04);
  }
  70% {
    box-shadow:
      0 4px 16px rgba(0, 0, 0, 0.035),
      0 2px 6px rgba(0, 0, 0, 0.1),
      0 0 0 16px rgba(0, 0, 0, 0);
  }
  100% {
    box-shadow:
      0 4px 16px rgba(0, 0, 0, 0.035),
      0 2px 6px rgba(0, 0, 0, 0.1),
      0 0 0 0 rgba(0, 0, 0, 0);
  }
}

/* Icon inside button */
.c-floating-cta__icon {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.c-floating-cta__icon svg {
  width: 100%;
  height: 100%;
}

/* ------------------------------------------------------------------
   Tooltip on hover
   ------------------------------------------------------------------ */
.c-floating-cta__tooltip {
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%) translateX(8px);
  background-color: #2c2c2c;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  padding: 8px 16px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

/* Tooltip arrow */
.c-floating-cta__tooltip::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid #2c2c2c;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
}

.c-floating-cta__btn:hover + .c-floating-cta__tooltip,
.c-floating-cta__btn:hover ~ .c-floating-cta__tooltip {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

/* ------------------------------------------------------------------
   Focus styles
   ------------------------------------------------------------------ */
.c-floating-cta__btn:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 4px;
}

/* ------------------------------------------------------------------
   Mobile adjustments
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-floating-cta {
    bottom: 16px;
    right: 16px;
  }

  .c-floating-cta__btn {
    width: 52px;
    height: 52px;
  }

  .c-floating-cta__tooltip {
    display: none;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-floating-cta {
    transition: none;
  }

  .c-floating-cta__btn {
    animation: none;
  }

  .c-floating-cta__tooltip {
    transition: none;
  }
}

/* ==========================================================================
   Back to Top Button with SVG circle progress
   ========================================================================== */

.c-back-to-top {
  position: fixed;
  bottom: 100px; /* above floating CTA */
  right: 24px;
  z-index: 998;
  width: 48px;
  height: 48px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Button wrapper
   ------------------------------------------------------------------ */
.c-back-to-top__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
  padding: 0;
}

.c-back-to-top__btn:hover {
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.c-back-to-top__btn:active {
  transform: translateY(0);
}

.c-back-to-top__btn:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}

/* ------------------------------------------------------------------
   SVG circle progress indicator
   ------------------------------------------------------------------ */
.c-back-to-top__circle {
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 48px;
  transform: rotate(-90deg);
}

.c-back-to-top__circle-bg {
  fill: none;
  stroke: rgba(0, 0, 0, 0.035);
  stroke-width: 2;
}

.c-back-to-top__circle-fill {
  fill: none;
  stroke: #1a1a1a;
  stroke-width: 2;
  stroke-linecap: round;
  /* circumference = 2 * PI * 21 (radius) = ~131.95 */
  stroke-dasharray: 131.95;
  stroke-dashoffset: 131.95; /* JS updates this based on scroll % */
  transition: stroke-dashoffset 0.1s linear;
}

/* ------------------------------------------------------------------
   Arrow icon
   ------------------------------------------------------------------ */
.c-back-to-top__arrow {
  position: relative;
  z-index: 1;
  width: 14px;
  height: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* CSS-only arrow */
.c-back-to-top__arrow::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-left: 2px solid #1a1a1a;
  border-top: 2px solid #1a1a1a;
  transform: rotate(45deg) translateY(2px);
  transition: border-color 0.2s ease;
}

.c-back-to-top__btn:hover .c-back-to-top__arrow::before {
  border-color: #333333;
}

/* ------------------------------------------------------------------
   Mobile adjustments
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-back-to-top {
    bottom: 80px;
    right: 16px;
  }

  .c-back-to-top__btn {
    width: 40px;
    height: 40px;
  }

  .c-back-to-top__circle {
    width: 40px;
    height: 40px;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-back-to-top {
    transition: none;
  }

  .c-back-to-top__btn {
    transition: none;
  }

  .c-back-to-top__circle-fill {
    transition: none;
  }
}

/* ==========================================================================
   Infinite Scrolling Marquee / Ticker
   ========================================================================== */

.c-marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 20px 0;
  background: var(--color-bg-white, #ffffff);
  border-top: 1px solid var(--color-border-light, #eeeeee);
}

/* Gradient fade on edges using mask-image */
.c-marquee::before,
.c-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  width: 100px;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

.c-marquee::before {
  left: 0;
  background: linear-gradient(to right, var(--color-bg-white, #ffffff) 0%, transparent 100%);
}

.c-marquee::after {
  right: 0;
  background: linear-gradient(to left, var(--color-bg-white, #ffffff) 0%, transparent 100%);
}

/* Dark bg variant */
.c-marquee--dark::before {
  background: linear-gradient(to right, #2c2c2c 0%, transparent 100%);
}

.c-marquee--dark::after {
  background: linear-gradient(to left, #2c2c2c 0%, transparent 100%);
}

/* ------------------------------------------------------------------
   Track (contains duplicated items for seamless loop)
   ------------------------------------------------------------------ */
.c-marquee__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: marquee 30s linear infinite;
  will-change: transform;
}

/* Speed variants */
.c-marquee--fast .c-marquee__track {
  animation-duration: 15s;
}

.c-marquee--slow .c-marquee__track {
  animation-duration: 50s;
}

/* Reverse direction */
.c-marquee--reverse .c-marquee__track {
  animation-direction: reverse;
}

/* Pause on hover */
.c-marquee:hover .c-marquee__track {
  animation-play-state: paused;
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* ------------------------------------------------------------------
   Individual items
   ------------------------------------------------------------------ */
.c-marquee__item {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0 24px;
  white-space: nowrap;
  font-size: var(--text-sm, 14px);
  font-weight: var(--fw-medium, 500);
  color: var(--color-text-muted, #999);
  letter-spacing: var(--tracking-wide, 0.04em);
}

/* Text item */
.c-marquee__item--text {
  font-family: var(--font-en, "Cormorant Garamond", serif);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #2c2c2c;
}

.c-marquee--dark .c-marquee__item--text {
  color: rgba(255, 255, 255, 0.8);
}

/* Large text variant */
.c-marquee--lg .c-marquee__item--text {
  font-size: 48px;
  font-weight: 300;
  letter-spacing: 0.02em;
  color: rgba(44, 44, 44, 0.1);
  text-transform: uppercase;
  padding: 0 40px;
}

/* Logo/image item */
.c-marquee__item--logo {
  padding: 0 32px;
}

.c-marquee__item--logo img {
  height: 40px;
  width: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.5;
  transition:
    filter 0.3s ease,
    opacity 0.3s ease;
}

.c-marquee:hover .c-marquee__item--logo img {
  filter: grayscale(0%);
  opacity: 1;
}

/* Separator dot between items */
.c-marquee__separator {
  flex-shrink: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--color-text-muted, #999);
  opacity: 0.2;
}

.c-marquee--dark .c-marquee__separator {
  background-color: #e0e0e0;
  opacity: 0.3;
}

/* ------------------------------------------------------------------
   Achievement ticker variant
   ------------------------------------------------------------------ */
.c-marquee--achievement .c-marquee__item {
  padding: 0 40px;
}

.c-marquee--achievement .c-marquee__value {
  font-family: var(--font-en, "Cormorant Garamond", serif);
  font-size: 32px;
  font-weight: 700;
  color: #1a1a1a;
  margin-right: 8px;
}

.c-marquee--achievement .c-marquee__label {
  font-size: 14px;
  color: #333333;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-marquee__track {
    animation: none;
  }
}

/* ==========================================================================
   Before/After Comparison Slider
   ========================================================================== */

/* ------------------------------------------------------------------
   Container
   ------------------------------------------------------------------ */
.c-compare {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius-lg, 8px);
  cursor: col-resize;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

/* ------------------------------------------------------------------
   Images (before = bottom, after = top with clip)
   ------------------------------------------------------------------ */
.c-compare__before,
.c-compare__after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-compare__before img,
.c-compare__after img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}

/* After image is clipped from the right via clip-path */
.c-compare__after {
  clip-path: inset(0 50% 0 0); /* JS updates the 50% value */
}

/* ------------------------------------------------------------------
   Slider handle
   ------------------------------------------------------------------ */
.c-compare__slider {
  position: absolute;
  top: 0;
  left: 50%; /* JS updates this */
  transform: translateX(-50%);
  width: 4px;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}

/* Vertical line */
.c-compare__slider::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 100%;
  background-color: #1a1a1a;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.08);
}

/* Handle circle */
.c-compare__handle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  background-color: #1a1a1a;
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  cursor: col-resize;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

.c-compare__handle:hover,
.c-compare.is-dragging .c-compare__handle {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

/* Double arrow icon inside handle */
.c-compare__handle::before,
.c-compare__handle::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  position: absolute;
}

.c-compare__handle::before {
  left: 8px;
  transform: rotate(-135deg);
}

.c-compare__handle::after {
  right: 8px;
  transform: rotate(45deg);
}

/* ------------------------------------------------------------------
   Labels
   ------------------------------------------------------------------ */
.c-compare__label {
  position: absolute;
  bottom: 16px;
  z-index: 2;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 4px;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.c-compare__label--before {
  left: 16px;
  background-color: rgba(44, 44, 44, 0.75);
  color: #fff;
}

.c-compare__label--after {
  right: 16px;
  background-color: rgba(0, 0, 0, 0.085);
  color: #fff;
}

/* Hide labels during drag */
.c-compare.is-dragging .c-compare__label {
  opacity: 0;
}

/* ------------------------------------------------------------------
   Mobile touch
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .c-compare__handle {
    width: 36px;
    height: 36px;
  }

  .c-compare__label {
    font-size: 10px;
    padding: 4px 10px;
  }
}

/* ------------------------------------------------------------------
   Focus styles for keyboard
   ------------------------------------------------------------------ */
.c-compare:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-compare__handle {
    transition: none;
  }

  .c-compare__label {
    transition: none;
  }
}

/* ==========================================================================
   Toast Notifications
   ========================================================================== */

/* ------------------------------------------------------------------
   Container (holds all toasts)
   ------------------------------------------------------------------ */
.c-toast {
  position: fixed;
  z-index: 9997;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
  max-width: 400px;
  width: calc(100% - 32px);
}

/* Position variants */
.c-toast--bottom-center {
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
}

.c-toast--top-right {
  top: 24px;
  right: 24px;
  align-items: flex-end;
}

.c-toast--bottom-right {
  bottom: 24px;
  right: 24px;
  align-items: flex-end;
}

.c-toast--top-center {
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
}

/* ------------------------------------------------------------------
   Individual toast item
   ------------------------------------------------------------------ */
.c-toast__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.1),
    0 1px 4px rgba(0, 0, 0, 0.06);
  pointer-events: auto;
  max-width: 100%;
  position: relative;
  overflow: hidden;
  opacity: 1;
}

/* Left accent border */
.c-toast__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background-color: #1a1a1a;
}

/* Variant colors */
.c-toast__item--success::before {
  background-color: #4caf50;
}

.c-toast__item--error::before {
  background-color: #ef5350;
}

.c-toast__item--warning::before {
  background-color: #ff9800;
}

.c-toast__item--info::before {
  background-color: #2196f3;
}

/* ------------------------------------------------------------------
   Icon
   ------------------------------------------------------------------ */
.c-toast__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
}

.c-toast__icon svg {
  width: 100%;
  height: 100%;
}

.c-toast__item--success .c-toast__icon {
  color: #4caf50;
}

.c-toast__item--error .c-toast__icon {
  color: #ef5350;
}

.c-toast__item--warning .c-toast__icon {
  color: #ff9800;
}

.c-toast__item--info .c-toast__icon {
  color: #2196f3;
}

/* ------------------------------------------------------------------
   Content
   ------------------------------------------------------------------ */
.c-toast__content {
  flex: 1;
  min-width: 0;
}

.c-toast__title {
  font-size: 14px;
  font-weight: 700;
  color: #2c2c2c;
  margin-bottom: 2px;
  line-height: 1.4;
}

.c-toast__message {
  font-size: 13px;
  color: #666;
  line-height: 1.5;
}

/* ------------------------------------------------------------------
   Close button
   ------------------------------------------------------------------ */
.c-toast__close {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: #999;
  padding: 0;
  border-radius: 4px;
  transition: background-color 0.15s ease;
}

.c-toast__close:hover {
  background-color: rgba(0, 0, 0, 0.05);
  color: #333;
}

.c-toast__close::before,
.c-toast__close::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 1.5px;
  background-color: currentColor;
}

.c-toast__close::before {
  transform: rotate(45deg);
}

.c-toast__close::after {
  transform: rotate(-45deg);
}

/* ------------------------------------------------------------------
   Auto-dismiss progress bar
   ------------------------------------------------------------------ */
.c-toast__progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background-color: rgba(0, 0, 0, 0.12);
  border-radius: 0 2px 0 0;
  animation: toastProgress linear forwards;
}

.c-toast__item--success .c-toast__progress {
  background-color: rgba(76, 175, 80, 0.5);
}

.c-toast__item--error .c-toast__progress {
  background-color: rgba(239, 83, 80, 0.5);
}

@keyframes toastProgress {
  from {
    width: 100%;
  }
  to {
    width: 0%;
  }
}

/* ------------------------------------------------------------------
   Entrance / exit animations
   ------------------------------------------------------------------ */

/* Entering from bottom */
.c-toast__item.is-entering {
  animation: toastEnterUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes toastEnterUp {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Entering from right */
.c-toast--top-right .c-toast__item.is-entering,
.c-toast--bottom-right .c-toast__item.is-entering {
  animation: toastEnterRight 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes toastEnterRight {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Leaving */
.c-toast__item.is-leaving {
  animation: toastLeave 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes toastLeave {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(12px) scale(0.96);
  }
}

/* ------------------------------------------------------------------
   Mobile
   ------------------------------------------------------------------ */
@media (max-width: 539px) {
  .c-toast {
    width: calc(100% - 16px);
    left: 8px;
    right: 8px;
    max-width: none;
    transform: none;
  }

  .c-toast--bottom-center,
  .c-toast--bottom-right {
    bottom: 16px;
  }

  .c-toast--top-right,
  .c-toast--top-center {
    top: 16px;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-toast__item.is-entering,
  .c-toast__item.is-leaving {
    animation: none;
  }

  .c-toast__progress {
    animation: none;
  }
}

/* ==========================================================================
   General Modal
   ========================================================================== */

/* ------------------------------------------------------------------
   Overlay wrapper
   ------------------------------------------------------------------ */
.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-modal.is-open {
  opacity: 1;
  visibility: visible;
}

/* Body lock when modal open */
body.is-modal-open {
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Backdrop
   ------------------------------------------------------------------ */
.c-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.55);
  cursor: pointer;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ------------------------------------------------------------------
   Content card
   ------------------------------------------------------------------ */
.c-modal__content {
  position: relative;
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 1;
  transform: translateY(24px) scale(0.97);
  opacity: 0;
  transition:
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-modal.is-open .c-modal__content {
  transform: translateY(0) scale(1);
  opacity: 1;
  transition-delay: 0.05s;
}

/* Size variants */
.c-modal--sm .c-modal__content {
  max-width: 400px;
}

.c-modal--lg .c-modal__content {
  max-width: 800px;
}

.c-modal--full .c-modal__content {
  max-width: 95vw;
  max-height: 95vh;
}

/* ------------------------------------------------------------------
   Header
   ------------------------------------------------------------------ */
.c-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 28px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

.c-modal__title {
  font-size: 18px;
  font-weight: 700;
  color: #2c2c2c;
  line-height: 1.3;
}

/* ------------------------------------------------------------------
   Close button
   ------------------------------------------------------------------ */
.c-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  margin-left: 16px;
  transition: background-color 0.15s ease;
  position: relative;
}

.c-modal__close:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.c-modal__close:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}

.c-modal__close::before,
.c-modal__close::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 2px;
  background-color: #666;
  transition: background-color 0.15s ease;
}

.c-modal__close::before {
  transform: rotate(45deg);
}

.c-modal__close::after {
  transform: rotate(-45deg);
}

.c-modal__close:hover::before,
.c-modal__close:hover::after {
  background-color: #333;
}

/* ------------------------------------------------------------------
   Body
   ------------------------------------------------------------------ */
.c-modal__body {
  padding: 28px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1;
}

.c-modal__body p {
  font-size: 15px;
  line-height: 1.7;
  color: #555;
  margin-bottom: 16px;
}

.c-modal__body p:last-child {
  margin-bottom: 0;
}

/* ------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------ */
.c-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 20px 28px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Exit animation
   ------------------------------------------------------------------ */
.c-modal.is-closing {
  opacity: 0;
}

.c-modal.is-closing .c-modal__content {
  transform: translateY(16px) scale(0.97);
  opacity: 0;
}

/* ------------------------------------------------------------------
   Mobile
   ------------------------------------------------------------------ */
@media (max-width: 539px) {
  .c-modal {
    padding: 0;
    align-items: flex-end;
  }

  .c-modal__content {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 16px 16px 0 0;
    transform: translateY(100%);
  }

  .c-modal.is-open .c-modal__content {
    transform: translateY(0);
  }

  .c-modal.is-closing .c-modal__content {
    transform: translateY(100%);
  }

  .c-modal__header {
    padding: 20px;
  }

  .c-modal__body {
    padding: 20px;
  }

  .c-modal__footer {
    padding: 16px 20px;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-modal,
  .c-modal__content {
    transition: none;
  }
}

/* ==========================================================================
   Dark Mode - S.Line Corporate Theme
   Complete dark theme with smooth toggle transition
   ========================================================================== */

/* ------------------------------------------------------------------
   Transition class: added temporarily during toggle
   ------------------------------------------------------------------ */
.is-transitioning,
.is-transitioning *,
.is-transitioning *::before,
.is-transitioning *::after {
  transition: background-color 0.5s ease,
              color 0.5s ease,
              border-color 0.5s ease,
              box-shadow 0.5s ease,
              fill 0.5s ease,
              stroke 0.5s ease !important;
}

/* ------------------------------------------------------------------
   Dark Mode Variable Overrides
   ------------------------------------------------------------------ */
.is-dark-mode {
  /* Backgrounds */
  --color-bg: #1a1a1a;
  --color-bg-white: #242424;
  --color-bg-dark: #f8f5f5;
  --color-bg-accent: #1e2530;
  --color-bg-cta: #7A95BA;

  /* Text */
  --color-text-primary: #e8e4e0;
  --color-text-secondary: #a0b0c8;
  --color-text-muted: #7888a0;
  --color-text-white: #ffffff;

  /* Border */
  --color-border: #2a3040;
  --color-border-light: #222838;
  --color-border-dark: #3a4050;

  /* Shadows - darker in dark mode */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.35);
  --shadow-xl: 0 12px 40px rgba(0, 0, 0, 0.4);
  --shadow-hover: 0 8px 30px rgba(0, 0, 0, 0.4);
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.25);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.35);

  /* Overlay */
  --color-overlay-dark: rgba(0, 0, 0, 0.7);
  --color-overlay-darker: rgba(0, 0, 0, 0.85);
  --color-overlay-light: rgba(255, 255, 255, 0.05);

  color-scheme: dark;
}

/* ------------------------------------------------------------------
   Header Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-header {
  background-color: rgba(26, 26, 26, 0.95);
  border-bottom-color: var(--color-border);
}

.is-dark-mode .c-header.is-scrolled {
  background-color: rgba(36, 36, 36, 0.98);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
}

.is-dark-mode .c-header__logo-text {
  color: var(--color-text-primary);
}

.is-dark-mode .c-nav__link {
  color: var(--color-text-secondary);
}

.is-dark-mode .c-nav__link:hover,
.is-dark-mode .c-nav__link.is-active {
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Footer Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-footer {
  background-color: #121212;
  border-top-color: var(--color-border);
}

.is-dark-mode .c-footer__bottom {
  border-top-color: var(--color-border);
}

/* ------------------------------------------------------------------
   Cards Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-card {
  background-color: var(--color-bg-white);
  border-color: var(--color-border);
}

.is-dark-mode .c-card:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

.is-dark-mode .c-card__body {
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Form Inputs Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-form__input,
.is-dark-mode .c-form__textarea,
.is-dark-mode .c-form__select,
.is-dark-mode input[type="text"],
.is-dark-mode input[type="email"],
.is-dark-mode input[type="tel"],
.is-dark-mode input[type="url"],
.is-dark-mode input[type="password"],
.is-dark-mode input[type="search"],
.is-dark-mode input[type="number"],
.is-dark-mode textarea,
.is-dark-mode select {
  background-color: #1e1e1e;
  border-color: var(--color-border);
  color: var(--color-text-primary);
}

.is-dark-mode .c-form__input::placeholder,
.is-dark-mode .c-form__textarea::placeholder,
.is-dark-mode textarea::placeholder,
.is-dark-mode input::placeholder {
  color: var(--color-text-muted);
}

.is-dark-mode .c-form__input:focus,
.is-dark-mode .c-form__textarea:focus,
.is-dark-mode textarea:focus,
.is-dark-mode input:focus,
.is-dark-mode select:focus {
  border-color: var(--color-brand-primary);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.04);
}

/* ------------------------------------------------------------------
   Accordion Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-accordion__header {
  background-color: var(--color-bg-white);
  border-color: var(--color-border);
  color: var(--color-text-primary);
}

.is-dark-mode .c-accordion__body {
  background-color: #1e1e1e;
  border-color: var(--color-border);
}

/* ------------------------------------------------------------------
   Table Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-table th {
  background-color: #1e2530;
  color: var(--color-text-primary);
  border-color: var(--color-border);
}

.is-dark-mode .c-table td {
  border-color: var(--color-border);
  color: var(--color-text-primary);
}

.is-dark-mode .c-table tr:nth-child(even) td {
  background-color: #1e1e1e;
}

/* ------------------------------------------------------------------
   Breadcrumbs Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-breadcrumbs {
  background-color: var(--color-bg-white);
}

.is-dark-mode .c-breadcrumbs__link {
  color: var(--color-text-secondary);
}

/* ------------------------------------------------------------------
   Modal / Lightbox Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-modal__content,
.is-dark-mode .c-lightbox__caption {
  background-color: var(--color-bg-white);
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Toast Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-toast {
  background-color: #2e2e2e;
  color: var(--color-text-primary);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

/* ------------------------------------------------------------------
   Section Background Overrides
   ------------------------------------------------------------------ */
.is-dark-mode .s-numbers {
  background-color: #121212;
}

.is-dark-mode .s-testimonials {
  background-color: var(--color-bg-accent);
}

.is-dark-mode .s-cta {
  background-color: #1e2530;
}

/* ------------------------------------------------------------------
   Image Brightness
   ------------------------------------------------------------------ */
.is-dark-mode img:not(.c-dark-toggle__icon):not(.c-header__logo-img) {
  filter: brightness(0.9);
}

/* ------------------------------------------------------------------
   Scrollbar Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode ::-webkit-scrollbar-track {
  background: #1a1a1a;
}

.is-dark-mode ::-webkit-scrollbar-thumb {
  background-color: #3a4050;
}

.is-dark-mode ::-webkit-scrollbar-thumb:hover {
  background-color: #4a5060;
}

/* ------------------------------------------------------------------
   Selection Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode ::selection {
  background-color: rgba(0, 0, 0, 0.04);
  color: #ffffff;
}

/* ------------------------------------------------------------------
   Dark Mode Toggle Button
   ------------------------------------------------------------------ */
.c-dark-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-full);
  background-color: var(--color-bg-white);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: border-color 0.3s ease,
              background-color 0.3s ease,
              color 0.3s ease,
              transform 0.3s ease;
  z-index: var(--z-fixed);
  -webkit-tap-highlight-color: transparent;
}

.c-dark-toggle:hover {
  border-color: var(--color-brand-primary);
  transform: scale(1.08);
}

.c-dark-toggle:active {
  transform: scale(0.95);
}

/* Icons inside toggle */
.c-dark-toggle__icon {
  width: 20px;
  height: 20px;
  transition: opacity 0.3s ease, transform 0.4s ease;
  position: absolute;
}

.c-dark-toggle__icon--sun {
  opacity: 0;
  transform: rotate(90deg) scale(0.5);
}

.c-dark-toggle__icon--moon {
  opacity: 1;
  transform: rotate(0) scale(1);
}

/* In dark mode: show sun, hide moon */
.is-dark-mode .c-dark-toggle__icon--sun {
  opacity: 1;
  transform: rotate(0) scale(1);
}

.is-dark-mode .c-dark-toggle__icon--moon {
  opacity: 0;
  transform: rotate(-90deg) scale(0.5);
}

.is-dark-mode .c-dark-toggle {
  background-color: #2e2e2e;
  border-color: #3a4050;
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Header placement variant
   ------------------------------------------------------------------ */
.c-header .c-dark-toggle {
  position: static;
  width: 40px;
  height: 40px;
}

/* ------------------------------------------------------------------
   Fixed position variant (bottom-left)
   ------------------------------------------------------------------ */
.c-dark-toggle--fixed {
  position: fixed;
  bottom: 24px;
  left: 24px;
  box-shadow: var(--shadow-lg);
}

@media (max-width: 768px) {
  .c-dark-toggle--fixed {
    bottom: 16px;
    left: 16px;
    width: 40px;
    height: 40px;
  }
}

/* ------------------------------------------------------------------
   Code / Pre Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode pre,
.is-dark-mode code {
  background-color: #1e1e1e;
  color: #c8d4e4;
  border-color: var(--color-border);
}

/* ------------------------------------------------------------------
   Blockquote Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode blockquote {
  background-color: var(--color-bg-accent);
  border-left-color: var(--color-brand-primary);
  color: var(--color-text-secondary);
}

/* ------------------------------------------------------------------
   HR Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode hr {
  border-color: var(--color-border);
}

/* ------------------------------------------------------------------
   Back to Top / Floating CTA Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-back-to-top {
  background-color: #2e2e2e;
  border-color: #3a4050;
}

.is-dark-mode .c-floating-cta {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

/* ------------------------------------------------------------------
   Progress Bar Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-progress-bar {
  background-color: #2e2e2e;
}

/* ------------------------------------------------------------------
   Compare / Before-After Dark Mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-compare {
  border-color: var(--color-border);
}

.is-dark-mode .c-compare__label {
  background-color: rgba(26, 26, 26, 0.85);
}

/* ==========================================================================
   Particles - Canvas-based particle background
   ========================================================================== */

.c-particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.c-particles canvas {
  display: block;
  width: 100%;
  height: 100%;
}

/* ------------------------------------------------------------------
   Layer management: content above particles
   ------------------------------------------------------------------ */
.c-particles + *,
.c-particles ~ .s-hero__content,
.c-particles ~ .s-hero__inner {
  position: relative;
  z-index: 1;
}

/* ------------------------------------------------------------------
   Hero section with particles
   ------------------------------------------------------------------ */
.s-hero--particles {
  position: relative;
  overflow: hidden;
}

.s-hero--particles .s-hero__content {
  position: relative;
  z-index: 1;
}

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

/* Dense particle field */
.c-particles--dense canvas {
  opacity: 0.8;
}

/* Subtle / light particle field */
.c-particles--subtle canvas {
  opacity: 0.4;
}

/* Dark background variant */
.c-particles--dark canvas {
  opacity: 0.6;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-particles canvas {
    opacity: 0.3;
  }
}

/* ==========================================================================
   Smooth Scroll (Lenis-style) - Custom scrollbar & scroll wrapper
   ========================================================================== */

/* ------------------------------------------------------------------
   HTML override for transform-based scrolling
   ------------------------------------------------------------------ */
html.has-smooth-scroll {
  overflow: hidden;
}

html.has-smooth-scroll body {
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Smooth scroll content wrapper
   ------------------------------------------------------------------ */
.smooth-scroll-wrapper {
  will-change: transform;
}

/* ------------------------------------------------------------------
   Custom Scrollbar - Webkit (Chrome, Safari, Edge)
   ------------------------------------------------------------------ */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #f8f5f5;
}

::-webkit-scrollbar-thumb {
  background-color: var(--color-brand-primary, #1a1a1a);
  border-radius: 4px;
  border: 2px solid transparent;
  background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-brand-primary-hover, #7A95BA);
}

::-webkit-scrollbar-thumb:active {
  background-color: var(--color-brand-primary-active, #1a1a1a);
}

/* Corner piece */
::-webkit-scrollbar-corner {
  background: #f8f5f5;
}

/* ------------------------------------------------------------------
   Custom Scrollbar - Firefox
   ------------------------------------------------------------------ */
html {
  scrollbar-color: var(--color-brand-primary, #1a1a1a) #f8f5f5;
  scrollbar-width: thin;
}

/* ------------------------------------------------------------------
   Dark mode scrollbar overrides
   ------------------------------------------------------------------ */
.is-dark-mode {
  scrollbar-color: #3a4050 #1a1a1a;
}

/* ------------------------------------------------------------------
   Smooth scroll active indicator
   ------------------------------------------------------------------ */
.has-smooth-scroll .c-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  z-index: calc(var(--z-header) + 1);
}

/* ------------------------------------------------------------------
   Reduced motion - disable smooth scrolling
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html.has-smooth-scroll {
    overflow: auto;
  }

  html.has-smooth-scroll body {
    overflow: auto;
  }

  .smooth-scroll-wrapper {
    will-change: auto;
    transform: none !important;
  }
}

/* ==========================================================================
   Odometer - Digit-by-digit rolling counter
   ========================================================================== */

/* ------------------------------------------------------------------
   Container
   ------------------------------------------------------------------ */
.c-odometer {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* ------------------------------------------------------------------
   Individual digit slot
   ------------------------------------------------------------------ */
.c-odometer__digit {
  display: inline-block;
  position: relative;
  overflow: hidden;
  height: 1em;
  width: 0.6em;
  text-align: center;
}

/* ------------------------------------------------------------------
   Digit inner strip (contains 0-9 stacked vertically)
   ------------------------------------------------------------------ */
.c-odometer__digit-inner {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* ------------------------------------------------------------------
   Each number inside the strip
   ------------------------------------------------------------------ */
.c-odometer__digit-num {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 1em;
  width: 100%;
  flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Separator (comma, period, etc.)
   ------------------------------------------------------------------ */
.c-odometer__separator {
  display: inline-block;
  width: 0.35em;
  text-align: center;
  flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Prefix / Suffix (e.g., $, %, +)
   ------------------------------------------------------------------ */
.c-odometer__prefix,
.c-odometer__suffix {
  display: inline-block;
  flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Size variants
   ------------------------------------------------------------------ */
.c-odometer--sm {
  font-size: var(--text-xl);
}

.c-odometer--md {
  font-size: var(--text-4xl);
}

.c-odometer--lg {
  font-size: var(--text-5xl);
}

.c-odometer--xl {
  font-size: var(--text-6xl);
}

/* ------------------------------------------------------------------
   Brand color variant
   ------------------------------------------------------------------ */
.c-odometer--brand {
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Stagger animation - each digit rolls slightly after the previous
   ------------------------------------------------------------------ */
.c-odometer__digit:nth-child(1) .c-odometer__digit-inner { transition-delay: 0s; }
.c-odometer__digit:nth-child(2) .c-odometer__digit-inner { transition-delay: 0.05s; }
.c-odometer__digit:nth-child(3) .c-odometer__digit-inner { transition-delay: 0.1s; }
.c-odometer__digit:nth-child(4) .c-odometer__digit-inner { transition-delay: 0.15s; }
.c-odometer__digit:nth-child(5) .c-odometer__digit-inner { transition-delay: 0.2s; }
.c-odometer__digit:nth-child(6) .c-odometer__digit-inner { transition-delay: 0.25s; }
.c-odometer__digit:nth-child(7) .c-odometer__digit-inner { transition-delay: 0.3s; }
.c-odometer__digit:nth-child(8) .c-odometer__digit-inner { transition-delay: 0.35s; }

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-odometer__digit-inner {
    transition: none;
  }
}

/* ==========================================================================
   Morphing Blob - Animated organic shapes for section decoration
   ========================================================================== */

/* ------------------------------------------------------------------
   Base blob container
   ------------------------------------------------------------------ */
.c-blob {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  opacity: 0.15;
  filter: blur(60px);
  will-change: transform;
}

.c-blob svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ------------------------------------------------------------------
   Size variants
   ------------------------------------------------------------------ */
.c-blob--sm {
  width: 200px;
  height: 200px;
}

.c-blob--md {
  width: 400px;
  height: 400px;
}

.c-blob--lg {
  width: 600px;
  height: 600px;
}

.c-blob--xl {
  width: 800px;
  height: 800px;
}

/* ------------------------------------------------------------------
   Positional variants
   ------------------------------------------------------------------ */
.c-blob--top-left {
  top: -15%;
  left: -10%;
}

.c-blob--top-right {
  top: -10%;
  right: -10%;
}

.c-blob--bottom-left {
  bottom: -15%;
  left: -10%;
}

.c-blob--bottom-right {
  bottom: -10%;
  right: -10%;
}

.c-blob--center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* ------------------------------------------------------------------
   Color variants using CSS animations for blobs without JS
   ------------------------------------------------------------------ */
.c-blob--1 {
  background: radial-gradient(
    circle at 50% 50%,
    var(--color-brand-primary) 0%,
    transparent 70%
  );
  border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
  animation: blobMorph1 12s ease-in-out infinite alternate;
}

.c-blob--2 {
  background: radial-gradient(
    circle at 50% 50%,
    var(--color-brand-secondary) 0%,
    transparent 70%
  );
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  animation: blobMorph2 15s ease-in-out infinite alternate;
}

.c-blob--3 {
  background: radial-gradient(
    circle at 50% 50%,
    var(--color-brand-light) 0%,
    transparent 70%
  );
  border-radius: 50% 50% 40% 60% / 50% 60% 40% 50%;
  animation: blobMorph3 10s ease-in-out infinite alternate;
}

/* ------------------------------------------------------------------
   SVG variant (used with JS morphing)
   ------------------------------------------------------------------ */
.c-blob--svg {
  background: none;
  filter: blur(0);
  opacity: 0.2;
  animation: none;
}

.c-blob--svg svg {
  filter: blur(40px);
}

/* ------------------------------------------------------------------
   Keyframe animations for CSS-only blobs
   ------------------------------------------------------------------ */
@keyframes blobMorph1 {
  0% {
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    transform: rotate(0deg) scale(1);
  }
  33% {
    border-radius: 70% 30% 50% 50% / 30% 60% 40% 70%;
  }
  66% {
    border-radius: 50% 50% 30% 70% / 50% 70% 30% 50%;
  }
  100% {
    border-radius: 30% 70% 60% 40% / 60% 40% 70% 30%;
    transform: rotate(45deg) scale(1.05);
  }
}

@keyframes blobMorph2 {
  0% {
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    transform: rotate(0deg) scale(1);
  }
  33% {
    border-radius: 30% 70% 50% 50% / 50% 40% 60% 50%;
  }
  66% {
    border-radius: 50% 50% 70% 30% / 30% 60% 40% 70%;
  }
  100% {
    border-radius: 40% 60% 40% 60% / 70% 30% 60% 40%;
    transform: rotate(-30deg) scale(1.08);
  }
}

@keyframes blobMorph3 {
  0% {
    border-radius: 50% 50% 40% 60% / 50% 60% 40% 50%;
    transform: rotate(0deg) scale(1);
  }
  33% {
    border-radius: 40% 60% 60% 40% / 60% 40% 50% 50%;
  }
  66% {
    border-radius: 60% 40% 50% 50% / 40% 60% 50% 50%;
  }
  100% {
    border-radius: 70% 30% 40% 60% / 50% 50% 60% 40%;
    transform: rotate(60deg) scale(1.03);
  }
}

/* ------------------------------------------------------------------
   Dark mode - slightly more visible
   ------------------------------------------------------------------ */
.is-dark-mode .c-blob {
  opacity: 0.1;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .c-blob--1,
  .c-blob--2,
  .c-blob--3 {
    animation: none;
  }
}

/* ------------------------------------------------------------------
   Mobile: smaller blobs, less blur for performance
   ------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-blob {
    filter: blur(40px);
    opacity: 0.1;
  }

  .c-blob--lg {
    width: 300px;
    height: 300px;
  }

  .c-blob--xl {
    width: 400px;
    height: 400px;
  }
}

/* ==========================================================================
   Notification Bar - Top announcement bar
   ========================================================================== */

/* ------------------------------------------------------------------
   Bar container
   ------------------------------------------------------------------ */
.c-notification-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: calc(var(--z-header) + 10);
  background: linear-gradient(135deg, #f8f8f8 0%, #f0f0f0 100%);
  border-bottom: 1px solid #e8e8e8;
  color: var(--color-text-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  transform: translateY(-100%);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* Visible state */
.c-notification-bar.is-visible {
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Inner layout
   ------------------------------------------------------------------ */
.c-notification-bar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 10px var(--container-padding);
  min-height: 44px;
}

/* ------------------------------------------------------------------
   Icon (optional)
   ------------------------------------------------------------------ */
.c-notification-bar__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  opacity: 0.9;
}

/* ------------------------------------------------------------------
   Message text
   ------------------------------------------------------------------ */
.c-notification-bar__text {
  flex: 1;
  text-align: center;
  font-weight: var(--fw-medium);
}

/* ------------------------------------------------------------------
   Link inside notification
   ------------------------------------------------------------------ */
.c-notification-bar__link {
  color: var(--color-brand-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 0.2s ease;
  font-weight: var(--fw-semibold);
}

.c-notification-bar__link:hover {
  opacity: 0.8;
}

/* ------------------------------------------------------------------
   CTA button inside notification
   ------------------------------------------------------------------ */
.c-notification-bar__cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 14px;
  background-color: var(--color-brand-primary);
  border: 1px solid var(--color-brand-primary);
  border-radius: var(--radius-full);
  color: #ffffff;
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}

.c-notification-bar__cta:hover {
  background-color: var(--color-brand-primary-hover, #333333);
  border-color: var(--color-brand-primary-hover, #333333);
}

/* ------------------------------------------------------------------
   Close button
   ------------------------------------------------------------------ */
.c-notification-bar__close {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.06);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: background-color 0.2s ease,
              transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.c-notification-bar__close:hover {
  background-color: rgba(0, 0, 0, 0.12);
  transform: scale(1.1);
}

.c-notification-bar__close:active {
  transform: scale(0.95);
}

.c-notification-bar__close svg {
  width: 14px;
  height: 14px;
}

/* ------------------------------------------------------------------
   Header offset when notification bar is visible
   ------------------------------------------------------------------ */
body.has-notification-bar .c-header {
  transform: translateY(44px);
}

body.has-notification-bar .c-header.is-scrolled {
  transform: translateY(44px);
}

body.has-notification-bar .c-header.is-hidden {
  transform: translateY(-100%);
}

body.has-notification-bar {
  padding-top: 44px;
}

/* ------------------------------------------------------------------
   Color variants
   ------------------------------------------------------------------ */
.c-notification-bar--info {
  background: linear-gradient(135deg, var(--color-info) 0%, #42a5f5 100%);
}

.c-notification-bar--success {
  background: linear-gradient(135deg, var(--color-success) 0%, #66bb6a 100%);
}

.c-notification-bar--warning {
  background: linear-gradient(135deg, var(--color-warning) 0%, #ffa726 100%);
  color: #333333;
}

.c-notification-bar--warning .c-notification-bar__close {
  background-color: rgba(0, 0, 0, 0.1);
  color: #333333;
}

.c-notification-bar--error {
  background: linear-gradient(135deg, var(--color-error) 0%, #ef5350 100%);
}

.c-notification-bar--dark {
  background: linear-gradient(135deg, #2c2c2c 0%, #3c3c3c 100%);
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-notification-bar__inner {
    padding: 8px var(--container-padding);
    gap: var(--space-sm);
  }

  .c-notification-bar__text {
    font-size: var(--text-xs);
  }

  .c-notification-bar__cta {
    display: none;
  }

  body.has-notification-bar .c-header {
    transform: translateY(40px);
  }

  body.has-notification-bar {
    padding-top: 40px;
  }
}

/* ==========================================================================
   Image Compare (Enhanced) - Before/After with vertical split & fullscreen
   ========================================================================== */

/* ------------------------------------------------------------------
   Container
   ------------------------------------------------------------------ */
.c-image-compare {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  cursor: col-resize;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
  border: 1px solid var(--color-border);
}

.c-image-compare--vertical {
  cursor: row-resize;
  touch-action: pan-x;
}

/* ------------------------------------------------------------------
   Images
   ------------------------------------------------------------------ */
.c-image-compare__before,
.c-image-compare__after {
  position: relative;
  display: block;
}

.c-image-compare__before {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
}

.c-image-compare__after {
  display: block;
  width: 100%;
  height: auto;
  z-index: 1;
}

.c-image-compare__before img,
.c-image-compare__after img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

/* Horizontal clip (default) */
.c-image-compare__before {
  clip-path: inset(0 50% 0 0);
}

/* Vertical clip */
.c-image-compare--vertical .c-image-compare__before {
  clip-path: inset(0 0 50% 0);
}

/* ------------------------------------------------------------------
   Handle / Divider (Horizontal)
   ------------------------------------------------------------------ */
.c-image-compare__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  z-index: 3;
  background-color: var(--color-text-white);
  transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
  pointer-events: none;
}

/* Handle grip circle */
.c-image-compare__handle::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background-color: var(--color-text-white);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  pointer-events: auto;
  cursor: grab;
}

.c-image-compare__handle::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M8 3l-5 9 5 9M16 3l5 9-5 9'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  z-index: 1;
}

/* Grab cursor states */
.c-image-compare.is-dragging {
  cursor: grabbing;
}

.c-image-compare.is-dragging .c-image-compare__handle::before {
  cursor: grabbing;
  transform: translate(-50%, -50%) scale(1.1);
}

/* ------------------------------------------------------------------
   Handle / Divider (Vertical)
   ------------------------------------------------------------------ */
.c-image-compare--vertical .c-image-compare__handle {
  top: 50%;
  bottom: auto;
  left: 0;
  right: 0;
  width: auto;
  height: 3px;
  transform: translateY(-50%);
}

.c-image-compare--vertical .c-image-compare__handle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* ------------------------------------------------------------------
   Labels
   ------------------------------------------------------------------ */
.c-image-compare__label {
  position: absolute;
  z-index: 4;
  padding: 6px 14px;
  background-color: rgba(0, 0, 0, 0.6);
  color: var(--color-text-white);
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  border-radius: var(--radius-full);
  pointer-events: none;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.c-image-compare__label--before {
  top: 16px;
  left: 16px;
}

.c-image-compare__label--after {
  top: 16px;
  right: 16px;
}

/* Vertical label positions */
.c-image-compare--vertical .c-image-compare__label--before {
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
}

.c-image-compare--vertical .c-image-compare__label--after {
  top: auto;
  bottom: 16px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* ------------------------------------------------------------------
   Fullscreen toggle
   ------------------------------------------------------------------ */
.c-image-compare__fullscreen {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: var(--radius-md);
  background-color: rgba(0, 0, 0, 0.5);
  color: var(--color-text-white);
  cursor: pointer;
  transition: background-color 0.2s ease,
              transform 0.2s ease;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  -webkit-tap-highlight-color: transparent;
}

.c-image-compare__fullscreen:hover {
  background-color: rgba(0, 0, 0, 0.7);
  transform: scale(1.1);
}

.c-image-compare__fullscreen svg {
  width: 18px;
  height: 18px;
}

/* When labels exist, move fullscreen button */
.c-image-compare__label--after ~ .c-image-compare__fullscreen {
  right: auto;
  left: 50%;
  transform: translateX(-50%);
  top: auto;
  bottom: 16px;
}

/* ------------------------------------------------------------------
   Fullscreen state
   ------------------------------------------------------------------ */
.c-image-compare.is-fullscreen {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  border-radius: 0;
  border: none;
  background-color: #1a1a1a;
}

.c-image-compare.is-fullscreen .c-image-compare__after img,
.c-image-compare.is-fullscreen .c-image-compare__before img {
  object-fit: contain;
}

/* Close button in fullscreen */
.c-image-compare__fullscreen-close {
  display: none;
}

.c-image-compare.is-fullscreen .c-image-compare__fullscreen-close {
  display: flex;
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: var(--radius-full);
  background-color: rgba(255, 255, 255, 0.15);
  color: var(--color-text-white);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.c-image-compare.is-fullscreen .c-image-compare__fullscreen-close:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.c-image-compare.is-fullscreen .c-image-compare__fullscreen {
  display: none;
}

/* ------------------------------------------------------------------
   Dark mode
   ------------------------------------------------------------------ */
.is-dark-mode .c-image-compare {
  border-color: var(--color-border);
}

.is-dark-mode .c-image-compare__label {
  background-color: rgba(36, 36, 36, 0.8);
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-image-compare__handle::before {
    width: 36px;
    height: 36px;
  }

  .c-image-compare__label {
    font-size: 10px;
    padding: 4px 10px;
  }

  .c-image-compare__fullscreen {
    width: 32px;
    height: 32px;
  }
}

/* ==========================================================================
   Hero Sections - Premium editorial design (Light Theme)
   ========================================================================== */

/* ------------------------------------------------------------------
   Top page hero - fullscreen immersive
   ------------------------------------------------------------------ */
.s-hero--top {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: linear-gradient(180deg, #fafbfc 0%, #f5f6f8 30%, #ffffff 100%);
}

/* ------------------------------------------------------------------
   Background decorative elements
   ------------------------------------------------------------------ */
.s-hero__bg-decor {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Large soft radial glow - top right */
.s-hero__bg-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
}

.s-hero__bg-orb--1 {
  width: 700px;
  height: 700px;
  top: -20%;
  right: -12%;
  background: radial-gradient(circle, rgba(200, 210, 225, 0.18) 0%, transparent 70%);
  animation: orbDrift 20s ease-in-out infinite alternate;
}

.s-hero__bg-orb--2 {
  width: 500px;
  height: 500px;
  bottom: -15%;
  left: -10%;
  background: radial-gradient(circle, rgba(200, 210, 225, 0.12) 0%, transparent 70%);
  animation: orbDrift 24s ease-in-out infinite alternate-reverse;
}

/* Warm accent orb - very subtle */
.s-hero__bg-orb--3 {
  width: 300px;
  height: 300px;
  top: 30%;
  right: 25%;
  background: radial-gradient(circle, rgba(200, 169, 110, 0.06) 0%, transparent 70%);
  animation: orbDrift 16s ease-in-out infinite alternate;
  animation-delay: -5s;
}

@keyframes orbDrift {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(20px, -15px) scale(1.05); }
  100% { transform: translate(-10px, 10px) scale(0.97); }
}

/* Subtle grain texture */
.s-hero__grain {
  position: absolute;
  inset: -50%;
  width: 200%;
  height: 200%;
  z-index: 1;
  pointer-events: none;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  animation: grainShift 0.5s steps(4) infinite;
}

@keyframes grainShift {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(-2%, -2%); }
  50%  { transform: translate(1%, -1%); }
  75%  { transform: translate(-1%, 1%); }
  100% { transform: translate(0, 0); }
}

/* Thin horizontal rule for architectural structure */
.s-hero__bg-rule {
  position: absolute;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.04), transparent);
}

.s-hero__bg-rule--1 { top: 30%; }
.s-hero__bg-rule--2 { top: 70%; }

/* Vertical decorative line - right side accent */
.s-hero__bg-vline {
  position: absolute;
  right: 10%;
  top: 15%;
  bottom: 15%;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.06) 20%,
    rgba(0, 0, 0, 0.06) 80%,
    transparent 100%
  );
}

/* Small accent dot on the vertical line */
.s-hero__bg-vline::after {
  content: "";
  position: absolute;
  top: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  background: var(--color-accent-yellow);
  border-radius: 50%;
  opacity: 0.5;
  box-shadow: 0 0 12px rgba(200, 169, 110, 0.3);
  animation: accentPulse 4s ease-in-out infinite;
}

@keyframes accentPulse {
  0%, 100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
  50%      { opacity: 0.7; transform: translateX(-50%) scale(1.4); }
}

/* ------------------------------------------------------------------
   Content layout - center-aligned
   ------------------------------------------------------------------ */
.s-hero__content-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  padding-top: calc(var(--space-5xl) + 40px);
  padding-bottom: var(--space-4xl);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ------------------------------------------------------------------
   Sub-label above heading
   ------------------------------------------------------------------ */
.s-hero__label {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-2xl);
}

.s-hero__label-line {
  display: block;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, var(--color-accent-yellow), rgba(200, 169, 110, 0.2));
  flex-shrink: 0;
}

.s-hero__label-text {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

@media (min-width: 768px) {
  .s-hero__label-line { width: 56px; }
  .s-hero__label-text { font-size: 12px; }
}

/* ------------------------------------------------------------------
   Hero heading - premium typography
   ------------------------------------------------------------------ */
.s-hero__heading {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5.5vw, 4.5rem);
  font-weight: var(--fw-extrabold);
  color: var(--color-text-primary);
  line-height: 1.2;
  letter-spacing: 0.03em;
  margin-bottom: var(--space-xl);
  max-width: 800px;
}

/* Subtle text shadow for depth on white */
.s-hero__heading span {
  display: inline;
}

/* ------------------------------------------------------------------
   Subheading
   ------------------------------------------------------------------ */
.s-hero__subheading {
  font-family: var(--font-jp);
  font-size: var(--text-base);
  line-height: 2;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-2xl);
  max-width: 640px;
  letter-spacing: 0.04em;
}

@media (min-width: 768px) {
  .s-hero__subheading {
    font-size: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
  }
}

/* ------------------------------------------------------------------
   CTA buttons
   ------------------------------------------------------------------ */
.s-hero__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-3xl);
  justify-content: center;
}

@media (min-width: 480px) {
  .s-hero__actions {
    flex-direction: row;
    align-items: center;
    gap: var(--space-lg);
  }
}

.s-hero__btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: 18px 40px;
  font-family: var(--font-jp);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  color: #ffffff;
  background: var(--color-brand-primary);
  border: 2px solid var(--color-brand-primary);
  border-radius: var(--radius-sm);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.s-hero__btn-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.1), transparent);
  opacity: 0;
  transition: opacity 0.35s ease;
}

.s-hero__btn-primary:hover {
  background: var(--color-brand-secondary);
  border-color: var(--color-brand-secondary);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.s-hero__btn-primary:hover::before {
  opacity: 1;
}

.s-hero__btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Arrow icon in primary button */
.s-hero__btn-arrow {
  display: inline-flex;
  transition: transform 0.3s ease;
}

.s-hero__btn-primary:hover .s-hero__btn-arrow {
  transform: translateX(3px);
}

.s-hero__btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 36px;
  font-family: var(--font-jp);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  color: var(--color-text-primary);
  background: transparent;
  border: 1.5px solid var(--color-border-dark);
  border-radius: var(--radius-sm);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.s-hero__btn-outline:hover {
  background: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

.s-hero__btn-outline:active {
  transform: translateY(0);
  box-shadow: none;
}

/* ------------------------------------------------------------------
   Trust numbers bar
   ------------------------------------------------------------------ */
.s-hero__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.75rem;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  max-width: 700px;
  margin: 0 auto;
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.04),
    0 4px 20px rgba(0, 0, 0, 0.03);
  overflow: visible;
}

.s-hero__trust-item {
  flex: 1 1 auto;
  min-width: 120px;
  text-align: center;
  padding: 12px 20px;
  position: relative;
  white-space: normal;
}

.s-hero__trust-number {
  font-family: var(--font-en);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: 1;
  letter-spacing: -0.02em;
}

.s-hero__trust-unit {
  font-size: 0.5em;
  font-weight: var(--fw-semibold);
  color: var(--color-text-secondary);
  letter-spacing: 0;
  margin-left: 1px;
}

.s-hero__trust-label {
  display: block;
  font-family: var(--font-jp);
  font-size: 11px;
  font-weight: var(--fw-medium);
  color: var(--color-text-muted);
  margin-top: 8px;
  letter-spacing: 0.08em;
}

.s-hero__trust-divider {
  width: 1px;
  flex-shrink: 0;
  background: linear-gradient(
    to bottom,
    transparent 15%,
    rgba(0, 0, 0, 0.08) 50%,
    transparent 85%
  );
}

@media (max-width: 479px) {
  .s-hero__trust {
    max-width: 100%;
    gap: 0.5rem;
  }

  .s-hero__trust-item {
    padding: 12px 16px;
    min-width: 100px;
  }

  .s-hero__trust-number {
    font-size: 1.4rem;
  }

  .s-hero__trust-label {
    font-size: 10px;
    white-space: normal;
  }
}

/* ------------------------------------------------------------------
   Scroll indicator
   ------------------------------------------------------------------ */
.s-hero__scroll {
  position: absolute;
  bottom: var(--space-xl);
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  color: var(--color-text-muted);
}

.s-hero__scroll-text {
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #bbb;
}

.s-hero__scroll-line {
  width: 1px;
  height: 48px;
  position: relative;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.06);
}

.s-hero__scroll-line::after {
  content: "";
  position: absolute;
  top: -100%;
  left: 0;
  width: 1px;
  height: 100%;
  background: linear-gradient(to bottom, transparent, var(--color-brand-primary));
  animation: scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine {
  0%   { top: -100%; }
  50%  { top: 0; }
  100% { top: 100%; }
}

/* ------------------------------------------------------------------
   Right-side decorative vertical text (desktop only)
   ------------------------------------------------------------------ */
.s-hero__side-text {
  position: absolute;
  right: calc(10% + 20px);
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
  transform-origin: center center;
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.08);
  white-space: nowrap;
  z-index: 2;
  pointer-events: none;
}

/* ------------------------------------------------------------------
   Responsive: tablet and below
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .s-hero__bg-vline { display: none; }
  .s-hero__side-text { display: none; }
  .s-hero__bg-rule { display: none; }

  .s-hero__content-wrap {
    padding-top: calc(var(--space-4xl) + 20px);
    padding-bottom: var(--space-3xl);
  }

  .s-hero__heading {
    font-size: clamp(2rem, 7vw, 2.8rem);
    max-width: 100%;
  }
}

/* Small screen overrides */
@media (max-width: 479px) {
  .s-hero__heading {
    max-width: 100%;
  }

  .s-hero__subheading {
    max-width: 100%;
  }

  .s-hero__actions {
    align-items: stretch;
  }

  .s-hero__btn-primary,
  .s-hero__btn-outline {
    justify-content: center;
    width: 100%;
    text-align: center;
  }

  .s-hero__trust {
    margin: 0 auto;
  }
}

/* ------------------------------------------------------------------
   Page hero - sub-pages (light theme)
   ------------------------------------------------------------------ */
.s-hero--page {
  position: relative;
  min-height: 280px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding-top: var(--header-height);
  padding-bottom: var(--space-3xl);
  background-color: var(--color-bg-accent);
  overflow: hidden;
}

@media (min-width: 768px) {
  .s-hero--page {
    min-height: 40vh;
  }
}

.s-hero--page.has-bg {
  background-color: var(--color-bg-accent);
}

.s-hero--page .s-hero__overlay {
  background: linear-gradient(
    to top,
    rgba(237, 241, 247, 0.6) 0%,
    rgba(237, 241, 247, 0.2) 100%
  ) !important;
}

.s-hero--page .s-hero__content {
  text-align: left;
  max-width: none;
  width: 100%;
}

.s-hero--page .s-hero__title {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

@media (min-width: 768px) {
  .s-hero--page .s-hero__title {
    font-size: var(--text-4xl);
  }
}

.s-hero--page .s-hero__subtitle {
  color: var(--color-brand-secondary) !important;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  display: block;
  margin-bottom: var(--space-sm);
}

.s-hero--page:not(.has-bg) .s-hero__content {
  color: var(--color-text-primary);
}

.s-hero--page:not(.has-bg) .s-hero__title {
  color: var(--color-text-primary);
}

.s-hero--page:not(.has-bg) .s-hero__subtitle {
  color: var(--color-brand-secondary);
}

.s-hero--page .s-hero__heading {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
}

@media (min-width: 768px) {
  .s-hero--page .s-hero__heading {
    font-size: var(--text-4xl);
  }
}

.s-hero--page .c-breadcrumb {
  margin-bottom: var(--space-md);
}

.s-hero--page .c-breadcrumb--white {
  color: var(--color-text-secondary);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__link {
  color: var(--color-text-muted);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__link:hover {
  color: var(--color-brand-primary);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__current {
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Vignette effect
   ------------------------------------------------------------------ */
.s-hero__vignette {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(
    ellipse at center,
    transparent 50%,
    rgba(0, 0, 0, 0.02) 100%
  );
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .s-hero__grain { animation: none; display: none; }
  .s-hero__bg-orb { animation: none; }
  .s-hero__bg-vline::after { animation: none; opacity: 0.5; }
  .s-hero__scroll-line::after { animation: none; top: 0; opacity: 0.4; }
}
/* ==========================================================================
   Services Section
   ========================================================================== */

/* Services grid (top page) */
.s-services__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .s-services__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .s-services__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Service card */
.s-services__card {
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
  text-decoration: none;
  color: inherit;
}

.s-services__card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

/* Service card image */
.s-services__card-image {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: visible;
}

.s-services__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
  clip-path: inset(0); /* clip scaled image within bounds (replaces parent overflow:hidden) */
}

.s-services__card:hover .s-services__card-image img {
  transform: scale(1.05);
}

/* Service card icon overlay */
.s-services__card-icon {
  position: absolute;
  bottom: calc(var(--space-md) * -1);
  right: var(--space-md);
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-md);
  z-index: 2;
}

.s-services__card-icon svg,
.s-services__card-icon img {
  width: 24px;
  height: 24px;
  color: var(--color-text-white);
}

/* Service card body */
.s-services__card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--space-xl) var(--space-lg) var(--space-lg);
}

.s-services__card-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.s-services__card-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-md);
}

.s-services__card-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-brand-primary);
  margin-top: auto;
  transition: gap var(--transition-fast);
}

.s-services__card-link::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
}

.s-services__card:hover .s-services__card-link {
  gap: var(--space-sm);
}

/* ------------------------------------------------------------------
   Service detail blocks (services page)
   ------------------------------------------------------------------ */
.s-services__detail {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
  align-items: center;
}

@media (min-width: 768px) {
  .s-services__detail {
    flex-direction: row;
    gap: var(--space-3xl);
  }
}

/* Reverse layout (alternate left/right) */
@media (min-width: 768px) {
  .s-services__detail--reverse {
    flex-direction: row-reverse;
  }
}

.s-services__detail-image {
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

@media (min-width: 768px) {
  .s-services__detail-image {
    width: 50%;
    flex-shrink: 0;
  }
}

.s-services__detail-image img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}

.s-services__detail-body {
  flex: 1;
}

.s-services__detail-label {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.s-services__detail-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .s-services__detail-title {
    font-size: var(--text-3xl);
  }
}

.s-services__detail-text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-bottom: var(--space-lg);
}

/* ------------------------------------------------------------------
   Feature list with checkmark icons
   ------------------------------------------------------------------ */
.s-services__features {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
}

.s-services__feature-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
}

.s-services__feature-item::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-full);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='%23fff' d='M4.5 7.09L1.91 4.5.5 5.91l4 4 8-8L11.09.5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px;
}

/* ==========================================================================
   Numbers / Counter Section
   ========================================================================== */

.s-numbers {
  background-color: var(--color-bg-accent);
}

.s-numbers__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}

@media (min-width: 768px) {
  .s-numbers__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-xl);
  }
}

/* Number item */
.s-numbers__item {
  text-align: center;
  padding: var(--space-xl) var(--space-md);
  position: relative;
  background: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  transition:
    transform 0.4s var(--ease-out-expo),
    box-shadow 0.4s var(--ease-out-expo);
}

.s-numbers__item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

/* Desktop dividers removed — items are now individual cards */

/* Number value */
.s-numbers__value {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-4xl);
  font-weight: var(--fw-extrabold);
  color: var(--color-brand-primary);
  line-height: var(--leading-none);
  letter-spacing: var(--tracking-tight);
  margin-bottom: var(--space-sm);
}

@media (min-width: 540px) {
  .s-numbers__value {
    font-size: var(--text-5xl);
  }
}

@media (min-width: 768px) {
  .s-numbers__value {
    font-size: 3.5rem;
  }
}

/* Number unit / suffix */
.s-numbers__unit {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

@media (min-width: 768px) {
  .s-numbers__unit {
    font-size: var(--text-xl);
  }
}

/* Number plus sign */
.s-numbers__plus {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

/* Label */
.s-numbers__label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .s-numbers__label {
    font-size: var(--text-base);
  }
}

/* Sub label / detail */
.s-numbers__sub {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

/* ------------------------------------------------------------------
   Dark variant (on dark bg)
   ------------------------------------------------------------------ */
.s-numbers--dark {
  background-color: var(--color-bg-dark);
}

.s-numbers--dark .s-numbers__item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.s-numbers--dark .s-numbers__value {
  color: var(--color-text-white);
}

.s-numbers--dark .s-numbers__unit {
  color: var(--color-text-white);
}

.s-numbers--dark .s-numbers__plus {
  color: var(--color-text-white);
}

.s-numbers--dark .s-numbers__label {
  color: rgba(255, 255, 255, 0.8);
}

.s-numbers--dark .s-numbers__sub {
  color: rgba(255, 255, 255, 0.5);
}

/* ------------------------------------------------------------------
   Animation support (counters)
   ------------------------------------------------------------------ */
.s-numbers__value[data-count] {
  transition: none;
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .s-numbers__item {
    transition: none;
  }
}

/* ==========================================================================
   Testimonials Section
   ========================================================================== */

.s-testimonials {
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Swiper container overrides
   ------------------------------------------------------------------ */
.s-testimonials .swiper {
  padding-bottom: var(--space-3xl);
  overflow: visible;
}

.s-testimonials .swiper-wrapper {
  align-items: stretch;
}

.s-testimonials .swiper-slide {
  height: auto;
}

/* ------------------------------------------------------------------
   Testimonial card
   ------------------------------------------------------------------ */
.s-testimonials__card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  height: 100%;
}

/* Quote icon */
.s-testimonials__quote-icon {
  display: block;
  width: 32px;
  height: 32px;
  margin-bottom: var(--space-md);
  color: var(--color-brand-light);
}

.s-testimonials__quote-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* If no SVG, use CSS pseudo-element */
.s-testimonials__quote-icon::before {
  content: "\201C";
  font-family: Georgia, serif;
  font-size: 3rem;
  line-height: 1;
  color: var(--color-brand-light);
}

.s-testimonials__quote-icon:empty::before {
  display: block;
}

.s-testimonials__quote-icon svg + *::before {
  display: none;
}

/* Quote text */
.s-testimonials__text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-bottom: var(--space-lg);
  flex: 1;
}

/* Profile area */
.s-testimonials__profile {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border-light);
}

.s-testimonials__avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  overflow: hidden;
  flex-shrink: 0;
}

.s-testimonials__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.s-testimonials__info {
  flex: 1;
  min-width: 0;
}

.s-testimonials__name {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
}

.s-testimonials__account {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: 2px;
}

/* ------------------------------------------------------------------
   Before / After metrics
   ------------------------------------------------------------------ */
.s-testimonials__metrics {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
  padding: var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-md);
}

.s-testimonials__metric {
  flex: 1;
  text-align: center;
}

.s-testimonials__metric-label {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xs);
  letter-spacing: var(--tracking-wide);
}

.s-testimonials__metric-value {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-none);
}

.s-testimonials__metric-unit {
  font-size: var(--text-xs);
  font-weight: var(--fw-regular);
  color: var(--color-text-secondary);
  font-family: var(--font-jp);
}

/* Arrow between before/after */
.s-testimonials__metric-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  flex-shrink: 0;
  color: var(--color-brand-primary);
  font-size: var(--text-xl);
}

.s-testimonials__metric-arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-brand-primary);
  border-top: 2px solid var(--color-brand-primary);
  transform: rotate(45deg);
}

/* After metric highlight */
.s-testimonials__metric--after .s-testimonials__metric-value {
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Swiper pagination dots
   ------------------------------------------------------------------ */
.s-testimonials .swiper-pagination {
  bottom: 0;
}

.s-testimonials .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: var(--color-border);
  opacity: 1;
  transition:
    background-color var(--transition-fast),
    width var(--transition-fast);
  border-radius: var(--radius-full);
}

.s-testimonials .swiper-pagination-bullet-active {
  width: 28px;
  border-radius: 5px;
  background-color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Swiper navigation arrows
   ------------------------------------------------------------------ */
.s-testimonials .swiper-button-prev,
.s-testimonials .swiper-button-next {
  width: 48px;
  height: 48px;
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
  transition:
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.s-testimonials .swiper-button-prev:hover,
.s-testimonials .swiper-button-next:hover {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  box-shadow: var(--shadow-md);
}

.s-testimonials .swiper-button-prev::after,
.s-testimonials .swiper-button-next::after {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text-primary);
  transition: color var(--transition-fast);
}

.s-testimonials .swiper-button-prev:hover::after,
.s-testimonials .swiper-button-next:hover::after {
  color: var(--color-text-white);
}

/* Hide arrows on mobile */
@media (max-width: 767px) {
  .s-testimonials .swiper-button-prev,
  .s-testimonials .swiper-button-next {
    display: none;
  }

  .s-testimonials__card {
    padding: var(--space-lg);
  }

  .s-testimonials__text {
    font-size: var(--text-xs);
    margin-bottom: var(--space-md);
  }

  .s-testimonials__avatar {
    width: 40px;
    height: 40px;
  }

  .s-testimonials__name {
    font-size: var(--text-xs);
  }

  .s-testimonials__metrics {
    padding: var(--space-sm);
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
  }

  .s-testimonials__metric-value {
    font-size: var(--text-lg);
  }

  .s-testimonials__metric-arrow {
    width: 24px;
  }
}

/* ==========================================================================
   Timeline
   ========================================================================== */

.s-timeline {
  position: relative;
  padding: var(--space-xl) 0;
}

/* ------------------------------------------------------------------
   Vertical line
   ------------------------------------------------------------------ */

/* Mobile: line on the left */
.s-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  left: 20px;
  width: 2px;
  height: 100%;
  background-color: var(--color-border);
}

/* Desktop: line in center */
@media (min-width: 768px) {
  .s-timeline::before {
    left: 50%;
    transform: translateX(-50%);
  }
}

/* ------------------------------------------------------------------
   Timeline item
   ------------------------------------------------------------------ */
.s-timeline__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  margin-bottom: var(--space-2xl);
  padding-left: 52px;
}

.s-timeline__item:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .s-timeline__item {
    padding-left: 0;
    width: 50%;
    margin-left: auto;
    padding-left: calc(var(--space-3xl) + 12px);
  }

  /* Alternate left side */
  .s-timeline__item:nth-child(odd) {
    margin-left: 0;
    margin-right: auto;
    padding-left: 0;
    padding-right: calc(var(--space-3xl) + 12px);
    text-align: right;
    justify-content: flex-end;
  }
}

/* ------------------------------------------------------------------
   Year marker / dot on the line
   ------------------------------------------------------------------ */
.s-timeline__dot {
  position: absolute;
  left: 12px;
  top: 4px;
  width: 18px;
  height: 18px;
  background-color: var(--color-bg-white);
  border: 3px solid var(--color-brand-primary);
  border-radius: var(--radius-full);
  z-index: var(--z-base);
}

@media (min-width: 768px) {
  .s-timeline__dot {
    left: auto;
    right: -9px;
  }

  .s-timeline__item:nth-child(odd) .s-timeline__dot {
    right: auto;
    left: -9px;
  }

  /* Center the dot on the line for even items */
  .s-timeline__item:nth-child(even) .s-timeline__dot {
    left: -9px;
  }
}

/* Active dot */
.s-timeline__dot--active {
  background-color: var(--color-brand-primary);
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.04);
}

/* ------------------------------------------------------------------
   Year label
   ------------------------------------------------------------------ */
.s-timeline__year {
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-wide);
}

@media (min-width: 768px) {
  .s-timeline__year {
    position: static;
    display: none;
  }
}

/* Desktop: show year as marker on line */
.s-timeline__year-marker {
  display: none;
}

@media (min-width: 768px) {
  .s-timeline__year-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    width: 64px;
    height: 32px;
    background-color: var(--color-brand-primary);
    color: var(--color-text-white);
    font-family: var(--font-en);
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    border-radius: var(--radius-full);
    z-index: calc(var(--z-base) + 1);
  }

  .s-timeline__item:nth-child(odd) .s-timeline__year-marker {
    right: calc(-32px - 0px);
    left: auto;
  }

  .s-timeline__item:nth-child(even) .s-timeline__year-marker {
    left: calc(-32px - 0px);
    right: auto;
  }
}

/* ------------------------------------------------------------------
   Content block
   ------------------------------------------------------------------ */
.s-timeline__content {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-card);
  width: 100%;
}

.s-timeline__content-year {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-xs);
}

.s-timeline__title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.s-timeline__text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Image in timeline */
.s-timeline__image {
  margin-bottom: var(--space-md);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.s-timeline__image img {
  width: 100%;
  height: auto;
}

/* ------------------------------------------------------------------
   Connector line from dot to content (desktop)
   ------------------------------------------------------------------ */
@media (min-width: 768px) {
  .s-timeline__content::before {
    content: "";
    position: absolute;
    top: 10px;
    width: var(--space-xl);
    height: 2px;
    background-color: var(--color-border);
  }

  .s-timeline__item:nth-child(even) .s-timeline__content::before {
    left: calc(var(--space-xl) * -1 - 12px);
    right: auto;
  }

  .s-timeline__item:nth-child(odd) .s-timeline__content::before {
    right: calc(var(--space-xl) * -1 - 12px);
    left: auto;
  }
}

/* ==========================================================================
   CTA Banner Sections
   ========================================================================== */

.s-cta {
  background-color: var(--color-bg-accent);
  padding: var(--section-padding) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Decorative background pattern */
.s-cta::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 400px;
  height: 400px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.02);
  pointer-events: none;
}

.s-cta::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -5%;
  width: 300px;
  height: 300px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.02);
  pointer-events: none;
}

/* Content */
.s-cta__content {
  position: relative;
  z-index: var(--z-base);
  max-width: 700px;
  margin: 0 auto;
}

/* English label */
.s-cta__label {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

/* Heading */
.s-cta__title {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wider);
}

/* Description */
.s-cta__text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

/* Button area */
.s-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .s-cta__actions {
    flex-direction: row;
    justify-content: center;
  }
}

/* Note text below button */
.s-cta__note {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* Dark variant */
.s-cta--dark {
  background-color: var(--color-bg-accent);
}

.s-cta--dark::before,
.s-cta--dark::after {
  background-color: rgba(0, 0, 0, 0.01);
}

/* With background image */
.s-cta--bg {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.s-cta--bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(26, 26, 26, 0.85);
  border-radius: 0;
}

/* Inline CTA (smaller, within content) */
.s-cta--inline {
  padding: var(--space-2xl) 0;
  border-radius: var(--radius-xl);
  margin: var(--space-2xl) 0;
}

.s-cta--inline .s-cta__title {
  font-size: var(--text-2xl);
}

/* ==========================================================================
   Final CTA Section - immersive dark with dramatic contrast
   ========================================================================== */
.s-cta-final {
  position: relative;
  padding: var(--section-padding-lg) 0;
  overflow: hidden;
  background: linear-gradient(180deg, #252525 0%, #202020 100%);
}

/* Animated gradient border at top */
.s-cta-final::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.06) 20%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(255, 255, 255, 0.06) 80%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: ctaBorderShimmer 4s ease-in-out infinite;
}

@keyframes ctaBorderShimmer {
  0%, 100% { background-position: 200% 0; }
  50% { background-position: -200% 0; }
}

/* Background layer */
.s-cta-final__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.s-cta-final__gradient {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(255, 255, 255, 0.02) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 30%, rgba(255, 255, 255, 0.015) 0%, transparent 50%),
    linear-gradient(160deg, #252525 0%, #222222 50%, #202020 100%);
  background-size: 200% 200%, 200% 200%, 100% 100%;
  animation: heroGradientMesh 16s ease infinite;
}

.s-cta-final__grain {
  position: absolute;
  inset: -50%;
  width: 200%;
  height: 200%;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* Decorative floating orbs - warm subtle tones on dark */
.s-cta-final__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  animation: orbFloat 20s ease-in-out infinite;
}

.s-cta-final__orb--1 {
  width: 350px;
  height: 350px;
  top: -20%;
  left: -12%;
  background: radial-gradient(circle, rgba(180, 140, 100, 0.06) 0%, transparent 70%);
  animation-duration: 16s;
}

.s-cta-final__orb--2 {
  width: 280px;
  height: 280px;
  bottom: -15%;
  right: -10%;
  background: radial-gradient(circle, rgba(140, 160, 200, 0.04) 0%, transparent 70%);
  animation-delay: 5s;
  animation-duration: 20s;
}

/* Content */
.s-cta-final__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}

.s-cta-final__heading {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: var(--fw-bold);
  color: #ffffff;
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .s-cta-final__heading {
    font-size: var(--text-5xl);
  }
}

.s-cta-final__text {
  font-size: var(--text-base);
  color: rgba(255, 255, 255, 0.7);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

.s-cta-final__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .s-cta-final__actions {
    flex-direction: row;
    justify-content: center;
  }
}

/* Decorative corner lines - light on dark */
.s-cta-final__inner::before,
.s-cta-final__inner::after {
  content: "";
  position: absolute;
  width: 48px;
  height: 48px;
  pointer-events: none;
}

.s-cta-final__inner::before {
  top: calc(var(--space-xl) * -1);
  left: calc(var(--space-xl) * -1);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}

.s-cta-final__inner::after {
  bottom: calc(var(--space-xl) * -1);
  right: calc(var(--space-xl) * -1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

@media (max-width: 767px) {
  .s-cta-final__inner::before,
  .s-cta-final__inner::after {
    display: none;
  }
}

/* CTA buttons on dark background */
.s-cta-final .c-btn--primary {
  background-color: #ffffff;
  color: #0a0a0a;
  border-color: #ffffff;
}

.s-cta-final .c-btn--primary:hover {
  background-color: rgba(255, 255, 255, 0.9);
  color: #0a0a0a;
  border-color: rgba(255, 255, 255, 0.9);
}

.s-cta-final .c-btn--ghost {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.3);
}

.s-cta-final .c-btn--ghost:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.5);
}

/* Section label on dark */
.s-cta-final .c-section-label {
  color: rgba(255, 255, 255, 0.4);
}

@media (prefers-reduced-motion: reduce) {
  .s-cta-final__gradient {
    animation: none;
  }
  .s-cta-final__orb {
    animation: none;
  }
  .s-cta-final::after {
    animation: none;
  }
}

/* ==========================================================================
   MVV (Mission / Vision / Value) Section
   ========================================================================== */

/* --- MVV Container --- */
.s-mvv {
  position: relative;
  overflow: visible;
}

.s-mvv__intro {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--space-4xl);
}

.s-mvv__tagline {
  display: inline-flex;
  align-items: center;
  gap: var(--space-md);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-ultra);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
}

.s-mvv__tagline::before,
.s-mvv__tagline::after {
  content: "";
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-brand-primary));
  flex-shrink: 0;
}

.s-mvv__tagline::after {
  background: linear-gradient(90deg, var(--color-brand-primary), transparent);
}

.s-mvv__slogan {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

.s-mvv__slogan-highlight {
  color: var(--color-brand-primary);
}

.s-mvv__intro-text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* --- Logo Display --- */
.s-mvv__logo {
  display: flex;
  justify-content: center;
  margin-bottom: var(--space-3xl);
}

.s-mvv__logo img,
.s-mvv__logo svg {
  max-width: 280px;
  height: auto;
}

/* --- Vision & Mission Grid --- */
.s-mvv__vm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  margin-bottom: var(--space-4xl);
}

@media (min-width: 768px) {
  .s-mvv__vm-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3xl);
  }

  .s-mvv__block {
    padding: var(--space-3xl) var(--space-2xl);
  }
}

/* --- Vision / Mission Block --- */
.s-mvv__block {
  position: relative;
  background: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl) var(--space-xl);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition:
    transform 0.5s var(--ease-out-expo),
    box-shadow 0.5s var(--ease-out-expo),
    border-color 0.5s var(--ease-out-expo);
}

.s-mvv__block:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-border);
}

/* Top accent bar */
.s-mvv__block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary));
}

/* Block label */
.s-mvv__block-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
  padding: var(--space-xs) var(--space-md);
  background: var(--color-bg-accent);
  border-radius: var(--radius-full);
}

.s-mvv__block-label-icon {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Block heading */
.s-mvv__block-heading {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-md);
}

@media (min-width: 768px) {
  .s-mvv__block-heading {
    font-size: var(--text-2xl);
  }
}

/* Block description */
.s-mvv__block-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-xl);
}

/* --- Pillars (Vision sub-items) --- */
.s-mvv__pillars {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.s-mvv__pillar {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  padding: var(--space-md);
  background: var(--color-bg-accent);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--color-brand-primary);
  transition:
    background-color 0.3s,
    transform 0.3s var(--ease-out-expo);
}

.s-mvv__pillar:hover {
  background: var(--color-bg-muted);
  transform: translateX(4px);
}

.s-mvv__pillar-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-bg-white);
  border: 2px solid var(--color-brand-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

.s-mvv__pillar-content {
  flex: 1;
  min-width: 0;
}

.s-mvv__pillar-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: 2px;
}

.s-mvv__pillar-desc {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

/* --- Mission Points --- */
.s-mvv__points {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.s-mvv__point {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
}

.s-mvv__point-number {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
}

.s-mvv__point-content {
  flex: 1;
}

.s-mvv__point-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  margin-bottom: 4px;
}

.s-mvv__point-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ==========================================================================
   Value Section - Seven Value Credo
   ========================================================================== */
.s-mvv__values {
  position: relative;
}

.s-mvv__values-header {
  text-align: center;
  margin-bottom: var(--space-3xl);
}

.s-mvv__values-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-md);
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-ultra);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.s-mvv__values-title {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-sm);
}

.s-mvv__values-subtitle {
  font-family: var(--font-en);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wide);
}

/* --- Value Cards Grid --- */
.s-mvv__values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 640px) {
  .s-mvv__values-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .s-mvv__values-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* First row: 3 cards, second row: 2 cards centered, third row: 2 cards centered */
  .s-mvv__value-card:nth-child(4) {
    grid-column: 1 / 2;
  }
}

/* --- Individual Value Card --- */
.s-mvv__value-card {
  position: relative;
  background: var(--color-bg-white);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  border: 1px solid var(--color-border-light);
  transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s var(--ease-out-expo), border-color 0.3s;
  overflow: hidden;
}

.s-mvv__value-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-brand-primary);
}

/* Number badge */
.s-mvv__value-number {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  font-family: var(--font-en);
  font-size: clamp(2rem, 1.5rem + 2vw, 3.5rem);
  font-weight: var(--fw-black);
  color: var(--color-brand-primary);
  opacity: 0.06;
  line-height: 1;
  pointer-events: none;
}

/* Card icon */
.s-mvv__value-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary));
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-md);
  color: #fff;
  font-size: 20px;
  position: relative;
}

.s-mvv__value-icon::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: calc(var(--radius-md) + 4px);
  background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary));
  opacity: 0;
  filter: blur(8px);
  z-index: -1;
  transition: opacity 0.4s;
}

.s-mvv__value-card:hover .s-mvv__value-icon::after {
  opacity: 0.25;
}

/* Card title */
.s-mvv__value-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-xs);
}

/* Card English subtitle */
.s-mvv__value-en {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-md);
}

/* Card description */
.s-mvv__value-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Hover accent line at bottom */
.s-mvv__value-card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease-out-expo);
}

.s-mvv__value-card:hover::after {
  transform: scaleX(1);
}

/* --- Section Connector Line --- */
.s-mvv__connector {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-xl) 0;
}

.s-mvv__connector-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(180deg, var(--color-border), transparent);
  border-radius: 1px;
}

/* --- Responsive adjustments --- */
@media (max-width: 767px) {
  .s-mvv__block {
    padding: var(--space-xl) var(--space-lg);
  }

  .s-mvv__slogan {
    font-size: var(--text-2xl);
  }

  .s-mvv__values-title {
    font-size: var(--text-2xl);
  }

  .s-mvv__value-card {
    padding: var(--space-lg);
  }
}

/* --- Reduced motion --- */
@media (prefers-reduced-motion: reduce) {
  .s-mvv__block,
  .s-mvv__value-card,
  .s-mvv__pillar {
    transition: none;
  }

  .s-mvv__value-card::after {
    transition: none;
  }
}

/* ==========================================================================
   News Section
   ========================================================================== */

/* ------------------------------------------------------------------
   News list (top page, horizontal style)
   ------------------------------------------------------------------ */
.s-news__list {
  display: flex;
  flex-direction: column;
}

.s-news__item {
  display: flex;
  flex-direction: column;
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--color-border);
  text-decoration: none;
  color: inherit;
  transition: background-color var(--transition-fast);
}

.s-news__item:first-child {
  border-top: 1px solid var(--color-border);
}

@media (min-width: 540px) {
  .s-news__item {
    flex-direction: row;
    align-items: center;
    gap: var(--space-lg);
  }
}

/* Link wrapper */
a.s-news__item:hover {
  background-color: var(--color-bg-accent);
  padding-left: var(--space-md);
  padding-right: var(--space-md);
  margin-left: calc(var(--space-md) * -1);
  margin-right: calc(var(--space-md) * -1);
  border-radius: var(--radius-md);
}

/* Date */
.s-news__date {
  font-family: var(--font-en);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wide);
  flex-shrink: 0;
  white-space: nowrap;
  margin-bottom: var(--space-xs);
}

@media (min-width: 540px) {
  .s-news__date {
    margin-bottom: 0;
    min-width: 100px;
  }
}

/* Category badge */
.s-news__category {
  display: inline-block;
  padding: 3px 12px;
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-sm);
  letter-spacing: var(--tracking-wide);
  flex-shrink: 0;
  white-space: nowrap;
  margin-bottom: var(--space-xs);
  margin-right: var(--space-sm);
}

@media (min-width: 540px) {
  .s-news__category {
    margin-bottom: 0;
    min-width: 80px;
    text-align: center;
  }
}

/* Different category colors */
.s-news__category--important {
  background-color: rgba(229, 57, 53, 0.1);
  color: var(--color-error);
}

.s-news__category--event {
  background-color: rgba(33, 150, 243, 0.1);
  color: var(--color-info);
}

/* Title */
.s-news__title {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  flex: 1;
  transition: color var(--transition-fast);
}

a.s-news__item:hover .s-news__title {
  color: var(--color-brand-primary);
}

/* Meta row (mobile) */
.s-news__meta {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xs);
}

@media (min-width: 540px) {
  .s-news__meta {
    margin-bottom: 0;
    gap: var(--space-md);
  }
}

/* Arrow indicator */
.s-news__arrow {
  display: none;
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-right: 2px solid var(--color-text-muted);
  border-top: 2px solid var(--color-text-muted);
  transform: rotate(45deg);
  margin-left: var(--space-sm);
  transition: border-color var(--transition-fast);
}

@media (min-width: 540px) {
  .s-news__arrow {
    display: block;
  }
}

a.s-news__item:hover .s-news__arrow {
  border-color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   News archive grid
   ------------------------------------------------------------------ */
.s-news__archive-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .s-news__archive-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .s-news__archive-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ------------------------------------------------------------------
   "View all" link
   ------------------------------------------------------------------ */
.s-news__more {
  display: flex;
  justify-content: center;
  margin-top: var(--space-2xl);
}

/* ------------------------------------------------------------------
   Empty state
   ------------------------------------------------------------------ */
.s-news__empty {
  text-align: center;
  padding: var(--space-3xl) 0;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

/* ==========================================================================
   Horizontal Scroll Section - Pin-and-scroll horizontal gallery
   ========================================================================== */

/* ------------------------------------------------------------------
   Outer container: sets the scroll height
   ------------------------------------------------------------------ */
.s-horizontal {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Sticky viewport
   ------------------------------------------------------------------ */
.s-horizontal__viewport {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Horizontal track (flex row of panels)
   ------------------------------------------------------------------ */
.s-horizontal__track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  height: 100vh;
  will-change: transform;
}

/* ------------------------------------------------------------------
   Individual panels
   ------------------------------------------------------------------ */
.s-horizontal__panel {
  flex: 0 0 100vw;
  width: 100vw;
  height: 100vh;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Panel content wrapper */
.s-horizontal__panel-content {
  max-width: var(--container-default);
  width: 100%;
  padding: 0 var(--container-padding);
  margin: 0 auto;
}

/* Panel with image background */
.s-horizontal__panel--image {
  background-size: cover;
  background-position: center;
}

.s-horizontal__panel--image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--color-overlay-dark);
  z-index: 0;
}

.s-horizontal__panel--image .s-horizontal__panel-content {
  position: relative;
  z-index: 1;
  color: var(--color-text-white);
}

/* Panel background color variants */
.s-horizontal__panel--dark {
  background-color: var(--color-bg-dark);
  color: var(--color-text-white);
}

.s-horizontal__panel--accent {
  background-color: var(--color-bg-accent);
}

.s-horizontal__panel--brand {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

/* ------------------------------------------------------------------
   Section header (before the horizontal scroll)
   ------------------------------------------------------------------ */
.s-horizontal__header {
  text-align: center;
  padding: var(--section-padding) var(--container-padding) var(--space-2xl);
  max-width: var(--container-default);
  margin: 0 auto;
}

/* ------------------------------------------------------------------
   Progress indicator dots
   ------------------------------------------------------------------ */
.s-horizontal__progress {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
}

.s-horizontal__dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  background-color: var(--color-border);
  transition: background-color 0.3s ease,
              transform 0.3s ease,
              width 0.3s ease;
  cursor: pointer;
}

.s-horizontal__dot.is-active {
  background-color: var(--color-brand-primary);
  transform: scale(1.2);
  width: 24px;
  border-radius: 5px;
}

/* ------------------------------------------------------------------
   Progress bar variant (line instead of dots)
   ------------------------------------------------------------------ */
.s-horizontal__bar {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  height: 3px;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 3px;
  overflow: hidden;
  z-index: 10;
}

.s-horizontal__bar-fill {
  height: 100%;
  background-color: var(--color-brand-primary);
  border-radius: 3px;
  transition: width 0.1s linear;
  width: 0%;
}

/* ------------------------------------------------------------------
   Panel counter (e.g., 01/05)
   ------------------------------------------------------------------ */
.s-horizontal__counter {
  position: absolute;
  bottom: 32px;
  right: 32px;
  font-family: var(--font-en);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wider);
  z-index: 10;
}

.s-horizontal__counter-current {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Mobile: stack vertically (no horizontal scroll)
   ------------------------------------------------------------------ */
@media (max-width: 768px) {
  .s-horizontal {
    height: auto !important;
  }

  .s-horizontal__viewport {
    position: relative;
    height: auto;
  }

  .s-horizontal__track {
    flex-direction: column;
    height: auto;
    transform: none !important;
  }

  .s-horizontal__panel {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    min-height: 80vh;
    padding: var(--section-padding) 0;
  }

  .s-horizontal__progress,
  .s-horizontal__bar,
  .s-horizontal__counter {
    display: none;
  }
}

/* ==========================================================================
   Front Page - Top page specific styles
   ========================================================================== */

/* ------------------------------------------------------------------
   Section divider - organic wave between sections
   ------------------------------------------------------------------ */
.c-section-divider {
  display: block;
  width: 100%;
  height: auto;
  line-height: 0;
  margin-top: -1px;
  color: var(--color-bg);
  position: relative;
  z-index: 2;
}

.c-section-divider svg {
  display: block;
  width: 100%;
  height: clamp(40px, 5vw, 80px);
}

/* ------------------------------------------------------------------
   Decoration elements
   ------------------------------------------------------------------ */
.c-decoration {
  position: absolute;
  pointer-events: none;
  color: var(--color-brand-primary);
  z-index: 0;
}

.c-decoration--top-right {
  top: var(--space-xl);
  right: var(--space-xl);
}

.c-decoration--top-left {
  top: var(--space-xl);
  left: var(--space-xl);
}

.c-decoration--bottom-left {
  bottom: var(--space-xl);
  left: var(--space-xl);
}

.c-decoration--bottom-right {
  bottom: var(--space-xl);
  right: var(--space-xl);
}

/* Hide decorations on mobile for cleaner layout */
@media (max-width: 767px) {
  .c-decoration {
    display: none;
  }
}

/* ------------------------------------------------------------------
   Section position context for decorations
   ------------------------------------------------------------------ */
.s-mission,
.s-services,
.s-testimonials,
.s-faq {
  position: relative;
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Concept / Intro section
   ------------------------------------------------------------------ */
.p-front__concept {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.p-front__concept-lead {
  font-size: var(--text-xl);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-loose);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

.p-front__concept-text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

/* ------------------------------------------------------------------
   Section "more" link
   ------------------------------------------------------------------ */
.p-front__section-more {
  display: flex;
  justify-content: center;
  margin-top: var(--space-2xl);
}

/* ------------------------------------------------------------------
   News area (limited items)
   ------------------------------------------------------------------ */
.p-front__news {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

/* ------------------------------------------------------------------
   Accent section smooth blend
   ------------------------------------------------------------------ */
.l-section--accent {
  position: relative;
}

.l-section--accent::before {
  content: "";
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(to bottom, transparent, var(--color-bg-accent));
  pointer-events: none;
}

.l-section--accent::after {
  content: "";
  position: absolute;
  bottom: -40px;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(to top, transparent, var(--color-bg-accent));
  pointer-events: none;
}

/* ------------------------------------------------------------------
   Section number counter - architectural numbering
   ------------------------------------------------------------------ */
.s-mission,
.s-services,
.s-faq,
.s-news {
  counter-increment: section-counter;
}

.s-mission::before,
.s-services::before,
.s-faq::before {
  content: "0" counter(section-counter);
  position: absolute;
  top: var(--section-padding-sm);
  left: var(--container-padding);
  font-family: var(--font-en);
  font-size: clamp(6rem, 4rem + 6vw, 10rem);
  font-weight: var(--fw-black);
  color: var(--color-brand-primary);
  opacity: 0.03;
  line-height: 1;
  z-index: 0;
  pointer-events: none;
  letter-spacing: -0.05em;
}

/* ------------------------------------------------------------------
   Section separator line with gradient
   ------------------------------------------------------------------ */
.c-section-line {
  display: block;
  width: 100%;
  max-width: var(--container-default);
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--color-border-light) 20%,
    var(--color-brand-light) 50%,
    var(--color-border-light) 80%,
    transparent 100%
  );
  border: none;
}

/* ------------------------------------------------------------------
   Background texture patterns
   ------------------------------------------------------------------ */

/* Dot pattern for accent sections */
.l-section--accent::after {
  background-image: radial-gradient(
    circle at 1px 1px,
    rgba(0, 0, 0, 0.01) 1px,
    transparent 0
  );
  background-size: 24px 24px;
}

/* Diagonal line texture on dark sections */
.l-section--dark::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.015;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 10px,
    rgba(255, 255, 255, 0.5) 10px,
    rgba(255, 255, 255, 0.5) 11px
  );
  z-index: 0;
}

/* ------------------------------------------------------------------
   Enhanced section transitions
   ------------------------------------------------------------------ */
.s-mission,
.s-services,
.s-testimonials,
.s-news,
.s-faq {
  background-image:
    radial-gradient(ellipse at 0% 0%, rgba(0, 0, 0, 0.008) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(0, 0, 0, 0.002) 0%, transparent 50%);
}

/* ------------------------------------------------------------------
   SP only break
   ------------------------------------------------------------------ */
.u-sp-only {
  display: inline;
}

@media (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}

/* ------------------------------------------------------------------
   Front page mobile adjustments
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .p-front__concept-lead {
    font-size: var(--text-lg);
    letter-spacing: var(--tracking-wide);
  }

  .p-front__concept-text {
    font-size: var(--text-sm);
  }

  .p-front__section-more {
    margin-top: var(--space-xl);
  }

  /* Section counters smaller on mobile */
  .s-mission::before,
  .s-services::before,
  .s-faq::before {
    font-size: 4rem;
  }

  /* Reduce gradient blend height */
  .l-section--accent::before,
  .l-section--accent::after {
    height: 24px;
  }
}

/* ==========================================================================
   About Page
   ========================================================================== */

/* ------------------------------------------------------------------
   CEO profile section
   ------------------------------------------------------------------ */
.p-about__ceo {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
  align-items: center;
}

@media (min-width: 768px) {
  .p-about__ceo {
    flex-direction: row;
    gap: var(--space-3xl);
    align-items: flex-start;
  }
}

/* CEO image */
.p-about__ceo-image {
  width: 100%;
  max-width: 360px;
  flex-shrink: 0;
}

.p-about__ceo-image img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border-light);
  box-shadow:
    0 4px 6px rgba(0, 0, 0, 0.02),
    0 12px 28px rgba(0, 0, 0, 0.06);
}

@media (min-width: 768px) {
  .p-about__ceo-image {
    width: 40%;
    max-width: none;
  }
}

/* CEO bio */
.p-about__ceo-body {
  flex: 1;
  min-width: 0;
}

.p-about__ceo-position {
  display: inline-block;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  padding: var(--space-xs) var(--space-md);
  background: var(--color-bg-accent);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
}

.p-about__ceo-name {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
  line-height: var(--leading-tight);
}

@media (min-width: 768px) {
  .p-about__ceo-name {
    font-size: var(--text-3xl);
  }
}

.p-about__ceo-name-en {
  font-family: var(--font-en);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wider);
  padding-bottom: var(--space-lg);
  margin-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border-light);
}

.p-about__ceo-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-bottom: var(--space-md);
}

@media (min-width: 768px) {
  .p-about__ceo-text {
    font-size: var(--text-base);
  }
}

.p-about__ceo-text + .p-about__ceo-text {
  margin-top: var(--space-md);
}

/* ------------------------------------------------------------------
   SNS links row
   ------------------------------------------------------------------ */
.p-about__sns {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-top: var(--space-xl);
}

.p-about__sns-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background-color: var(--color-bg-accent);
  color: var(--color-text-secondary);
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast);
}

.p-about__sns-link:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-about__sns-link svg,
.p-about__sns-link img {
  width: 20px;
  height: 20px;
}

/* ------------------------------------------------------------------
   Philosophy / Mission section
   ------------------------------------------------------------------ */
.p-about__philosophy {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.p-about__philosophy-quote {
  position: relative;
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  padding: var(--space-2xl) 0;
}

@media (min-width: 768px) {
  .p-about__philosophy-quote {
    font-size: var(--text-2xl);
  }
}

@media (min-width: 1024px) {
  .p-about__philosophy-quote {
    font-size: var(--text-3xl);
  }
}

/* Decorative quote marks */
.p-about__philosophy-quote::before {
  content: "\201C";
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  font-family: Georgia, serif;
  font-size: 5rem;
  color: var(--color-brand-light);
  line-height: 1;
  opacity: 0.5;
}

.p-about__philosophy-desc {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-top: var(--space-xl);
}

/* ------------------------------------------------------------------
   Mission / Vision cards
   ------------------------------------------------------------------ */
.p-about__values {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 768px) {
  .p-about__values {
    grid-template-columns: repeat(2, 1fr);
  }
}

.p-about__value-card {
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
  text-align: center;
  box-shadow: var(--shadow-card);
  transition:
    transform 0.4s var(--ease-out-expo),
    box-shadow 0.4s var(--ease-out-expo),
    border-color 0.4s var(--ease-out-expo);
}

.p-about__value-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-border);
}

.p-about__value-label {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.p-about__value-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-about__value-title {
    font-size: var(--text-xl);
  }
}

.p-about__value-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Company info section
   ------------------------------------------------------------------ */
.p-about__company {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

/* ------------------------------------------------------------------
   Access / Map
   ------------------------------------------------------------------ */
.p-about__map {
  width: 100%;
  height: 300px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
  overflow: hidden;
  margin-top: var(--space-xl);
}

@media (min-width: 768px) {
  .p-about__map {
    height: 400px;
  }
}

.p-about__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* ==========================================================================
   Single Post Page
   ========================================================================== */

/* Article container */
.p-single__article {
  max-width: 800px;
  margin: 0 auto;
  padding-top: var(--space-2xl);
}

/* ------------------------------------------------------------------
   Article header
   ------------------------------------------------------------------ */
.p-single__header {
  margin-bottom: var(--space-2xl);
}

.p-single__category {
  display: inline-block;
  padding: var(--space-xs) var(--space-md);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-sm);
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-md);
}

.p-single__title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wide);
}

@media (min-width: 768px) {
  .p-single__title {
    font-size: var(--text-3xl);
  }
}

.p-single__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.p-single__date {
  font-family: var(--font-en);
  letter-spacing: var(--tracking-wide);
}

.p-single__updated {
  font-family: var(--font-en);
}

.p-single__updated::before {
  content: "(";
}

.p-single__updated::after {
  content: ")";
}

/* Featured image */
.p-single__thumbnail {
  width: 100%;
  margin-bottom: var(--space-2xl);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.p-single__thumbnail img {
  width: 100%;
  height: auto;
}

/* ------------------------------------------------------------------
   Post content typography
   ------------------------------------------------------------------ */
.p-single__content {
  font-size: var(--text-base);
  line-height: var(--leading-loose);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-wide);
}

.p-single__content > * + * {
  margin-top: 1.5em;
}

/* Paragraphs */
.p-single__content p {
  line-height: var(--leading-loose);
}

/* Headings */
.p-single__content h2 {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-top: 3em;
  margin-bottom: 1em;
  padding-bottom: var(--space-sm);
  border-bottom: 3px solid var(--color-brand-primary);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-single__content h2 {
    font-size: var(--text-2xl);
  }
}

.p-single__content h3 {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-top: 2.5em;
  margin-bottom: 0.8em;
  padding-left: var(--space-md);
  border-left: 4px solid var(--color-brand-primary);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-single__content h3 {
    font-size: var(--text-xl);
  }
}

.p-single__content h4 {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-top: 2em;
  margin-bottom: 0.5em;
}

@media (min-width: 768px) {
  .p-single__content h4 {
    font-size: var(--text-lg);
  }
}

/* Lists */
.p-single__content ul {
  list-style: none;
  padding-left: 0;
}

.p-single__content ul li {
  position: relative;
  padding-left: 1.5em;
  line-height: var(--leading-relaxed);
}

.p-single__content ul li + li {
  margin-top: 0.5em;
}

.p-single__content ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background-color: var(--color-brand-primary);
}

.p-single__content ol {
  padding-left: 1.5em;
  counter-reset: ol-counter;
  list-style: none;
}

.p-single__content ol li {
  position: relative;
  padding-left: 0.5em;
  counter-increment: ol-counter;
  line-height: var(--leading-relaxed);
}

.p-single__content ol li + li {
  margin-top: 0.5em;
}

.p-single__content ol li::before {
  content: counter(ol-counter) ".";
  position: absolute;
  left: -1.5em;
  font-family: var(--font-en);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

/* Blockquote */
.p-single__content blockquote {
  border-left: 4px solid var(--color-brand-primary);
  padding: var(--space-lg) var(--space-xl);
  margin: 2em 0;
  background-color: var(--color-bg-accent);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-style: normal;
}

.p-single__content blockquote p {
  color: var(--color-text-secondary);
}

/* Images */
.p-single__content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-md);
}

.p-single__content figure {
  margin: 2em 0;
}

.p-single__content figure img {
  width: 100%;
}

.p-single__content figcaption {
  margin-top: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-align: center;
}

/* Table in content */
.p-single__content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5em 0;
  font-size: var(--text-sm);
}

.p-single__content th,
.p-single__content td {
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  text-align: left;
}

.p-single__content th {
  background-color: var(--color-bg-accent);
  font-weight: var(--fw-bold);
}

/* Embed / iframe */
.p-single__content iframe {
  max-width: 100%;
  margin: 1.5em 0;
}

.p-single__content .wp-block-embed {
  margin: 2em 0;
}

.p-single__content .wp-block-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.p-single__content .wp-block-embed__wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}

/* ------------------------------------------------------------------
   Author box
   ------------------------------------------------------------------ */
.p-single__author-box {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  padding: var(--space-xl);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-lg);
  margin-top: var(--space-3xl);
}

@media (min-width: 540px) {
  .p-single__author-box {
    flex-direction: row;
    align-items: flex-start;
  }
}

.p-single__author-avatar {
  width: 80px;
  height: 80px;
  border-radius: var(--radius-full);
  overflow: hidden;
  flex-shrink: 0;
}

.p-single__author-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-single__author-info {
  flex: 1;
}

.p-single__author-label {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xs);
}

.p-single__author-name {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

.p-single__author-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Author SNS links */
.p-single__author-sns {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.p-single__author-sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  background-color: var(--color-bg);
  color: var(--color-text-muted);
  text-decoration: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast);
}

.p-single__author-sns a:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-single__author-sns a svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* ------------------------------------------------------------------
   Share buttons
   ------------------------------------------------------------------ */
.p-single__share {
  margin-top: var(--space-2xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border);
}

.p-single__share-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
  text-align: center;
  letter-spacing: var(--tracking-wide);
}

.p-single__share-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.p-single__share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  color: var(--color-text-white);
  text-decoration: none;
  flex-shrink: 0;
  transition:
    opacity var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
}

.p-single__share-btn:hover {
  opacity: 0.85;
  transform: translateY(-2px);
  color: var(--color-text-white);
  box-shadow: var(--shadow-md);
}

.p-single__share-btn:active {
  transform: translateY(0);
}

.p-single__share-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.p-single__share-btn--x {
  background-color: #1a1a1a;
}

.p-single__share-btn--facebook {
  background-color: #1877f2;
}

.p-single__share-btn--line {
  background-color: #06c755;
}

.p-single__share-btn--hatena {
  background-color: #00a4de;
}

.p-single__share-btn--copy {
  background-color: var(--color-text-secondary);
}

/* Mobile: smaller share buttons for tight viewports */
@media (max-width: 374px) {
  .p-single__share-buttons {
    gap: var(--space-sm);
  }

  .p-single__share-btn {
    width: 40px;
    height: 40px;
  }

  .p-single__share-btn svg {
    width: 16px;
    height: 16px;
  }
}

/* ------------------------------------------------------------------
   Related posts
   ------------------------------------------------------------------ */
.p-single__related {
  margin-top: var(--space-4xl);
  padding-top: var(--space-3xl);
  border-top: 1px solid var(--color-border);
}

.p-single__related-title {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.p-single__related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-single__related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .p-single__related-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ------------------------------------------------------------------
   Post navigation (prev/next)
   ------------------------------------------------------------------ */
.p-single__nav {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-top: var(--space-2xl);
}

@media (min-width: 540px) {
  .p-single__nav {
    flex-direction: row;
    justify-content: space-between;
  }
}

.p-single__nav-item {
  flex: 1;
  padding: var(--space-md);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.p-single__nav-item:hover {
  border-color: var(--color-brand-primary);
  box-shadow: var(--shadow-sm);
}

.p-single__nav-label {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xs);
}

.p-single__nav-title {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.p-single__nav-item--next {
  text-align: right;
}

/* ==========================================================================
   Archive / Listing Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Archive header
   ------------------------------------------------------------------ */
.p-archive__header {
  margin-bottom: var(--space-2xl);
}

.p-archive__title {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

@media (min-width: 768px) {
  .p-archive__title {
    font-size: var(--text-2xl);
  }
}

.p-archive__desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.p-archive__count {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-top: var(--space-sm);
}

.p-archive__count span {
  font-family: var(--font-en);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Category filter tabs
   ------------------------------------------------------------------ */
.p-archive__filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-bottom: var(--space-2xl);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border);
}

.p-archive__filter-label {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-right: var(--space-sm);
}

.p-archive__filter-btn {
  display: inline-flex;
  align-items: center;
  padding: var(--space-sm) var(--space-md);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
  white-space: nowrap;
}

.p-archive__filter-btn:hover {
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.p-archive__filter-btn.is-active {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-archive__filter-count {
  font-size: var(--text-xs);
  margin-left: var(--space-xs);
  opacity: 0.7;
}

/* ------------------------------------------------------------------
   Post grid
   ------------------------------------------------------------------ */
.p-archive__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* List view variant */
.p-archive__grid--list {
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

/* ------------------------------------------------------------------
   View toggle (grid / list)
   ------------------------------------------------------------------ */
.p-archive__view-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
  justify-content: flex-end;
}

.p-archive__view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text-muted);
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.p-archive__view-btn:hover {
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.p-archive__view-btn.is-active {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-archive__view-btn svg {
  width: 16px;
  height: 16px;
}

/* ------------------------------------------------------------------
   Sort dropdown
   ------------------------------------------------------------------ */
.p-archive__sort {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
}

.p-archive__sort-label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  white-space: nowrap;
}

.p-archive__sort-select {
  padding: var(--space-sm) var(--space-2xl) var(--space-sm) var(--space-md);
  font-size: var(--text-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background-color: var(--color-bg-white);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23666' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
}

/* ------------------------------------------------------------------
   Empty state
   ------------------------------------------------------------------ */
.p-archive__empty {
  text-align: center;
  padding: var(--space-4xl) var(--space-lg);
  grid-column: 1 / -1;
}

.p-archive__empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  margin: 0 auto var(--space-lg);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-text-muted);
}

.p-archive__empty-icon svg {
  width: 32px;
  height: 32px;
}

.p-archive__empty-text {
  font-size: var(--text-base);
  color: var(--color-text-muted);
  margin-bottom: var(--space-lg);
}

/* ------------------------------------------------------------------
   Toolbar (filters + view toggle combined)
   ------------------------------------------------------------------ */
.p-archive__toolbar {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

@media (min-width: 768px) {
  .p-archive__toolbar {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

/* ==========================================================================
   Contact Page
   ========================================================================== */

/* Form wrapper */
.p-contact__form-wrap {
  max-width: 700px;
  margin: 0 auto;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  box-shadow: var(--shadow-md);
}

@media (min-width: 768px) {
  .p-contact__form-wrap {
    padding: var(--space-3xl);
  }
}

/* Lead text */
.p-contact__lead {
  text-align: center;
  max-width: 600px;
  margin: 0 auto var(--space-2xl);
}

.p-contact__lead-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

@media (min-width: 768px) {
  .p-contact__lead-text {
    font-size: var(--text-base);
  }
}

/* Required note */
.p-contact__required-note {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xl);
  text-align: right;
}

.p-contact__required-mark {
  color: var(--color-error);
}

/* ------------------------------------------------------------------
   Two-column name fields
   ------------------------------------------------------------------ */
.p-contact__name-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-contact__name-row {
    flex-direction: row;
  }

  .p-contact__name-row > .c-form-group {
    flex: 1;
    margin-bottom: 0;
  }
}

/* ------------------------------------------------------------------
   Submit area
   ------------------------------------------------------------------ */
.p-contact__submit {
  margin-top: var(--space-2xl);
  text-align: center;
}

.p-contact__submit-btn {
  width: 100%;
  max-width: 400px;
}

@media (min-width: 540px) {
  .p-contact__submit-btn {
    width: auto;
    min-width: 300px;
  }
}

/* Privacy agreement checkbox */
.p-contact__agreement {
  margin-top: var(--space-lg);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.p-contact__agreement-label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-normal);
}

.p-contact__agreement-label a {
  color: var(--color-brand-primary);
  text-decoration: underline;
}

.p-contact__agreement-label a:hover {
  text-decoration: none;
}

/* ------------------------------------------------------------------
   Contact info alongside form
   ------------------------------------------------------------------ */
.p-contact__info {
  margin-top: var(--space-3xl);
  text-align: center;
}

.p-contact__info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  max-width: 700px;
  margin: 0 auto;
}

@media (min-width: 540px) {
  .p-contact__info-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .p-contact__info-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-contact__info-item {
  padding: var(--space-xl);
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  text-align: center;
}

.p-contact__info-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-brand-primary);
}

.p-contact__info-icon svg {
  width: 20px;
  height: 20px;
}

.p-contact__info-label {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.p-contact__info-value {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.p-contact__info-value a {
  color: var(--color-brand-primary);
}

/* ------------------------------------------------------------------
   Thank you page
   ------------------------------------------------------------------ */
.p-contact__thanks {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  padding: var(--space-4xl) var(--space-lg);
}

.p-contact__thanks-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  margin: 0 auto var(--space-xl);
  background-color: rgba(76, 175, 80, 0.1);
  border-radius: var(--radius-full);
  color: var(--color-success);
}

.p-contact__thanks-icon svg {
  width: 40px;
  height: 40px;
}

.p-contact__thanks-title {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
}

.p-contact__thanks-text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

/* ==========================================================================
   Recruit Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Message section (with background image)
   ------------------------------------------------------------------ */
.p-recruit__message {
  position: relative;
  padding: var(--space-4xl) 0;
  overflow: hidden;
}

.p-recruit__message-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: var(--z-behind);
}

.p-recruit__message-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-recruit__message-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to right,
    rgba(248, 245, 245, 0.95) 0%,
    rgba(248, 245, 245, 0.85) 50%,
    rgba(248, 245, 245, 0.7) 100%
  );
}

.p-recruit__message-content {
  position: relative;
  z-index: var(--z-base);
  max-width: 600px;
}

.p-recruit__message-label {
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.p-recruit__message-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .p-recruit__message-title {
    font-size: var(--text-3xl);
  }
}

.p-recruit__message-text {
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

.p-recruit__message-text + .p-recruit__message-text {
  margin-top: var(--space-md);
}

/* ------------------------------------------------------------------
   Benefits grid
   ------------------------------------------------------------------ */
.p-recruit__benefits {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-recruit__benefits {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-recruit__benefits {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-recruit__benefit-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  text-align: center;
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-recruit__benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-recruit__benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-brand-primary);
}

.p-recruit__benefit-icon svg,
.p-recruit__benefit-icon img {
  width: 28px;
  height: 28px;
}

.p-recruit__benefit-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-recruit__benefit-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Position cards
   ------------------------------------------------------------------ */
.p-recruit__positions {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.p-recruit__position-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-base);
}

.p-recruit__position-card:hover {
  box-shadow: var(--shadow-card-hover);
}

.p-recruit__position-header {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-xl);
  border-bottom: 1px solid var(--color-border-light);
}

@media (min-width: 768px) {
  .p-recruit__position-header {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.p-recruit__position-type {
  display: inline-block;
  padding: var(--space-xs) var(--space-md);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-sm);
  letter-spacing: var(--tracking-wide);
  align-self: flex-start;
}

.p-recruit__position-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  flex: 1;
}

@media (min-width: 768px) {
  .p-recruit__position-title {
    font-size: var(--text-xl);
  }
}

.p-recruit__position-status {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  flex-shrink: 0;
}

.p-recruit__position-status--open {
  color: var(--color-success);
}

.p-recruit__position-status--open::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background-color: var(--color-success);
  border-radius: var(--radius-full);
}

.p-recruit__position-status--closed {
  color: var(--color-text-muted);
}

/* Position details table */
.p-recruit__position-body {
  padding: var(--space-xl);
}

.p-recruit__position-table {
  width: 100%;
  border-collapse: collapse;
}

.p-recruit__position-table th,
.p-recruit__position-table td {
  padding: var(--space-sm) 0;
  font-size: var(--text-sm);
  vertical-align: top;
  border-bottom: 1px solid var(--color-border-light);
}

.p-recruit__position-table th {
  width: 120px;
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  white-space: nowrap;
  padding-right: var(--space-lg);
}

@media (min-width: 768px) {
  .p-recruit__position-table th {
    width: 160px;
  }
}

.p-recruit__position-table td {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Apply button */
.p-recruit__position-footer {
  padding: 0 var(--space-xl) var(--space-xl);
  text-align: center;
}

@media (min-width: 768px) {
  .p-recruit__position-footer {
    text-align: right;
  }
}

/* ------------------------------------------------------------------
   Process / Flow section
   ------------------------------------------------------------------ */
.p-recruit__flow {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 700px;
  margin: 0 auto;
}

.p-recruit__flow-step {
  display: flex;
  align-items: flex-start;
  gap: var(--space-lg);
  padding: var(--space-xl) 0;
  position: relative;
}

.p-recruit__flow-step + .p-recruit__flow-step {
  border-top: 1px dashed var(--color-border);
}

.p-recruit__flow-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  border-radius: var(--radius-full);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
}

.p-recruit__flow-body {
  flex: 1;
}

.p-recruit__flow-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.p-recruit__flow-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ==========================================================================
   S.Tep Landing Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Intro - Feature cards with numbers
   ------------------------------------------------------------------ */
.p-step__intro {
  text-align: center;
}

.p-step__intro-inner {
  max-width: var(--container-narrow);
  margin: 0 auto var(--space-3xl);
}

.p-step__intro-lead {
  font-size: var(--text-lg);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .p-step__intro-lead {
    font-size: var(--text-xl);
  }
}

.p-step__intro-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

@media (min-width: 768px) {
  .p-step__intro-text {
    font-size: var(--text-base);
  }
}

.p-step__intro-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-top: var(--space-2xl);
  padding-top: 20px; /* space for protruding number badges */
}

@media (min-width: 540px) {
  .p-step__intro-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__intro-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__intro-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl) var(--space-lg) var(--space-lg);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__intro-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-step__intro-card-number {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-family: var(--font-en);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
}

.p-step__intro-card-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-step__intro-card-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Mission - Blockquote styling
   ------------------------------------------------------------------ */
.p-step__mission {
  text-align: center;
}

.p-step__mission-quote {
  position: relative;
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  padding: var(--space-2xl) var(--space-lg);
  margin: 0;
  border: none;
}

@media (min-width: 768px) {
  .p-step__mission-quote {
    font-size: var(--text-2xl);
    padding: var(--space-3xl) var(--space-2xl);
  }
}

@media (min-width: 1024px) {
  .p-step__mission-quote {
    font-size: var(--text-3xl);
  }
}

.p-step__mission-quote::before {
  content: "\201C";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  font-family: Georgia, serif;
  font-size: 5rem;
  color: var(--color-brand-light);
  line-height: 1;
  opacity: 0.5;
}

.p-step__mission-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-top: var(--space-lg);
}

@media (min-width: 768px) {
  .p-step__mission-text {
    font-size: var(--text-base);
  }
}

/* ------------------------------------------------------------------
   Curriculum - Plan cards, accordion-like
   ------------------------------------------------------------------ */
.p-step__curriculum {
}

.p-step__curriculum-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.p-step__curriculum-item {
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition:
    border-color var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__curriculum-item.is-open {
  border-color: var(--color-brand-light);
  box-shadow: var(--shadow-md);
}

.p-step__curriculum-header {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  width: 100%;
  padding: var(--space-lg);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-jp);
  transition: background-color var(--transition-fast);
}

.p-step__curriculum-header:hover {
  background-color: var(--color-bg-accent);
}

.p-step__curriculum-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background-color: var(--color-bg-accent);
  color: var(--color-brand-primary);
  font-family: var(--font-en);
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-lg);
  transition: background-color var(--transition-fast);
}

.p-step__curriculum-item.is-open .p-step__curriculum-number {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-step__curriculum-title {
  flex: 1;
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-step__curriculum-title {
    font-size: var(--text-lg);
  }
}

.p-step__curriculum-icon {
  position: relative;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.p-step__curriculum-icon::before,
.p-step__curriculum-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: var(--color-text-secondary);
  transition: transform var(--transition-base);
}

.p-step__curriculum-icon::before {
  width: 14px;
  height: 2px;
  margin-left: -7px;
  margin-top: -1px;
}

.p-step__curriculum-icon::after {
  width: 2px;
  height: 14px;
  margin-left: -1px;
  margin-top: -7px;
}

.p-step__curriculum-item.is-open .p-step__curriculum-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

.p-step__curriculum-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-slow);
}

.p-step__curriculum-item.is-open .p-step__curriculum-body {
  max-height: 800px;
}

.p-step__curriculum-content {
  padding: 0 var(--space-lg) var(--space-lg);
  padding-left: calc(var(--space-lg) + 48px + var(--space-md));
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

.p-step__curriculum-content ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.p-step__curriculum-content li {
  position: relative;
  padding-left: var(--space-lg);
}

.p-step__curriculum-content li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-full);
}

/* ------------------------------------------------------------------
   Bonuses - Grid of bonus cards with numbers
   ------------------------------------------------------------------ */
.p-step__bonuses {
}

.p-step__bonuses-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-step__bonuses-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__bonuses-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__bonus-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl) var(--space-lg);
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__bonus-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-step__bonus-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: var(--color-accent-yellow);
  color: var(--color-text-primary);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
}

.p-step__bonus-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-step__bonus-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Support - Support cards grid
   ------------------------------------------------------------------ */
.p-step__support {
}

.p-step__support-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-step__support-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__support-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__support-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__support-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-step__support-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-brand-primary);
}

.p-step__support-icon svg,
.p-step__support-icon img {
  width: 28px;
  height: 28px;
}

.p-step__support-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-step__support-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Results - Result cards with highlights
   ------------------------------------------------------------------ */
.p-step__results {
}

.p-step__results-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-step__results-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__results-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__result-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__result-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-step__result-highlight {
  font-family: var(--font-en);
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  line-height: var(--leading-none);
  margin-bottom: var(--space-sm);
}

.p-step__result-highlight-unit {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

.p-step__result-label {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.p-step__result-text {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   DM Proof - Screenshot testimonial cards
   ------------------------------------------------------------------ */
.p-step__dm-proof-header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.p-step__dm-proof-header p {
  color: var(--color-text-secondary);
  font-size: var(--text-base);
  max-width: 600px;
  margin: var(--space-sm) auto 0;
}

.p-step__dm-proof-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-step__dm-proof-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__dm-proof-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__dm-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.p-step__dm-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-step__dm-card-image {
  width: 100%;
  overflow: hidden;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.p-step__dm-card-image img {
  width: 100%;
  height: auto;
  display: block;
}

.p-step__dm-card-body {
  padding: var(--space-md) var(--space-lg) var(--space-lg);
}

.p-step__dm-card-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.p-step__dm-card-desc {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Rules - Dark section, numbered list
   ------------------------------------------------------------------ */
.p-step__rules {
  background-color: #1a1a1a;
  padding: var(--section-padding-sm) 0;
  color: var(--color-text-white);
}

@media (min-width: 768px) {
  .p-step__rules {
    padding: var(--section-padding) 0;
  }
}

.p-step__rules-inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.p-step__rules-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  text-align: center;
  margin-bottom: var(--space-2xl);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-step__rules-title {
    font-size: var(--text-3xl);
  }
}

.p-step__rules-list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: rules;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.p-step__rules-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  counter-increment: rules;
}

.p-step__rules-item::before {
  content: counter(rules, decimal-leading-zero);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  background-color: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-md);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-brand-light);
  flex-shrink: 0;
}

.p-step__rules-item-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  margin-bottom: var(--space-xs);
  line-height: var(--leading-snug);
}

.p-step__rules-item-text {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Pricing - 3-column pricing table
   ------------------------------------------------------------------ */
.p-step__pricing {
}

.p-step__pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: start;
  padding-top: 18px; /* space for "おすすめ" badge */
}

@media (min-width: 768px) {
  .p-step__pricing-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
  }
}

.p-step__pricing-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl) var(--space-lg);
  box-shadow: var(--shadow-card);
  text-align: center;
  border: 2px solid transparent;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__pricing-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

/* Popular card */
.p-step__pricing-card--popular {
  border-color: var(--color-brand-primary);
  background: linear-gradient(
    180deg,
    var(--color-bg-accent) 0%,
    var(--color-bg-white) 120px
  );
}

@media (min-width: 768px) {
  .p-step__pricing-card--popular {
    transform: scale(1.05);
    z-index: var(--z-base);
    box-shadow: var(--shadow-lg);
  }

  .p-step__pricing-card--popular:hover {
    transform: scale(1.05) translateY(-4px);
    box-shadow: var(--shadow-xl);
  }
}

.p-step__pricing-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  padding: var(--space-xs) var(--space-lg);
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  letter-spacing: var(--tracking-wide);
  white-space: nowrap;
  box-shadow: var(--shadow-sm);
}

.p-step__pricing-name {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

.p-step__pricing-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-xl);
}

.p-step__pricing-price {
  margin-bottom: var(--space-xl);
}

.p-step__pricing-amount {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-4xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  line-height: var(--leading-none);
}

.p-step__pricing-card--popular .p-step__pricing-amount {
  color: var(--color-brand-secondary);
}

.p-step__pricing-unit {
  font-size: var(--text-sm);
  font-weight: var(--fw-regular);
  color: var(--color-text-secondary);
  font-family: var(--font-jp);
}

.p-step__pricing-period {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

.p-step__pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-xl);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.p-step__pricing-feature {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
}

.p-step__pricing-feature::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  background-color: var(--color-brand-primary);
  border-radius: var(--radius-full);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='%23fff' d='M4.5 7.09L1.91 4.5.5 5.91l4 4 8-8L11.09.5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 9px;
}

.p-step__pricing-feature--disabled {
  color: var(--color-text-muted);
}

.p-step__pricing-feature--disabled::before {
  background-color: var(--color-border);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cline x1='2' y1='2' x2='8' y2='8' stroke='%23999' stroke-width='1.5'/%3E%3Cline x1='8' y1='2' x2='2' y2='8' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E");
  background-size: 8px;
}

/* Advisor section */
.p-step__pricing-advisor {
  margin-top: var(--space-3xl);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  text-align: center;
}

.p-step__pricing-advisor-label {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.p-step__pricing-advisor-title {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-step__pricing-advisor-title {
    font-size: var(--text-2xl);
  }
}

.p-step__pricing-advisor-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 600px;
  margin: 0 auto;
}

/* ------------------------------------------------------------------
   FAQ - Reuses c-accordion styles, page-specific overrides
   ------------------------------------------------------------------ */
.p-step__faq {
}

.p-step__faq .c-accordion {
  border-top-color: var(--color-border-light);
}

.p-step__faq .c-accordion__item {
  border-bottom-color: var(--color-border-light);
}

/* ------------------------------------------------------------------
   Persona - Recommendation cards
   ------------------------------------------------------------------ */
.p-step__persona-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-top: var(--space-xl);
}

@media (min-width: 540px) {
  .p-step__persona-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-step__persona-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-step__persona-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-step__persona-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-step__persona-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-brand-primary);
}

.p-step__persona-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-step__persona-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Final CTA - Dark CTA section
   ------------------------------------------------------------------ */
.p-step__final-cta {
  background-color: #1a1a1a;
  padding: var(--space-4xl) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  .p-step__final-cta {
    padding: var(--space-5xl) 0;
  }
}

.p-step__final-cta::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 400px;
  height: 400px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.015);
  pointer-events: none;
}

.p-step__final-cta::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -5%;
  width: 300px;
  height: 300px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.015);
  pointer-events: none;
}

.p-step__final-cta-inner {
  position: relative;
  z-index: var(--z-base);
  max-width: 700px;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.p-step__final-cta-label {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.p-step__final-cta-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-step__final-cta-title {
    font-size: var(--text-3xl);
  }
}

@media (min-width: 1024px) {
  .p-step__final-cta-title {
    font-size: var(--text-4xl);
  }
}

.p-step__final-cta-text {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.75);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-step__final-cta-text {
    font-size: var(--text-base);
  }
}

.p-step__final-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-step__final-cta-actions {
    flex-direction: row;
    justify-content: center;
  }
}

.p-step__final-cta-note {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.4);
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .p-step__intro-card,
  .p-step__bonus-card,
  .p-step__support-card,
  .p-step__result-card,
  .p-step__pricing-card {
    transition: none;
  }

  .p-step__curriculum-body {
    transition: none;
  }
}

/* ==========================================================================
   SNS Operation Agency Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Intro
   ------------------------------------------------------------------ */
.p-agency__intro {
  text-align: center;
}

.p-agency__intro-inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

.p-agency__intro-lead {
  font-size: var(--text-lg);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .p-agency__intro-lead {
    font-size: var(--text-xl);
  }
}

.p-agency__intro-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

@media (min-width: 768px) {
  .p-agency__intro-text {
    font-size: var(--text-base);
  }
}

/* ------------------------------------------------------------------
   Strengths - Numbered strength cards
   ------------------------------------------------------------------ */
.p-agency__strengths {
}

.p-agency__strengths-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  padding-top: 20px; /* space for protruding number badges */
}

@media (min-width: 540px) {
  .p-agency__strengths-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-agency__strengths-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-agency__strength-card {
  position: relative;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl) var(--space-lg) var(--space-lg);
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-agency__strength-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-agency__strength-number {
  position: absolute;
  top: -16px;
  left: var(--space-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-family: var(--font-en);
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.p-agency__strength-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-agency__strength-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Staff - Staff cards with photo placeholder
   ------------------------------------------------------------------ */
.p-agency__staff {
}

.p-agency__staff-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-agency__staff-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-agency__staff-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.p-agency__staff-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-xl) var(--space-md);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-agency__staff-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-agency__staff-avatar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-brand-light);
  border-radius: var(--radius-full);
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-secondary);
  overflow: hidden;
}

.p-agency__staff-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-agency__staff-followers {
  position: absolute;
  bottom: -4px;
  right: -4px;
  display: inline-flex;
  align-items: center;
  padding: 2px var(--space-sm);
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  border: 2px solid var(--color-bg-white);
  white-space: nowrap;
}

.p-agency__staff-name {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.p-agency__staff-role {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Flow - Step-by-step with connecting lines
   ------------------------------------------------------------------ */
.p-agency__flow {
}

.p-agency__flow-list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
}

/* Vertical connecting line (mobile) */
.p-agency__flow-list::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 24px;
  width: 2px;
  height: calc(100% - 48px);
  background-color: var(--color-border);
}

@media (min-width: 768px) {
  .p-agency__flow-list {
    flex-direction: row;
    gap: var(--space-lg);
  }

  /* Horizontal connecting line (desktop) */
  .p-agency__flow-list::before {
    top: 24px;
    left: 48px;
    width: calc(100% - 96px);
    height: 2px;
  }
}

.p-agency__flow-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  z-index: var(--z-base);
}

@media (min-width: 768px) {
  .p-agency__flow-item {
    flex: 1;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

.p-agency__flow-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-family: var(--font-en);
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
  border: 3px solid var(--color-bg-white);
}

.p-agency__flow-body {
  flex: 1;
  padding-top: var(--space-sm);
}

@media (min-width: 768px) {
  .p-agency__flow-body {
    padding-top: 0;
  }
}

.p-agency__flow-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
  line-height: var(--leading-snug);
}

.p-agency__flow-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Clients - Client name grid
   ------------------------------------------------------------------ */
.p-agency__clients {
}

.p-agency__clients-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-sm);
}

@media (min-width: 540px) {
  .p-agency__clients-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 768px) {
  .p-agency__clients-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-agency__clients-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.p-agency__client-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md) var(--space-sm);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  text-align: center;
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.p-agency__client-item:hover {
  border-color: var(--color-brand-light);
  box-shadow: var(--shadow-sm);
}

/* ------------------------------------------------------------------
   Tools - Tool cards
   ------------------------------------------------------------------ */
.p-agency__tools {
}

.p-agency__tools-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-agency__tools-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-agency__tools-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.p-agency__tool-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--space-xl) var(--space-md);
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-agency__tool-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-agency__tool-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-lg);
  color: var(--color-brand-primary);
}

.p-agency__tool-icon svg,
.p-agency__tool-icon img {
  width: 28px;
  height: 28px;
}

.p-agency__tool-name {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
}

.p-agency__tool-desc {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Cost - Side-by-side comparison with VS divider
   ------------------------------------------------------------------ */
.p-agency__cost {
}

.p-agency__cost-compare {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

@media (min-width: 768px) {
  .p-agency__cost-compare {
    flex-direction: row;
    align-items: stretch;
  }
}

.p-agency__cost-side {
  flex: 1;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  box-shadow: var(--shadow-card);
}

/* Left side (competitor / traditional) */
.p-agency__cost-side--other {
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

@media (min-width: 768px) {
  .p-agency__cost-side--other {
    border-radius: var(--radius-xl) 0 0 var(--radius-xl);
  }
}

/* Right side (S.Line) */
.p-agency__cost-side--sline {
  border-radius: 0 0 var(--radius-xl) var(--radius-xl);
  border: 2px solid var(--color-brand-primary);
  background: linear-gradient(
    180deg,
    var(--color-bg-accent) 0%,
    var(--color-bg-white) 100%
  );
}

@media (min-width: 768px) {
  .p-agency__cost-side--sline {
    border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
  }
}

.p-agency__cost-label {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.p-agency__cost-side--sline .p-agency__cost-label {
  color: var(--color-brand-primary);
}

.p-agency__cost-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
}

.p-agency__cost-price {
  font-family: var(--font-en);
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-lg);
}

.p-agency__cost-side--sline .p-agency__cost-price {
  color: var(--color-brand-primary);
}

.p-agency__cost-price-unit {
  font-size: var(--text-base);
  font-weight: var(--fw-regular);
  font-family: var(--font-jp);
  color: var(--color-text-secondary);
}

.p-agency__cost-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.p-agency__cost-feature {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.p-agency__cost-feature::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  background-color: var(--color-border);
  border-radius: var(--radius-full);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='%23999' d='M4.5 7.09L1.91 4.5.5 5.91l4 4 8-8L11.09.5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 9px;
}

.p-agency__cost-side--sline .p-agency__cost-feature::before {
  background-color: var(--color-brand-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='%23fff' d='M4.5 7.09L1.91 4.5.5 5.91l4 4 8-8L11.09.5z'/%3E%3C/svg%3E");
}

/* VS divider */
.p-agency__cost-vs {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: var(--z-base);
  padding: var(--space-sm) 0;
}

@media (min-width: 768px) {
  .p-agency__cost-vs {
    padding: 0 var(--space-sm);
    align-self: center;
    margin: 0 calc(var(--space-md) * -1);
  }
}

.p-agency__cost-vs-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background-color: var(--color-accent-yellow);
  color: var(--color-text-primary);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-extrabold);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-md);
  letter-spacing: var(--tracking-tight);
}

/* ------------------------------------------------------------------
   CTA
   ------------------------------------------------------------------ */
.p-agency__cta {
  text-align: center;
}

.p-agency__cta-inner {
  max-width: 700px;
  margin: 0 auto;
}

.p-agency__cta-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-agency__cta-title {
    font-size: var(--text-3xl);
  }
}

.p-agency__cta-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-agency__cta-text {
    font-size: var(--text-base);
  }
}

.p-agency__cta-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-agency__cta-actions {
    flex-direction: row;
    justify-content: center;
  }
}

.p-agency__cta-note {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .p-agency__strength-card,
  .p-agency__staff-card,
  .p-agency__tool-card {
    transition: none;
  }
}

/* ==========================================================================
   Team Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Intro
   ------------------------------------------------------------------ */
.p-team__intro {
  text-align: center;
  max-width: var(--container-narrow);
  margin: 0 auto;
}

.p-team__intro-lead {
  font-size: var(--text-lg);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .p-team__intro-lead {
    font-size: var(--text-xl);
  }
}

.p-team__intro-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

@media (min-width: 768px) {
  .p-team__intro-text {
    font-size: var(--text-base);
  }
}

/* ------------------------------------------------------------------
   Leaders - Large leader cards with photo and SNS links
   ------------------------------------------------------------------ */
.p-team__leaders {
  max-width: var(--container-default);
  margin: 0 auto;
}

.p-team__leaders-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-team__leaders-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-xl);
  }
}

.p-team__leader-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-team__leader-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-team__leader-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: var(--color-brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.p-team__leader-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.p-team__leader-card:hover .p-team__leader-photo img {
  transform: scale(1.03);
}

/* Placeholder initial when no photo */
.p-team__leader-photo-placeholder {
  font-size: var(--text-5xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-secondary);
  opacity: 0.4;
}

.p-team__leader-body {
  padding: var(--space-xl) var(--space-lg);
}

.p-team__leader-position {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.p-team__leader-name {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
  line-height: var(--leading-tight);
}

.p-team__leader-name-en {
  font-family: var(--font-en);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-md);
}

.p-team__leader-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
  margin-bottom: var(--space-md);
}

/* SNS links row */
.p-team__leader-sns {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.p-team__leader-sns-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background-color: var(--color-bg-accent);
  color: var(--color-text-secondary);
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast);
}

.p-team__leader-sns-link:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
}

.p-team__leader-sns-link svg,
.p-team__leader-sns-link img {
  width: 18px;
  height: 18px;
}

/* ------------------------------------------------------------------
   Stats - Stat numbers grid
   ------------------------------------------------------------------ */
.p-team__stats {
  background-color: var(--color-bg-accent);
  padding: var(--section-padding-sm) 0;
}

@media (min-width: 768px) {
  .p-team__stats {
    padding: var(--section-padding) 0;
  }
}

.p-team__stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-xl);
  max-width: var(--container-default);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

@media (min-width: 768px) {
  .p-team__stats-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
  }
}

.p-team__stat-item {
  text-align: center;
  position: relative;
  padding: var(--space-lg) var(--space-sm);
}

@media (min-width: 768px) {
  .p-team__stat-item + .p-team__stat-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 60%;
    background-color: var(--color-border);
  }
}

.p-team__stat-value {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-4xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  line-height: var(--leading-none);
  margin-bottom: var(--space-sm);
}

@media (min-width: 540px) {
  .p-team__stat-value {
    font-size: var(--text-5xl);
  }
}

.p-team__stat-unit {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

.p-team__stat-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-secondary);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-team__stat-label {
    font-size: var(--text-base);
  }
}

/* ------------------------------------------------------------------
   Operations - Operator avatar grid with overflow counter
   ------------------------------------------------------------------ */
.p-team__operations {
  max-width: var(--container-default);
  margin: 0 auto;
}

.p-team__operations-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  justify-content: center;
}

.p-team__operator {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  width: 72px;
}

.p-team__operator-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background-color: var(--color-brand-light);
  border-radius: var(--radius-full);
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-secondary);
  overflow: hidden;
  transition: transform var(--transition-fast);
}

.p-team__operator:hover .p-team__operator-avatar {
  transform: scale(1.1);
}

.p-team__operator-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-team__operator-name {
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
  text-align: center;
  line-height: var(--leading-snug);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Overflow counter (+30 etc.) */
.p-team__operator--overflow {
  cursor: default;
}

.p-team__operator--overflow .p-team__operator-avatar {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
}

.p-team__operator--overflow .p-team__operator-name {
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Culture - Dark section with value cards
   ------------------------------------------------------------------ */
.p-team__culture {
  background-color: #1a1a1a;
  padding: var(--section-padding-sm) 0;
  color: var(--color-text-white);
}

@media (min-width: 768px) {
  .p-team__culture {
    padding: var(--section-padding) 0;
  }
}

.p-team__culture-inner {
  max-width: var(--container-default);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.p-team__culture-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  text-align: center;
  margin-bottom: var(--space-sm);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-team__culture-title {
    font-size: var(--text-3xl);
  }
}

.p-team__culture-label {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  text-align: center;
  margin-bottom: var(--space-3xl);
}

.p-team__culture-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-team__culture-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-team__culture-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-team__culture-card {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  transition:
    background var(--transition-base),
    border-color var(--transition-base),
    transform var(--transition-base);
}

.p-team__culture-card:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-4px);
}

.p-team__culture-card-number {
  font-family: var(--font-en);
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.15);
  line-height: var(--leading-none);
  margin-bottom: var(--space-md);
}

.p-team__culture-card-title {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.p-team__culture-card-text {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.65);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Join - CTA section
   ------------------------------------------------------------------ */
.p-team__join {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.p-team__join-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-team__join-title {
    font-size: var(--text-3xl);
  }
}

.p-team__join-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-team__join-text {
    font-size: var(--text-base);
  }
}

.p-team__join-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-team__join-actions {
    flex-direction: row;
    justify-content: center;
  }
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .p-team__leader-card,
  .p-team__culture-card {
    transition: none;
  }

  .p-team__leader-photo img {
    transition: none;
  }

  .p-team__operator-avatar {
    transition: none;
  }
}

/* ==========================================================================
   Samurai Beauty Salon Page
   ========================================================================== */

/* ------------------------------------------------------------------
   Intro
   ------------------------------------------------------------------ */
.p-beauty__intro {
  text-align: center;
}

.p-beauty__intro-inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

.p-beauty__intro-lead {
  font-size: var(--text-lg);
  font-weight: var(--fw-medium);
  color: var(--color-text-primary);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-lg);
}

@media (min-width: 768px) {
  .p-beauty__intro-lead {
    font-size: var(--text-xl);
  }
}

@media (min-width: 1024px) {
  .p-beauty__intro-lead {
    font-size: var(--text-2xl);
  }
}

.p-beauty__intro-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

@media (min-width: 768px) {
  .p-beauty__intro-text {
    font-size: var(--text-base);
  }
}

/* Intro image */
.p-beauty__intro-image {
  margin-top: var(--space-2xl);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.p-beauty__intro-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* ------------------------------------------------------------------
   Menu - Menu cards
   ------------------------------------------------------------------ */
.p-beauty__menu {
}

.p-beauty__menu-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

@media (min-width: 540px) {
  .p-beauty__menu-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-beauty__menu-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-beauty__menu-card {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-beauty__menu-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.p-beauty__menu-image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background-color: var(--color-brand-light);
}

.p-beauty__menu-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.p-beauty__menu-card:hover .p-beauty__menu-image img {
  transform: scale(1.05);
}

.p-beauty__menu-body {
  padding: var(--space-lg);
}

.p-beauty__menu-name {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
  line-height: var(--leading-snug);
}

.p-beauty__menu-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-md);
}

.p-beauty__menu-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border-light);
}

.p-beauty__menu-price {
  font-family: var(--font-en);
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

.p-beauty__menu-price-unit {
  font-size: var(--text-xs);
  font-weight: var(--fw-regular);
  color: var(--color-text-muted);
  font-family: var(--font-jp);
}

.p-beauty__menu-duration {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   Why - Reason cards
   ------------------------------------------------------------------ */
.p-beauty__why {
}

.p-beauty__why-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  padding-top: 24px; /* space for protruding number badges */
  margin-top: var(--space-xl);
}

@media (min-width: 540px) {
  .p-beauty__why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .p-beauty__why-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-beauty__why-card {
  position: relative;
  overflow: visible;
  background-color: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl) var(--space-lg) var(--space-lg);
  box-shadow: var(--shadow-card);
  text-align: center;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.p-beauty__why-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-beauty__why-number {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  border-radius: var(--radius-full);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 2;
}

.p-beauty__why-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto var(--space-md);
  background-color: var(--color-bg-accent);
  border-radius: var(--radius-full);
  color: var(--color-brand-primary);
}

.p-beauty__why-icon svg,
.p-beauty__why-icon img {
  width: 24px;
  height: 24px;
}

.p-beauty__why-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

@media (min-width: 768px) {
  .p-beauty__why-title {
    font-size: var(--text-lg);
  }
}

.p-beauty__why-text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* ------------------------------------------------------------------
   Access - Table styling (reuses c-table--company pattern)
   ------------------------------------------------------------------ */
.p-beauty__access {
}

.p-beauty__access-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-beauty__access-inner {
    flex-direction: row;
    gap: var(--space-3xl);
    align-items: flex-start;
  }
}

.p-beauty__access-info {
  flex: 1;
}

.p-beauty__access-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
  border-top: 1px solid var(--color-border);
}

.p-beauty__access-table th,
.p-beauty__access-table td {
  padding: var(--space-md) var(--space-lg);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border);
}

.p-beauty__access-table th {
  width: 120px;
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  background-color: transparent;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .p-beauty__access-table th {
    width: 160px;
  }
}

.p-beauty__access-table td {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Responsive: stack on mobile */
@media (max-width: 539px) {
  .p-beauty__access-table th,
  .p-beauty__access-table td {
    display: block;
    width: 100%;
    padding: var(--space-sm) 0;
  }

  .p-beauty__access-table th {
    padding-top: var(--space-md);
    border-bottom: none;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    letter-spacing: var(--tracking-wider);
  }

  .p-beauty__access-table td {
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
  }
}

/* Map embed */
.p-beauty__access-map {
  width: 100%;
  height: 280px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

@media (min-width: 768px) {
  .p-beauty__access-map {
    width: 400px;
    height: 320px;
    flex-shrink: 0;
  }
}

.p-beauty__access-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* ------------------------------------------------------------------
   Before / After Showcase
   ------------------------------------------------------------------ */
.p-beauty__ba-lead {
  text-align: center;
  font-size: var(--text-base);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-2xl);
}

.p-beauty__ba-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 768px) {
  .p-beauty__ba-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-beauty__ba-item {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.p-beauty__ba-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
}

.p-beauty__ba-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* ------------------------------------------------------------------
   CTA
   ------------------------------------------------------------------ */
.p-beauty__cta {
  background-color: #1a1a1a;
  padding: var(--space-4xl) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  .p-beauty__cta {
    padding: var(--space-5xl) 0;
  }
}

.p-beauty__cta::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 400px;
  height: 400px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.015);
  pointer-events: none;
}

.p-beauty__cta::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -5%;
  width: 300px;
  height: 300px;
  border-radius: var(--radius-full);
  background-color: rgba(0, 0, 0, 0.015);
  pointer-events: none;
}

.p-beauty__cta-inner {
  position: relative;
  z-index: var(--z-base);
  max-width: 700px;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.p-beauty__cta-label {
  display: block;
  font-family: var(--font-en);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.p-beauty__cta-title {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-white);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-md);
  letter-spacing: var(--tracking-wider);
}

@media (min-width: 768px) {
  .p-beauty__cta-title {
    font-size: var(--text-3xl);
  }
}

@media (min-width: 1024px) {
  .p-beauty__cta-title {
    font-size: var(--text-4xl);
  }
}

.p-beauty__cta-text {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.75);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-2xl);
}

@media (min-width: 768px) {
  .p-beauty__cta-text {
    font-size: var(--text-base);
  }
}

.p-beauty__cta-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

@media (min-width: 540px) {
  .p-beauty__cta-actions {
    flex-direction: row;
    justify-content: center;
  }
}

.p-beauty__cta-note {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.4);
}

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .p-beauty__menu-card,
  .p-beauty__why-card {
    transition: none;
  }

  .p-beauty__menu-image img {
    transition: none;
  }
}

/* ==========================================================================
   Results Page Styles
   Extracted from preview-results.html inline <style> block
   ========================================================================== */

/* Numbers grid - 3x2 layout */
.s-results-numbers__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}
@media (min-width: 768px) {
  .s-results-numbers__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Client cards grid */
.s-clients__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}
@media (min-width: 640px) {
  .s-clients__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .s-clients__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.s-clients__card {
  background: var(--color-bg-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.s-clients__card-logo {
  aspect-ratio: 16 / 10;
  background: var(--color-bg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--color-border-light);
}
.s-clients__card-body {
  padding: var(--space-lg);
}
.s-clients__card-name {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}
.s-clients__card-industry {
  font-size: var(--text-xs);
  color: var(--color-brand-primary);
  font-weight: var(--fw-medium);
  margin-bottom: var(--space-sm);
}
.s-clients__card-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: 1.85;
  letter-spacing: 0.02em;
  margin-bottom: var(--space-sm);
}
.s-clients__card-result {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
}

/* Testimonials grid */
.s-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}
@media (min-width: 640px) {
  .s-testimonials__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.s-testimonials__card {
  background: var(--color-bg-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  box-shadow: var(--shadow-card);
  position: relative;
  overflow: hidden;
}
.s-testimonials__card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary));
}
.s-testimonials__profile {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}
.s-testimonials__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-bg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}
.s-testimonials__info {
  flex: 1;
}
.s-testimonials__name {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
}
.s-testimonials__attr {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}
.s-testimonials__badge {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-primary);
  background: var(--color-bg-accent);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
}
.s-testimonials__stats {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
  padding: var(--space-md);
  background: var(--color-bg-accent);
  border-radius: var(--radius-lg);
}
.s-testimonials__stat-before,
.s-testimonials__stat-after {
  text-align: center;
  flex: 1;
}
.s-testimonials__stat-label {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  display: block;
  margin-bottom: var(--space-xs);
}
.s-testimonials__stat-value {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
}
.s-testimonials__stat-after .s-testimonials__stat-value {
  color: var(--color-brand-primary);
}
.s-testimonials__arrow {
  color: var(--color-brand-primary);
  flex-shrink: 0;
}
.s-testimonials__comment {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: 1.9;
  letter-spacing: 0.02em;
  font-style: italic;
  margin-bottom: var(--space-md);
}
.s-testimonials__meta {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}

/* Media grid */
.s-media__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}
@media (min-width: 640px) {
  .s-media__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.s-media__card {
  background: var(--color-bg-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  text-align: center;
}
.s-media__card-image {
  aspect-ratio: 16 / 9;
  background: var(--color-bg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.s-media__card-body {
  padding: var(--space-lg);
}
.s-media__card-title {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}
.s-media__card-desc {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}

/* Compare section grid */
.s-compare__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}
@media (min-width: 768px) {
  .s-compare__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.s-compare__item-label {
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  text-align: center;
  margin-bottom: var(--space-md);
}

/* --- Results-specific utility classes --- */

/* Stat banner grid (dark bg stat cards) */
.s-results-stat-banner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  margin-top: var(--space-3xl);
  margin-bottom: var(--space-3xl);
  text-align: center;
}
.s-results-stat-card {
  padding: 2rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.s-results-stat-card__value {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-brand-primary);
}
.s-results-stat-card__label {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 0.5rem;
}

/* Industry grid (3-column compact) */
.s-clients__grid--industry {
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media (max-width: 639px) {
  .s-clients__grid--industry {
    grid-template-columns: repeat(2, 1fr);
  }
}
.s-clients__card--compact {
  padding: 1.2rem;
  text-align: center;
}
.s-clients__card--compact .s-clients__card-desc {
  margin: 0;
}

/* Section subheading */
.s-section-subheading {
  text-align: center;
  font-size: 1.1rem;
  font-weight: 600;
  margin-top: var(--space-3xl);
  margin-bottom: var(--space-lg);
}

/* Disclaimer / note text */
.s-section-disclaimer {
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.8rem;
  margin-top: 1rem;
}

/* Testimonial photo card (SkillOn style) */
.s-photo-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: var(--space-3xl);
}
.s-photo-testimonial-card {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.s-photo-testimonial-card__img {
  width: 100%;
  height: auto;
  display: block;
}
.s-photo-testimonial-card__body {
  padding: 1rem;
  background: var(--color-bg-white);
}
.s-photo-testimonial-card__title {
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.25rem;
}
.s-photo-testimonial-card__desc {
  font-size: 0.85rem;
  color: var(--color-text-muted, #666);
  margin: 0;
}

/* ==========================================================================
   Animations - Comprehensive animation system
   ==========================================================================
   Contents:
   1. Scroll Reveal Animations (data-animate)
   2. Staggered Children
   3. Parallax
   4. Continuous Animations
   5. Text Animations
   6. Hover Effects
   7. Transition Utilities
   8. Delay Utilities
   9. Reduced Motion
   ========================================================================== */

/* ==========================================================================
   1. SCROLL REVEAL ANIMATIONS
   ========================================================================== */

/* ------------------------------------------------------------------
   Base state for animated elements
   ------------------------------------------------------------------ */
[data-animate] {
  opacity: 0;
  transition-property: opacity, transform, filter, clip-path;
  transition-duration: 0.7s;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Visible state */
[data-animate].is-visible {
  opacity: 1;
  transform: none;
  filter: none;
  clip-path: none;
}

/* ------------------------------------------------------------------
   Fade variants
   ------------------------------------------------------------------ */

/* Fade up */
[data-animate="fade-up"] {
  transform: translateY(40px);
}

/* Fade down */
[data-animate="fade-down"] {
  transform: translateY(-40px);
}

/* Fade left (enters from left) */
[data-animate="fade-left"] {
  transform: translateX(-50px);
}

/* Fade right (enters from right) */
[data-animate="fade-right"] {
  transform: translateX(50px);
}

/* Fade in (no movement) */
[data-animate="fade-in"] {
  transform: none;
}

/* Fade up small */
[data-animate="fade-up-sm"] {
  transform: translateY(16px);
}

/* ------------------------------------------------------------------
   Scale variants
   ------------------------------------------------------------------ */

/* Scale in (from slightly smaller) */
[data-animate="scale-in"] {
  transform: scale(0.9);
}

/* Scale up (from much smaller) */
[data-animate="scale-up"] {
  transform: scale(0.75);
}

/* ------------------------------------------------------------------
   Rotate variant
   ------------------------------------------------------------------ */
[data-animate="rotate-in"] {
  transform: rotate(-5deg) scale(0.95);
  transform-origin: center center;
}

/* ------------------------------------------------------------------
   Flip variant
   ------------------------------------------------------------------ */
[data-animate="flip-up"] {
  transform: perspective(1000px) rotateX(10deg) translateY(30px);
  transform-origin: bottom center;
}

/* ------------------------------------------------------------------
   Blur variant
   ------------------------------------------------------------------ */
[data-animate="blur-in"] {
  filter: blur(12px);
  transform: scale(0.97);
}

[data-animate="blur-in"].is-visible {
  filter: blur(0);
}

/* ------------------------------------------------------------------
   Clip-path reveal variants
   ------------------------------------------------------------------ */
[data-animate="clip-up"] {
  clip-path: inset(100% 0 0 0);
  transform: none;
}

[data-animate="clip-up"].is-visible {
  clip-path: inset(0 0 0 0);
}

[data-animate="clip-left"] {
  clip-path: inset(0 100% 0 0);
  transform: none;
}

[data-animate="clip-left"].is-visible {
  clip-path: inset(0 0 0 0);
}

[data-animate="clip-down"] {
  clip-path: inset(0 0 100% 0);
  transform: none;
}

[data-animate="clip-down"].is-visible {
  clip-path: inset(0 0 0 0);
}

[data-animate="clip-right"] {
  clip-path: inset(0 0 0 100%);
  transform: none;
}

[data-animate="clip-right"].is-visible {
  clip-path: inset(0 0 0 0);
}

/* ------------------------------------------------------------------
   Split text (CSS setup, JS adds spans with .a-text-split-char)
   ------------------------------------------------------------------ */
[data-animate="split-up"] {
  opacity: 1; /* parent stays visible */
}

[data-animate="split-up"] .a-text-split-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(100%);
  transition:
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--char-index, 0) * 40ms);
}

[data-animate="split-up"].is-visible .a-text-split-char {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   2. STAGGERED CHILDREN
   ========================================================================== */

/* Parent with [data-stagger] or [data-animate-stagger] */
[data-stagger] > *,
[data-animate-stagger] > * {
  transition-delay: calc(var(--stagger-index, 0) * 100ms);
}

/* Fallback with nth-child for when JS doesn't set CSS vars */
[data-animate-stagger] > *:nth-child(1) { transition-delay: 0ms; }
[data-animate-stagger] > *:nth-child(2) { transition-delay: 100ms; }
[data-animate-stagger] > *:nth-child(3) { transition-delay: 200ms; }
[data-animate-stagger] > *:nth-child(4) { transition-delay: 300ms; }
[data-animate-stagger] > *:nth-child(5) { transition-delay: 400ms; }
[data-animate-stagger] > *:nth-child(6) { transition-delay: 500ms; }
[data-animate-stagger] > *:nth-child(7) { transition-delay: 600ms; }
[data-animate-stagger] > *:nth-child(8) { transition-delay: 700ms; }
[data-animate-stagger] > *:nth-child(9) { transition-delay: 800ms; }
[data-animate-stagger] > *:nth-child(10) { transition-delay: 900ms; }
[data-animate-stagger] > *:nth-child(11) { transition-delay: 1000ms; }
[data-animate-stagger] > *:nth-child(12) { transition-delay: 1100ms; }

/* Stagger child with visible parent */
.is-visible > [data-stagger-child] {
  opacity: 1;
  transform: none;
}

[data-stagger-child] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--stagger-index, 0) * 80ms);
}

/* ==========================================================================
   3. PARALLAX
   ========================================================================== */

/* JS sets --parallax-y on scroll; CSS applies it smoothly */
[data-parallax] {
  will-change: transform;
  transition: transform 0.1s linear;
  transform: translateY(var(--parallax-y, 0));
}

[data-parallax="slow"] {
  /* JS sets smaller values for slow parallax */
  transform: translateY(calc(var(--parallax-y, 0) * 0.5));
}

[data-parallax="fast"] {
  /* JS sets larger values for fast parallax */
  transform: translateY(calc(var(--parallax-y, 0) * 1.5));
}

/* ==========================================================================
   4. CONTINUOUS ANIMATIONS (Keyframe-based)
   ========================================================================== */

/* ------------------------------------------------------------------
   Float - gentle up/down
   ------------------------------------------------------------------ */
@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

.a-float {
  animation: float 3s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Pulse - scale pulsing
   ------------------------------------------------------------------ */
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.85;
  }
}

.a-pulse {
  animation: pulse 2s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Spin - full rotation
   ------------------------------------------------------------------ */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.a-spin {
  animation: spin 1s linear infinite;
}

.a-spin--slow {
  animation: spin 2s linear infinite;
}

/* ------------------------------------------------------------------
   Shimmer - loading skeleton shine
   ------------------------------------------------------------------ */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.a-shimmer {
  background: linear-gradient(
    90deg,
    #f0f0f0 25%,
    #e0e0e0 50%,
    #f0f0f0 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Gradient shift - background position animation
   ------------------------------------------------------------------ */
@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.a-gradient-shift {
  background-size: 200% 200%;
  animation: gradientShift 4s ease infinite;
}

/* ------------------------------------------------------------------
   Glow - subtle box-shadow pulse
   ------------------------------------------------------------------ */
@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.04);
  }
  50% {
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);
  }
}

.a-glow {
  animation: glow 2.5s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Wiggle - subtle rotation wiggle
   ------------------------------------------------------------------ */
@keyframes wiggle {
  0%, 100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-3deg);
  }
  75% {
    transform: rotate(3deg);
  }
}

.a-wiggle {
  animation: wiggle 1s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Bounce - entrance bounce
   ------------------------------------------------------------------ */
@keyframes bounce {
  0% {
    opacity: 0;
    transform: translateY(-40px);
  }
  50% {
    transform: translateY(8px);
  }
  70% {
    transform: translateY(-4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.a-bounce {
  animation: bounce 0.7s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

/* ------------------------------------------------------------------
   Shake - error state shake
   ------------------------------------------------------------------ */
@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-6px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(6px);
  }
}

.a-shake {
  animation: shake 0.5s ease-in-out;
}

/* ------------------------------------------------------------------
   SVG line draw
   ------------------------------------------------------------------ */
.a-draw-line {
  stroke-dasharray: var(--line-length, 300);
  stroke-dashoffset: var(--line-length, 300);
  animation: drawLine 1.5s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes drawLine {
  to {
    stroke-dashoffset: 0;
  }
}

/* ------------------------------------------------------------------
   Typewriter cursor blink
   ------------------------------------------------------------------ */
@keyframes typewriterBlink {
  0%, 100% {
    border-right-color: transparent;
  }
  50% {
    border-right-color: #1a1a1a;
  }
}

.a-typewriter {
  border-right: 2px solid #1a1a1a;
  animation: typewriterBlink 0.8s step-end infinite;
  white-space: nowrap;
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Ripple - material-style click ripple (CSS setup)
   ------------------------------------------------------------------ */
.a-ripple {
  position: relative;
  overflow: hidden;
}

.a-ripple__circle {
  position: absolute;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.35);
  transform: scale(0);
  animation: rippleExpand 0.6s ease-out forwards;
  pointer-events: none;
}

@keyframes rippleExpand {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

/* ------------------------------------------------------------------
   Magnetic - transform setup for cursor-follow (JS sets vars)
   ------------------------------------------------------------------ */
.a-magnetic {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translate(
    var(--magnetic-x, 0),
    var(--magnetic-y, 0)
  );
}

/* ==========================================================================
   5. TEXT ANIMATIONS
   ========================================================================== */

/* ------------------------------------------------------------------
   Text reveal - overflow hidden + translateY
   ------------------------------------------------------------------ */
.a-text-reveal {
  overflow: hidden;
  display: inline-block;
}

.a-text-reveal__inner {
  display: inline-block;
  transform: translateY(105%);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.is-visible .a-text-reveal__inner,
.a-text-reveal.is-visible .a-text-reveal__inner {
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Text split - per-character stagger
   ------------------------------------------------------------------ */
.a-text-split {
  display: inline-block;
}

.a-text-split__char {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--char-index, 0) * 30ms);
}

.is-visible .a-text-split__char {
  opacity: 1;
  transform: translateY(0);
}

/* Word-level split */
.a-text-split__word {
  display: inline-block;
  overflow: hidden;
}

.a-text-split__word-inner {
  display: inline-block;
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--word-index, 0) * 60ms);
}

.is-visible .a-text-split__word-inner {
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   Animated gradient text
   ------------------------------------------------------------------ */
@keyframes textGradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.a-text-gradient {
  background: linear-gradient(90deg, #1a1a1a, #333333, #333333, #1a1a1a);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: textGradientShift 4s ease infinite;
}

/* ------------------------------------------------------------------
   Text glow pulse
   ------------------------------------------------------------------ */
@keyframes textGlow {
  0%, 100% {
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.04);
  }
  50% {
    text-shadow:
      0 0 12px rgba(0, 0, 0, 0.04),
      0 0 24px rgba(0, 0, 0, 0.04);
  }
}

.a-text-glow {
  animation: textGlow 2.5s ease-in-out infinite;
}

/* ------------------------------------------------------------------
   Text scramble / glitch (CSS setup, JS does the scramble)
   ------------------------------------------------------------------ */
.a-text-scramble {
  position: relative;
  display: inline-block;
}

.a-text-scramble__char {
  display: inline-block;
  transition: opacity 0.08s ease;
}

.a-text-scramble__char.is-scrambling {
  opacity: 0.6;
  font-family: monospace;
}

/* ==========================================================================
   6. HOVER EFFECTS
   ========================================================================== */

/* ------------------------------------------------------------------
   Animated underline from left
   ------------------------------------------------------------------ */
.a-hover-underline {
  position: relative;
  display: inline-block;
}

.a-hover-underline::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #1a1a1a;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.a-hover-underline:hover::after {
  width: 100%;
}

/* ------------------------------------------------------------------
   Animated underline from center
   ------------------------------------------------------------------ */
.a-hover-underline--center {
  position: relative;
  display: inline-block;
}

.a-hover-underline--center::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 50%;
  width: 0;
  height: 2px;
  background-color: #1a1a1a;
  transition:
    width 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    left 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.a-hover-underline--center:hover::after {
  width: 100%;
  left: 0;
}

/* ------------------------------------------------------------------
   Background fill from bottom
   ------------------------------------------------------------------ */
.a-hover-fill {
  position: relative;
  overflow: hidden;
  z-index: 0;
}

.a-hover-fill::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0;
  background-color: rgba(0, 0, 0, 0.02);
  transition: height 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: -1;
}

.a-hover-fill:hover::before {
  height: 100%;
}

/* ------------------------------------------------------------------
   Text slide up (text replaced by duplicate on hover)
   ------------------------------------------------------------------ */
.a-hover-slide {
  position: relative;
  overflow: hidden;
  display: inline-block;
}

.a-hover-slide__text {
  display: block;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.a-hover-slide__text--alt {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  color: #1a1a1a;
}

.a-hover-slide:hover .a-hover-slide__text {
  transform: translateY(-100%);
}

/* ------------------------------------------------------------------
   Glow on hover
   ------------------------------------------------------------------ */
.a-hover-glow {
  transition: box-shadow 0.3s ease;
}

.a-hover-glow:hover {
  box-shadow:
    0 0 20px rgba(0, 0, 0, 0.06),
    0 0 40px rgba(0, 0, 0, 0.02);
}

/* ------------------------------------------------------------------
   3D perspective tilt (for cards, JS sets --tilt-x, --tilt-y)
   ------------------------------------------------------------------ */
.a-hover-3d {
  perspective: 800px;
  transform-style: preserve-3d;
}

.a-hover-3d__inner {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  transform: rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  will-change: transform;
}

.a-hover-3d:hover .a-hover-3d__inner {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

/* ------------------------------------------------------------------
   Image zoom on hover (overflow hidden container)
   ------------------------------------------------------------------ */
.a-hover-zoom {
  overflow: hidden;
}

.a-hover-zoom img,
.a-hover-zoom__image {
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.a-hover-zoom:hover img,
.a-hover-zoom:hover .a-hover-zoom__image {
  transform: scale(1.08);
}

/* ------------------------------------------------------------------
   Diagonal shine sweep
   ------------------------------------------------------------------ */
.a-hover-shine {
  position: relative;
  overflow: hidden;
}

.a-hover-shine::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.15) 50%,
    transparent 100%
  );
  transform: skewX(-25deg);
  transition: none;
  z-index: 1;
}

.a-hover-shine:hover::before {
  animation: shineSwipe 0.6s ease forwards;
}

@keyframes shineSwipe {
  from {
    left: -75%;
  }
  to {
    left: 150%;
  }
}

/* ------------------------------------------------------------------
   Lift on hover
   ------------------------------------------------------------------ */
.a-hover-lift {
  transition:
    transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.a-hover-lift:hover {
  transform: translateY(-8px);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.1),
    0 4px 12px rgba(0, 0, 0, 0.06);
}

/* ------------------------------------------------------------------
   Reveal hidden element on hover
   ------------------------------------------------------------------ */
.a-hover-reveal {
  position: relative;
  overflow: hidden;
}

.a-hover-reveal__content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 2;
}

.a-hover-reveal:hover .a-hover-reveal__content {
  transform: translateY(0);
}

/* ==========================================================================
   7. TRANSITION UTILITIES
   ========================================================================== */

.t-fast {
  transition-duration: 150ms !important;
}

.t-base {
  transition-duration: 300ms !important;
}

.t-slow {
  transition-duration: 500ms !important;
}

.t-slower {
  transition-duration: 800ms !important;
}

/* Easing functions */
.t-ease {
  transition-timing-function: ease !important;
}

.t-ease-in {
  transition-timing-function: ease-in !important;
}

.t-ease-out {
  transition-timing-function: ease-out !important;
}

.t-spring {
  transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.t-smooth {
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* ==========================================================================
   8. DELAY UTILITIES
   ========================================================================== */

/* Data attribute delays (100ms increments) */
[data-animate-delay="100"] { transition-delay: 100ms; }
[data-animate-delay="200"] { transition-delay: 200ms; }
[data-animate-delay="300"] { transition-delay: 300ms; }
[data-animate-delay="400"] { transition-delay: 400ms; }
[data-animate-delay="500"] { transition-delay: 500ms; }
[data-animate-delay="600"] { transition-delay: 600ms; }
[data-animate-delay="700"] { transition-delay: 700ms; }
[data-animate-delay="800"] { transition-delay: 800ms; }
[data-animate-delay="900"] { transition-delay: 900ms; }
[data-animate-delay="1000"] { transition-delay: 1000ms; }

/* Class-based delays */
.delay-1 { transition-delay: 100ms; animation-delay: 100ms; }
.delay-2 { transition-delay: 200ms; animation-delay: 200ms; }
.delay-3 { transition-delay: 300ms; animation-delay: 300ms; }
.delay-4 { transition-delay: 400ms; animation-delay: 400ms; }
.delay-5 { transition-delay: 500ms; animation-delay: 500ms; }
.delay-6 { transition-delay: 600ms; animation-delay: 600ms; }
.delay-7 { transition-delay: 700ms; animation-delay: 700ms; }
.delay-8 { transition-delay: 800ms; animation-delay: 800ms; }
.delay-9 { transition-delay: 900ms; animation-delay: 900ms; }
.delay-10 { transition-delay: 1000ms; animation-delay: 1000ms; }

/* Duration variants */
[data-animate-duration="fast"] {
  transition-duration: 0.3s;
}

[data-animate-duration="slow"] {
  transition-duration: 0.9s;
}

[data-animate-duration="slower"] {
  transition-duration: 1.2s;
}

/* ==========================================================================
   9. REDUCED MOTION - Disable ALL animations
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {

  /* Scroll reveal: show immediately */
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
    will-change: auto !important;
  }

  [data-animate].is-visible {
    transition: none !important;
  }

  /* Kill all delays */
  [data-animate-delay],
  [data-animate-stagger] > *,
  [data-stagger] > *,
  [data-stagger-child] {
    transition-delay: 0ms !important;
    animation-delay: 0ms !important;
  }

  /* Kill all class-based delays */
  .delay-1, .delay-2, .delay-3, .delay-4, .delay-5,
  .delay-6, .delay-7, .delay-8, .delay-9, .delay-10 {
    transition-delay: 0ms !important;
    animation-delay: 0ms !important;
  }

  /* Kill stagger children */
  [data-stagger-child] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Kill all continuous animations */
  .a-float,
  .a-pulse,
  .a-spin,
  .a-spin--slow,
  .a-shimmer,
  .a-gradient-shift,
  .a-glow,
  .a-wiggle,
  .a-bounce,
  .a-shake,
  .a-draw-line,
  .a-typewriter,
  .a-text-gradient,
  .a-text-glow {
    animation: none !important;
  }

  /* Kill parallax */
  [data-parallax] {
    transform: none !important;
    transition: none !important;
  }

  /* Kill text animations */
  .a-text-reveal__inner {
    transform: none !important;
    transition: none !important;
  }

  .a-text-split__char {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .a-text-split__word-inner {
    transform: none !important;
    transition: none !important;
  }

  [data-animate="split-up"] .a-text-split-char {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .a-text-scramble__char {
    transition: none !important;
  }

  /* Kill hover effects */
  .a-hover-underline::after,
  .a-hover-underline--center::after,
  .a-hover-fill::before,
  .a-hover-slide__text,
  .a-hover-3d__inner,
  .a-hover-zoom img,
  .a-hover-zoom__image,
  .a-hover-lift,
  .a-hover-reveal__content {
    transition: none !important;
  }

  .a-hover-shine::before {
    display: none;
  }

  .a-ripple__circle {
    animation: none !important;
  }

  .a-magnetic {
    transition: none !important;
    transform: none !important;
  }

  /* Kill hero scroll indicator */
  .s-hero__scroll-line::after {
    animation: none;
  }
}

/* ==========================================================================
   Responsive - Display toggle utilities
   ========================================================================== */

/* ------------------------------------------------------------------
   Show/hide by breakpoint
   sm:  540px
   md:  768px
   lg:  1024px
   xl:  1280px
   ------------------------------------------------------------------ */

/* Show on mobile (SP) only, hide on desktop (PC) */
.u-show-sp {
  display: block;
}

@media (min-width: 1024px) {
  .u-show-sp {
    display: none !important;
  }
}

/* Show on desktop (PC) only, hide on mobile (SP) */
.u-show-pc {
  display: none;
}

@media (min-width: 1024px) {
  .u-show-pc {
    display: block;
  }
}

/* Hide on mobile (SP), show on desktop */
.u-hide-sp {
  display: none;
}

@media (min-width: 1024px) {
  .u-hide-sp {
    display: block;
  }
}

/* Hide on desktop (PC), show on mobile */
.u-hide-pc {
  display: block;
}

@media (min-width: 1024px) {
  .u-hide-pc {
    display: none !important;
  }
}

/* ------------------------------------------------------------------
   Inline variants
   ------------------------------------------------------------------ */
.u-show-sp-inline {
  display: inline;
}

@media (min-width: 1024px) {
  .u-show-sp-inline {
    display: none !important;
  }
}

.u-show-pc-inline {
  display: none;
}

@media (min-width: 1024px) {
  .u-show-pc-inline {
    display: inline;
  }
}

/* Flex variants */
.u-show-sp-flex {
  display: flex;
}

@media (min-width: 1024px) {
  .u-show-sp-flex {
    display: none !important;
  }
}

.u-show-pc-flex {
  display: none;
}

@media (min-width: 1024px) {
  .u-show-pc-flex {
    display: flex;
  }
}

/* ------------------------------------------------------------------
   Tablet breakpoint variants
   ------------------------------------------------------------------ */
.u-show-tablet {
  display: none;
}

@media (min-width: 540px) and (max-width: 1023px) {
  .u-show-tablet {
    display: block;
  }
}

.u-hide-tablet {
  display: block;
}

@media (min-width: 540px) and (max-width: 1023px) {
  .u-hide-tablet {
    display: none !important;
  }
}

/* ------------------------------------------------------------------
   Small breakpoint only
   ------------------------------------------------------------------ */
.u-show-sm {
  display: none;
}

@media (min-width: 540px) {
  .u-show-sm {
    display: block;
  }
}

.u-hide-sm {
  display: block;
}

@media (min-width: 540px) {
  .u-hide-sm {
    display: none !important;
  }
}

/* ------------------------------------------------------------------
   Medium breakpoint
   ------------------------------------------------------------------ */
.u-show-md {
  display: none;
}

@media (min-width: 768px) {
  .u-show-md {
    display: block;
  }
}

.u-hide-md {
  display: block;
}

@media (min-width: 768px) {
  .u-hide-md {
    display: none !important;
  }
}

/* ==========================================================================
   Utilities - Spacing, text, and helper classes
   ========================================================================== */

/* ------------------------------------------------------------------
   Margin top
   ------------------------------------------------------------------ */
.u-mt-xs  { margin-top: var(--space-xs); }
.u-mt-sm  { margin-top: var(--space-sm); }
.u-mt-md  { margin-top: var(--space-md); }
.u-mt-lg  { margin-top: var(--space-lg); }
.u-mt-xl  { margin-top: var(--space-xl); }
.u-mt-2xl { margin-top: var(--space-2xl); }
.u-mt-3xl { margin-top: var(--space-3xl); }

/* ------------------------------------------------------------------
   Margin bottom
   ------------------------------------------------------------------ */
.u-mb-xs  { margin-bottom: var(--space-xs); }
.u-mb-sm  { margin-bottom: var(--space-sm); }
.u-mb-md  { margin-bottom: var(--space-md); }
.u-mb-lg  { margin-bottom: var(--space-lg); }
.u-mb-xl  { margin-bottom: var(--space-xl); }
.u-mb-2xl { margin-bottom: var(--space-2xl); }
.u-mb-3xl { margin-bottom: var(--space-3xl); }

/* ------------------------------------------------------------------
   Padding top
   ------------------------------------------------------------------ */
.u-pt-xs  { padding-top: var(--space-xs); }
.u-pt-sm  { padding-top: var(--space-sm); }
.u-pt-md  { padding-top: var(--space-md); }
.u-pt-lg  { padding-top: var(--space-lg); }
.u-pt-xl  { padding-top: var(--space-xl); }
.u-pt-2xl { padding-top: var(--space-2xl); }
.u-pt-3xl { padding-top: var(--space-3xl); }

/* ------------------------------------------------------------------
   Padding bottom
   ------------------------------------------------------------------ */
.u-pb-xs  { padding-bottom: var(--space-xs); }
.u-pb-sm  { padding-bottom: var(--space-sm); }
.u-pb-md  { padding-bottom: var(--space-md); }
.u-pb-lg  { padding-bottom: var(--space-lg); }
.u-pb-xl  { padding-bottom: var(--space-xl); }
.u-pb-2xl { padding-bottom: var(--space-2xl); }
.u-pb-3xl { padding-bottom: var(--space-3xl); }

/* ------------------------------------------------------------------
   Zero margin/padding
   ------------------------------------------------------------------ */
.u-mt-0 { margin-top: 0; }
.u-mb-0 { margin-bottom: 0; }
.u-pt-0 { padding-top: 0; }
.u-pb-0 { padding-bottom: 0; }

/* ------------------------------------------------------------------
   Text alignment
   ------------------------------------------------------------------ */
.u-text-center { text-align: center; }
.u-text-left   { text-align: left; }
.u-text-right  { text-align: right; }

@media (min-width: 768px) {
  .u-text-center-md { text-align: center; }
  .u-text-left-md   { text-align: left; }
  .u-text-right-md  { text-align: right; }
}

/* ------------------------------------------------------------------
   Text size
   ------------------------------------------------------------------ */
.u-text-xs   { font-size: var(--text-xs); }
.u-text-sm   { font-size: var(--text-sm); }
.u-text-base { font-size: var(--text-base); }
.u-text-lg   { font-size: var(--text-lg); }
.u-text-xl   { font-size: var(--text-xl); }
.u-text-2xl  { font-size: var(--text-2xl); }

/* ------------------------------------------------------------------
   Font weight
   ------------------------------------------------------------------ */
.u-fw-light    { font-weight: var(--fw-light); }
.u-fw-regular  { font-weight: var(--fw-regular); }
.u-fw-medium   { font-weight: var(--fw-medium); }
.u-fw-semibold { font-weight: var(--fw-semibold); }
.u-fw-bold     { font-weight: var(--fw-bold); }

/* ------------------------------------------------------------------
   Text color
   ------------------------------------------------------------------ */
.u-color-brand     { color: var(--color-brand-primary); }
.u-color-secondary { color: var(--color-text-secondary); }
.u-color-muted     { color: var(--color-text-muted); }
.u-color-white     { color: var(--color-text-white); }
.u-color-dark      { color: var(--color-text-primary); }
.u-color-error     { color: var(--color-error); }
.u-color-success   { color: var(--color-success); }

/* ------------------------------------------------------------------
   Line height
   ------------------------------------------------------------------ */
.u-leading-tight    { line-height: var(--leading-tight); }
.u-leading-normal   { line-height: var(--leading-normal); }
.u-leading-relaxed  { line-height: var(--leading-relaxed); }
.u-leading-loose    { line-height: var(--leading-loose); }

/* ------------------------------------------------------------------
   Font family
   ------------------------------------------------------------------ */
.u-font-en { font-family: var(--font-en); }
.u-font-jp { font-family: var(--font-jp); }

/* ------------------------------------------------------------------
   Letter spacing
   ------------------------------------------------------------------ */
.u-tracking-wide   { letter-spacing: var(--tracking-wide); }
.u-tracking-wider  { letter-spacing: var(--tracking-wider); }
.u-tracking-widest { letter-spacing: var(--tracking-widest); }

/* ------------------------------------------------------------------
   Width / Max-width
   ------------------------------------------------------------------ */
.u-w-full  { width: 100%; }
.u-mw-narrow { max-width: var(--container-narrow); margin-left: auto; margin-right: auto; }

/* ------------------------------------------------------------------
   Background
   ------------------------------------------------------------------ */
.u-bg-white  { background-color: var(--color-bg-white); }
.u-bg-accent { background-color: var(--color-bg-accent); }
.u-bg-dark   { background-color: var(--color-bg-dark); }
.u-bg-brand  { background-color: var(--color-brand-primary); }

/* ------------------------------------------------------------------
   Border
   ------------------------------------------------------------------ */
.u-border-top    { border-top: 1px solid var(--color-border); }
.u-border-bottom { border-bottom: 1px solid var(--color-border); }

/* ------------------------------------------------------------------
   Overflow
   ------------------------------------------------------------------ */
.u-overflow-hidden { overflow: hidden; }

/* ------------------------------------------------------------------
   Position
   ------------------------------------------------------------------ */
.u-relative { position: relative; }

/* ------------------------------------------------------------------
   Truncation
   ------------------------------------------------------------------ */
.u-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.u-line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.u-line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ------------------------------------------------------------------
   Aspect ratio
   ------------------------------------------------------------------ */
.u-aspect-16-9  { aspect-ratio: 16 / 9; }
.u-aspect-16-10 { aspect-ratio: 16 / 10; }
.u-aspect-4-3   { aspect-ratio: 4 / 3; }
.u-aspect-1-1   { aspect-ratio: 1 / 1; }

/* ------------------------------------------------------------------
   Misc
   ------------------------------------------------------------------ */
.u-mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.u-block { display: block; }
.u-inline-block { display: inline-block; }
.u-flex { display: flex; }
.u-grid { display: grid; }
.u-hidden { display: none; }

/* ==========================================================================
   Preview Overrides
   Styles specific to static HTML preview files only.
   NOT for production WordPress deployment.
   ========================================================================== */

/* ----- Dev Toolbar ----- */
.preview-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  background: rgba(26, 26, 46, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: 12px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.preview-nav__title {
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-brand-light);
  letter-spacing: 0.1em;
  white-space: nowrap;
  padding-right: 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.preview-nav a {
  font-family: var(--font-en);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding: 4px 10px;
  border-radius: 100px;
  transition: all 0.2s;
}

.preview-nav a:hover {
  color: #fff;
  background: rgba(0, 0, 0, 0.06);
}

/* Dev toolbar offset for header and body */
body.has-preview-nav {
  padding-top: 52px;
}

body.has-preview-nav .l-header {
  top: 52px;
}

/* ----- Placeholder Images ----- */
.preview-img {
  background: linear-gradient(135deg, #e8e8e8 0%, #f0f0f0 40%, #f5f5f5 60%, #e8e8e8 100%);
  background-size: 200% 200%;
  animation: imgShimmer 6s ease infinite;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  font-family: var(--font-en);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@keyframes imgShimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* ----- Preview Section Label ----- */
.preview-label {
  display: none !important;
}

/* ----- Page Hero for preview pages (light theme) ----- */
.s-hero--page {
  position: relative;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--color-bg-accent);
  overflow: hidden;
}

.s-hero--page::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(0, 0, 0, 0.025) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, rgba(0, 0, 0, 0.02) 0%, transparent 50%);
  pointer-events: none;
}

.s-hero--page .s-hero__content {
  position: relative;
  z-index: 2;
  padding: var(--space-3xl) var(--container-padding);
}

.s-hero--page .s-hero__subtitle {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-brand-secondary) !important;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.s-hero--page .s-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  letter-spacing: 0.02em;
  line-height: var(--leading-tight);
}

/* Override dark inline overlay on sub-page heroes for light theme */
.s-hero--page .s-hero__overlay {
  background: linear-gradient(
    to top,
    rgba(247, 247, 247, 0.6) 0%,
    rgba(247, 247, 247, 0.15) 100%
  ) !important;
}

/* Breadcrumb light theme override (sub-page heroes use --white class from dark theme) */
.s-hero--page .c-breadcrumb--white {
  color: var(--color-text-secondary);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__link,
.s-hero--page .c-breadcrumb--white .c-breadcrumb__home {
  color: var(--color-text-muted);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__link:hover,
.s-hero--page .c-breadcrumb--white .c-breadcrumb__home:hover {
  color: var(--color-brand-primary);
}

.s-hero--page .c-breadcrumb--white .c-breadcrumb__current {
  color: var(--color-text-primary);
}

/* ----- Common CTA Final Section (Dark Immersive) ----- */
.s-cta-final {
  position: relative;
  background: linear-gradient(180deg, #252525 0%, #202020 100%);
  overflow: hidden;
}

.s-cta-final .l-container {
  position: relative;
  z-index: 2;
  text-align: center;
}

/* ----- Header nav display for preview ----- */
@media (max-width: 1023px) {
  .l-header__nav {
    display: none;
  }
  .l-header__cta-btn {
    display: none;
  }
}

@media (min-width: 1024px) {
  .l-header__hamburger {
    display: none;
  }
}

/* ----- Header menu layout ----- */
.l-header__menu {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ==========================================================================
   Mobile Menu (Preview HTML class names)
   Maps .l-mobile-menu* classes used in preview HTML.
   ========================================================================== */

/* Container: hidden by default */
.l-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Visible state (JS adds .is-open) */
.l-mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
}

/* Dark overlay */
.l-mobile-menu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.l-mobile-menu.is-open .l-mobile-menu__overlay {
  opacity: 1;
}

/* Slide-in panel */
.l-mobile-menu__inner {
  position: absolute;
  top: 0;
  right: 0;
  width: min(380px, 85vw);
  height: 100%;
  background: var(--color-bg-white, #fff);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
}

.l-mobile-menu.is-open .l-mobile-menu__inner {
  transform: translateX(0);
}

/* Header with logo and close btn */
.l-mobile-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-lg, 24px) var(--space-xl, 32px);
  border-bottom: 1px solid var(--color-border-light, #eee);
  flex-shrink: 0;
}

.l-mobile-menu__logo img {
  height: 28px;
  width: auto;
}

/* Close button */
.l-mobile-menu__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: var(--radius-full, 50%);
  transition: background 0.2s ease;
}

.l-mobile-menu__close:hover {
  background: var(--color-bg-accent, #f5f5f5);
}

.l-mobile-menu__close-icon {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
}

.l-mobile-menu__close-line {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--color-text-primary, #333);
  border-radius: 1px;
}

.l-mobile-menu__close-line:first-child {
  transform: translateY(-50%) rotate(45deg);
}

.l-mobile-menu__close-line:last-child {
  transform: translateY(-50%) rotate(-45deg);
}

/* Navigation body */
.l-mobile-menu__body {
  flex: 1;
  padding: var(--space-lg, 24px) var(--space-xl, 32px);
}

.l-mobile-menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Menu items with stagger animation */
.l-mobile-menu__item {
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(1) { opacity: 1; transform: none; transition-delay: 0.12s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.18s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.24s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(4) { opacity: 1; transform: none; transition-delay: 0.30s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(5) { opacity: 1; transform: none; transition-delay: 0.36s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(6) { opacity: 1; transform: none; transition-delay: 0.42s; }
.l-mobile-menu.is-open .l-mobile-menu__item:nth-child(7) { opacity: 1; transform: none; transition-delay: 0.48s; }

/* Menu links */
.l-mobile-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md, 16px) 0;
  font-size: var(--text-lg, 18px);
  font-weight: var(--fw-medium, 500);
  color: var(--color-text-primary, #1a1a2e);
  text-decoration: none;
  border-bottom: 1px solid var(--color-border-light, #eee);
  transition: color 0.2s ease;
}

.l-mobile-menu__link:hover {
  color: var(--color-brand-primary, #8BA4C8);
}

/* Arrow indicator */
.l-mobile-menu__link::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.4;
  flex-shrink: 0;
  margin-left: var(--space-sm, 8px);
}

/* Sub-menu */
.l-mobile-menu__item--has-children > .l-mobile-menu__link::after {
  transform: rotate(135deg);
}

.l-mobile-menu__sublist {
  list-style: none;
  margin: 0;
  padding: 0 0 var(--space-sm, 8px) var(--space-lg, 24px);
}

.l-mobile-menu__sublink {
  display: block;
  padding: var(--space-sm, 8px) 0;
  font-size: var(--text-base, 16px);
  color: var(--color-text-secondary, #666);
  text-decoration: none;
  transition: color 0.2s ease;
}

.l-mobile-menu__sublink:hover {
  color: var(--color-brand-primary, #8BA4C8);
}

/* Footer CTA */
.l-mobile-menu__footer {
  padding: var(--space-lg, 24px) var(--space-xl, 32px);
  border-top: 1px solid var(--color-border-light, #eee);
  flex-shrink: 0;
}

/* Body scroll lock when menu is open */
body.is-menu-open {
  overflow: hidden;
}

/* Preview nav offset for mobile menu */
body.has-preview-nav .l-mobile-menu {
  top: 52px;
}

/* ==========================================================================
   Footer Preview Overrides
   Inline footer class names used in preview HTML files.
   ========================================================================== */

/* Preview HTML footer uses direct .l-footer without .l-footer__main wrapper.
   These styles bridge the gap between theme CSS structure and preview HTML. */
.l-footer {
  padding: var(--space-4xl, 64px) 0 var(--space-xl, 32px);
}

.l-footer__grid {
  margin-bottom: var(--space-3xl, 48px);
}

/* Preview HTML uses .l-footer__brand as a text/logo container,
   not the grid-column version in theme CSS */
.l-footer .l-footer__brand {
  grid-column: auto;
}

.l-footer__link {
  display: block;
  font-size: var(--text-sm, 14px);
  color: var(--color-text-muted);
  margin-bottom: var(--space-sm, 8px);
  text-decoration: none;
  transition: color 0.2s ease;
}

.l-footer__link:hover {
  color: var(--color-brand-primary);
}

.l-footer__bottom {
  border-top: 1px solid var(--color-border-light);
  padding-top: var(--space-xl, 32px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md, 16px);
}

.l-footer__copy {
  font-size: var(--text-xs, 12px);
  color: var(--color-text-muted);
  font-family: var(--font-en);
}

/* ==========================================================================
   Footer Social Icons
   Override inline dark-theme styles used in preview HTML files.
   The HTML uses inline styles with dark-theme values (rgba white backgrounds)
   that are invisible on the light footer background (#f7f7f7).
   Using !important to override these inline styles.
   ========================================================================== */

/* Class-based social icons (used in preview-blog.html) */
.l-footer__social-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-bg-white) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted) !important;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  font-size: 14px;
  border: 1px solid var(--color-border-light);
}

.l-footer__social-icon:hover {
  background: var(--color-brand-primary) !important;
  color: var(--color-text-white) !important;
  border-color: var(--color-brand-primary);
}

/* Override inline-styled social links inside footer.
   Preview HTML has <a> tags with inline style using dark-theme
   background: rgba(255,255,255,0.08) and color: rgba(255,255,255,0.5)
   which are invisible on the light #f7f7f7 footer background. */
.l-footer__grid > div:first-child > div:last-child > a[title] {
  background: var(--color-bg-white, #ffffff) !important;
  color: var(--color-text-muted, #8a8a9e) !important;
  border: 1px solid var(--color-border-light, #E8EDF5);
  transition: background 0.2s, color 0.2s, border-color 0.2s !important;
}

.l-footer__grid > div:first-child > div:last-child > a[title]:hover {
  background: var(--color-brand-primary, #8BA4C8) !important;
  color: var(--color-text-white, #ffffff) !important;
  border-color: var(--color-brand-primary, #8BA4C8);
}

/* Ensure footer social wrapper allows wrapping on mobile */
.l-footer__grid > div:first-child > div:last-child {
  flex-wrap: wrap;
}

/* ==========================================================================
   Skip Link (Accessibility)
   ========================================================================== */
.c-skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 99999;
  padding: 8px 16px;
  background: var(--color-brand-primary);
  color: #fff;
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  text-decoration: none;
  transition: top 0.2s;
}
.c-skip-link:focus {
  top: 16px;
}

/* ==========================================================================
   Notification Bar - Preview Toolbar Offset
   ========================================================================== */

/* Push notification bar below the preview toolbar */
body.has-preview-nav .c-notification-bar {
  top: 52px;
}

/* When both preview nav AND notification bar are present */
body.has-preview-nav.has-notification-bar .l-header {
  top: 96px;
}

body.has-preview-nav.has-notification-bar {
  padding-top: 96px;
}

@media (max-width: 768px) {
  body.has-preview-nav.has-notification-bar .l-header {
    top: 92px;
  }
  body.has-preview-nav.has-notification-bar {
    padding-top: 92px;
  }
}

/* Notification bar — Blue accent */
.c-notification-bar {
  background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 50%, #1e40af 100%) !important;
  border-bottom: 1px solid rgba(37, 99, 235, 0.3) !important;
}

.c-notification-bar__text {
  color: rgba(255, 255, 255, 0.95) !important;
}

.c-notification-bar__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
  margin-right: var(--space-sm);
  background-color: rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

.c-notification-bar__close {
  color: rgba(255, 255, 255, 0.7) !important;
}

.c-notification-bar__close:hover {
  color: #ffffff !important;
}

.c-notification-bar__action {
  flex-shrink: 0;
  white-space: nowrap;
  background-color: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

.c-notification-bar__action:hover {
  background-color: rgba(255, 255, 255, 0.25) !important;
}

/* ==========================================================================
   Section Divider - Color Variants (base in _front-page.css)
   ========================================================================== */
.c-section-divider--dark {
  color: var(--color-bg-accent);
}

.c-section-divider--accent {
  color: var(--color-bg-accent);
}

.c-section-divider--white {
  color: var(--color-bg-white);
}

/* ==========================================================================
   Ghost Button on Light Backgrounds
   ========================================================================== */
.l-section--dark .c-btn--ghost,
.s-cta .c-btn--ghost {
  color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
}

.l-section--dark .c-btn--ghost:hover,
.s-cta .c-btn--ghost:hover {
  background-color: var(--color-brand-primary);
  color: var(--color-text-white);
  border-color: var(--color-brand-primary);
}

/* Ghost button on dark CTA - white text/border */
.s-cta-final .c-btn--ghost {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.4);
}

.s-cta-final .c-btn--ghost:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.6);
}

/* Primary button on dark CTA - inverted white bg */
.s-cta-final .c-btn--primary {
  background-color: #ffffff !important;
  color: #0a0a0a !important;
  border-color: #ffffff !important;
}

.s-cta-final .c-btn--primary:hover {
  background-color: rgba(255, 255, 255, 0.88) !important;
  color: #0a0a0a !important;
  border-color: rgba(255, 255, 255, 0.88) !important;
}

/* Section label on dark CTA */
.s-cta-final .c-section-label {
  color: rgba(255, 255, 255, 0.4);
}

/* ==========================================================================
   CEO Section
   ========================================================================== */
.s-ceo__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

@media (min-width: 768px) {
  .s-ceo__grid {
    grid-template-columns: 1fr 1.4fr;
    gap: var(--space-3xl);
    align-items: center;
  }
}

.s-ceo__image {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}

@media (min-width: 768px) {
  .s-ceo__image {
    aspect-ratio: 4 / 5;
  }
}

.s-ceo__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-xl);
}

.s-ceo__name {
  font-size: var(--text-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-text-primary);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-xs);
}

.s-ceo__role {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-xl);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border-light);
}

.s-ceo__text {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-loose);
}

.s-ceo__media {
  margin-top: var(--space-2xl);
  padding: var(--space-xl);
  background: var(--color-bg-accent);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-light);
}

.s-ceo__media-title {
  font-family: var(--font-en);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
}

.s-ceo__media-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-sm);
}

.s-ceo__media-list li {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  padding-left: 1.25rem;
  position: relative;
  line-height: var(--leading-relaxed);
}

.s-ceo__media-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 1px;
  background: var(--color-text-muted);
}

/* ==========================================================================
   Before/After Comparison - Preview Aspect Ratio Override
   ========================================================================== */
.c-compare[style*="aspect-ratio"] {
  aspect-ratio: unset;
}

/* ==========================================================================
   Dark Achievement Marquee (below CTA, before footer)
   ========================================================================== */
.c-marquee {
  background: #252525;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: none;
}

.c-marquee .c-marquee__item {
  color: rgba(255, 255, 255, 0.1);
  font-size: var(--text-sm, 14px);
  font-weight: var(--fw-semibold, 600);
  letter-spacing: 0.08em;
}

.c-marquee .c-marquee__separator {
  background-color: rgba(255, 255, 255, 0.15);
  opacity: 1;
}

/* Fade edges on dark */
.c-marquee::before {
  background: linear-gradient(to right, #252525 0%, transparent 100%);
}

.c-marquee::after {
  background: linear-gradient(to left, #252525 0%, transparent 100%);
}

/* ==========================================================================
   Dark Footer (dramatic ending)
   ========================================================================== */
.l-footer {
  background-color: #202020 !important;
  color: rgba(255, 255, 255, 0.7);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.l-footer .l-footer__desc {
  color: rgba(255, 255, 255, 0.6);
}

.l-footer .l-footer__heading {
  color: rgba(255, 255, 255, 0.9);
}

.l-footer .l-footer__link,
.l-footer .l-footer__nav-link {
  color: rgba(255, 255, 255, 0.45);
}

.l-footer .l-footer__link:hover,
.l-footer .l-footer__nav-link:hover {
  color: #ffffff;
}

.l-footer .l-footer__bottom {
  border-top-color: rgba(255, 255, 255, 0.1);
}

.l-footer .l-footer__copy,
.l-footer .l-footer__copyright {
  color: rgba(255, 255, 255, 0.4);
}

/* Footer social icons on dark bg */
.l-footer .l-footer__social-icon {
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.l-footer .l-footer__social-icon:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4);
}

/* Override inline-styled social links on dark footer */
.l-footer__grid > div:first-child > div:last-child > a[title] {
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.l-footer__grid > div:first-child > div:last-child > a[title]:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

/* Footer logo - invert for dark background */
.l-footer .l-footer__brand img,
.l-footer__grid > div:first-child .l-footer__brand img {
  filter: brightness(0) invert(1);
  opacity: 0.9;
}

/* ==========================================================================
   Dark Body Theme - All sections except header
   Header stays white, everything else dark.
   ========================================================================== */

/* ----- Hero Dark ----- */
.s-hero--top {
  background: linear-gradient(180deg, #2a2a2a 0%, #2e2e2e 50%, #2c2c2c 100%) !important;
}
.s-hero__heading { color: #ffffff !important; }
.s-hero__subheading { color: rgba(255, 255, 255, 0.65) !important; }
.s-hero__label-text { color: rgba(255, 255, 255, 0.6) !important; }
.s-hero__label-line { background: linear-gradient(90deg, var(--color-accent-yellow), rgba(200, 169, 110, 0.3)) !important; }
.s-hero__side-text { color: rgba(255, 255, 255, 0.04) !important; }
.s-hero__scroll-text { color: rgba(255, 255, 255, 0.4) !important; }
.s-hero__scroll-line { background: rgba(255, 255, 255, 0.1) !important; }
.s-hero__scroll-line::after { background: linear-gradient(to bottom, transparent, var(--color-accent-yellow)) !important; }
.s-hero__bg-rule { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent) !important; }
.s-hero__bg-vline { background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, 0.05) 20%, rgba(255, 255, 255, 0.05) 80%, transparent 100%) !important; }
.s-hero__grain { opacity: 0.015 !important; }

/* Hero orbs dark */
.s-hero__bg-orb--1 { background: radial-gradient(circle, rgba(80, 100, 140, 0.12) 0%, transparent 70%) !important; }
.s-hero__bg-orb--2 { background: radial-gradient(circle, rgba(80, 100, 140, 0.08) 0%, transparent 70%) !important; }
.s-hero__bg-orb--3 { background: radial-gradient(circle, rgba(200, 169, 110, 0.06) 0%, transparent 70%) !important; }

/* Hero trust bar dark glass */
.s-hero__trust {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3) !important;
}
.s-hero__trust-number { color: #ffffff !important; }
.s-hero__trust-unit { color: rgba(255, 255, 255, 0.7) !important; }
.s-hero__trust-label { color: rgba(255, 255, 255, 0.6) !important; }
.s-hero__trust-divider { background: linear-gradient(to bottom, transparent 15%, rgba(255, 255, 255, 0.1) 50%, transparent 85%) !important; }

/* Hero buttons dark - inverted */
.s-hero__btn-primary {
  background: #ffffff !important;
  color: #0a0a0a !important;
  border-color: #ffffff !important;
}
.s-hero__btn-primary:hover {
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(255, 255, 255, 0.9) !important;
  color: #0a0a0a !important;
}
.s-hero__btn-outline {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  background: transparent !important;
}
.s-hero__btn-outline:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
  color: #ffffff !important;
}

/* ----- Sub-page hero dark ----- */
.s-hero--page {
  background-color: #292929 !important;
  background: linear-gradient(180deg, #2a2a2a 0%, #292929 100%) !important;
}
.s-hero--page::before {
  background:
    radial-gradient(ellipse at 30% 50%, rgba(255, 255, 255, 0.015) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, rgba(255, 255, 255, 0.01) 0%, transparent 50%) !important;
}
.s-hero--page .s-hero__title { color: #ffffff !important; }
.s-hero--page .s-hero__subtitle { color: var(--color-accent-yellow) !important; opacity: 0.7; }
.s-hero--page .s-hero__heading { color: #ffffff !important; }
.s-hero--page .s-hero__overlay {
  background: linear-gradient(to top, rgba(14, 14, 14, 0.6) 0%, rgba(14, 14, 14, 0.15) 100%) !important;
}
.s-hero--page .c-breadcrumb--white { color: rgba(255, 255, 255, 0.6) !important; }
.s-hero--page .c-breadcrumb--white .c-breadcrumb__link,
.s-hero--page .c-breadcrumb--white .c-breadcrumb__home { color: rgba(255, 255, 255, 0.6) !important; }
.s-hero--page .c-breadcrumb--white .c-breadcrumb__link:hover,
.s-hero--page .c-breadcrumb--white .c-breadcrumb__home:hover { color: rgba(255, 255, 255, 0.7) !important; }
.s-hero--page .c-breadcrumb--white .c-breadcrumb__current { color: rgba(255, 255, 255, 0.7) !important; }

/* ----- Marquee under hero - dark ----- */
.s-marquee {
  background: #292929 !important;
  border-bottom-color: rgba(255, 255, 255, 0.05) !important;
}
.s-marquee__track { color: rgba(255, 255, 255, 0.05) !important; }
.s-marquee__dot { background: rgba(255, 255, 255, 0.12) !important; }

/* ----- Body + ALL sections dark ----- */
body {
  background-color: #2c2c2c !important;
}
.l-main {
  background-color: #2c2c2c !important;
}
.l-section {
  background-color: #2c2c2c !important;
}
.l-section--accent {
  background-color: #292929 !important;
}

/* ==========================================================================
   CSS Variable Overrides for Dark Sections
   Override CSS custom properties so ALL elements inside dark sections
   automatically inherit dark-appropriate colors. This fixes inline <style>
   blocks in preview HTML pages that use light-theme variables.
   ========================================================================== */
.l-section,
.l-section--accent,
.s-hero--page,
.s-ceo,
.s-recruit-cta,
.s-partners {
  --color-text-primary: #ffffff;
  --color-text-secondary: rgba(255, 255, 255, 0.7);
  --color-text-muted: rgba(255, 255, 255, 0.5);
  --color-bg-white: rgba(255, 255, 255, 0.05);
  --color-bg-accent: rgba(255, 255, 255, 0.04);
  --color-bg: #2c2c2c;
  --color-bg-subtle: rgba(255, 255, 255, 0.06);
  --color-border: rgba(255, 255, 255, 0.1);
  --color-border-light: rgba(255, 255, 255, 0.08);
  --color-brand-dark: rgba(255, 255, 255, 0.8);
  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.3);
  --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.4);
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
  color: rgba(255, 255, 255, 0.85);
}

/* Section headings on dark */
.l-section .c-section-heading__en,
.s-ceo .c-section-heading__en { color: rgba(255, 255, 255, 0.1) !important; }
.l-section .c-section-heading__ja,
.s-ceo .c-section-heading__ja { color: #ffffff !important; }
.l-section .c-section-heading__desc { color: rgba(255, 255, 255, 0.7) !important; }
.l-section .c-section-label { color: rgba(255, 255, 255, 0.6) !important; }

/* ----- Cards on dark ----- */
.l-section .c-card,
.l-section .c-card--gradient-border {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.l-section .c-card:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.l-section .c-card--gradient-border::before {
  background: linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04)) !important;
}
.l-section .c-card__title { color: #ffffff !important; }
.l-section .c-card__text { color: rgba(255, 255, 255, 0.7) !important; }
.l-section .c-card__category { color: var(--color-accent-yellow) !important; opacity: 0.7; }
.l-section .c-card__link { color: rgba(255, 255, 255, 0.65) !important; }
.l-section .c-card__date { color: rgba(255, 255, 255, 0.6) !important; }

/* Preview placeholder images on dark */
.l-section .preview-img,
.s-ceo .preview-img {
  background: linear-gradient(135deg, #2a2a2a 0%, #2a2a2a 40%, #303030 60%, #2a2a2a 100%) !important;
  color: rgba(255, 255, 255, 0.4) !important;
}

/* ----- MVV on dark ----- */
.s-mvv__slogan { color: #ffffff !important; }
.s-mvv__slogan-highlight { color: var(--color-accent-yellow) !important; }
.s-mvv__intro-text { color: rgba(255, 255, 255, 0.7) !important; }
.s-mvv__tagline { color: rgba(255, 255, 255, 0.6) !important; }
.s-mvv .s-mvv__logo img { filter: brightness(0) invert(1); opacity: 0.9; }
.s-mvv__block {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.s-mvv__block:hover {
  border-color: rgba(255, 255, 255, 0.12) !important;
}
.s-mvv__block-label { color: rgba(255, 255, 255, 0.6) !important; }
.s-mvv__block-label-icon { color: var(--color-accent-yellow) !important; }
.s-mvv__block-heading { color: #ffffff !important; }
.s-mvv__block-text { color: rgba(255, 255, 255, 0.7) !important; }
.s-mvv__pillar { border-color: rgba(255, 255, 255, 0.06) !important; }
.s-mvv__pillar:hover { background: rgba(255, 255, 255, 0.05) !important; }
.s-mvv__pillar-icon { color: var(--color-accent-yellow) !important; }
.s-mvv__pillar-title { color: #ffffff !important; }
.s-mvv__pillar-desc { color: rgba(255, 255, 255, 0.7) !important; }
.s-mvv__connector-line { background: rgba(255, 255, 255, 0.06) !important; }
.s-mvv__point-number {
  background: rgba(255, 255, 255, 0.05) !important;
  color: var(--color-accent-yellow) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.s-mvv__point-title { color: #ffffff !important; }
.s-mvv__point-text { color: rgba(255, 255, 255, 0.7) !important; }
.s-mvv__values-label { color: var(--color-accent-yellow) !important; }
.s-mvv__values-title { color: #ffffff !important; }
.s-mvv__values-subtitle { color: rgba(255, 255, 255, 0.6) !important; }
.s-mvv__value-card {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.s-mvv__value-card:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
  background: rgba(255, 255, 255, 0.04) !important;
}
.s-mvv__value-number { color: rgba(255, 255, 255, 0.1) !important; }
.s-mvv__value-icon { color: rgba(255, 255, 255, 0.7) !important; }
.s-mvv__value-title { color: #ffffff !important; }
.s-mvv__value-en { color: rgba(255, 255, 255, 0.4) !important; }
.s-mvv__value-desc { color: rgba(255, 255, 255, 0.7) !important; }

/* ----- Numbers on dark ----- */
.s-numbers__item {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.s-numbers__item:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
}
.s-numbers__value { color: #ffffff !important; }
.s-numbers__unit { color: rgba(255, 255, 255, 0.7) !important; }
.s-numbers__label { color: rgba(255, 255, 255, 0.7) !important; }

/* ----- CEO on dark ----- */
.s-ceo__name { color: #ffffff !important; }
.s-ceo__name span { color: rgba(255, 255, 255, 0.4) !important; }
.s-ceo__role { color: rgba(255, 255, 255, 0.6) !important; border-bottom-color: rgba(255, 255, 255, 0.1) !important; }
.s-ceo__text { color: rgba(255, 255, 255, 0.7) !important; }
.s-ceo__image { box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4) !important; }
.s-ceo__media {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.s-ceo__media-title { color: rgba(255, 255, 255, 0.6) !important; }
.s-ceo__media-list li { color: rgba(255, 255, 255, 0.7) !important; }
.s-ceo__media-list li::before { background: rgba(255, 255, 255, 0.25) !important; }

/* ----- Testimonials on dark ----- */
.c-testimonial {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}
.c-testimonial:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}
.c-testimonial::before { color: rgba(255, 255, 255, 0.1) !important; }
.c-testimonial__text { color: rgba(255, 255, 255, 0.7) !important; }
.c-testimonial__author { border-top-color: rgba(255, 255, 255, 0.1) !important; }
.c-testimonial__name { color: #ffffff !important; }
.c-testimonial__role { color: rgba(255, 255, 255, 0.6) !important; }
.c-testimonial .preview-img {
  background: linear-gradient(135deg, #2a2a2a, #303030) !important;
  color: rgba(255, 255, 255, 0.4) !important;
}

/* ----- FAQ on dark ----- */
.c-accordion {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}
.c-accordion__item { border-bottom-color: rgba(255, 255, 255, 0.06) !important; }
.c-accordion__header {
  background: transparent !important;
  color: #ffffff !important;
}
.c-accordion__header:hover { background: rgba(255, 255, 255, 0.05) !important; }
.c-accordion__icon::before,
.c-accordion__icon::after { background: rgba(255, 255, 255, 0.6) !important; }
.c-accordion__body { color: rgba(255, 255, 255, 0.7) !important; }
.c-accordion__body p { color: rgba(255, 255, 255, 0.7) !important; }

/* ----- Partners on dark ----- */
.s-partners {
  background: #292929 !important;
  border-top-color: rgba(255, 255, 255, 0.05) !important;
  border-bottom-color: rgba(255, 255, 255, 0.05) !important;
}
.s-partners__logo { color: rgba(255, 255, 255, 0.4) !important; }

/* ----- Recruit CTA on dark ----- */
.s-recruit-cta {
  background: #2c2c2c !important;
}
.s-recruit-cta__title { color: #ffffff !important; }
.s-recruit-cta__text { color: rgba(255, 255, 255, 0.7) !important; }

/* ----- Section line dark ----- */
.c-section-line {
  border-color: rgba(255, 255, 255, 0.06) !important;
}

/* ----- Buttons in dark sections ----- */
.l-section .c-btn--primary,
.s-recruit-cta .c-btn--primary {
  background-color: #ffffff !important;
  color: #0a0a0a !important;
  border-color: #ffffff !important;
}
.l-section .c-btn--primary:hover,
.s-recruit-cta .c-btn--primary:hover {
  background-color: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(255, 255, 255, 0.9) !important;
  color: #0a0a0a !important;
}
.l-section .c-btn--secondary,
.l-section .c-btn--outline {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  background: transparent !important;
}
.l-section .c-btn--secondary:hover,
.l-section .c-btn--outline:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #ffffff !important;
}

/* ----- Wave dividers - hidden in dark theme (same-color = invisible, avoids sub-pixel seam) ----- */
.c-section-divider,
.c-section-divider--wave,
.c-section-divider--accent,
.c-section-divider--white {
  display: none !important;
}

/* ----- Floating CTA on dark page ----- */
.c-floating-cta__btn {
  background-color: #ffffff !important;
  color: #0a0a0a !important;
  box-shadow:
    0 4px 20px rgba(0, 0, 0, 0.25),
    0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
.c-floating-cta__btn:hover {
  background-color: #f0f0f0 !important;
  color: #0a0a0a !important;
}
.c-floating-cta__btn:focus-visible {
  outline-color: #ffffff !important;
}

/* ----- Focus outlines on dark page ----- */
.l-section .c-btn:focus-visible {
  outline-color: rgba(255, 255, 255, 0.7) !important;
}

/* ----- Back-to-top on dark page ----- */
.c-back-to-top {
  color: rgba(255, 255, 255, 0.6) !important;
}
.c-back-to-top:hover {
  color: #ffffff !important;
}

/* ==========================================================================
   Page-Specific Dark Theme Overrides
   Fixes invisible text and wrong backgrounds in inline <style> blocks
   within preview HTML pages.
   ========================================================================== */

/* ----- Services Page: Sticky Nav ----- */
.s-services-nav {
  background: #2c2c2c !important;
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
.s-services-nav__link {
  color: rgba(255, 255, 255, 0.6) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.s-services-nav__link:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
}
.s-services-intro__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-service-detail__title {
  color: #ffffff !important;
}
.s-service-detail__desc {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-service-detail__feature {
  color: rgba(255, 255, 255, 0.85) !important;
}
.s-service-detail__tagline {
  color: var(--color-accent-yellow) !important;
  opacity: 0.8;
}
.s-service-detail:nth-child(even) {
  background: rgba(255, 255, 255, 0.02) !important;
}

/* Services comparison table on dark */
.c-table--comparison th,
.c-table--comparison td {
  border-color: rgba(255, 255, 255, 0.1) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}
.c-table--comparison thead th {
  background-color: rgba(255, 255, 255, 0.06) !important;
  color: #ffffff !important;
}
.c-table--comparison tbody td:first-child {
  background-color: rgba(255, 255, 255, 0.03) !important;
}
.c-table--comparison .is-recommended {
  background-color: rgba(139, 164, 200, 0.1) !important;
}
.c-table--comparison thead .is-recommended {
  background-color: rgba(139, 164, 200, 0.2) !important;
  color: #ffffff !important;
}
.c-table-wrapper {
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.c-badge--accent {
  background-color: var(--color-accent-yellow, #E8D06C) !important;
  color: #1a1a1a !important;
}

/* ----- About Page: Philosophy, Mission/Vision, Timeline ----- */
.s-philosophy__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-mission-vision__label {
  background-color: rgba(255, 255, 255, 0.06) !important;
}
.s-mission-vision__card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.s-mission-vision__card::before {
  background: linear-gradient(90deg, rgba(139, 164, 200, 0.6), rgba(200, 169, 110, 0.4)) !important;
}
.s-mission-vision__title {
  color: #ffffff !important;
}
.s-mission-vision__desc {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* Timeline on dark */
.s-timeline__body::before {
  background: rgba(255, 255, 255, 0.1) !important;
}
.s-timeline__marker {
  background: #2c2c2c !important;
  border-color: var(--color-accent-yellow) !important;
}
.s-timeline__card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.s-timeline__title {
  color: #ffffff !important;
}
.s-timeline__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-timeline__month {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* ----- S.Tep Page: Feature cards, plans, support, instructor ----- */
.p-step__feature-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__feature-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-step__feature-label {
  color: rgba(255, 255, 255, 0.6) !important;
}
.p-step__instructor-name {
  color: #ffffff !important;
}
.p-step__instructor-role {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-step__instructor-text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-step__plan-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__plan-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-step__plan-number {
  color: #ffffff !important;
}
.p-step__plan-name {
  color: #ffffff !important;
}
.p-step__plan-desc {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-step__plan-items li {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-step__support-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__support-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-step__support-title {
  color: #ffffff !important;
}
.p-step__support-desc {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-step__bonus-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__bonus-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-step__bonus-number {
  color: #1a1a1a !important;
}
.p-step__bonus-name {
  color: #ffffff !important;
}
.p-step__bonus-desc {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-step__result-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__result-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-step__result-name {
  color: #ffffff !important;
}
.p-step__result-text {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-step__rule-number {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.p-step__rule-text {
  color: #ffffff !important;
}
.p-step__comparison-table th,
.p-step__comparison-table td {
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
.p-step__comparison-table thead th {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.p-step__comparison-table tbody td:first-child {
  color: #ffffff !important;
}
.p-step__comparison-highlight {
  background: rgba(255, 255, 255, 0.03) !important;
}
.p-step__target-col {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-step__target-heading {
  color: #ffffff !important;
}
.p-step__target-col--bad {
  border-top-color: rgba(255, 255, 255, 0.2) !important;
}

/* ----- Samurai Beauty Page: Pricing, Stats, Reviews ----- */
.p-beauty__intro-stat {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-beauty__intro-stat-label {
  color: rgba(255, 255, 255, 0.6) !important;
}
.p-beauty__pricing-label {
  color: #ffffff !important;
}
.p-beauty__pricing-label span {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__price-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-beauty__price-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-beauty__price-card--popular {
  border-color: var(--color-accent-yellow) !important;
}
.p-beauty__price-badge {
  background-color: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__price-badge--popular {
  background-color: rgba(200, 169, 110, 0.2) !important;
  color: var(--color-accent-yellow) !important;
}
.p-beauty__price-name {
  color: #ffffff !important;
}
.p-beauty__price-detail {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-beauty__price-tax {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__price-original {
  color: rgba(255, 255, 255, 0.4) !important;
}
.p-beauty__pricing-note {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__sub-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-beauty__sub-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-beauty__sub-card--popular {
  border-color: var(--color-accent-yellow) !important;
}
.p-beauty__sub-badge {
  background: rgba(200, 169, 110, 0.2) !important;
  color: var(--color-accent-yellow) !important;
}
.p-beauty__sub-name {
  color: #ffffff !important;
}
.p-beauty__sub-menus {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-beauty__sub-per {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__sub-unit {
  color: rgba(255, 255, 255, 0.5) !important;
}
.p-beauty__review-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-beauty__review-text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-beauty__other-locations h3 {
  color: #ffffff !important;
}
.p-beauty__location-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-beauty__location-card h4 {
  color: #ffffff !important;
}
.p-beauty__location-card p {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-beauty__menu-card {
  color: rgba(255, 255, 255, 0.85) !important;
}
.p-beauty__menu-time {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* ----- Blog Page: Sidebar widgets ----- */
.c-widget {
  background-color: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.c-widget__title {
  color: #ffffff !important;
}
.c-widget__search-input {
  background-color: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}
.c-widget__category-link {
  color: rgba(255, 255, 255, 0.7) !important;
  border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}
.c-widget__category-link:hover {
  color: #ffffff !important;
}
.c-widget__category-count {
  color: rgba(255, 255, 255, 0.4) !important;
}
.c-widget__post-title {
  color: rgba(255, 255, 255, 0.85) !important;
}
.c-widget__post-item a:hover .c-widget__post-title {
  color: #ffffff !important;
}
.c-widget__post-date {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* ----- Legal Page: Info table ----- */
.s-legal-info__row {
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
.s-legal-info__label {
  color: rgba(255, 255, 255, 0.95) !important;
}
.s-legal-info__value {
  color: rgba(255, 255, 255, 0.65) !important;
}
.s-legal-info__value a {
  color: rgba(255, 255, 255, 0.8) !important;
}
.s-legal-info__value a:hover {
  color: #ffffff !important;
}

/* ----- News Page: Filter and cards ----- */
.p-news-filter__btn {
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.6) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.p-news-filter__btn:hover {
  border-color: rgba(139, 164, 200, 0.4) !important;
}
.p-news-card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.p-news-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
.p-news-card__title {
  color: #ffffff !important;
}
.p-news-card__excerpt {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* ----- Privacy Page ----- */
.s-privacy__heading {
  color: #ffffff !important;
}
.s-privacy__subheading {
  color: #ffffff !important;
}
.s-privacy__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-privacy__list li {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-privacy__contact-info {
  background: rgba(255, 255, 255, 0.04) !important;
}
.s-privacy__contact-info p {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-privacy__contact-info a {
  color: rgba(139, 164, 200, 0.8) !important;
}
.s-privacy__contact-info a:hover {
  color: #ffffff !important;
}
.s-privacy__date {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* ----- Single Page: Article content, ToC, CTA ----- */
.p-hero-page__category {
  color: #ffffff !important;
}
.p-hero-page__title {
  color: #ffffff !important;
}
.p-single__toc-title {
  color: #ffffff !important;
}
.p-single__toc-list li a {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-single__toc-list li a:hover {
  color: #ffffff !important;
}
.p-single__cta-block {
  background: rgba(255, 255, 255, 0.04) !important;
  color: #ffffff !important;
}
.p-single__cta-block h3 {
  color: #ffffff !important;
}
.p-single__cta-block p {
  color: rgba(255, 255, 255, 0.7) !important;
}
.p-single__cta-block .cta-btn-secondary {
  color: #ffffff !important;
}

/* ----- SNS Agency Page: Process flow ----- */
.c-process-flow__number {
  color: #ffffff !important;
}
.c-process-flow__title {
  color: #ffffff !important;
}
.c-process-flow__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.c-process-flow__step:not(:last-child)::after {
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), transparent) !important;
}

/* ----- Contact Page: Info and Form ----- */
.s-contact-info {
  background-color: rgba(255, 255, 255, 0.02) !important;
}
.s-contact-info__item {
  background-color: rgba(255, 255, 255, 0.05) !important;
}
.s-contact-info__item:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}
.s-contact-info__icon {
  background-color: rgba(255, 255, 255, 0.08) !important;
}
.s-contact-info__title {
  color: #ffffff !important;
}
.s-contact-info__text {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-contact-form {
  background-color: #2c2c2c !important;
}
.s-contact-form__lead {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-contact-form__inner {
  background-color: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.s-contact-form__label {
  color: #ffffff !important;
}
.s-contact-form__input,
.s-contact-form__select,
.s-contact-form__textarea {
  color: #ffffff !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}
.s-contact-form__input::placeholder,
.s-contact-form__textarea::placeholder {
  color: rgba(255, 255, 255, 0.35) !important;
}
.s-contact-form__input:focus,
.s-contact-form__select:focus,
.s-contact-form__textarea:focus {
  border-color: rgba(139, 164, 200, 0.5) !important;
  box-shadow: 0 0 0 3px rgba(139, 164, 200, 0.1) !important;
}

/* ----- Results Page: Client cards, Testimonials ----- */
.s-clients__card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.s-clients__card-logo {
  background: rgba(255, 255, 255, 0.04) !important;
  border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}
.s-clients__card-name {
  color: #ffffff !important;
}
.s-clients__card-desc {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-testimonials__card {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
}
.s-testimonials__card::before {
  background: linear-gradient(90deg, rgba(139, 164, 200, 0.5), rgba(200, 169, 110, 0.3)) !important;
}
.s-testimonials__avatar {
  background: rgba(255, 255, 255, 0.06) !important;
}
.s-testimonials__name {
  color: #ffffff !important;
}
.s-testimonials__attr {
  color: rgba(255, 255, 255, 0.4) !important;
}
.s-testimonials__badge {
  background: rgba(255, 255, 255, 0.06) !important;
}
.s-testimonials__stats {
  background: rgba(255, 255, 255, 0.04) !important;
}
.s-testimonials__stat-label {
  color: rgba(255, 255, 255, 0.4) !important;
}
.s-testimonials__stat-value {
  color: #ffffff !important;
}
.s-testimonials__comment {
  color: rgba(255, 255, 255, 0.7) !important;
}
.s-testimonials__meta {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* ----- Inline style overrides for target-audience cards ----- */
/* These cards use inline style="background: var(--color-bg-white); ..."
   The CSS variable override handles the background, but border-left needs explicit fix */
.l-section [style*="border-left: 4px solid var(--color-brand-primary)"] h3,
.l-section [data-tilt] h3 {
  color: #ffffff !important;
}
.l-section [style*="border-left: 4px solid var(--color-brand-primary)"] p,
.l-section [data-tilt] p {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* ==========================================================================
   Photo Placeholder System — Ready for real photos
   ========================================================================== */

/* Base placeholder: displays what photo goes here */
.c-photo-placeholder {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg, 12px);
  background: linear-gradient(135deg, #333333 0%, #2e2e2e 50%, #2d2d2d 100%);
}

.c-photo-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(168, 192, 224, 0.05) 0%,
    transparent 50%,
    rgba(168, 192, 224, 0.03) 100%
  );
  z-index: 1;
}

.c-photo-placeholder__label {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  z-index: 2;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  gap: 8px;
}

.c-photo-placeholder__label::before {
  content: '';
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.3)' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}

/* Hero-specific large photo placeholder */
.c-photo-placeholder--hero {
  min-height: 500px;
}

@media (min-width: 768px) {
  .c-photo-placeholder--hero {
    min-height: 600px;
  }
}

/* Portrait photo placeholder */
.c-photo-placeholder--portrait {
  aspect-ratio: 3 / 4;
}

/* Landscape photo placeholder */
.c-photo-placeholder--landscape {
  aspect-ratio: 16 / 9;
}

/* Square photo placeholder */
.c-photo-placeholder--square {
  aspect-ratio: 1 / 1;
}

/* When real photo is added: just add <img> inside and hide label */
.c-photo-placeholder img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 3;
}

.c-photo-placeholder:has(img) .c-photo-placeholder__label {
  display: none;
}

.c-photo-placeholder:has(img)::before {
  display: none;
}

/* ==========================================================================
   Hero Two-Column Layout (for photo placeholders in hero)
   ========================================================================== */

/* Hero: single-column centered (no photo) */
.s-hero__two-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.s-hero__two-col .s-hero__content-wrap {
  text-align: center;
}

.s-hero__two-col .s-hero__trust {
  justify-content: center;
}

.s-hero__two-col .s-hero__actions {
  justify-content: center;
}

.s-hero__two-col .s-hero__label {
  justify-content: center;
}

/* Hero photo placeholder sizing */
.s-hero__photo-col .c-photo-placeholder {
  width: 100%;
  min-height: 400px;
  border-radius: var(--radius-xl, 16px);
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.4);
}

@media (min-width: 768px) {
  .s-hero__photo-col .c-photo-placeholder {
    min-height: 480px;
  }
}

/* LP hero photo (inline next to content) */
.lp-hero__photo,
.lp-agency-hero__photo {
  margin-top: var(--space-3xl, 48px);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.lp-hero__photo .c-photo-placeholder,
.lp-agency-hero__photo .c-photo-placeholder {
  border-radius: var(--radius-xl, 16px);
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.4);
}

/* Sub-page hero photo */
.s-hero--page .c-photo-placeholder {
  margin-top: var(--space-2xl, 32px);
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   Content Pages — White Background Override
   Blog, News, Single article pages use white backgrounds for readability.
   ========================================================================== */
.page-blog .l-section,
.page-news .l-section,
.page-single .l-section {
  background-color: var(--color-bg, #ffffff) !important;
}

.page-blog .l-section--accent,
.page-news .l-section--accent,
.page-single .l-section--accent {
  background-color: var(--color-bg-accent, #f7f7f7) !important;
}

/* Reset dark CSS variable overrides on content pages */
.page-blog .l-section,
.page-blog .l-section--accent,
.page-news .l-section,
.page-news .l-section--accent,
.page-single .l-section,
.page-single .l-section--accent {
  --color-text-primary: #111111;
  --color-text-secondary: #555555;
  --color-text-muted: #999999;
  --color-bg-white: #ffffff;
  --color-bg-accent: #f7f7f7;
  --color-bg: #ffffff;
  --color-bg-subtle: #f5f5f5;
  --color-border: #e0e0e0;
  --color-border-light: #eeeeee;
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 4px 8px rgba(0, 0, 0, 0.03), 0 16px 32px rgba(0, 0, 0, 0.08);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* Cards revert to light theme */
.page-blog .l-section .c-card,
.page-news .l-section .c-card,
.page-single .l-section .c-card {
  background: var(--color-bg-white) !important;
  border: 1px solid var(--color-border-light) !important;
}
.page-blog .l-section .c-card:hover,
.page-news .l-section .c-card:hover,
.page-single .l-section .c-card:hover {
  border-color: var(--color-border) !important;
  box-shadow: var(--shadow-card-hover) !important;
}

/* Text colors revert to light */
.page-blog .l-section .c-card__title,
.page-news .l-section .c-card__title,
.page-single .l-section .c-card__title {
  color: var(--color-text-primary) !important;
}
.page-blog .l-section .c-card__text,
.page-news .l-section .c-card__text,
.page-single .l-section .c-card__text {
  color: var(--color-text-secondary) !important;
}
.page-blog .l-section .c-card__category,
.page-news .l-section .c-card__category,
.page-single .l-section .c-card__category {
  color: var(--color-brand-primary) !important;
  opacity: 1 !important;
}
.page-blog .l-section .c-card__date,
.page-news .l-section .c-card__date,
.page-single .l-section .c-card__date {
  color: var(--color-text-muted) !important;
}
.page-blog .l-section .c-card__link,
.page-news .l-section .c-card__link,
.page-single .l-section .c-card__link {
  color: var(--color-brand-primary) !important;
}

/* Section headings revert to light */
.page-blog .l-section .c-section-heading__en,
.page-news .l-section .c-section-heading__en,
.page-single .l-section .c-section-heading__en {
  color: rgba(0, 0, 0, 0.06) !important;
}
.page-blog .l-section .c-section-heading__ja,
.page-news .l-section .c-section-heading__ja,
.page-single .l-section .c-section-heading__ja {
  color: var(--color-text-primary) !important;
}
.page-blog .l-section .c-section-heading__desc,
.page-news .l-section .c-section-heading__desc,
.page-single .l-section .c-section-heading__desc {
  color: var(--color-text-secondary) !important;
}

/* Buttons revert to light */
.page-blog .l-section .c-btn--primary,
.page-news .l-section .c-btn--primary,
.page-single .l-section .c-btn--primary {
  background-color: var(--color-brand-primary) !important;
  color: var(--color-text-white) !important;
  border-color: var(--color-brand-primary) !important;
}
.page-blog .l-section .c-btn--primary:hover,
.page-news .l-section .c-btn--primary:hover,
.page-single .l-section .c-btn--primary:hover {
  background-color: var(--color-brand-primary-hover) !important;
  border-color: var(--color-brand-primary-hover) !important;
  color: var(--color-text-white) !important;
}
.page-blog .l-section .c-btn--secondary,
.page-news .l-section .c-btn--secondary,
.page-single .l-section .c-btn--secondary {
  color: var(--color-brand-primary) !important;
  border-color: var(--color-border) !important;
  background: transparent !important;
}

/* Placeholder images revert to light */
.page-blog .l-section .preview-img,
.page-news .l-section .preview-img,
.page-single .l-section .preview-img {
  background: linear-gradient(135deg, #e8e8e8 0%, #f0f0f0 40%, #f5f5f5 60%, #e8e8e8 100%) !important;
  color: var(--color-text-muted) !important;
}

/* Widget styles (sidebar) - dark theme for blog/single */
.page-blog .c-widget,
.page-single .c-widget {
  background-color: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.page-blog .c-widget__title,
.page-single .c-widget__title {
  color: rgba(255, 255, 255, 0.9) !important;
  border-bottom-color: var(--color-brand-primary) !important;
}

/* News cards (news page specific) */
.page-news .p-news-card {
  background: var(--color-bg-white) !important;
}
.page-news .p-news-filter__btn {
  background: var(--color-bg-white) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text-secondary) !important;
}
.page-news .p-news-filter__btn.is-active {
  background: var(--color-brand-primary) !important;
  color: var(--color-text-white) !important;
}

/* Wave dividers on content pages */
.page-blog .c-section-divider,
.page-news .c-section-divider,
.page-single .c-section-divider {
  color: var(--color-bg-accent) !important;
}

/* ==========================================================================
   Hero Group Photo (landscape orientation)
   Container sizing for landscape/team group photos in the hero section.
   ========================================================================== */

.s-hero__photo-col {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl, 16px);
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.4);
  aspect-ratio: 4 / 3;
  max-height: 600px;
}

.s-hero__photo-col > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  border-radius: var(--radius-xl, 16px);
}

@media (min-width: 768px) {
  .s-hero__photo-col {
    aspect-ratio: 4 / 3;
    max-height: 680px;
  }
}

@media (max-width: 767px) {
  .s-hero__photo-col {
    width: 100%;
    margin: 0 auto;
    aspect-ratio: 4 / 3;
    max-height: 480px;
  }
}

/* ==========================================================================
   Service & News Card Image Consistency
   Ensure all card images have consistent height, border-radius, and
   proper object-fit behavior with real photos.
   ========================================================================== */

/* Card image container: consistent aspect ratio */
.c-card__image {
  border-radius: var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;
  background: #2a2a2a;
}

/* Ensure real images inside cards display correctly */
.c-card__image img {
  border-radius: var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;
  object-position: center center;
}

/* Smooth zoom on hover for all card images */
.c-card:hover .c-card__image img {
  transform: scale(1.05);
}

/* News card images: slightly taller for editorial feel */
#news .c-card__image {
  aspect-ratio: 16 / 9;
}

/* ==========================================================================
   CEO Section Portrait - Real Photo Styling
   ========================================================================== */

.s-ceo__image img {
  object-position: center top;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.s-ceo__image:hover img {
  transform: scale(1.03);
}

/* ==========================================================================
   Flow Section (ご利用の流れ) — Dark Theme Polish
   ========================================================================== */

/* Flow step hover effect */
.s-flow__step {
  transition: transform 0.3s ease;
  border-radius: var(--radius-lg, 12px);
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.s-flow__step:hover {
  transform: translateX(8px);
}

/* Flow section intro text - ensure visibility */
#flow .c-section-heading__en {
  color: rgba(255, 255, 255, 0.1) !important;
}

#flow .c-section-heading__ja {
  color: #ffffff !important;
}

/* ==========================================================================
   LINE CTA Section — Dark Theme + Hover Effects
   ========================================================================== */

/* LINE button hover - brighter green glow */
#line-cta .c-btn[style*="background:#06C755"]:hover,
#line-cta a[href*="line"]:hover {
  background: #05b74d !important;
  box-shadow: 0 8px 32px rgba(6, 199, 85, 0.45) !important;
  transform: translateY(-2px);
}

/* LINE CTA card subtle glow on hover */
#line-cta [data-animate="fade-up"] > div:first-child:hover,
#line-cta div[style*="background:linear-gradient"]:hover {
  border-color: rgba(6, 199, 85, 0.35) !important;
  box-shadow: 0 8px 40px rgba(6, 199, 85, 0.08);
}

/* Ensure LINE section text visibility on dark bg */
#line-cta .c-section-heading__ja {
  color: #ffffff !important;
}

/* ==========================================================================
   Global Image Styling Consistency
   All real images across the site get consistent treatment.
   ========================================================================== */

/* Smooth loading transition for all images */
.l-section img,
.s-ceo img,
.s-hero--top img,
.s-hero--page img {
  transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Card images: border-radius inheritance */
.c-card--gradient-border .c-card__image {
  border-radius: var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;
  overflow: hidden;
}

.c-card--gradient-border .c-card__image img {
  border-radius: 0;
}

/* Photo placeholder: ensure :has(img) also hides gradient overlay */
.c-photo-placeholder:has(img) {
  background: transparent;
}

/* Media section thumbnails (sub-page media grids) */
.l-section img[alt*="メディア"],
.l-section img[alt*="TV"],
.l-section img[alt*="エコノミスト"],
.l-section img[alt*="出演"],
.l-section img[alt*="掲載"],
.l-section img[alt*="magazine"] {
  border-radius: var(--radius-md, 8px);
}

/* Image loading placeholder (background while image loads) */
.c-card__image {
  background-color: rgba(255, 255, 255, 0.03);
  background-image: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.04) 0%,
    rgba(255, 255, 255, 0.02) 50%,
    rgba(255, 255, 255, 0.04) 100%
  );
}

/* Gradient border cards: ensure no image overflow */
.c-card--gradient-border {
  overflow: hidden;
}

/* ==========================================================================
   FIX: Force all scroll-based animations to be visible immediately
   clip-path / data-reveal / data-animate start hidden and need JS to show.
   In preview mode, show everything immediately.
   ========================================================================== */
[data-reveal] {
  clip-path: none !important;
}
[data-animate] {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
}
[data-animate-stagger] > * {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
}

/* ==========================================================================
   FIX: Ensure protruding badges (position:absolute; top:-14px etc.)
   are never clipped by parent overflow or animations.
   Targets: grids, cards, sections, and all animated elements.
   ========================================================================== */
[data-animate-stagger],
[data-animate],
[data-stagger-child],
[data-tilt] {
  overflow: visible !important;
}

/* Cards with protruding badges - force overflow visible */
.p-beauty__why-card,
.p-beauty__sub-card,
.p-step__intro-card,
.p-step__pricing-card,
.p-step__support-card,
.p-step__persona-card,
.p-step__plan--popular,
.p-agency__strength-card,
.p-agency__pricing-card--recommended,
.lp-tier__card--featured,
.lp-agency-pricing-card--rec,
.s-services__card,
.s-mvv__block,
.s-mvv__value-card,
.c-card {
  overflow: visible !important;
}

/* Grids containing protruding badges - ensure padding-top */
.p-beauty__why-grid,
.p-beauty__sub-grid,
.p-step__intro-cards,
.p-step__pricing-grid,
.p-agency__strengths-grid,
.p-agency__pricing-grid,
.lp-tiers__grid,
.lp-agency-pricing__grid {
  padding-top: 24px !important;
}

/* ==========================================================================
   FIX: FAQ Accordion - dark theme text visibility
   ========================================================================== */
.c-accordion {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.c-accordion__item {
  border-color: rgba(255, 255, 255, 0.08) !important;
}
.c-accordion__header {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.c-accordion__header:hover {
  background: rgba(255, 255, 255, 0.06) !important;
}
.c-accordion__header span {
  color: rgba(255, 255, 255, 0.9) !important;
}
.c-accordion__body {
  color: rgba(255, 255, 255, 0.65) !important;
}
.c-accordion__body p {
  color: rgba(255, 255, 255, 0.65) !important;
}
.c-accordion__icon::before,
.c-accordion__icon::after {
  background: rgba(255, 255, 255, 0.5) !important;
}

/* ==========================================================================
   FIX: Hero text sizing - larger for centered text-only layout
   ========================================================================== */
.s-hero__heading {
  font-size: clamp(3rem, 7vw, 5.5rem) !important;
  letter-spacing: 0.04em !important;
  line-height: 1.15 !important;
  max-width: none !important;
}
.s-hero__subheading {
  font-size: clamp(1.05rem, 1rem + 0.5vw, 1.3rem) !important;
  line-height: 1.9 !important;
  max-width: 700px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.s-hero__trust-number {
  font-size: clamp(2.5rem, 4vw, 3.5rem) !important;
}
.s-hero__trust-label {
  font-size: 0.85rem !important;
  letter-spacing: 0.08em !important;
}
.s-hero__label-text {
  font-size: 0.9rem !important;
  letter-spacing: 0.15em !important;
}

/* ==========================================================================
   UI/UX QUALITY IMPROVEMENTS - Professional Polish
   Applied across all preview pages for consistency and readability.
   ========================================================================== */

/* ------------------------------------------------------------------
   1. Japanese Text Optimization
   ------------------------------------------------------------------ */

/* Body text: enforce comfortable reading metrics */
body p,
body li,
body dd,
body td,
body blockquote {
  line-height: 1.85;
  letter-spacing: 0.03em;
}

/* Limit body text width for optimal readability (65-75 chars) */
.s-philosophy__text,
.s-ceo__text,
.s-recruit-message__text,
.s-contact-form__lead,
.s-contact-line__text,
.p-step__instructor-text,
.p-agency__staff-bio,
.s-why__text,
.s-recruit-values__text,
.s-voices__text,
.s-recruit-positions__desc,
.s-clients__card-desc,
.s-testimonials__comment,
.s-media__card-desc {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

/* Centered text blocks: ensure proper alignment context */
.s-philosophy__inner,
.s-recruit-message__inner,
.s-contact-line__inner {
  max-width: 720px;
}

/* ------------------------------------------------------------------
   2. Section Spacing & Rhythm
   ------------------------------------------------------------------ */

/* Consistent section padding with fluid clamp */
.l-section {
  padding-top: clamp(3rem, 8vw, 5rem);
  padding-bottom: clamp(3rem, 8vw, 5rem);
}

@media (min-width: 768px) {
  .l-section {
    padding-top: clamp(4rem, 8vw, 6rem);
    padding-bottom: clamp(4rem, 8vw, 6rem);
  }
}

/* Mobile container padding: prevent edge-hugging */
@media (max-width: 767px) {
  .l-container {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

/* ------------------------------------------------------------------
   3. Heading Consistency
   ------------------------------------------------------------------ */

/* Section heading: minimum sizes for mobile readability */
.c-section-heading__ja {
  font-size: clamp(1.5rem, 1rem + 2vw, 1.875rem);
  line-height: 1.35;
  letter-spacing: 0.04em;
}

/* Page hero title: prevent text cramping on small screens */
.s-hero__title {
  line-height: 1.3;
  letter-spacing: 0.02em;
}

@media (max-width: 767px) {
  .s-hero__title {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }
}

/* ------------------------------------------------------------------
   4. Button & Tap Target Consistency
   ------------------------------------------------------------------ */

/* Ensure all buttons meet 48px min-height and 44x44 tap target */
.c-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 2rem;
}

.c-btn--lg {
  min-height: 52px;
  padding: 0.875rem 2.5rem;
}

.c-btn--sm {
  min-height: 40px;
  padding: 0.5rem 1.25rem;
}

/* Submit button: stronger visual weight */
.s-contact-form__action .c-btn {
  min-width: 200px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* ------------------------------------------------------------------
   5. Form Input Optimization (Contact Page)
   ------------------------------------------------------------------ */

/* All form inputs: adequate size for touch */
.s-contact-form__input,
.s-contact-form__select,
.s-contact-form__textarea {
  min-height: 48px;
  font-size: 16px; /* Prevents iOS zoom on focus */
  padding: 0.875rem 1rem;
  border-radius: 8px;
  border: 1.5px solid var(--color-border);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Focus ring: stronger visual feedback */
.s-contact-form__input:focus,
.s-contact-form__select:focus,
.s-contact-form__textarea:focus {
  border-color: var(--color-brand-primary);
  box-shadow: 0 0 0 3px rgba(139, 164, 200, 0.2);
  outline: none;
}

/* Error state */
.s-contact-form__input:invalid:not(:placeholder-shown),
.s-contact-form__textarea:invalid:not(:placeholder-shown) {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.1);
}

/* Label spacing */
.s-contact-form__label {
  margin-bottom: 0.5rem;
  font-size: 0.9375rem;
}

/* Required badge */
.s-contact-form__required {
  font-size: 0.6875rem;
  padding: 2px 6px;
  vertical-align: middle;
}

/* Textarea comfortable height */
.s-contact-form__textarea {
  min-height: 180px;
  line-height: 1.8;
}

/* Field spacing */
.s-contact-form__field {
  margin-bottom: 1.5rem;
}

/* Select dropdown: ensure adequate right padding for arrow */
.s-contact-form__select {
  padding-right: 3rem;
}

/* Checkbox: adequate tap target */
.s-contact-form__checkbox-label {
  min-height: 44px;
  padding: 0.25rem 0;
  gap: 0.75rem;
  cursor: pointer;
}

.s-contact-form__checkbox {
  width: 22px;
  height: 22px;
}

/* Form inner container: breathing room */
.s-contact-form__inner {
  padding: 2rem;
}

@media (min-width: 768px) {
  .s-contact-form__inner {
    padding: 3rem;
  }
}

/* ------------------------------------------------------------------
   6. Dark Theme Readability Fixes
   ------------------------------------------------------------------ */

/* Company page (preview-company.html) - dark background */

/* Fix: rgba(255,255,255,0.5) text is too dim -> 0.7 minimum */
.s-company-info__value {
  color: rgba(255, 255, 255, 0.72) !important;
}

.s-company-numbers__unit {
  color: rgba(255, 255, 255, 0.65) !important;
}

.s-company-numbers__label {
  color: rgba(255, 255, 255, 0.6) !important;
}

.s-company-timeline__text {
  color: rgba(255, 255, 255, 0.65) !important;
}

.s-company-timeline__year span {
  color: rgba(255, 255, 255, 0.55) !important;
}

.s-company-ceo__role {
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Recruit page - dark background text fixes */
.s-recruit-hero__sub {
  color: rgba(255, 255, 255, 0.7) !important;
}

.s-recruit-hero__stat-label {
  color: rgba(255, 255, 255, 0.55) !important;
}

.s-recruit-message__text {
  color: rgba(255, 255, 255, 0.72) !important;
}

.s-recruit-message__signature-role {
  color: rgba(255, 255, 255, 0.55) !important;
}

.s-why__text {
  color: rgba(255, 255, 255, 0.65) !important;
}

.s-recruit-values__text {
  color: rgba(255, 255, 255, 0.6) !important;
}

.s-recruit-values__en {
  color: rgba(255, 255, 255, 0.55) !important;
}

.s-recruit-positions__desc {
  color: rgba(255, 255, 255, 0.68) !important;
}

.s-recruit-positions__detail-block h4 {
  color: rgba(255, 255, 255, 0.5) !important;
}

.s-recruit-positions__detail-block li {
  color: rgba(255, 255, 255, 0.65) !important;
}

.s-voices__text {
  color: rgba(255, 255, 255, 0.72) !important;
}

/* Company hero breadcrumb fix */
.s-hero--company .s-hero__subtitle,
.s-hero--company .c-breadcrumb__link,
.s-hero--company .c-breadcrumb__current {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* ------------------------------------------------------------------
   7. Card & Table Layout Consistency
   ------------------------------------------------------------------ */

/* Cards: uniform border-radius */
[class*="__card"],
[class*="__item"] {
  border-radius: var(--radius-xl, 16px);
}

/* Tables: responsive wrapper */
.s-company-info__table-wrap,
.p-step__comparison-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Table cells: adequate padding */
.s-company-info__label,
.s-company-info__value {
  padding: 1.25rem 1rem;
}

@media (min-width: 768px) {
  .s-company-info__label,
  .s-company-info__value {
    padding: 1.5rem 1.5rem;
  }
}

/* Comparison table on mobile: horizontal scroll hint */
@media (max-width: 767px) {
  .p-step__comparison-table-wrap {
    position: relative;
    margin-left: -1.25rem;
    margin-right: -1.25rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .p-step__comparison-table {
    min-width: 600px;
  }

  .p-step__comparison-table th,
  .p-step__comparison-table td {
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
  }
}

/* ------------------------------------------------------------------
   8. Image Border-Radius Consistency
   ------------------------------------------------------------------ */

.s-ceo__image,
.s-company-ceo__image,
.p-step__instructor-image,
.p-agency__staff-photo,
.s-culture-gallery__item,
.s-clients__card-logo,
.s-media__card-image,
.preview-img {
  border-radius: var(--radius-xl, 16px);
  overflow: hidden;
}

/* ------------------------------------------------------------------
   9. Color Contrast Improvements (Light Theme)
   ------------------------------------------------------------------ */

/* Secondary text: ensure WCAG AA contrast on white bg */
/* --color-text-secondary (#555) is 7.46:1 on white - OK */
/* --color-text-muted (#999) is 2.85:1 on white - FAIL for body text */
/* Fix: use muted only for metadata, never for body text */

.s-mission-vision__desc,
.s-philosophy__text p,
.p-step__plan-desc,
.p-step__support-desc,
.p-step__bonus-desc,
.p-beauty__review-text,
.p-beauty__price-detail,
.s-testimonials__comment,
.c-process-flow__text,
.p-agency__staff-bio {
  color: var(--color-text-secondary) !important;
}

/* Muted text (#999) used for meta/labels - acceptable at smaller sizes */
.s-ceo__role,
.p-step__instructor-role,
.s-timeline__month,
.p-beauty__price-tax,
.p-beauty__sub-unit,
.s-testimonials__attr,
.s-testimonials__meta,
.p-beauty__pricing-note {
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------
   10. Mobile-Specific Polish
   ------------------------------------------------------------------ */

@media (max-width: 767px) {
  /* Prevent horizontal overflow */
  body {
    overflow-x: hidden;
  }

  /* Card grids: full width on very small screens */
  .p-beauty__intro-stats {
    flex-direction: column;
    align-items: stretch;
  }

  .p-beauty__intro-stat {
    min-width: unset;
  }

  /* Staff card: stack vertically */
  .p-agency__staff-card {
    padding: 1.25rem;
  }

  /* Mission/Vision cards: adequate padding */
  .s-mission-vision__card {
    padding: 2rem 1.5rem;
  }

  /* Timeline: tighter spacing */
  .s-timeline__item,
  .s-company-timeline__item {
    margin-bottom: 1.5rem;
  }

  /* Form on mobile: full-width buttons */
  .s-contact-form__action .c-btn {
    width: 100%;
    max-width: 320px;
  }

  /* Recruit position cards: tighter padding */
  .s-recruit-positions__card-header {
    padding: 1.25rem 1.25rem;
  }

  .s-recruit-positions__body {
    padding: 1.25rem;
  }

  /* Number grids: 2-col on mobile, prevent cramping */
  .s-company-numbers__grid {
    gap: 0.75rem;
  }

  .s-company-numbers__card {
    padding: 1.5rem 1rem;
  }

  .s-company-numbers__value {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }

  /* Results number grid */
  .s-results-numbers__grid {
    gap: 0.75rem;
  }
}

/* ------------------------------------------------------------------
   11. Section Divider Polish
   ------------------------------------------------------------------ */

.c-section-divider {
  line-height: 0;
  overflow: hidden;
}

.c-section-divider svg {
  display: block;
  width: 100%;
  height: auto;
}

/* ------------------------------------------------------------------
   12. Pricing Card Alignment (Samurai Beauty & S.Tep)
   ------------------------------------------------------------------ */

/* Ensure pricing cards have equal visual weight */
.p-beauty__price-card,
.p-beauty__sub-card,
.p-step__plan {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Pricing amount: ensure number is prominent */
.p-beauty__price-number,
.p-step__plan-price-number {
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------------
   13. Results Page: Testimonial Cards Polish
   ------------------------------------------------------------------ */

/* Stats comparison: better visual separation */
.s-testimonials__stats {
  border-radius: 12px;
  padding: 1rem;
}

/* Before/After values: larger for impact */
.s-testimonials__stat-value {
  font-size: 1.125rem;
  font-weight: 700;
}

.s-testimonials__stat-after .s-testimonials__stat-value {
  color: var(--color-brand-primary);
  font-size: 1.25rem;
}

/* ------------------------------------------------------------------
   14. Scroll Margin for Anchor Navigation
   ------------------------------------------------------------------ */

/* Account for fixed header + preview toolbar */
[id] {
  scroll-margin-top: 120px;
}

@media (max-width: 767px) {
  [id] {
    scroll-margin-top: 100px;
  }
}

/* ------------------------------------------------------------------
   15. Print-quality Typography Refinements
   ------------------------------------------------------------------ */

/* Word break for Japanese: prevent orphan characters */
p, li, dd, td, th {
  word-break: normal;
  overflow-wrap: anywhere;
}

/* Headings: prevent single-character widows */
h1, h2, h3, h4 {
  text-wrap: balance;
}

/* Blockquote/testimonial text: elegant styling */
.s-testimonials__comment,
.s-voices__text,
.p-beauty__review-text {
  line-height: 1.9;
  letter-spacing: 0.02em;
}

/* ------------------------------------------------------------------
   16. Focus Visible: Accessibility
   ------------------------------------------------------------------ */

/* Keyboard focus: visible ring */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--color-brand-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ------------------------------------------------------------------
   17. Services Page Grid Polish
   ------------------------------------------------------------------ */

/* Services cards: ensure consistent height in grid */
.s-services__card {
  display: flex;
  flex-direction: column;
}

.s-services__card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.s-services__card-text {
  flex: 1;
}

/* ------------------------------------------------------------------
   18. SNS Agency Page: Staff Section Fix
   ------------------------------------------------------------------ */

/* Staff photo placeholder: consistent aspect ratio */
.p-agency__staff-photo {
  min-height: 200px;
}

@media (min-width: 768px) {
  .p-agency__staff-photo {
    min-height: 280px;
  }
}

/* ------------------------------------------------------------------
   19. Samurai Beauty: Access Section Fix
   ------------------------------------------------------------------ */

/* Map/access info: better spacing */
.p-beauty__location-card {
  padding: 1.5rem;
}

.p-beauty__location-card h4 {
  margin-bottom: 0.5rem;
}

.p-beauty__location-card p {
  line-height: 1.8;
}

/* ------------------------------------------------------------------
   20. About Page: CEO Section Text Width
   ------------------------------------------------------------------ */

.s-ceo__text {
  max-width: 560px;
}

.s-ceo__text p {
  margin-bottom: 1.25rem;
  line-height: 1.9;
}

.s-ceo__text p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Header Scroll Text Color Fix (ALL pages)
   When the header becomes white/solid on scroll, ensure ALL text
   (English, Japanese, mega menu) is dark and readable.
   ========================================================================== */

/* Force header to use light variables regardless of dark mode / dark sections */
.l-header {
  --color-text-primary: #111111;
  --color-text-secondary: #555555;
  --color-text-muted: #8a8a9e;
  --color-brand-primary: #8BA4C8;
  --color-bg-white: #ffffff;
  --color-bg-accent: #f5f5f5;
  --color-border-light: #E8EDF5;
}

/* Solid header: ensure dark text at all times */
.l-header--solid .l-header__menu-en {
  color: var(--color-brand-primary) !important;
}

.l-header--solid .l-header__menu-ja {
  color: #1a1a2e !important;
}

.l-header--solid .l-header__nav-link {
  color: #1a1a2e !important;
}

.l-header--solid .l-header__nav-link:hover,
.l-header--solid .l-header__nav-link.is-current {
  color: var(--color-brand-primary) !important;
}

/* Scrolled header: explicitly force dark text */
.l-header.is-scrolled .l-header__menu-en {
  color: #8BA4C8 !important;
}

.l-header.is-scrolled .l-header__menu-ja {
  color: #1a1a2e !important;
}

.l-header.is-scrolled .l-header__nav-link {
  color: #1a1a2e !important;
}

.l-header.is-scrolled .l-header__nav-link:hover,
.l-header.is-scrolled .l-header__nav-link.is-current {
  color: #8BA4C8 !important;
}

.l-header.is-scrolled .l-header__menu-link:hover .l-header__menu-ja {
  color: #8BA4C8 !important;
}

/* Scrolled header: force white background */
.l-header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.96) !important;
}

/* Mega menu: always white bg with dark text */
.l-header__mega-menu {
  background: #ffffff !important;
}

.l-header__mega-menu::after {
  background: #ffffff !important;
}

.l-header__mega-title {
  color: #1a1a2e !important;
}

.l-header__mega-desc {
  color: #8a8a9e !important;
}

.l-header__mega-icon {
  color: #8BA4C8 !important;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.02)) !important;
}

.l-header__mega-item:hover .l-header__mega-icon {
  background: linear-gradient(135deg, #1a1a1a, #333333) !important;
  color: #fff !important;
}

.l-header__mega-item:hover .l-header__mega-title {
  color: #8BA4C8 !important;
}

.l-header__mega-item:hover {
  background: #f5f5f5 !important;
}

/* Dropdown: always white bg with dark text */
.l-header__dropdown {
  background-color: #ffffff !important;
}

.l-header__dropdown-link {
  color: #1a1a2e !important;
}

.l-header__dropdown-link:hover {
  background-color: #f5f5f5 !important;
  color: #8BA4C8 !important;
}

/* Hamburger lines: dark on solid/scrolled header */
.l-header--solid .l-header__hamburger-line {
  background-color: #1a1a2e !important;
}

.l-header.is-scrolled .l-header__hamburger-line {
  background-color: #1a1a2e !important;
}

/* CTA button: ensure correct colors on scrolled header */
.l-header.is-scrolled .l-header__cta-btn {
  color: #ffffff !important;
  background-color: #8BA4C8 !important;
}

/* Logo: ensure visibility on white scrolled header */
.l-header--solid .l-header__logo img {
  filter: none !important;
}

/* ==========================================================================
   Word-break Fix — Prevent awkward mid-word line breaks in Japanese text
   Uses word-break: keep-all to keep Japanese phrases together.
   ========================================================================== */

/* --- Section Headings (all pages) --- */
.c-section-heading__ja,
.c-section-heading__en,
.c-section-heading__desc,
.s-hero__title,
.s-hero__subheading {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Hero trust badges & stat labels (TOP page) --- */
.s-hero__trust-label,
.s-hero__trust-number,
.s-hero__trust-unit {
  white-space: normal;
}

.s-hero__trust-item {
  white-space: normal;
  word-break: keep-all;
}

/* --- Numbers section --- */
.s-numbers__label,
.s-numbers__unit,
.s-numbers__value {
  white-space: nowrap;
}

/* --- Card / Service titles --- */
.s-services__title,
.s-services__desc,
.s-results__name,
.s-results__label,
.s-results__stat,
.s-cta-final__heading,
.s-message__heading,
.s-message__name {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- CRO / Diagnostic cards --- */
.cro-diagnostic__heading,
.cro-diagnostic__card-title,
.cro-diagnostic__card-desc,
.cro-authority-badge,
.cro-risk-reversal {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Flow section --- */
.s-flow__title,
.s-flow__desc {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- FAQ --- */
.c-faq__question {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Navigation & buttons (never break) --- */
.l-header__nav-link,
.l-header__mega-title,
.l-header__mega-desc,
.l-header__cta-btn,
.c-btn,
.c-notification-bar__text,
.c-notification-bar__action {
  white-space: nowrap;
}

/* --- Footer headings --- */
.l-footer__heading {
  white-space: nowrap;
}

/* --- About page --- */
.s-mission-vision__title,
.s-timeline__title,
.s-company-timeline__title {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Company page stats --- */
.s-company-stat__label,
.s-company-stat__value {
  white-space: nowrap;
}

/* --- Recruit page --- */
.s-recruit-hero__stat-label,
.s-recruit-hero__stat-number,
.s-recruit-data__label,
.s-recruit-data__value,
.s-recruit-data__unit,
.s-recruit-values__title,
.s-recruit-flow__title {
  white-space: nowrap;
}

/* --- S.Tep / LP pages --- */
.p-step__feature-label,
.p-step__plan-name,
.p-step__support-title,
.p-step__bonus-title {
  word-break: keep-all;
  overflow-wrap: normal;
}

.lp-hero__label,
.lp-hero__trust-label,
.lp-proof__label,
.lp-instructor__badge {
  white-space: nowrap;
}

/* --- LP Step page --- */
.lp-dark-heading,
.lp-dark-sub,
.c-section-label {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- LP University page --- */
.p-univ__stat-label,
.p-univ__stat-number {
  white-space: nowrap;
}

/* --- LP Agency page --- */
.lp-agency-hero__trust-label,
.lp-agency-hero__trust-value {
  white-space: nowrap;
}

/* --- LP Skillon page --- */
.lp-solution__card-title,
.lp-curriculum-step__title {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Samurai Beauty page --- */
.p-beauty__intro-stat-label,
.p-beauty__pricing-label,
.p-beauty__price-badge,
.p-beauty__sub-badge {
  white-space: nowrap;
}

/* --- SNS Agency page --- */
.p-agency__cta-heading,
.p-agency__cta-recommend-title,
.c-process-flow__title {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* --- Generic stat/badge/tag selectors --- */
[data-counter] + span,
.c-stat__label,
.c-stat__value,
.c-badge,
.c-tag,
.c-floating-cta__tooltip {
  white-space: nowrap;
}

/* --- Broad h2/h3 inside sections as fallback --- */
.l-section h2,
.l-section h3 {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* ==========================================================================
   Enhanced Animations & Micro-interactions
   S.Line Corporate Theme - Animation Enhancement Layer

   This file adds premium animation effects on top of the existing
   data-animate / data-counter / data-parallax system in main.js.
   No external dependencies.
   ========================================================================== */

/* ==========================================================================
   1. SCROLL PROGRESS BAR (LP pages)
   ========================================================================== */
.c-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 10001;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.c-scroll-progress.is-active {
  opacity: 1;
}

.c-scroll-progress__bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #06C755, #00e676, #06C755);
  background-size: 200% 100%;
  animation: scrollProgressShimmer 2s ease-in-out infinite;
  border-radius: 0 2px 2px 0;
  will-change: width;
  transition: width 0.15s linear;
}

@keyframes scrollProgressShimmer {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ==========================================================================
   2. SPLIT TEXT ANIMATION (character-by-character fade-in)
   ========================================================================== */
[data-split-text] .a-enhanced-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-split-text].is-split-visible .a-enhanced-char {
  opacity: 1;
  transform: translateY(0);
}

/* Whitespace character */
[data-split-text] .a-enhanced-char--space {
  width: 0.3em;
}

/* ==========================================================================
   3. ENHANCED CARD HOVER EFFECTS
   ========================================================================== */
.c-card {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   4. HERO GRADIENT ANIMATION (LP pages)
   ========================================================================== */
@keyframes heroGradientShift {
  0% {
    background-position: 0% 50%;
  }
  25% {
    background-position: 50% 0%;
  }
  50% {
    background-position: 100% 50%;
  }
  75% {
    background-position: 50% 100%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.lp-hero--animated-bg,
.lp-agency-hero--animated-bg {
  background-size: 300% 300% !important;
  animation: heroGradientShift 12s ease infinite;
}

/* ==========================================================================
   5. PULSE GLOW BADGE (number badges, recommended badges)
   ========================================================================== */
@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(6, 199, 85, 0.4);
  }
  50% {
    box-shadow: 0 0 20px 4px rgba(6, 199, 85, 0.2);
  }
}

@keyframes pulseGlowWhite {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.3);
  }
  50% {
    box-shadow: 0 0 20px 4px rgba(255, 255, 255, 0.1);
  }
}

.a-pulse-glow {
  animation: pulseGlow 2.5s ease-in-out infinite;
}

.a-pulse-glow--white {
  animation: pulseGlowWhite 2.5s ease-in-out infinite;
}

/* Number stat badges */
@keyframes numberBadgePulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
  }
  50% {
    transform: scale(1.02);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
  }
}

.a-number-badge-pulse {
  animation: numberBadgePulse 3s ease-in-out infinite;
}

/* ==========================================================================
   6. CTA BUTTON PULSE (idle attention-grabbing)
   ========================================================================== */
@keyframes ctaPulse {
  0% {
    box-shadow: 0 4px 16px rgba(6, 199, 85, 0.3), 0 0 0 0 rgba(6, 199, 85, 0.4);
  }
  70% {
    box-shadow: 0 4px 16px rgba(6, 199, 85, 0.3), 0 0 0 12px rgba(6, 199, 85, 0);
  }
  100% {
    box-shadow: 0 4px 16px rgba(6, 199, 85, 0.3), 0 0 0 0 rgba(6, 199, 85, 0);
  }
}

@keyframes ctaPulseWhite {
  0% {
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.15), 0 0 0 0 rgba(255, 255, 255, 0.3);
  }
  70% {
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.15), 0 0 0 12px rgba(255, 255, 255, 0);
  }
  100% {
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.15), 0 0 0 0 rgba(255, 255, 255, 0);
  }
}

.a-cta-pulse {
  animation: ctaPulse 2.5s ease-in-out infinite;
}

.a-cta-pulse:hover {
  animation: none;
}

.a-cta-pulse--white {
  animation: ctaPulseWhite 2.5s ease-in-out infinite;
}

.a-cta-pulse--white:hover {
  animation: none;
}

/* ==========================================================================
   7. YOUTUBE THUMBNAIL HOVER
   ========================================================================== */
.lp-yt-card,
[class*="yt-card"],
[data-yt-id] {
  overflow: hidden;
  cursor: pointer;
}

.lp-yt-card img,
[class*="yt-card"] img,
[data-yt-id] img {
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.lp-yt-card:hover img,
[class*="yt-card"]:hover img,
[data-yt-id]:hover img {
  transform: scale(1.05);
}

/* Play button pulse */
@keyframes playBtnPulse {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  }
  50% {
    transform: translate(-50%, -50%) scale(1.08);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  }
}

.lp-yt-card__play,
[class*="yt-card"] [class*="play"],
[data-yt-id] [class*="play"] {
  animation: playBtnPulse 2s ease-in-out infinite;
}

.lp-yt-card:hover .lp-yt-card__play,
[data-yt-id]:hover [class*="play"] {
  animation: none;
  transform: translate(-50%, -50%) scale(1.1);
}

/* ==========================================================================
   8. COMPARISON TABLE HIGHLIGHT
   ========================================================================== */
@keyframes recommendedPulse {
  0%, 100% {
    background-color: rgba(6, 199, 85, 0.06);
  }
  50% {
    background-color: rgba(6, 199, 85, 0.12);
  }
}

.lp-agency-compare__table .col-sline {
  animation: recommendedPulse 3s ease-in-out infinite;
}

/* Recommended badge */
@keyframes badgeBounce {
  0%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(-3px);
  }
}

[class*="recommended-badge"],
[class*="compare"] .badge {
  animation: badgeBounce 2s ease-in-out infinite;
}

/* ==========================================================================
   9. FLOATING CTA ENHANCED (scroll direction aware)
   Only applies when CTA is already in visible state from main.js
   ========================================================================== */
.c-floating-cta.is-visible.is-scroll-up {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.c-floating-cta.is-visible.is-scroll-down {
  transform: translateY(80px);
  opacity: 0;
  visibility: hidden;
}

/* ==========================================================================
   10. ACCORDION SMOOTH HEIGHT (enhancement, not override)
   ========================================================================== */

/* Smooth transition for accordion bodies managed by main.js */
.c-accordion__body,
.c-accordion__content,
.c-accordion__panel {
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Accordion icon rotation on open */
.c-accordion__icon,
[class*="accordion"] [class*="chevron"] {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-accordion__item.is-open .c-accordion__icon,
.is-open > [class*="trigger"] [class*="chevron"],
.lp-curriculum__module.is-open .lp-curriculum__icon {
  transform: rotate(180deg);
}

/* ==========================================================================
   11. PARALLAX SECTIONS (enhanced background effect)
   ========================================================================== */
[data-enhanced-parallax] {
  will-change: transform;
  transition: transform 0.05s linear;
}

/* ==========================================================================
   12. COUNTER ANIMATION (enhanced odometer feel)
   ========================================================================== */
[data-counter] {
  font-variant-numeric: tabular-nums;
}

[data-counter].is-counting {
  transition: opacity 0.3s ease;
}

/* ==========================================================================
   13. SECTION ENTRANCE ANIMATIONS
   ========================================================================== */

/* Section label slide-in */
.c-section-heading__en,
.c-section-label,
[class*="section__label"] {
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   14. ENHANCED CARD HOVER - Glassmorphism & Gradient Border
   ========================================================================== */

/* Subtle gradient top border on card hover */
.s-services__card::before,
.p-step__support-card::before,
.p-step__persona-card::before,
.p-beauty__why-card::before,
.p-agency__strength-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary, #00e676));
  opacity: 0;
  transition: opacity 0.4s ease;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  z-index: 1;
}

.s-services__card:hover::before,
.p-step__support-card:hover::before,
.p-step__persona-card:hover::before,
.p-beauty__why-card:hover::before,
.p-agency__strength-card:hover::before {
  opacity: 1;
}

/* ==========================================================================
   15. FLOATING DECORATION ANIMATION
   ========================================================================== */
@keyframes floatSoft {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  33% {
    transform: translateY(-8px) rotate(1deg);
  }
  66% {
    transform: translateY(4px) rotate(-0.5deg);
  }
}

.c-decoration {
  animation: floatSoft 8s ease-in-out infinite;
}

.c-decoration--bottom-left {
  animation-delay: -2s;
}

/* ==========================================================================
   16. LINK UNDERLINE ANIMATION
   ========================================================================== */
.s-services__card-link,
.l-footer__link {
  position: relative;
}

.s-services__card-link::before,
.l-footer__link::before {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: currentColor;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.s-services__card-link:hover::before,
.l-footer__link:hover::before {
  width: 100%;
}

/* ==========================================================================
   17. SMOOTH GRADIENT TEXT (section headings)
   ========================================================================== */
@keyframes gradientTextShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.c-section-heading__en {
  background: linear-gradient(
    90deg,
    var(--color-brand-primary),
    var(--color-brand-secondary, #00e676),
    var(--color-brand-primary)
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradientTextShift 6s ease-in-out infinite;
}

/* Dark section override */
.l-section--dark .c-section-heading__en,
[style*="background-color: #1a1a1a"] .c-section-heading__en,
[style*="background:#1a1a1a"] .c-section-heading__en {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.6),
    rgba(255, 255, 255, 0.9),
    rgba(255, 255, 255, 0.6)
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradientTextShift 6s ease-in-out infinite;
}

/* ==========================================================================
   18. STAGGER DELAY REFINEMENT
   ========================================================================== */
[data-animate-stagger] > [data-stagger-child]:nth-child(1) { transition-delay: 0s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(2) { transition-delay: 0.08s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(3) { transition-delay: 0.16s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(4) { transition-delay: 0.24s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(5) { transition-delay: 0.32s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(6) { transition-delay: 0.4s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(7) { transition-delay: 0.48s; }
[data-animate-stagger] > [data-stagger-child]:nth-child(8) { transition-delay: 0.56s; }

/* ==========================================================================
   19. IMAGE REVEAL ON SCROLL
   ========================================================================== */
[data-animate="image-reveal"] {
  clip-path: inset(0 100% 0 0);
}

[data-animate="image-reveal"].is-visible {
  clip-path: inset(0 0 0 0);
  transition: clip-path 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   20. FOCUS RING ANIMATION
   ========================================================================== */
@keyframes focusRingPulse {
  0%, 100% {
    outline-offset: 2px;
  }
  50% {
    outline-offset: 4px;
  }
}

:focus-visible {
  animation: focusRingPulse 1.5s ease-in-out infinite;
}

/* ==========================================================================
   21. SECTION NUMBER BADGE ENTRANCE
   ========================================================================== */
@keyframes badgeEntrance {
  0% {
    transform: translateX(-50%) scale(0);
    opacity: 0;
  }
  60% {
    transform: translateX(-50%) scale(1.15);
  }
  100% {
    transform: translateX(-50%) scale(1);
    opacity: 1;
  }
}

.p-step__intro-card-number,
.p-beauty__why-number,
.p-step__pricing-badge {
  animation: badgeEntrance 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-play-state: paused;
}

.is-visible .p-step__intro-card-number,
.is-visible .p-beauty__why-number,
.is-visible .p-step__pricing-badge,
[data-animate].is-visible .p-step__intro-card-number,
[data-animate].is-visible .p-beauty__why-number,
[data-animate].is-visible .p-step__pricing-badge {
  animation-play-state: running;
}

/* Stagger badge entrance */
[data-animate-delay="100"] .p-step__intro-card-number,
[data-animate-delay="100"] .p-beauty__why-number {
  animation-delay: 0.15s;
}
[data-animate-delay="200"] .p-step__intro-card-number,
[data-animate-delay="200"] .p-beauty__why-number {
  animation-delay: 0.25s;
}
[data-animate-delay="300"] .p-step__intro-card-number,
[data-animate-delay="300"] .p-beauty__why-number {
  animation-delay: 0.35s;
}

/* ==========================================================================
   22. MARQUEE HOVER PAUSE
   ========================================================================== */
.c-marquee:hover .c-marquee__track {
  animation-play-state: paused;
}

/* ==========================================================================
   23. SMOOTH SCROLL INDICATOR
   ========================================================================== */
@keyframes scrollIndicatorBounce {
  0%, 100% {
    transform: translateY(0);
    opacity: 1;
  }
  50% {
    transform: translateY(8px);
    opacity: 0.4;
  }
}

.s-hero__scroll-indicator {
  animation: scrollIndicatorBounce 2s ease-in-out infinite;
}

/* ==========================================================================
   99. REDUCED MOTION - Disable ALL enhanced animations
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .c-scroll-progress__bar {
    animation: none;
    transition: none;
  }

  [data-split-text] .a-enhanced-char {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .lp-hero--animated-bg,
  .lp-agency-hero--animated-bg {
    animation: none !important;
  }

  .a-pulse-glow,
  .a-pulse-glow--white,
  .a-number-badge-pulse,
  .a-cta-pulse,
  .a-cta-pulse--white {
    animation: none !important;
  }

  .lp-yt-card img,
  [data-yt-id] img {
    transition: none !important;
  }

  .lp-yt-card__play,
  [data-yt-id] [class*="play"] {
    animation: none !important;
  }

  .lp-agency-compare__table .col-sline,
  [class*="recommended-badge"],
  [class*="compare"] .badge {
    animation: none !important;
  }

  .c-accordion__body,
  .c-accordion__content,
  .c-accordion__panel {
    transition: none !important;
  }

  [data-enhanced-parallax] {
    transition: none !important;
    will-change: auto !important;
  }

  .c-floating-cta.is-visible.is-scroll-up,
  .c-floating-cta.is-visible.is-scroll-down {
    transition: none !important;
  }

  /* New enhanced animations - reduced motion overrides */
  .c-decoration {
    animation: none !important;
  }

  .c-section-heading__en {
    animation: none !important;
    -webkit-text-fill-color: currentColor !important;
    background: none !important;
  }

  .p-step__intro-card-number,
  .p-beauty__why-number,
  .p-step__pricing-badge {
    animation: none !important;
    opacity: 1 !important;
  }

  .s-hero__scroll-indicator {
    animation: none !important;
  }

  [data-animate="image-reveal"] {
    clip-path: none !important;
  }

  :focus-visible {
    animation: none !important;
  }

  .s-services__card::before,
  .p-step__support-card::before,
  .p-step__persona-card::before,
  .p-beauty__why-card::before,
  .p-agency__strength-card::before {
    transition: none !important;
  }

  .s-services__card-link::before,
  .l-footer__link::before {
    transition: none !important;
  }
}

/* =================================================================
   UI POLISH - Global Design/UX Improvements
   Applied to: All LP pages + TOP page
   =================================================================
   This file fixes:
   - Typography hierarchy & readability
   - Section spacing (responsive)
   - CTA button sizing & tap targets
   - Color contrast (WCAG AA)
   - Card layout consistency
   - Responsive breakpoints
   - Desktop-only line breaks
   ================================================================= */

/* ===== 1. DESKTOP-ONLY LINE BREAK UTILITY ===== */
.br-desktop {
  display: inline;
}
@media (max-width: 767px) {
  .br-desktop {
    display: none;
  }
}
/* Mobile-only line break */
.br-mobile {
  display: none;
}
@media (max-width: 767px) {
  .br-mobile {
    display: inline;
  }
}

/* ===== 2. GLOBAL TYPOGRAPHY IMPROVEMENTS ===== */

/* Body text readability - Japanese-optimized */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Ensure minimum font sizes on mobile */
@media (max-width: 767px) {
  body {
    font-size: 15px;
  }
  p, li, td, th, dd, dt {
    font-size: max(0.875rem, 14px);
  }
}

/* Body text max-width for readability */
.l-container p,
.l-section p:not([class]),
.lp-agency-section p:not([class]) {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

/* Japanese text spacing */
.l-container p,
.l-section p,
.lp-agency-section p,
.lp-agency-section__sub,
.lp-hero__sub,
.p-univ-hero__sub {
  line-height: 1.85;
  letter-spacing: 0.02em;
}

/* Heading hierarchy - ensure consistent sizing */
h1 {
  font-size: clamp(1.75rem, 5.5vw, 3.5rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
h2 {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
}
h3 {
  font-size: clamp(1.125rem, 2.5vw, 1.5rem);
  line-height: 1.4;
}

@media (max-width: 767px) {
  h1 { font-size: clamp(1.5rem, 7vw, 2.25rem); }
  h2 { font-size: clamp(1.25rem, 5vw, 1.75rem); }
  h3 { font-size: clamp(1rem, 3.5vw, 1.25rem); }
}


/* ===== 3. SECTION SPACING (RESPONSIVE) ===== */

/* Consistent section padding with clamp */
.l-section,
.lp-agency-section {
  padding-top: clamp(3rem, 8vw, 6rem);
  padding-bottom: clamp(3rem, 8vw, 6rem);
}

/* Section heading bottom margin */
.c-section-heading {
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

/* CTA sections need extra breathing room */
.lp-inline-cta,
.p-univ__mid-cta {
  padding-top: clamp(2.5rem, 6vw, 4rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

/* Final CTA sections - dramatic spacing */
.lp-final-cta,
.lp-agency-final-cta {
  padding-top: clamp(4rem, 10vw, 7rem);
  padding-bottom: clamp(4rem, 10vw, 7rem);
}

/* Container horizontal padding on mobile */
@media (max-width: 767px) {
  .l-container {
    padding-left: clamp(1rem, 5vw, 1.5rem);
    padding-right: clamp(1rem, 5vw, 1.5rem);
  }
}

/* Tablet container padding */
@media (min-width: 768px) and (max-width: 1024px) {
  .l-container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}


/* ===== 4. CTA BUTTON IMPROVEMENTS ===== */

/* Ensure all CTA buttons meet tap target size */
.c-btn,
.c-btn--primary,
.c-btn--lg,
.s-hero__btn-primary,
.l-header__cta-btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Primary CTA - ensure sufficient padding */
.c-btn--primary {
  padding: 0.875rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 12px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Large CTA buttons */
.c-btn--lg {
  padding: 1rem 2.5rem;
  font-size: 1.05rem;
  min-height: 56px;
}

/* CTA surrounding space */
.c-btn--primary + .cro-micro-copy,
.c-btn--lg + .cro-micro-copy {
  margin-top: 0.75rem;
}

/* Ghost/Secondary buttons */
.c-btn--ghost,
.c-btn--secondary,
.c-btn--outline {
  min-height: 48px;
  padding: 0.75rem 1.75rem;
}

/* Mobile CTA full-width */
@media (max-width: 767px) {
  .c-btn--lg {
    width: 100%;
    max-width: 360px;
    padding: 1rem 1.5rem;
    font-size: 0.95rem;
  }
  /* Header CTA stays compact */
  .lp-header__cta .c-btn,
  .p-lp-header__cta .c-btn,
  .l-header__cta-btn {
    min-height: 44px;
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
    width: auto;
    max-width: none;
  }
}


/* ===== 5. COLOR CONTRAST FIXES (WCAG AA) ===== */

/* Fix low-contrast text */
/* #999 on white = 2.85:1 (FAIL) -> #666 = 5.74:1 (PASS) */
.cro-micro-copy {
  color: #666;
  font-size: 0.78rem;
}
.cro-micro-copy--light {
  color: rgba(255, 255, 255, 0.7);
}

/* Media bar label - fix contrast */
.cro-media-bar__label {
  color: #777;
  font-size: 0.7rem;
}

/* Privacy footer - ensure readable */
.cro-privacy-footer {
  color: #888;
  font-size: 0.72rem;
}

/* CRO authority badges - improve readability */
.cro-authority-badge {
  color: #777;
  font-size: 0.72rem;
}

/* Risk reversal text */
.cro-risk-reversal {
  color: #555;
  font-size: 0.78rem;
}

/* Dark theme contrast fixes */
.lp-agency-body .cro-micro-copy {
  color: rgba(255, 255, 255, 0.6);
}
.lp-agency-body .cro-media-bar__label {
  color: rgba(255, 255, 255, 0.45);
}
.lp-agency-body .cro-authority-badge {
  color: rgba(255, 255, 255, 0.5);
}
.lp-agency-body .cro-risk-reversal {
  color: rgba(255, 255, 255, 0.6);
}
.lp-agency-body .cro-privacy-footer {
  color: rgba(255, 255, 255, 0.4);
}

/* Preview/TOP dark theme contrast fixes */
.has-preview-nav:not(.page-lp-step):not(.has-lp-header) .cro-micro-copy {
  color: rgba(255, 255, 255, 0.6);
}
.has-preview-nav:not(.page-lp-step):not(.has-lp-header) .cro-risk-reversal {
  color: rgba(255, 255, 255, 0.6);
}

/* Footer link contrast */
.lp-footer__links a {
  color: #555;
}
.lp-footer__copy {
  color: #888;
}

/* Loss aversion text - improve contrast */
.cro-loss-aversion__text {
  color: #777;
}


/* ===== 6. CARD LAYOUT CONSISTENCY ===== */

/* Ensure grid cards have equal height */
.lp-solution__cards,
.lp-proof__grid,
.lp-tiers__grid,
.lp-agency-reasons__grid,
.lp-agency-pricing__grid,
.lp-agency-services__grid,
.p-univ__curriculum-grid,
.p-univ__testimonials-grid,
.cro-diagnostic__grid {
  align-items: stretch;
}

/* Cards should fill their grid cell */
.lp-solution__card,
.lp-proof__card,
.lp-tier__card,
.lp-agency-reason-card,
.lp-agency-pricing-card,
.lp-agency-service-card,
.p-univ__curriculum-card,
.p-univ__testimonial-card,
.cro-diagnostic__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Card text fills remaining space */
.lp-solution__card-desc,
.lp-agency-reason-card__desc,
.lp-agency-service-card__desc,
.p-univ__curriculum-desc,
.cro-diagnostic__card-desc {
  flex: 1;
}

/* Unified card border-radius */
.lp-solution__card,
.lp-proof__card,
.lp-tier__card,
.lp-agency-reason-card,
.lp-agency-pricing-card,
.lp-agency-service-card,
.lp-agency-pain__card,
.lp-agency-clients__card,
.p-univ__curriculum-card,
.p-univ__testimonial-card,
.p-univ__stat-card,
.cro-diagnostic__card {
  border-radius: 16px;
}

/* Mobile single-column cards */
@media (max-width: 767px) {
  .lp-solution__cards,
  .lp-agency-reasons__grid,
  .lp-agency-services__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .lp-proof__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }

  .lp-tiers__grid,
  .lp-agency-pricing__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}


/* ===== 7. IMAGE & VIDEO CONSISTENCY ===== */

/* YouTube thumbnails - correct 16:9 aspect ratio */
.lp-yt-card > div {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.lp-yt-card img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Unified image border-radius */
.c-card__image,
.c-media-card__image,
.lp-yt-card,
.lp-instructor__image,
.p-univ__instructor-image,
.lp-agency-team-card__photo,
.lp-agency-hero__photo {
  border-radius: 16px;
  overflow: hidden;
}

/* Hero photos - consistent treatment */
.lp-agency-hero__photo {
  max-width: 960px;
  margin: 2.5rem auto 0;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.2);
}
.lp-agency-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ===== 8. RESPONSIVE ADJUSTMENTS ===== */

/* Tablet (768px - 1024px) */
@media (min-width: 768px) and (max-width: 1024px) {
  .l-grid--2 {
    gap: 1.5rem;
  }

  .lp-hero__trust {
    gap: 0.75rem;
  }

  .lp-hero__trust-item {
    min-width: 100px;
    padding: 0.75rem 1rem;
  }

  .lp-agency-hero__trust {
    gap: 0.75rem;
  }

  .lp-agency-team-card {
    grid-template-columns: 200px 1fr;
    gap: 1.5rem;
    padding: 1.75rem;
  }

  .lp-agency-scope__row {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Small phones (< 375px) */
@media (max-width: 374px) {
  .lp-hero__heading,
  .lp-agency-hero__heading,
  .p-univ-hero__title {
    font-size: 1.5rem;
  }

  .lp-hero__sub,
  .lp-agency-hero__sub,
  .p-univ-hero__sub {
    font-size: 0.875rem;
  }

  .lp-hero__trust-item,
  .lp-agency-hero__trust-item {
    min-width: 80px;
    padding: 0.5rem;
  }

  .lp-hero__trust-number,
  .lp-agency-hero__trust-number {
    font-size: 1.25rem;
  }

  .lp-hero__trust-label,
  .lp-agency-hero__trust-label {
    font-size: 0.6rem;
  }

  .c-btn--lg {
    font-size: 0.85rem;
    padding: 0.875rem 1rem;
  }
}

/* Mobile (375px - 767px) */
@media (max-width: 767px) {
  /* Hero sections - reduce min-height on mobile */
  .lp-hero,
  .lp-agency-hero,
  .p-univ-hero,
  .s-hero--top {
    min-height: auto;
    padding-top: 100px;
    padding-bottom: 3rem;
  }

  /* Trust badges wrap nicely */
  .lp-hero__trust,
  .lp-agency-hero__trust {
    gap: 0.5rem;
    justify-content: center;
  }

  .lp-hero__trust-item,
  .lp-agency-hero__trust-item {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 0;
  }

  /* Pain cards - single column */
  .lp-agency-pain__grid {
    grid-template-columns: 1fr;
  }

  /* Flow timeline - adjust left spacing */
  .lp-agency-flow__list::before {
    left: 20px;
  }
  .lp-agency-flow__dot {
    width: 42px;
    height: 42px;
    font-size: 0.85rem;
  }
  .lp-agency-flow__step {
    gap: 1rem;
  }

  /* Comparison table - horizontal scroll hint */
  .lp-compare__wrap,
  .p-univ__comparison-wrap {
    position: relative;
  }
  .lp-compare__wrap::after,
  .p-univ__comparison-wrap::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 40px;
    background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.8));
    pointer-events: none;
  }

  /* Text doesn't span full width */
  .lp-hero__sub,
  .lp-agency-hero__sub,
  .p-univ-hero__sub {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  /* Inline CTA responsive */
  .lp-inline-cta {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  /* Diagnostic cards - single column */
  .cro-diagnostic__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  /* Media grid mobile */
  .s-media-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  /* FAQ accordion spacing */
  .c-accordion__header {
    padding: 1rem;
  }
  .c-accordion__body {
    padding: 0 1rem 1rem;
  }
}


/* ===== 9. NAVIGATION IMPROVEMENTS ===== */

/* Header scroll shadow */
.l-header.is-scrolled,
.lp-header.is-scrolled,
.p-lp-header.is-scrolled {
  box-shadow: 0 2px 24px rgba(0, 0, 0, 0.08);
}

/* Floating CTA improvements */
.c-floating-cta__btn {
  min-height: 52px;
  padding: 0.875rem 2rem;
  font-size: 0.95rem;
  border-radius: 100px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

@media (max-width: 767px) {
  .c-floating-cta__btn {
    min-height: 48px;
    padding: 0.75rem 1.5rem;
    font-size: 0.85rem;
  }
}


/* ===== 10. MICRO-INTERACTION POLISH ===== */

/* Smooth card hover transitions */
.c-card,
.c-card--gradient-border,
.lp-solution__card,
.lp-proof__card,
.lp-tier__card,
.lp-agency-reason-card,
.lp-agency-pricing-card,
.lp-agency-service-card,
.lp-agency-pain__card,
.lp-agency-clients__card,
.p-univ__curriculum-card,
.p-univ__testimonial-card,
.p-univ__stat-card,
.cro-diagnostic__card,
.c-media-card {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.3s ease;
}

/* Focus visible for keyboard navigation */
.c-btn:focus-visible,
.c-card:focus-visible,
.cro-diagnostic__card:focus-visible,
a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 4px;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ===== 11. FAQ ACCORDION POLISH ===== */

/* FAQ items - consistent spacing and readability */
.c-accordion__header,
.lp-faq .c-accordion__trigger,
.lp-agency-faq__trigger {
  min-height: 56px;
  padding: 1rem 0;
}

.c-accordion__body p,
.lp-faq .c-accordion__content p,
.lp-agency-faq__answer {
  line-height: 1.85;
  letter-spacing: 0.02em;
}

@media (max-width: 767px) {
  .c-accordion__header,
  .lp-faq .c-accordion__trigger {
    font-size: 0.9rem;
  }
}


/* ===== 12. COMPARISON TABLE POLISH ===== */

.lp-compare__table,
.lp-agency-compare__table,
.lp-agency-plan-table,
.p-univ__comparison-table {
  border-radius: 12px;
  overflow: hidden;
}

.lp-compare__table th,
.lp-compare__table td,
.p-univ__comparison-table th,
.p-univ__comparison-table td {
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
}

@media (max-width: 767px) {
  .lp-compare__table th,
  .lp-compare__table td,
  .p-univ__comparison-table th,
  .p-univ__comparison-table td {
    padding: 0.625rem 0.5rem;
    font-size: 0.8rem;
  }
}


/* ===== 13. HERO LABEL/BADGE POLISH ===== */

.lp-hero__label,
.lp-agency-hero__badge,
.p-univ-hero__badge {
  font-size: clamp(0.6rem, 1.5vw, 0.75rem);
  padding: 0.5rem 1.25rem;
  letter-spacing: 0.12em;
  line-height: 1.6;
}

@media (max-width: 767px) {
  .lp-hero__label {
    font-size: 0.6rem;
    padding: 0.375rem 0.875rem;
    max-width: 90%;
    text-align: center;
  }
}


/* ===== 14. INSTRUCTOR / TEAM SECTION POLISH ===== */

@media (max-width: 767px) {
  .lp-instructor__grid,
  .p-univ__instructor-grid {
    gap: 2rem;
  }

  .lp-agency-team-card {
    grid-template-columns: 1fr;
    padding: 1.5rem;
    text-align: center;
  }

  .lp-agency-team-card__photo {
    max-width: 280px;
    margin: 0 auto;
  }
}

/* Prevent decoration overflow on mobile */
.s-mvv,
.s-services,
.s-testimonials,
.s-faq {
  position: relative;
  overflow: hidden;
}

/* Footer marquee background match */
.c-marquee--footer {
  background: var(--color-bg-accent);
}

.c-marquee--footer::before {
  background: linear-gradient(to right, var(--color-bg-accent) 0%, transparent 100%);
}

.c-marquee--footer::after {
  background: linear-gradient(to left, var(--color-bg-accent) 0%, transparent 100%);
}


/* ===== 15. FOOTER POLISH ===== */

.lp-footer,
.p-univ__footer {
  padding: clamp(1.5rem, 4vw, 2.5rem) 1.5rem;
}

.lp-footer__inner,
.p-univ__footer-inner {
  max-width: 1200px;
  margin: 0 auto;
}

@media (max-width: 767px) {
  .lp-footer__links,
  .p-univ__footer-links {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
  }
}


/* ===== 16. MARQUEE / TICKER POLISH ===== */

.s-marquee,
.c-marquee {
  padding: clamp(0.75rem, 2vw, 1.25rem) 0;
}


/* ===== 17. STATS / PROOF NUMBER POLISH ===== */

/* Ensure numbers have breathing room */
.lp-proof__card,
.p-univ__stat-card,
.lp-agency-clients__stat-card {
  padding: clamp(1.25rem, 3vw, 2rem) clamp(0.75rem, 2vw, 1.5rem);
}

@media (max-width: 767px) {
  .lp-proof__number {
    font-size: 1.75rem;
  }
  .lp-proof__label {
    font-size: 0.75rem;
  }
}


/* ===== 18. INLINE STYLE OVERRIDES ===== */

/* Fix inline-styled pain section cards in university LP */
@media (max-width: 767px) {
  [style*="grid-template-columns:repeat(auto-fit,minmax(280px,1fr))"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(auto-fit,minmax(300px,1fr))"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(auto-fit,minmax(260px,1fr))"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(auto-fit,minmax(220px,1fr))"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Fix inline styles that cause text to span too wide */
@media (max-width: 767px) {
  [style*="font-size:0.95rem"],
  [style*="font-size:1.1rem"] {
    line-height: 1.8 !important;
  }
}


/* =================================================================
   19. FINAL QUALITY AUDIT FIXES (2026-03)
   Typography, readability, visibility, contrast, mobile UX
   Applied globally to ALL preview pages
   ================================================================= */

/* --- 19a. Japanese text line-height: ensure 1.8+ for body text --- */
.s-philosophy__text,
.s-ceo__text,
.s-ceo__bio,
.s-company-ceo__bio,
.s-mission-vision__desc,
.c-testimonial__text,
.s-service-detail__desc,
.s-contact-form__lead,
.c-accordion__body p,
.s-timeline__text,
.s-company-timeline__text,
.c-card__text,
.c-media-card__desc,
.s-mvv__block-text,
.s-mvv__value-desc,
.s-mvv__intro-text,
.s-mvv__point-text,
.s-mvv__pillar-desc,
.l-footer__desc {
  line-height: 1.85;
  letter-spacing: 0.025em;
}

/* --- 19b. Low-contrast text fixes (dark backgrounds) --- */
/* Increase contrast on rgba(255,255,255,0.4) and below text */
.has-preview-nav .s-company-ceo__bio,
.has-preview-nav .s-company-timeline__text {
  color: rgba(255, 255, 255, 0.78);
}
.has-preview-nav .s-company-numbers__label {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.8125rem;
}
.has-preview-nav .s-company-info__value {
  color: rgba(255, 255, 255, 0.75);
}
.has-preview-nav .s-company-ceo__role {
  color: rgba(255, 255, 255, 0.65);
}
.has-preview-nav .s-company-ceo__stat-label {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.75rem;
}
.has-preview-nav .s-company-ceo__stat-unit {
  color: rgba(255, 255, 255, 0.65);
}
.has-preview-nav .s-company-ceo__name-en {
  color: rgba(255, 255, 255, 0.6);
}

/* Footer description text contrast */
.l-footer__desc {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.875rem;
}

/* Disclaimer/small text - ensure readable */
[style*="color:rgba(255,255,255,0.35)"] {
  color: rgba(255, 255, 255, 0.5) !important;
}
[style*="color:rgba(255,255,255,0.4)"] {
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Partners section text contrast */
.s-partners__logo {
  opacity: 0.45;
}
.s-partners:hover .s-partners__logo {
  opacity: 0.65;
}

/* --- 19c. Mobile font size minimums --- */
@media (max-width: 767px) {
  /* Ensure body text never below 14px */
  .s-philosophy__text,
  .s-ceo__text,
  .s-company-ceo__bio,
  .s-mission-vision__desc,
  .s-service-detail__desc,
  .s-timeline__text,
  .s-company-timeline__text,
  .c-accordion__body p,
  .c-card__text,
  .l-footer__desc,
  .s-mvv__value-desc,
  .s-mvv__point-text,
  .s-mvv__pillar-desc,
  .s-mvv__block-text,
  .s-mvv__intro-text {
    font-size: max(0.875rem, 14px);
  }

  /* Small helper text - min 12px */
  .cro-micro-copy,
  .cro-privacy-footer,
  .cro-risk-reversal,
  .c-testimonial__role,
  .s-numbers__label,
  .s-company-numbers__label,
  .c-card__date {
    font-size: max(0.75rem, 12px);
  }

  /* Card descriptions min readable */
  .c-media-card__desc,
  .cro-diagnostic__card-desc {
    font-size: max(0.8rem, 13px);
    line-height: 1.7;
  }
}

/* --- 19d. Section breathing room --- */
/* Extra padding for cramped sections */
.s-recruit-cta,
.s-contact-info,
.s-contact-line {
  padding-top: clamp(3rem, 8vw, 5rem);
  padding-bottom: clamp(3rem, 8vw, 5rem);
}

/* CRO media bar spacing */
.cro-media-bar {
  padding: 1.5rem 1rem;
}

/* Diagnostic section spacing */
.cro-diagnostic {
  padding: clamp(3rem, 7vw, 5rem) 1.5rem;
}

/* --- 19e. Card/image border-radius consistency --- */
/* Ensure all testimonial cards match */
[style*="border-radius:16px"] {
  border-radius: 16px;
}

/* Timeline cards */
.s-timeline__card,
.s-company-timeline__card {
  border-radius: 12px;
}

/* --- 19f. Button tap targets (min 48px) --- */
.c-btn--line {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 12px;
}

/* Contact form submit */
.s-contact-form__action .c-btn {
  min-height: 56px;
  width: 100%;
  max-width: 400px;
  font-size: 1.05rem;
}

/* Form inputs - comfortable touch targets */
.s-contact-form__input,
.s-contact-form__select,
.s-contact-form__textarea {
  min-height: 48px;
  font-size: 16px; /* Prevent iOS zoom */
  padding: 0.75rem 1rem;
  border-radius: 10px;
}

/* --- 19g. Hero section improvements --- */
/* Page heroes: adequate spacing and text contrast */
.s-hero--page {
  padding-top: clamp(6rem, 15vw, 10rem);
  padding-bottom: clamp(3rem, 6vw, 4rem);
}

.s-hero--page .s-hero__title {
  letter-spacing: -0.02em;
}

/* Company page dark hero contrast */
.s-hero--company .s-hero__subtitle {
  color: rgba(255, 255, 255, 0.7);
}

/* --- 19h. Recruit page specific --- */
.s-why__text {
  line-height: 1.85;
  letter-spacing: 0.025em;
}

/* --- 19i. Contact form label visibility --- */
.s-contact-form__label {
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 0.5rem;
  display: block;
  color: var(--color-text-primary);
}

.s-contact-form__required {
  display: inline-block;
  background: var(--color-error, #e53935);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.125rem 0.5rem;
  border-radius: 4px;
  margin-left: 0.5rem;
  vertical-align: middle;
  letter-spacing: 0.05em;
}

/* Checkbox label readable */
.s-contact-form__checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.6;
  cursor: pointer;
}

.s-contact-form__checkbox {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--color-brand-primary);
}

/* --- 19j. Samurai Beauty page fixes --- */
.p-beauty__intro-stat {
  min-width: 120px;
}

@media (max-width: 767px) {
  .p-beauty__intro-stats {
    gap: 0.75rem;
  }
  .p-beauty__intro-stat {
    flex: 1 1 calc(50% - 0.75rem);
    min-width: 0;
    padding: 1rem;
  }
}

/* --- 19k. Services page: service nav better mobile --- */
@media (max-width: 767px) {
  .s-services-nav__list {
    justify-content: flex-start;
    padding: 0 1rem;
    gap: 0.5rem;
  }
  .s-services-nav__link {
    font-size: 0.8125rem;
    padding: 0.5rem 1rem;
  }
}

/* --- 19l. Results page: case study card readability --- */
.s-case-card__text,
.s-case-card__quote {
  line-height: 1.85;
  letter-spacing: 0.025em;
}

/* --- 19m. News section: media gallery mobile --- */
@media (max-width: 767px) {
  [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
  }
}

/* --- 19n. MVV section value cards: ensure readable --- */
.s-mvv__value-title {
  line-height: 1.45;
}
.s-mvv__value-en {
  font-size: 0.75rem;
  letter-spacing: 0.05em;
}

@media (max-width: 767px) {
  .s-mvv__value-card {
    padding: 1.5rem 1.25rem;
  }
  .s-mvv__value-desc {
    font-size: 0.8125rem;
  }
}

/* --- 19o. Flow section: step text readability --- */
.s-flow__step p,
[class*="s-flow"] p {
  line-height: 1.8;
}

/* --- 19p. CEO Media list readability --- */
.s-ceo__media-list li {
  line-height: 1.7;
  padding: 0.25rem 0;
}

/* --- 19q. FAQ accordion: answer text readability --- */
.c-accordion__body {
  line-height: 1.85;
  letter-spacing: 0.02em;
}

.c-accordion__body p {
  max-width: 100%;
}

/* --- 19r. Testimonial star ratings contrast --- */
[style*="color:#e8d06c"] {
  color: #d4b84a !important;
}

/* --- 19s. Loading screen alt text (decorative) --- */
.c-loading__logo img {
  opacity: 0.8;
}

/* --- 19t. Dark section heading contrast boost --- */
.s-company-dark .c-section-heading__ja {
  color: rgba(255, 255, 255, 0.95);
}

/* --- 19u. Recruit position cards: better mobile layout --- */
@media (max-width: 767px) {
  .s-recruit__positions-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* --- 19v. Better scroll indicator visibility --- */
.s-hero__scroll-text {
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
}

/* --- 19w. Inline stat cards: consistent border-radius --- */
[style*="border-radius:16px"],
[style*="border-radius: 16px"] {
  overflow: hidden;
}

/* --- 19x. Table text on mobile --- */
@media (max-width: 767px) {
  .s-company-info__label {
    font-size: 0.8125rem;
    padding: 1rem 0.75rem;
  }
  .s-company-info__value {
    font-size: 0.8125rem;
    padding: 1rem 0.75rem;
  }

  /* Stack table rows on very small screens */
  @media (max-width: 480px) {
    .s-company-info__row {
      display: flex;
      flex-direction: column;
    }
    .s-company-info__label {
      width: 100%;
      padding-bottom: 0.25rem;
      border-bottom: none;
    }
    .s-company-info__value {
      width: 100%;
      padding-top: 0;
    }
  }
}

/* --- 19x-extra. Extracted inline styles for achievement stats --- */
/* Used in preview.html testimonials section & preview-results.html */
.s-achievement-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
  margin-bottom: var(--space-2xl);
}
.s-achievement-stat {
  text-align: center;
  padding: 2rem 1.5rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
}
.s-achievement-stat__value {
  font-family: var(--font-en);
  font-size: 2.5rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.s-achievement-stat__unit {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.6);
}
.s-achievement-stat__label {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 0.5rem;
  white-space: nowrap;
}
@media (max-width: 539px) {
  .s-achievement-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .s-achievement-stat {
    padding: 1.25rem 0.75rem;
  }
  .s-achievement-stat__value {
    font-size: 2rem;
  }
}

/* Inline CTA between sections */
.s-inline-cta {
  text-align: center;
  padding: var(--space-xl) 0;
}
.s-inline-cta__text {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 1rem;
}
.s-inline-cta__note {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 0.75rem;
}

/* --- 19y. Global inline style overrides for visibility --- */
/* Fix very low opacity colors used in inline styles */
[style*="color:rgba(255,255,255,0.3)"] {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* Fix tiny font sizes in inline styles */
@media (max-width: 767px) {
  [style*="font-size:0.75rem"] {
    font-size: 0.8125rem !important;
  }
  [style*="font-size:0.7rem"] {
    font-size: 0.8125rem !important;
  }
}

/* --- 19z. Smooth content wrapping for long Japanese text --- */
.c-card__title,
.c-media-card__title,
.s-mvv__value-title,
.s-mvv__block-heading,
.c-accordion__header span:first-child {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* CEO text line breaks for better reading */
.s-ceo__text,
.s-company-ceo__bio {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* --- 19aa. Global anchor tag improvements for accessibility --- */
.l-footer__link {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0;
}

/* Social icons: proper tap target */
.l-footer__social-icon {
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s ease;
}
.l-footer__social-icon:hover {
  background: rgba(255, 255, 255, 0.08);
}

/* =================================================================
   20. MOBILE TEXT OVERFLOW FIXES
   ================================================================= */

/* Stat labels: allow wrapping on narrow viewports */
@media (max-width: 539px) {
  .s-achievement-stat__label {
    white-space: normal;
    font-size: 0.75rem;
  }

  /* LP trust/stat labels with inline white-space:nowrap */
  .lp-agency-hero__trust-label,
  .lp-hero__trust-label {
    white-space: normal !important;
    font-size: 0.75rem !important;
  }

  /* CRO media bar items */
  .cro-media-bar__item {
    white-space: normal !important;
    text-align: center;
  }
}

/* =================================================================
   21. CARD CONTENT OVERFLOW SAFETY
   ================================================================= */

/* Prevent text from bleeding out of cards */
.p-step__intro-card-text,
.p-step__persona-desc,
.p-step__support-text,
.p-step__bonus-text,
.p-step__result-label,
.p-beauty__why-card p,
.p-beauty__menu-desc,
.p-agency__strength-text,
.s-services__card-text {
  overflow-wrap: break-word;
  word-break: break-all;
  word-break: auto-phrase; /* modern browsers: break at phrase boundaries */
}

/* Ensure card titles don't overflow */
.p-step__intro-card-title,
.p-step__persona-title,
.p-step__support-title,
.p-beauty__why-card h3,
.p-beauty__menu-name,
.p-agency__strength-title,
.s-services__card-title {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* =================================================================
   22. HORIZONTAL SCROLL PANEL TEXT FIT
   ================================================================= */

/* Ensure text fits within viewport-height panels */
.s-horizontal__panel-content h2,
.s-horizontal__panel-content h3 {
  font-size: clamp(1.25rem, 3vw, 2.5rem);
  line-height: 1.3;
}

.s-horizontal__panel-content p {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  line-height: 1.7;
}

@media (max-width: 767px) {
  .s-horizontal__panel-content {
    padding: var(--space-lg);
    overflow-y: auto;
    max-height: 80vh;
  }
}

/* =================================================================
   23. ENHANCED CARD SHADOWS & DEPTH
   ================================================================= */

/* Subtle inner glow on white cards */
.p-step__intro-card,
.p-step__persona-card,
.p-step__support-card,
.p-beauty__why-card,
.p-agency__strength-card {
  box-shadow:
    var(--shadow-card),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

/* Enhanced hover depth */
.p-step__intro-card:hover,
.p-step__persona-card:hover,
.p-step__support-card:hover,
.p-beauty__why-card:hover,
.p-agency__strength-card:hover {
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.12),
    0 4px 12px rgba(0, 0, 0, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* inline: preview.html */

    /* ===== CRO Enhancement Styles (Dark Theme) ===== */
    .cro-live-indicator {
      display: none;
    }
    .cro-live-dot {
      display: none;
    }
    .cro-media-bar {
      text-align: center;
      padding: 1.25rem 1rem;
      background: rgba(255, 255, 255, 0.02);
      border-top: 1px solid rgba(255, 255, 255, 0.04);
      border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    }
    .cro-media-bar__label {
      font-size: 0.7rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .cro-media-bar__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cro-media-bar__item {
      font-family: 'Outfit', 'Noto Sans JP', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .cro-media-bar__sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.12);
    }
    .cro-micro-copy {
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.75rem;
      line-height: 1.6;
    }
    .cro-risk-reversal {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.6);
      padding: 0.5rem 1.25rem;
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      margin-top: 0.75rem;
    }
    .cro-privacy-footer {
      text-align: center;
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.6);
      padding: 0.75rem 1rem 0;
      line-height: 1.6;
    }

    /* --- Diagnostic Navigation Section --- */
    .cro-diagnostic {
      text-align: center;
      padding: 4rem 1.5rem;
      position: relative;
    }
    .cro-diagnostic__heading {
      font-size: clamp(1.25rem, 3vw, 1.75rem);
      font-weight: 700;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
    }
    .cro-diagnostic__sub {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-bottom: 2.5rem;
    }
    .cro-diagnostic__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 1.25rem;
      max-width: 900px;
      margin: 0 auto;
    }
    .cro-diagnostic__card {
      background: var(--color-bg-white);
      border: 1px solid var(--color-border-light);
      border-radius: var(--radius-xl);
      padding: 2rem 1.5rem;
      text-align: center;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      text-decoration: none;
      display: block;
    }
    .cro-diagnostic__card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .cro-diagnostic__card-icon {
      font-size: 2rem;
      margin-bottom: 1rem;
      display: block;
    }
    .cro-diagnostic__card-title {
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
    }
    .cro-diagnostic__card-desc {
      font-size: 0.8rem;
      color: var(--color-text-secondary);
      line-height: 1.6;
      margin-bottom: 1rem;
    }
    .cro-diagnostic__card-link {
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--color-brand-primary);
      letter-spacing: 0.05em;
    }

    /* ===== Page-specific inline styles (not covered by theme CSS) ===== */

    /* Testimonial cards (preview-specific grid/card layout) */
    .s-testimonials__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
    }
    @media (min-width: 768px) {
      .s-testimonials__grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .s-testimonials__grid { grid-template-columns: repeat(2, 1fr); }
    }
    .c-testimonial {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-xl);
      box-shadow: var(--shadow-card);
      position: relative;
      border: 1px solid var(--color-border-light);
      transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s var(--ease-out-expo);
    }
    .c-testimonial:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .c-testimonial::before {
      content: "\201C";
      font-family: var(--font-en);
      font-size: 56px;
      color: var(--color-border-light);
      position: absolute;
      top: 12px;
      left: 20px;
      line-height: 1;
      opacity: 0.7;
    }
    .c-testimonial__text {
      font-size: var(--text-sm);
      line-height: var(--leading-relaxed);
      color: var(--color-text-secondary);
      margin-bottom: var(--space-xl);
      padding-top: var(--space-lg);
    }
    .c-testimonial__author {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      padding-top: var(--space-md);
      border-top: 1px solid var(--color-border-light);
    }
    .c-testimonial__avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      overflow: hidden;
      flex-shrink: 0;
    }
    .c-testimonial__name {
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: 2px;
    }
    .c-testimonial__role {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
      letter-spacing: var(--tracking-wide);
    }

    /* FAQ accordion (preview-specific card-style layout) */
    .c-accordion { border: 1px solid var(--color-border-light); border-radius: var(--radius-xl); overflow: hidden; background: var(--color-bg-white); box-shadow: var(--shadow-card); }
    .c-accordion__item { border-bottom: 1px solid var(--color-border-light); }
    .c-accordion__item:last-child { border-bottom: none; }
    .c-accordion__header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-lg);
      padding: var(--space-xl) var(--space-xl);
      background: var(--color-bg-white);
      cursor: pointer;
      font-weight: var(--fw-medium);
      font-size: var(--text-base);
      color: var(--color-text-primary);
      line-height: var(--leading-normal);
      transition: background-color 0.2s;
      text-align: left;
    }
    .c-accordion__header:hover { background: var(--color-bg-accent); }
    .c-accordion__icon {
      width: 24px;
      height: 24px;
      position: relative;
      flex-shrink: 0;
    }
    .c-accordion__icon::before,
    .c-accordion__icon::after {
      content: "";
      position: absolute;
      background: var(--color-text-muted);
      transition: transform 0.3s var(--ease-out-expo);
    }
    .c-accordion__icon::before { width: 14px; height: 2px; top: 11px; left: 5px; }
    .c-accordion__icon::after { width: 2px; height: 14px; top: 5px; left: 11px; }
    .c-accordion__body {
      max-height: 0;
      overflow: hidden;
      padding: 0 var(--space-xl);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      transition: max-height 0.4s ease, padding 0.4s ease;
    }
    .c-accordion__item.is-open .c-accordion__body {
      padding: 0 var(--space-xl) var(--space-xl);
    }
    .c-accordion__item.is-open .c-accordion__icon::after {
      transform: rotate(90deg);
    }

    /* Recruit CTA */
    .s-recruit-cta { background: var(--color-bg-white); text-align: center; position: relative; overflow: hidden; }
    .s-recruit-cta__title { font-size: var(--text-3xl); font-weight: var(--fw-bold); color: var(--color-text-primary); margin-bottom: var(--space-lg); line-height: var(--leading-snug); letter-spacing: var(--tracking-wider); }
    .s-recruit-cta__text { font-size: var(--text-base); color: var(--color-text-secondary); margin-bottom: var(--space-2xl); line-height: var(--leading-relaxed); }

    /* Partners logo strip */
    .s-partners { overflow: hidden; background: var(--color-bg-white); border-top: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light); }
    .s-partners__track {
      display: flex;
      gap: var(--space-3xl);
      animation: marqueeScroll 30s linear infinite;
    }
    .s-partners__logo {
      height: 32px;
      opacity: 0.3;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      font-family: var(--font-en);
      font-size: var(--text-lg);
      font-weight: var(--fw-semibold);
      color: var(--color-text-secondary);
      letter-spacing: 0.12em;
      white-space: nowrap;
      transition: opacity 0.3s;
    }
    .s-partners:hover .s-partners__logo {
      opacity: 0.5;
    }
    @keyframes marqueeScroll {
      from { transform: translateX(0); }
      to { transform: translateX(-50%); }
    }

    /* Marquee ticker (top, below hero) */
    .s-marquee {
      background: var(--color-bg-accent);
      padding: var(--space-lg) 0;
      overflow: hidden;
      border-bottom: 1px solid var(--color-border-light);
    }
    .s-marquee__track {
      display: flex;
      gap: var(--space-3xl);
      animation: marqueeScroll 25s linear infinite;
      font-family: var(--font-en);
      font-size: var(--text-xl);
      font-weight: var(--fw-semibold);
      color: rgba(0,0,0,0.15);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .s-marquee__item {
      display: flex;
      align-items: center;
      gap: var(--space-xl);
      flex-shrink: 0;
    }
    .s-marquee__dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--color-text-muted);
      opacity: 0.15;
    }

    /* Media cards - CSS hover replacing inline JS */
    .c-media-card {
      border-radius: 12px;
      overflow: hidden;
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.08);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .c-media-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    }
    .c-media-card__image {
      aspect-ratio: 16/10;
      overflow: hidden;
    }
    .c-media-card__image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s ease;
    }
    .c-media-card:hover .c-media-card__image img {
      transform: scale(1.03);
    }
    .c-media-card__body {
      padding: 1rem;
    }
    .c-media-card__title {
      font-size: 0.9rem;
      font-weight: 600;
      color: rgba(255,255,255,0.85);
      margin-bottom: 0.25rem;
    }
    .c-media-card__desc {
      font-size: 0.8rem;
      color: rgba(255,255,255,0.6);
    }

    /* Media grid responsive */
    .s-media-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.5rem;
    }
    @media (max-width: 767px) {
      .s-media-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
      }
    }
    @media (min-width: 1024px) {
      .s-media-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    /* Testimonial avatar gradients */
    .c-testimonial-avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-en);
      font-size: 14px;
      font-weight: 700;
      color: #fff;
      flex-shrink: 0;
    }
    .c-testimonial-avatar--1 { background: linear-gradient(135deg, #f093fb, #f5576c); }
    .c-testimonial-avatar--2 { background: linear-gradient(135deg, #4facfe, #00f2fe); }
    .c-testimonial-avatar--3 { background: linear-gradient(135deg, #43e97b, #38f9d7); }
    .c-testimonial-avatar--4 { background: linear-gradient(135deg, #fa709a, #fee140); }

  
/* inline: preview-about.html */

    /* ===== Inline section styles for About page ===== */

    /* Mission & Vision label badge */
    .s-mission-vision__label {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      margin-bottom: var(--space-md);
      padding: var(--space-xs) var(--space-md);
      background-color: var(--color-bg-accent);
      border-radius: var(--radius-full);
    }

    /* Philosophy section */
    .s-philosophy {
      position: relative;
      overflow: hidden;
    }
    .s-philosophy__inner {
      max-width: 720px;
      margin: 0 auto;
      text-align: center;
    }
    .s-philosophy__text {
      font-size: var(--text-base);
      line-height: 1.9;
      color: var(--color-text-secondary);
      margin-top: var(--space-2xl);
      letter-spacing: 0.03em;
      max-width: 680px;
      margin-left: auto;
      margin-right: auto;
    }
    .s-philosophy__text p {
      margin-bottom: var(--space-lg);
    }
    .s-philosophy__text p:last-child {
      margin-bottom: 0;
    }

    /* Mission & Vision grid */
    .s-mission-vision__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
    }
    @media (min-width: 768px) {
      .s-mission-vision__grid { grid-template-columns: repeat(2, 1fr); }
    }
    .s-mission-vision__card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-3xl) var(--space-2xl);
      text-align: center;
      box-shadow: var(--shadow-card);
      position: relative;
      overflow: hidden;
    }
    .s-mission-vision__card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--color-brand-primary), var(--color-brand-secondary));
    }
    .s-mission-vision__title {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg);
      line-height: var(--leading-snug);
    }
    @media (min-width: 768px) {
      .s-mission-vision__title {
        font-size: var(--text-2xl);
      }
    }
    .s-mission-vision__desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
    }

    /* CEO section */
    .s-ceo { position: relative; overflow: hidden; }
    .s-ceo__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-3xl);
      align-items: center;
    }
    @media (min-width: 768px) {
      .s-ceo__grid { grid-template-columns: 1.2fr 1fr; }
    }
    .s-ceo__image {
      aspect-ratio: 3 / 4;
      border-radius: var(--radius-xl);
      overflow: hidden;
    }
    .s-ceo__name {
      font-size: var(--text-3xl);
      font-weight: var(--fw-bold);
      margin-bottom: var(--space-sm);
    }
    .s-ceo__role {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-bottom: var(--space-xl);
    }
    .s-ceo__text {
      font-size: var(--text-base);
      line-height: 1.9;
      color: var(--color-text-secondary);
      letter-spacing: 0.03em;
      max-width: 560px;
    }
    .s-ceo__text p {
      margin-bottom: 1.25rem;
    }
    .s-ceo__text p:last-child {
      margin-bottom: 0;
    }

    /* ===== Timeline section — self-contained override ===== */

    /* Kill the base _timeline.css pseudo-element line on the <section> */
    .s-timeline.l-section::before {
      display: none !important;
    }

    /* Timeline body: single-column left-aligned by default */
    .s-timeline__body {
      position: relative;
      padding-left: 28px;
      max-width: 780px;
      margin: 0 auto;
    }

    /* Vertical connecting line */
    .s-timeline__body::before {
      content: "";
      position: absolute;
      top: 4px;
      bottom: 4px;
      left: 4px;
      width: 2px;
      background: rgba(255,255,255,0.15);
    }

    /* Each timeline row — !important to override _timeline.css base */
    .s-timeline__item {
      position: relative;
      margin-bottom: 1rem !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      display: block !important;
      width: auto !important;
      text-align: left;
      align-items: unset !important;
    }
    .s-timeline__item:last-child {
      margin-bottom: 0;
    }

    /* Dot / marker — small, on the vertical line */
    .s-timeline__marker {
      position: absolute !important;
      left: -28px !important;
      top: 14px !important;
      width: 10px !important;
      height: 10px !important;
      border-radius: 50% !important;
      background: var(--color-brand-primary, #c8a55a) !important;
      border: 2px solid var(--color-brand-primary, #c8a55a) !important;
      z-index: 2;
      box-sizing: border-box;
    }

    /* Card */
    .s-timeline__card {
      background: rgba(255,255,255,0.05);
      border-radius: 10px;
      padding: 0.875rem 1.125rem;
      box-shadow: 0 2px 12px rgba(0,0,0,0.15);
      position: relative;
    }

    /* Date row */
    .s-timeline__date {
      display: flex;
      align-items: baseline;
      gap: 0.375rem;
      margin-bottom: 0.2rem;
    }

    .s-timeline__year {
      font-family: var(--font-en);
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--color-brand-primary, #c8a55a);
      letter-spacing: 0.05em;
      position: static !important;
      display: inline !important;
    }

    .s-timeline__month {
      font-size: 0.8rem;
      color: rgba(255,255,255,0.5);
    }

    /* Title & text */
    .s-timeline__title {
      font-size: 0.925rem;
      font-weight: 700;
      color: #fff;
      margin-bottom: 0.2rem;
      line-height: 1.45;
    }

    .s-timeline__text {
      font-size: 0.8125rem;
      color: rgba(255,255,255,0.65);
      line-height: 1.7;
      letter-spacing: 0.02em;
    }

    /* ----- Desktop: center zigzag layout ----- */
    @media (min-width: 768px) {
      .s-timeline__body {
        padding-left: 0;
      }

      /* Keep year visible on desktop (base _timeline.css hides it) */
      .s-timeline__year {
        display: inline !important;
        position: static !important;
      }

      /* Center line */
      .s-timeline__body::before {
        left: 50%;
        transform: translateX(-50%);
        top: 4px;
        bottom: 4px;
      }

      .s-timeline__item {
        display: block !important;
        width: 50% !important;
        margin-bottom: 1.25rem !important;
      }

      /* Left items */
      .s-timeline__item--left {
        margin-left: 0 !important;
        margin-right: auto !important;
        padding-right: 2rem !important;
        padding-left: 0 !important;
        text-align: right;
      }
      .s-timeline__item--left .s-timeline__marker {
        left: auto !important;
        right: -5px !important;
        top: 14px !important;
      }
      .s-timeline__item--left .s-timeline__date {
        justify-content: flex-end;
      }

      /* Right items */
      .s-timeline__item--right {
        margin-left: auto !important;
        margin-right: 0 !important;
        padding-left: 2rem !important;
        padding-right: 0 !important;
        text-align: left;
      }
      .s-timeline__item--right .s-timeline__marker {
        left: -5px !important;
        right: auto !important;
        top: 14px !important;
      }
      .s-timeline__item--right .s-timeline__date {
        justify-content: flex-start;
      }
    }

    /* ----- Mobile: tighter ----- */
    @media (max-width: 767px) {
      .s-timeline__item {
        margin-bottom: 0.875rem;
      }
      .s-timeline__card {
        padding: 0.75rem 1rem;
      }
    }

    /* Numbers counter section */
    .s-numbers__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-xl);
    }
    @media (min-width: 768px) {
      .s-numbers__grid { grid-template-columns: repeat(4, 1fr); }
    }
    .s-numbers__item {
      text-align: center;
      padding: var(--space-lg);
    }
    .s-numbers__value {
      font-family: var(--font-en);
      font-size: var(--text-5xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-xs);
    }
    .s-numbers__unit {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-brand-secondary);
    }
    .s-numbers__label {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-top: var(--space-sm);
      letter-spacing: var(--tracking-wide);
    }

  
/* inline: preview-company.html */

    /* =============================================================
       COMPANY PAGE - DARK THEME STYLES
       ============================================================= */

    /* --- Dark Section Base --- */
    .s-company-dark {
      background: #1a1a1a;
      color: rgba(255, 255, 255, 0.85);
      position: relative;
      overflow: hidden;
    }
    .s-company-dark--alt {
      background: #1e1e1e;
    }
    .s-company-dark--gradient {
      background: linear-gradient(180deg, #1a1a1a 0%, #111 100%);
    }

    /* --- Dark Section Headings --- */
    .s-company-dark .c-section-heading__en,
    .s-company-dark .c-section-heading__ja {
      color: rgba(255, 255, 255, 0.9);
    }
    .s-company-dark .c-section-heading__en {
      background: linear-gradient(135deg, rgba(255,255,255,0.95), rgba(255,255,255,0.6));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    /* --- Divider in dark context --- */
    .s-company-dark + .c-section-divider,
    .c-section-divider--dark {
      color: #1a1a1a;
    }

    /* =============================================================
       1. PAGE HERO - DARK
       ============================================================= */
    .s-hero--company {
      background: #1e1e1e;
      position: relative;
      overflow: hidden;
    }
    .s-hero--company::before {
      content: "";
      position: absolute;
      top: -50%;
      right: -20%;
      width: 600px;
      height: 600px;
      background: radial-gradient(circle, rgba(255,255,255,0.03) 0%, transparent 70%);
      pointer-events: none;
    }
    .s-hero--company::after {
      content: "";
      position: absolute;
      bottom: -30%;
      left: -10%;
      width: 400px;
      height: 400px;
      background: radial-gradient(circle, rgba(255,255,255,0.02) 0%, transparent 70%);
      pointer-events: none;
    }
    .s-hero--company .s-hero__subtitle {
      color: rgba(255, 255, 255, 0.65);
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(0.75rem, 1.5vw, 0.875rem);
      letter-spacing: 0.3em;
      text-transform: uppercase;
    }
    .s-hero--company .s-hero__title {
      color: rgba(255, 255, 255, 0.95);
      font-size: clamp(2rem, 5vw, 3.5rem);
    }
    .s-hero--company .c-breadcrumb__link,
    .s-hero--company .c-breadcrumb__current {
      color: rgba(255, 255, 255, 0.65);
    }
    .s-hero--company .c-breadcrumb__link:hover {
      color: rgba(255, 255, 255, 0.8);
    }

    /* =============================================================
       2. COMPANY INFO TABLE - DARK THEME
       ============================================================= */
    .s-company-info__table-wrap {
      max-width: 900px;
      margin: 0 auto;
    }
    .s-company-info__table {
      width: 100%;
      border-collapse: collapse;
    }
    .s-company-info__row {
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      transition: background-color 0.3s ease;
    }
    .s-company-info__row:hover {
      background: rgba(255, 255, 255, 0.02);
    }
    .s-company-info__row:first-child {
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .s-company-info__label {
      padding: 1.25rem 1rem;
      font-size: 0.875rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.95);
      white-space: nowrap;
      vertical-align: top;
      width: 140px;
      font-family: 'Noto Sans JP', sans-serif;
      position: relative;
      letter-spacing: 0.05em;
    }
    .s-company-info__label::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 3px;
      height: 16px;
      background: linear-gradient(180deg, #fff, rgba(255,255,255,0.3));
      border-radius: 2px;
      opacity: 0;
      transition: opacity 0.3s ease;
    }
    .s-company-info__row:hover .s-company-info__label::before {
      opacity: 1;
    }
    @media (min-width: 768px) {
      .s-company-info__label {
        width: 200px;
        padding: 1.5rem 2rem;
        font-size: 0.9375rem;
      }
    }
    .s-company-info__value {
      padding: 1.25rem 1rem;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
      vertical-align: top;
      font-family: 'Noto Sans JP', sans-serif;
    }
    @media (min-width: 768px) {
      .s-company-info__value {
        padding: 1.5rem 2rem;
        font-size: 0.9375rem;
      }
    }
    .s-company-info__value a {
      color: rgba(255, 255, 255, 0.8);
      text-decoration: none;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2);
      transition: all 0.3s ease;
    }
    .s-company-info__value a:hover {
      color: #fff;
      border-bottom-color: rgba(255, 255, 255, 0.6);
    }

    /* =============================================================
       3. NUMBERS SECTION
       ============================================================= */
    .s-company-numbers__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
      max-width: 1100px;
      margin: 0 auto;
    }
    @media (min-width: 640px) {
      .s-company-numbers__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
      }
    }
    @media (min-width: 1024px) {
      .s-company-numbers__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1.5rem;
      }
    }
    .s-company-numbers__card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 16px;
      padding: 2rem 1.25rem;
      text-align: center;
      position: relative;
      overflow: hidden;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      transition: all 0.4s ease;
    }
    .s-company-numbers__card:hover {
      background: rgba(255, 255, 255, 0.06);
      border-color: rgba(255, 255, 255, 0.15);
      transform: translateY(-4px);
    }
    .s-company-numbers__card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    }
    .s-company-numbers__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      margin: 0 auto 1rem;
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      color: rgba(255, 255, 255, 0.7);
    }
    .s-company-numbers__value {
      font-family: 'Outfit', sans-serif;
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 800;
      color: rgba(255, 255, 255, 0.95);
      line-height: 1;
      margin-bottom: 0.25rem;
      letter-spacing: -0.02em;
    }
    .s-company-numbers__unit {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.875rem;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.65);
    }
    .s-company-numbers__label {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.75rem;
      letter-spacing: 0.1em;
      line-height: 1.5;
    }

    /* =============================================================
       4. TIMELINE / HISTORY
       ============================================================= */
    .s-company-timeline__body {
      position: relative;
      max-width: 900px;
      margin: 0 auto;
      padding-left: 48px;
    }
    .s-company-timeline__line {
      position: absolute;
      top: 0;
      left: 23px;
      width: 2px;
      height: 100%;
      background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(255,255,255,0.15) 5%,
        rgba(255,255,255,0.15) 95%,
        transparent 100%
      );
    }
    .s-company-timeline__item {
      position: relative;
      margin-bottom: 2.5rem;
    }
    .s-company-timeline__item:last-child {
      margin-bottom: 0;
    }
    .s-company-timeline__marker {
      position: absolute;
      left: -33px;
      top: 8px;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #1e1e1e;
      border: 2px solid rgba(255, 255, 255, 0.3);
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all 0.3s ease;
    }
    .s-company-timeline__marker::after {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.6);
      transition: all 0.3s ease;
    }
    .s-company-timeline__item:hover .s-company-timeline__marker {
      border-color: rgba(255, 255, 255, 0.7);
      box-shadow: 0 0 16px rgba(255, 255, 255, 0.15);
    }
    .s-company-timeline__item:hover .s-company-timeline__marker::after {
      background: #fff;
    }
    .s-company-timeline__marker--highlight {
      border-color: rgba(255, 255, 255, 0.7);
      background: rgba(255, 255, 255, 0.1);
    }
    .s-company-timeline__marker--highlight::after {
      background: #fff;
      width: 8px;
      height: 8px;
    }
    .s-company-timeline__year {
      font-family: 'Outfit', sans-serif;
      font-size: 1.25rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.9);
      letter-spacing: 0.05em;
      margin-bottom: 0.25rem;
    }
    .s-company-timeline__year span {
      font-size: 0.8125rem;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.6);
      margin-left: 0.5rem;
    }
    .s-company-timeline__card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
      padding: 1.25rem 1.5rem;
      margin-top: 0.5rem;
      transition: all 0.3s ease;
    }
    .s-company-timeline__item:hover .s-company-timeline__card {
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(255, 255, 255, 0.12);
    }
    .s-company-timeline__title {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.9);
      margin-bottom: 0.375rem;
      line-height: 1.5;
    }
    .s-company-timeline__text {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.8125rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
    }
    .s-company-timeline__badge {
      display: inline-block;
      font-family: 'Outfit', sans-serif;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.8);
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.1);
      padding: 0.125rem 0.625rem;
      border-radius: 100px;
      margin-bottom: 0.5rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    /* Desktop: alternating timeline */
    @media (min-width: 768px) {
      .s-company-timeline__body {
        padding-left: 0;
      }
      .s-company-timeline__line {
        left: 50%;
        transform: translateX(-50%);
      }
      .s-company-timeline__item {
        display: flex;
        width: 100%;
      }
      .s-company-timeline__item--left {
        justify-content: flex-end;
        padding-right: calc(50% + 2.5rem);
        text-align: right;
      }
      .s-company-timeline__item--right {
        padding-left: calc(50% + 2.5rem);
        text-align: left;
      }
      .s-company-timeline__marker {
        left: calc(50% - 10px);
      }
      .s-company-timeline__content {
        max-width: 380px;
      }
    }

    /* =============================================================
       5. CEO / FOUNDER SECTION
       ============================================================= */
    .s-company-ceo__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 3rem;
      align-items: center;
      max-width: 1000px;
      margin: 0 auto;
    }
    @media (min-width: 768px) {
      .s-company-ceo__grid {
        grid-template-columns: 340px 1fr;
        gap: 4rem;
      }
    }
    .s-company-ceo__image-wrap {
      position: relative;
    }
    .s-company-ceo__image {
      aspect-ratio: 3 / 4;
      border-radius: 16px;
      overflow: hidden;
      position: relative;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.08);
    }
    .s-company-ceo__image-inner {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Outfit', sans-serif;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.1em;
    }
    .s-company-ceo__image-decoration {
      position: absolute;
      bottom: -12px;
      right: -12px;
      width: 120px;
      height: 120px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 16px;
      z-index: -1;
    }
    .s-company-ceo__name-group {
      margin-bottom: 1.5rem;
    }
    .s-company-ceo__role {
      font-family: 'Outfit', sans-serif;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.2em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .s-company-ceo__name {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: clamp(1.75rem, 4vw, 2.5rem);
      font-weight: 700;
      color: rgba(255, 255, 255, 0.95);
      line-height: 1.3;
      margin-bottom: 0.25rem;
    }
    .s-company-ceo__name-en {
      font-family: 'Outfit', sans-serif;
      font-size: 0.8125rem;
      font-weight: 300;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.15em;
    }
    .s-company-ceo__sns-list {
      display: flex;
      gap: 0.75rem;
      margin-bottom: 2rem;
      flex-wrap: wrap;
    }
    .s-company-ceo__sns-item {
      display: inline-flex;
      align-items: center;
      gap: 0.375rem;
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.65);
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      padding: 0.375rem 0.75rem;
      border-radius: 100px;
      text-decoration: none;
      transition: all 0.3s ease;
      letter-spacing: 0.03em;
    }
    .s-company-ceo__sns-item:hover {
      background: rgba(255, 255, 255, 0.08);
      border-color: rgba(255, 255, 255, 0.15);
      color: rgba(255, 255, 255, 0.8);
    }
    .s-company-ceo__sns-item svg {
      width: 14px;
      height: 14px;
      opacity: 0.6;
    }
    .s-company-ceo__stats {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1rem;
      margin-bottom: 2rem;
      padding: 1.25rem;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
    }
    .s-company-ceo__stat {
      text-align: center;
    }
    .s-company-ceo__stat-value {
      font-family: 'Outfit', sans-serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.9);
      line-height: 1;
    }
    .s-company-ceo__stat-unit {
      font-size: 0.6875rem;
      color: rgba(255, 255, 255, 0.6);
    }
    .s-company-ceo__stat-label {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.6875rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.25rem;
    }
    .s-company-ceo__bio {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.72);
      line-height: 2;
    }
    .s-company-ceo__bio p {
      margin-bottom: 1.25rem;
    }
    .s-company-ceo__bio p:last-child {
      margin-bottom: 0;
    }
    .s-company-ceo__message {
      position: relative;
      margin-top: 2rem;
      padding: 1.5rem 2rem;
      background: rgba(255, 255, 255, 0.03);
      border-left: 3px solid rgba(255, 255, 255, 0.2);
      border-radius: 0 12px 12px 0;
    }
    .s-company-ceo__message-text {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1rem;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.8);
      line-height: 1.8;
      font-style: italic;
    }
    .s-company-ceo__message-text::before {
      content: "\201C";
      font-family: 'Cormorant Garamond', serif;
      font-size: 3rem;
      color: rgba(255, 255, 255, 0.15);
      position: absolute;
      top: 0;
      left: 1rem;
      line-height: 1;
    }

    /* =============================================================
       6. ACCESS MAP
       ============================================================= */
    .s-company-access__inner {
      max-width: 900px;
      margin: 0 auto;
    }
    .s-company-access__map {
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.08);
      margin-bottom: 2rem;
    }
    .s-company-access__map-placeholder {
      width: 100%;
      height: 400px;
      background: rgba(255, 255, 255, 0.03);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Outfit', sans-serif;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.1em;
    }
    .s-company-access__details {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }
    @media (min-width: 640px) {
      .s-company-access__details {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
      }
    }
    .s-company-access__detail {
      display: flex;
      gap: 1rem;
      align-items: flex-start;
    }
    .s-company-access__detail-icon {
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(255, 255, 255, 0.6);
    }
    .s-company-access__detail-label {
      font-family: 'Outfit', sans-serif;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.25rem;
    }
    .s-company-access__detail-value {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.75);
      line-height: 1.6;
    }

    /* =============================================================
       7. CTA DARK OVERRIDE
       ============================================================= */
    .s-cta-final--dark {
      background: linear-gradient(135deg, #111 0%, #1a1a1a 50%, #0d0d0d 100%);
    }
    .s-cta-final--dark .s-cta-final__heading {
      color: rgba(255, 255, 255, 0.95);
    }
    .s-cta-final--dark .s-cta-final__text {
      color: rgba(255, 255, 255, 0.7);
    }

    /* =============================================================
       DARK DIVIDER TRANSITIONS
       ============================================================= */
    .c-section-divider--dark-to-alt svg {
      color: #1e1e1e;
    }
    .c-section-divider--alt-to-dark svg {
      color: #1a1a1a;
    }
    .c-section-divider--dark-to-gradient svg {
      color: #1a1a1a;
    }

    /* =============================================================
       BACKGROUND DECORATIONS
       ============================================================= */
    .s-company-bg-lines {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      pointer-events: none;
      overflow: hidden;
    }
    .s-company-bg-lines::before,
    .s-company-bg-lines::after {
      content: "";
      position: absolute;
      width: 1px;
      height: 100%;
      background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(255,255,255,0.04) 30%,
        rgba(255,255,255,0.04) 70%,
        transparent 100%
      );
    }
    .s-company-bg-lines::before {
      left: 25%;
    }
    .s-company-bg-lines::after {
      left: 75%;
    }
    .s-company-bg-orb {
      position: absolute;
      border-radius: 50%;
      pointer-events: none;
      filter: blur(80px);
    }
    .s-company-bg-orb--1 {
      width: 300px;
      height: 300px;
      background: rgba(255, 255, 255, 0.015);
      top: 10%;
      right: -5%;
    }
    .s-company-bg-orb--2 {
      width: 200px;
      height: 200px;
      background: rgba(255, 255, 255, 0.01);
      bottom: 20%;
      left: -3%;
    }

    /* =============================================================
       MARQUEE DARK OVERRIDE
       ============================================================= */
    .c-marquee--dark {
      background: #111;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .c-marquee--dark .c-marquee__item {
      color: rgba(255, 255, 255, 0.6);
    }
    .c-marquee--dark .c-marquee__separator {
      background: rgba(255, 255, 255, 0.15);
    }
  
/* inline: preview-services.html */

    /* ===== Services Page Specific Styles ===== */

    /* Services Intro */
    .s-services-intro {
      padding: var(--space-4xl) 0 var(--space-2xl);
      text-align: center;
    }
    .s-services-intro__inner {
      max-width: 700px;
      margin: 0 auto;
    }
    .s-services-intro__text {
      font-size: var(--text-base);
      color: var(--color-text-secondary);
      line-height: 1.9;
      letter-spacing: 0.03em;
      margin-top: var(--space-xl);
      max-width: 680px;
      margin-left: auto;
      margin-right: auto;
    }

    /* Services Anchor Navigation */
    .s-services-nav {
      position: sticky;
      top: var(--header-height-scrolled, 64px);
      z-index: 900;
      background: var(--color-bg-white);
      border-bottom: 1px solid var(--color-border-light);
      padding: var(--space-md) 0;
    }
    .s-services-nav__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-sm);
      list-style: none;
      margin: 0;
      padding: 0;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .s-services-nav__item {
      flex-shrink: 0;
    }
    .s-services-nav__link {
      display: inline-block;
      padding: var(--space-xs) var(--space-lg);
      font-size: var(--text-sm);
      font-weight: var(--fw-medium);
      color: var(--color-text-secondary);
      text-decoration: none;
      border-radius: var(--radius-full);
      background: var(--color-bg-accent);
      transition: all 0.2s;
      white-space: nowrap;
    }
    .s-services-nav__link:hover {
      color: var(--color-brand-primary);
      background: var(--color-brand-light, rgba(0,0,0,0.04));
    }

    /* Service Detail Blocks */
    .s-service-detail {
      padding: var(--space-4xl) 0;
      position: relative;
    }
    .s-service-detail:nth-child(even) {
      background: var(--color-bg-accent);
    }
    .s-service-detail__inner {
      display: flex;
      flex-direction: column;
      gap: var(--space-2xl);
      align-items: center;
    }
    @media (min-width: 768px) {
      .s-service-detail__inner {
        flex-direction: row;
        gap: var(--space-3xl);
      }
    }
    /* Reverse layout */
    @media (min-width: 768px) {
      .s-service-detail--reverse .s-service-detail__inner {
        flex-direction: row-reverse;
      }
    }
    .s-service-detail__image {
      width: 100%;
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    @media (min-width: 768px) {
      .s-service-detail__image {
        width: 48%;
        flex-shrink: 0;
      }
    }
    .s-service-detail__image .preview-img {
      width: 100%;
      aspect-ratio: 3 / 2;
      border-radius: var(--radius-lg);
    }
    .s-service-detail__content {
      flex: 1;
    }
    .s-service-detail__tagline {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      margin-bottom: var(--space-sm);
    }
    .s-service-detail__title {
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-md);
      line-height: var(--leading-snug);
    }
    @media (min-width: 768px) {
      .s-service-detail__title { font-size: var(--text-3xl); }
    }
    .s-service-detail__desc {
      font-size: var(--text-base);
      color: var(--color-text-secondary);
      line-height: 1.9;
      letter-spacing: 0.03em;
      margin-bottom: var(--space-lg);
    }
    .s-service-detail__features {
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
      margin-bottom: var(--space-xl);
      list-style: none;
      padding: 0;
    }
    .s-service-detail__feature {
      display: flex;
      align-items: flex-start;
      gap: var(--space-sm);
      font-size: var(--text-sm);
      color: var(--color-text-primary);
      line-height: var(--leading-relaxed);
    }
    .s-service-detail__check {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--color-brand-primary);
    }
    .s-service-detail__action {
      margin-top: var(--space-md);
    }

    /* ===== Comparison Table ===== */
    .c-table--comparison {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm, 14px);
    }
    .c-table--comparison th,
    .c-table--comparison td {
      padding: 16px 20px;
      text-align: center;
      border: 1px solid var(--color-border, #e0e0e0);
      vertical-align: middle;
    }
    .c-table--comparison thead th {
      background-color: var(--color-bg-subtle, #f5f5f5);
      font-weight: var(--fw-bold, 700);
      font-size: var(--text-sm, 14px);
    }
    .c-table--comparison tbody td:first-child {
      font-weight: var(--fw-semibold, 600);
      text-align: left;
      background-color: var(--color-bg-subtle, #f8f8f8);
      white-space: nowrap;
    }
    .c-table--comparison .is-recommended {
      background-color: rgba(139, 164, 200, 0.08);
      position: relative;
    }
    .c-table--comparison thead .is-recommended {
      background-color: var(--color-brand-primary, #1a1a1a);
      color: var(--color-text-primary);
    }
    .c-badge--accent {
      display: inline-block;
      margin-left: 6px;
      padding: 2px 8px;
      font-size: 10px;
      background-color: var(--color-accent, #E8D06C);
      color: #333;
      border-radius: 10px;
      font-weight: 700;
      vertical-align: middle;
    }
    .c-table-wrapper {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border-radius: var(--radius-lg, 8px);
      border: 1px solid var(--color-border, #e0e0e0);
    }
    @media (max-width: 768px) {
      .c-table--comparison th,
      .c-table--comparison td {
        padding: 12px 14px;
        font-size: 12px;
      }
    }

  
/* inline: preview-step.html */

    /* ===== Inline section styles for S.Tep page ===== */

    /* Feature cards grid (stats) */
    .p-step__intro-features {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
      align-items: stretch;
    }
    @media (min-width: 768px) {
      .p-step__intro-features {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .p-step__feature-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      text-align: center;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__feature-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__feature-number {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-3xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-sm);
    }
    .p-step__feature-label {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      letter-spacing: var(--tracking-wide);
    }

    /* Instructor profile section */
    .p-step__instructor-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-3xl);
      align-items: center;
    }
    @media (min-width: 768px) {
      .p-step__instructor-grid {
        grid-template-columns: 1fr 1fr;
      }
    }
    .p-step__instructor-image {
      aspect-ratio: 3 / 4;
      border-radius: var(--radius-xl);
      overflow: hidden;
    }
    .p-step__instructor-name {
      font-size: var(--text-3xl);
      font-weight: var(--fw-bold);
      margin-bottom: var(--space-sm);
    }
    .p-step__instructor-role {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-bottom: var(--space-xl);
    }
    .p-step__instructor-text {
      font-size: var(--text-base);
      line-height: 1.9;
      letter-spacing: 0.03em;
      color: var(--color-text-secondary);
      max-width: 560px;
    }
    .p-step__instructor-text p {
      margin-bottom: 1.25rem;
    }
    .p-step__instructor-text p:last-child {
      margin-bottom: 0;
    }

    /* Plan cards grid (curriculum) */
    .p-step__plans {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
      align-items: stretch;
    }
    @media (min-width: 540px) {
      .p-step__plans { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .p-step__plans { grid-template-columns: repeat(3, 1fr); }
    }
    .p-step__plan-card {
      display: flex;
      flex-direction: column;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__plan-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__plan-header {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      margin-bottom: var(--space-md);
    }
    .p-step__plan-number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      height: 40px;
      flex-shrink: 0;
      background: var(--color-brand-primary);
      color: var(--color-text-primary);
      font-family: var(--font-en);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
    }
    .p-step__plan-name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
    }
    @media (min-width: 768px) {
      .p-step__plan-name { font-size: var(--text-lg); }
    }
    .p-step__plan-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      margin-bottom: var(--space-md);
      flex: 1;
    }
    .p-step__plan-items {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
    }
    .p-step__plan-items li {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    .p-step__plan-items li svg {
      flex-shrink: 0;
      color: var(--color-brand-primary);
    }

    /* Support grid */
    .p-step__support-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
      align-items: stretch;
    }
    @media (min-width: 540px) {
      .p-step__support-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .p-step__support-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .p-step__support-card {
      display: flex;
      flex-direction: column;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
      text-align: center;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__support-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__support-title {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
      line-height: var(--leading-snug);
    }
    .p-step__support-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      flex: 1;
    }

    /* Bonuses grid */
    .p-step__bonuses-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
      align-items: stretch;
    }
    @media (min-width: 540px) {
      .p-step__bonuses-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .p-step__bonuses-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .p-step__bonus-card {
      display: flex;
      flex-direction: column;
      position: relative;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__bonus-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__bonus-number {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      background-color: var(--color-accent-yellow, #f0c040);
      color: var(--color-text-primary);
      font-family: var(--font-en);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
      margin-bottom: var(--space-md);
    }
    .p-step__bonus-name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
      line-height: var(--leading-snug);
    }
    .p-step__bonus-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      flex: 1;
    }

    /* Testimonials / Results grid */
    .p-step__results-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
      align-items: stretch;
    }
    @media (min-width: 540px) {
      .p-step__results-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .p-step__results-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .p-step__result-card {
      display: flex;
      flex-direction: column;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__result-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__result-highlight {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-sm);
    }
    .p-step__result-name {
      display: block;
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs);
    }
    .p-step__result-text {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
      line-height: var(--leading-relaxed);
      flex: 1;
    }

    /* Rules section */
    .p-step__rules-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-lg);
      max-width: 700px;
      margin: var(--space-2xl) auto 0;
    }
    .p-step__rule {
      display: flex;
      align-items: flex-start;
      gap: var(--space-md);
    }
    .p-step__rule-number {
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 40px;
      height: 40px;
      background: var(--color-bg-white);
      border: 1px solid var(--color-border-light);
      border-radius: var(--radius-md, 8px);
      font-family: var(--font-en);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      flex-shrink: 0;
    }
    .p-step__rule-text {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-relaxed);
      padding-top: var(--space-sm);
    }

    /* Comparison table */
    .p-step__comparison-table-wrap {
      overflow-x: auto;
      margin-top: var(--space-2xl);
    }
    .p-step__comparison-table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
    }
    .p-step__comparison-table th,
    .p-step__comparison-table td {
      padding: var(--space-md) var(--space-lg);
      text-align: left;
      border-bottom: 1px solid var(--color-border-light, #e5e7eb);
    }
    .p-step__comparison-table thead th {
      font-weight: var(--fw-bold);
      font-size: var(--text-base);
      color: var(--color-text-primary);
      background: var(--color-bg-accent, #f8f9fa);
    }
    .p-step__comparison-highlight {
      background: rgba(139, 164, 200, 0.1);
      color: var(--color-brand-primary);
      font-weight: var(--fw-bold);
    }
    .p-step__comparison-table tbody td:first-child {
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
    }

    /* Target (who is this for) */
    .p-step__target-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
    }
    @media (min-width: 768px) {
      .p-step__target-grid { grid-template-columns: repeat(2, 1fr); }
    }
    .p-step__target-col {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl);
      box-shadow: var(--shadow-card);
    }
    .p-step__target-col--good {
      border-top: 4px solid var(--color-brand-primary, #4a6fa5);
    }
    .p-step__target-col--bad {
      border-top: 4px solid var(--color-text-muted, #999);
    }
    .p-step__target-heading {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg);
    }
    .p-step__target-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }
    .p-step__target-list li {
      position: relative;
      padding-left: var(--space-lg);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    .p-step__target-col--good .p-step__target-list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.55em;
      width: 8px;
      height: 8px;
      background: var(--color-brand-primary);
      border-radius: var(--radius-full);
    }
    .p-step__target-col--bad .p-step__target-list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.55em;
      width: 8px;
      height: 8px;
      background: var(--color-text-muted);
      border-radius: var(--radius-full);
    }

    /* Pricing grid */
    .p-step__pricing-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      align-items: stretch;
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .p-step__pricing-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-md); }
    }
    .p-step__plan {
      position: relative;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      text-align: center;
      border: 2px solid transparent;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__plan:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__plan--popular {
      border-color: var(--color-brand-primary);
      background: linear-gradient(180deg, var(--color-bg-accent, #f8f9fa) 0%, var(--color-bg-white) 120px);
    }
    @media (min-width: 768px) {
      .p-step__plan--popular {
        transform: scale(1.05);
        z-index: 1;
        box-shadow: var(--shadow-lg, 0 10px 40px rgba(0,0,0,0.12));
      }
      .p-step__plan--popular:hover {
        transform: scale(1.05) translateY(-4px);
      }
    }
    .p-step__plan-badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      display: inline-flex;
      align-items: center;
      padding: var(--space-xs) var(--space-lg);
      background: var(--color-brand-primary);
      color: var(--color-text-primary);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
      letter-spacing: var(--tracking-wide);
      white-space: nowrap;
    }
    .p-step__plan-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
    }
    .p-step__plan-period {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-bottom: var(--space-md);
    }
    .p-step__plan-price {
      margin-bottom: var(--space-lg);
    }
    .p-step__plan-price-amount {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-4xl);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      line-height: 1;
    }
    .p-step__plan--popular .p-step__plan-price-amount {
      color: var(--color-brand-secondary, #6b8fc7);
    }
    .p-step__plan-price-tax {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
    }
    .p-step__plan-note {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
      margin-bottom: var(--space-lg);
    }
    .p-step__plan-features {
      list-style: none;
      padding: 0;
      margin: 0 0 var(--space-xl);
      text-align: left;
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }
    .p-step__plan-features li {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: var(--text-sm);
      color: var(--color-text-primary);
      padding: var(--space-xs) 0;
      border-bottom: 1px solid var(--color-border-light, #e5e7eb);
    }
    .p-step__plan-feature-text {
      color: var(--color-text-secondary);
    }
    .p-step__plan-feature-value {
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
    }

    /* Advisor section */
    .p-step__advisor {
      margin-top: var(--space-3xl);
    }
    .p-step__advisor-inner {
      background: var(--color-bg-accent, #f8f9fa);
      border-radius: var(--radius-xl);
      padding: var(--space-3xl) var(--space-2xl);
      text-align: center;
    }
    .p-step__advisor-badge {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      margin-bottom: var(--space-md);
      padding: var(--space-xs) var(--space-md);
      background: rgba(139, 164, 200, 0.15);
      border-radius: var(--radius-full);
    }
    .p-step__advisor-title {
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
    }
    .p-step__advisor-period {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-bottom: var(--space-lg);
    }
    .p-step__advisor-price {
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
      font-size: var(--text-base);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg);
    }
    .p-step__advisor-price strong {
      font-size: var(--text-xl);
      color: var(--color-brand-primary);
    }
    .p-step__advisor-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      max-width: 600px;
      margin: 0 auto var(--space-xl);
    }

    /* FAQ accordion - make panels visible in preview */
    .c-accordion__panel {
      display: block !important;
    }
    .c-accordion__panel[hidden] {
      display: block !important;
    }
    .c-accordion {
      border-bottom: 1px solid var(--color-border-light, #e5e7eb);
    }
    .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
    }
    .c-accordion__icon {
      flex-shrink: 0;
      color: var(--color-text-muted);
      margin-left: var(--space-md);
    }
    .c-accordion__content {
      padding-bottom: var(--space-lg);
    }
    .c-accordion__content p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
    }

    /* ===== Comparison Table ===== */
    .c-table--comparison {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm, 14px);
    }
    .c-table--comparison th,
    .c-table--comparison td {
      padding: 16px 20px;
      text-align: center;
      border: 1px solid var(--color-border, #e0e0e0);
      vertical-align: middle;
    }
    .c-table--comparison thead th {
      background-color: var(--color-bg-subtle, #f5f5f5);
      font-weight: var(--fw-bold, 700);
      font-size: var(--text-sm, 14px);
    }
    .c-table--comparison tbody td:first-child {
      font-weight: var(--fw-semibold, 600);
      text-align: left;
      background-color: var(--color-bg-subtle, #f8f8f8);
      white-space: nowrap;
    }
    .c-table--comparison .is-recommended {
      background-color: rgba(139, 164, 200, 0.08);
      position: relative;
    }
    .c-table--comparison thead .is-recommended {
      background-color: var(--color-brand-primary, #1a1a1a);
      color: var(--color-text-primary);
    }
    .c-badge--accent {
      display: inline-block;
      margin-left: 6px;
      padding: 2px 8px;
      font-size: 10px;
      background-color: var(--color-accent, #E8D06C);
      color: #333;
      border-radius: 10px;
      font-weight: 700;
      vertical-align: middle;
    }
    .c-table-wrapper {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border-radius: var(--radius-lg, 8px);
      border: 1px solid var(--color-border, #e0e0e0);
    }
    @media (max-width: 768px) {
      .c-table--comparison th,
      .c-table--comparison td {
        padding: 12px 14px;
        font-size: 12px;
      }
    }

    /* ===== Mobile responsive fixes ===== */
    @media (max-width: 767px) {
      /* Pricing grid: 2 columns on mobile instead of 1 */
      .p-step__pricing-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--space-md);
      }
      /* Comparison table scroll hint */
      .p-step__comparison-table-wrap {
        position: relative;
      }
      .p-step__comparison-table th,
      .p-step__comparison-table td {
        padding: var(--space-sm) var(--space-md);
        font-size: var(--text-xs);
        white-space: nowrap;
      }
      /* Feature cards: tighter gap on mobile */
      .p-step__intro-features {
        gap: var(--space-md);
      }
      .p-step__feature-number {
        font-size: var(--text-2xl);
      }
      /* Results grid: 2 columns on mobile */
      .p-step__results-grid {
        gap: var(--space-md);
      }
      /* Bonuses grid: tighter gap */
      .p-step__bonuses-grid {
        gap: var(--space-md);
      }
      /* Instructor image full width */
      .p-step__instructor-image {
        aspect-ratio: 4 / 3;
        max-height: 360px;
      }
      /* Pain list mobile */
      .p-step__pain-list {
        grid-template-columns: 1fr;
      }
      /* Before/After cards mobile */
      .p-step__ba-card {
        grid-template-columns: 1fr !important;
      }
      .p-step__ba-arrow {
        display: none !important;
      }
      .p-step__ba-card > div:last-child {
        border-top: 1px solid var(--color-border-light);
      }
    }

    /* ===== Pain Points Section ===== */
    .p-step__pain-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-md);
      max-width: 760px;
      margin: var(--space-2xl) auto 0;
    }
    @media (min-width: 540px) {
      .p-step__pain-list { grid-template-columns: repeat(2, 1fr); }
    }
    .p-step__pain-item {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      background: var(--color-bg-white);
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      border: 1px solid var(--color-border-light);
      border-left: 4px solid #e53935;
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__pain-item:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__pain-check {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border: 2px solid rgba(229, 57, 53, 0.4);
      border-radius: var(--radius-sm);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #e53935;
    }
    .p-step__pain-text {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
    }
    .p-step__pain-bridge {
      text-align: center;
      margin-top: var(--space-3xl);
      padding: var(--space-2xl);
    }
    .p-step__pain-bridge-text {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    .p-step__pain-bridge-text strong {
      color: var(--color-brand-primary);
    }

    /* ===== Before/After Section ===== */
    .p-step__ba-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
      max-width: 900px;
      margin: var(--space-2xl) auto 0;
    }
    .p-step__ba-card {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 0;
      border-radius: var(--radius-xl);
      overflow: hidden;
      border: 1px solid var(--color-border-light);
      box-shadow: var(--shadow-card);
    }
    .p-step__ba-before,
    .p-step__ba-after {
      padding: var(--space-xl);
    }
    .p-step__ba-before {
      background: var(--color-bg-accent);
    }
    .p-step__ba-after {
      background: var(--color-bg-white);
    }
    .p-step__ba-badge {
      display: inline-block;
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      letter-spacing: 0.1em;
      padding: 4px 12px;
      border-radius: var(--radius-full);
      margin-bottom: var(--space-md);
    }
    .p-step__ba-badge--before {
      color: #e53935;
      background: rgba(229, 57, 53, 0.08);
    }
    .p-step__ba-badge--after {
      color: var(--color-success);
      background: rgba(76, 175, 80, 0.08);
    }
    .p-step__ba-text {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.7;
      margin: 0;
    }
    .p-step__ba-text strong {
      color: var(--color-text-primary);
    }
    .p-step__ba-arrow {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      background: linear-gradient(180deg, var(--color-bg-accent), var(--color-bg-white));
    }

    /* ===== How to Start Section ===== */
    .p-step__steps-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      max-width: 800px;
      margin: var(--space-2xl) auto 0;
      counter-reset: step-counter;
    }
    .p-step__step-card {
      display: flex;
      align-items: flex-start;
      gap: var(--space-lg);
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
      counter-increment: step-counter;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__step-card:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__step-number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      flex-shrink: 0;
      background: var(--color-brand-primary);
      color: var(--color-text-white, #ffffff);
      font-family: var(--font-en);
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
    }
    .p-step__step-body {
      flex: 1;
    }
    .p-step__step-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs);
    }
    .p-step__step-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.75;
    }

    /* ===== Persona Cards (Who is this for) ===== */
    .p-step__persona-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: var(--space-xl);
      max-width: 960px;
      margin: var(--space-2xl) auto 0;
      align-items: stretch;
    }
    .p-step__persona-card {
      display: flex;
      flex-direction: column;
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
      border-left: 4px solid var(--color-brand-primary);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-step__persona-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-step__persona-icon {
      font-size: 2rem;
      margin-bottom: var(--space-sm);
      line-height: 1;
    }
    .p-step__persona-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
    }
    .p-step__persona-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      flex: 1;
    }

  
/* inline: preview-samurai-beauty.html */

    /* ===== Inline section styles for Samurai Beauty page ===== */

    /* Intro stats */
    .p-beauty__intro-stats {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: var(--space-xl);
      margin-top: var(--space-2xl);
    }
    .p-beauty__intro-stat {
      text-align: center;
      padding: var(--space-lg) var(--space-xl);
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow-card);
      min-width: 180px;
    }
    .p-beauty__intro-stat-number {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-4xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-xs);
    }
    .p-beauty__intro-stat-suffix {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-brand-secondary);
    }
    .p-beauty__intro-stat-label {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-top: var(--space-sm);
    }

    /* Hero heading: hide sp-only br on desktop */
    .u-sp-only { display: none; }
    @media (max-width: 539px) {
      .u-sp-only { display: inline; }
      .s-hero__title[style*="white-space"] { white-space: normal !important; }
    }

    /* Pricing section */
    .p-beauty__pricing-section {
      margin-bottom: var(--space-3xl);
    }
    .p-beauty__pricing-section:last-child {
      margin-bottom: 0;
    }
    .p-beauty__pricing-label {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      text-align: center;
      margin-bottom: var(--space-xl);
      letter-spacing: var(--tracking-wider);
    }
    .p-beauty__pricing-label span {
      font-size: var(--text-sm);
      font-weight: var(--fw-regular);
      color: var(--color-text-muted);
    }
    .p-beauty__pricing-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
    }
    @media (min-width: 540px) {
      .p-beauty__pricing-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-beauty__price-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      text-align: center;
      box-shadow: var(--shadow-card);
      position: relative;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-beauty__price-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-beauty__price-card--popular {
      border: 2px solid var(--color-brand-primary);
    }
    .p-beauty__price-badge {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-text-muted);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      margin-bottom: var(--space-md);
      padding: var(--space-xs) var(--space-md);
      background-color: var(--color-bg-accent);
      border-radius: var(--radius-full);
    }
    .p-beauty__price-badge--popular {
      background: linear-gradient(135deg, #d4a574, #b8860b);
      color: #fff;
      font-size: var(--text-sm);
      padding: var(--space-sm) var(--space-lg);
      box-shadow: 0 2px 8px rgba(212, 165, 116, 0.4);
    }
    .p-beauty__price-name {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
    }
    .p-beauty__price-detail {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-bottom: var(--space-lg);
      line-height: 1.85;
      letter-spacing: 0.02em;
    }
    .p-beauty__price-amount {
      margin-bottom: var(--space-sm);
    }
    .p-beauty__price-yen {
      font-family: var(--font-en);
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
    }
    .p-beauty__price-number {
      font-family: var(--font-en);
      font-size: var(--text-4xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
    }
    .p-beauty__price-tax {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
    }
    .p-beauty__price-original {
      display: block;
      font-size: var(--text-xs);
      color: var(--color-text-muted);
    }
    .p-beauty__pricing-note {
      text-align: center;
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-top: var(--space-lg);
    }

    /* Subscription cards */
    .p-beauty__sub-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-md);
    }
    @media (min-width: 540px) {
      .p-beauty__sub-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 1024px) {
      .p-beauty__sub-grid {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .p-beauty__sub-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl) var(--space-lg);
      text-align: center;
      box-shadow: var(--shadow-card);
      position: relative;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-beauty__sub-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-beauty__sub-card--popular {
      border: 2px solid var(--color-brand-primary);
      background: linear-gradient(180deg, rgba(212, 165, 116, 0.08) 0%, var(--color-bg-white) 40%);
      box-shadow: 0 4px 24px rgba(212, 165, 116, 0.15), var(--shadow-card);
      transform: translateY(-4px);
    }
    .p-beauty__sub-badge {
      position: absolute;
      top: -16px;
      left: 50%;
      transform: translateX(-50%);
      font-family: var(--font-en);
      font-size: 0.8rem;
      font-weight: var(--fw-bold);
      color: #fff;
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      padding: 6px 20px;
      background: linear-gradient(135deg, #d4a574, #b8860b);
      border-radius: var(--radius-full);
      white-space: nowrap;
      box-shadow: 0 2px 8px rgba(212, 165, 116, 0.4);
    }
    .p-beauty__sub-name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-md);
    }
    .p-beauty__sub-price {
      font-family: var(--font-en);
      font-size: var(--text-3xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-sm);
    }
    .p-beauty__sub-yen {
      font-size: var(--text-lg);
    }
    .p-beauty__sub-unit {
      font-size: var(--text-xs);
      font-weight: var(--fw-regular);
      color: var(--color-text-muted);
      font-family: var(--font-jp);
    }
    .p-beauty__sub-menus {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-bottom: var(--space-xs);
    }
    .p-beauty__sub-per {
      display: block;
      font-size: var(--text-xs);
      color: var(--color-text-muted);
    }

    /* Reviews */
    .p-beauty__reviews-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
    }
    @media (min-width: 768px) {
      .p-beauty__reviews-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-beauty__review-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
    }
    .p-beauty__review-stars {
      display: flex;
      gap: 2px;
      color: #f5a623;
      margin-bottom: var(--space-md);
    }
    .p-beauty__review-text {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      margin: 0;
      font-style: normal;
    }

    /* Other locations */
    .p-beauty__other-locations {
      margin-top: var(--space-3xl);
    }
    .p-beauty__other-locations h3 {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-md);
    }
    .p-beauty__location-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      box-shadow: var(--shadow-card);
    }
    .p-beauty__location-card h4 {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs);
    }
    .p-beauty__location-card p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin: 0;
    }

    /* Menu card body padding (since no image in preview) */
    .p-beauty__menu-card {
      padding: var(--space-lg);
    }

    /* Fix menu grid for 4 items: 2 cols at tablet, 2 cols at desktop */
    @media (min-width: 540px) {
      .p-beauty__menu-grid {
        grid-template-columns: repeat(2, 1fr) !important;
      }
    }

    /* Menu time */
    .p-beauty__menu-time {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      font-family: var(--font-en);
    }

    /* CTA heading */
    .p-beauty__cta-heading {
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-white);
      line-height: var(--leading-snug);
      margin-bottom: var(--space-md);
      letter-spacing: var(--tracking-wider);
    }
    @media (min-width: 768px) {
      .p-beauty__cta-heading {
        font-size: var(--text-3xl);
      }
    }
    @media (min-width: 1024px) {
      .p-beauty__cta-heading {
        font-size: var(--text-4xl);
      }
    }

    /* CTA note link colors */
    .p-beauty__cta-note a {
      color: var(--color-text-secondary);
      text-decoration: underline;
      transition: color 0.2s;
    }
    .p-beauty__cta-note a:hover {
      color: var(--color-brand-primary);
    }

    /* Fix store info table in dark theme */
    .p-beauty__access-table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
    }
    .p-beauty__access-table th,
    .p-beauty__access-table td {
      padding: var(--space-md) var(--space-lg);
      text-align: left;
      vertical-align: top;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .p-beauty__access-table th {
      width: 120px;
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      white-space: nowrap;
    }
    .p-beauty__access-table td {
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    @media (max-width: 539px) {
      .p-beauty__access-table th,
      .p-beauty__access-table td {
        display: block;
        width: 100%;
        padding: var(--space-sm) 0;
      }
      .p-beauty__access-table th {
        padding-top: var(--space-md);
        border-bottom: none;
        font-size: var(--text-xs);
        color: var(--color-text-muted);
        letter-spacing: var(--tracking-wider);
      }
      .p-beauty__access-table td {
        padding-bottom: var(--space-md);
      }
    }
    @media (min-width: 768px) {
      .p-beauty__access-table th {
        width: 140px;
      }
    }

    /* Fix access inner layout */
    .p-beauty__access-inner {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .p-beauty__access-inner {
        grid-template-columns: 1fr 400px;
        gap: var(--space-3xl);
        align-items: start;
      }
    }
    .p-beauty__access-map {
      width: 100%;
      min-height: 280px;
      border-radius: var(--radius-xl);
      overflow: hidden;
      box-shadow: var(--shadow-md);
    }
    @media (min-width: 768px) {
      .p-beauty__access-map {
        height: 360px;
      }
    }

    /* Fix subscription card grid spacing */
    .p-beauty__sub-grid {
      margin-top: var(--space-lg);
    }

    /* Fix pricing card consistent height */
    .p-beauty__price-card {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

  
/* inline: preview-sns-agency.html */

    /* ===== Process Flow ===== */
    .c-process-flow {
      max-width: 700px;
      margin: 0 auto;
    }
    .c-process-flow__step {
      display: flex;
      gap: 24px;
      align-items: flex-start;
      padding: 32px 0;
      position: relative;
    }
    .c-process-flow__step:not(:last-child)::after {
      content: '';
      position: absolute;
      left: 28px;
      top: 80px;
      bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, var(--color-brand-primary, #1a1a1a), transparent);
    }
    .c-process-flow__number {
      flex-shrink: 0;
      width: 56px;
      height: 56px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, var(--color-brand-primary, #1a1a1a), var(--color-bg-cta, #7B94B8));
      color: var(--color-text-primary);
      font-size: 20px;
      font-weight: 700;
      border-radius: 50%;
      box-shadow: 0 4px 12px rgba(139, 164, 200, 0.3);
    }
    .c-process-flow__title {
      font-size: var(--text-lg, 18px);
      font-weight: var(--fw-bold, 700);
      margin-bottom: 8px;
    }
    .c-process-flow__text {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, #555);
      line-height: 1.85;
      letter-spacing: 0.02em;
    }
    @media (max-width: 768px) {
      .c-process-flow__step {
        gap: 16px;
        padding: 24px 0;
      }
      .c-process-flow__number {
        width: 44px;
        height: 44px;
        font-size: 16px;
      }
      .c-process-flow__step:not(:last-child)::after {
        left: 22px;
        top: 68px;
      }
    }

    /* ===== Staff Cards - Full Layout ===== */
    .p-agency__staff-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-2xl, 32px);
    }
    @media (min-width: 768px) {
      .p-agency__staff-grid {
        grid-template-columns: 1fr;
      }
    }
    .p-agency__staff-card {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl, 24px);
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      transition: border-color 0.2s;
    }
    @media (min-width: 768px) {
      .p-agency__staff-card {
        grid-template-columns: 240px 1fr;
        gap: var(--space-2xl, 32px);
        padding: var(--space-2xl);
      }
    }
    .p-agency__staff-card:hover {
      border-color: rgba(255, 255, 255, 0.15);
    }
    .p-agency__staff-info {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .p-agency__staff-position {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-xs, 12px);
      font-weight: var(--fw-bold);
      color: var(--color-text-muted);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      margin-bottom: var(--space-xs);
    }
    .p-agency__staff-name {
      font-size: var(--text-xl, 20px);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs);
    }
    .p-agency__staff-name-en {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-xs, 12px);
      color: var(--color-text-muted);
      letter-spacing: 0.08em;
      margin-bottom: var(--space-md);
    }
    .p-agency__staff-bio {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      margin-bottom: var(--space-md);
    }
    .p-agency__staff-achievements {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-xs, 6px);
    }
    .p-agency__staff-achievements li {
      display: flex;
      align-items: center;
      gap: var(--space-sm, 8px);
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary);
    }
    .p-agency__staff-achievements li svg {
      flex-shrink: 0;
      color: var(--color-brand-primary, #8BA4C8);
    }

    /* ===== Staff Photo & Followers ===== */
    .p-agency__staff-photo {
      position: relative;
      aspect-ratio: 3 / 4;
      border-radius: var(--radius-lg);
      overflow: hidden;
      margin-bottom: var(--space-lg);
      background: rgba(255, 255, 255, 0.05);
    }
    .p-agency__staff-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: var(--radius-lg);
    }
    .p-agency__staff-followers {
      position: absolute;
      bottom: var(--space-sm);
      left: 50%;
      transform: translateX(-50%);
      font-family: var(--font-en);
      font-size: var(--text-xs, 12px);
      font-weight: var(--fw-bold, 700);
      color: #ffffff;
      background: rgba(0, 0, 0, 0.6);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      padding: 4px 12px;
      border-radius: var(--radius-full);
      white-space: nowrap;
      letter-spacing: 0.05em;
    }

    /* ===== FAQ Accordion - force visible in preview ===== */
    .c-accordion__panel {
      display: block !important;
      max-height: none !important;
      overflow: visible !important;
    }
    .c-accordion__panel[hidden] {
      display: block !important;
    }
    .c-accordion__content {
      max-height: none !important;
      overflow: visible !important;
      padding-bottom: var(--space-lg);
    }
    .c-accordion__content p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
    }
    .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
    }
    .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .c-accordion__icon {
      flex-shrink: 0;
      color: var(--color-text-muted);
      margin-left: var(--space-md);
    }

    /* ===== Intro Sub Text ===== */
    .p-agency__intro-sub {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
      letter-spacing: 0.02em;
      max-width: 720px;
      margin: 0 auto;
    }

    /* ===== Section Subtitles ===== */
    .p-agency__strengths-subtitle,
    .p-agency__diff-subtitle,
    .p-agency__pdca-subtitle,
    .p-agency__chatbot-subtitle,
    .p-agency__comparison-subtitle,
    .p-agency__criteria-subtitle,
    .p-agency__pricing-subtitle,
    .p-agency__options-subtitle,
    .p-agency__flow-subtitle,
    .p-agency__testimonials-subtitle {
      text-align: center;
      font-size: var(--text-base, 16px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.8;
      max-width: 640px;
      margin: 0 auto var(--space-2xl, 32px);
    }

    /* ===== About Grid ===== */
    .p-agency__about-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__about-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-agency__about-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-2xl, 32px) var(--space-lg, 24px);
      text-align: center;
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__about-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__about-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      margin: 0 auto var(--space-md, 16px);
      color: var(--color-brand-primary, #8BA4C8);
      opacity: 0.8;
    }
    .p-agency__about-number {
      display: block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-xs, 12px);
      font-weight: 700;
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      letter-spacing: 0.1em;
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__about-title {
      font-size: var(--text-lg, 18px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__about-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Problems Grid ===== */
    .p-agency__problems-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__problems-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .p-agency__problem-card {
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__problem-card:hover {
      transform: translateY(-3px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__problem-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      margin-bottom: var(--space-md, 16px);
      color: var(--color-text-muted, rgba(255,255,255,0.4));
    }
    .p-agency__problem-number {
      display: block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-xs, 12px);
      font-weight: 700;
      color: var(--color-text-muted, rgba(255,255,255,0.3));
      letter-spacing: 0.1em;
      margin-bottom: var(--space-xs, 6px);
    }
    .p-agency__problem-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
      line-height: 1.4;
    }
    .p-agency__problem-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Strength Cards (inline override for section) ===== */
    .p-agency__strength-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 56px;
      height: 56px;
      margin-bottom: var(--space-md, 16px);
      color: var(--color-brand-primary, #8BA4C8);
      opacity: 0.8;
    }
    .p-agency__strength-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Expert Grid ===== */
    .p-agency__expert-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__expert-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-agency__expert-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-2xl, 32px) var(--space-lg, 24px);
      text-align: center;
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__expert-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__expert-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 56px;
      height: 56px;
      margin: 0 auto var(--space-md, 16px);
      color: var(--color-brand-primary, #8BA4C8);
      opacity: 0.8;
    }
    .p-agency__expert-badge {
      display: inline-block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--color-brand-primary, #8BA4C8);
      background: rgba(139,164,200,0.1);
      padding: 3px 12px;
      border-radius: 100px;
      margin-bottom: var(--space-md, 16px);
    }
    .p-agency__expert-title {
      font-size: var(--text-lg, 18px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__expert-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Differentiators Grid ===== */
    .p-agency__diff-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 540px) {
      .p-agency__diff-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 1024px) {
      .p-agency__diff-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-agency__diff-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__diff-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__diff-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      margin-bottom: var(--space-md, 16px);
      color: var(--color-brand-primary, #8BA4C8);
      opacity: 0.8;
    }
    .p-agency__diff-number {
      display: block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-xs, 12px);
      font-weight: 700;
      color: var(--color-text-muted, rgba(255,255,255,0.3));
      letter-spacing: 0.1em;
      margin-bottom: var(--space-xs, 6px);
    }
    .p-agency__diff-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__diff-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== PDCA Grid ===== */
    .p-agency__pdca-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 540px) {
      .p-agency__pdca-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 1024px) {
      .p-agency__pdca-grid {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .p-agency__pdca-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
      text-align: center;
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__pdca-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__pdca-step {
      margin-bottom: var(--space-md, 16px);
    }
    .p-agency__pdca-step-label {
      display: inline-block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-lg, 18px);
      font-weight: 700;
      color: var(--color-brand-primary, #8BA4C8);
      letter-spacing: 0.05em;
    }
    .p-agency__pdca-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__pdca-badge {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.05em;
      color: var(--color-brand-primary, #8BA4C8);
      background: rgba(139,164,200,0.1);
      padding: 2px 10px;
      border-radius: 100px;
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__pdca-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Chatbot Section ===== */
    .p-agency__chatbot-flow {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-md, 16px);
      flex-wrap: wrap;
      margin-bottom: var(--space-2xl, 32px);
      padding: var(--space-xl, 24px);
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.06);
      border-radius: var(--radius-xl, 16px);
    }
    .p-agency__chatbot-flow-step {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-sm, 8px);
      text-align: center;
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.7));
      font-weight: 500;
    }
    .p-agency__chatbot-flow-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      color: var(--color-brand-primary, #8BA4C8);
    }
    .p-agency__chatbot-flow-arrow {
      color: var(--color-text-muted, rgba(255,255,255,0.3));
    }
    @media (max-width: 540px) {
      .p-agency__chatbot-flow-arrow svg {
        transform: rotate(90deg);
        width: 24px;
      }
    }
    .p-agency__chatbot-features {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__chatbot-features {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-agency__chatbot-feature {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
      text-align: center;
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__chatbot-feature:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__chatbot-feature-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      margin: 0 auto var(--space-md, 16px);
      color: var(--color-brand-primary, #8BA4C8);
    }
    .p-agency__chatbot-feature-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm, 8px);
    }
    .p-agency__chatbot-feature-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }

    /* ===== Clients Grid ===== */
    .p-agency__clients-note {
      text-align: center;
      font-size: var(--text-sm, 14px);
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      margin-top: var(--space-lg, 24px);
    }

    /* ===== Criteria Table ===== */
    .p-agency__criteria-table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .p-agency__criteria-table {
      width: 100%;
      border-collapse: collapse;
      min-width: 600px;
    }
    .p-agency__criteria-th {
      padding: var(--space-md, 16px);
      text-align: left;
      font-size: var(--text-sm, 14px);
      font-weight: 700;
      color: var(--color-text-primary);
      border-bottom: 2px solid rgba(255,255,255,0.1);
      white-space: nowrap;
    }
    .p-agency__criteria-th--good {
      color: #4ade80;
    }
    .p-agency__criteria-th--bad {
      color: #f87171;
    }
    .p-agency__criteria-th svg {
      vertical-align: middle;
      margin-right: 4px;
    }
    .p-agency__criteria-row td {
      padding: var(--space-md, 16px);
      font-size: var(--text-sm, 14px);
      border-bottom: 1px solid rgba(255,255,255,0.06);
      vertical-align: top;
    }
    .p-agency__criteria-label {
      font-weight: 700;
      color: var(--color-text-primary);
      white-space: nowrap;
    }
    .p-agency__criteria-good {
      color: rgba(255,255,255,0.7);
    }
    .p-agency__criteria-bad {
      color: rgba(255,255,255,0.45);
    }

    /* ===== Comparison Table ===== */
    .p-agency__comparison-table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .p-agency__comparison-table {
      width: 100%;
      border-collapse: collapse;
      min-width: 600px;
    }
    .p-agency__comparison-th {
      padding: var(--space-md, 16px);
      text-align: left;
      font-size: var(--text-sm, 14px);
      font-weight: 700;
      color: var(--color-text-primary);
      border-bottom: 2px solid rgba(255,255,255,0.1);
      white-space: nowrap;
    }
    .p-agency__comparison-th--other {
      color: var(--color-text-muted, rgba(255,255,255,0.4));
    }
    .p-agency__comparison-th--sline {
      color: var(--color-brand-primary, #8BA4C8);
    }
    .p-agency__comparison-row td {
      padding: var(--space-md, 16px);
      font-size: var(--text-sm, 14px);
      border-bottom: 1px solid rgba(255,255,255,0.06);
      vertical-align: top;
      line-height: 1.7;
    }
    .p-agency__comparison-label {
      font-weight: 700;
      color: var(--color-text-primary);
      white-space: nowrap;
    }
    .p-agency__comparison-other {
      color: rgba(255,255,255,0.45);
    }
    .p-agency__comparison-sline {
      color: rgba(255,255,255,0.75);
    }

    /* ===== Flow Steps ===== */
    .p-agency__flow-steps {
      display: flex;
      flex-direction: column;
      gap: 0;
      max-width: 700px;
      margin: 0 auto;
    }
    .p-agency__flow-step {
      display: flex;
      gap: var(--space-lg, 24px);
      align-items: flex-start;
      padding: var(--space-xl, 24px) 0;
      border-bottom: 1px solid rgba(255,255,255,0.06);
    }
    .p-agency__flow-step:last-child {
      border-bottom: none;
    }
    .p-agency__flow-step-header {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-xs, 6px);
      flex-shrink: 0;
      min-width: 60px;
    }
    .p-agency__flow-number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      background: linear-gradient(135deg, var(--color-brand-primary, #1a1a1a), var(--color-bg-cta, #7B94B8));
      color: #fff;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-lg, 18px);
      font-weight: 700;
      border-radius: 50%;
      box-shadow: 0 4px 12px rgba(139,164,200,0.3);
    }
    .p-agency__flow-timeline {
      font-size: 11px;
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      font-family: var(--font-en, 'Outfit', sans-serif);
      white-space: nowrap;
    }
    .p-agency__flow-content {
      flex: 1;
    }
    .p-agency__flow-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs, 6px);
    }
    .p-agency__flow-desc {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
    }
    .p-agency__flow-note {
      text-align: center;
      font-size: var(--text-sm, 14px);
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      margin-top: var(--space-lg, 24px);
    }

    /* ===== Pricing Grid ===== */
    .p-agency__pricing-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__pricing-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .p-agency__pricing-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-2xl, 32px) var(--space-xl, 24px);
      display: flex;
      flex-direction: column;
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .p-agency__pricing-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255,255,255,0.15);
    }
    .p-agency__pricing-card--recommended {
      border: 2px solid var(--color-brand-primary, #8BA4C8);
      position: relative;
    }
    .p-agency__pricing-recommended-badge {
      position: absolute;
      top: -12px;
      left: 50%;
      transform: translateX(-50%);
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #fff;
      background: var(--color-brand-primary, #8BA4C8);
      padding: 4px 16px;
      border-radius: 100px;
      white-space: nowrap;
    }
    .p-agency__pricing-header {
      margin-bottom: var(--space-lg, 24px);
    }
    .p-agency__pricing-label {
      display: block;
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-xs, 12px);
      font-weight: 700;
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: var(--space-xs, 6px);
    }
    .p-agency__pricing-name {
      font-size: var(--text-lg, 18px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
    }
    .p-agency__pricing-price {
      margin-bottom: var(--space-lg, 24px);
    }
    .p-agency__pricing-amount {
      font-size: var(--text-base, 16px);
      font-weight: 700;
      color: var(--color-text-primary);
    }
    .p-agency__pricing-note {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.7;
      margin-bottom: var(--space-md, 16px);
    }
    .p-agency__pricing-features {
      list-style: none;
      padding: 0;
      margin: 0 0 var(--space-xl, 24px) 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-sm, 8px);
      flex: 1;
    }
    .p-agency__pricing-features li {
      display: flex;
      align-items: center;
      gap: var(--space-sm, 8px);
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.7));
      line-height: 1.5;
    }
    .p-agency__pricing-features li svg {
      flex-shrink: 0;
      color: var(--color-brand-primary, #8BA4C8);
    }

    /* ===== Options Section ===== */
    .p-agency__options-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl, 24px);
    }
    @media (min-width: 768px) {
      .p-agency__options-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .p-agency__options-group {
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
    }
    .p-agency__options-group-title {
      font-size: var(--text-base, 16px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg, 24px);
      padding-bottom: var(--space-sm, 8px);
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .p-agency__options-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-sm, 8px);
    }
    .p-agency__option-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: var(--space-sm, 8px) 0;
      border-bottom: 1px solid rgba(255,255,255,0.04);
    }
    .p-agency__option-item:last-child {
      border-bottom: none;
    }
    .p-agency__option-name {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-primary);
      font-weight: 500;
    }
    .p-agency__option-price {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-muted, rgba(255,255,255,0.5));
    }
    .p-agency__options-note {
      text-align: center;
      font-size: var(--text-sm, 14px);
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      margin-top: var(--space-lg, 24px);
    }

    /* ===== Cost Comparison ===== */
    .p-agency__cost-comparison {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
      align-items: stretch;
    }
    @media (min-width: 768px) {
      .p-agency__cost-comparison {
        grid-template-columns: 1fr auto 1fr;
      }
    }
    .p-agency__cost-item {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-2xl, 32px);
    }
    .p-agency__cost-item h3 {
      font-size: var(--text-lg, 18px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg, 24px);
    }
    .p-agency__cost-item ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-sm, 8px);
    }
    .p-agency__cost-item ul li {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.7;
      padding-left: 1.2em;
      position: relative;
    }
    .p-agency__cost-item ul li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0.65em;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: rgba(255,255,255,0.2);
    }
    .p-agency__cost-item--sline ul li::before {
      background: var(--color-brand-primary, #8BA4C8);
    }
    .p-agency__cost-item--sline {
      border-color: rgba(139,164,200,0.3);
      background: rgba(139,164,200,0.05);
    }
    .p-agency__cost-total {
      display: block;
      font-size: var(--text-lg, 18px);
      font-weight: 700;
      color: var(--color-text-primary);
      margin-top: var(--space-xl, 24px);
      padding-top: var(--space-md, 16px);
      border-top: 1px solid rgba(255,255,255,0.08);
    }
    .p-agency__cost-total--highlight {
      color: var(--color-brand-primary, #8BA4C8);
    }
    .p-agency__cost-vs {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: var(--space-md, 16px);
    }
    .p-agency__cost-vs span {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      background: rgba(255,255,255,0.08);
      color: var(--color-text-primary);
      font-family: var(--font-en, 'Outfit', sans-serif);
      font-size: var(--text-sm, 14px);
      font-weight: 800;
      border-radius: 50%;
    }

    /* ===== CTA Section ===== */
    .p-agency__cta-inner {
      text-align: center;
      max-width: 700px;
      margin: 0 auto;
    }
    .p-agency__cta-heading {
      font-size: var(--text-2xl, 24px);
      font-weight: var(--fw-bold, 700);
      color: var(--color-text-primary);
      line-height: 1.4;
      margin-bottom: var(--space-md, 16px);
    }
    @media (min-width: 768px) {
      .p-agency__cta-heading {
        font-size: var(--text-3xl, 30px);
      }
    }
    .p-agency__cta-text {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.6));
      line-height: 1.85;
      margin-bottom: var(--space-xl, 24px);
    }
    .p-agency__cta-recommend {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-xl, 16px);
      padding: var(--space-xl, 24px);
      margin-bottom: var(--space-xl, 24px);
      text-align: left;
    }
    .p-agency__cta-recommend-title {
      font-size: var(--text-base, 16px);
      font-weight: 700;
      color: var(--color-text-primary);
      margin-bottom: var(--space-md, 16px);
      text-align: center;
    }
    .p-agency__cta-recommend-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-md, 16px);
    }
    .p-agency__cta-recommend-list li {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .p-agency__cta-recommend-list li strong {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-primary);
    }
    .p-agency__cta-recommend-list li span {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-secondary, rgba(255,255,255,0.55));
    }
    .p-agency__cta-note {
      font-size: var(--text-sm, 14px);
      color: var(--color-text-muted, rgba(255,255,255,0.4));
      margin-bottom: var(--space-xl, 24px);
    }
    .p-agency__cta-actions {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md, 16px);
    }
    @media (min-width: 540px) {
      .p-agency__cta-actions {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
      }
    }

    /* ===== Decoration SVGs ===== */
    .p-agency__intro-deco,
    .p-agency__problems-deco,
    .p-agency__expert-deco,
    .p-agency__pdca-deco,
    .p-agency__flow-deco,
    .p-agency__cta-deco {
      position: absolute;
      pointer-events: none;
      opacity: 0.5;
      color: var(--color-text-muted, rgba(255,255,255,0.3));
    }
    .p-agency__intro-deco {
      top: var(--space-lg, 24px);
      right: var(--space-lg, 24px);
    }
    .p-agency__problems-deco {
      bottom: var(--space-lg, 24px);
      right: var(--space-lg, 24px);
    }
    .p-agency__expert-deco {
      bottom: var(--space-lg, 24px);
      left: var(--space-lg, 24px);
    }
    .p-agency__pdca-deco {
      top: 50%;
      right: var(--space-lg, 24px);
      transform: translateY(-50%);
    }
    .p-agency__flow-deco {
      top: 0;
      right: var(--space-lg, 24px);
    }
    .p-agency__cta-deco {
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  
/* inline: preview-recruit.html */

    /* ===== Inline section styles for Recruit page ===== */

    /* ---- Hero Extended ---- */
    .s-recruit-hero__copy {
      max-width: 900px;
      margin: 0 auto;
      text-align: center;
    }
    .s-recruit-hero__headline {
      font-size: clamp(2rem, 6vw, 4rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1.35;
      margin-bottom: 1.25rem;
      letter-spacing: 0.02em;
    }
    .s-recruit-hero__sub {
      font-size: clamp(0.9rem, 1.8vw, 1.1rem);
      color: rgba(255, 255, 255, 0.72);
      line-height: 1.85;
      max-width: 620px;
      margin: 0 auto 2rem;
    }
    .s-recruit-hero__stats {
      display: flex;
      justify-content: center;
      gap: 2.5rem;
      flex-wrap: wrap;
      margin-top: 2.5rem;
      padding-top: 2rem;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .s-recruit-hero__stat {
      text-align: center;
    }
    .s-recruit-hero__stat-number {
      font-family: var(--font-en);
      font-size: clamp(2rem, 4vw, 2.75rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1;
      display: block;
    }
    .s-recruit-hero__stat-label {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.5rem;
      display: block;
      letter-spacing: 0.05em;
    }

    /* ---- Recruit Message ---- */
    .s-recruit-message__inner {
      max-width: 800px;
      margin: 0 auto;
      text-align: center;
    }
    .s-recruit-message__heading {
      font-size: clamp(1.5rem, 3vw, 2rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1.4;
      margin-bottom: 2rem;
    }
    .s-recruit-message__text {
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.72);
      line-height: 2;
    }
    .s-recruit-message__text p {
      margin-bottom: 1.5rem;
    }
    .s-recruit-message__text p:last-child {
      margin-bottom: 0;
    }
    .s-recruit-message__signature {
      margin-top: 2.5rem;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
    }
    .s-recruit-message__signature-avatar {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      overflow: hidden;
      border: 2px solid rgba(255, 255, 255, 0.1);
    }
    .s-recruit-message__signature-name {
      font-size: 0.9rem;
      font-weight: 700;
      color: #ffffff;
    }
    .s-recruit-message__signature-role {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.08em;
    }

    /* ---- Why S.Line ---- */
    .s-why__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }
    @media (min-width: 768px) {
      .s-why__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 1024px) {
      .s-why__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .s-why__card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 1rem;
      padding: 2.5rem 1.75rem;
      text-align: center;
      position: relative;
      overflow: hidden;
      transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease, box-shadow 0.4s ease;
    }
    .s-why__card:hover {
      transform: translateY(-6px);
      border-color: rgba(255, 255, 255, 0.14);
      box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    }
    .s-why__card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--color-accent-yellow, #c8a96e), rgba(200, 169, 110, 0.3));
      opacity: 0;
      transition: opacity 0.4s ease;
    }
    .s-why__card:hover::before {
      opacity: 1;
    }
    .s-why__icon {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 1.5rem;
      color: rgba(255, 255, 255, 0.6);
      transition: background 0.3s ease, color 0.3s ease;
    }
    .s-why__card:hover .s-why__icon {
      background: rgba(200, 169, 110, 0.1);
      color: var(--color-accent-yellow, #c8a96e);
    }
    .s-why__title {
      font-size: 1.1rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.75rem;
      line-height: 1.4;
    }
    .s-why__text {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
    }

    /* ---- Culture / Values ---- */
    .s-recruit-values__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.25rem;
    }
    @media (min-width: 640px) {
      .s-recruit-values__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 1024px) {
      .s-recruit-values__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .s-recruit-values__card {
      background: rgba(255, 255, 255, 0.025);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 1rem;
      padding: 2rem 1.5rem;
      text-align: center;
      position: relative;
      overflow: hidden;
      transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease, box-shadow 0.4s ease;
    }
    .s-recruit-values__card:hover {
      transform: translateY(-4px);
      border-color: rgba(255, 255, 255, 0.14);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    }
    .s-recruit-values__number {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      color: var(--color-accent-yellow, #c8a96e);
      font-family: var(--font-en);
      font-size: 0.85rem;
      font-weight: 700;
      margin-bottom: 1.25rem;
    }
    .s-recruit-values__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      margin: 0 auto 0.75rem;
      color: rgba(255, 255, 255, 0.6);
    }
    .s-recruit-values__title {
      font-size: 1rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.5rem;
      line-height: 1.4;
    }
    .s-recruit-values__en {
      font-family: var(--font-en);
      font-size: 0.65rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      margin-bottom: 0.75rem;
      display: block;
    }
    .s-recruit-values__text {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.8;
    }
    .s-recruit-values__card--full {
      grid-column: 1 / -1;
      background: rgba(200, 169, 110, 0.04);
      border-color: rgba(200, 169, 110, 0.12);
    }

    /* Culture gallery placeholder */
    .s-culture-gallery {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
      margin-top: 3rem;
    }
    @media (min-width: 768px) {
      .s-culture-gallery {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .s-culture-gallery__item {
      aspect-ratio: 4 / 3;
      border-radius: 0.75rem;
      overflow: hidden;
      background: linear-gradient(135deg, #1a1a1a 0%, #222 40%, #282828 60%, #1a1a1a 100%);
      background-size: 200% 200%;
      animation: imgShimmer 6s ease infinite;
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(255, 255, 255, 0.15);
      font-size: 0.65rem;
      font-family: var(--font-en);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      border: 1px solid rgba(255, 255, 255, 0.05);
    }
    @keyframes imgShimmer {
      0%, 100% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
    }

    /* ---- Open Positions ---- */
    .s-recruit-positions__list {
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
    }
    .s-recruit-positions__card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 1rem;
      overflow: hidden;
      transition: border-color 0.4s ease, box-shadow 0.4s ease;
    }
    .s-recruit-positions__card:hover {
      border-color: rgba(255, 255, 255, 0.14);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    }
    .s-recruit-positions__card-header {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      padding: 1.75rem 2rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    @media (min-width: 768px) {
      .s-recruit-positions__card-header {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
      }
    }
    .s-recruit-positions__title {
      font-size: 1.15rem;
      font-weight: 700;
      color: #ffffff;
      flex: 1;
    }
    @media (min-width: 768px) {
      .s-recruit-positions__title {
        font-size: 1.25rem;
      }
    }
    .s-recruit-positions__badges {
      display: flex;
      gap: 0.5rem;
      flex-wrap: wrap;
    }
    .s-recruit-positions__type {
      display: inline-block;
      padding: 0.25rem 0.75rem;
      font-size: 0.7rem;
      font-weight: 700;
      color: var(--color-accent-yellow, #c8a96e);
      background: rgba(200, 169, 110, 0.1);
      border: 1px solid rgba(200, 169, 110, 0.2);
      border-radius: 100px;
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .s-recruit-positions__type--remote {
      color: rgba(255, 255, 255, 0.6);
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(255, 255, 255, 0.1);
    }
    .s-recruit-positions__body {
      padding: 1.5rem 2rem 2rem;
    }
    .s-recruit-positions__desc {
      font-size: 0.9rem;
      color: rgba(255, 255, 255, 0.68);
      line-height: 1.85;
      margin-bottom: 1.25rem;
    }
    .s-recruit-positions__detail-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1rem;
      margin-bottom: 1.5rem;
    }
    @media (min-width: 768px) {
      .s-recruit-positions__detail-grid {
        grid-template-columns: 1fr 1fr;
      }
    }
    .s-recruit-positions__detail-block h4 {
      font-size: 0.75rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .s-recruit-positions__detail-block ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .s-recruit-positions__detail-block li {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
      padding-left: 1rem;
      position: relative;
    }
    .s-recruit-positions__detail-block li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.55em;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.2);
    }
    .s-recruit-positions__actions {
      padding-top: 1.25rem;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
      display: flex;
      align-items: center;
      gap: 1rem;
    }

    /* ---- Employee Voices ---- */
    .s-voices__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }
    @media (min-width: 768px) {
      .s-voices__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .s-voices__card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 1rem;
      padding: 2rem 1.75rem;
      position: relative;
      transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease, box-shadow 0.4s ease;
    }
    .s-voices__card:hover {
      transform: translateY(-4px);
      border-color: rgba(255, 255, 255, 0.14);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    }
    .s-voices__card::before {
      content: "\201C";
      font-family: var(--font-en);
      font-size: 3.5rem;
      color: rgba(255, 255, 255, 0.06);
      position: absolute;
      top: 0.5rem;
      left: 1.25rem;
      line-height: 1;
    }
    .s-voices__role-badge {
      display: inline-block;
      padding: 0.2rem 0.6rem;
      font-size: 0.65rem;
      font-weight: 600;
      color: var(--color-accent-yellow, #c8a96e);
      background: rgba(200, 169, 110, 0.08);
      border: 1px solid rgba(200, 169, 110, 0.15);
      border-radius: 100px;
      letter-spacing: 0.04em;
      margin-bottom: 1rem;
    }
    .s-voices__text {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.72);
      line-height: 1.9;
      margin-bottom: 1.5rem;
      padding-top: 0.5rem;
    }
    .s-voices__author {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      padding-top: 1rem;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
    }
    .s-voices__avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      overflow: hidden;
      flex-shrink: 0;
      background: linear-gradient(135deg, #1a1a1a, #282828);
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(255, 255, 255, 0.6);
      font-size: 0.55rem;
      font-family: var(--font-en);
      letter-spacing: 0.06em;
      border: 1px solid rgba(255, 255, 255, 0.08);
    }
    .s-voices__name {
      font-size: 0.85rem;
      font-weight: 700;
      color: #ffffff;
    }
    .s-voices__position {
      font-size: 0.7rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.04em;
    }

    /* ---- Application Flow ---- */
    .s-recruit-flow__steps {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
      max-width: 740px;
      margin: 0 auto;
      position: relative;
    }
    .s-recruit-flow__step {
      display: flex;
      align-items: flex-start;
      gap: 1.5rem;
      padding: 2rem 0;
      position: relative;
    }
    .s-recruit-flow__step + .s-recruit-flow__step {
      border-top: 1px solid rgba(255, 255, 255, 0.06);
    }
    .s-recruit-flow__number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 52px;
      height: 52px;
      flex-shrink: 0;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.1);
      color: var(--color-accent-yellow, #c8a96e);
      border-radius: 50%;
      font-family: var(--font-en);
      font-size: 0.9rem;
      font-weight: 700;
      transition: background 0.3s ease, border-color 0.3s ease;
    }
    .s-recruit-flow__step:hover .s-recruit-flow__number {
      background: rgba(200, 169, 110, 0.1);
      border-color: rgba(200, 169, 110, 0.2);
    }
    .s-recruit-flow__body {
      flex: 1;
      padding-top: 0.35rem;
    }
    .s-recruit-flow__title {
      font-size: 1.05rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.35rem;
    }
    .s-recruit-flow__text {
      font-size: 0.85rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
    }
    .s-recruit-flow__duration {
      display: inline-block;
      margin-top: 0.5rem;
      font-size: 0.7rem;
      color: rgba(255, 255, 255, 0.6);
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 100px;
      padding: 0.15rem 0.6rem;
      letter-spacing: 0.03em;
    }

    /* ---- Data Highlights ---- */
    .s-recruit-data__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
    }
    @media (min-width: 768px) {
      .s-recruit-data__grid {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .s-recruit-data__item {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 1rem;
      padding: 2rem 1rem;
      text-align: center;
      transition: border-color 0.3s ease;
    }
    .s-recruit-data__item:hover {
      border-color: rgba(255, 255, 255, 0.14);
    }
    .s-recruit-data__value {
      font-family: var(--font-en);
      font-size: clamp(1.75rem, 3.5vw, 2.5rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1;
      display: block;
    }
    .s-recruit-data__unit {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
    }
    .s-recruit-data__label {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.5rem;
      display: block;
      letter-spacing: 0.03em;
    }

    /* ---- Work Style ---- */
    .s-workstyle__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.25rem;
    }
    @media (min-width: 768px) {
      .s-workstyle__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    .s-workstyle__item {
      background: rgba(255, 255, 255, 0.025);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 0.75rem;
      padding: 1.75rem 1.5rem;
      transition: border-color 0.3s ease;
    }
    .s-workstyle__item:hover {
      border-color: rgba(255, 255, 255, 0.12);
    }
    .s-workstyle__item-icon {
      color: rgba(255, 255, 255, 0.6);
      margin-bottom: 1rem;
    }
    .s-workstyle__item-title {
      font-size: 0.95rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.35rem;
    }
    .s-workstyle__item-text {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.8;
    }

    /* ---- Employment Notice ---- */
    .s-recruit-notice {
      text-align: center;
      margin-top: 2.5rem;
      padding: 2rem;
      background: rgba(255, 255, 255, 0.025);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 1rem;
    }
    .s-recruit-notice__title {
      font-size: 1.05rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.5rem;
    }
    .s-recruit-notice__text {
      font-size: 0.85rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.8;
      max-width: 640px;
      margin: 0 auto;
    }

    /* ---- CTA Extended ---- */
    .s-cta-final__subtext {
      font-size: 0.85rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 1.5rem;
    }

  
/* inline: preview-blog.html */

    /* ===== Blog layout v8 — CSS Grid, no external class deps ===== */
    #blog-content-layout {
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 2rem !important;
    }
    #blog-main {
      min-width: 0 !important;
      max-width: none !important;
      width: 100% !important;
      overflow: hidden !important;
    }
    /* Force nested card grid to shrink within parent */
    #blog-main .p-archive__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      max-width: 100% !important;
    }
    #blog-aside {
      width: 100% !important;
    }
    @media (min-width: 1024px) {
      #blog-content-layout {
        grid-template-columns: minmax(0, 1fr) 300px !important;
        gap: 40px !important;
        align-items: start !important;
      }
      #blog-main {
        width: auto !important;
      }
      #blog-aside {
        width: 300px !important;
        max-width: 300px !important;
      }
      #blog-aside .l-sidebar {
        position: sticky !important;
        top: 100px !important;
        max-height: calc(100vh - 120px) !important;
        overflow-y: auto !important;
        width: 100% !important;
      }
    }

    /* ===== Blog page - Dark theme sidebar widgets ===== */
    .c-widget {
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      margin-bottom: var(--space-lg);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .c-widget:last-child {
      margin-bottom: 0;
    }
    .c-widget__title {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: rgba(255, 255, 255, 0.9);
      margin-bottom: var(--space-md);
      padding-bottom: var(--space-sm);
      border-bottom: 2px solid var(--color-brand-primary);
      letter-spacing: var(--tracking-wide);
    }

    /* Search widget */
    .c-widget__search-form {
      display: flex;
      align-items: stretch;
    }
    .c-widget__search-input {
      flex: 1;
      padding: var(--space-sm) var(--space-md);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-right: none;
      border-radius: var(--radius-md) 0 0 var(--radius-md);
      font-size: var(--text-sm);
      background: rgba(255, 255, 255, 0.06);
      color: #fff;
      transition: border-color 0.2s;
    }
    .c-widget__search-input::placeholder {
      color: rgba(255, 255, 255, 0.4);
    }
    .c-widget__search-input:focus {
      border-color: var(--color-brand-primary);
      outline: none;
      background: rgba(255, 255, 255, 0.08);
    }
    .c-widget__search-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      background-color: var(--color-brand-primary);
      border: 1px solid var(--color-brand-primary);
      border-radius: 0 var(--radius-md) var(--radius-md) 0;
      color: #fff;
      cursor: pointer;
      transition: opacity 0.2s;
    }
    .c-widget__search-btn:hover {
      opacity: 0.85;
    }

    /* Category list widget */
    .c-widget__category-list {
      display: flex;
      flex-direction: column;
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .c-widget__category-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: var(--space-sm) 0;
      font-size: var(--text-sm);
      color: rgba(255, 255, 255, 0.7);
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
      text-decoration: none;
      transition: color 0.2s;
    }
    .c-widget__category-link:last-child {
      border-bottom: none;
    }
    .c-widget__category-link:hover {
      color: var(--color-brand-primary);
    }
    .c-widget__category-count {
      font-size: var(--text-xs);
      color: rgba(255, 255, 255, 0.4);
      font-family: var(--font-en);
    }

    /* Popular posts widget */
    .c-widget__post-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-md);
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .c-widget__post-item {
      display: flex;
      gap: var(--space-sm);
    }
    .c-widget__post-item a {
      display: flex;
      gap: var(--space-sm);
      text-decoration: none;
      color: inherit;
    }
    .c-widget__post-thumb {
      width: 72px;
      height: 52px;
      border-radius: var(--radius-sm);
      overflow: hidden;
      flex-shrink: 0;
    }
    .c-widget__post-info {
      flex: 1;
      min-width: 0;
    }
    .c-widget__post-title {
      font-size: var(--text-sm);
      font-weight: var(--fw-medium);
      color: rgba(255, 255, 255, 0.85);
      line-height: var(--leading-snug);
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      transition: color 0.2s;
    }
    .c-widget__post-item a:hover .c-widget__post-title {
      color: #fff;
    }
    .c-widget__post-date {
      font-size: var(--text-xs);
      color: rgba(255, 255, 255, 0.4);
      font-family: var(--font-en);
      margin-top: var(--space-xs);
      display: block;
    }

    /* CTA widget */
    .c-widget--cta {
      background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary, var(--color-brand-primary)));
      border: none;
      color: #fff;
      text-align: center;
    }
    .c-widget--cta .c-widget__title {
      color: #fff;
      border-bottom-color: rgba(255, 255, 255, 0.3);
    }
    .c-widget__cta-text {
      font-size: var(--text-sm);
      margin-bottom: var(--space-md);
      line-height: var(--leading-relaxed);
      color: rgba(255, 255, 255, 0.9);
    }
    .c-widget__cta-btn {
      display: inline-block;
      padding: var(--space-sm) var(--space-xl);
      background: #fff;
      color: var(--color-brand-primary);
      border-radius: var(--radius-md);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      text-decoration: none;
      transition: opacity 0.2s, transform 0.2s;
    }
    .c-widget__cta-btn:hover {
      opacity: 0.9;
      transform: translateY(-1px);
    }

    /* Blog card badge - dark theme fix */
    .c-card__category.c-badge {
      background: rgba(255, 255, 255, 0.9) !important;
      color: #1a1a2e !important;
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      padding: 4px 12px;
      border-radius: var(--radius-full);
      backdrop-filter: blur(4px);
    }

    /* Blog card body - ensure readability */
    .c-card--post .c-card__body {
      background: rgba(255, 255, 255, 0.03);
    }
    .c-card--post .c-card__title {
      color: rgba(255, 255, 255, 0.92);
    }
    .c-card--post .c-card__text {
      color: rgba(255, 255, 255, 0.6);
    }
    .c-card--post .c-card__date {
      color: rgba(255, 255, 255, 0.4);
    }

    /* Pagination dark theme */
    .c-pagination__item {
      color: rgba(255, 255, 255, 0.6);
      border-color: rgba(255, 255, 255, 0.1);
    }
    .c-pagination__item:hover {
      color: #fff;
      border-color: var(--color-brand-primary);
    }
    .c-pagination__item--current {
      background: var(--color-brand-primary);
      color: #fff;
      border-color: var(--color-brand-primary);
    }
    .c-pagination__dots {
      color: rgba(255, 255, 255, 0.4);
    }
  
/* inline: preview-news.html */

    /* ===== News filter tabs ===== */
    .p-news-filter {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-sm);
      margin-bottom: var(--space-2xl);
    }
    .p-news-filter__btn {
      display: inline-flex;
      align-items: center;
      padding: var(--space-sm) var(--space-lg);
      border: 1px solid var(--color-border);
      border-radius: var(--radius-full);
      background: var(--color-bg-white);
      color: var(--color-text-secondary);
      font-size: var(--text-sm);
      font-weight: var(--fw-medium);
      cursor: pointer;
      transition: all var(--transition-fast);
      letter-spacing: var(--tracking-wide);
    }
    .p-news-filter__btn:hover {
      border-color: var(--color-brand-primary);
      color: var(--color-brand-primary);
    }
    .p-news-filter__btn.is-active {
      background: var(--color-brand-primary);
      border-color: var(--color-brand-primary);
      color: var(--color-text-white);
    }

    /* ===== News card list ===== */
    .p-news-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-lg);
    }

    .p-news-card {
      display: flex;
      align-items: flex-start;
      gap: var(--space-xl);
      padding: var(--space-xl);
      background: var(--color-bg-white);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-sm);
      text-decoration: none;
      color: inherit;
      transition: box-shadow var(--transition-fast), transform var(--transition-fast);
      position: relative;
    }
    .p-news-card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }

    .p-news-card__meta {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-sm);
      flex-shrink: 0;
      min-width: 140px;
    }

    .p-news-card__badge {
      display: inline-block;
      padding: 4px 12px;
      border-radius: var(--radius-full);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      letter-spacing: var(--tracking-wide);
      line-height: 1.4;
      white-space: nowrap;
    }
    .p-news-card__badge--notice {
      background: rgba(59, 130, 246, 0.1);
      color: #3b82f6;
    }
    .p-news-card__badge--press {
      background: rgba(34, 197, 94, 0.1);
      color: #16a34a;
    }
    .p-news-card__badge--media {
      background: rgba(234, 179, 8, 0.1);
      color: #ca8a04;
    }
    .p-news-card__badge--service {
      background: rgba(168, 85, 247, 0.1);
      color: #9333ea;
    }

    .p-news-card__date {
      font-family: var(--font-en);
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      letter-spacing: var(--tracking-wide);
    }

    .p-news-card__content {
      flex: 1;
      min-width: 0;
    }

    .p-news-card__title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
      margin-bottom: var(--space-sm);
      transition: color var(--transition-fast);
    }
    .p-news-card:hover .p-news-card__title {
      color: var(--color-brand-primary);
    }

    .p-news-card__excerpt {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      margin-bottom: var(--space-md);
    }

    .p-news-card__link {
      display: inline-flex;
      align-items: center;
      gap: var(--space-xs);
      font-size: var(--text-sm);
      font-weight: var(--fw-medium);
      color: var(--color-brand-primary);
      text-decoration: none;
      transition: gap var(--transition-fast);
    }
    .p-news-card:hover .p-news-card__link {
      gap: var(--space-sm);
    }

    /* ===== Responsive ===== */
    @media (max-width: 768px) {
      .p-news-card {
        flex-direction: column;
        gap: var(--space-md);
        padding: var(--space-lg);
      }
      .p-news-card__meta {
        flex-direction: row;
        align-items: center;
        min-width: auto;
      }
      .p-news-card__title {
        font-size: var(--text-base);
      }
      .p-news-filter {
        gap: var(--space-xs);
      }
      .p-news-filter__btn {
        padding: 6px var(--space-md);
        font-size: var(--text-xs);
      }
    }

    /* ===== CTA section ===== */
    .p-news-cta {
      text-align: center;
      padding: var(--space-4xl) 0;
    }
    .p-news-cta__heading {
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-md);
      letter-spacing: var(--tracking-wide);
    }
    .p-news-cta__text {
      font-size: var(--text-base);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      margin-bottom: var(--space-xl);
      max-width: 560px;
      margin-left: auto;
      margin-right: auto;
    }
  
/* inline: preview-contact.html */

    /* ===== Contact Info Section ===== */
    .s-contact-info {
      padding: var(--space-3xl) 0;
      background-color: var(--color-bg-white);
    }
    .s-contact-info__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
    }
    @media (min-width: 540px) {
      .s-contact-info__grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 768px) {
      .s-contact-info__grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .s-contact-info__item {
      padding: var(--space-xl);
      background-color: var(--color-bg-accent);
      border-radius: var(--radius-lg);
      text-align: center;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .s-contact-info__item:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
    }
    .s-contact-info__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 56px;
      height: 56px;
      margin: 0 auto var(--space-md);
      background-color: var(--color-bg-white);
      border-radius: var(--radius-full);
      color: var(--color-brand-primary);
    }
    .s-contact-info__icon svg {
      width: 24px;
      height: 24px;
    }
    .s-contact-info__title {
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-xs);
      letter-spacing: var(--tracking-wide);
    }
    .s-contact-info__text {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }

    /* ===== Contact Form Section ===== */
    .s-contact-form {
      padding: var(--space-3xl) 0;
      background-color: var(--color-bg);
    }
    .s-contact-form__lead {
      text-align: center;
      max-width: 600px;
      margin: 0 auto var(--space-2xl);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    @media (min-width: 768px) {
      .s-contact-form__lead {
        font-size: var(--text-base);
      }
    }
    .s-contact-form__inner {
      max-width: 700px;
      margin: 0 auto;
      background-color: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-md);
    }
    @media (min-width: 768px) {
      .s-contact-form__inner {
        padding: var(--space-3xl);
      }
    }
    .s-contact-form__field {
      margin-bottom: var(--space-lg);
    }
    .s-contact-form__field:last-of-type {
      margin-bottom: 0;
    }
    .s-contact-form__label {
      display: block;
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
      letter-spacing: var(--tracking-wide);
    }
    .s-contact-form__required {
      display: inline-block;
      margin-left: var(--space-sm);
      padding: 2px 8px;
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-text-white);
      background-color: var(--color-error);
      border-radius: var(--radius-sm);
      vertical-align: middle;
    }
    .s-contact-form__input,
    .s-contact-form__select,
    .s-contact-form__textarea {
      display: block;
      width: 100%;
      min-height: 48px;
      padding: 0.875rem 1rem;
      font-family: var(--font-jp);
      font-size: 16px;
      color: var(--color-text-primary);
      background-color: var(--color-bg-white);
      border: 1.5px solid var(--color-border);
      border-radius: var(--radius-md);
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
      appearance: none;
      box-sizing: border-box;
    }
    .s-contact-form__input::placeholder,
    .s-contact-form__textarea::placeholder {
      color: var(--color-text-muted);
    }
    .s-contact-form__input:focus,
    .s-contact-form__select:focus,
    .s-contact-form__textarea:focus {
      outline: none;
      border-color: var(--color-brand-primary);
      box-shadow: 0 0 0 3px rgba(139, 164, 200, 0.2);
    }
    /* Error state for validation */
    .s-contact-form__input:invalid:not(:placeholder-shown),
    .s-contact-form__textarea:invalid:not(:placeholder-shown) {
      border-color: var(--color-error);
      box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.1);
    }
    .s-contact-form__textarea {
      min-height: 180px;
      resize: vertical;
      line-height: 1.8;
    }
    .s-contact-form__select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 16px center;
      padding-right: 44px;
      cursor: pointer;
    }
    .s-contact-form__checkbox-label {
      display: flex;
      align-items: flex-start;
      gap: var(--space-sm);
      cursor: pointer;
      font-size: var(--text-sm);
      color: var(--color-text-primary);
      line-height: var(--leading-normal);
    }
    .s-contact-form__checkbox {
      width: 20px;
      height: 20px;
      margin-top: 2px;
      flex-shrink: 0;
      accent-color: var(--color-brand-primary);
      cursor: pointer;
    }
    .s-contact-form__checkbox-text a {
      color: var(--color-brand-primary);
      text-decoration: underline;
    }
    .s-contact-form__checkbox-text a:hover {
      text-decoration: none;
    }
    .s-contact-form__action {
      margin-top: var(--space-2xl);
      text-align: center;
    }

    /* ===== LINE CTA Section ===== */
    .s-contact-line {
      padding: var(--space-3xl) 0;
      background-color: var(--color-bg-accent);
    }
    .s-contact-line__inner {
      text-align: center;
      max-width: 600px;
      margin: 0 auto;
    }
    .s-contact-line__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 72px;
      height: 72px;
      margin: 0 auto var(--space-lg);
      background-color: #06C755;
      border-radius: var(--radius-full);
      color: #ffffff;
    }
    .s-contact-line__icon svg {
      width: 36px;
      height: 36px;
    }
    .s-contact-line__heading {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-md);
    }
    @media (min-width: 768px) {
      .s-contact-line__heading {
        font-size: var(--text-2xl);
      }
    }
    .s-contact-line__text {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: 1.85;
      letter-spacing: 0.02em;
      margin-bottom: var(--space-xl);
    }
    @media (min-width: 768px) {
      .s-contact-line__text {
        font-size: var(--text-base);
      }
    }
    .c-btn--line {
      background-color: #06C755;
      color: var(--color-text-primary);
      border-color: #06C755;
    }
    .c-btn--line:hover {
      background-color: #05b54d;
      border-color: #05b54d;
      color: var(--color-text-primary);
    }

  
/* inline: preview-privacy.html */

    /* ===== Inline section styles for Privacy Policy page ===== */

    /* Privacy Content */
    .s-privacy__content {
      max-width: 800px;
      margin: 0 auto;
    }
    .s-privacy__section {
      margin-bottom: var(--space-3xl);
    }
    .s-privacy__section:last-child {
      margin-bottom: 0;
    }
    .s-privacy__heading {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-lg);
      padding-bottom: var(--space-sm);
      border-bottom: 2px solid var(--color-brand-primary);
      line-height: var(--leading-snug);
    }
    .s-privacy__subheading {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-top: var(--space-xl);
      margin-bottom: var(--space-md);
      line-height: var(--leading-snug);
    }
    .s-privacy__text {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      margin-bottom: var(--space-md);
    }
    .s-privacy__text:last-child {
      margin-bottom: 0;
    }
    .s-privacy__list {
      list-style: none;
      padding: 0;
      margin: 0 0 var(--space-md) 0;
    }
    .s-privacy__list li {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      padding-left: 1.5em;
      position: relative;
      margin-bottom: var(--space-xs);
    }
    .s-privacy__list li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0.65em;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--color-brand-primary);
    }
    .s-privacy__contact-info {
      background: var(--color-bg-secondary, #f8f8fa);
      border-radius: var(--radius-lg);
      padding: var(--space-xl);
      margin-top: var(--space-lg);
    }
    .s-privacy__contact-info p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      margin: 0;
    }
    .s-privacy__contact-info p + p {
      margin-top: var(--space-xs);
    }
    .s-privacy__contact-info a {
      color: var(--color-brand-primary);
      text-decoration: none;
      transition: color var(--transition-fast);
    }
    .s-privacy__contact-info a:hover {
      color: var(--color-brand-dark);
      text-decoration: underline;
    }
    .s-privacy__date {
      font-size: var(--text-sm);
      color: var(--color-text-tertiary, #999);
      text-align: right;
      margin-top: var(--space-3xl);
    }
  
/* inline: preview-legal.html */

    /* ===== Inline section styles for Legal page ===== */

    /* Legal Info Table */
    .s-legal-info__table-wrap {
      max-width: 800px;
      margin: 0 auto;
    }
    .s-legal-info__table {
      width: 100%;
      border-collapse: collapse;
    }
    .s-legal-info__row {
      border-bottom: 1px solid var(--color-border-light);
    }
    .s-legal-info__label {
      padding: var(--space-lg) var(--space-md);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      white-space: nowrap;
      vertical-align: top;
      width: 140px;
    }
    @media (min-width: 768px) {
      .s-legal-info__label {
        width: 200px;
        padding: var(--space-lg) var(--space-xl);
      }
    }
    .s-legal-info__value {
      padding: var(--space-lg) var(--space-md);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
      vertical-align: top;
    }
    .s-legal-info__value a {
      color: var(--color-brand-primary);
      text-decoration: none;
      transition: color var(--transition-fast);
    }
    .s-legal-info__value a:hover {
      color: var(--color-brand-dark);
      text-decoration: underline;
    }
  
/* inline: preview-lp-step.html */

    /* ===== LP-specific styles (WHITE / LIGHT THEME) ===== */

    /* === CRITICAL: Override preview-overrides.css dark theme === */
    /* preview-overrides.css forces .l-section { background: #2c2c2c !important }
       We need higher specificity to make this LP white */
    body.page-lp-step {
      background: #ffffff !important;
    }
    .page-lp-step .l-main {
      background: #ffffff !important;
    }
    .page-lp-step .l-section,
    .page-lp-step .l-section--accent {
      --color-text-primary: #1a1a2e;
      --color-text-secondary: #555;
      --color-text-muted: #666;
      --color-bg-white: #ffffff;
      --color-bg-accent: #f8f9fa;
      --color-bg: #ffffff;
      --color-bg-subtle: rgba(0, 0, 0, 0.02);
      --color-border: rgba(0, 0, 0, 0.1);
      --color-border-light: rgba(0, 0, 0, 0.06);
      --color-brand-dark: #1a1a2e;
      --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.06);
      --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.1);
      --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
      color: #333;
    }
    .page-lp-step .l-section {
      background: #ffffff !important;
    }
    .page-lp-step .l-section--accent {
      background: #f8f9fa !important;
    }
    /* EXCEPTION: Final CTA stays dark for dramatic contrast */
    .page-lp-step .lp-final-cta.l-section {
      background: linear-gradient(135deg, #1a1a2e 0%, #2d2d3f 50%, #1a1a2e 100%) !important;
    }
    .page-lp-step .lp-final-cta .c-section-heading__ja,
    .page-lp-step .lp-final-cta h2 {
      color: #ffffff !important;
    }
    /* Section headings - override dark theme white text */
    .page-lp-step .l-section .c-section-heading__en {
      color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-step .l-section .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-step .l-section .c-section-heading__desc {
      color: #444 !important;
    }
    .page-lp-step .l-section .c-section-label {
      color: #777 !important;
    }
    /* Buttons - override dark theme inverted buttons */
    .page-lp-step .l-section .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-step .l-section .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
      color: #ffffff !important;
    }
    .page-lp-step .l-section .c-btn--ghost {
      color: #333 !important;
      border-color: rgba(0, 0, 0, 0.2) !important;
      background: transparent !important;
    }
    .page-lp-step .l-section .c-btn--ghost:hover {
      background: rgba(0, 0, 0, 0.04) !important;
      border-color: rgba(0, 0, 0, 0.3) !important;
      color: #1a1a2e !important;
    }
    /* Cards on light */
    .page-lp-step .l-section .c-card,
    .page-lp-step .l-section .c-card--gradient-border {
      background: #ffffff !important;
      border: 1px solid rgba(0, 0, 0, 0.08) !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-step .l-section .c-card:hover {
      border-color: rgba(0, 0, 0, 0.12) !important;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-step .l-section .c-card__title { color: #1a1a2e !important; }
    .page-lp-step .l-section .c-card__text { color: #444 !important; }
    /* Accordion on light */
    .page-lp-step .c-accordion {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-step .c-accordion__header {
      background: transparent !important;
      color: #1a1a2e !important;
    }
    .page-lp-step .c-accordion__body {
      color: #444 !important;
    }
    .page-lp-step .c-accordion__body p {
      color: #444 !important;
    }
    /* Data-tilt elements - override dark theme */
    .page-lp-step .l-section [data-tilt] h3 {
      color: #1a1a2e !important;
    }
    .page-lp-step .l-section [data-tilt] p {
      color: #444 !important;
    }
    /* Focus outline */
    .page-lp-step .l-section .c-btn:focus-visible {
      outline-color: #8B6914 !important;
    }
    /* Inline CTA section override */
    .page-lp-step .lp-inline-cta {
      background: rgba(196, 155, 12, 0.04) !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    /* Marquee override */
    .page-lp-step .c-marquee {
      background: #f8f9fa !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    .page-lp-step .c-marquee__item {
      color: #2d2d3f !important;
    }
    .page-lp-step .c-marquee__separator {
      background: rgba(0, 0, 0, 0.1) !important;
    }
    /* Floating CTA - LINE green */
    .page-lp-step .c-floating-cta__btn {
      background-color: #06C755 !important;
      color: #ffffff !important;
    }
    .page-lp-step .c-floating-cta__btn:hover {
      background-color: #05b34c !important;
      color: #ffffff !important;
    }
    /* Back to top - dark text on light */
    .page-lp-step .c-back-to-top {
      color: rgba(0, 0, 0, 0.4) !important;
    }
    .page-lp-step .c-back-to-top:hover {
      color: rgba(0, 0, 0, 0.8) !important;
    }

    /* ===== CRO Enhancement Styles ===== */

    /* --- Real-time social proof indicator --- */
    .cro-live-indicator {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.8rem;
      color: #444;
      padding: 0.5rem 1.25rem;
      background: rgba(6, 199, 85, 0.06);
      border: 1px solid rgba(6, 199, 85, 0.15);
      border-radius: 100px;
      margin-bottom: 1rem;
    }
    .cro-live-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #06C755;
      animation: croPulse 2s ease-in-out infinite;
    }
    @keyframes croPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.8); }
    }

    /* --- Media coverage bar --- */
    .cro-media-bar {
      text-align: center;
      padding: 1.25rem 1rem;
      background: #f8f9fa;
      border-top: 1px solid rgba(0, 0, 0, 0.04);
      border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    }
    .cro-media-bar__label {
      font-size: 0.7rem;
      color: #777;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .cro-media-bar__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cro-media-bar__item {
      font-family: 'Outfit', 'Noto Sans JP', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      color: rgba(0, 0, 0, 0.35);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .cro-media-bar__sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.15);
    }

    /* --- Micro-copy under CTAs --- */
    .cro-micro-copy {
      font-size: 0.78rem;
      color: #666;
      margin-top: 0.75rem;
      line-height: 1.6;
    }
    .cro-micro-copy--light {
      color: rgba(255, 255, 255, 0.7);
    }

    /* --- Risk reversal badge --- */
    .cro-risk-reversal {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.78rem;
      color: #555;
      padding: 0.5rem 1.25rem;
      background: rgba(6, 199, 85, 0.04);
      border: 1px solid rgba(6, 199, 85, 0.12);
      border-radius: 8px;
      margin-top: 0.75rem;
    }
    .cro-risk-reversal--dark {
      color: rgba(255, 255, 255, 0.65);
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(255, 255, 255, 0.1);
    }

    /* --- Loss aversion copy --- */
    .cro-loss-aversion {
      text-align: center;
      padding: 2.5rem 1.5rem;
      max-width: 640px;
      margin: 0 auto;
    }
    .cro-loss-aversion__text {
      font-size: 0.95rem;
      color: #666;
      line-height: 1.85;
      font-style: italic;
    }
    .cro-loss-aversion__text strong {
      color: #1a1a2e;
      font-style: normal;
    }

    /* --- Authority compact badges --- */
    .cro-authority-badges {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      flex-wrap: wrap;
      margin-top: 1rem;
    }
    .cro-authority-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.72rem;
      color: #666;
      padding: 0.3rem 0.85rem;
      background: rgba(0, 0, 0, 0.03);
      border-radius: 100px;
      border: 1px solid rgba(0, 0, 0, 0.08);
    }
    .cro-authority-badge svg {
      width: 12px;
      height: 12px;
      opacity: 0.5;
    }

    /* --- Privacy footer copy --- */
    .cro-privacy-footer {
      text-align: center;
      font-size: 0.72rem;
      color: #777;
      padding: 0.75rem 1rem 0;
      line-height: 1.6;
    }

    /* LP Header - White/Glass */
    .lp-header {
      position: fixed;
      top: 52px; /* offset for dev toolbar */
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255, 255, 255, 0.92);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
      transition: background 0.3s ease, box-shadow 0.3s ease;
    }
    .lp-header.is-scrolled {
      box-shadow: 0 2px 24px rgba(0, 0, 0, 0.08);
    }
    .lp-header__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: 12px var(--space-lg);
    }
    .lp-header__logo img {
      display: block;
      height: 40px;
      width: auto;
    }
    .lp-header__cta .c-btn {
      font-size: var(--text-sm);
      padding: var(--space-sm) var(--space-xl);
    }
    .page-lp-step .lp-header .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-step .lp-header .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    /* Hero and inline CTA button colors - LINE green */
    .page-lp-step .lp-hero .c-btn--primary,
    .page-lp-step .lp-inline-cta .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-step .lp-hero .c-btn--primary:hover,
    .page-lp-step .lp-inline-cta .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    /* Final CTA buttons - white on dark background */
    .page-lp-step .lp-final-cta .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-step .lp-final-cta .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    .page-lp-step .lp-final-cta .c-btn--ghost {
      color: rgba(255, 255, 255, 0.8) !important;
      border-color: rgba(255, 255, 255, 0.3) !important;
    }
    .page-lp-step .lp-final-cta .c-btn--ghost:hover {
      background: rgba(255, 255, 255, 0.1) !important;
      color: #ffffff !important;
      border-color: rgba(255, 255, 255, 0.5) !important;
    }

    /* Hero Section - Light */
    .lp-hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 50%, #ffffff 100%);
      overflow: hidden;
      padding: 120px var(--space-lg) var(--space-3xl);
    }
    .lp-hero__particles {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(2px 2px at 20% 30%, rgba(196, 155, 12, 0.08), transparent),
        radial-gradient(2px 2px at 40% 70%, rgba(100, 140, 180, 0.06), transparent),
        radial-gradient(1px 1px at 60% 20%, rgba(196, 155, 12, 0.06), transparent),
        radial-gradient(1px 1px at 80% 50%, rgba(100, 140, 180, 0.05), transparent),
        radial-gradient(2px 2px at 10% 80%, rgba(196, 155, 12, 0.06), transparent),
        radial-gradient(1px 1px at 90% 10%, rgba(100, 140, 180, 0.06), transparent);
      background-size: 300px 300px;
      animation: lp-particle-drift 20s linear infinite;
    }
    @keyframes lp-particle-drift {
      0% { transform: translateY(0); }
      100% { transform: translateY(-300px); }
    }
    .lp-hero__overlay {
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at center, rgba(196, 155, 12, 0.03) 0%, transparent 70%);
    }
    .lp-hero__glow {
      position: absolute;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(196, 155, 12, 0.04) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      animation: lp-glow-pulse 6s ease-in-out infinite;
    }
    @keyframes lp-glow-pulse {
      0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
      50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
    }
    .lp-hero__content {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 860px;
      margin: 0 auto;
    }
    .lp-hero__label {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: #7A5C10;
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      padding: var(--space-xs) var(--space-lg);
      background: rgba(196, 155, 12, 0.08);
      border: 1px solid rgba(196, 155, 12, 0.2);
      border-radius: var(--radius-full);
      margin-bottom: var(--space-xl);
    }
    .lp-hero__heading {
      font-size: clamp(2rem, 6vw, 3.8rem);
      font-weight: var(--fw-black);
      color: #1a1a2e;
      line-height: 1.2;
      margin-bottom: var(--space-lg);
      letter-spacing: -0.02em;
    }
    .lp-hero__heading em {
      font-style: normal;
      background: linear-gradient(135deg, #8B6914, #9B7B1C, #e8d06c);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .lp-hero__sub {
      font-size: var(--text-lg);
      color: #444;
      line-height: var(--leading-relaxed);
      margin-bottom: var(--space-2xl);
      max-width: 680px;
      margin-left: auto;
      margin-right: auto;
    }
    .lp-hero__cta-group {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
    }
    .lp-hero__cta-note {
      font-size: var(--text-xs);
      color: #666;
      margin-top: var(--space-sm);
    }

    /* Hero Trust Badges - Light */
    .lp-hero__trust {
      display: flex;
      justify-content: center;
      gap: var(--space-lg);
      margin-top: var(--space-3xl);
      flex-wrap: wrap;
    }
    .lp-hero__trust-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-xs);
      padding: var(--space-md) var(--space-lg);
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.08);
      border-radius: var(--radius-lg);
      min-width: 120px;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
    }
    .lp-hero__trust-number {
      font-family: var(--font-en);
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      font-weight: var(--fw-black);
      color: #8B6914;
      line-height: 1;
    }
    .lp-hero__trust-label {
      font-size: 0.72rem;
      color: #555;
      letter-spacing: var(--tracking-wide);
      white-space: nowrap;
    }

    /* Pain Section - Light */
    .lp-pain__list {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-md);
      max-width: 760px;
      margin: var(--space-2xl) auto 0;
    }
    @media (min-width: 540px) {
      .lp-pain__list { grid-template-columns: repeat(2, 1fr); }
    }
    .lp-pain__item {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      background: #ffffff;
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-left: 4px solid #e74c3c;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .lp-pain__item:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    }
    .lp-pain__check {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border: 2px solid rgba(231, 76, 60, 0.5);
      border-radius: var(--radius-sm);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #e74c3c;
    }
    .lp-pain__text {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #2d2d3f;
      line-height: var(--leading-snug);
    }
    .lp-pain__bridge {
      text-align: center;
      margin-top: var(--space-3xl);
      padding: var(--space-2xl);
    }
    .lp-pain__bridge-text {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: #4a4a5a;
      line-height: var(--leading-relaxed);
    }
    .lp-pain__bridge-text strong {
      color: #8B6914;
    }

    /* Solution Section - Light */
    .lp-solution__cards {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .lp-solution__cards { grid-template-columns: repeat(3, 1fr); }
    }
    .lp-solution__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      text-align: center;
      box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
      position: relative;
      overflow: hidden;
    }
    .lp-solution__card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, #8B6914, rgba(196, 155, 12, 0.3));
    }
    .lp-solution__card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-solution__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      border-radius: var(--radius-full);
      background: rgba(196, 155, 12, 0.1);
      color: #8B6914;
      margin-bottom: var(--space-lg);
    }
    .lp-solution__card-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: var(--space-sm);
    }
    .lp-solution__card-desc {
      font-size: var(--text-sm);
      color: #555;
      line-height: 1.75;
    }

    /* Social Proof (Numbers) - Light */
    .lp-proof__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .lp-proof__grid { grid-template-columns: repeat(5, 1fr); }
    }
    .lp-proof__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      text-align: center;
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .lp-proof__card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-proof__number {
      display: block;
      font-family: var(--font-en);
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: var(--fw-black);
      color: #8B6914;
      line-height: 1;
      margin-bottom: var(--space-sm);
    }
    .lp-proof__label {
      display: block;
      font-size: var(--text-sm);
      color: #444;
      font-weight: var(--fw-bold);
      letter-spacing: var(--tracking-wide);
    }

    /* Testimonials Swiper - Light */
    .lp-testimonials .swiper {
      padding-bottom: var(--space-3xl);
    }
    .lp-testimonial__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.08);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl);
      height: auto;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
    }
    .lp-testimonial__top {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      margin-bottom: var(--space-lg);
    }
    .lp-testimonial__avatar {
      width: 56px;
      height: 56px;
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, #8B6914, #e8d06c);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      font-family: var(--font-en);
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      flex-shrink: 0;
    }
    .lp-testimonial__meta { flex: 1; }
    .lp-testimonial__name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: 2px;
    }
    .lp-testimonial__period {
      font-size: var(--text-xs);
      color: #777;
    }
    .lp-testimonial__result {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      margin-bottom: var(--space-md);
      padding: var(--space-sm) var(--space-md);
      background: rgba(196, 155, 12, 0.06);
      border: 1px solid rgba(196, 155, 12, 0.15);
      border-radius: var(--radius-md);
    }
    .lp-testimonial__before,
    .lp-testimonial__after {
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
    }
    .lp-testimonial__before { color: #777; }
    .lp-testimonial__arrow { color: #8B6914; font-size: var(--text-lg); }
    .lp-testimonial__after { color: #8B6914; }
    .lp-testimonial__quote {
      font-size: var(--text-base);
      color: #444;
      line-height: var(--leading-loose);
      font-style: normal;
    }
    .swiper-pagination-bullet { background: rgba(0, 0, 0, 0.2) !important; }
    .swiper-pagination-bullet-active { background: #8B6914 !important; }

    /* Instructor Section - Light */
    .lp-instructor__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-3xl);
      align-items: center;
    }
    @media (min-width: 768px) {
      .lp-instructor__grid { grid-template-columns: 1fr 1.2fr; }
    }
    .lp-instructor__image {
      aspect-ratio: 3 / 4;
      border-radius: var(--radius-xl);
      overflow: hidden;
      border: 1px solid rgba(0, 0, 0, 0.08);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-instructor__badges {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-sm);
      margin-top: var(--space-lg);
    }
    .lp-instructor__badge {
      display: inline-flex;
      align-items: center;
      gap: var(--space-xs);
      padding: var(--space-xs) var(--space-md);
      background: rgba(196, 155, 12, 0.08);
      border: 1px solid rgba(196, 155, 12, 0.18);
      border-radius: var(--radius-full);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: #7A5C10;
    }

    /* Course Tiers - Light */
    .lp-tiers__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .lp-tiers__grid { grid-template-columns: repeat(2, 1fr); }
    }
    .lp-tier__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.08);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      text-align: center;
      box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
      position: relative;
    }
    .lp-tier__card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-tier__card--featured {
      border-color: #8B6914;
      border-width: 2px;
      background: linear-gradient(180deg, rgba(196, 155, 12, 0.03) 0%, #ffffff 100%);
    }
    .lp-tier__card--featured::before {
      content: "人気No.1";
      position: absolute;
      top: -12px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      white-space: nowrap;
      color: #ffffff;
      background: linear-gradient(135deg, #8B6914, #e8d06c);
      padding: 4px 16px;
      border-radius: var(--radius-full);
    }
    .lp-tier__name {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: var(--space-xs);
    }
    .lp-tier__price {
      font-family: var(--font-en);
      font-size: var(--text-2xl);
      font-weight: var(--fw-black);
      color: #8B6914;
      margin-bottom: var(--space-md);
    }
    .lp-tier__desc {
      font-size: var(--text-sm);
      color: #555;
      line-height: 1.75;
      margin-bottom: var(--space-lg);
    }
    .lp-tier__features {
      list-style: none;
      padding: 0;
      margin: 0 0 var(--space-xl) 0;
      text-align: left;
    }
    .lp-tier__features li {
      font-size: var(--text-sm);
      color: #444;
      padding: var(--space-xs) 0;
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
      display: flex;
      align-items: center;
      gap: var(--space-sm);
    }
    .lp-tier__features li svg {
      flex-shrink: 0;
      color: #8B6914;
    }

    /* Curriculum Accordion - Light */
    .lp-curriculum__list {
      max-width: 800px;
      margin: var(--space-2xl) auto 0;
    }
    .lp-curriculum__module {
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
    .lp-curriculum__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
      gap: var(--space-md);
    }
    .lp-curriculum__trigger-left {
      display: flex;
      align-items: center;
      gap: var(--space-md);
    }
    .lp-curriculum__number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      flex-shrink: 0;
      background: rgba(196, 155, 12, 0.1);
      color: #8B6914;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
    }
    .lp-curriculum__title {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      line-height: var(--leading-snug);
    }
    .lp-curriculum__icon {
      flex-shrink: 0;
      color: #888;
      transition: transform 0.3s ease;
    }
    .lp-curriculum__module.is-open .lp-curriculum__icon {
      transform: rotate(180deg);
    }
    .lp-curriculum__content {
      padding: 0 0 var(--space-lg) calc(36px + var(--space-md));
    }
    .lp-curriculum__content p {
      font-size: var(--text-sm);
      color: #555;
      line-height: 1.85;
    }

    /* FAQ Accordion - Light */
    .lp-faq .c-accordion {
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
    .lp-faq .c-accordion__panel {
      display: block !important;
    }
    .lp-faq .c-accordion__panel[hidden] {
      display: block !important;
    }
    .lp-faq .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .lp-faq .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      line-height: var(--leading-snug);
    }
    .lp-faq .c-accordion__icon {
      flex-shrink: 0;
      color: #888;
      margin-left: var(--space-md);
    }
    .lp-faq .c-accordion__content {
      padding-bottom: var(--space-lg);
    }
    .lp-faq .c-accordion__content p {
      font-size: var(--text-sm);
      color: #555;
      line-height: 1.85;
    }

    /* Final CTA - DARK for contrast */
    .lp-final-cta {
      position: relative;
      overflow: hidden;
      background: linear-gradient(135deg, #1a1a2e 0%, #2d2d3f 50%, #1a1a2e 100%) !important;
    }
    .lp-final-cta__glow {
      position: absolute;
      width: 800px;
      height: 400px;
      border-radius: 50%;
      background: radial-gradient(ellipse, rgba(196, 155, 12, 0.08) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    .lp-final-cta__urgency {
      display: inline-flex;
      align-items: center;
      gap: var(--space-sm);
      padding: var(--space-sm) var(--space-lg);
      background: rgba(196, 155, 12, 0.12);
      border: 1px solid rgba(196, 155, 12, 0.3);
      border-radius: var(--radius-full);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: #e8d06c;
      margin-bottom: var(--space-xl);
      animation: lp-pulse 2s ease-in-out infinite;
    }
    @keyframes lp-pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.7; }
    }
    .lp-final-cta__actions {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
    }

    /* Inline CTA - Light */
    .lp-inline-cta {
      text-align: center;
      padding: var(--space-3xl) var(--space-lg);
      background: linear-gradient(180deg, rgba(196, 155, 12, 0.04) 0%, rgba(196, 155, 12, 0.02) 100%);
      border-top: 1px solid rgba(0, 0, 0, 0.04);
      border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    }
    .lp-inline-cta__text {
      font-size: var(--text-base);
      color: #444;
      margin-bottom: var(--space-lg);
    }

    /* Comparison Table - Light */
    .lp-compare__wrap {
      overflow-x: auto;
      margin-top: var(--space-2xl);
    }
    .lp-compare__table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
      min-width: 600px;
    }
    .lp-compare__table th,
    .lp-compare__table td {
      padding: var(--space-md) var(--space-lg);
      text-align: left;
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
    .lp-compare__table thead th {
      font-weight: var(--fw-bold);
      font-size: var(--text-base);
      color: #2d2d3f;
      background: #eef0f2;
    }
    .lp-compare__table thead th:last-child {
      background: rgba(196, 155, 12, 0.1);
      color: #7A5C10;
    }
    .lp-compare__table tbody td {
      color: #666;
    }
    .lp-compare__table tbody td:first-child {
      font-weight: var(--fw-bold);
      color: #2d2d3f;
    }
    .lp-compare__table tbody td:last-child {
      color: #7A5C10;
      font-weight: var(--fw-bold);
    }

    /* Footer - Light */
    .lp-footer {
      background: #f0f0f0;
      border-top: 1px solid rgba(0, 0, 0, 0.06);
      padding: var(--space-2xl) var(--space-lg);
    }
    .lp-footer__inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
      text-align: center;
    }
    .lp-footer__company {
      font-size: var(--text-sm);
      color: #666;
    }
    .lp-footer__links {
      display: flex;
      gap: var(--space-lg);
    }
    .lp-footer__links a {
      font-size: var(--text-xs);
      color: #555;
      text-decoration: none;
      transition: color 0.2s;
    }
    .lp-footer__links a:hover {
      color: #1a1a2e;
    }
    .lp-footer__copy {
      font-size: var(--text-xs);
      color: #777;
    }

    /* Wave Dividers */
    .lp-divider {
      color: #f8f9fa;
    }
    .lp-divider--alt {
      color: #ffffff;
    }

    /* Section text overrides for light theme */
    .lp-dark-heading {
      color: #1a1a2e !important;
    }
    .lp-dark-sub {
      color: #666 !important;
    }
    .lp-dark-muted {
      color: #777 !important;
    }

    /* Before/After transformation section */
    .lp-transform__grid {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: var(--space-lg);
      max-width: 900px;
      margin: var(--space-2xl) auto 0;
      align-items: start;
    }
    @media (max-width: 767px) {
      .lp-transform__grid { grid-template-columns: 1fr; }
      .lp-transform__arrow { transform: rotate(90deg); }
    }
    .lp-transform__col {
      background: #ffffff;
      border-radius: var(--radius-xl);
      padding: var(--space-2xl);
      border: 1px solid rgba(0, 0, 0, 0.08);
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.04);
    }
    .lp-transform__col--before {
      border-top: 4px solid #e74c3c;
    }
    .lp-transform__col--after {
      border-top: 4px solid #27ae60;
    }
    .lp-transform__arrow {
      display: flex;
      align-items: center;
      justify-content: center;
      padding-top: var(--space-3xl);
    }

    /* Before/After cards mobile */
    @media (max-width: 599px) {
      .lp-ba-card { grid-template-columns: 1fr !important; }
      .lp-ba-arrow { display: none !important; }
      .lp-ba-card > div:last-child { border-top: 1px solid rgba(0,0,0,0.06); }
    }

    /* YouTube lite cards */
    .lp-yt-card {
      border-radius: 12px;
      overflow: hidden;
      border: 1px solid rgba(0,0,0,0.08);
      box-shadow: 0 2px 16px rgba(0,0,0,0.06);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .lp-yt-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    }

    /* Video grid responsive */
    @media (min-width: 540px) {
      .lp-video-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 768px) {
      .lp-video-grid { grid-template-columns: repeat(3, 1fr); }
    }

    /* Responsive */
    @media (max-width: 767px) {
      .lp-hero__heading { font-size: clamp(1.75rem, 8vw, 2.5rem); }
      .lp-hero__sub { font-size: var(--text-base); }
      .lp-proof__grid { grid-template-columns: repeat(2, 1fr); }
      .lp-proof__grid > :last-child {
        grid-column: 1 / -1;
        max-width: 280px;
        margin: 0 auto;
      }
      .lp-proof__number { font-size: var(--text-2xl); }
      .lp-hero__trust { gap: var(--space-sm); }
      .lp-hero__trust-item { min-width: 100px; padding: var(--space-sm) var(--space-md); }
      .lp-hero__trust-number { font-size: var(--text-xl); }
      .lp-tiers__grid { gap: var(--space-md); }
    }
  
/* inline: preview-lp-step.html */

        @media (min-width: 640px) {
          .lp-recommend-grid { grid-template-columns: repeat(2, 1fr) !important; }
        }
      
/* inline: preview-lp-step.html */

  .lp-floating-bar {
    display: none;
  }
  @media (max-width: 767px) {
    .page-lp-step .c-floating-cta { display: none !important; }
    .lp-floating-bar {
      display: flex;
      flex-direction: column;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1001;
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-top: 1px solid rgba(0,0,0,0.08);
      padding: 10px 16px 12px;
      align-items: center;
      justify-content: center;
      gap: 4px;
      box-shadow: 0 -4px 24px rgba(0,0,0,0.08);
    }
    .lp-floating-bar__btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      max-width: 400px;
      padding: 14px 24px;
      background: #06C755;
      color: #ffffff;
      font-size: 1rem;
      font-weight: 700;
      border: none;
      border-radius: 12px;
      text-decoration: none;
      box-shadow: 0 4px 16px rgba(6,199,85,0.3);
      transition: background 0.2s;
    }
    .lp-floating-bar__btn:hover { background: #05b34c; }
    /* Add bottom padding to body so floating bar doesn't cover content */
    .page-lp-step .lp-footer { padding-bottom: 80px; }
  }

/* inline: preview-lp-skillon.html */

    /* ===== LP-specific styles (WHITE / LIGHT THEME) ===== */
    body.page-lp-skillon {
      background: #ffffff !important;
    }
    .page-lp-skillon .l-main {
      background: #ffffff !important;
    }
    .page-lp-skillon .l-section,
    .page-lp-skillon .l-section--accent {
      --color-text-primary: #1a1a2e;
      --color-text-secondary: #555;
      --color-text-muted: #666;
      --color-bg-white: #ffffff;
      --color-bg-accent: #f8f9fa;
      --color-bg: #ffffff;
      --color-bg-subtle: rgba(0, 0, 0, 0.02);
      --color-border: rgba(0, 0, 0, 0.1);
      --color-border-light: rgba(0, 0, 0, 0.06);
      --color-brand-dark: #1a1a2e;
      --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.06);
      --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.1);
      --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
      color: #333;
    }
    .page-lp-skillon .l-section {
      background: #ffffff !important;
    }
    .page-lp-skillon .l-section--accent {
      background: #f8f9fa !important;
    }
    .page-lp-skillon .lp-final-cta.l-section {
      background: linear-gradient(135deg, #1a1a2e 0%, #2d2d3f 50%, #1a1a2e 100%) !important;
    }
    .page-lp-skillon .lp-final-cta .c-section-heading__ja,
    .page-lp-skillon .lp-final-cta h2 {
      color: #ffffff !important;
    }
    .page-lp-skillon .l-section .c-section-heading__en {
      color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-skillon .l-section .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-skillon .l-section .c-section-heading__desc {
      color: #444 !important;
    }
    .page-lp-skillon .l-section .c-section-label {
      color: #777 !important;
    }
    .page-lp-skillon .l-section .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-skillon .l-section .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
      color: #ffffff !important;
    }
    .page-lp-skillon .l-section .c-btn--ghost {
      color: #333 !important;
      border-color: rgba(0, 0, 0, 0.2) !important;
      background: transparent !important;
    }
    .page-lp-skillon .l-section .c-btn--ghost:hover {
      background: rgba(0, 0, 0, 0.04) !important;
      border-color: rgba(0, 0, 0, 0.3) !important;
      color: #1a1a2e !important;
    }
    .page-lp-skillon .l-section .c-card,
    .page-lp-skillon .l-section .c-card--gradient-border {
      background: #ffffff !important;
      border: 1px solid rgba(0, 0, 0, 0.08) !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-skillon .l-section .c-card:hover {
      border-color: rgba(0, 0, 0, 0.12) !important;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-skillon .l-section .c-card__title { color: #1a1a2e !important; }
    .page-lp-skillon .l-section .c-card__text { color: #444 !important; }
    .page-lp-skillon .c-accordion {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-skillon .c-accordion__header {
      background: transparent !important;
      color: #1a1a2e !important;
    }
    .page-lp-skillon .c-accordion__body {
      color: #444 !important;
    }
    .page-lp-skillon .c-accordion__body p {
      color: #444 !important;
    }
    .page-lp-skillon .l-section [data-tilt] h3 {
      color: #1a1a2e !important;
    }
    .page-lp-skillon .l-section [data-tilt] p {
      color: #444 !important;
    }
    .page-lp-skillon .l-section .c-btn:focus-visible {
      outline-color: #2563EB !important;
    }
    .page-lp-skillon .lp-inline-cta {
      background: rgba(37, 99, 235, 0.04) !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    .page-lp-skillon .c-marquee {
      background: #f8f9fa !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    .page-lp-skillon .c-marquee__item {
      color: #2d2d3f !important;
    }
    .page-lp-skillon .c-marquee__separator {
      background: rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-skillon .c-floating-cta__btn {
      background-color: #06C755 !important;
      color: #ffffff !important;
    }
    .page-lp-skillon .c-floating-cta__btn:hover {
      background-color: #05b34c !important;
      color: #ffffff !important;
    }
    .page-lp-skillon .c-back-to-top {
      color: rgba(0, 0, 0, 0.4) !important;
    }
    .page-lp-skillon .c-back-to-top:hover {
      color: rgba(0, 0, 0, 0.8) !important;
    }

    /* ===== CRO Enhancement Styles ===== */
    .cro-live-indicator {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.8rem;
      color: #444;
      padding: 0.5rem 1.25rem;
      background: rgba(6, 199, 85, 0.06);
      border: 1px solid rgba(6, 199, 85, 0.15);
      border-radius: 100px;
      margin-bottom: 1rem;
    }
    .cro-live-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #06C755;
      animation: croPulse 2s ease-in-out infinite;
    }
    @keyframes croPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.8); }
    }
    .cro-media-bar {
      text-align: center;
      padding: 1.25rem 1rem;
      background: #f8f9fa;
      border-top: 1px solid rgba(0, 0, 0, 0.04);
      border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    }
    .cro-media-bar__label {
      font-size: 0.7rem;
      color: #777;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .cro-media-bar__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cro-media-bar__item {
      font-family: 'Outfit', 'Noto Sans JP', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      color: rgba(0, 0, 0, 0.35);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .cro-media-bar__sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.15);
    }
    .cro-micro-copy {
      font-size: 0.78rem;
      color: #666;
      margin-top: 0.75rem;
      line-height: 1.6;
    }
    .cro-micro-copy--light {
      color: rgba(255, 255, 255, 0.65);
    }
    .cro-risk-reversal {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.78rem;
      color: #555;
      padding: 0.4rem 1rem;
      background: rgba(6, 199, 85, 0.04);
      border: 1px solid rgba(6, 199, 85, 0.12);
      border-radius: 8px;
      margin-top: 0.75rem;
    }
    .cro-risk-reversal--dark {
      color: rgba(255, 255, 255, 0.65);
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(255, 255, 255, 0.1);
    }
    .cro-loss-aversion {
      text-align: center;
      padding: 2.5rem 1.5rem;
      max-width: 640px;
      margin: 0 auto;
    }
    .cro-loss-aversion__text {
      font-size: 0.95rem;
      color: #666;
      line-height: 1.8;
      font-style: italic;
    }
    .cro-loss-aversion__text strong {
      color: #1a1a2e;
      font-style: normal;
    }
    .cro-authority-badges {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      flex-wrap: wrap;
      margin-top: 1rem;
    }
    .cro-authority-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      font-size: 0.72rem;
      color: #666;
      padding: 0.25rem 0.75rem;
      background: rgba(0, 0, 0, 0.03);
      border-radius: 100px;
      border: 1px solid rgba(0, 0, 0, 0.06);
    }
    .cro-authority-badge svg {
      width: 12px;
      height: 12px;
      opacity: 0.5;
    }
    .cro-privacy-footer {
      text-align: center;
      font-size: 0.72rem;
      color: #777;
      padding: 0.75rem 1rem 0;
      line-height: 1.6;
    }

    /* LP Header */
    .lp-header {
      position: fixed;
      top: 52px;
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255, 255, 255, 0.92);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
      transition: background 0.3s ease, box-shadow 0.3s ease;
    }
    .lp-header.is-scrolled {
      box-shadow: 0 2px 24px rgba(0, 0, 0, 0.08);
    }
    .lp-header__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: 12px var(--space-lg);
    }
    .lp-header__logo img {
      display: block;
      height: 40px;
      width: auto;
    }
    .lp-header__cta .c-btn {
      font-size: var(--text-sm);
      padding: var(--space-sm) var(--space-xl);
    }
    .page-lp-skillon .lp-header .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-skillon .lp-header .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    .page-lp-skillon .lp-hero .c-btn--primary,
    .page-lp-skillon .lp-inline-cta .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-skillon .lp-hero .c-btn--primary:hover,
    .page-lp-skillon .lp-inline-cta .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    .page-lp-skillon .lp-final-cta .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .page-lp-skillon .lp-final-cta .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
    }
    .page-lp-skillon .lp-final-cta .c-btn--ghost {
      color: rgba(255, 255, 255, 0.8) !important;
      border-color: rgba(255, 255, 255, 0.3) !important;
    }
    .page-lp-skillon .lp-final-cta .c-btn--ghost:hover {
      background: rgba(255, 255, 255, 0.1) !important;
      color: #ffffff !important;
      border-color: rgba(255, 255, 255, 0.5) !important;
    }

    /* Hero Section */
    .lp-hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 50%, #ffffff 100%);
      overflow: hidden;
      padding: 120px var(--space-lg) var(--space-3xl);
    }
    .lp-hero__particles {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(2px 2px at 20% 30%, rgba(37, 99, 235, 0.08), transparent),
        radial-gradient(2px 2px at 40% 70%, rgba(59, 130, 246, 0.06), transparent),
        radial-gradient(1px 1px at 60% 20%, rgba(37, 99, 235, 0.06), transparent),
        radial-gradient(1px 1px at 80% 50%, rgba(59, 130, 246, 0.05), transparent),
        radial-gradient(2px 2px at 10% 80%, rgba(37, 99, 235, 0.06), transparent),
        radial-gradient(1px 1px at 90% 10%, rgba(59, 130, 246, 0.06), transparent);
      background-size: 300px 300px;
      animation: lp-particle-drift 20s linear infinite;
    }
    @keyframes lp-particle-drift {
      0% { transform: translateY(0); }
      100% { transform: translateY(-300px); }
    }
    .lp-hero__overlay {
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at center, rgba(37, 99, 235, 0.03) 0%, transparent 70%);
    }
    .lp-hero__glow {
      position: absolute;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(37, 99, 235, 0.04) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      animation: lp-glow-pulse 6s ease-in-out infinite;
    }
    @keyframes lp-glow-pulse {
      0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
      50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
    }
    .lp-hero__content {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 860px;
      margin: 0 auto;
    }
    .lp-hero__label {
      display: inline-block;
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: #1e40af;
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      padding: var(--space-xs) var(--space-lg);
      background: rgba(37, 99, 235, 0.08);
      border: 1px solid rgba(37, 99, 235, 0.2);
      border-radius: var(--radius-full);
      margin-bottom: var(--space-xl);
    }
    .lp-hero__heading {
      font-size: clamp(2rem, 6vw, 3.8rem);
      font-weight: var(--fw-black);
      color: #1a1a2e;
      line-height: 1.2;
      margin-bottom: var(--space-lg);
      letter-spacing: -0.02em;
    }
    .lp-hero__heading em {
      font-style: normal;
      background: linear-gradient(135deg, #2563EB, #3B82F6, #60A5FA);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .lp-hero__sub {
      font-size: var(--text-lg);
      color: #444;
      line-height: var(--leading-relaxed);
      margin-bottom: var(--space-2xl);
      max-width: 680px;
      margin-left: auto;
      margin-right: auto;
    }
    .lp-hero__cta-group {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
    }
    .lp-hero__cta-note {
      font-size: var(--text-xs);
      color: #777;
      margin-top: var(--space-sm);
    }
    .lp-hero__trust {
      display: flex;
      justify-content: center;
      gap: var(--space-lg);
      margin-top: var(--space-3xl);
      flex-wrap: wrap;
    }
    .lp-hero__trust-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-xs);
      padding: var(--space-md) var(--space-lg);
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.08);
      border-radius: var(--radius-lg);
      min-width: 120px;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
    }
    .lp-hero__trust-number {
      font-family: var(--font-en);
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      font-weight: var(--fw-black);
      color: #2563EB;
      line-height: 1;
    }
    .lp-hero__trust-label {
      font-size: 12px;
      color: #666;
      letter-spacing: var(--tracking-wide);
      white-space: nowrap;
    }

    /* Pain Section */
    .lp-pain__list {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-md);
      max-width: 760px;
      margin: var(--space-2xl) auto 0;
    }
    @media (min-width: 540px) {
      .lp-pain__list { grid-template-columns: repeat(2, 1fr); }
    }
    .lp-pain__item {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      background: #ffffff;
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-left: 4px solid #e74c3c;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .lp-pain__item:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    }
    .lp-pain__check {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border: 2px solid rgba(231, 76, 60, 0.5);
      border-radius: var(--radius-sm);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #e74c3c;
    }
    .lp-pain__text {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #2d2d3f;
      line-height: var(--leading-snug);
    }
    .lp-pain__bridge {
      text-align: center;
      margin-top: var(--space-3xl);
      padding: var(--space-2xl);
    }
    .lp-pain__bridge-text {
      font-size: var(--text-xl);
      font-weight: var(--fw-bold);
      color: #4a4a5a;
      line-height: var(--leading-relaxed);
    }
    .lp-pain__bridge-text strong {
      color: #2563EB;
    }

    /* Solution Cards */
    .lp-solution__cards {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .lp-solution__cards { grid-template-columns: repeat(3, 1fr); }
    }
    .lp-solution__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      text-align: center;
      box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
      position: relative;
      overflow: hidden;
    }
    .lp-solution__card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, #2563EB, rgba(59, 130, 246, 0.3));
    }
    .lp-solution__card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-solution__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      border-radius: var(--radius-full);
      background: rgba(37, 99, 235, 0.1);
      color: #2563EB;
      margin-bottom: var(--space-lg);
    }
    .lp-solution__card-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: var(--space-sm);
    }
    .lp-solution__card-desc {
      font-size: var(--text-sm);
      color: #666;
      line-height: var(--leading-relaxed);
    }

    /* Curriculum Steps */
    .lp-curriculum-steps {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
      max-width: 900px;
      margin: var(--space-2xl) auto 0;
    }
    .lp-curriculum-step {
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: var(--space-lg);
      align-items: start;
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.06);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl);
      box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .lp-curriculum-step:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    }
    .lp-curriculum-step__number {
      width: 64px;
      height: 64px;
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, #2563EB, #3B82F6);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      font-family: var(--font-en);
      font-size: var(--text-xl);
      font-weight: var(--fw-black);
      flex-shrink: 0;
      box-shadow: 0 4px 16px rgba(37, 99, 235, 0.3);
    }
    .lp-curriculum-step__label {
      display: inline-block;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      color: #2563EB;
      background: rgba(37, 99, 235, 0.08);
      padding: 4px 12px;
      border-radius: 100px;
      margin-bottom: var(--space-sm);
    }
    .lp-curriculum-step__title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: var(--space-sm);
    }
    .lp-curriculum-step__desc {
      font-size: var(--text-sm);
      color: #666;
      line-height: var(--leading-relaxed);
    }
    .lp-curriculum-step__tags {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-xs);
      margin-top: var(--space-md);
    }
    .lp-curriculum-step__tag {
      font-size: 0.75rem;
      font-weight: 600;
      color: #2563EB;
      background: rgba(37, 99, 235, 0.06);
      border: 1px solid rgba(37, 99, 235, 0.15);
      padding: 4px 10px;
      border-radius: 100px;
    }
    @media (max-width: 599px) {
      .lp-curriculum-step { grid-template-columns: 1fr; text-align: center; }
      .lp-curriculum-step__number { margin: 0 auto; }
    }

    /* Comparison Table */
    .lp-compare__wrap {
      overflow-x: auto;
      margin-top: var(--space-2xl);
    }
    .lp-compare__table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
      min-width: 600px;
    }
    .lp-compare__table th,
    .lp-compare__table td {
      padding: var(--space-md) var(--space-lg);
      text-align: left;
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
    .lp-compare__table thead th {
      font-weight: var(--fw-bold);
      font-size: var(--text-base);
      color: #2d2d3f;
      background: #eef0f2;
    }
    .lp-compare__table thead th.is-highlight {
      background: rgba(37, 99, 235, 0.1);
      color: #1e40af;
    }
    .lp-compare__table tbody td {
      color: #666;
    }
    .lp-compare__table tbody td:first-child {
      font-weight: var(--fw-bold);
      color: #2d2d3f;
    }
    .lp-compare__table tbody td.is-highlight {
      color: #1e40af;
      font-weight: var(--fw-bold);
    }

    /* Testimonials */
    .lp-testimonials .swiper {
      padding-bottom: var(--space-3xl);
    }
    .lp-testimonial__card {
      background: #ffffff;
      border: 1px solid rgba(0, 0, 0, 0.08);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl);
      height: auto;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
    }
    .lp-testimonial__top {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      margin-bottom: var(--space-lg);
    }
    .lp-testimonial__avatar {
      width: 56px;
      height: 56px;
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, #2563EB, #60A5FA);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      font-family: var(--font-en);
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      flex-shrink: 0;
    }
    .lp-testimonial__meta { flex: 1; }
    .lp-testimonial__name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      margin-bottom: 2px;
    }
    .lp-testimonial__period {
      font-size: var(--text-xs);
      color: #777;
    }
    .lp-testimonial__result {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      margin-bottom: var(--space-md);
      padding: var(--space-sm) var(--space-md);
      background: rgba(37, 99, 235, 0.06);
      border: 1px solid rgba(37, 99, 235, 0.15);
      border-radius: var(--radius-md);
    }
    .lp-testimonial__before,
    .lp-testimonial__after {
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
    }
    .lp-testimonial__before { color: #777; }
    .lp-testimonial__arrow { color: #2563EB; font-size: var(--text-lg); }
    .lp-testimonial__after { color: #2563EB; }
    .lp-testimonial__quote {
      font-size: var(--text-base);
      color: #444;
      line-height: var(--leading-loose);
      font-style: normal;
    }
    .swiper-pagination-bullet { background: rgba(0, 0, 0, 0.2) !important; }
    .swiper-pagination-bullet-active { background: #2563EB !important; }

    /* FAQ Accordion */
    .lp-faq .c-accordion {
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
    .lp-faq .c-accordion__panel {
      display: block !important;
    }
    .lp-faq .c-accordion__panel[hidden] {
      display: block !important;
    }
    .lp-faq .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .lp-faq .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: #1a1a2e;
      line-height: var(--leading-snug);
    }
    .lp-faq .c-accordion__icon {
      flex-shrink: 0;
      color: #888;
      margin-left: var(--space-md);
    }
    .lp-faq .c-accordion__content {
      padding-bottom: var(--space-lg);
    }
    .lp-faq .c-accordion__content p {
      font-size: var(--text-sm);
      color: #666;
      line-height: var(--leading-loose);
    }

    /* Final CTA */
    .lp-final-cta {
      position: relative;
      overflow: hidden;
      background: linear-gradient(135deg, #1a1a2e 0%, #2d2d3f 50%, #1a1a2e 100%) !important;
    }
    .lp-final-cta__glow {
      position: absolute;
      width: 800px;
      height: 400px;
      border-radius: 50%;
      background: radial-gradient(ellipse, rgba(37, 99, 235, 0.08) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    .lp-final-cta__urgency {
      display: inline-flex;
      align-items: center;
      gap: var(--space-sm);
      padding: var(--space-sm) var(--space-lg);
      background: rgba(37, 99, 235, 0.12);
      border: 1px solid rgba(37, 99, 235, 0.3);
      border-radius: var(--radius-full);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      color: #93C5FD;
      margin-bottom: var(--space-xl);
      animation: lp-pulse 2s ease-in-out infinite;
    }
    @keyframes lp-pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.7; }
    }
    .lp-final-cta__actions {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
    }

    /* Inline CTA */
    .lp-inline-cta {
      text-align: center;
      padding: var(--space-3xl) var(--space-lg);
      background: linear-gradient(180deg, rgba(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.02) 100%);
      border-top: 1px solid rgba(0, 0, 0, 0.04);
      border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    }
    .lp-inline-cta__text {
      font-size: var(--text-base);
      color: #444;
      margin-bottom: var(--space-lg);
    }

    /* Footer */
    .lp-footer {
      background: #f0f0f0;
      border-top: 1px solid rgba(0, 0, 0, 0.06);
      padding: var(--space-2xl) var(--space-lg);
    }
    .lp-footer__inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
      text-align: center;
    }
    .lp-footer__company {
      font-size: var(--text-sm);
      color: #666;
    }
    .lp-footer__links {
      display: flex;
      gap: var(--space-lg);
    }
    .lp-footer__links a {
      font-size: var(--text-xs);
      color: #666;
      text-decoration: none;
      transition: color 0.2s;
    }
    .lp-footer__links a:hover {
      color: #333;
    }
    .lp-footer__copy {
      font-size: var(--text-xs);
      color: #888;
    }

    /* YouTube lite cards */
    .lp-yt-card {
      border-radius: 12px;
      overflow: hidden;
      border: 1px solid rgba(0,0,0,0.08);
      box-shadow: 0 2px 16px rgba(0,0,0,0.06);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      cursor: pointer;
    }
    .lp-yt-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    }

    /* Before/After cards mobile */
    @media (max-width: 599px) {
      .lp-ba-card { grid-template-columns: 1fr !important; }
      .lp-ba-arrow { display: none !important; }
      .lp-ba-card > div:last-child { border-top: 1px solid rgba(0,0,0,0.06); }
    }

    /* Text helper classes */
    .lp-dark-heading { color: #1a1a2e !important; }
    .lp-dark-sub { color: #666 !important; }
    .lp-dark-muted { color: #777 !important; }

    /* Instructor section responsive */
    @media (max-width: 599px) {
      #instructor .l-container > div[style*="grid-template-columns:repeat"] {
        grid-template-columns: 1fr !important;
      }
    }

    /* Flow section step connectors (desktop) */
    @media (min-width: 768px) {
      #flow [data-animate-stagger] > div:not(:last-child)::after {
        content: '';
        position: absolute;
        right: -12px;
        top: 50%;
        transform: translateY(-50%);
        width: 0;
        height: 0;
        border-left: 8px solid rgba(37,99,235,0.2);
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
      }
    }

    /* Video grid responsive */
    @media (min-width: 540px) {
      .lp-video-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 768px) {
      .lp-video-grid { grid-template-columns: repeat(3, 1fr); }
    }

    /* Wave Dividers */
    .lp-divider {
      color: #f8f9fa;
    }
    .lp-divider--alt {
      color: #ffffff;
    }

    /* Responsive */
    @media (max-width: 767px) {
      .lp-hero__heading { font-size: clamp(1.75rem, 8vw, 2.5rem); }
      .lp-hero__sub { font-size: var(--text-base); }
      .lp-hero__trust { gap: var(--space-sm); }
      .lp-hero__trust-item { min-width: 100px; padding: var(--space-sm) var(--space-md); }
      .lp-hero__trust-number { font-size: var(--text-xl); }
    }

    /* Proof section main stats responsive */
    @media (max-width: 599px) {
      #proof > .l-container > div:nth-child(2) {
        grid-template-columns: 1fr !important;
      }
    }
  
/* inline: preview-lp-skillon.html */

    @media (max-width: 767px) {
      .lp-roadmap-desktop { display: none !important; }
      .lp-roadmap-mobile { display: block !important; }
    }
  
/* inline: preview-lp-skillon.html */

  .lp-floating-bar {
    display: none;
  }
  @media (max-width: 767px) {
    .page-lp-skillon .c-floating-cta { display: none !important; }
    .lp-floating-bar {
      display: flex;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1001;
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-top: 1px solid rgba(0,0,0,0.08);
      padding: 12px 16px;
      align-items: center;
      justify-content: center;
      gap: 12px;
      box-shadow: 0 -4px 24px rgba(0,0,0,0.08);
    }
    .lp-floating-bar__btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      max-width: 400px;
      padding: 14px 24px;
      background: #06C755;
      color: #ffffff;
      font-size: 1rem;
      font-weight: 700;
      border: none;
      border-radius: 12px;
      text-decoration: none;
      box-shadow: 0 4px 16px rgba(6,199,85,0.3);
      transition: background 0.2s;
    }
    .lp-floating-bar__btn:hover { background: #05b34c; }
    .page-lp-skillon .lp-footer { padding-bottom: 80px; }
  }

/* inline: preview-lp-skillon-v2.html */

    /* ===== Reset & Base ===== */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Noto Sans JP', sans-serif;
      background: #fff;
      color: #333;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }
    img {
      display: block;
      max-width: 100%;
      height: auto;
    }
    a { text-decoration: none; }

    /* ===== LP Container ===== */
    .lp-wrapper {
      max-width: 600px;
      margin: 0 auto;
      background: #fff;
    }

    /* ===== Image Section ===== */
    .lp-section {
      width: 100%;
      line-height: 0;
    }
    .lp-section img {
      width: 100%;
      height: auto;
    }

    /* ===== Card Row (3 cards side by side) ===== */
    .lp-card-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      padding: 0 12px;
      background: linear-gradient(180deg, #f5f5f5 0%, #fff 100%);
    }
    .lp-card-row img {
      width: 100%;
      height: auto;
      border-radius: 8px;
    }

    /* ===== CTA Section ===== */
    .lp-cta {
      padding: 24px 20px;
      text-align: center;
      background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fef5f0 30%, #fef5f0 70%, rgba(255,255,255,0) 100%);
    }
    .lp-cta--solid {
      background: #fef5f0;
    }
    .lp-cta--final {
      background: linear-gradient(135deg, #fef5f0 0%, #fff0e8 100%);
      padding: 40px 20px;
    }

    /* CTA Button - Image based */
    .lp-cta__img-btn {
      display: block;
      max-width: 480px;
      margin: 0 auto;
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, filter 0.3s ease;
      border-radius: 60px;
      cursor: pointer;
    }
    .lp-cta__img-btn:hover {
      transform: scale(1.05) translateY(-3px);
      box-shadow: 0 12px 40px rgba(76, 175, 80, 0.35);
      filter: brightness(1.05);
    }
    .lp-cta__img-btn:active {
      transform: scale(0.98);
    }
    .lp-cta__img-btn img {
      border-radius: 60px;
    }

    /* CTA Button - HTML based */
    .lp-cta__btn-wrap {
      max-width: 480px;
      margin: 0 auto;
    }

    .lp-cta__line-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: #fff;
      border: 2px solid #f08c6a;
      border-radius: 50px;
      padding: 6px 20px;
      margin-bottom: 10px;
      font-size: 14px;
      font-weight: 500;
      color: #e85a2d;
    }
    .lp-cta__line-badge svg {
      width: 24px;
      height: 24px;
      flex-shrink: 0;
    }

    .lp-cta__main-btn {
      display: block;
      width: 100%;
      padding: 18px 24px;
      background: linear-gradient(135deg, #4CAF50 0%, #66BB6A 50%, #4CAF50 100%);
      background-size: 200% 100%;
      color: #fff;
      font-size: 18px;
      font-weight: 700;
      border: none;
      border-radius: 60px;
      cursor: pointer;
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background-position 0.5s ease;
      box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);
      position: relative;
      overflow: hidden;
      letter-spacing: 0.02em;
    }
    .lp-cta__main-btn::after {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%);
      animation: shine 3s infinite;
    }
    @keyframes shine {
      0% { left: -100%; }
      50%, 100% { left: 100%; }
    }
    .lp-cta__main-btn:hover {
      transform: scale(1.05) translateY(-3px);
      box-shadow: 0 12px 40px rgba(76, 175, 80, 0.4);
      background-position: 100% 0;
    }
    .lp-cta__main-btn:active {
      transform: scale(0.98);
    }
    .lp-cta__main-btn .underline {
      text-decoration: underline;
      text-decoration-thickness: 2px;
      text-underline-offset: 3px;
    }

    /* ===== Floating CTA Bar ===== */
    .lp-float-bar {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-top: 1px solid rgba(0,0,0,0.08);
      padding: 10px 16px;
      transform: translateY(100%);
      transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .lp-float-bar.is-visible {
      transform: translateY(0);
    }
    .lp-float-bar__inner {
      max-width: 480px;
      margin: 0 auto;
    }
    .lp-float-bar__btn {
      display: block;
      width: 100%;
      padding: 14px 20px;
      background: linear-gradient(135deg, #4CAF50 0%, #66BB6A 100%);
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      border: none;
      border-radius: 50px;
      cursor: pointer;
      text-align: center;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
      box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);
      position: relative;
      overflow: hidden;
    }
    .lp-float-bar__btn::after {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.25) 50%, transparent 100%);
      animation: shine 3s infinite;
    }
    .lp-float-bar__btn:hover {
      transform: scale(1.03);
      box-shadow: 0 8px 25px rgba(76, 175, 80, 0.4);
    }

    /* ===== Footer ===== */
    .lp-footer {
      text-align: center;
      padding: 24px 20px 100px;
      font-size: 12px;
      color: #999;
      background: #fff;
    }
    .lp-footer a {
      color: #999;
      text-decoration: underline;
    }

    /* ===== Pulse animation for CTA ===== */
    .pulse {
      animation: pulse 2s infinite;
    }
    @keyframes pulse {
      0% { box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3); }
      50% { box-shadow: 0 4px 25px rgba(76, 175, 80, 0.5), 0 0 0 8px rgba(76, 175, 80, 0.1); }
      100% { box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3); }
    }

    /* ===== Fade in on scroll ===== */
    .lp-fade {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }
    .lp-fade.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ===== Responsive ===== */
    @media (max-width: 480px) {
      .lp-cta__main-btn {
        font-size: 16px;
        padding: 16px 20px;
      }
      .lp-cta__line-badge {
        font-size: 13px;
        padding: 5px 16px;
      }
      .lp-card-row {
        gap: 6px;
        padding: 0 8px;
      }
    }
  
/* inline: preview-lp-university.html */

    /* ===== CRO Enhancement Styles ===== */
    .cro-live-indicator {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.8rem;
      color: #444;
      padding: 0.5rem 1.25rem;
      background: rgba(6, 199, 85, 0.06);
      border: 1px solid rgba(6, 199, 85, 0.15);
      border-radius: 100px;
      margin-bottom: 1rem;
    }
    .cro-live-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #06C755;
      animation: croPulse 2s ease-in-out infinite;
    }
    @keyframes croPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.8); }
    }
    .cro-media-bar {
      text-align: center;
      padding: 1.25rem 1rem;
      background: var(--color-bg-accent, #f8f9fa);
      border-top: 1px solid rgba(0, 0, 0, 0.04);
      border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    }
    .cro-media-bar__label {
      font-size: 0.7rem;
      color: #777;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .cro-media-bar__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cro-media-bar__item {
      font-family: 'Outfit', 'Noto Sans JP', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      color: rgba(0, 0, 0, 0.35);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .cro-media-bar__sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.15);
    }
    .cro-micro-copy {
      font-size: 0.78rem;
      color: #666;
      margin-top: 0.75rem;
      line-height: 1.6;
    }
    .cro-micro-copy--light {
      color: rgba(255, 255, 255, 0.7);
    }
    .cro-risk-reversal {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.78rem;
      color: #555;
      padding: 0.5rem 1.25rem;
      background: rgba(6, 199, 85, 0.04);
      border: 1px solid rgba(6, 199, 85, 0.12);
      border-radius: 8px;
      margin-top: 0.75rem;
    }
    .cro-loss-aversion {
      text-align: center;
      padding: 2.5rem 1.5rem;
      max-width: 640px;
      margin: 0 auto;
    }
    .cro-loss-aversion__text {
      font-size: 0.95rem;
      color: #2563EB;
      line-height: 1.85;
      font-style: italic;
    }
    .cro-loss-aversion__text strong {
      color: #1e40af;
      font-style: normal;
    }
    .cro-authority-badges {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      flex-wrap: wrap;
      margin-top: 1rem;
    }
    .cro-authority-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.72rem;
      color: #666;
      padding: 0.3rem 0.85rem;
      background: rgba(0, 0, 0, 0.03);
      border-radius: 100px;
      border: 1px solid rgba(0, 0, 0, 0.08);
    }
    .cro-authority-badge svg {
      width: 12px;
      height: 12px;
      opacity: 0.5;
    }
    .cro-privacy-footer {
      text-align: center;
      font-size: 0.72rem;
      color: #777;
      padding: 0.75rem 1rem 0;
      line-height: 1.6;
    }

    /* ===== LP University page styles ===== */

    /* ---------- LP Header ---------- */
    .p-lp-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255,255,255,0.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(0,0,0,0.06);
      transition: box-shadow 0.3s ease;
    }
    .p-lp-header.is-scrolled {
      box-shadow: 0 2px 20px rgba(0,0,0,0.08);
    }
    .p-lp-header__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
      padding: var(--space-sm) var(--space-lg);
      height: 64px;
    }
    .p-lp-header__logo img {
      height: 32px;
      width: auto;
    }
    .p-lp-header__cta .c-btn {
      font-size: var(--text-sm);
      padding: var(--space-xs) var(--space-lg);
    }

    /* ---------- Hero ---------- */
    .p-univ-hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      background: var(--color-bg-accent);
      padding: 120px var(--space-lg) var(--space-3xl);
    }
    .p-univ-hero__particles {
      position: absolute;
      inset: 0;
      overflow: hidden;
    }
    .p-univ-hero__particle {
      position: absolute;
      border-radius: 50%;
      opacity: 0.15;
      animation: particleFloat 8s ease-in-out infinite;
    }
    @keyframes particleFloat {
      0%, 100% { transform: translateY(0) scale(1); }
      50% { transform: translateY(-30px) scale(1.1); }
    }
    .p-univ-hero__overlay {
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,0.04) 0%, transparent 70%);
    }
    .p-univ-hero__content {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 800px;
      margin: 0 auto;
    }
    .p-univ-hero__badge {
      display: inline-block;
      background: var(--color-bg-white);
      border: 1px solid var(--color-border-light);
      color: var(--color-text-primary);
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      padding: var(--space-xs) var(--space-lg);
      border-radius: var(--radius-full);
      margin-bottom: var(--space-lg);
    }
    .p-univ-hero__title {
      font-size: clamp(1.75rem, 5vw, 3rem);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
      margin-bottom: var(--space-lg);
    }
    .p-univ-hero__sub {
      font-size: var(--text-base);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
      margin-bottom: var(--space-2xl);
      max-width: 640px;
      margin-left: auto;
      margin-right: auto;
    }
    @media (min-width: 768px) {
      .p-univ-hero__sub { font-size: var(--text-lg); }
    }
    .p-univ-hero__cta-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-sm);
    }
    .p-univ-hero__safe {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
    }

    /* ---------- Stats cards ---------- */
    .p-univ__stats-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 768px) {
      .p-univ__stats-grid {
        grid-template-columns: repeat(4, 1fr);
      }
    }
    .p-univ__stat-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      text-align: center;
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-univ__stat-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-univ__stat-number {
      display: block;
      font-family: var(--font-en);
      font-size: var(--text-3xl);
      font-weight: var(--fw-black);
      color: var(--color-brand-primary);
      line-height: 1;
      margin-bottom: var(--space-sm);
    }
    .p-univ__stat-label {
      display: block;
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      letter-spacing: var(--tracking-wide);
    }

    /* ---------- Trust / Why Free ---------- */
    .p-univ__trust-inner {
      max-width: 800px;
      margin: 0 auto;
    }
    .p-univ__trust-quote {
      font-size: var(--text-2xl);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      text-align: center;
      line-height: var(--leading-snug);
      margin-bottom: var(--space-xl);
    }
    @media (min-width: 768px) {
      .p-univ__trust-quote { font-size: var(--text-3xl); }
    }
    .p-univ__trust-text {
      font-size: var(--text-base);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
      margin-bottom: var(--space-lg);
    }
    .p-univ__trust-highlight {
      background: linear-gradient(transparent 60%, rgba(139,164,200,0.2) 60%);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
    }

    /* ---------- Curriculum cards ---------- */
    .p-univ__curriculum-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 540px) {
      .p-univ__curriculum-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 1024px) {
      .p-univ__curriculum-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .p-univ__curriculum-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-2xl) var(--space-lg);
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-univ__curriculum-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-univ__curriculum-header {
      display: flex;
      align-items: center;
      gap: var(--space-md);
      margin-bottom: var(--space-md);
    }
    .p-univ__curriculum-number {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      height: 40px;
      flex-shrink: 0;
      background: var(--color-brand-primary);
      color: var(--color-text-primary);
      font-family: var(--font-en);
      font-size: var(--text-sm);
      font-weight: var(--fw-bold);
      border-radius: var(--radius-full);
    }
    .p-univ__curriculum-name {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
    }
    @media (min-width: 768px) {
      .p-univ__curriculum-name { font-size: var(--text-lg); }
    }
    .p-univ__curriculum-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }

    /* ---------- Comparison table ---------- */
    .p-univ__comparison-wrap {
      overflow-x: auto;
      margin-top: var(--space-2xl);
    }
    .p-univ__comparison-table {
      width: 100%;
      border-collapse: collapse;
      font-size: var(--text-sm);
    }
    .p-univ__comparison-table th,
    .p-univ__comparison-table td {
      padding: var(--space-md) var(--space-lg);
      text-align: left;
      border-bottom: 1px solid var(--color-border-light, #e5e7eb);
    }
    .p-univ__comparison-table thead th {
      font-weight: var(--fw-bold);
      font-size: var(--text-base);
      color: var(--color-text-primary);
      background: var(--color-bg-accent, #f8f9fa);
    }
    .p-univ__comparison-highlight {
      background: rgba(139, 164, 200, 0.1);
      color: var(--color-brand-primary);
      font-weight: var(--fw-bold);
    }
    .p-univ__comparison-table tbody td:first-child {
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
    }

    /* ---------- Instructor ---------- */
    .p-univ__instructor-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-3xl);
      align-items: center;
    }
    @media (min-width: 768px) {
      .p-univ__instructor-grid {
        grid-template-columns: 1fr 1fr;
      }
    }
    .p-univ__instructor-image {
      aspect-ratio: 3 / 4;
      border-radius: var(--radius-xl);
      overflow: hidden;
    }
    .p-univ__instructor-name {
      font-size: var(--text-3xl);
      font-weight: var(--fw-bold);
      margin-bottom: var(--space-sm);
    }
    .p-univ__instructor-role {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-bottom: var(--space-xl);
    }
    .p-univ__instructor-text {
      font-size: var(--text-base);
      line-height: var(--leading-loose);
      color: var(--color-text-secondary);
      margin-bottom: var(--space-lg);
    }
    .p-univ__media-badges {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-sm);
    }
    .p-univ__media-badge {
      display: inline-flex;
      align-items: center;
      gap: var(--space-xs);
      padding: var(--space-xs) var(--space-md);
      background: rgba(139, 164, 200, 0.1);
      border-radius: var(--radius-full);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
    }

    /* ---------- Testimonials ---------- */
    .p-univ__testimonials-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-lg);
      margin-top: var(--space-2xl);
    }
    @media (min-width: 540px) {
      .p-univ__testimonials-grid { grid-template-columns: repeat(2, 1fr); }
    }
    .p-univ__testimonial-card {
      background: var(--color-bg-white);
      border-radius: var(--radius-xl);
      padding: var(--space-xl);
      box-shadow: var(--shadow-card);
      transition: transform var(--transition-base), box-shadow var(--transition-base);
    }
    .p-univ__testimonial-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-card-hover);
    }
    .p-univ__testimonial-quote {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-relaxed);
      margin-bottom: var(--space-md);
      position: relative;
      padding-left: var(--space-lg);
    }
    .p-univ__testimonial-quote::before {
      content: "\201C";
      position: absolute;
      left: 0;
      top: -4px;
      font-size: var(--text-3xl);
      color: var(--color-brand-primary);
      line-height: 1;
      font-family: var(--font-en);
    }
    .p-univ__testimonial-meta {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
    }

    /* ---------- Flow / Steps ---------- */
    .p-univ__flow-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--space-xl);
      margin-top: var(--space-2xl);
      max-width: 900px;
      margin-left: auto;
      margin-right: auto;
    }
    @media (min-width: 768px) {
      .p-univ__flow-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .p-univ__flow-step {
      text-align: center;
      position: relative;
    }
    .p-univ__flow-icon {
      width: 80px;
      height: 80px;
      border-radius: var(--radius-full);
      background: linear-gradient(135deg, var(--color-brand-primary), var(--color-brand-secondary, #6b8fc7));
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto var(--space-lg);
      color: var(--color-text-primary);
    }
    .p-univ__flow-number {
      font-family: var(--font-en);
      font-size: var(--text-xs);
      font-weight: var(--fw-bold);
      color: var(--color-brand-primary);
      letter-spacing: var(--tracking-widest);
      text-transform: uppercase;
      margin-bottom: var(--space-xs);
    }
    .p-univ__flow-title {
      font-size: var(--text-lg);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      margin-bottom: var(--space-sm);
    }
    .p-univ__flow-desc {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-relaxed);
    }
    @media (min-width: 768px) {
      .p-univ__flow-step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 40px;
        right: -16px;
        width: 32px;
        height: 2px;
        background: var(--color-border-light, #e5e7eb);
      }
    }

    /* ---------- FAQ accordion ---------- */
    .c-accordion__panel {
      display: block !important;
    }
    .c-accordion__panel[hidden] {
      display: block !important;
    }
    .c-accordion {
      border-bottom: 1px solid var(--color-border-light, #e5e7eb);
    }
    .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
      line-height: var(--leading-snug);
    }
    .c-accordion__icon {
      flex-shrink: 0;
      color: var(--color-text-muted);
      margin-left: var(--space-md);
    }
    .c-accordion__content {
      padding-bottom: var(--space-lg);
    }
    .c-accordion__content p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
    }

    /* ---------- Mid CTA block ---------- */
    .p-univ__mid-cta {
      text-align: center;
      padding: var(--space-2xl) 0;
    }
    .p-univ__mid-cta-text {
      font-size: var(--text-sm);
      color: var(--color-text-muted);
      margin-top: var(--space-sm);
    }

    /* ---------- Final CTA ---------- */
    .p-univ__final-cta-counter {
      display: inline-flex;
      align-items: center;
      gap: var(--space-sm);
      background: var(--color-bg-white);
      border: 1px solid var(--color-border-light);
      border-radius: var(--radius-full);
      padding: var(--space-xs) var(--space-lg);
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      margin-bottom: var(--space-xl);
    }
    .p-univ__final-cta-counter strong {
      color: var(--color-text-primary);
      font-weight: var(--fw-bold);
    }

    /* ---------- Minimal Footer ---------- */
    .p-univ__footer {
      background: var(--color-bg-accent);
      padding: var(--space-xl) var(--space-lg);
      text-align: center;
    }
    .p-univ__footer-inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-md);
    }
    @media (min-width: 768px) {
      .p-univ__footer-inner {
        flex-direction: row;
        justify-content: space-between;
      }
    }
    .p-univ__footer-links {
      display: flex;
      gap: var(--space-lg);
    }
    .p-univ__footer-links a {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
      text-decoration: none;
      transition: color 0.2s;
    }
    .p-univ__footer-links a:hover {
      color: var(--color-text-primary);
    }
    .p-univ__footer-copy {
      font-size: var(--text-xs);
      color: var(--color-text-muted);
    }

    /* ---------- Body offset for fixed header ---------- */
    body.has-lp-header {
      padding-top: 0;
    }

    /* ---------- CTA Buttons: LINE Green ---------- */
    .l-section .c-btn--primary,
    .p-univ-hero .c-btn--primary,
    .p-univ__mid-cta .c-btn--primary,
    .p-lp-header .c-btn--primary {
      background-color: #06C755 !important;
      color: #ffffff !important;
      border-color: #06C755 !important;
    }
    .l-section .c-btn--primary:hover,
    .p-univ-hero .c-btn--primary:hover,
    .p-univ__mid-cta .c-btn--primary:hover,
    .p-lp-header .c-btn--primary:hover {
      background-color: #05b34c !important;
      border-color: #05b34c !important;
      color: #ffffff !important;
    }

    /* ===== WHITE / LIGHT THEME OVERRIDES ===== */
    body.page-lp-university {
      background: #ffffff !important;
    }
    .page-lp-university .l-main {
      background: #ffffff !important;
    }
    .page-lp-university .l-section,
    .page-lp-university .l-section--accent {
      --color-text-primary: #1a1a2e;
      --color-text-secondary: #555;
      --color-text-muted: #777;
      --color-bg-white: #ffffff;
      --color-bg-accent: #f8f9fa;
      --color-bg: #ffffff;
      --color-bg-subtle: rgba(0, 0, 0, 0.02);
      --color-border: rgba(0, 0, 0, 0.1);
      --color-border-light: rgba(0, 0, 0, 0.06);
      --color-brand-dark: #1a1a2e;
      --color-brand-primary: rgba(139, 164, 200, 0.8);
      --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.06);
      --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.1);
      --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
      color: #333;
    }
    .page-lp-university .l-section {
      background: #ffffff !important;
    }
    .page-lp-university .l-section--accent {
      background: #f8f9fa !important;
    }
    /* Hero section - white theme */
    .page-lp-university .p-univ-hero {
      background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 50%, #ffffff 100%) !important;
    }
    .page-lp-university .p-univ-hero__content {
      --color-text-primary: #1a1a2e;
      --color-text-secondary: #555;
      --color-text-muted: #777;
      --color-bg-white: #ffffff;
      --color-border-light: rgba(0, 0, 0, 0.06);
      --color-brand-primary: rgba(139, 164, 200, 0.8);
    }
    /* Section heading overrides */
    .page-lp-university .l-section .c-section-heading__en {
      color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-university .l-section .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university .l-section .c-section-heading__desc {
      color: #444 !important;
    }
    .page-lp-university .l-section .c-section-label {
      color: #777 !important;
    }
    /* Cards on light background */
    .page-lp-university .l-section .c-card,
    .page-lp-university .l-section .c-card--gradient-border {
      background: #ffffff !important;
      border: 1px solid rgba(0, 0, 0, 0.08) !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .l-section .c-card:hover {
      border-color: rgba(0, 0, 0, 0.12) !important;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-university .l-section .c-card__title { color: #1a1a2e !important; }
    .page-lp-university .l-section .c-card__text { color: #444 !important; }
    /* Ghost buttons on light */
    .page-lp-university .l-section .c-btn--ghost {
      color: #333 !important;
      border-color: rgba(0, 0, 0, 0.2) !important;
      background: transparent !important;
    }
    .page-lp-university .l-section .c-btn--ghost:hover {
      background: rgba(0, 0, 0, 0.04) !important;
      border-color: rgba(0, 0, 0, 0.3) !important;
      color: #1a1a2e !important;
    }
    /* Accordion on light */
    .page-lp-university .c-accordion {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-university .c-accordion__header {
      background: transparent !important;
      color: #1a1a2e !important;
    }
    .page-lp-university .c-accordion__body,
    .page-lp-university .c-accordion__body p {
      color: #444 !important;
    }
    /* Marquee on light */
    .page-lp-university .c-marquee {
      background: #f8f9fa !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    .page-lp-university .c-marquee__item {
      color: #2d2d3f !important;
    }
    .page-lp-university .c-marquee__separator {
      background: rgba(0, 0, 0, 0.1) !important;
    }
    /* Floating CTA */
    .page-lp-university .c-floating-cta__btn {
      background-color: #06C755 !important;
      color: #ffffff !important;
    }
    .page-lp-university .c-floating-cta__btn:hover {
      background-color: #05b34c !important;
      color: #ffffff !important;
    }
    /* Back to top */
    .page-lp-university .c-back-to-top {
      color: rgba(0, 0, 0, 0.4) !important;
    }
    .page-lp-university .c-back-to-top:hover {
      color: rgba(0, 0, 0, 0.8) !important;
    }
    /* Footer on light */
    .page-lp-university .p-univ__footer {
      background: #f0f0f0 !important;
      border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-univ__footer-inner {
      color: #666 !important;
    }
    .page-lp-university .p-univ__footer-links a {
      color: #666 !important;
    }
    .page-lp-university .p-univ__footer-links a:hover {
      color: #333 !important;
    }
    .page-lp-university .p-univ__footer-copy {
      color: #888 !important;
    }
    /* CRO elements on light */
    .page-lp-university .cro-media-bar {
      background: #f8f9fa !important;
      border-top: 1px solid rgba(0, 0, 0, 0.04) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
    }
    .page-lp-university .cro-media-bar__label {
      color: #777 !important;
    }
    .page-lp-university .cro-media-bar__item {
      color: rgba(0, 0, 0, 0.35) !important;
    }
    .page-lp-university .cro-media-bar__sep {
      background: rgba(0, 0, 0, 0.15) !important;
    }
    /* Loss aversion text on light */
    .page-lp-university .cro-loss-aversion__text {
      color: #2563EB !important;
    }
    .page-lp-university .cro-loss-aversion__text strong {
      color: #1e40af !important;
    }
    /* Risk reversal on light */
    .page-lp-university .cro-risk-reversal {
      color: #444 !important;
      border-color: rgba(6, 199, 85, 0.2) !important;
    }
    /* Authority badges on light */
    .page-lp-university .cro-authority-badge {
      color: #555 !important;
      background: rgba(0, 0, 0, 0.03) !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
    }
    /* Privacy footer on light */
    .page-lp-university .cro-privacy-footer {
      color: #666 !important;
    }
    /* Header on light */
    .page-lp-university .p-lp-header {
      background: rgba(255, 255, 255, 0.95) !important;
      border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-lp-header.is-scrolled {
      box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08) !important;
    }
    /* University-specific elements on light */
    .page-lp-university .p-univ-hero__badge {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ-hero__title {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ-hero__sub {
      color: #555 !important;
    }
    .page-lp-university .p-univ-hero__safe {
      color: #777 !important;
    }
    .page-lp-university .p-univ__stat-card {
      background: #ffffff !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-univ__stat-number {
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__stat-label {
      color: #555 !important;
    }
    .page-lp-university .p-univ__trust-quote {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__trust-text {
      color: #555 !important;
    }
    .page-lp-university .p-univ__trust-highlight {
      color: #1a1a2e !important;
      background: linear-gradient(transparent 60%, rgba(139,164,200,0.2) 60%) !important;
    }
    .page-lp-university .p-univ__curriculum-card {
      background: #ffffff !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-univ__curriculum-number {
      background: rgba(139, 164, 200, 0.15) !important;
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__curriculum-name {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__curriculum-desc {
      color: #555 !important;
    }
    .page-lp-university .p-univ__comparison-table thead th {
      background: #eef0f2 !important;
      color: #2d2d3f !important;
    }
    .page-lp-university .p-univ__comparison-highlight {
      background: rgba(139, 164, 200, 0.1) !important;
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__comparison-table td {
      color: #666 !important;
      border-bottom-color: rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-univ__comparison-table tbody td:first-child {
      color: #2d2d3f !important;
    }
    .page-lp-university .p-univ__instructor-name {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__instructor-role {
      color: #777 !important;
    }
    .page-lp-university .p-univ__instructor-text {
      color: #555 !important;
    }
    .page-lp-university .p-univ__media-badge {
      background: rgba(139, 164, 200, 0.1) !important;
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__testimonial-card {
      background: #ffffff !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
    }
    .page-lp-university .p-univ__testimonial-quote {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__testimonial-quote::before {
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__testimonial-meta {
      color: #777 !important;
    }
    .page-lp-university .p-univ__flow-icon {
      color: #ffffff !important;
    }
    .page-lp-university .p-univ__flow-number {
      color: #5a7fb0 !important;
    }
    .page-lp-university .p-univ__flow-title {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__flow-desc {
      color: #555 !important;
    }
    .page-lp-university .c-accordion__question {
      color: #1a1a2e !important;
    }
    .page-lp-university .c-accordion__icon {
      color: #888 !important;
    }
    .page-lp-university .c-accordion__content p {
      color: #555 !important;
    }
    .page-lp-university .p-univ__final-cta-counter {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.08) !important;
      color: #555 !important;
    }
    .page-lp-university .p-univ__final-cta-counter strong {
      color: #1a1a2e !important;
    }
    .page-lp-university .p-univ__mid-cta-text {
      color: #777 !important;
    }
    /* Blob on light */
    .page-lp-university .c-blob--svg svg path {
      fill: rgba(139, 164, 200, 0.08) !important;
    }
    /* ===== COMPREHENSIVE WHITE-THEME TEXT FIXES ===== */
    /* Ensure ALL text in ALL sections is dark on white background */
    .page-lp-university .l-section,
    .page-lp-university .l-section--accent {
      color: #333 !important;
    }
    .page-lp-university .l-section p,
    .page-lp-university .l-section--accent p {
      color: #555 !important;
    }
    .page-lp-university .l-section h2,
    .page-lp-university .l-section h3,
    .page-lp-university .l-section--accent h2,
    .page-lp-university .l-section--accent h3 {
      color: #1a1a2e !important;
    }
    /* Section headings - force dark (override preview-overrides.css dark theme) */
    .page-lp-university .c-section-heading__en {
      color: rgba(0, 0, 0, 0.08) !important;
    }
    .page-lp-university .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university .c-section-heading__desc {
      color: #444 !important;
    }
    .page-lp-university .c-section-label {
      color: #777 !important;
    }
    /* Curriculum section - explicit dark text */
    .page-lp-university #curriculum .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #curriculum .c-section-label {
      color: #777 !important;
    }
    .page-lp-university #curriculum p {
      color: #555 !important;
    }
    /* Comparison section */
    .page-lp-university #comparison .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #comparison .c-section-label {
      color: #777 !important;
    }
    /* Instructor section */
    .page-lp-university #instructor .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #instructor .c-section-label {
      color: #777 !important;
    }
    /* Flow section */
    .page-lp-university #flow .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #flow .c-section-label {
      color: #777 !important;
    }
    .page-lp-university #flow .p-univ__flow-step::after {
      background: rgba(0, 0, 0, 0.1) !important;
    }
    /* Testimonials section */
    .page-lp-university #testimonials .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #testimonials .c-section-label {
      color: #777 !important;
    }
    /* FAQ section */
    .page-lp-university #faq .c-section-heading__ja {
      color: #1a1a2e !important;
    }
    .page-lp-university #faq .c-section-label {
      color: #777 !important;
    }
    /* FAQ Accordion - override dark theme from preview-overrides.css */
    .page-lp-university .c-accordion {
      background: transparent !important;
      border-color: rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-university .c-accordion__item {
      background: #ffffff !important;
      border-color: rgba(0, 0, 0, 0.1) !important;
    }
    .page-lp-university .c-accordion__trigger {
      color: #1a1a2e !important;
      background: transparent !important;
    }
    .page-lp-university .c-accordion__trigger:hover {
      background: rgba(0, 0, 0, 0.02) !important;
    }
    .page-lp-university .c-accordion__question {
      color: #1a1a2e !important;
    }
    .page-lp-university .c-accordion__icon {
      color: #888 !important;
    }
    .page-lp-university .c-accordion__icon::before,
    .page-lp-university .c-accordion__icon::after {
      background: #888 !important;
    }
    .page-lp-university .c-accordion__content p {
      color: #555 !important;
    }
    .page-lp-university .c-accordion__panel {
      color: #555 !important;
    }
    .page-lp-university .c-accordion__header {
      background: transparent !important;
      color: #1a1a2e !important;
    }
    .page-lp-university .c-accordion__header span {
      color: #1a1a2e !important;
    }
    .page-lp-university .c-accordion__body,
    .page-lp-university .c-accordion__body p {
      color: #555 !important;
    }
    /* Wave dividers on white page - should be white/light, not dark */
    .page-lp-university .c-section-divider {
      color: #ffffff !important;
    }
    .page-lp-university .l-section--accent + .c-section-divider {
      color: #f8f9fa !important;
    }
    /* Mid CTA text */
    .page-lp-university .p-univ__mid-cta-text {
      color: #777 !important;
    }
    .page-lp-university .cro-micro-copy {
      color: #666 !important;
    }
    /* Final CTA section text */
    .page-lp-university #final-cta h2 {
      color: #1a1a2e !important;
    }
    .page-lp-university #final-cta p {
      color: #555 !important;
    }
  
/* inline: preview-lp-university.html */

  .p-univ-floating-bar { display: none; }
  @media (max-width: 767px) {
    .p-univ-floating-icon { display: none !important; }
    .p-univ-floating-bar {
      display: flex;
      flex-direction: column;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1001;
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-top: 1px solid rgba(0,0,0,0.08);
      padding: 10px 16px 12px;
      align-items: center;
      justify-content: center;
      gap: 4px;
      box-shadow: 0 -4px 24px rgba(0,0,0,0.08);
    }
    .p-univ-floating-bar__btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      max-width: 400px;
      padding: 14px 24px;
      background: #06C755;
      color: #ffffff;
      font-size: 1rem;
      font-weight: 700;
      border: none;
      border-radius: 12px;
      text-decoration: none;
      box-shadow: 0 4px 16px rgba(6,199,85,0.3);
      transition: background 0.2s;
    }
    .p-univ-floating-bar__btn:hover { background: #05b34c; }
    .p-univ__footer { padding-bottom: 80px; }
  }

/* inline: preview-lp-agency.html */

    /* ===== CRO Enhancement Styles (Dark Theme) ===== */
    .cro-live-indicator {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.7);
      padding: 0.5rem 1.25rem;
      background: rgba(168, 192, 224, 0.08);
      border: 1px solid rgba(168, 192, 224, 0.2);
      border-radius: 100px;
      margin-bottom: 1rem;
    }
    .cro-live-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #a8c0e0;
      animation: croPulse 2s ease-in-out infinite;
    }
    @keyframes croPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.8); }
    }
    .cro-media-bar {
      text-align: center;
      padding: 1.25rem 1rem;
      background: #252525;
      border-top: 1px solid rgba(255, 255, 255, 0.04);
      border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    }
    .cro-media-bar__label {
      font-size: 0.7rem;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .cro-media-bar__list {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cro-media-bar__item {
      font-family: 'Outfit', 'Noto Sans JP', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }
    .cro-media-bar__sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.12);
    }
    .cro-micro-copy {
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.75rem;
      line-height: 1.8;
    }
    .cro-risk-reversal {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.6);
      padding: 0.5rem 1.25rem;
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      margin-top: 0.75rem;
    }
    .cro-loss-aversion {
      text-align: center;
      padding: 2.5rem 1.5rem;
      max-width: 640px;
      margin: 0 auto;
    }
    .cro-loss-aversion__text {
      font-size: 0.95rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.85;
      font-style: italic;
    }
    .cro-loss-aversion__text strong {
      color: rgba(255, 255, 255, 0.9);
      font-style: normal;
    }
    .cro-authority-badges {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      flex-wrap: wrap;
      margin-top: 1rem;
    }
    .cro-authority-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.65);
      padding: 0.3rem 0.85rem;
      background: rgba(255, 255, 255, 0.05);
      border-radius: 100px;
      border: 1px solid rgba(255, 255, 255, 0.1);
    }
    .cro-authority-badge svg {
      width: 12px;
      height: 12px;
      opacity: 0.5;
    }
    .cro-privacy-footer {
      text-align: center;
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.6);
      padding: 0.75rem 1rem 0;
      line-height: 1.6;
    }

    /* ===================================================================
       LP Agency - Dark Theme Styles
       =================================================================== */

    /* --- Base Dark Theme --- */
    .lp-agency-body {
      background: #222222;
      color: rgba(255, 255, 255, 0.85);
    }
    .lp-agency-body .l-main {
      background: #222222;
    }

    /* --- Section Base --- */
    .lp-agency-section {
      position: relative;
      padding: 7rem 0;
      overflow: hidden;
    }
    .lp-agency-section--alt {
      background: #252525;
    }
    .lp-agency-section__label {
      display: inline-block;
      font-family: 'Outfit', sans-serif;
      font-size: 0.7rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.2em;
      text-transform: uppercase;
      margin-bottom: 1rem;
    }
    .lp-agency-section__heading {
      font-size: clamp(1.75rem, 4vw, 2.75rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1.3;
      margin-bottom: 1rem;
    }
    .lp-agency-section__heading em {
      font-style: normal;
      background: linear-gradient(135deg, #a8c0e0, #d4e0f0);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .lp-agency-section__sub {
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.85;
      max-width: 640px;
      margin: 0 auto 3rem;
    }
    .lp-agency-section__en {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.5rem, 6vw, 4.5rem);
      font-weight: 400;
      color: rgba(255, 255, 255, 0.04);
      position: absolute;
      top: 3rem;
      left: 50%;
      transform: translateX(-50%);
      white-space: nowrap;
      pointer-events: none;
      letter-spacing: 0.05em;
    }

    /* --- Hero --- */
    .lp-agency-hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(180deg, #252525 0%, #222222 50%, #242424 100%);
      overflow: hidden;
      padding: 120px 1.5rem 5rem;
    }
    .lp-agency-hero__particles {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(2px 2px at 15% 25%, rgba(168, 192, 224, 0.2), transparent),
        radial-gradient(2px 2px at 45% 65%, rgba(168, 192, 224, 0.15), transparent),
        radial-gradient(1px 1px at 65% 15%, rgba(168, 192, 224, 0.18), transparent),
        radial-gradient(1px 1px at 85% 45%, rgba(168, 192, 224, 0.12), transparent),
        radial-gradient(2px 2px at 8% 75%, rgba(168, 192, 224, 0.15), transparent),
        radial-gradient(1px 1px at 92% 8%, rgba(168, 192, 224, 0.18), transparent),
        radial-gradient(1px 1px at 55% 55%, rgba(168, 192, 224, 0.1), transparent),
        radial-gradient(2px 2px at 75% 85%, rgba(168, 192, 224, 0.12), transparent);
      background-size: 300px 300px;
      animation: agency-particle-drift 20s linear infinite;
    }
    @keyframes agency-particle-drift {
      0% { transform: translateY(0); }
      100% { transform: translateY(-300px); }
    }
    .lp-agency-hero__glow {
      position: absolute;
      width: 700px;
      height: 700px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(168, 192, 224, 0.05) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      animation: agency-glow-pulse 8s ease-in-out infinite;
    }
    @keyframes agency-glow-pulse {
      0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
      50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
    }
    .lp-agency-hero__content {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 860px;
      margin: 0 auto;
    }
    .lp-agency-hero__badge {
      display: inline-block;
      font-family: 'Outfit', sans-serif;
      font-size: 0.7rem;
      font-weight: 700;
      color: rgba(168, 192, 224, 0.9);
      letter-spacing: 0.2em;
      text-transform: uppercase;
      padding: 0.4rem 1.5rem;
      background: rgba(168, 192, 224, 0.08);
      border: 1px solid rgba(168, 192, 224, 0.2);
      border-radius: 100px;
      margin-bottom: 2rem;
    }
    .lp-agency-hero__heading {
      font-size: clamp(2rem, 5.5vw, 3.5rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1.25;
      margin-bottom: 1.5rem;
      letter-spacing: -0.01em;
    }
    .lp-agency-hero__heading em {
      font-style: normal;
      background: linear-gradient(135deg, #a8c0e0, #d4e0f0);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .lp-agency-hero__sub {
      font-size: clamp(0.95rem, 1.8vw, 1.15rem);
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.9;
      max-width: 640px;
      margin: 0 auto 2.5rem;
    }
    .lp-agency-hero__trust {
      display: flex;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
      margin-top: 3rem;
      padding-top: 2rem;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .lp-agency-hero__trust-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.25rem;
      padding: 1rem 1.5rem;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 12px;
      min-width: 120px;
    }
    .lp-agency-hero__trust-number {
      font-family: 'Outfit', sans-serif;
      font-size: clamp(1.5rem, 3vw, 2.25rem);
      font-weight: 700;
      color: #ffffff;
      line-height: 1;
    }
    .lp-agency-hero__trust-label {
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.65);
      letter-spacing: 0.05em;
      white-space: nowrap;
    }

    /* --- Pain Section --- */
    .lp-agency-pain__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 1.25rem;
      margin-top: 2.5rem;
    }
    .lp-agency-pain__card {
      display: flex;
      align-items: flex-start;
      gap: 1rem;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-left: 4px solid rgba(220, 80, 80, 0.7);
      border-radius: 12px;
      padding: 1.5rem;
      transition: transform 0.3s ease, background 0.3s ease;
    }
    .lp-agency-pain__card:hover {
      transform: translateY(-3px);
      background: rgba(255, 255, 255, 0.05);
    }
    .lp-agency-pain__num {
      flex-shrink: 0;
      font-family: 'Outfit', sans-serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: rgba(220, 80, 80, 0.5);
      line-height: 1;
    }
    .lp-agency-pain__card-title {
      font-size: 1rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.9);
      margin-bottom: 0.5rem;
      line-height: 1.4;
    }
    .lp-agency-pain__card-desc {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.75;
    }
    .lp-agency-pain__bridge {
      text-align: center;
      margin-top: 3rem;
      padding: 2rem;
    }
    .lp-agency-pain__bridge-text {
      font-size: 1.15rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.7);
      line-height: 1.8;
    }
    .lp-agency-pain__bridge-text strong {
      color: #a8c0e0;
    }

    /* --- Reasons / Strength Cards --- */
    .lp-agency-reasons__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 1.5rem;
      margin-top: 2.5rem;
    }
    .lp-agency-reason-card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 16px;
      padding: 2rem 1.5rem;
      text-align: center;
      transition: transform 0.3s ease, border-color 0.3s ease;
      position: relative;
      overflow: hidden;
    }
    .lp-agency-reason-card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, #a8c0e0, rgba(168, 192, 224, 0.2));
      opacity: 0;
      transition: opacity 0.3s ease;
    }
    .lp-agency-reason-card:hover {
      transform: translateY(-4px);
      border-color: rgba(168, 192, 224, 0.2);
    }
    .lp-agency-reason-card:hover::before {
      opacity: 1;
    }
    .lp-agency-reason-card__num {
      font-family: 'Outfit', sans-serif;
      font-size: 2.5rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.06);
      line-height: 1;
      margin-bottom: 0.75rem;
    }
    .lp-agency-reason-card__icon {
      width: 56px;
      height: 56px;
      margin: 0 auto 1rem;
      color: #a8c0e0;
    }
    .lp-agency-reason-card__title {
      font-size: 1.05rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.75rem;
      line-height: 1.4;
    }
    .lp-agency-reason-card__desc {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.75;
    }

    /* --- Comparison Table --- */
    .lp-agency-compare__table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.9rem;
      margin-top: 2rem;
    }
    .lp-agency-compare__table th,
    .lp-agency-compare__table td {
      padding: 1rem 0.75rem;
      text-align: center;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .lp-agency-compare__table th {
      font-weight: 600;
      color: rgba(255, 255, 255, 0.7);
      font-size: 0.85rem;
    }
    .lp-agency-compare__table th:first-child,
    .lp-agency-compare__table td:first-child {
      text-align: left;
      font-weight: 500;
    }
    .lp-agency-compare__table thead tr {
      border-bottom: 2px solid rgba(255, 255, 255, 0.1);
    }
    .lp-agency-compare__table .col-sline {
      color: #a8c0e0;
      font-weight: 700;
      background: rgba(168, 192, 224, 0.04);
    }
    .lp-agency-compare__table .col-sline-head {
      color: #a8c0e0;
      font-weight: 700;
      background: rgba(168, 192, 224, 0.06);
    }

    /* --- Testimonials (Swiper) --- */
    .lp-agency-testimonial__card {
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 16px;
      padding: 2rem;
      height: 100%;
      display: flex;
      flex-direction: column;
    }
    .lp-agency-testimonial__stars {
      color: #f0c040;
      font-size: 0.85rem;
      margin-bottom: 1rem;
      letter-spacing: 0.15em;
    }
    .lp-agency-testimonial__text {
      font-size: 0.95rem;
      color: rgba(255, 255, 255, 0.7);
      line-height: 1.8;
      flex: 1;
      margin-bottom: 1.5rem;
    }
    .lp-agency-testimonial__meta {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      padding-top: 1rem;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
    }
    .lp-agency-testimonial__avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: rgba(168, 192, 224, 0.15);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 0.85rem;
      color: #a8c0e0;
      flex-shrink: 0;
    }
    .lp-agency-testimonial__name {
      font-size: 0.9rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.8);
    }
    .lp-agency-testimonial__role {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.65);
    }

    /* --- Clients --- */
    .lp-agency-clients__stats {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 1.5rem;
      margin-bottom: 3rem;
      text-align: center;
    }
    .lp-agency-clients__stat-card {
      padding: 2rem 1rem;
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
    }
    .lp-agency-clients__stat-num {
      font-family: 'Outfit', sans-serif;
      font-size: 2.5rem;
      font-weight: 700;
      color: #a8c0e0;
      line-height: 1;
    }
    .lp-agency-clients__stat-label {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.65);
      margin-top: 0.5rem;
    }
    .lp-agency-clients__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 1.25rem;
    }
    .lp-agency-clients__card {
      padding: 1.75rem;
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      transition: transform 0.3s ease, border-color 0.3s ease;
    }
    .lp-agency-clients__card:hover {
      transform: translateY(-3px);
      border-color: rgba(168, 192, 224, 0.15);
    }
    .lp-agency-clients__card-tag {
      font-size: 0.75rem;
      color: rgba(168, 192, 224, 0.7);
      display: inline-block;
      margin-bottom: 0.5rem;
      padding: 0.2rem 0.6rem;
      background: rgba(168, 192, 224, 0.08);
      border-radius: 4px;
    }
    .lp-agency-clients__card-name {
      font-size: 1rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.85);
      margin-bottom: 0.5rem;
    }
    .lp-agency-clients__card-result {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.7;
    }

    /* --- Services --- */
    .lp-agency-services__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 1.5rem;
      margin-top: 2.5rem;
    }
    .lp-agency-service-card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 16px;
      padding: 2rem 1.5rem;
      transition: transform 0.3s ease, border-color 0.3s ease;
      position: relative;
      overflow: hidden;
    }
    .lp-agency-service-card::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, rgba(168, 192, 224, 0.3), transparent);
      opacity: 0;
      transition: opacity 0.3s ease;
    }
    .lp-agency-service-card:hover {
      transform: translateY(-4px);
      border-color: rgba(168, 192, 224, 0.15);
    }
    .lp-agency-service-card:hover::after {
      opacity: 1;
    }
    .lp-agency-service-card__icon {
      width: 48px;
      height: 48px;
      color: #a8c0e0;
      margin-bottom: 1rem;
    }
    .lp-agency-service-card__num {
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      font-weight: 700;
      color: rgba(168, 192, 224, 0.4);
      letter-spacing: 0.1em;
      margin-bottom: 0.5rem;
    }
    .lp-agency-service-card__title {
      font-size: 1.05rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.75rem;
      line-height: 1.4;
    }
    .lp-agency-service-card__desc {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.75;
    }

    /* --- Scope Infographic --- */
    .lp-agency-scope__row {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 1rem;
      margin-top: 2.5rem;
    }
    .lp-agency-scope__item {
      text-align: center;
      padding: 2rem 1rem;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 16px;
      transition: transform 0.3s ease;
    }
    .lp-agency-scope__item:hover {
      transform: translateY(-3px);
    }
    .lp-agency-scope__icon {
      width: 48px;
      height: 48px;
      margin: 0 auto 1rem;
      color: #a8c0e0;
    }
    .lp-agency-scope__title {
      font-size: 0.95rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.85);
      margin-bottom: 0.35rem;
    }
    .lp-agency-scope__desc {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
    }

    /* --- Flow / Timeline --- */
    .lp-agency-flow__list {
      max-width: 720px;
      margin: 2.5rem auto 0;
      position: relative;
    }
    .lp-agency-flow__list::before {
      content: "";
      position: absolute;
      left: 28px;
      top: 0;
      bottom: 0;
      width: 2px;
      background: linear-gradient(180deg, rgba(168, 192, 224, 0.3), rgba(168, 192, 224, 0.05));
    }
    .lp-agency-flow__step {
      display: flex;
      gap: 1.5rem;
      margin-bottom: 2rem;
      position: relative;
    }
    .lp-agency-flow__dot {
      flex-shrink: 0;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      background: rgba(168, 192, 224, 0.1);
      border: 2px solid rgba(168, 192, 224, 0.25);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Outfit', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      color: #a8c0e0;
      position: relative;
      z-index: 1;
    }
    .lp-agency-flow__body {
      flex: 1;
      padding-top: 0.5rem;
    }
    .lp-agency-flow__title {
      font-size: 1.1rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.5rem;
    }
    .lp-agency-flow__desc {
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.75;
    }

    /* --- Pricing --- */
    .lp-agency-pricing__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 1.5rem;
      margin-top: 2.5rem;
      align-items: start;
    }
    .lp-agency-pricing-card {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 20px;
      padding: 2.5rem 2rem;
      position: relative;
      transition: transform 0.3s ease;
    }
    .lp-agency-pricing-card:hover {
      transform: translateY(-4px);
    }
    .lp-agency-pricing-card--rec {
      border-color: rgba(168, 192, 224, 0.3);
      background: rgba(168, 192, 224, 0.05);
    }
    .lp-agency-pricing-card__badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      background: linear-gradient(135deg, #a8c0e0, #7ba0cc);
      color: #111;
      font-size: 0.7rem;
      font-weight: 700;
      padding: 0.35rem 1.25rem;
      border-radius: 100px;
      letter-spacing: 0.1em;
      white-space: nowrap;
    }
    .lp-agency-pricing-card__label {
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      margin-bottom: 0.25rem;
    }
    .lp-agency-pricing-card__name {
      font-size: 1.25rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 1rem;
    }
    .lp-agency-pricing-card__price {
      font-size: 1.1rem;
      color: rgba(255, 255, 255, 0.6);
      margin-bottom: 0.5rem;
    }
    .lp-agency-pricing-card__note {
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.6);
      margin-bottom: 1.5rem;
      padding-bottom: 1.5rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .lp-agency-pricing-card__features {
      list-style: none;
      padding: 0;
      margin: 0 0 2rem;
    }
    .lp-agency-pricing-card__features li {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.875rem;
      color: rgba(255, 255, 255, 0.7);
      padding: 0.4rem 0;
    }
    .lp-agency-pricing-card__features li svg {
      flex-shrink: 0;
    }
    .lp-agency-pricing-card__features li.is-disabled {
      opacity: 0.3;
    }

    /* --- Team --- */
    .lp-agency-team__grid {
      display: grid;
      gap: 3rem;
      margin-top: 2.5rem;
    }
    .lp-agency-team-card {
      display: grid;
      grid-template-columns: 280px 1fr;
      gap: 2.5rem;
      align-items: center;
      background: rgba(255, 255, 255, 0.02);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 20px;
      padding: 2.5rem;
      transition: border-color 0.3s ease;
    }
    .lp-agency-team-card:hover {
      border-color: rgba(168, 192, 224, 0.15);
    }
    @media (max-width: 768px) {
      .lp-agency-team-card {
        grid-template-columns: 1fr;
        text-align: center;
      }
    }
    .lp-agency-team-card__photo {
      width: 100%;
      aspect-ratio: 3/4;
      border-radius: 16px;
      overflow: hidden;
      background: rgba(255, 255, 255, 0.04);
      position: relative;
    }
    .lp-agency-team-card__photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .lp-agency-team-card__photo-placeholder {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 4rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.1);
    }
    .lp-agency-team-card__followers {
      position: absolute;
      bottom: 1rem;
      left: 1rem;
      background: rgba(0, 0, 0, 0.7);
      backdrop-filter: blur(8px);
      color: #ffffff;
      font-family: 'Outfit', sans-serif;
      font-size: 0.75rem;
      font-weight: 600;
      padding: 0.35rem 0.75rem;
      border-radius: 6px;
    }
    .lp-agency-team-card__position {
      font-size: 0.75rem;
      color: rgba(168, 192, 224, 0.7);
      letter-spacing: 0.05em;
      margin-bottom: 0.5rem;
    }
    .lp-agency-team-card__name {
      font-size: 1.35rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 0.25rem;
    }
    .lp-agency-team-card__name-en {
      font-family: 'Outfit', sans-serif;
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.3);
      margin-bottom: 1rem;
    }
    .lp-agency-team-card__bio {
      font-size: 0.9rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.85;
      margin-bottom: 1rem;
    }
    .lp-agency-team-card__achievements {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .lp-agency-team-card__achievements li {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.85rem;
      color: rgba(255, 255, 255, 0.6);
      padding: 0.3rem 0;
    }
    .lp-agency-team-card__achievements li svg {
      flex-shrink: 0;
      color: #a8c0e0;
    }

    /* --- FAQ --- */
    .lp-agency-faq__list {
      max-width: 800px;
      margin: 2.5rem auto 0;
    }
    .lp-agency-faq__item {
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    /* --- CTA Final --- */
    .lp-agency-final-cta {
      position: relative;
      padding: 6rem 0;
      text-align: center;
      background: linear-gradient(180deg, #252525 0%, #222222 40%, #252525 100%);
      overflow: hidden;
    }
    .lp-agency-final-cta__glow {
      position: absolute;
      width: 500px;
      height: 500px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(168, 192, 224, 0.06) 0%, transparent 70%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    .lp-agency-final-cta__content {
      position: relative;
      z-index: 2;
      max-width: 700px;
      margin: 0 auto;
    }

    /* --- Wave Separator Dark --- */
    .lp-agency-wave {
      display: block;
      width: 100%;
      height: 60px;
      color: #252525;
    }
    .lp-agency-wave--rev {
      color: #222222;
    }

    /* --- Plan Compare Table (in pricing) --- */
    .lp-agency-plan-table {
      width: 100%;
      min-width: 600px;
      border-collapse: collapse;
      font-size: 0.875rem;
      margin-top: 2rem;
    }
    .lp-agency-plan-table th,
    .lp-agency-plan-table td {
      padding: 0.85rem 0.75rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }
    .lp-agency-plan-table thead tr {
      border-bottom: 2px solid rgba(255, 255, 255, 0.1);
    }
    .lp-agency-plan-table th {
      font-weight: 600;
      color: rgba(255, 255, 255, 0.7);
      text-align: center;
    }
    .lp-agency-plan-table th:first-child {
      text-align: left;
    }
    .lp-agency-plan-table td {
      text-align: center;
      color: rgba(255, 255, 255, 0.6);
    }
    .lp-agency-plan-table td:first-child {
      text-align: left;
      color: rgba(255, 255, 255, 0.7);
    }
    .lp-agency-plan-table .col-rec {
      background: rgba(168, 192, 224, 0.04);
      color: #a8c0e0;
      font-weight: 600;
    }

    /* --- CTA Button: LINE Green --- */
    .lp-agency-body .c-btn--primary {
      background: #06C755;
      color: #ffffff;
      border: none;
    }
    .lp-agency-body .c-btn--primary:hover {
      background: #05b34c;
    }
    /* Floating CTA - LINE Green */
    .lp-agency-body .c-floating-cta__btn,
    .lp-agency-body .c-floating-cta {
      background-color: #06C755 !important;
      color: #ffffff !important;
    }
    .lp-agency-body .c-floating-cta__btn:hover,
    .lp-agency-body .c-floating-cta:hover {
      background-color: #05b34c !important;
      color: #ffffff !important;
    }
    .lp-agency-body .c-btn--outline {
      border-color: rgba(255, 255, 255, 0.2);
      color: rgba(255, 255, 255, 0.8);
    }
    .lp-agency-body .c-btn--outline:hover {
      border-color: rgba(168, 192, 224, 0.4);
      background: rgba(168, 192, 224, 0.08);
    }
    .lp-agency-body .c-btn--ghost {
      color: rgba(255, 255, 255, 0.7);
      border-color: rgba(255, 255, 255, 0.15);
    }
    .lp-agency-body .c-btn--ghost:hover {
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(255, 255, 255, 0.25);
    }

    /* --- Swiper Custom --- */
    .lp-agency-testimonial-swiper .swiper-pagination-bullet {
      background: rgba(255, 255, 255, 0.3);
      opacity: 1;
    }
    .lp-agency-testimonial-swiper .swiper-pagination-bullet-active {
      background: #a8c0e0;
    }

    /* --- Responsive --- */
    @media (max-width: 640px) {
      .lp-agency-section {
        padding: 4rem 0;
      }
      .lp-agency-hero {
        padding: 100px 1rem 3rem;
      }
      .lp-agency-hero__trust {
        gap: 0.75rem;
      }
      .lp-agency-hero__trust-item {
        padding: 0.75rem 1rem;
        min-width: auto;
        flex: 1;
      }
      .lp-agency-pain__grid {
        grid-template-columns: 1fr;
      }
      .lp-agency-reasons__grid {
        grid-template-columns: 1fr;
      }
      .lp-agency-pricing__grid {
        grid-template-columns: 1fr;
      }
      .lp-agency-scope__row {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    /* ===== FAQ Accordion - force visible in preview ===== */
    .c-accordion__panel {
      display: block !important;
      max-height: none !important;
      overflow: visible !important;
    }
    .c-accordion__panel[hidden] {
      display: block !important;
    }
    .c-accordion__content {
      max-height: none !important;
      overflow: visible !important;
      padding-bottom: var(--space-lg);
    }
    .c-accordion__content p {
      font-size: var(--text-sm);
      color: var(--color-text-secondary);
      line-height: var(--leading-loose);
    }
    .c-accordion__question {
      font-size: var(--text-base);
      font-weight: var(--fw-bold);
      color: var(--color-text-primary);
    }
    .c-accordion__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-lg) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: inherit;
    }
    .c-accordion__icon {
      flex-shrink: 0;
      color: var(--color-text-muted);
      margin-left: var(--space-md);
    }
  
