/* ==========================================================================
   Base Variables & Reset
   ========================================================================== */
   :root {
    --color-primary: #13334E; /* Kanken Navy */
    --color-accent: #0372bd; /* Red (Similar to Kanken Logo Red for CTAs) */
    --color-tertiary: #ffeb3b;
    --color-text: #333333;
    --color-text-light: #666666;
    --color-bg-light: #F5F7FA;
    --color-bg-tertiary: #FFF9C4;
    --color-white: #FFFFFF;
    --color-blue: #0066CC;
    --color-green: #1E8449;
    --color-orange: #BA4A00;
    --color-skyblue: #5DADE2;
    --font-jp: "Inter","Noto Sans JP", sans-serif;
    --font-en: "Inter", sans-serif;
    --spacing-xs: 7px;
    --spacing-sm: 14px;
    --spacing-md: 28px;
    --spacing-lg: 64px;
    --spacing-xl: 96px;
    --text-xs: 0.75em;
    --text-sm: 0.875em;
    --container-width: 1080px;
    --header-height: 70px;
    --color-bg-main: #fff;
    --color-dot-pattern: rgba(3, 114, 189, 0.15);
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-jp);
    color: var(--color-text);
    line-height: 1.6;
    background-color: var(--color-white);
    -webkit-font-smoothing: antialiased;
    /* --- ドット背景の追加 --- */
    background-color: var(--color-bg-main);
    background-image: radial-gradient(var(--color-dot-pattern) 1.5px, transparent 1.5px);
    background-size: 30px 30px; 
}

a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s;
}

a:hover {
    opacity: 0.7;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

ul, ol {
    list-style: none;
}