        /* CSS変数定義 */
        :root {
            /* メインカラー */
            --color-espresso: #aa546d;
            --color-syrup: #f7b869;
            --color-tea: #5d896e;
            
            /* バリエーション */
            --color-espresso-light: #f0dbe2;
            --color-espresso-dark: #8a3f56;
            --color-syrup-light: #fef6e8;
            --color-syrup-dark: #d99a4e;
            --color-tea-light: #e1ede7;
            --color-tea-dark: #476955;
            
            /* ベースカラー */
            --color-text-main: #2C3E50;
            --color-text-sub: #7F8C8D;
            --color-bg-light: #ECF0F1;
            --color-bg-white: #FFFFFF;
            
            /* アクセントカラー */
            --color-red: #E74C3C;
            --color-blue: #3498DB;
            --color-gold: #F39C12;
            --color-green: #27AE60;
            
            /* フォント */
            --font-main: 'Noto Sans JP', sans-serif;
            --font-accent: 'Klee One', cursive;
            
            /* 余白 */
            --spacing-xs: 4px;
            --spacing-sm: 8px;
            --spacing-md: 16px;
            --spacing-lg: 24px;
            --spacing-xl: 32px;
            --spacing-xxl: 48px;
            
            /* 角丸 */
            --radius-sm: 4px;
            --radius-md: 8px;
            --radius-lg: 16px;
            --radius-full: 9999px;
        }
        
        /* ベーススタイル */
        body {
            font-family: var(--font-main);
            color: var(--color-text-main);
            background-color: var(--color-bg-white);
            line-height: 1.6;
            font-size: 16px;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 var(--spacing-md);
        }
        
        /* ヘッダー */
        .header {
            background: var(--color-bg-white);
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
            position: sticky;
            top: 0;
            z-index: 100;
        }
        
        .header__inner {
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 80px;
        }
        
        .logo {
            font-size: 24px;
            font-weight: 700;
            background: linear-gradient(135deg, var(--color-espresso), var(--color-syrup), var(--color-tea));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        
        /* ナビゲーション */
        .nav {
            display: flex;
            gap: var(--spacing-xl);
            align-items: center;
        }
        
        .nav__list {
            display: flex;
            list-style: none;
            gap: var(--spacing-lg);
        }
        
        .nav__link {
            text-decoration: none;
            color: var(--color-text-main);
            font-weight: 500;
            transition: color 0.3s;
            position: relative;
        }
        
        .nav__link:hover {
            color: var(--color-espresso);
        }
        
        .nav__link::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--color-espresso);
            transition: width 0.3s;
        }
        
        .nav__link:hover::after {
            width: 100%;
        }
        
        /* ヒーローセクション */
        .hero {
            height: 60vh;
            background: linear-gradient(135deg, var(--color-espresso-light), var(--color-syrup-light), var(--color-tea-light));
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
        }
        
        .hero__content {
            text-align: center;
            z-index: 2;
        }
        
        .hero__title {
            font-size: 48px;
            font-weight: 700;
            margin-bottom: var(--spacing-md);
            color: var(--color-text-main);
        }
        
        .hero__subtitle {
            font-size: 20px;
            color: var(--color-text-sub);
            margin-bottom: var(--spacing-xl);
        }
        
        /* ボタン */
        .button {
            display: inline-block;
            padding: var(--spacing-md) var(--spacing-xl);
            border-radius: var(--radius-full);
            text-decoration: none;
            font-weight: 500;
            transition: all 0.3s;
            cursor: pointer;
            border: none;
        }
        
        .button--primary {
            background: var(--color-espresso);
            color: white;
        }
        
        .button--primary:hover {
            background: var(--color-espresso-dark);
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        }
        
        /* クラスセクション */
        .classes {
            padding: var(--spacing-xxl) 0;
        }
        
        .section__title {
            font-size: 36px;
            text-align: center;
            margin-bottom: var(--spacing-xxl);
            font-family: var(--font-accent);
        }
        
        .classes__grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: var(--spacing-xl);
        }
        
        .class-card {
            background: white;
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s;
        }
        
        .class-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
        }
        
        .class-card__header {
            height: 200px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            font-weight: 700;
            color: white;
        }
        
        .class-card--espresso .class-card__header {
            background: linear-gradient(135deg, var(--color-espresso), var(--color-espresso-dark));
        }
        
        .class-card--syrup .class-card__header {
            background: linear-gradient(135deg, var(--color-syrup), var(--color-syrup-dark));
        }
        
        .class-card--tea .class-card__header {
            background: linear-gradient(135deg, var(--color-tea), var(--color-tea-dark));
        }
        
        .class-card__body {
            padding: var(--spacing-lg);
        }
        
        .class-card__title {
            font-size: 24px;
            margin-bottom: var(--spacing-sm);
        }
        
        .class-card__description {
            color: var(--color-text-sub);
            line-height: 1.8;
        }
        
        /* フッター */
        .footer {
            background: var(--color-text-main);
            color: white;
            padding: var(--spacing-xxl) 0;
            margin-top: var(--spacing-xxl);
        }
        
        .footer__grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: var(--spacing-xl);
            margin-bottom: var(--spacing-xl);
        }
        
        .footer__title {
            font-size: 18px;
            margin-bottom: var(--spacing-md);
        }
        
        .footer__list {
            list-style: none;
        }
        
        .footer__link {
            color: rgba(255, 255, 255, 0.8);
            text-decoration: none;
            display: block;
            padding: var(--spacing-xs) 0;
            transition: color 0.3s;
        }
        
        .footer__link:hover {
            color: white;
        }
        
        .footer__bottom {
            text-align: center;
            padding-top: var(--spacing-xl);
            border-top: 1px solid rgba(255, 255, 255, 0.2);
            color: rgba(255, 255, 255, 0.6);
        }
        
        
  