/* 色の変数(管理画面の色編集 = theme.json → theme-loader.js とウィジェットの色の土台)とヘッダーの基本の形だけ。見た目は custom.css */
/* 大きさの数え方(枠線・内側の余白込み)。これが無いと AI の書いた高さ・幅に余白が足されて、ボタンや枠が大きくなる(2026-10-07: 高さ 60px のボタンが 104px に) */
*, *::before, *::after { box-sizing: border-box; }
/* ページの外枠の余白(ブラウザの初期値 8px)を消す。残ると全幅の帯・フッターの左右に白い余白が出る(2026-10-08) */
html, body { margin: 0; padding: 0; }
/* キーボード用の「本文へ移動」リンクは、フォーカスしたときだけ見せる(2026-10-08: 画面の左上に出ていた) */
.skip-link:not(:focus) { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* ヘッダー/フッターのリンクと箇条書きの初期値(下線・行頭の点・字下げを消す)。標準のヘッダー/フッターは ul/li/a で書くので、これが無いと下線つきで字下げされる(2026-10-08) */
.site-header a, .site-footer a { text-decoration: none; }
.site-header ul, .site-footer ul { list-style: none; margin: 0; padding: 0; }
:root {
  
  --color-primary:       #133254;
  --color-secondary:     #f8f9fa;
  --color-accent:        #e74c3c;
  --color-bg:            #ffffff;
  --color-text:          #2c3e50;
  
  
  --color-text-muted:    color-mix(in srgb, var(--color-text) 75%, var(--color-bg));
  --color-primary-light: color-mix(in srgb, var(--color-primary) 12%, var(--color-bg));
  
  --color-surface:       color-mix(in srgb, var(--color-primary) 5%, var(--color-bg));
  --color-primary-dark:  color-mix(in srgb, var(--color-primary) 80%, #000);
  
  --color-on-primary:    #111111;
  --color-on-secondary:  #111111;
  --color-on-accent:     #111111;
  
  --color-heading-ink:   #2c3e50;
  
  --fs-hero-xl: clamp(3.5rem, 5vw, 4.5rem);   
  --fs-hero-lg: clamp(3rem, 4.2vw, 3.75rem);  
  --fs-hero-md: clamp(2.5rem, 3.5vw, 3rem);   
  --fs-h2:      clamp(1.5rem, 4vw, 2.2rem);   
  --fs-h3:      1.2rem;                        
  
  --fs-mod-title: clamp(1.25rem, 2.6vw, 1.6875rem);  
  --fs-lead:    1.08rem;                       
  --fs-body:    1rem;                          
  --fs-small:   0.9375rem;                     
  --lh-body:    1.7;
  
  --color-footer-bg:     #256397;
  --font-heading: 'Zen Kaku Gothic New', sans-serif;
  --font-body: 'Noto Sans JP', sans-serif;
  --radius: 0px;
  --radius-btn: 0px;
  --radius-card: 0px;
  --shadow: 0 3px 0 rgba(17,43,77,0.14);
  --shadow-card: none;
  --transition: all 0.3s ease;
  
  --space-sm: 24px;   
  --space-md: 32px;   
  --space-lg: 48px;   
}
.site-header { position: sticky; top: 0; z-index: 100; isolation: isolate; background: #ffffff; background: var(--color-bg, #ffffff); border-bottom: 1px solid var(--color-primary-light); transition: var(--transition); }
.site-header.scrolled { box-shadow: 0 2px 12px rgba(0,0,0,0.1); }
.site-header .container { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.site-logo { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; color: var(--color-heading-ink); flex: 0 1 auto; min-width: 0; max-width: 46%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site-logo:has(.site-logo-img) { max-width: none; overflow: visible; }
.site-nav { flex: 0 0 auto; }
.site-nav ul { display: flex; flex-wrap: nowrap; align-items: center; gap: calc(0.75rem * var(--nav-scale, 1)); list-style: none; }
.site-nav a { font-size: 0.82rem; font-weight: 500; color: var(--color-text); padding: 0.25rem 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.site-nav .sm-langswitch { display: flex; gap: 0.5rem; }
.site-nav a:hover, .site-nav a.active { color: var(--color-heading-ink); border-bottom-color: var(--color-heading-ink); opacity: 1; }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.hamburger span { width: 24px; height: 2px; background: var(--color-text); border-radius: 2px; transition: var(--transition); display: block; }
.site-header.nav-collapsed .hamburger { display: flex; }
.site-header.nav-collapsed .site-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; background: #ffffff; background: var(--color-bg, #ffffff); padding: 1rem; border-top: 1px solid var(--color-primary-light); box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 99; max-height: calc(100vh - 76px); overflow-y: auto; }
.site-header.nav-collapsed .site-nav.open { display: block; }
.site-header.nav-collapsed .site-nav ul { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
.site-header.nav-collapsed .site-nav a { display: flex; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--color-primary-light); min-height: 44px; white-space: normal; }
.site-header.nav-collapsed .site-nav .sm-langswitch { gap: 1rem; padding: 0.5rem 0; }
.site-header.nav-collapsed .site-logo { max-width: 72%; }
:root { --sm-page-primary: var(--color-primary); --sm-page-on-primary: var(--color-on-primary, #fff);
        --sm-page-text: var(--color-text); --sm-page-muted: var(--color-text-muted);
        --sm-page-border: var(--color-primary-light, rgba(0,0,0,.2)); }
[data-sm-widget] { --color-primary: var(--sm-page-primary); --color-primary-foreground: var(--sm-page-on-primary);
  
  --color-foreground: var(--sm-page-text); --color-muted-foreground: var(--sm-page-muted);
  
  --tw-border-style: solid; --color-border: var(--sm-page-border); }
@media (max-width: 1200px) {.hamburger { display: flex; }
.site-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; background: #ffffff; background: var(--color-bg, #ffffff); padding: 1rem; border-top: 1px solid var(--color-primary-light); box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 99; max-height: calc(100vh - 76px); overflow-y: auto; }
.site-nav.open { display: block; }
.site-nav ul { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
.site-nav a { display: flex; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--color-primary-light); min-height: 44px; white-space: normal; }
.site-nav .sm-langswitch { gap: 1rem; padding: 0.5rem 0; }
.site-logo { max-width: 72%; }}

/* sm-widget-theme-bridge:start (auto-generated — 手で編集しないでください) */
:root {
  --sm-widget-primary: var(--color-primary, #3c83f6);
  --sm-widget-ink: var(--color-text, #0f1729);
  --sm-widget-font: var(--font-body, sans-serif);
}
[data-sm-widget="news"],
[data-sm-widget="column"],
[data-sm-widget="contact"] {
  --color-primary: var(--sm-widget-primary);
  --color-foreground: var(--sm-widget-ink);
  --color-muted-foreground: color-mix(in srgb, var(--sm-widget-ink) 62%, transparent);
  --color-border: color-mix(in srgb, var(--sm-widget-ink) 14%, transparent);
  font-family: var(--sm-widget-font);
}
/* sm-widget-theme-bridge:end */
