@charset "utf-8";

:root {
  /* Typography */
  --font-primary: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Meiryo', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui, sans-serif;
  --font-secondary: 'Outfit', 'Helvetica Neue', Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-decorative: 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --font-heading: 'Oswald', 'Bebas Neue', 'Arial Black', sans-serif;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  /* Colors - 水色系を維持しつつ温かみを追加 */
  --color-text-primary: #2c3e50;  /* より深みのある色に */
  --color-text-secondary: #5d6d7e;
  --color-text-light: #8b9cae;
  --color-white: #ffffff;
  --color-gray-50: #fcfdfe;
  --color-gray-100: #f4f7fa;
  --color-gray-200: #e8ecf0;
  --color-accent: #52b3d9;  /* より柔らかい水色に調整 */
  --color-accent-hover: #449bb5;
  --color-accent-light: rgba(82, 179, 217, 0.15);
  --color-accent-dark: #3498db;
  --color-accent-lighter: rgba(82, 179, 217, 0.08);
  --color-accent-transparent: rgba(82, 179, 217, 0);
  --color-success: #48c9b0;  /* 青緑系 */
  --color-warning: #f4b643;  /* 暖色系の黄色 */
  --color-danger: #e74c3c;   /* 赤系 */
  --color-purple: #9b59b6;   /* 紫系 */
  --color-secondary: #68c3a3; /* 副色として緑系を追加 */

  /* 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: 5rem;
  --space-5xl: 7rem;

  /* Shadows */
  --shadow-sm: 0 1px 3px 0 rgba(31, 41, 55, 0.04);
  --shadow-md: 0 4px 6px -1px rgba(31, 41, 55, 0.06), 0 2px 4px -1px rgba(31, 41, 55, 0.04);
  --shadow-lg: 0 10px 15px -3px rgba(31, 41, 55, 0.08), 0 4px 6px -2px rgba(31, 41, 55, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(31, 41, 55, 0.1), 0 10px 10px -5px rgba(31, 41, 55, 0.04);
  --shadow-glass:
    0 0.5rem 32px 0 rgba(31, 38, 135, 0.25), 0 2px 0.5rem 0 rgba(70, 190, 237, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(255, 255, 255, 0.1);
  --shadow-colored: 0 12px 40px -12px;

  /* Glass Effect */
  --glass-bg: rgba(255, 255, 255, 0.12);
  --glass-bg-light: rgba(255, 255, 255, 0.18);
  --glass-border: rgba(255, 255, 255, 0.15);
  --glass-blur: 1rem;

  /* Border Radius */
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.25rem;
  --radius-2xl: 1.5rem;

  /* Transitions - より自然な動きに調整 */
  --transition-fast: 180ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-normal: 250ms cubic-bezier(0.43, 0.13, 0.23, 0.96);
  --transition-slow: 380ms cubic-bezier(0.43, 0.13, 0.23, 0.96);

  /* Layout */
  --section-padding-y: var(--space-5xl);
  --section-padding-x: var(--space-xl);
  --card-padding: var(--space-2xl);
  --card-padding-sm: var(--space-xl);
}

/* ==========================================================================
   CSS Reset
   ========================================================================== */

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

body {
  font-family: var(--font-primary);
  line-height: 1.6;
  color: #333;
  font-size: 1rem;
  background-color: #f0f8ff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt" 1;
}

a {
  text-decoration: none;
}

ul {
  list-style: none;
}

li {
  list-style: none;
}

a,
select,
label,
button,
input {
  cursor: pointer;
  border: none;
  outline: none;
}

button {
  background: none;
  font-weight: bold;
  color: #fff;
}

/* ==========================================================================
   Responsive Layout
   ========================================================================== */

@media (max-width: 767px) {
  html {
    scroll-padding-top: 60px;
  }

  body {
    padding-top: 60px;
  }
}

@media (min-width: 768px) {
  html {
    scroll-padding-top: 80px;
  }

  body {
    padding-top: 80px;
  }
}
