
:root {
  
  color-scheme: light;

  

  
  --color-primary-rgb: 18, 115, 196;

  
  --color-primary: #1273c4;

  
  --color-primary-hover: #0e5c9e;
  --color-primary-active: #0a4a80;

  
  --color-primary-dark: #002261;

  
  --color-primary-light: #eaf4fe;
  --color-primary-tint: #eaf4fe;
  --color-primary-tint-strong: #d4e9fb;

  
  --color-brand-accent: #2ea6f7;

  
  --color-accent: #e67e22;
  --color-accent-bg: #fef3e6;

  
  --color-brand-accent-hover: #1785d6;

  
  --color-brand-accent-light: #eaf4fe;

  
  --color-brand-accent-dark: #002261;

  
  --color-background: #f8f7f6;

  
  --color-white: #ffffff;

  
  --color-surface: #ffffff;

  
  --color-surface-alpha-40: rgba(255, 255, 255, 0.4);
  --color-surface-alpha-20: rgba(255, 255, 255, 0.2);
  --color-surface-alpha-15: rgba(255, 255, 255, 0.15);

  
  --color-text-main: #23221e;

  
  --color-text-sub: #6b6560;

  
  --color-text-muted: #736e68;

  
  --color-text-body-muted: #5a5550;

  
  --color-link: #0e5c9e;

  
  --color-link-hover: #0a4a80;

  
  --color-border: #d6d3d0;

  
  --color-border-light: #eae8e6;

  
  --color-border-hairline: rgba(35, 34, 30, 0.12);
  --border-hairline: 1px solid var(--color-border-hairline);

  
  --color-info: #1976d2;

  
  --color-info-light: #e8f4fc;

  
  --color-error: #c62828;

  
  --color-error-light: #fdecea;

  
  --color-success: #2e7d32;

  
  --color-success-light: #e8f5e9;

  
  --color-warning: #f9a825;

  
  --color-warning-light: #fff8e1;

  
  --color-urgency-high: #fff3e0;
  --color-urgency-critical: #ffebee;

  
  --color-recruit-cta: #e65100;

  
  --color-recruit-cta-hover: #bf4400;

  
  --color-recruit-cta-light: #fff3e0;

  
  --color-accent-teal: #4dd0e1;
  --color-accent-teal-dark: #008080;

  
  --color-nurse-primary: #e91e63;
  --color-nurse-primary-dark: #c2185b;
  --color-nurse-bg-pink: #fce4ec;

  
  --color-comedical-primary: #6a1b9a;
  --color-comedical-primary-dark: #4a148c;

  
  --color-doctor-navy: #1a365d;
  --color-doctor-navy-light: #2d4a7c;
  --color-doctor-gold: #c9a227;

  
  --color-danger: #dc3545;

  
  --color-danger-hover: #c82333;

  
  --color-danger-light: #f8d7da;

  
  --color-accent-green: #48bb8f;
  --color-accent-green-hover: #3da87d;

  
  --color-schedule-cta: #5ebb8f;
  --color-schedule-cta-hover: #4da87e;

  
  --color-ai-cta: #e8a458;
  --color-ai-cta-hover: #c9833a;

  
  --color-sns-line: #06c755;
  --color-sns-instagram: #e1306c;
  --color-sns-x: #1d1d1f;
  --color-sns-youtube: #ff0000;
  --color-sns-facebook: #1877f2;

  
  --color-nav-access-hover: #059669;

  
  --color-nav-schedule: #a5500f;
  --color-nav-schedule-hover: #ea580c;

  
  --color-reservation-cta: #00897B;
  --color-reservation-cta-hover: #00695C;

  
  --color-sidebar-icon-on-tint: #0e5c9e;
  --color-sidebar-arrow-on-tint: #6b6560;

  
  --color-overlay: rgba(0, 0, 0, 0.5);

  
  --color-overlay-light: hsl(0 0% 0% / 0.3);
  --color-overlay-dark: hsl(0 0% 0% / 0.5);

  
  --shadow-text: 0 2px 8px hsl(0 0% 0% / 0.4);
  --shadow-text-sm: 0 1px 4px hsl(0 0% 0% / 0.3);

  

  
  --font-family-base: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;

  
  --font-family-en: "Inter", "Noto Sans JP", sans-serif;

  
  --font-family-mono: "Source Code Pro", "Consolas", monospace;

  
  --font-size-xs: clamp(0.875rem, 0.85rem + 0.15vw, 0.9375rem);     
  --font-size-sm: clamp(0.875rem, 0.86rem + 0.15vw, 0.9375rem);     
  --font-size-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);        
  --font-size-md: clamp(1.0625rem, 1rem + 0.25vw, 1.125rem);        
  --font-size-lg: clamp(1.125rem, 1.05rem + 0.4vw, 1.25rem);        
  --font-size-xl: clamp(1.25rem, 1.12rem + 0.6vw, 1.5rem);          
  --font-size-xxl: clamp(1.5rem, 1.28rem + 1.1vw, 2rem);            
  --font-size-caption: var(--font-size-xs);
  --font-size-h4: var(--font-size-lg);
  --font-size-h3: var(--font-size-xl);
  --font-size-h2: var(--font-size-xxl);
  --font-size-h1: clamp(1.75rem, 1.4rem + 1.4vw, 2.25rem);

  
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;

  
  --line-height-tight: 1.35;   
  --line-height-normal: 1.75;  
  --line-height-relaxed: 1.85; 

  
  --letter-spacing-tight: -0.01em;
  --letter-spacing-normal: 0.02em;
  --letter-spacing-wide: 0.08em;
  --font-feature-settings: "palt" 1, "kern" 1;

  
  --text-width: 42em;
  --text-width-narrow: 36em;
  --text-width-wide: 46em;

  

  --spacing-unit: 8px;
  --space-1: 4px;    
  --space-2: 8px;    
  --space-3: 12px;   
  --space-4: 16px;   
  --space-5: 24px;   
  --space-6: 32px;   
  --space-7: 48px;   
  --space-8: 64px;   

  --spacing-xs: var(--space-1);
  --spacing-sm: var(--space-2);
  --spacing-ms: var(--space-3);
  --spacing-md: var(--space-4);
  --spacing-lg: var(--space-5);
  --spacing-xl: var(--space-6);
  --spacing-xxl: var(--space-7);
  --spacing-xxxl: var(--space-8);

  
  --section-space-y: var(--space-7);
  --section-space-y-lg: var(--space-8);
  --card-padding: var(--space-4);
  --card-gap: var(--space-3);

  
  --space-fluid-xs: clamp(0.25rem, 0.2rem + 0.2vw, 0.5rem);
  --space-fluid-sm: clamp(0.5rem, 0.4rem + 0.4vw, 0.75rem);
  --space-fluid-md: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);
  --space-fluid-lg: clamp(1rem, 0.75rem + 1.5vw, 2.5rem);
  --space-fluid-xl: clamp(1.5rem, 1rem + 2vw, 4rem);
  --space-fluid-section: clamp(2rem, 1.5rem + 3vw, 6rem);

  
  --space-watch-xs: 0.125rem;  
  --space-watch-sm: 0.25rem;   
  --space-watch-md: 0.5rem;    
  --space-watch-lg: 0.75rem;   

  
  --font-watch-xs: 0.8125rem;  
  --font-watch-sm: 0.8125rem;  
  --font-watch-md: 0.875rem;   
  --font-watch-lg: 1rem;       

  
  --font-hd-caption: 13px; 
  --font-hd-body: 13px;
  --font-hd-label: 13px;
  --font-hd-num: 16px;     
  --font-hd-num-lg: 18px;
  --hd-touch-min: 44px;

  

  --border-width: 1px;
  --border-width-hairline: 1px;
  --border-width-thick: 2px;

  
  --radius-sm: 4px;     
  --radius-control: 8px; 
  --radius-md: var(--radius-control);
  --radius-card: 12px;  
  --radius-lg: 16px;    
  --radius-xl: 24px;    
  --radius-full: 9999px;

  

  --shadow-flat: none;
  --shadow-card: 0 1px 2px rgba(35, 34, 30, 0.06);
  --shadow-card-hover: 0 2px 8px rgba(35, 34, 30, 0.08);
  --shadow-card-hover-lg: 0 4px 12px rgba(35, 34, 30, 0.1);
  --shadow-dialog: 0 8px 24px rgba(35, 34, 30, 0.12);
  --shadow-xl: 0 12px 32px rgba(35, 34, 30, 0.12);
  --shadow-fab: 0 2px 8px rgba(35, 34, 30, 0.12);
  --shadow-header: 0 1px 0 var(--color-border-hairline);

  

  
  --elevation-1: 0 1px 2px rgba(35, 34, 30, 0.04), 0 2px 6px rgba(18, 115, 196, 0.04);
  --elevation-2: 0 1px 2px rgba(35, 34, 30, 0.04), 0 4px 12px rgba(18, 115, 196, 0.06);
  --elevation-3: 0 2px 4px rgba(35, 34, 30, 0.05), 0 8px 20px rgba(18, 115, 196, 0.08);
  --elevation-4: 0 4px 8px rgba(35, 34, 30, 0.06), 0 16px 32px rgba(18, 115, 196, 0.1);
  --elevation-hover: 0 4px 10px rgba(35, 34, 30, 0.07), 0 12px 28px rgba(18, 115, 196, 0.1);

  
  --fs-display: clamp(2rem, 1.55rem + 2.2vw, 3rem);
  --fs-h1: var(--font-size-h1);
  --fs-h2: var(--font-size-h2);
  --fs-h3: var(--font-size-h3);
  --fs-h4: var(--font-size-h4);
  --lh-heading: 1.3;
  --lh-body: 1.8;
  --letter-spacing-display: 0.04em;
  

  
  --gradient-brand: linear-gradient(
    135deg,
    rgb(var(--color-primary-rgb)) 0%,
    var(--color-brand-accent) 100%
  );
  --gradient-brand-soft: linear-gradient(
    180deg,
    rgba(var(--color-primary-rgb), 0.55) 0%,
    rgba(0, 34, 97, 0.4) 100%
  );
  --gradient-brand-overlay: linear-gradient(
    to top,
    rgba(0, 34, 97, 0.62) 0%,
    rgba(var(--color-primary-rgb), 0.22) 45%,
    transparent 78%
  );

  
  --surface-tint-primary: var(--color-primary-tint);
  --surface-tint-primary-strong: var(--color-primary-tint-strong);
  --surface-tint-accent: var(--color-accent-bg);
  --surface-tint-soft: #f3f6fa;
  --surface-tint-info: var(--color-info-light);

  
  --radius: 16px;                 
  --radius-control-lux: 10px;     

  
  --motion-fast: 150ms;
  --motion-base: 250ms;
  --motion-slow: 400ms;
  --ease-overshoot: cubic-bezier(0.34, 1.4, 0.64, 1);
  

  

  --portal-section-eyebrow-size: var(--font-size-caption);
  --portal-section-eyebrow-tracking: var(--letter-spacing-wide);
  --portal-section-title-size: var(--fs-h3);
  --portal-section-lead-size: var(--font-size-sm);
  --portal-section-head-gap: var(--space-4);

  --portal-card-radius: var(--radius);
  --portal-card-border: var(--border-hairline);
  --portal-card-shadow: var(--elevation-1);
  --portal-card-shadow-hover: var(--elevation-hover);
  --portal-card-padding: var(--space-4);
  --portal-card-min-height: 7.5rem;
  --portal-grid-gap: var(--space-4);

  
  --portal-section-pad-y: clamp(2.5rem, 5vw, 4rem);
  --portal-section-pad-x: clamp(1rem, 4vw, 2.5rem);

  

  
  --hover-lift-sm: translateY(-1px);

  
  --hover-lift-md: translateY(-2px);

  
  --active-scale: scale(0.97);

  
  --transition-hover: 0.25s cubic-bezier(0.4, 0, 0.2, 1);

  
  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);

  

  --transition-fast: 150ms ease;    
  --transition-normal: 250ms ease;  
  --transition-slow: 400ms ease;    

  
  --bp-xs: 480px;
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;

  

  --z-subnav: 100;         
  --z-fab: 500;            
  --z-dropdown: 999;       
  --z-header: 1000;        
  --z-overlay: 1001;       
  --z-bottom-bar: 1001;    
  --z-cookie: 1100;        
  --z-mobile-menu: 9999;   
  --z-dialog: 10000;       
  --z-toast: 10001;        

  

  
  --touch-target-min: 44px;
  --control-height: 44px;
  --control-height-sm: 36px;
  --control-height-lg: 52px;
  
  --control-height-input: 48px;

  
  --app-action-min: 160px;

  
  --table-readable-min-width: 36rem;
  --schedule-matrix-min-width: 720px;

  
  --content-max-width: 1280px;
  --content-width: var(--content-max-width);
  --home-section-inner-max: var(--content-max-width);
  --home-section-inner-pad: clamp(var(--space-4), 4vw, var(--space-6));

  
  --header-utility-height: 48px;
  --header-main-height: 50px;
  --header-height: calc(var(--header-utility-height) + var(--header-main-height));

  
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --bottom-bar-height: 4rem;
  /* R12-5a: 占有は bottom-bar.js だけが書く（C-15）。CSS 既定は 0。calc 既定だと JS 前に 64 と測り LA11 occupied_mismatch になる */
  --bottom-bar-occupied: 0px;
  
  --bottom-nav-height: var(--bottom-bar-height);
  --z-floating: var(--z-fab, 500);
  --cookie-consent-height: 0px; 

  
  --sidebar-width: 280px;

  
  --color-gray-50: #fafafa;
  --color-gray-100: #f5f5f5;
  --color-gray-200: #eeeeee;
  --color-gray-300: #e0e0e0;
  --color-gray-400: #bdbdbd;
  --color-gray-500: #9e9e9e;
  --color-gray-600: #757575;
  --color-gray-700: #616161;
  --color-gray-800: #424242;
  --color-gray-900: #212121;

  
  --color-primary-50: #E8F0FA;
  --color-primary-100: #C5D9F2;
  --color-primary-200: #a3c4e8;

  
  --color-accent-vivid: #ff1f54;
  --color-accent-vivid-dark: #d91a47;

  
  --color-line-brand: #06c755;

  
  --color-admin-focus: #417690;

  

  
  --color-text:             var(--color-text-main);
  --color-text-light:       var(--color-text-sub);
  --color-text-primary:     var(--color-text-main);
  --color-text-secondary:   var(--color-text-sub);
  --color-text-main-light:  var(--color-text-sub);
  --color-text-main-muted:  var(--color-text-muted);
  --color-text-on-primary:  var(--color-white);
  --color-text-tertiary:    var(--color-text-muted);
  --color-dark:             var(--color-text-main);

  
  --color-bg-sub:           var(--color-background);
  --color-bg-subtle:        var(--color-gray-50);
  --color-bg-gray:          var(--color-gray-100);
  --color-bg-secondary:     var(--color-background);
  --color-bg-primary:       var(--color-surface);
  --color-bg-tertiary:      var(--color-gray-200);
  --color-background-white: var(--color-surface);
  --color-background-light: var(--color-primary-light);
  --color-background-gray:  var(--color-background);
  --color-surface-alt:      var(--color-gray-50);
  --color-surface-sub:      var(--color-background);
  --color-bg-cream:         #fdf8f3;
  --color-bg-beige:         #f6f9fc;

  
  --color-accent-coral:     #ff9574;
  --color-teal:             var(--color-accent-teal);
  --color-teal-light:       #b2ebf2;
  --color-focus:            #2563eb;
  --color-secondary:        #ff6f00;
  --color-caution:          #fd7e14;

  
  --color-danger-bg:        var(--color-danger-light);
  --color-danger-text:      var(--color-danger);
  --color-info-bg:          var(--color-info-light);
  --color-info-text:        var(--color-info);
  --color-success-bg:       var(--color-success-light);
  --color-success-dark:     #1b5e20;
  --color-warning-bg:       var(--color-warning-light);
  --color-warning-text:     #e65100;
  --color-primary-bg:       var(--color-primary-light);
  --color-error-bg:         var(--color-error-light);

  
  --shadow-sm:              var(--shadow-card);
  --shadow-md:              var(--shadow-card-hover);
  --shadow-lg:              var(--shadow-xl);
  --shadow-card-sm:         var(--shadow-card);
  --shadow-card-md:         var(--shadow-card-hover);
  --shadow-card-lg:         var(--shadow-card-hover-lg);

  
  --spacing-xxs:            2px;
  --spacing-2xs:            var(--space-1);
  --spacing-2xl:            var(--space-7);
  --space-xs:               var(--space-1);
  --space-sm:               var(--space-2);
  --space-md:               var(--space-4);
  --space-lg:               var(--space-5);
  --space-xl:               var(--space-6);
  --space-2xs:              var(--space-1);
  --space-2xl:              var(--space-7);
  --space-3xl:              var(--space-8);

  
  --font-weight-semibold:   600;
  --font-size-xxxl:         var(--font-size-xxl);
  --font-size-2xs:          var(--font-size-xs);
  --font-size-xxs:          var(--font-size-xs);
  --font-sm:                var(--font-size-sm);
  --font-xs:                var(--font-size-xs);

  
  --radius-pill:            var(--radius-full);
  --rct-border:             var(--color-border);
  --border:                 var(--color-border);
  --border-color:           var(--color-border);

  
  --container-max-width:    var(--content-max-width);
  --container-xxl:          var(--content-max-width);
  --content-width-mobile:   100%;
  --content-width-tablet:   calc(var(--content-max-width) - 4rem);
  --content-width-desktop:  var(--content-max-width);
  --header-height-mobile:   60px;
  --header-mobile-height:   60px;
  --header-accent:          var(--color-primary);
  --header-accent-light:    var(--color-primary-light);

  
  --ease-default-out:       var(--ease-out);

  
  --touch-target-recommended: 48px;

  
  --z-banner:               50;
  --z-modal:                var(--z-dialog);

  
  --primary:                var(--color-primary);
  --surface:                var(--color-surface);
  --text:                   var(--color-text-main);
  --warning:                var(--color-warning);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-fast: 0.01ms;
    --motion-base: 0.01ms;
    --motion-slow: 0.01ms;
    --ease-overshoot: linear;
  }
}

:root[data-colormode="high-contrast"] {
  --color-primary: #0055cc;
  --color-primary-hover: #003d99;
  --color-primary-light: #e6f0ff;
  --color-brand-accent: #006666;
  --color-brand-accent-hover: #004d4d;
  --color-brand-accent-light: #e0f5f5;
  --color-brand-accent-dark: #004d4d;

  --color-background: #ffffff;
  --color-white: #ffffff;
  --color-surface: #f0f0f0;
  --color-surface-alpha-40: rgba(240, 240, 240, 0.95);
  --color-surface-alpha-20: rgba(240, 240, 240, 0.6);
  --color-surface-alpha-15: rgba(240, 240, 240, 0.45);
  --color-text-main: #000000;
  --color-text-sub: #1a1a1a;
  --color-text-muted: #333333;
  --color-link: #0033aa;
  --color-link-hover: #001a66;

  --color-border: #333333;
  --color-border-light: #666666;

  --color-error: #cc0000;
  --color-error-light: #ffe6e6;
  --color-success: #006600;
  --color-success-light: #e6ffe6;
  --color-warning: #996600;
  --color-warning-light: #fff5cc;

  --color-recruit-cta: #cc3300;
  --color-recruit-cta-hover: #992200;
  --color-recruit-cta-light: #ffe6d9;

  --color-overlay: rgba(0, 0, 0, 0.8);
  --color-overlay-light: hsl(0 0% 0% / 0.5);
  --color-overlay-dark: hsl(0 0% 0% / 0.7);

  
  --kiko-calm-border: #d8d6d1;
  --kiko-calm-shadow: 0 2px 10px rgba(26, 43, 63, 0.06);
  --kiko-calm-shadow-hover: 0 6px 18px rgba(26, 43, 63, 0.1);
  --kiko-calm-tint: #f3f6fa;

  --shadow-card: 0 0 0 2px var(--color-border);
  --shadow-card-hover: 0 0 0 3px var(--color-primary);
  --shadow-dialog: 0 0 0 3px var(--color-border);
  --shadow-text: none;
  --shadow-text-sm: none;

  color-scheme: light;
}

@custom-media --bp-sm (width >= 600px);
@custom-media --bp-md (width >= 768px);
@custom-media --bp-lg (width >= 1024px);
@custom-media --bp-xl (width >= 1280px);
