@charset "UTF-8";
/**
 * CSS Variables - Carwell Design System
 * kk-kvillage リニューアル用変数定義
 */

:root {
  /* ========================================
     COLOR PALETTE
  ======================================== */

  /* Primary Colors */
  --color-primary: #0071b9;
  --color-primary-dark: #005a95;
  --color-primary-light: #009cff;
  --color-primary-pale: #b2d4ea;

  /* Secondary Colors */
  --color-secondary: #22b573;         /* グリーン（成功・アクセント） */
  --color-accent-red: #e00012;        /* レッド（重要CTA） */

  /* Text Colors */
  --color-text-primary: #0071b9;
  --color-text-secondary: #0071b9;
  --color-text-light: #a9aaaa;
  --color-text-white: #ffffff;

  /* Background Colors */
  --color-bg-white: #ffffff;
  --color-bg-off-white: #fafafa;
  --color-bg-gray: #efefef;
  --color-bg-light-blue: #b2d4ea;
  --color-bg-dark: #122646;

  /* Border & Divider */
  --color-border: #d6d6d6;
  --color-border-light: #e5e5e5;

  /* ========================================
     TYPOGRAPHY
  ======================================== */

  /* Font Families */
  --font-family-base: 'Montserrat', 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --font-family-en: 'Montserrat', sans-serif;
  --font-family-en-accent: 'Montserrat', sans-serif;

  /* Font Weights */
  --font-weight-thin: 100;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  /* Font Sizes */
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-md: 18px;
  --font-size-lg: 20px;
  --font-size-xl: 22px;
  --font-size-2xl: 24px;
  --font-size-3xl: 28px;
  --font-size-4xl: 36px;
  --font-size-5xl: 48px;
  --font-size-6xl: 60px;

  /* Line Heights */
  --line-height-tight: 1.2;
  --line-height-base: 1.5;
  --line-height-relaxed: 1.8;
  --line-height-loose: 2;

  /* ========================================
     SPACING
  ======================================== */

  --spacing-xs: 5px;
  --spacing-sm: 10px;
  --spacing-md: 15px;
  --spacing-lg: 20px;
  --spacing-xl: 30px;
  --spacing-2xl: 40px;
  --spacing-3xl: 50px;
  --spacing-4xl: 60px;
  --spacing-5xl: 80px;
  --spacing-6xl: 100px;
  --spacing-7xl: 120px;

  /* ========================================
     LAYOUT
  ======================================== */

  /* Container */
  --container-max-width: 1080px;      /* carwellと同じ */
  --container-padding: 24px;          /* デフォルトパディング */
  --container-padding-mobile: 24px;   /* モバイル：1.5rem */
  --container-padding-tablet: 64px;   /* タブレット：4rem */
  --container-padding-desktop: 64px;  /* デスクトップ：4rem + 動的計算 */

  /* Section Padding */
  --section-padding-y: 100px;         /* PC */
  --section-padding-y-tablet: 80px;   /* タブレット */
  --section-padding-y-mobile: 60px;   /* モバイル */

  
  --l-padding-side: 1.5rem;                    /* 24px (Mobile) */
  --l-section-margin-vertical: 6.25rem;        /* 100px (Mobile) */
  --l-footer-padding-top: 5rem;                /* 80px */
  --l-footer-margin-top: 2.75rem;              /* 44px */
  --l-full-banner-bottom: 3.75rem;             /* 60px */
  --l-page-hero-bottom: 3rem;                  /* 48px */

  /* ========================================
     BORDER RADIUS
  ======================================== */

  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 50px;
  --radius-circle: 50%;

  /* ========================================
     SHADOWS
  ======================================== */

  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.12);
  --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.15);
  --shadow-card: 0 16px 48px -8px rgba(0, 0, 0, 0.08), 0 10px 25px -5px rgba(0, 0, 0, 0.11);

  /* ========================================
     TRANSITIONS
  ======================================== */

  --transition-fast: 0.15s ease;
  --transition-base: 0.3s ease;
  --transition-smooth: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.5s ease;
  --transition-modal: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slowest: 0.8s ease;

  /* ========================================
     BREAKPOINTS
  ======================================== */

  --breakpoint-xs: 480px;   /* スマホ小 */
  --breakpoint-sm: 576px;   /* スマホ */
  --breakpoint-md: 768px;   /* タブレット縦 */
  --breakpoint-lg: 992px;   /* タブレット横 */
  --breakpoint-xl: 1200px;  /* デスクトップ */
  --breakpoint-xxl: 1400px; /* 大画面 */

  /* ========================================
     Z-INDEX SCALE
  ======================================== */

  --z-index-dropdown: 1000;
  --z-index-sticky: 1020;
  --z-index-fixed: 1030;
  --z-index-modal-backdrop: 1040;
  --z-index-modal: 1050;
  --z-index-popover: 1060;
  --z-index-tooltip: 1070;
}

/* ========================================
   UTILITY CLASSES
======================================== */

/* Font Weights */
.is-thin { font-weight: var(--font-weight-thin); }
.is-light { font-weight: var(--font-weight-light); }
.is-regular { font-weight: var(--font-weight-regular); }
.is-medium { font-weight: var(--font-weight-medium); }
.is-semibold { font-weight: var(--font-weight-semibold); }
.is-bold { font-weight: var(--font-weight-bold); }
.is-black { font-weight: var(--font-weight-black); }

/* Text Alignment */
.is-center { text-align: center; }
.is-right { text-align: right; }
.is-left { text-align: left; }

/* Text Colors */
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-secondary); }
.text-muted { color: var(--color-text-secondary); }
.text-light { color: var(--color-text-light); }
.text-white { color: var(--color-text-white); }

/* Display */
.is-inline-block { display: inline-block; }
.is-block { display: block; }
.is-flex { display: flex; }
.is-hidden { display: none; }

/* Responsive Display */
.pc-only { display: block; }
.sp-only { display: none; }

@media screen and (max-width: 767px) {
  .pc-only { display: none !important; }
  .sp-only { display: block !important; }
}

/* ========================================
   レスポンシブレイアウト変数
======================================== */

/* タブレット：721px - 1440px */
@media (min-width: 721px) and (max-width: 1440px) {
  :root {
    --l-padding-side: 4rem;                      /* 64px */
    --l-section-margin-vertical: 7.5rem;         /* 120px */
    --l-footer-padding-top: 6.4375rem;           /* 103px */
    --l-footer-margin-top: 7.5rem;               /* 120px */
    --l-full-banner-bottom: 3.75rem;             /* 60px */
    --l-page-hero-bottom: 4rem;                  /* 64px */
  }
}

/* デスクトップ：1441px以上（横スクロール対策で値を固定） */
@media (min-width: 1441px) {
  :root {
    --l-padding-side: 4rem;
    --l-section-margin-vertical: 7.5rem;
    --l-footer-padding-top: 6.4375rem;
    --l-footer-margin-top: 7.5rem;
    --l-full-banner-bottom: 3.75rem;
    --l-page-hero-bottom: 4rem;
  }
}
