/* OYKOT — Color tokens
   Brand green primary. Tuned for high legibility — local / rural users
   including older residents. Strong contrast, clear borders.
   Paint UI with the semantic aliases at the bottom. */

:root {
  /* ---- Warm neutral ramp (Sand / Sumi) ---------------------------- */
  --oy-sand-50:  #FAF7F3;   /* washi / app background        */
  --oy-sand-100: #F4EFE9;   /* subtle surface                */
  --oy-sand-200: #E9E1D8;   /* light fills                   */
  --oy-sand-300: #D5C9BC;   /* hairline borders              */
  --oy-sand-400: #AE9F90;   /* strong borders / dividers     */
  --oy-sand-500: #837567;   /* muted icons                   */
  --oy-sand-600: #5F554D;   /* subtle text                   */
  --oy-sand-700: #443B35;   /* muted text                    */
  --oy-sand-800: #2E2823;   /* body text                     */
  --oy-sand-900: #1C1815;   /* sumi ink — headings/strongest */

  /* ---- Brand green (primary / 地域・自然) ------------------------- */
  --oy-brand-50:  #f4faec;
  --oy-brand-100: #eaf4dc;
  --oy-brand-200: #d2e9b8;
  --oy-brand-300: #a4d77c;
  --oy-brand-400: #74bb45;
  --oy-brand-500: #4a9e12;   /* brand mark / accents      */
  --oy-brand-600: #388600;   /* solid actions (AA on #fff)*/
  --oy-brand-700: #2c6900;   /* hover / pressed           */
  --oy-brand-800: #224f00;
  --oy-brand-900: #163600;

  /* ---- Product accents (each app a clear, distinct hue) ----------
     base = solid/dot · soft = tint fill · strong = hover & text-on-soft (AA) */
  --oy-amber:   #B97309;   /* 多言語コンテンツ (content)        */
  --oy-amber-soft:   #F7EBCE;
  --oy-amber-strong: #8A5606;
  --oy-rose:    #B43D34;   /* 電子チケット・周遊 (passes)       */
  --oy-rose-soft:   #F6DED9;
  --oy-rose-strong: #8E2A22;
  --oy-sage:    #167C5A;   /* AI観光案内 (assistant) — teal-green */
  --oy-sage-soft:   #D7EDE4;
  --oy-sage-strong: #0F5C42;
  --oy-clay:    #9C5A22;   /* data / reports                   */
  --oy-clay-soft:   #F1E2D2;
  --oy-clay-strong: #774417;

  /* ---- Semantic status (strong, high-contrast) ------------------
     *-text = AA-on-*-soft foreground, paint labels/badges with these */
  --oy-success:      #2F7D3C;
  --oy-success-soft: #DFEFE0;
  --oy-success-text: #2F6B3C;
  --oy-warning:      #B5760A;
  --oy-warning-soft: #FAEDCD;
  --oy-warning-text: #8A5B0E;
  --oy-danger:       #B5301F;
  --oy-danger-soft:  #F8DCD7;
  --oy-danger-text:  #8E2A1F;
  --oy-danger-strong:#93271A;
  --oy-info:         #1F5E94;
  --oy-info-soft:    #DEEAF4;
  --oy-info-text:    #2E5276;

  /* ---- Partner CATEGORY palette (business type of a listing/partner) --
     A named layer so 区分 colors live in ONE place (not per-screen CAT maps).
     Each: base = solid/dot · soft = tint background · text = AA-on-soft label.
     lodging宿泊 · experience体験 · transport交通 · sightseeing観光・周遊 · food食 */
  --cat-lodging:      #1F5E94;  --cat-lodging-soft:     #DEEAF4;  --cat-lodging-text:     #235076;
  --cat-experience:   #167C5A;  --cat-experience-soft:  #D7EDE4;  --cat-experience-text:  #0F5C42;
  --cat-transport:    #9C5A22;  --cat-transport-soft:   #F1E2D2;  --cat-transport-text:   #774417;
  --cat-sightseeing:  #B43D34;  --cat-sightseeing-soft: #F6DED9;  --cat-sightseeing-text: #8E2A22;
  --cat-food:         #B97309;  --cat-food-soft:        #F7EBCE;  --cat-food-text:        #8A5606;

  /* ---- Pure ---------------------------------------------------- */
  --oy-white: #FFFFFF;
  --oy-black: #1A1613;

  /* =================================================================
     SEMANTIC ALIASES — paint with these
     ================================================================= */

  /* Surfaces */
  --surface-app:        var(--oy-sand-50);
  --surface-card:       var(--oy-white);
  --surface-subtle:     var(--oy-sand-100);
  --surface-sunken:     var(--oy-sand-100);
  --surface-raised:     var(--oy-white);
  --surface-selected:   var(--oy-brand-50);
  --surface-inverse:    var(--oy-sand-900);
  --surface-brand:      var(--oy-brand-600);
  --surface-brand-soft: var(--oy-brand-50);

  /* Text — darker across the board for legibility */
  --text-strong:    var(--oy-sand-900);   /* primary  */
  --text-primary:   var(--oy-sand-900);
  --text-body:      var(--oy-sand-800);
  --text-secondary: var(--oy-sand-700);
  --text-muted:     var(--oy-sand-700);
  --text-subtle:    var(--oy-sand-600);
  --text-disabled:  var(--oy-sand-400);
  --text-on-brand:  var(--oy-white);
  --text-on-inverse:var(--oy-sand-50);
  --text-brand:     var(--oy-brand-700);
  --text-link:      var(--oy-brand-700);

  /* Borders — stronger, clearer separation */
  --border-subtle:  var(--oy-sand-300);
  --border-default: var(--oy-sand-400);
  --border-strong:  var(--oy-sand-500);
  --border-brand:   var(--oy-brand-600);
  --border-focus:   var(--oy-brand-600);

  /* Interactive (primary action) */
  --action-bg:        var(--oy-brand-600);
  --action-bg-hover:  var(--oy-brand-700);
  --action-bg-active: var(--oy-brand-800);
  --action-fg:        var(--oy-white);

  /* Focus ring — thick & obvious */
  --focus-ring: 0 0 0 3px rgba(74, 158, 18, 0.35);
}
