@charset "UTF-8";

@layer reset, base, layout, component, utility;

/* ==========================================================================
   Shared foundation
   全画面で最初に読み込む、ブランド共通の基盤です。
   ========================================================================== */

@layer base {
:root {
  /* base */
  --mw: 1920px;
  --bw: 1400;
  --color-ink: #1d221c;
  --color-muted: #697066;
  --color-primary: #42b84d;
  --color-primary-deep: #14833b;
  --color-primary-soft: #edf5e6;
  --color-bg: #fbfaf7;
  --color-white: #fff;
  --color-black: #0d0c0c;
  --color-border: #dfe3dc;
  --color-border-light: #e5e7eb;
  --color-danger: #a23b35;
  --color-danger-soft: #f9eceb;
  --color-focus: #96c75d;
  --color-gold: #9a8245;
  --color-blue: #283f6d;

  --font-ja: "Noto Sans JP", sans-serif;
  --font-en: "General Sans", sans-serif;
  --font-num: "Lato", sans-serif;


  /* 既存CMSパーツとの互換トークン */
  --color-base: var(--color-ink);
  --color-gray: var(--color-muted);
  --color-main: var(--color-primary-deep);
  --color-accent: var(--color-primary-deep);
  --brand-gold: var(--color-gold);
  --brand-gold-soft: #f4f0e3;
  --brand-font-en: var(--font-en);
  --font-ja-sans: var(--font-ja);
  --font-size-xs: 1.2rem;
  --font-size-sm: 1.3rem;
  --font-size-base: 1.5rem;
  --font-size-md: 1.6rem;
  --font-size-lg: 1.8rem;
  --font-size-xl: 2rem;
  --font-size-2xl: 2.4rem;
  --font-size-3xl: 3.2rem;
  --font-size-4xl: 4rem;
  --space-sm: clamp(1rem, 2vw, 1.6rem);
  --space-md: clamp(20px, calc(35 * var(--mw) / var(--bw)), 3.5rem);
  --space-lg: clamp(3.5rem, 6vw, 6.4rem);
  --space-xl: clamp(5rem, 8vw, 9.6rem);
  --radius-full: 999px;

  --radius-xs: 0.4rem;
  --radius-sm: 0.6rem;
  --radius-md: 0.8rem;
  --radius-lg: 1.2rem;
  --shadow-sm: 0 1px 2px rgba(12, 12, 12, 0.06);
  --shadow-md: 0 8px 24px rgba(12, 12, 12, 0.08);
  --transition-fast: 120ms ease;
  --transition-base: 180ms ease;

  --width-container: 1400px;
  --width-container-sm: 1200px;
  --header-height: 80px;
  --header-height-sp: 64px;
}

/* General Sans */
@font-face {
  font-family: "General Sans";
  src:
    url("../fonts/GeneralSans-Variable.woff2") format("woff2"),
    url("../fonts/GeneralSans-Variable.woff") format("woff");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
}


@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon.eot?qqj2y");
  src:
    url("../fonts/icomoon.eot?qqj2y#iefix") format("embedded-opentype"),
    url("../fonts/icomoon.ttf?qqj2y") format("truetype"),
    url("../fonts/icomoon.woff?qqj2y") format("woff"),
    url("../fonts/icomoon.svg?qqj2y#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
  font-family: "icomoon" !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  line-height: 1;
  text-transform: none;
  speak: never;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-rednote:before {
  content: "\e938";
}
.icon-line:before {
  content: "\e937";
}
.icon-wechat:before {
  content: "\e934";
}
.icon-inbox::before { content: "\e93f"; }
.icon-info::before { content: "\e93e"; }
.icon-ingot2::before { content: "\e93d"; }
.icon-ingot::before { content: "\e93c"; }
.icon-settings::before { content: "\e93b"; }
.icon-calendar-dots::before { content: "\e93a"; }
.icon-check::before { content: "\e939"; }
.icon-warning-circle::before { content: "\e92d"; }
.icon-check-circle::before { content: "\e92c"; }
.icon-trash-simple::before { content: "\e92b"; }
.icon-file-pdf::before { content: "\e92a"; }
.icon-magnifying-glass::before { content: "\e929"; }
.icon-crown-simple-fill::before { content: "\e928"; }
.icon-crown-simple::before { content: "\e927"; }
.icon-check-circle-fill::before { content: "\e926"; }
.icon-line:before { content: "\e937"; }
.icon-printer::before { content: "\e925"; }
.icon-arrow-clockwise::before { content: "\e924"; }
.icon-currency-jpy::before { content: "\e923"; }
.icon-caret-right::before { content: "\e922"; }
.icon-caret-left::before { content: "\e921"; }
.icon-magnifying-glass-plus::before { content: "\e920"; }
.icon-heart-fill::before { content: "\e91f"; }
.icon-clock::before { content: "\e91e"; }
.icon-squares-four::before { content: "\e91d"; }
.icon-star::before { content: "\e91c"; }
.icon-note-pencil::before { content: "\e91b"; }
.icon-laptop::before { content: "\e91a"; }
.icon-chats-circle::before { content: "\e919"; }
.icon-money::before { content: "\e918"; }
.icon-package::before { content: "\e917"; }
.icon-caret-down::before { content: "\e916"; }
.icon-eye-slash::before { content: "\e915"; }
.icon-eye::before { content: "\e914"; }
.icon-upload-simple::before { content: "\e913"; }
.icon-lock::before { content: "\e912"; }
.icon-user::before { content: "\e911"; }
.icon-list::before { content: "\e910"; }
.icon-tag::before { content: "\e90f"; }
.icon-receipt::before { content: "\e90e"; }
.icon-list-dashes::before { content: "\e90d"; }
.icon-trend-up::before { content: "\e90c"; }
.icon-truck::before { content: "\e90b"; }
.icon-gavel::before { content: "\e90a"; }
.icon-heart::before { content: "\e909"; }
.icon-shopping-bag::before { content: "\e908"; }
.icon-handshake::before { content: "\e907"; }
.icon-chat-dots::before { content: "\e906"; }
.icon-envelope-simple::before { content: "\e905"; }
.icon-sign-out::before { content: "\e904"; }
.icon-user-gear::before { content: "\e903"; }
.icon-bell::before { content: "\e902"; }
.icon-storefront::before { content: "\e901"; }
.icon-globe-hemisphere-west::before { content: "\e900"; }
}

@layer reset {
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  font-size: 62.5%;
  background: var(--color-bg);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

ul[role="list"],
ol[role="list"],
.m-nav-list,
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

em{
font-style:normal;
}

em.unit{
font-size:0.7em;
}
body {
  min-width: 320px;
  min-height: 100vh;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-ja);
  font-size: 1.5rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
svg {
  display: block;
  max-width: 100%;
}

button,
input,
select,
textarea {
  margin: 0;
  font: inherit;
}

button,
select {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

[hidden] {
  display: none !important;
}

/*
:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}
*/

::selection {
  background: var(--color-primary-soft);
  color: var(--color-ink);
}
}

@layer utility {
.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
}

@layer component {
.m-link-text {
  color: var(--color-primary-deep);
  font-size: 1.2rem;
  text-decoration: underline;
  text-decoration-color: rgba(71, 117, 45, 0.35);
  text-underline-offset: 4px;
}

.m-link-text:hover {
  text-decoration-color: currentColor;
}

.m-empty__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #777;
  font-weight: 300;
  gap: 1rem;
  min-height: 40vh;
  width: 100%;
  font-size:1.6rem;
  text-align: center;
}

.m-empty__wrap p{
font-weight:bold;
}
.m-empty__wrap i {
  font-size: 3.5rem;
}
.m-empty__wrap .m-btn {
  margin-top: 2rem;
  max-width: fit-content;
}
}
