@charset "utf-8";

/* YakuHanJP 約物半角フォント（通常版）
 * subset 版（`_s`）は括弧類のみで句読点（、。）が対象外なため通常版を使う。
 * yakuhanjp@4.1.1 ではファミリーごとにCSSが分かれているので両方 import する:
 * - YakuHanJP = Noto Sans JP ベース → --ff-sans の先頭に使う
 * - YakuHanMP = Noto Serif JP ベース → --ff-base の先頭に使う */
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.1.1/dist/css/yakuhanjp.css");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.1.1/dist/css/yakuhanmp.css");

/* #region MARK:CSS変数 */
:root {
  color-scheme: light;
  --c-primary: #997700;
  --c-primary-54: color-mix(in srgb, var(--c-primary) 54%, transparent);
  --c-primary-38: color-mix(in srgb, var(--c-primary) 38%, transparent);
  --c-text: #231815;
  --c-primary-10: color-mix(in srgb, var(--c-primary) 10%, transparent);
  --c-secondary: #d1a600;
  --c-bg-input: #faf6ec;
  --c-bg-input-hover: #f4ecda;
  /* 約物半角フォントを各ファミリー先頭に差し込む（句読点込みの通常版）。
   * セリフ（明朝）: YakuHanMP → Noto Serif JP → OSごとの明朝
   * ゴシック: YakuHanJP → system sans */
  --ff-base: "YakuHanMP", "Noto Serif JP", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  --ff-sans: "YakuHanJP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  --ff--en: "Cinzel", "Times New Roman", serif;
  --fw-normal: 400;
  --fw-bold: 600;
  --radius: 0;

  /* レスポンシブサイズ */
  --base-width: 640;
  --responsive-size: min(calc(var(--local-size) / var(--base-width) * 100vw), calc(var(--local-size) * 1px));
}

@view-transition {
  navigation: auto;
}
/* #endregion */

/* #region MARK:リセット・ベース */
* {
  word-break: break-all;
  min-width: 0;
}

html {
  font-size: min(2.326vw, 10px);
  overscroll-behavior: none;
  word-break: break-all;
  scroll-padding: 5.4rem 0 5.4rem;
  scrollbar-gutter: stable;
}

body {
  font-size: 1.4rem;
  color: var(--c-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background: hsla(0, 0%, 100%, 1);
  font-family: var(--ff-base);
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  font-weight: var(--fw-normal);
  line-height: 1.75;
  letter-spacing: 0.05em;
  overflow-y: auto;
}

html,
body {
  overflow-x: hidden;
}

body,
body * {
  -webkit-overflow-scrolling: touch;
}
/* #endregion */

/* #region MARK:HTMLタグ上書き */
a {
  color: var(--c-primary);
}

a[class] {
  text-decoration: none;
}

:where(a:active),
:where(a:focus),
:where(a:hover) {
  color: var(--c-text);
}

@keyframes brightnessAnimation {
  0% { filter: brightness(1.0); }
  38.2% { filter: brightness(1.2); }
  100% { filter: brightness(1.0); }
}

a:hover {
  animation: brightnessAnimation 0.66s forwards;
}

button {
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
}

img {
  max-width: 100%;
  display: block;
  height: auto;
  -ms-interpolation-mode: bicubic;
  shape-margin: 1em;
  font-style: italic;
  object-fit: cover;
  background-repeat: no-repeat;
  vertical-align: middle;
}

picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

hr {
  border-top: 1px solid hsla(0, 0%, 80%, 1.00);
  margin-bottom: 2em;
  margin-top: 2em;
}

label {
  display: inline-block;
  font-weight: var(--fw-normal);
  margin-bottom: 0;
  max-width: 100%;
}

dl {
  margin: 0;
}

figure {
  display: block;
  margin: 0;
  padding: 0;
}

p {
  margin: 0;
  word-wrap: break-word;
}

.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
  font-size: 1em;
  font-weight: var(--fw-bold);
  margin: 0;
  padding: 0;
}

td,
th {
  word-break: break-all;
}

ol, ol > li,
ul, ul > li {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* #endregion */

/* #region MARK:汎用ユーティリティ */
.container {
  width: 100%;
  max-width: 120rem;
  margin-inline: auto;
  padding-inline: 1.6rem;
  container-type: inline-size;
}

.hidden-xs {
  display: none;
}

.visible-xs-inline-block {
  display: inline-block;
}

.text-underline {
  text-decoration: underline;
}

.text-align-center {
  text-align: center;
}

.table-fixed {
  table-layout: fixed;
}

.table-nowrap th {
  white-space: nowrap;
}

.pos-rel {
  position: relative;
}

.pos-abs {
  position: absolute;
}

.fz-09 {
  font-size: 0.9em !important;
}

.gsap-fadein-up {
  opacity: 0;
}

@keyframes appearContent {
  0% { opacity: 0; transform: translate(0, -1rem); }
  100% { opacity: 1; transform: translate(0, 0); }
}

@keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
/* #endregion */

/* #region MARK:PC用1025px以上 */
@media (min-width: 1025px) {

  html {
    font-size: 62.5%;
    scroll-padding: 9.9rem 0 0;
  }

  .hidden-sm {
    display: none !important;
  }

  .hidden-xs {
    display: block !important;
  }

  .spOnly {
    display: none;
  }

  .visible-xs-inline-block {
    display: none !important;
  }

  .container {
    padding-inline: 3.2rem;
  }
}
/* #endregion */

/* #region MARK:印刷用 */
@media print {
  @page {
    size: 210mm 297mm;
  }

  body {
    font-size: 12pt;
  }

  a[href]:after {
    content: "" !important;
  }

  abbr[title]:after {
    content: "" !important;
  }
}
/* #endregion */
