@charset "UTF-8";
/* 基本設定 */
/*!
global > content-width
------------------------------
*/
:root {
  --width-content-s: 1100px;
  --width-content-m: 1200px;
  --width-content-l: 1400px;
}

/*!
global > color
------------------------------
*/
:root {
  --color-primary: #008F4B;
  --color-second: #559E37;
  --color-third: #9FAD00;
  --color-button: #01A758;
  --color-bg: #E9F7E9;
  --color-bg-light: #FFFFF3;
  --color-bg-extra-light: #F5F5F5;
  --color-border: #dddddd;
  --color-font-base: #333333;
  --color-font-light: #888888;
  --color-white: #ffffff;
  --color-black: #333333;
  --color-gray: #eeeeee;
  --color-red: #FF383C;
  --color-yellow: #FFDB12;
  --color-link: #2367cc;
  --ui-bg: #E9F7E9;
  --ui-bg-hover: #DFF2E7;
  --ui-border: #CFE9D8;
  --ui-news-border: #cfcfcf;
  --accent: #01A758;
  --text: #222;
  --top-tab-01: #008f4bd9;
  --top-tab-02: #559e37d4;
  --top-tab-03: #9fad00a3;
}

/*!
global > font
------------------------------
*/
:root {
  --font-family-base: "Roboto", "Noto Sans JP", system-ui, -apple-system, "Segoe UI","Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo",sans-serif;
  --font-family-en:"futura-pt", sans-serif;
}

/*!
global > z-index
------------------------------
*/
:root {
  --z-index-modal: 100;
  --z-index-header: 30;
  --z-index-menu: 10;
  --z-index-default: 1;
  --z-index-negative: -1;
}

/*!
foundation > reset
------------------------------
*/
html {
  color: #000;
  background: #fff;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

fieldset,
img {
  border: 0;
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  font-weight: inherit;
}

ol,
ul {
  list-style: none;
}

caption,
th {
  text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: inherit;
}

q:before,
q:after {
  content: "";
}

abbr,
acronym {
  border: 0;
  font-variant: normal;
}

input,
textarea,
select,
button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  font-size: 100%;
  border-radius: 0;
  border: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background-color: inherit;
}

textarea {
  resize: vertical;
  display: block;
}

select {
  cursor: pointer;
}

button {
  padding: 0;
  cursor: pointer;
}

legend {
  color: inherit;
}

tbody {
  -webkit-text-size-adjust: 100%;
}

main {
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

img,
svg {
  width: 100%;
  height: auto;
  display: block;
}

dialog {
  max-width: 100%;
  max-height: 100%;
  padding: 0;
  color: inherit;
  border: none;
  margin: 0;
  padding: 0;
}

summary {
  display: block;
}

summary::-webkit-details-marker {
  display: none;
}

iframe {
  vertical-align: bottom;
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  box-sizing: border-box;
}

*::before,
*::after {
  box-sizing: border-box;
}

/*!
foundation > base
------------------------------
*/
:root {
  /* 文字サイズ倍率（ボタンで切替、fontSize.jsで 1, 1.06, ... のように変更） */
  --text-scale: 1;
}

html {
  /* 1rem = 1px を基準にし、拡大ボタン時だけ倍率を掛ける */
  font-size: calc(1px * var(--text-scale));
  scroll-behavior: smooth;
}

body {
  line-height: 1.7;
  font-size: 16rem;
  font-family: var(--font-family-base);
  color: var(--color-font-base);
  font-weight: 400;
}
@media screen and (min-width: 1025px) {
  body {
    font-size: 18rem;
  }
}

/*!
utility > utility
------------------------------
*/
.u-pc {
  display: none;
}

@media screen and (min-width: 1025px) {
  .u-pc {
    display: block;
  }
}
.u-sp {
  display: block;
}

@media screen and (min-width: 1025px) {
  .u-sp {
    display: none;
  }
}
.u-br-pc {
  display: inline;
}
@media screen and (min-width: 1025px) {
  .u-br-pc {
    display: block;
  }
}

.u-visually-hidden {
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  border: 0 !important;
  padding: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  margin: -1px !important;
}

.u-ptb {
  padding-block: 64rem !important;
}
@media screen and (min-width: 1025px) {
  .u-ptb {
    padding-block: 96rem !important;
  }
}

@media screen and (min-width: 1025px) {
  .u-ptb25 {
    padding-block: 25rem !important;
  }
}

.u-mt8 {
  margin-top: 8rem;
}

.u-mt30 {
  margin-top: 30rem;
}

.u-mt56 {
  margin-top: 56rem;
}

.u-mb8 {
  margin-bottom: 8rem;
}

.u-fb {
  font-weight: bold;
}

.u-fw500 {
  font-weight: 500;
}

.u-fw600 {
  font-weight: 600;
}

.u-fw700 {
  font-weight: 700;
}

.u-fs12 {
  font-size: 12rem;
}

.u-fs14 {
  font-size: 14rem;
}

.u-fs16 {
  font-size: 16rem;
}

.u-fs18 {
  font-size: 18rem;
}

.u-fs20 {
  font-size: 20rem;
}

.u-fs21 {
  font-size: 21rem;
}

.u-fs22 {
  font-size: 22rem;
}

.u-fs23 {
  font-size: 23rem;
}

.u-fs24 {
  font-size: 24rem;
}

.u-fs26 {
  font-size: 26rem;
}

.u-fs28 {
  font-size: 28rem;
}

.u-fs30 {
  font-size: 30rem;
}

.va-4 {
  vertical-align: -4%;
}

@media screen and (max-width: 1024px) {
  .line2half {
    line-height: 2.5 !important;
  }
}
.bold-red {
  color: var(--color-red);
  font-weight: bold;
}

.bold-primary {
  color: var(--color-primary);
  font-weight: 500;
}

@media screen and (min-width: 1025px) and (any-hover: hover) {
  .u-text-hover:hover {
    opacity: 0.8;
  }
}

.u-text-hover--green {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-size: 0 1rem;
  background-repeat: no-repeat;
  transition: background-size 0.3s;
}
@media screen and (min-width: 1025px) and (any-hover: hover) {
  .u-text-hover--green:hover {
    background-size: 100% 1.5rem;
    color: var(--color-primary);
    font-weight: 500;
  }
}

@media screen and (min-width: 1025px) and (any-hover: hover) {
  .u-text-hover--yellow:hover {
    color: #ffdb6e;
  }
}

.halt {
  font-feature-settings: "halt" !important;
}

@media screen and (min-width: 1025px) {
  .u-fontSize {
    display: inline-flex;
    align-items: center;
    gap: clamp(4px, 0.6vw, 8px);
    padding: clamp(4px, 0.6vw, 6px) clamp(6px, 0.8vw, 8px);
    border: 1px solid var(--ui-border);
    background: var(--ui-bg);
    border-radius: 6px;
  }
  .u-fontSize .u-fontSize__label {
    font-size: clamp(12px, 0.95vw, 14px);
    font-weight: 500;
    color: var(--text);
    line-height: 1;
    white-space: nowrap;
  }
  .u-fontSize .u-fontSize__btn {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: 1px solid var(--ui-border);
    background: #fff;
    color: var(--text);
    border-radius: 6px;
    padding: clamp(4px, 0.55vw, 6px) clamp(8px, 0.75vw, 10px);
    font-size: clamp(12px, 0.95vw, 14px);
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .u-fontSize .u-fontSize__btn:hover {
    background: var(--ui-bg-hover);
  }
  .u-fontSize .u-fontSize__btn[aria-pressed=true] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
  }
}
.u-searchbox {
  /* SPでもヘッダー内で横並びにできるように */
  position: relative;
  align-items: center;
}
.u-searchbox .u-searchbox__btn {
  background: var(--ui-bg);
  padding: 5px 10px;
  border-radius: 5px;
  height: 50px;
}
.u-searchbox .u-searchbox__btn .u-searchbox__icon {
  width: 25px;
  height: 25px;
  fill: currentColor;
}
.u-searchbox .u-searchbox__btn .u-searchbox__text {
  font-size: 10rem;
  position: relative;
  top: -9rem;
}
.u-searchbox {
  /* パネル：SPはボタンの下に表示 */
}
.u-searchbox .u-searchbox__panel {
  position: absolute;
  top: calc(100% + 8rem);
  right: 0;
  left: auto;
  transform: none;
  width: min(340rem, 92vw);
  padding: 12rem;
  background: #fff;
  border: 1px solid #d6d6d6;
  border-radius: 10rem;
  box-shadow: 0 12rem 30rem rgba(0, 0, 0, 0.12);
  z-index: 1000;
}

.u-searchbox .gsc-search-button-v2 {
  border-radius: 6px !important;
  padding: 9px 12px !important;
  background: var(--accent) !important;
  border-color: var(--accent) !important;
}

.gsc-input-box {
  margin-right: 8px;
  padding: 0;
  border-radius: 8px;
}

/* CSEの虫眼鏡SVGがsvgリセット（width:100%, height:auto）で崩れないよう固定 */
.u-searchbox .gsc-search-button-v2 svg {
  width: 18px !important;
  height: 18px !important;
  fill: #fff !important;
  display: block;
}

@media screen and (min-width: 1025px) {
  .u-searchbox {
    position: relative;
    display: inline-flex;
    align-items: center;
  }
  .u-searchbox .u-searchbox__btn {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    display: inline-flex;
    align-items: center;
    gap: clamp(6px, 0.7vw, 8px);
    height: 40px;
    padding: 0 clamp(10px, 1vw, 14px);
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease;
    color: var(--text);
    font-size: clamp(12px, 0.95vw, 14px);
    font-weight: 500;
    line-height: 1;
  }
  .u-searchbox .u-searchbox__btn .u-searchbox__icon {
    width: 18px;
    height: 18px;
    fill: currentColor;
  }
  .u-searchbox .u-searchbox__btn .u-searchbox__text {
    font-size: 12rem;
    top: 0;
  }
  .u-searchbox .u-searchbox__btn:hover {
    background: var(--ui-bg-hover);
  }
  .u-searchbox .u-searchbox__panel {
    /* PC：ボタンの下に表示（既存挙動） */
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    transform: none;
    width: 420px;
    padding: 12rem;
    background: #fff;
    border: 1px solid #d6d6d6;
    border-radius: 10rem;
    box-shadow: 0 12rem 30rem rgba(0, 0, 0, 0.12);
    z-index: 1000;
  }
  .u-fontSize__btn:focus-visible,
  .u-searchbox__btn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }
  .u-searchbox .gsc-control-cse,
  .gcse-searchresults-only .gsc-control-cse {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  .u-searchbox .gsc-input-box {
    border-radius: 8px !important;
    border: 1px solid #d6d6d6 !important;
  }
  .u-searchbox input.gsc-input {
    font-size: 14px !important;
    padding: 10px 0 !important;
  }
  .u-searchbox .gsc-search-button-v2 {
    border-radius: 6px !important;
    padding: 9px 12px !important;
    background: var(--accent) !important;
    border-color: var(--accent) !important;
  }
  .u-searchbox .gsc-search-button-v2 svg {
    fill: #fff !important;
    width: 18px;
    height: 18px;
  }
  .gsib_a {
    padding: 0px 9px !important;
  }
  .u-searchbox .u-searchbox__panel {
    padding: 8px 8px 6px 8px;
  }
  .u-searchbox input.gsc-input {
    background-image: none !important;
    /* CSEのウォーターマークを消す */
  }
  .gssb_a img {
    display: none;
  }
}
/* SP：弁当メニュー内のサイト内検索（常時表示・添付デザイン寄せ） */
@media screen and (max-width: 1025px) {
  /*
    SP：ヘッダー右上の検索（トグル）
    パネルが「右側に並ぶ」挙動にならないよう、縦積みを土台にして
    表示時はボタンの下に出るようにします（PCと同様）。
  */
  .u-searchbox--toggle {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    position: relative;
  }
  .u-searchbox--toggle .u-searchbox__panel {
    position: absolute;
    top: calc(100% + 8rem);
    right: 0;
    left: auto;
    transform: none;
    width: min(340rem, 92vw);
  }
  .fullscreen-menu__search {
    margin-top: 20rem;
  }
  .u-searchbox--menu {
    position: relative;
  }
  /* CSEの外枠リセット */
  .u-searchbox--menu .gsc-control-cse,
  .u-searchbox--menu .gsc-search-box,
  .u-searchbox--menu form.gsc-search-box {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  /* 右側のGoogle検索ボタンを消す（入力のみの見た目にする） */
  .u-searchbox--menu .gsc-search-button,
  .u-searchbox--menu button.gsc-search-button {
    display: none !important;
  }
  /* 入力枠：淡いグリーンの角丸ボックス */
  .u-searchbox--menu .gsc-input-box {
    height: 45rem;
    border: 0 !important;
    border-radius: 12rem;
    background: #eaf6ee !important;
    box-shadow: none !important;
    margin-right: 0;
    display: flex !important;
    align-items: center !important;
    /* 左の虫眼鏡分 */
    padding-left: 52rem !important;
    padding-right: 16rem !important;
    position: relative;
  }
  /* 左の虫眼鏡：CSS疑似要素で描画（崩れにくい） */
  .u-searchbox--menu .gsc-input-box::before {
    content: "";
    position: absolute;
    left: 18rem;
    top: 50%;
    transform: translateY(-50%);
    width: 24rem;
    height: 24rem;
    /* SVGを背景として埋め込み（黒） */
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23111' d='M10 2a8 8 0 1 0 4.9 14.3l4.4 4.4a1 1 0 0 0 1.4-1.4l-4.4-4.4A8 8 0 0 0 10 2Zm0 2a6 6 0 1 1 0 12a6 6 0 0 1 0-12Z'/%3E%3C/svg%3E");
  }
  /* CSEはテーブル構造なので余白調整 */
  .u-searchbox--menu .gsib_a {
    padding: 0 !important;
  }
  /* 入力本体 */
  .u-searchbox--menu input.gsc-input {
    background: transparent !important;
    background-image: none !important;
    /* CSEのウォーターマーク対策 */
    border: 0 !important;
    outline: none !important;
    font-size: 20rem !important;
    line-height: 1 !important;
    padding: 0 !important;
    /* .gsc-input-box側で余白を持つ */
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
  }
  /* プレイスホルダー（添付デザインに合わせて「検索」表示を想定） */
  .u-searchbox--menu input.gsc-input::-moz-placeholder {
    color: #111 !important;
    opacity: 1 !important;
  }
  .u-searchbox--menu input.gsc-input::placeholder {
    color: #111 !important;
    opacity: 1 !important;
  }
  table.gsc-search-box td.gsc-input {
    padding-right: 0;
  }
  /* SP：ヘッダー検索（トグル）のパネル余白を最適化 */
  /* CSE外枠の余白・枠線をSPでもリセット（PCでは入っているがSPでは不足しがち） */
  .u-searchbox--toggle .gsc-control-searchbox-only,
  .u-searchbox--toggle .gsc-control-cse {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  .u-searchbox--toggle .gsc-search-box,
  .u-searchbox--toggle form.gsc-search-box {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  /* パネル自体の“白い余白”を調整（ここが左右広く見える主原因になりやすい） */
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* ① 背景色は残して、背景“画像”だけ消す */
  }
  .fullscreen-menu__search .gsc-input-box,
  .fullscreen-menu__search .gsib_a,
  .fullscreen-menu__search input.gsc-input,
  .u-searchbox--menu .gsc-input-box,
  .u-searchbox--menu .gsib_a,
  .u-searchbox--menu input.gsc-input {
    background-image: none !important;
  }
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* ② 左虫眼鏡の正体になりやすい疑似要素を消す */
  }
  .fullscreen-menu__search .gsc-input-box::before,
  .fullscreen-menu__search .gsc-input-box::after,
  .fullscreen-menu__search .gsib_a::before,
  .fullscreen-menu__search .gsib_a::after,
  .u-searchbox--menu .gsc-input-box::before,
  .u-searchbox--menu .gsc-input-box::after,
  .u-searchbox--menu .gsib_a::before,
  .u-searchbox--menu .gsib_a::after {
    content: none !important;
    display: none !important;
  }
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* ③ 実体SVG/IMGが差し込まれている場合だけ消す（入力内のものに限定） */
  }
  .fullscreen-menu__search .gsc-input-box > svg,
  .fullscreen-menu__search .gsc-input-box > img,
  .fullscreen-menu__search .gsib_a > svg,
  .fullscreen-menu__search .gsib_a > img,
  .u-searchbox--menu .gsc-input-box > svg,
  .u-searchbox--menu .gsc-input-box > img,
  .u-searchbox--menu .gsib_a > svg,
  .u-searchbox--menu .gsib_a > img {
    display: none !important;
  }
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* ④ テキストは左寄せ＋左余白を通常に */
  }
  .fullscreen-menu__search input.gsc-input,
  .u-searchbox--menu input.gsc-input {
    padding-left: 12px !important;
    text-align: left !important;
    text-indent: 0 !important;
  }
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* 「検索」テキストをもっと左へ */
  }
  .fullscreen-menu__search input.gsc-input,
  .u-searchbox--menu input.gsc-input {
    padding-left: 20px !important;
    margin-left: 0 !important;
    text-indent: 0 !important;
    text-align: left !important;
  }
  .fullscreen-menu__search,
  .u-searchbox--menu {
    /* inputの内側にさらにラッパ要素が余白を持つケースの保険 */
  }
  .fullscreen-menu__search .gsc-input-box,
  .fullscreen-menu__search .gsib_a,
  .u-searchbox--menu .gsc-input-box,
  .u-searchbox--menu .gsib_a {
    padding-left: 0 !important;
  }
}
/* ===== SPヘッダー検索：プレースホルダーを左寄せに ===== */
@media screen and (max-width: 1025px) {
  /* 入力文字・プレースホルダーが中央寄りになるのを抑止 */
  .u-searchbox--toggle input.gsc-input {
    text-align: left !important;
  }
  /* ついでに左の余白が広い場合の微調整（お好みで数値調整） */
  .u-searchbox--toggle .gsib_a {
    padding: 0 6px !important;
  }
}
/* ボタン列（セル）を 13% に固定 */
.gsc-control-searchbox-only table.gsc-search-box td.gsc-search-button,
.gsc-control-cse table.gsc-search-box td.gsc-search-button {
  width: 13% !important;
}

/* 念のためボタン自体も追従 */
.gsc-control-searchbox-only .gsc-search-box .gsc-search-button,
.gsc-control-cse .gsc-search-box .gsc-search-button {
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .gsc-control-searchbox-only .gsc-search-box .gsc-search-button,
  .gsc-control-cse .gsc-search-box .gsc-search-button {
    width: unset;
  }
}

/* 入力セルの左余白 */
.gsc-control-searchbox-only table.gsc-search-box td.gsc-input,
.gsc-control-cse table.gsc-search-box td.gsc-input {
  padding-left: 0 !important;
}

@media screen and (min-width: 1025px) {
  /* パネル自体の左右余白を詰める */
  .u-searchbox .u-searchbox__panel {
    padding: 6px;
    /* まずは 6px 推奨（0 でもOK） */
    /* padding-inline: 6px; でも可 */
  }
  /* CSE側の余計な内側余白・背景を念のためリセット */
  .u-searchbox .gsc-control-searchbox-only,
  .u-searchbox .gsc-search-box,
  .u-searchbox form.gsc-search-box {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  /* テーブル由来のズレ対策（保険） */
  .u-searchbox table.gsc-search-box {
    margin: 0 !important;
  }
}
@media screen and (min-width: 1025px) {
  .u-login-button {
    display: inline-block;
    font-family: "Noto Sans JP", sans-serif;
    text-decoration: none;
    color: var(--color-primary);
    border: 3px solid var(--color-primary);
    border-radius: 12px;
    background-color: #ffffff;
    box-sizing: border-box;
    position: relative;
    max-width: 332px;
    width: 100%;
    min-width: 0;
  }
  .u-login-button:hover {
    opacity: 0.9;
  }
  .u-login-button:hover .u-login-button__main {
    color: var(--color-yellow);
  }
  /* 上のピル型パーツ */
  .u-login-button__top {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #ffffff;
    color: var(--color-primary);
    font-size: clamp(11px, 0.85vw, 14px);
    padding: 0 clamp(10px, 1vw, 18px);
    white-space: nowrap;
    border-radius: 999px;
    font-weight: 700;
    border: 2px solid var(--color-primary);
  }
  /* メイン部分 */
  .u-login-button__main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: clamp(16px, 1.7vw, 22px);
    font-weight: 700;
    padding: clamp(10px, 1vw, 12px) clamp(6px, 0.8vw, 8px) 0 clamp(10px, 1.2vw, 16px);
    background-color: var(--color-primary);
    color: #ffffff;
    border-bottom: 1px solid var(--color-primary);
    border-radius: 6rem 6rem 0 0;
  }
  /* 下の説明文 */
  .u-login-button__note {
    display: block;
    font-size: clamp(11px, 1vw, 14px);
    text-align: center;
    /* padding: 6px 8px 8px; */
    color: var(--color-primary);
    font-weight: 700;
  }
  /* SVG アイコンのみ表示 */
  .u-login-button__icon {
    width: clamp(26px, 2.2vw, 39px);
    height: clamp(26px, 2.2vw, 39px);
    flex-shrink: 0;
    /* SVGをマスク化（=塗り色は background-color で制御） */
    -webkit-mask: url("../images/icon/material-symbols_login-rounded.svg") center/contain no-repeat;
    mask: url("../images/icon/material-symbols_login-rounded.svg") center/contain no-repeat;
    /* 通常時：黄色 */
    background-color: var(--color-yellow);
  }
  /* hover時：白（ボタン全体hoverでも反応させる） */
  .u-login-button:hover .u-login-button__icon,
  .u-login-button__main:hover .u-login-button__icon {
    background-color: var(--color-white);
  }
  /* :before も不要 */
  .u-login-button__icon::before {
    content: none;
  }
}
.menu-icon-wrapper {
  position: fixed;
  top: 14px;
  right: 0px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 24px;
  cursor: pointer;
  z-index: 10000;
  /* 最前面 */
  background: rgba(255, 255, 255, 0.85);
  border-radius: 6px;
  padding: 8px 0 0 0;
  backdrop-filter: blur(5px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .menu-icon-wrapper {
    padding: 8px 0 0 0;
  }
}

.dli-apps {
  display: inline-block;
  color: var(--color-primary);
  position: relative;
  width: 1em;
  height: 1em;
  transition: transform 0.4s ease, color 0.3s ease;
  transform: scale(1.2);
}

.dli-apps:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0.24em;
  height: 0.24em;
  background: currentColor;
  border-radius: 0.05em;
  box-shadow: 0.38em 0 0 0 currentColor, 0.76em 0 0 0 currentColor, 0 0.38em 0 0 currentColor, 0.38em 0.38em 0 0 currentColor, 0.76em 0.38em 0 0 currentColor, 0 0.76em 0 0 currentColor, 0.38em 0.76em 0 0 currentColor, 0.76em 0.76em 0 0 currentColor;
}

.menu-label {
  margin-top: 0.3em;
  font-size: 0.4em;
  color: #333;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.dli-apps.animated {
  transform: rotate(180deg) scale(1.2);
  color: #F7BA00;
}

/* ------------------------------
  Bento icon hover / open motion（回転版）
------------------------------ */
.menu-icon-wrapper#menuToggle {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.18s ease, opacity 0.18s ease;
  /* hover / focus は #72ae59 */
}
.menu-icon-wrapper#menuToggle:is(:hover, :focus-visible) {
  transform: translateY(-1px);
}
.menu-icon-wrapper#menuToggle:is(:hover, :focus-visible) #bentoIcon {
  color: #72ae59;
}
.menu-icon-wrapper#menuToggle {
  /* クリック後（開いている間）は #F7BA00 */
}
.menu-icon-wrapper#menuToggle.is-open {
  transform: translateY(-1px);
}
.menu-icon-wrapper#menuToggle.is-open #bentoIcon {
  color: #F7BA00;
}

#menuLabel {
  transition: color 0.18s ease, transform 0.22s ease, letter-spacing 0.22s ease;
}
.menu-icon-wrapper:is(:hover, .is-open) #menuLabel {
  transform: translateY(-1px);
  letter-spacing: 0.02em;
}

/* ここが肝：transform を固定せず「回転アニメ」に統一する */
#bentoIcon {
  transition: color 0.18s ease, filter 0.22s ease;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.12));
  /* hover / focus-visible で回転（PC向け） */
}
.menu-icon-wrapper:is(:hover, :focus-visible) #bentoIcon {
  animation: bento-spin 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
#bentoIcon {
  /* クリックで open した瞬間の .animated でも回転（従来仕様を維持） */
}
#bentoIcon.animated {
  animation: bento-spin 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* 回転＋ほんの少しスケール（“ちょいアニメ”） */
@keyframes bento-spin {
  0% {
    transform: rotate(0deg) scale(1.2);
  }
  100% {
    transform: rotate(360deg) scale(1.2);
  }
}
/* 動きを抑えたいユーザー向け */
@media (prefers-reduced-motion: reduce) {
  #bentoIcon,
  #bentoIcon.animated,
  .menu-icon-wrapper#menuToggle #bentoIcon {
    animation: none !important;
    transition: none !important;
  }
}
/* ------------------------------
  Bento icon hover / open motion（回転版）
------------------------------ */
/* =========================
   SP(1024px以下)：ハンバーガー
   ========================= */
@media screen and (max-width: 1024px) {
  /* SPでは回転アニメ（bento-spin）や .animated の回転を無効化して干渉を防ぐ */
  .menu-icon-wrapper:is(:hover, :focus-visible) #bentoIcon {
    animation: none !important;
  }
  .dli-apps.animated {
    transform: none !important;
  }
  /* アイコン領域（タップしやすさ＋見た目安定） */
  #bentoIcon {
    width: 1.25em;
    height: 1.05em;
    transform: none;
    /* PC側 scale を打ち消し */
  }
  /* 3本線（::before が上＋中、::after が下） */
  #bentoIcon::before,
  #bentoIcon::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 0.12em;
    /* 線の太さ */
    background: currentColor;
    border-radius: 999px;
    transform-origin: 50% 50%;
    transition: transform 0.26s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.26s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.18s ease;
    will-change: transform, box-shadow, opacity;
  }
  /* 上の線＋中の線（box-shadowで中線を作る） */
  #bentoIcon::before {
    transform: translateY(-0.34em);
    box-shadow: 0 0.4em 0 0 currentColor;
    /* 中線 */
  }
  /* 下の線 */
  #bentoIcon::after {
    transform: translateY(0.47em);
    opacity: 1;
  }
  /* 開いた状態：X にモーフ */
  .menu-icon-wrapper.is-open #bentoIcon::before {
    transform: translateY(0) rotate(45deg);
    box-shadow: none;
    /* 中線を消す */
  }
  .menu-icon-wrapper.is-open #bentoIcon::after {
    transform: translateY(0) rotate(-45deg);
  }
  .menu-label {
    margin-top: 0;
  }
}
.fullscreen-menu {
  /* 既存JSに合わせて .active で表示 */
  position: fixed;
  inset: 0;
  z-index: 9998;
  /* SP：スモーク（背景が少し見える） */
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(2px);
  /* 右端にドロワーを寄せる */
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  overflow: hidden;
  /* SPの見え幅・ドロワー最大幅（ここを調整） */
  --drawer-peek: 56px;
  --drawer-max: 800px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.fullscreen-menu.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.fullscreen-menu {
  /* PC：従来どおりの白い全画面 */
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu {
    display: block;
    background: #fff;
    backdrop-filter: none;
    --drawer-peek: 0px;
    /* 従来どおり、全画面でスクロールできるように */
    overflow: auto;
  }
}

/* トグルがメニューより前面に出るように（HTMLは触らない） */
.menu-icon-wrapper {
  position: relative;
  z-index: 10001;
}

.fullscreen-menu__inner {
  /* SP：ドロワー本体 */
  width: min(var(--drawer-max), 100vw - var(--drawer-peek));
  height: 100%;
  margin: 0;
  background: #fff;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* ヘッダーや上部要素の高さに合わせて調整してください */
  padding-top: 18rem;
  padding-bottom: 48rem;
  /* 右からスライド */
  transform: translateX(100%);
  transition: transform 0.28s ease;
}

.fullscreen-menu.active .fullscreen-menu__inner {
  transform: translateX(0);
}

/* PC：従来の全画面配置に戻す */
@media screen and (min-width: 1025px) {
  .fullscreen-menu__inner {
    width: min(1200rem, 100%);
    height: auto;
    margin-inline: auto;
    padding-top: 18rem;
    transform: none;
    transition: none;
    background: transparent;
  }
}
.fullscreen-menu__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28rem;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 48rem;
  }
}

.fullscreen-menu__section + .fullscreen-menu__section {
  margin-top: 28rem;
}

.fullscreen-menu__sectionHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12rem;
  text-decoration: none;
  padding-bottom: 7rem;
  border-bottom: 2rem solid var(--color-button);
}
.fullscreen-menu__sectionHead::after {
  content: "›";
  display: inline-block;
  font-size: 24rem;
  line-height: 1;
  color: #111;
  transform: translateY(-1rem);
}
.fullscreen-menu__sectionHead:hover {
  opacity: 0.85;
}

.fullscreen-menu__sectionTitle {
  font-size: 17rem;
  font-weight: 700;
  color: var(--color-button);
  letter-spacing: 0.02em;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__sectionTitle {
    font-size: 20rem;
  }
}

.fullscreen-menu__list,
.fullscreen-menu__sublist,
.fullscreen-menu__subsublist,
.fullscreen-menu__quickList {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 通常リスト（左カラム / 右カラム上部） */
.fullscreen-menu__list {
  margin-top: 10rem;
}
.fullscreen-menu__list > li {
  margin-top: 5rem;
}
.fullscreen-menu__list > li > a {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  text-decoration: none;
  color: #222;
  font-size: 14rem;
  line-height: 1.6;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__list > li > a {
    font-size: 16rem;
  }
}
.fullscreen-menu__list > li > a::before {
  content: "›";
  color: currentColor;
  font-weight: 400;
  transform: translateY(-1rem);
  font-size: 21rem;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__list > li > a::before {
    margin-right: 10rem;
  }
}

/* 丸アイコン付き（中央カラム主要項目 / 右下クイック） */
.fullscreen-menu__list--icon > li > a::before {
  content: none;
}

.is-group {
  margin-top: 12rem !important;
  margin-bottom: 12rem;
}

/* 中央カラム：第2階層 */
.fullscreen-menu__sublist {
  padding-left: 22rem;
}
.fullscreen-menu__sublist > li > a {
  text-decoration: none;
  color: #222;
  font-size: 14rem;
  line-height: 1.4;
  margin: 3rem;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__sublist > li > a {
    font-size: 16rem;
    line-height: inherit;
  }
}
.fullscreen-menu__sublist > li > a::before {
  content: "›";
  color: currentColor;
  font-weight: 400;
  margin-right: 10rem;
  transform: translateY(-1rem);
  display: inline-block;
  font-size: 23rem;
}
.fullscreen-menu__sublist > li > a:hover {
  color: currentColor;
  font-weight: 700;
}

/* 中央カラム：第3階層 */
.fullscreen-menu__subsublist {
  padding-left: 22rem;
}
.fullscreen-menu__subsublist > li > a {
  text-decoration: none;
  color: #222;
  font-size: 14rem;
  line-height: 1.4;
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__subsublist > li > a {
    font-size: 15rem;
    line-height: inherit;
  }
}
.fullscreen-menu__subsublist > li > a::before {
  content: "›";
  color: currentColor;
  font-weight: 400;
  margin-right: 10rem;
  transform: translateY(-1rem);
  display: inline-block;
  font-size: 23rem;
}
.fullscreen-menu__subsublist > li > a:hover {
  color: currentColor;
  font-weight: 700;
}

/* 右カラム下：クイックリンク */
.fullscreen-menu__quick {
  margin-top: 26rem;
  padding-top: 18rem;
  border-top: 1rem solid #d9d9d9;
}
.fullscreen-menu__quick .fullscreen-menu__quickList {
  display: grid;
  gap: 12rem;
}
.fullscreen-menu__quick .fullscreen-menu__quickList a {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  text-decoration: none;
  color: var(--color-primary);
  font-size: 18rem;
  font-weight: 600;
  line-height: 1.5;
}
.fullscreen-menu__quick .fullscreen-menu__quickList a:hover {
  opacity: 0.85;
}

/* メニュー内の閉じるボタン */
.fullscreen-menu_close-button {
  width: 280rem;
  margin-inline: auto;
}

.u-menuClose {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  width: 100%;
  height: 40rem;
  margin-top: 38rem;
  border-radius: 8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10rem;
  background: var(--color-button, var(--accent));
  color: #fff;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.u-menuClose:focus-visible {
  outline: 2rem solid #fff;
  outline-offset: 3rem;
}

/* ×アイコン（白） */
.u-menuClose__icon {
  position: relative;
  width: 16rem;
  height: 16rem;
  display: inline-block;
  flex: 0 0 16rem;
}

.u-menuClose__icon::before,
.u-menuClose__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18rem;
  height: 2rem;
  background: #fff;
  border-radius: 2rem;
  transform-origin: center;
}

.u-menuClose__icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.u-menuClose__icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* 左の緑丸アイコン */
.i-circle {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  min-width: 20px;
  background: var(--color-button) url(../images/icon/angle_right_white.svg) center center no-repeat;
  background-size: 7px 8px;
  border-radius: 50%;
}

/* 外部リンク（簡易） */
.i-external::after {
  content: url("../images/icon/external-link-green.svg");
  position: relative;
  top: 5rem;
  display: inline-block;
  vertical-align: middle;
}

@media (any-hover: hover) {
  .fullscreen-menu a:hover .i-external::after {
    content: url("../images/icon/external-link-white.svg");
  }
}
.fullscreen-menu a:focus-visible .i-external::after {
  content: url("../images/icon/external-link-white.svg");
}

/* =========================================
   fullscreen menu quick icons
========================================= */
.fullscreen-menu__list--icon .i-circle {
  display: inline-block;
  width: 20px;
  height: 20px;
  min-width: 20px;
  border-radius: 50%;
  background-color: var(--color-button);
  position: relative;
}

/* 矢印は “マスク” で描画（色は background-color で変える） */
.fullscreen-menu__list--icon .i-circle::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #fff;
  /* 通常は白矢印 */
  /* shorthand で崩れる環境があるので分解して指定（←左上ズレ対策） */
  -webkit-mask-image: url(../images/icon/angle_right_white.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 7px 8px;
  mask-image: url(../images/icon/angle_right_white.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 7px 8px;
}

/* hover / focus-visible（PC・キーボード） */
.fullscreen-menu__list--icon a:hover .i-circle,
.fullscreen-menu__list--icon a:focus-visible .i-circle {
  background-color: #fff;
}

.fullscreen-menu__list--icon a:hover .i-circle::after,
.fullscreen-menu__list--icon a:focus-visible .i-circle::after {
  background-color: var(--color-primary);
}

/* active（タッチ操作中も同じ見た目） */
.fullscreen-menu__list--icon a:active .i-circle {
  background-color: #fff;
}

.fullscreen-menu__list--icon a:active .i-circle::after {
  background-color: var(--color-primary);
}

/* PDF（簡易） */
/* PDF（安定版） */
.i-pdf::before {
  content: "";
  display: inline-block;
  width: 20rem;
  height: 20rem;
  background: url("../images/icon/bxs_file-pdf-green.svg") center/contain no-repeat;
  /* 位置微調整したい場合：relative/top より transform のほうが揺れに強い */
  transform: translateY(3rem);
}

@media screen and (any-hover: hover) and (pointer: fine) {
  .fullscreen-menu a:hover .i-pdf::before {
    background-image: url("../images/icon/bxs_file-pdf.svg");
  }
}
.fullscreen-menu a:focus-visible .i-pdf::before {
  background-image: url("../images/icon/bxs_file-pdf.svg");
}

#menuToggle.menu-icon-wrapper {
  position: fixed;
  /* 追従させないなら absolute に変更 */
  top: 7rem;
  right: 7rem;
  z-index: 9999;
  width: auto !important;
  flex: 0 0 auto !important;
  display: inline-flex;
}
@media screen and (min-width: 1025px) {
  #menuToggle.menu-icon-wrapper {
    top: 20rem;
    right: 13rem;
  }
}

/* 開いたメニュー内ヘッダー帯 */
.fullscreen-menu__header {
  width: min(1200rem, 100%);
  margin-inline: auto;
  padding-inline: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24rem;
}

/* ロゴ */
.fullscreen-menu__logo {
  display: inline-block;
  text-decoration: none;
}

.fullscreen-menu__logo img {
  height: auto;
  max-width: 568rem;
  /* 画面幅に合わせて必要なら調整 */
}

/* 右上ログイン */
.fullscreen-menu__headerRight {
  flex: 0 0 auto;
}

.fullscreen-menu__login {
  margin: 0;
}

/* メニュー本体がヘッダー帯に被らないように余白 */
.fullscreen-menu__nav {
  width: min(1200rem, 100%);
  margin-inline: auto;
  padding-inline: 24rem;
  padding-top: 45rem;
}

/* SP：縦並びにして自然に */
@media screen and (max-width: 768px) {
  .fullscreen-menu__header {
    flex-direction: column;
    align-items: stretch;
  }
  .fullscreen-menu__login {
    width: 100%;
  }
  .fullscreen-menu__nav {
    padding-top: 70rem;
  }
  .fullscreen-menu__logo img {
    max-width: 320rem;
  }
}
/* =========================================
   fullscreen-menu：ホバーで「左から緑帯」＋文字白
   ※疑似要素なし（衝突しにくい）
========================================= */
.fullscreen-menu {
  /* 見出し（.fullscreen-menu__sectionHead）は中のタイトルだけにかける */
}
.fullscreen-menu__sectionTitle {
  display: inline;
  padding: 0.18em 0.45em;
  border-radius: 3px;
  background-image: linear-gradient(var(--color-button), var(--color-button));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 100%;
  transition: background-size 0.25s ease, color 0.25s ease;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.fullscreen-menu {
  /* 通常リンク（リスト内） */
}
.fullscreen-menu__list > li > a, .fullscreen-menu__sublist > li > a, .fullscreen-menu__subsublist > li > a, .fullscreen-menu__quickList > li > a {
  display: inline-flex;
  border-radius: 3px;
  align-items: center;
  padding: 0 10rem 0 10rem;
  background-image: linear-gradient(var(--color-button), var(--color-button));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 100%;
  transition: background-size 0.25s ease, color 0.25s ease;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  text-decoration: none;
  color: inherit;
}
@media (any-hover: hover) {
  .fullscreen-menu__sectionHead:hover .fullscreen-menu__sectionTitle, .fullscreen-menu__list > li > a:hover, .fullscreen-menu__sublist > li > a:hover, .fullscreen-menu__subsublist > li > a:hover, .fullscreen-menu__quickList > li > a:hover {
    color: #fff;
    background-size: 100% 100%;
  }
}

/* 1024px以下でも、i-circle を「白丸＋緑矢印」に */
@media (max-width: 1024px) {
  .fullscreen-menu a:hover .i-circle,
  .fullscreen-menu a:active .i-circle,
  .fullscreen-menu a:focus-visible .i-circle {
    background-color: #fff;
  }
  .fullscreen-menu a:hover .i-circle::after,
  .fullscreen-menu a:active .i-circle::after,
  .fullscreen-menu a:focus-visible .i-circle::after {
    background-color: var(--color-primary);
  }
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu {
    /* 見出し（.fullscreen-menu__sectionHead）は中のタイトルだけにかける */
  }
  .fullscreen-menu__sectionTitle {
    display: inline;
    padding: 0.18em 0.45em;
    border-radius: 3px;
    background-image: linear-gradient(var(--color-button), var(--color-button));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 100%;
    transition: background-size 0.25s ease, color 0.25s ease;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
  .fullscreen-menu {
    /* 通常リンク（リスト内） */
  }
  .fullscreen-menu__list > li > a, .fullscreen-menu__sublist > li > a, .fullscreen-menu__subsublist > li > a, .fullscreen-menu__quickList > li > a {
    display: inline;
    padding: 0.5em;
    border-radius: 3px;
    background-image: linear-gradient(var(--color-button), var(--color-button));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 100%;
    transition: background-size 0.25s ease, color 0.25s ease;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    text-decoration: none;
    color: inherit;
  }
  .fullscreen-menu {
    /* キーボード操作でも同等に */
  }
}
@media screen and (min-width: 1025px) and (any-hover: hover) {
  .fullscreen-menu__sectionHead:hover .fullscreen-menu__sectionTitle, .fullscreen-menu__list > li > a:hover, .fullscreen-menu__sublist > li > a:hover, .fullscreen-menu__subsublist > li > a:hover, .fullscreen-menu__quickList > li > a:hover {
    color: #fff;
    background-size: 100% 100%;
  }
}
@media screen and (min-width: 1025px) {
  .fullscreen-menu__sectionHead:focus-visible .fullscreen-menu__sectionTitle, .fullscreen-menu__list > li > a:focus-visible, .fullscreen-menu__sublist > li > a:focus-visible, .fullscreen-menu__subsublist > li > a:focus-visible, .fullscreen-menu__quickList > li > a:focus-visible {
    outline: none;
    color: #fff;
    background-size: 100% 100%;
  }
}
@media screen and (min-width: 1025px) {
  /* 既存の矢印（›） */
  .fullscreen-menu__list > li > a::before,
  .fullscreen-menu__sublist > li > a::before,
  .fullscreen-menu__subsublist > li > a::before {
    display: inline-block;
  }
  /* hover で白に */
}
@media screen and (min-width: 1025px) and (any-hover: hover) {
  .fullscreen-menu__list > li > a:hover::before,
  .fullscreen-menu__sublist > li > a::before,
  .fullscreen-menu__subsublist > li > a::before {
    color: #fff;
  }
}
@media screen and (min-width: 1025px) {
  /* キーボード操作でも */
  .fullscreen-menu__list > li > a:focus-visible::before,
  .fullscreen-menu__sublist > li > a::before,
  .fullscreen-menu__subsublist > li > a::before {
    color: #fff;
  }
  /* 丸は背景色、矢印は mask で描画して currentColor 的に制御 */
  .i-circle {
    display: inline-block;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border-radius: 50%;
    background-color: var(--color-button);
    /* 矢印（白） */
    position: relative;
  }
  .i-circle::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #fff;
    /* 矢印色（通常） */
    -webkit-mask: url(../images/icon/angle_right_white.svg) center/7px 8px no-repeat;
    mask: url(../images/icon/angle_right_white.svg) center/7px 8px no-repeat;
  }
  /* hover：丸を白、矢印を緑 */
}
@media screen and (min-width: 1025px) and (any-hover: hover) {
  .fullscreen-menu a:hover .i-circle {
    background-color: #fff;
  }
  .fullscreen-menu a:hover .i-circle::after {
    background-color: #008f4b;
  }
}
@media screen and (min-width: 1025px) {
  /* focus-visibleも */
  .fullscreen-menu a:focus-visible .i-circle {
    background-color: #fff;
  }
  .fullscreen-menu a:focus-visible .i-circle::after {
    background-color: #008f4b;
  }
}
/* =========================================
   アイコン付きリンク：テキスト落ち対策
========================================= */
.fullscreen-menu {
  /* ul に .fullscreen-menu__list--icon が付いているリンクだけ整列 */
}
.fullscreen-menu__list--icon > li > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  vertical-align: middle;
  line-height: 1.6;
  padding: 5rem 8rem;
}
.fullscreen-menu {
  /* アイコン類が block になっていても横並びを崩さない */
}
.fullscreen-menu__list--icon .i-circle, .fullscreen-menu__list--icon .i-external, .fullscreen-menu__list--icon .i-pdf {
  display: inline-block;
  flex: 0 0 auto;
}

@media screen and (min-width: 1025px) {
  .menu-icon-wrapper {
    transition: transform 0.2s ease;
    will-change: transform;
  }
}

/* クリック時に padding を変更 */
.menu-icon-wrapper.is-open {
  padding: 8px 0 0 20px;
}
@media screen and (min-width: 1025px) {
  .menu-icon-wrapper.is-open {
    padding: 8px 0 0 30px;
  }
}

/* メニュー展開中だけ「見た目」だけ左に寄せる（当たり判定は動かさない） */
/* アイコンは transform のアニメーションも残したまま、left も動かす */
#bentoIcon {
  transition: transform 0.4s ease, color 0.3s ease, left 0.2s ease;
}

/* ラベルは left だけでOK */
#menuLabel {
  transition: left 0.2s ease;
}

#bentoIcon.is-shifted,
#menuLabel.is-shifted {
  position: relative;
  left: -15px;
}
@media screen and (min-width: 1025px) {
  #bentoIcon.is-shifted,
  #menuLabel.is-shifted {
    left: -20px;
  }
}

/*
固定バナー（スクロール後に表示）
------------------------------
PC：右側からスライドイン（縦型）
SP：画面最下部に横バナー固定（下からスライドイン）
*/
.fix-banner {
  position: fixed;
  z-index: 9997;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* SP（デフォルト）：下から出現 */
  left: 12rem;
  right: 12rem;
  bottom: calc(12rem + env(safe-area-inset-bottom, 0px));
  top: auto;
  transform: translateY(calc(100% + 24rem));
  transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0.25s ease;
  will-change: transform;
}
.fix-banner.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.fix-banner {
  /* PC：右から出現 */
}
@media screen and (min-width: 1025px) {
  .fix-banner {
    left: auto;
    right: 16rem;
    bottom: auto;
    top: 50%;
    transform: translate(110%, -50%);
  }
  .fix-banner.is-show {
    transform: translate(0, -50%);
  }
  .fix-banner {
    /* hoverで少しだけ押し出し（お好みで調整） */
  }
  .fix-banner:hover {
    transform: translate(-4rem, -50%);
  }
}

.fix-banner__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10rem;
  width: 100%;
  padding: 14rem 16rem;
  border-radius: 13rem;
  border: 3px solid #fff;
  background: var(--color-primary);
  color: #fff;
  writing-mode: horizontal-tb;
  box-shadow: 0 8rem 24rem rgba(0, 0, 0, 0.18);
}
@media screen and (min-width: 1025px) {
  .fix-banner__inner {
    width: auto;
    padding: 16rem 12rem;
    border-radius: 20rem;
    writing-mode: vertical-rl;
    text-orientation: mixed;
  }
}

.fix-banner__text {
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 1025px) {
  .fix-banner__text {
    font-size: 20rem;
  }
}

.fix-banner__icon {
  width: 28rem;
  height: 28rem;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* フォールバック：mask未対応ブラウザ用（画像そのまま表示） */
}
.fix-banner__icon img {
  width: 100%;
  height: 100%;
  display: block;
  transition: filter 0.2s ease;
}
.fix-banner__icon {
  /* mask対応ブラウザ：SVGを“色付きアイコン”として扱う */
}
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .fix-banner__icon {
    background-color: var(--color-yellow);
    -webkit-mask-image: url("../images/icon/material-symbols_login-rounded.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: url("../images/icon/material-symbols_login-rounded.svg");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
  }
  .fix-banner__icon img {
    display: none;
  }
}

/*
ホバー時：テキストを黄色／矢印をホワイト
*/
.fix-banner:hover .fix-banner__text {
  color: var(--color-yellow);
}
.fix-banner:hover {
  /* mask対応：背景色=白 */
}
.fix-banner:hover .fix-banner__icon {
  background-color: var(--color-white);
}
.fix-banner:hover {
  /* フォールバック（mask未対応）：完全な白にはなりきらない可能性があります */
}
.fix-banner:hover .fix-banner__icon img {
  filter: grayscale(1) brightness(4) contrast(1.2);
}

/* 共通：disabled（挙動のみ） */
.is-disabled,
[aria-disabled=true] {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.55;
}

/* 共通：NEWバッジ */
.c-badge--new {
  position: absolute;
  left: -5rem;
  top: -5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 18rem;
  padding: 0 8rem;
  border-radius: 6rem;
  background: #ff3b30;
  color: #fff;
  font-weight: 800;
  font-size: 11rem;
  letter-spacing: 0.04em;
}

/* 共通：区切り線（破線） */
.u-divider-dashed {
  border-bottom: 1px dashed var(--color-primary);
  padding-bottom: 32px;
  margin-bottom: 32px;
}
@media screen and (min-width: 1025px) {
  .u-divider-dashed {
    padding-bottom: 48px;
    margin-bottom: 48px;
  }
}

/* ===== CSE検索ボタン強制表示（外部CSSの display:none !important を打ち消す）===== */
/* === Header CSE: ボタンが外部CSSで消されるのを防ぐ === */
.u-searchbox td.gsc-search-button {
  display: table-cell !important;
}

.u-searchbox td.gsc-search-button > button.gsc-search-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* === 見た目の固定（必要なら） === */
.u-searchbox td.gsc-search-button > button.gsc-search-button.gsc-search-button-v2 {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  background-color: var(--accent, #01A758) !important;
  border: 1px solid var(--accent, #01A758) !important;
  border-radius: 6px !important;
}

.u-searchbox td.gsc-search-button > button.gsc-search-button.gsc-search-button-v2 svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
}

.u-searchbox td.gsc-search-button > button.gsc-search-button.gsc-search-button-v2 svg path {
  fill: #fff !important;
}

/* =========================
   Touch device: disable hover styles
   ========================= */
@media (hover: none), (pointer: coarse) {
  .u-text-hover:hover {
    opacity: 1;
  }
  .u-text-hover--green:hover {
    background-size: 0 1rem;
    color: inherit;
    font-weight: inherit;
  }
  .u-text-hover--yellow:hover {
    color: inherit;
  }
  .u-text-hover,
  .u-text-hover--green,
  .u-text-hover--yellow {
    transition: none !important;
  }
  /* フルスクリーンメニュー内の hover 表現を無効化 */
  .fullscreen-menu__nav a:hover,
  .fullscreen-menu__nav a:focus-visible {
    color: inherit;
    text-decoration: none;
    background: none;
    box-shadow: none;
    transform: none;
    filter: none;
    opacity: 1;
  }
  /* hoverで擬似要素（下線/アイコン/ハイライト等）を出している場合の保険 */
  .fullscreen-menu__nav a:hover::before,
  .fullscreen-menu__nav a:hover::after,
  .fullscreen-menu__nav a:focus-visible::before,
  .fullscreen-menu__nav a:focus-visible::after {
    content: none;
  }
  /* 触った瞬間にアニメが走るのを止めたい場合 */
  .fullscreen-menu__nav a {
    transition: none !important;
  }
}
.pdf_link {
  display: inline-flex;
  /* テキストと疑似要素を同一行で扱う */
  align-items: center;
  /* 縦センター */
  line-height: 1.2;
  /* 行高を落ち着かせる（任意） */
}

.pdf_link::before {
  content: "";
  display: inline-block;
  width: 20rem;
  height: 20rem;
  background-color: var(--color-primary);
  -webkit-mask: url(../images/icon/bxs_file-pdf.svg) no-repeat center/contain;
  mask: url(../images/icon/bxs_file-pdf.svg) no-repeat center/contain;
  flex: 0 0 auto;
  /* つぶれ防止 */
}

.green_wrapper {
  background-color: #E9F7E9;
  padding: 30rem 0;
}

/* 役員名簿／評議員等名簿：リンク要素ごと 1文字分右へ */
.fullscreen-menu__subsublist a[href*="#yakuin"],
.fullscreen-menu__subsublist a[href*="#hyougiin"] {
  margin-left: 1.5em;
}

.figure-modal {
  position: relative;
  max-width: 100%;
  margin: 24rem 0 30rem;
}
.figure-modal::before {
  display: none;
  content: none;
}
.figure-modal .figure-modal__zoomBtn {
  position: absolute;
  top: 10rem;
  left: 0;
  z-index: 2;
  padding: 8rem 12rem;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
  font-size: 14rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
@media screen and (min-width: 1025px) {
  .figure-modal .figure-modal__zoomBtn .figure-modal__zoomBtn {
    display: none;
  }
}
.figure-modal > img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  cursor: auto;
}
@media screen and (min-width: 1025px) {
  .figure-modal {
    padding-top: 0;
  }
  .figure-modal .figure-modal__zoomBtn {
    display: none;
  }
  .figure-modal > img {
    max-width: 100%;
    margin: 47rem 0 67rem;
    cursor: default;
  }
}

/* 閉じている時は確実に消す */
.img-modal:not([open]) {
  display: none;
}

/* 開いている時だけ全面オーバーレイ化 */
.img-modal[open] {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}

.img-modal::backdrop {
  background: rgba(0, 0, 0, 0.75);
}

.img-modal__panel {
  position: relative;
  width: min(92vw, 1100px);
  max-height: 92vh;
  background: #fff;
  border-radius: 12px;
  overflow: visible;
}

/* 画像側は別ラッパーで角丸＋hidden */
.img-modal__media {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.img-modal__close {
  position: absolute;
  top: -18px;
  right: -13px;
  width: 38px;
  height: 38px;
  border: 0;
  padding: 0;
  background: #fff;
  border-radius: 999px;
  font-size: 26px;
  line-height: 1;
}

/*!
component > button
------------------------------
*/
.c-button {
  --font-size: 16rem;
  display: inline-block;
  padding: 10px 15px 10px 15px;
  color: var(--color-white);
  border-radius: 5px;
  font-weight: 500;
  font-size: var(--font-size);
}
@media screen and (min-width: 1025px) {
  .c-button {
    --font-size: 20rem;
    padding: 10px 20px 10px 30px;
  }
}

a.c-button:hover {
  opacity: 0.8;
  transform: translateY(-1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}

.c-button--priumary {
  background-color: var(--color-primary);
}

.c-button--second {
  background-color: var(--color-second);
}

.c-button--third {
  background-color: var(--color-third);
}

.c-button--button {
  background-color: var(--color-button);
}

.c-button--yellow {
  background-color: var(--color-yellow);
  color: var(--color-black);
}

.c-button--gray {
  background-color: var(--color-gray);
  color: var(--color-font-base);
}

.c-button--arrow {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px 7px 45px;
  gap: 24px;
}

.c-button--arrow::after {
  content: "";
  display: inline-block;
  width: 1em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/arrow.svg");
          mask-image: url("../images/icon/arrow.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-white);
}

.c-button--arrow--black {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px 7px 45px;
  gap: 24px;
}

.c-button--arrow--black::after {
  content: "";
  display: inline-block;
  width: 1em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/arrow.svg");
          mask-image: url("../images/icon/arrow.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-black);
}

.c-button--external {
  display: inline-flex;
  align-items: center;
  justify-content: space-around;
  width: 70%;
  gap: 10rem;
  margin-inline: auto;
}
@media screen and (min-width: 1025px) {
  .c-button--external {
    width: 100%;
    margin: 0px 8px;
    gap: 0;
  }
}

.c-button--external::after {
  content: "";
  display: inline-block;
  width: 1em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/external-link-white.svg");
          mask-image: url("../images/icon/external-link-white.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-white);
}

.c-button--pdf,
.c-button--pdf--black {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.c-button--pdf--top_sammary {
  display: inline-flex;
  align-items: center;
  padding: 5px 3px 3px 7px;
  font-size: 16rem;
  background-color: var(--color-button);
}

.c-button--pdf::after,
.c-button--pdf--top_sammary::after {
  content: "";
  display: inline-block;
  width: 1.3em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/bxs_file-pdf.svg");
          mask-image: url("../images/icon/bxs_file-pdf.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-white);
}

.c-button--pdf--black::after {
  content: "";
  display: inline-block;
  width: 1.3em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/bxs_file-pdf.svg");
          mask-image: url("../images/icon/bxs_file-pdf.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-font-base);
}

.icon-pdf {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin: 0 4px;
  vertical-align: -2px;
  background-color: #000; /* ←黒 */
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
  mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
}

.c-button--zip {
  display: inline-flex;
  align-items: center;
  justify-content: space-around;
  padding: 10px 24px 10px 15px;
  margin-inline: auto;
}

.c-button--zip::after {
  content: "";
  display: inline-block;
  width: 1.5em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/zip.svg");
          mask-image: url("../images/icon/zip.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-white);
}

.c-button-rounded {
  grid-area: btn;
  width: 100%;
  justify-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10rem;
  padding: 14rem 30rem;
  min-height: 54rem;
  background: var(--color-button);
  color: #fff;
  border-radius: 999rem;
  text-decoration: none;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1;
}
.c-button-rounded::after {
  content: "";
  width: 8rem;
  height: 8rem;
  border-top: 2rem solid currentColor;
  border-right: 2rem solid currentColor;
  transform: rotate(45deg);
}
.c-button-rounded:hover, .c-button-rounded:focus-visible {
  opacity: 0.8;
  transform: translateY(-1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}

.c-button-rounded--pdf {
  grid-area: btn;
  width: 100%;
  justify-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10rem;
  padding: 14rem 18rem;
  min-height: 54rem;
  background: var(--color-button);
  color: #fff;
  border-radius: 999rem;
  text-decoration: none;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1;
}
@media screen and (min-width: 1025px) {
  .c-button-rounded--pdf {
    padding: 14rem 30rem;
  }
}
.c-button-rounded--pdf::after {
  content: "";
  display: inline-block;
  width: 1.3em;
  aspect-ratio: 1;
  -webkit-mask-image: url("../images/icon/bxs_file-pdf.svg");
          mask-image: url("../images/icon/bxs_file-pdf.svg");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color-white);
}
.c-button-rounded--pdf:hover, .c-button-rounded--pdf:focus-visible {
  opacity: 0.8;
  transform: translateY(-1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}

.c-backToTop {
  position: fixed;
  right: 10px;
  bottom: 85px;
  width: 50px;
  height: 50px;
  font-size: 0;
  font-weight: bold;
  color: #fff;
  background: #01A758;
  border: none;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-decoration: none;
  line-height: 1;
  letter-spacing: 0;
  /* 表示/非表示（JSで切替） */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  z-index: var(--z-index-modal);
  --arrow-size: 32px;
}
.c-backToTop::before {
  content: "";
  width: var(--arrow-size);
  height: var(--arrow-size);
  display: block;
  margin-top: 4rem;
  /* currentColorで色追従（今の白文字なら白） */
  background: currentColor;
  /* SVGをマスクとして埋め込み（角丸：round） */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 19V7' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round'/%3E%3Cpath d='M6 13l6-6 6 6' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 19V7' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round'/%3E%3Cpath d='M6 13l6-6 6 6' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media screen and (min-width: 1025px) {
  .c-backToTop {
    right: 24px;
    bottom: 24px;
    width: 60px;
    height: 60px;
    --arrow-size: 40px;
  }
}

.c-backToTop.is-show {
  opacity: 0.7;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
@media screen and (min-width: 1025px) {
  .c-backToTop.is-show {
    opacity: 1;
  }
  .c-backToTop.is-show:hover {
    background: #F7BA00;
    transform: translateY(-2rem);
  }
}

.c-backToTop:focus-visible {
  outline: 3px solid rgba(1, 167, 88, 0.35);
  outline-offset: 4px;
}

.anchor-nav {
  height: auto;
  min-height: 80px;
  overflow: visible;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: start;
  /* デザイン調整（必要に応じて変更） */
  padding: 16px 20px;
  gap: 12px 55px;
  background: #f3f4f4;
  /* 背景色は必要に応じて変数化 */
  border-radius: 12px;
  /* 高さ固定時に2段で収まらない場合の保険 */
  overflow: hidden;
  margin-bottom: 40rem;
}
@media screen and (min-width: 1025px) {
  .anchor-nav {
    width: 1100px;
    max-width: 100%;
    margin-bottom: 70rem;
    flex-direction: row;
    align-items: center;
  }
}

.anchor-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 16rem;
  line-height: 1.4;
  color: #000;
  text-decoration: none;
  padding: 6px 0 6px 0;
  /* 先頭の「∨」 */
}
.anchor-nav__link::before {
  content: "";
  display: inline-block;
  width: 14px;
  /* 必要に応じて調整 */
  height: 14px;
  /* 必要に応じて調整 */
  margin-right: 10px;
  transform: translateY(-1px);
  /* アイコンを currentColor で塗る（ホバー色追従） */
  background-color: currentColor;
  -webkit-mask: url("../images/icon/arrow-down.svg") no-repeat center/contain;
  mask: url("../images/icon/arrow-down.svg") no-repeat center/contain;
}
.anchor-nav__link {
  /* 先頭以外のリンクも同じアイコンに */
}
.anchor-nav__link + .anchor-nav__link::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 10px;
  transform: translateY(-1px);
  background-color: currentColor;
  -webkit-mask: url("../images/icon/arrow-down.svg") no-repeat center/contain;
  mask: url("../images/icon/arrow-down.svg") no-repeat center/contain;
}
.anchor-nav__link {
  /* 下線（左から表示） */
}
.anchor-nav__link {
  /* 下線本体 */
}
.anchor-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 1.5rem;
  background: var(--color-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.22s ease;
}
.anchor-nav__link:hover {
  color: var(--color-primary);
}
.anchor-nav__link:hover::after {
  transform: scaleX(1);
}
.anchor-nav__link:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  /* キーボード操作でも下線を出す */
}
.anchor-nav__link:focus-visible::after {
  transform: scaleX(1);
}

.c-fixed-330w {
  margin: 0 24rem 0 24rem;
}

.c-fixed-330w__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12rem;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 1025px) {
  .c-fixed-330w__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 31rem;
  }
}

.c-fixed-330w__item {
  margin: 0;
}

.c-fixed-330w__link {
  position: relative;
  display: block;
  width: 100%;
  padding: 18rem 44rem 18rem 20rem;
  color: #fff;
  text-decoration: none;
  border-radius: 6rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.c-fixed-330w__link:hover {
  opacity: 0.8;
  transform: translateY(-1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}
.c-fixed-330w__link:active {
  transform: translateY(0);
  box-shadow: none;
}
.c-fixed-330w__link:focus-visible {
  outline: 3rem solid rgba(255, 255, 255, 0.9);
  outline-offset: 3rem;
}

.c-fixed-330w__text {
  display: inline-block;
  padding-right: 0;
  min-width: 0;
}

.c-fixed-330w__pdf__icon {
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 24rem;
  height: 24rem;
  background: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
}

.c-fixed-330w__external__icon {
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 24rem;
  height: 24rem;
  background: url("../images/icon/external-link-white.svg") center/contain no-repeat;
}

/*!
component > title
------------------------------
*/
.c-title-en {
  font-family: var(--font-family-en);
  font-size: 14rem;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1;
}
@media screen and (min-width: 1025px) {
  .c-title-en {
    font-size: 24rem;
  }
}

.c-title-ja {
  line-height: 1;
  font-size: 26rem;
  color: var(--color-font-base);
  grid-column: 2/3;
  grid-row: 2/3;
}
@media screen and (min-width: 1025px) {
  .c-title-ja {
    font-size: 32rem;
  }
}

/*!
component > subtitle
------------------------------
*/
.c-subtitle {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 15rem;
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-font-base);
  margin: 0;
  padding-bottom: 20rem;
}
@media screen and (min-width: 1025px) {
  .c-subtitle {
    padding-bottom: 48rem;
  }
}

.c-subtitle__text {
  display: inline-block;
}

.c-subtitle__dots {
  display: flex;
  gap: 10rem;
  flex: 0 0 auto;
}

.c-subtitle__dot {
  width: 11rem;
  height: 11rem;
  border-radius: 50%;
}

.c-subtitle__dots .c-subtitle__dot:nth-child(1) {
  background: var(--color-second);
}

.c-subtitle__dots .c-subtitle__dot:nth-child(2) {
  background: var(--color-primary);
}

.c-subtitle__dots .c-subtitle__dot:nth-child(3) {
  background: var(--color-third);
}

/*!
component > c-page-title-wrapper
------------------------------
*/
.c-page-title-wrapper {
  padding-bottom: 23rem;
}
@media screen and (min-width: 1025px) {
  .c-page-title-wrapper {
    padding-bottom: 40rem;
  }
}

/*!
component > page-kv
------------------------------
*/
.c-page-kv {
  background-color: var(--color-bg-light);
  height: 365rem;
  position: relative;
  display: flex;
  align-items: flex-end;
}
@media screen and (min-width: 1025px) {
  .c-page-kv {
    height: 467rem;
  }
}
.c-page-kv::after {
  content: "";
  display: block;
  width: 100%;
  height: 64rem;
  background-color: var(--color-white);
  position: absolute;
  left: 0;
  bottom: 0;
  border-radius: 30rem 0 0 0;
}
@media screen and (min-width: 1025px) {
  .c-page-kv::after {
    height: 96rem;
    border-radius: 50rem 0 0 0;
  }
}
.c-page-kv > * {
  width: 100%;
}

.c-page-kv-inner {
  padding-bottom: 84rem;
  display: flex;
  flex-direction: column;
  gap: 32rem;
}
@media screen and (min-width: 1025px) {
  .c-page-kv-inner {
    padding-bottom: 116rem;
    gap: 56rem;
  }
}

.c-page-kv-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 22rem;
}
@media screen and (min-width: 1025px) {
  .c-page-kv-title-wrap {
    gap: 28rem;
  }
}

.c-page-kv-title-en {
  font-family: var(--font-family-en);
  font-weight: 300;
  font-size: 55rem;
  line-height: 1;
}
@media screen and (min-width: 1025px) {
  .c-page-kv-title-en {
    font-size: 72rem;
  }
}

.c-page-kv-title-ja {
  line-height: 1;
  color: var(--color-font-light);
}

.c-page-kv-breadcrumb {
  display: flex;
  justify-content: flex-end;
}

/*!
component > c-page-title
------------------------------
*/
.c-page-title {
  padding-bottom: 23rem;
}
@media screen and (min-width: 1025px) {
  .c-page-title {
    padding-bottom: 40rem;
  }
}

/*!
component > breadcrumb
------------------------------
*/
.c-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  row-gap: 5rem;
  margin-bottom: 22rem;
}
@media screen and (min-width: 1025px) {
  .c-breadcrumb {
    margin: 10rem 0 32rem 0;
  }
}

.c-breadcrumb-item {
  font-size: 11rem;
  color: var(--color-font-base);
  line-height: 1;
  display: flex;
  align-items: center;
  font-feature-settings: "halt";
}
@media screen and (min-width: 1025px) {
  .c-breadcrumb-item {
    font-size: 12rem;
  }
}
.c-breadcrumb-item:not(:last-child)::after {
  content: ">";
  padding: 0 3rem;
  color: var(--color-font-base);
}

.c-breadcrumb-item--current {
  color: var(--color-primary);
  font-feature-settings: "halt";
}

/*!
layout > container
------------------------------
*/
.l-container-s {
  width: min(90%, var(--width-content-s));
  margin-inline: auto;
}

.l-container-m {
  width: min(90%, var(--width-content-m));
  margin-inline: auto;
}

.l-container-l {
  width: min(90%, var(--width-content-l));
  margin-inline: auto;
}

/*!
layout > header
------------------------------
*/
.l-header {
  padding: 10rem 50rem 10rem 10rem;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  transition: transform 0.4s ease, opacity 0.3s ease;
  will-change: transform;
  background-color: var(--color-white);
}
@media screen and (min-width: 1025px) {
  .l-header {
    padding: 10rem 67rem 0 50rem;
  }
}
.l-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1.5px;
  background: var(--color-primary);
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}
.l-header.is-scrolled::after {
  opacity: 1;
}
.l-header.is-hide {
  transform: translateY(-100%);
  opacity: 0;
}
.l-header .l-header-nav {
  margin-top: 8rem;
}
.l-header .l-header-nav .l-header-list {
  display: flex;
  justify-content: center;
  gap: 24rem;
}
.l-header .l-header-nav .l-header-list > li {
  width: 200rem;
  text-align: center;
}
.l-header .l-header-nav .l-header-list > .l-header-item {
  padding: 0;
}
.l-header .is-header-active {
  color: var(--color-primary);
  font-weight: 500;
}

.l-header-top {
  /* SP：ロゴと検索ボタンを同一行に（スクリーンショットの構成） */
  display: flex;
  gap: 5rem;
}
@media screen and (min-width: 1025px) {
  .l-header-top {
    display: flex;
    flex-wrap: wrap;
    /* navを次段に落とすため */
    align-items: center;
    gap: 12rem;
    min-width: 0;
    max-width: 1440px;
    margin-inline: auto;
  }
}

/* ここが重要：縮むための土台（min-width:0） */
@media screen and (min-width: 1025px) {
  .l-header-logo,
  .u-fontSize,
  .u-searchbox,
  .u-login,
  .l-header-nav {
    min-width: 0;
  }
}

/* ロゴ：縮む（ただし最大588rem） */
.l-header-logo {
  flex: 1 1 auto;
  min-width: 0;
}
@media screen and (min-width: 1025px) {
  .l-header-logo {
    width: auto;
    max-width: 588rem;
    flex: 1 1 0;
    margin-right: auto;
  }
}
.l-header-logo a,
.l-header-logo picture {
  display: block;
}
.l-header-logo img {
  display: block;
  height: auto;
  max-width: 100%;
  width: auto;
}

/* SP横向きのときだけロゴを小さくする */
@media screen and (max-width: 899px) and (orientation: landscape) {
  .l-header-logo img {
    width: auto;
    height: auto;
    max-width: 100%;
    display: block;
  }
}
.u-searchbox {
  flex: 0 0 auto;
}

/* 右側UI：縮む（0 1 auto） */
@media screen and (min-width: 1025px) {
  .u-fontSize,
  .u-searchbox,
  .u-login {
    flex: 0 1 auto;
  }
}

/* さらに“中身”が最小幅を作ってしまうのを抑える（効き目大） */
@media screen and (min-width: 1025px) {
  .u-fontSize__label,
  .u-fontSize__btn,
  .u-searchbox__btn,
  .u-login-button {
    min-width: 0;
  }
}

/* 文字サイズ変更：詰まったら中で折り返せるように */
@media screen and (min-width: 1025px) {
  .u-fontSize {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8rem;
  }
}

/* ナビ：次段へ（ここは従来通り） */
@media screen and (min-width: 1025px) {
  .l-header-nav {
    flex: 0 0 100%;
    margin-top: 12rem;
  }
}

@media screen and (min-width: 1025px) {
  .l-header-list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24rem;
  }
}

/* ▼ トップ階層のみ */
@media screen and (min-width: 1025px) {
  .l-header-list > .l-header-item {
    flex: 0 1 auto;
    position: relative;
    /* クリック領域も含めて中央寄せ */
    display: flex;
    justify-content: center;
  }
  .l-header-list > .l-header-item > a,
  .l-header-list > .l-header-item > .l-header-trigger {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
}

/* ▼ 縦線：gap の真ん中に配置（レイアウトに影響しない） */
@media screen and (min-width: 1025px) {
  .l-header-list > .l-header-item + .l-header-item::before {
    content: "";
    position: absolute;
    left: -12rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 22rem;
    background: #CECDCD;
  }
}

/* ------------------------------
ホバーで横並び小メニュー表示
------------------------------ */
/* 親：小メニューを持つli */
@media screen and (min-width: 1025px) {
  .l-header-item.has-submenu {
    position: relative;
    cursor: default;
  }
}

@media screen and (min-width: 1025px) {
  .l-header-item.has-submenu > .l-header-trigger {
    cursor: default;
  }
}

@media screen and (min-width: 1025px) {
  .l-header-item.has-submenu:hover > .l-header-trigger {
    color: #008F4B;
    font-weight: 500;
  }
}

/* 親：リンクなし（button）を既存aと同じ見た目に */
@media screen and (min-width: 1025px) {
  .l-header-trigger {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    font-size: clamp(14rem, 0.482vw + 9.06rem, 16rem);
  }
}

/* 子：小メニュー本体（初期は非表示） */
@media screen and (min-width: 1025px) {
  .l-header-submenu {
    position: absolute;
    top: 100%;
    left: 0;
    transform: translate(var(--submenu-shift-x, 0), 6rem);
    display: none;
    opacity: 0;
    transform: translate(var(--submenu-shift-x, 0), 10rem) scale(0.99);
    max-width: calc(100vw - 32rem);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 0;
    background: #fff;
    border: 1px solid #CECDCD;
    border-radius: 8rem;
    box-shadow: 0 8rem 24rem rgba(0, 0, 0, 0.08);
    z-index: var(--z-index-modal);
    transition: opacity 320ms cubic-bezier(0.16, 1, 0.3, 1), transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
  }
}

/* ホバー or フォーカス中は表示 */
@media screen and (min-width: 1025px) {
  .l-header-item.has-submenu:hover .l-header-submenu {
    display: inline-block;
  }
}

/* displayがONになった後、JSで .is-open を付けてアニメ開始 */
@media screen and (min-width: 1025px) {
  .l-header-submenu.is-open {
    opacity: 1;
    transform: translate(var(--submenu-shift-x, 0), 0) scale(1);
  }
}

@media screen and (prefers-reduced-motion: reduce) and (min-width: 1025px) {
  .l-header-submenu {
    transition: none;
    transform: translate(var(--submenu-shift-x, 0), 0);
  }
}
/* 横並び＆区切り線 */
@media screen and (min-width: 1025px) {
  .l-header-sublist {
    display: flex;
    align-items: center;
    width: -moz-max-content;
    width: max-content;
    white-space: nowrap;
    list-style: none;
    margin: 0;
    padding: 10rem 12rem;
  }
}

@media screen and (min-width: 1025px) {
  .l-header-subitem {
    padding: 0 12rem;
    /* 線で区切る（先頭以外） */
  }
  .l-header-subitem + .l-header-subitem {
    border-left: 1px solid #CECDCD;
  }
  .l-header-subitem a {
    display: inline-block;
    padding: 6rem 0;
    font-size: 14rem;
  }
}

@media screen and (min-width: 1025px) {
  .l-header-subitem--pdf a {
    display: inline-flex;
    align-items: center;
    gap: 6rem;
  }
  .l-header-subitem--pdf a::before {
    content: "";
    width: 16rem;
    height: 16rem;
    flex: 0 0 auto;
    background: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
  }
  @supports ((-webkit-mask: url("") no-repeat center/contain) or (mask: url("") no-repeat center/contain)) {
    .l-header-subitem--pdf a::before {
      background: none;
      background-color: currentColor;
      -webkit-mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
      mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
    }
  }
}

/* ヘッダー分だけ本文を下げる */
main {
  padding-top: var(--header-h, 170px);
}

/* ================================
   検索結果ページ（search.html）
================================ */
.p-search {
  padding: 28px 0 56px;
  background: #F6F8FA;
}
.p-search__inner {
  max-width: 980px;
  /* 横幅いっぱいを防ぐ */
  margin: 0 auto;
  padding: 0 16px;
  /* 端末幅対策 */
}
.p-search__title {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #111;
}
.p-search {
  /* 結果エリアをカードに */
}
.p-search__results {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);
  padding: 18px 18px 10px;
  /* CSE全体の余白を抑える */
}
.p-search__results .gsc-control-cse {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.p-search__results {
  /* 1件ごとの結果をすっきり */
}
.p-search__results .gsc-webResult.gsc-result {
  border: 0 !important;
  border-bottom: 1px solid #EEF0F2 !important;
  padding: 16px 6px !important;
  margin: 0 !important;
}
.p-search__results .gsc-webResult.gsc-result:last-child {
  border-bottom: 0 !important;
}
.p-search__results {
  /* タイトル */
}
.p-search__results .gs-title,
.p-search__results .gs-title * {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
.p-search__results {
  /* リンク色（REINSの緑に寄せる） */
}
.p-search__results .gs-title a {
  color: var(--color-primary) !important;
}
.p-search__results .gs-title a:hover {
  text-decoration: underline !important;
}
.p-search__results {
  /* URL／メタ情報 */
}
.p-search__results .gsc-url-top,
.p-search__results .gs-visibleUrl,
.p-search__results .gs-visibleUrl * {
  font-size: 12px !important;
  color: #6B7280 !important;
}
.p-search__results {
  /* スニペット */
}
.p-search__results .gs-snippet {
  margin-top: 6px !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
  color: #374151 !important;
}
.p-search__results {
  /* サムネ／アイコンが大きすぎる場合は抑える */
}
.p-search__results .gsc-thumbnail {
  border-radius: 8px !important;
}
.p-search__results {
  /* 「Googleで検索（巨大な虫眼鏡）」などが邪魔なら非表示 */
}
.p-search__results .gcsc-find-more-on-google {
  display: none !important;
}
.p-search__results {
  /* ページネーション */
}
.p-search__results .gsc-cursor-box {
  margin: 14px 0 0 !important;
  padding: 10px 0 0 !important;
  border-top: 1px solid #EEF0F2 !important;
  text-align: center !important;
}
.p-search__results .gsc-cursor-page {
  display: inline-block !important;
  margin: 0 4px !important;
  padding: 6px 10px !important;
  color: #374151 !important;
  background: #fff !important;
}
.p-search__results .gsc-cursor-current-page {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-white) !important;
}
.p-search__query {
  margin: 0 0 12px;
  font-size: 16px;
  color: #6B7280;
}

/* SP微調整 */
@media (max-width: 600px) {
  .p-search__results {
    padding: 14px 12px 10px;
    border-radius: 12px;
    /* ===== SP: ページネーション（巨大カード）をコンパクト化 ===== */
  }
  .p-search__results .gsc-cursor-box,
  .p-search__results .gsc-cursor-box.gs-bidi-start-align {
    margin: 14px 0 0 !important;
    padding: 12px 0 0 !important;
    border-top: 1px solid #EEF0F2 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-align: center !important;
  }
  .p-search__results {
    /* “カード化”の原因になりがちな内側を横並びに寄せる */
  }
  .p-search__results .gsc-cursor-box .gsc-cursor,
  .p-search__results .gsc-cursor-box .gsc-cursor-container,
  .p-search__results .gsc-cursor-box > div,
  .p-search__results .gsc-cursor-box > span {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }
  .p-search__results {
    /* “リンク/ボタン/ページ番号”を全部小さなピルに統一 */
  }
  .p-search__results .gsc-cursor-box a,
  .p-search__results .gsc-cursor-box span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 40px !important;
    height: 36px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    border: 1px solid #E5E7EB !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 13px !important;
    line-height: 1 !important;
    color: #374151 !important;
    /* 背景画像・巨大アイコン系を潰す */
    background-image: none !important;
  }
  .p-search__results {
    /* 現在ページ */
  }
  .p-search__results .gsc-cursor-box .gsc-cursor-current-page,
  .p-search__results .gsc-cursor-box span.gsc-cursor-current-page {
    background: #0B7A3B !important;
    border-color: #0B7A3B !important;
    color: #fff !important;
    font-weight: 700 !important;
  }
  .p-search__results {
    /* 矢印（prev/next）がSVGや画像なら小さくする */
  }
  .p-search__results .gsc-cursor-box svg,
  .p-search__results .gsc-cursor-box img {
    width: 14px !important;
    height: 14px !important;
  }
  .p-search__results {
    /* “巨大カード”に見える余白を持つ要素が残る場合の保険 */
  }
  .p-search__results .gsc-cursor-box * {
    max-width: 100% !important;
  }
  .p-search__results .gsc-webResult.gsc-result {
    padding: 14px 2px !important;
  }
  .p-search__results .gcsc-more-maybe-branding-box {
    display: none;
  }
  .p-search__results {
    /* ナビ全体 */
  }
  .p-search__results .gsc-cursor-box,
  .p-search__results .gsc-cursor-box.gs-bidi-start-align {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 12px 12px !important;
    margin-top: 14px !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    background: #fff !important;
  }
  .p-search__results {
    /* 中央の “ページ2” をセンター固定 */
  }
  .p-search__results .gsc-cursor-box .gsc-cursor-current-page,
  .p-search__results .gsc-cursor-box span.gsc-cursor-current-page {
    flex: 0 0 auto !important;
    margin: 0 auto !important;
    border: 0 !important;
    background: transparent !important;
    color: #374151 !important;
    font-weight: 700 !important;
    min-width: auto !important;
    height: auto !important;
    padding: 0 !important;
  }
  .p-search__results {
    /* 左右の矢印リンク（prev/next）を同じサイズで左右対称に */
  }
  .p-search__results .gsc-cursor-box a {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 36px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid #E5E7EB !important;
    background: #fff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
  }
  .p-search__results {
    /* 矢印アイコンを同じサイズに */
  }
  .p-search__results .gsc-cursor-box a svg,
  .p-search__results .gsc-cursor-box a img {
    width: 14px !important;
    height: 14px !important;
  }
  .p-search__results {
    /* もし矢印が「文字」なら見た目を整える */
  }
  .p-search__results .gsc-cursor-box a {
    font-size: 14px !important;
    line-height: 1 !important;
    color: #374151 !important;
  }
}
.l-header-submenu.is-dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  cursor: grabbing;
}

/* ホバー or フォーカス中は表示 */
@media screen and (min-width: 1025px) {
  .l-header-item.has-submenu:hover .l-header-submenu,
  .l-header-item.has-submenu:focus-within .l-header-submenu {
    display: inline-block;
  }
}

/* =================================================
   サブメニュー：hover/focus-within でもフェードを発火させる
   （JSの .is-open に依存しないので“ふわっと”が安定します）
================================================= */
@media screen and (min-width: 1025px) {
  .l-header-submenu {
    display: inline-block !important;
    visibility: hidden;
    pointer-events: none;
    /* 初期状態（隠す） */
    opacity: 0;
    transform: translate(var(--submenu-shift-x, 0), 12rem) scale(0.985);
    /* ★ここを追加：ふんわり強め */
    transition: opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), transform 520ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 520ms; /* 消える時はアニメ後にhidden */
    will-change: opacity, transform;
  }
  .l-header-item.has-submenu:hover .l-header-submenu,
  .l-header-item.has-submenu:focus-within .l-header-submenu,
  .l-header-submenu.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transform: translate(var(--submenu-shift-x, 0), 0) scale(1);
    /* 表示開始時はすぐvisibleに（遅延なし） */
    transition-delay: 0s, 0s, 0s;
  }
}
/* =================================================
   サブメニュー：計測専用（最終形で測る / アニメはさせない）
================================================= */
@media screen and (min-width: 1025px) {
  .l-header-submenu.is-measure {
    transition: none !important;
    opacity: 0 !important;
    transform: translate(var(--submenu-shift-x, 0), 0) scale(1) !important;
    pointer-events: none !important;
  }
}
/* ページ遷移・アンカー移動時に固定ヘッダー分の余白を確保 */
/*!
layout > footer
------------------------------
*/
.l-footer {
  background: #008f4b;
  color: #fff;
  margin-top: 100rem;
  /* PC時の3カラム幅（.l-footer__cols の grid-template-columns に反映）
     - 値を変えるだけで col-1/2/3 の横幅比率を調整できます。
     - 例）0.9fr / 1fr / 1.2fr など
  */
  --footer-col1: 1fr;
  --footer-col2: 1fr;
  --footer-col3: 1fr;
}

.l-footer a {
  color: inherit;
  text-decoration: none;
}

.l-footer__inner {
  padding: 56px 0 28px;
}

/* --------------------------------
  Logo
-------------------------------- */
.l-footer__logo {
  display: flex;
  justify-content: center;
  margin-bottom: 70px;
}

.l-footer__logo img {
  width: 100%;
  max-width: 520px;
  height: auto;
}

/* --------------------------------
  Blocks (Mobile)
-------------------------------- */
.l-footer__cols {
  display: block;
}

.l-footer__block {
  padding: 24px 0;
}

.l-footer__col .l-footer__block {
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.l-footer__col .l-footer__block + .l-footer__block {
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.l-footer__head {
  font-weight: 500;
  font-size: 18rem;
}

.l-footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-footer__item {
  font-size: 14rem;
  line-height: 2;
  padding-left: 15rem;
}

.l-footer__item + .l-footer__item {
  margin-top: 6px;
}

/* 2-column lists (Mobile)
   ※ desktopでは1列に戻します */
.l-footer__list--two {
  display: block;
}

.l-footer__list--two .l-footer__item {
  margin-top: 0; /* row-gapで管理 */
}

.l-footer__item.is-col-left {
  grid-column: 1;
}

.l-footer__item.is-col-right {
  grid-column: 2;
}

/* --------------------------------
  Pair (売りたい / 買いたい)
-------------------------------- */
.l-footer__pair {
  display: block;
}

.l-footer__pair-item .l-footer__head--next {
  margin-top: 10px;
}

/* --------------------------------
  "└" prefix control
-------------------------------- */
.l-footer__item.is-branch > a {
  position: relative;
  padding-left: 1.2em;
  display: inline-block;
}

.l-footer__item.is-branch > a::before {
  content: "└";
  position: absolute;
  left: 0;
  top: 0;
}

/* 明示的に"└"を付けない */
.l-footer__item.is-no-branch > a {
  padding-left: 0;
}

.l-footer__item.is-no-branch > a::before {
  content: none;
}

/* --------------------------------
  pdf icon
-------------------------------- */
/* liの後ろにアイコン（リンク末尾）を付ける */
.l-footer__item.is-icon-pdf > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.l-footer__item.is-icon-pdf > a::after {
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  background: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
}

/* --------------------------------
  Quick links
-------------------------------- */
.l-footer__item.is-strong > a {
  font-weight: 700;
}

/* 強調リンクは少し大きめ */
.l-footer__quick .l-footer__item.is-strong {
  font-size: 15px;
}

.l-footer__ext-icon {
  width: 16px;
  height: 16px;
  margin-left: 6px;
  vertical-align: -0.2em;
}

/* 外部リンクアイコン（SVG）が改行で落ちないようにする
   - a を横並び（flex）にして、アイコンだけが次行へ送られるのを防止
   - テキストは必要に応じて折り返し可能（a は幅100%として扱われます） */
.l-footer__item.is-external > a {
  display: flex;
  align-items: center;
  gap: 6px;
}

.l-footer__item.is-external > a .l-footer__ext-icon {
  flex: 0 0 auto;
  margin-left: 0; /* gapで余白管理 */
}

/* --------------------------------
  Bottom
-------------------------------- */
.l-footer__bottom {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  text-align: center;
}

.l-footer__copyright {
  font-size: 14px;
  letter-spacing: 0.02em;
}

/* --------------------------------
  一文字下げ
  -------------------------------- */
.l-footer__item.is-indent-1 {
  padding-left: 3em;
}
.l-footer__item.is-indent-2 {
  padding-left: 5.5em;
}

/* --------------------------------
  Desktop
-------------------------------- */
@media (min-width: 1025px) {
  .l-footer__inner {
    padding: 72px 0 36px;
  }
  .l-footer__layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    align-items: start;
  }
  .l-footer__logo {
    justify-content: flex-start;
    margin-bottom: 0;
  }
  .l-footer__logo img {
    max-width: 520px;
  }
  .l-footer__cols {
    display: grid;
    grid-template-columns: var(--footer-col1) var(--footer-col2) var(--footer-col3);
  }
  .l-footer__block {
    padding: 0;
  }
  .l-footer__col .l-footer__block {
    border-top: none;
  }
  .l-footer__col .l-footer__block + .l-footer__block {
    border-top: none;
  }
  .l-footer__block + .l-footer__block {
    margin-top: 26px;
  }
  .l-footer__head {
    font-size: 16rem;
    margin-bottom: 12px;
  }
  /* Desktopでは1列 */
  .l-footer__list--two {
    display: block;
  }
  /* list--twoでも、desktopでは縦の余白を戻す */
  .l-footer__list--two .l-footer__item + .l-footer__item {
    margin-top: 6px;
    padding-left: 15rem;
  }
  .l-footer__item.is-col-left,
  .l-footer__item.is-col-right {
    grid-column: auto;
  }
  /* Desktopでは縦積み */
  .l-footer__pair {
    display: block;
  }
  .l-footer__pair-item + .l-footer__pair-item {
    margin-top: 22px;
  }
  .l-footer__bottom {
    margin-top: 44px;
    padding-top: 22px;
  }
  .is-col-moreleft {
    padding-left: 30rem;
  }
}
/* --------------------------------
  「名簿」系だけ追加インデント
-------------------------------- */
.l-footer__item.is-footer-indent-1 {
  padding-left: 60rem !important;
}
.l-footer__item.is-footer-indent-2 {
  padding-left: 90rem !important;
}

/* 各ページ */
/*!
page > top > top-slide(swiper)
------------------------------
*/
/* ▼ ページネーションは画像の下に固定（全サイズ共通） */
.swiper-pagination {
  position: static !important;
  text-align: center;
}

/* 非アクティブのドット */
.swiper-pagination-bullet {
  background-color: var(--color-primary);
  opacity: 0.4;
}

/* アクティブのドット */
.swiper-pagination-bullet-active {
  background-color: var(--color-primary) !important;
  opacity: 1;
}

.swiper {
  --swiper-navigation-size: 20px;
}
@media screen and (min-width: 1025px) {
  .swiper {
    margin-top: 6rem;
  }
}

.swiper-button-prev,
.swiper-button-next {
  display: block !important;
  color: var(--color-second) !important;
  width: 34px !important;
  height: 34px !important;
  font-size: 20px !important;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
}

.swiper-button-prev {
  left: 8px;
}

.swiper-button-next {
  right: -18px;
}

@media screen and (min-width: 1025px) {
  /* ▼ 初期状態（左右スライド）＋スライド幅の基本を統合 */
  .swiper-slide {
    width: 1120px !important;
    aspect-ratio: 1100/420;
    height: auto;
    transform: scale(0.92);
  }
  /* ▼ アクティブスライドだけ scale(1) */
  .swiper-slide-active {
    transform: scale(1) !important;
  }
  /* 左右スライドの縮小 */
  .swiper-slide-prev,
  .swiper-slide-next {
    transform: scale(0.82) translateZ(0);
  }
  /* ▼ 矢印位置（中央1100pxに絶対揃う版） */
  .swiper-button-prev,
  .swiper-button-next {
    width: auto !important;
    height: auto !important;
    font-size: inherit !important;
    --swiper-navigation-size: 44px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-primary);
    z-index: 20;
  }
  .swiper-button-prev {
    left: calc(50% - 620px);
  }
  .swiper-button-next {
    right: calc(50% - 620px);
  }
}
/*!
page > top > top-about-reins
------------------------------
*/
.top-about-reins {
  font-size: 16rem;
  line-height: 1.75;
  margin-top: 25rem;
}
@media screen and (min-width: 1025px) {
  .top-about-reins {
    margin-top: 70rem;
  }
}

@media screen and (min-width: 1025px) {
  .top-about-reins-description {
    display: flex;
    justify-content: space-between;
  }
}
.top-about-reins-description img {
  max-width: 303rem;
  margin-inline: auto;
}
@media screen and (min-width: 1025px) {
  .top-about-reins-description img {
    margin-inline: unset;
  }
}

.top-about-reins-title {
  font-size: 26rem;
  font-weight: 500;
}
@media screen and (min-width: 1025px) {
  .top-about-reins-title {
    font-size: 32rem;
  }
}
.top-about-reins-title:before {
  content: url("../images/top/top-q.svg");
  position: relative;
  top: 10rem;
}
@media screen and (min-width: 1025px) {
  .top-about-reins-title:before {
    top: 5rem;
  }
}

.top-about-reins-text {
  text-align: justify;
}

.top-about-reins-btn {
  text-align: center;
  margin: 0 0 60rem 0;
}
@media screen and (min-width: 1025px) {
  .top-about-reins-btn {
    margin: -70rem -90px 93rem 0;
  }
}

.top-about-reins-note {
  font-size: 12rem;
  padding-top: 8rem;
}

/*!
page > top > top-tabCards
------------------------------
*/
/* ------------------------------------------------------------
  Component
------------------------------------------------------------ */
.top-tabCards {
  /* タブに応じた全体背景切替（アクティブ時） */
}
.top-tabCards[data-theme=tab01] .top-tabCards__panelWrap {
  background: var(--top-tab-01);
}
.top-tabCards[data-theme=tab02] .top-tabCards__panelWrap {
  background: var(--top-tab-02);
}
.top-tabCards[data-theme=tab03] .top-tabCards__panelWrap {
  background: var(--top-tab-03);
}
.top-tabCards__tabs {
  display: flex;
  justify-content: space-between;
  /* SP 固定 */
  gap: 6px;
  padding: 0;
  position: relative;
  z-index: 2;
  margin-top: 14px;
  /* 固定幅のため、狭い端末での保険 */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 1025px) {
  .top-tabCards__tabs {
    /* PC 固定 */
    gap: 29px;
    padding: 0 24px;
    justify-content: center;
    overflow: visible;
  }
}
.top-tabCards__tab {
  border: 0;
  cursor: pointer;
  /* SP 固定 */
  width: 33%;
  padding: 12px 0;
  min-height: 50px;
  border-radius: 10px 10px 0 0;
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.5;
  text-align: center;
}
.top-tabCards__tab:focus-visible {
  outline: 3px solid rgba(243, 195, 22, 0.85);
  outline-offset: 3px;
}
@media screen and (min-width: 1025px) {
  .top-tabCards__tab {
    /* PC 固定 */
    width: 348px;
    padding: 16px 34px;
    min-height: 54px;
    border-radius: 12px 12px 0 0;
    font-size: 24rem;
    font-weight: 500;
    line-height: 1;
  }
}
.top-tabCards {
  /* タブ別 背景色（アクティブ/非アクティブ共通） */
}
.top-tabCards__tab.is-tab01 {
  background: var(--top-tab-01);
}
.top-tabCards__tab.is-tab02 {
  background: var(--top-tab-02);
}
.top-tabCards__tab.is-tab03 {
  background: var(--top-tab-03);
}
.top-tabCards {
  /* -----------------------------
    ▼文字色ルール（差分）
    tab01: 白 / tab02・tab03: 常に var(--color-primary)
  ----------------------------- */
}
.top-tabCards__tab.is-tab01, .top-tabCards__tab.is-tab02, .top-tabCards__tab.is-tab03 {
  color: var(--color-white);
}
.top-tabCards__tab.is-tab01:not(.is-active), .top-tabCards__tab.is-tab02:not(.is-active), .top-tabCards__tab.is-tab03:not(.is-active) {
  color: rgba(255, 255, 255, 0.86);
}
.top-tabCards__panelWrap {
  /* 初期値（tab01想定） */
  background: var(--color-primary);
  padding: 40px 24px 44px;
  margin-top: 0;
}
.top-tabCards__inner {
  max-width: 1140px;
  margin: 0 auto;
}
.top-tabCards {
  /* パネル表示制御（hidden対策はJSで行う） */
}
.top-tabCards__panel {
  display: none;
}
.top-tabCards__panel.is-active {
  display: block;
}

@media screen and (min-width: 1025px) {
  .top-tabCards__tab {
    --lift: 5px;
    --bridge-bleed: 2px;
    --tab-bg: transparent;
    background: var(--tab-bg);
    transform: translate3d(0, 0, 0);
    box-shadow: 0 0 0 0 var(--tab-bg);
    transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease;
    will-change: transform, filter;
    backface-visibility: hidden;
  }
  .top-tabCards__tab:not(.is-active):hover,
  .top-tabCards__tab:not(.is-active):focus-visible {
    transform: translate3d(0, calc(var(--lift) * -1), 0);
    filter: brightness(0.96) saturate(1.03);
    box-shadow: 0 calc(var(--lift) + var(--bridge-bleed)) 0 0 var(--tab-bg);
    color: #fff;
  }
  /* タブごとの背景 */
  .top-tabCards__tab.is-tab01 {
    --tab-bg: var(--top-tab-01);
  }
  .top-tabCards__tab.is-tab02 {
    --tab-bg: var(--top-tab-02);
  }
  .top-tabCards__tab.is-tab03 {
    --tab-bg: var(--top-tab-03);
  }
}
@media (prefers-reduced-motion: reduce) {
  .top-tabCards__tab {
    transition: none;
  }
}
.top-tabCards__label {
  display: inline-block;
  transform: translate3d(0, 0, 0) scale(1);
  transition: transform 160ms ease, color 160ms ease;
  transform-origin: center;
}

.top-tabCards__tab:not(.is-active):hover .top-tabCards__label,
.top-tabCards__tab:not(.is-active):focus-visible .top-tabCards__label {
  transform: translate3d(0, 0, 0) scale(1.04);
}

/* ------------------------------------------------------------
  Cards（差分：カード幅＆リンク化＆疑似要素CTA）
------------------------------------------------------------ */
/* ▼カード横幅要件
  SP：最大360px（中央寄せ）
  PC：230px固定 ×3（中央寄せ）
*/
.top-cardGrid {
  display: grid;
  /* SP */
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 24px;
}
@media screen and (min-width: 1025px) {
  .top-cardGrid {
    /* PC */
    grid-template-columns: repeat(3, 250px);
    justify-content: center;
    gap: 82px;
  }
}

/* =========================================
  panel-3 だけ：カード中身を上下左右中央揃え（SP/PC共通）
========================================= */
#panel-3 {
  /* card本体（クラス名が c-card / top-card の両対応） */
}
#panel-3 .c-card,
#panel-3 .top-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
#panel-3 {
  /* アイコン */
}
#panel-3 .c-card__icon,
#panel-3 .top-card__icon {
  margin: 0 0 10px;
}
#panel-3 {
  /* タイトル（疑似要素after運用でも中央維持） */
}
#panel-3 .c-card__title,
#panel-3 .top-card__title {
  margin: 6px 0 10px;
  justify-content: center;
}
#panel-3 {
  /* 本文も中央 */
}
#panel-3 .c-card__text,
#panel-3 .top-card__text {
  text-align: center;
}

/* =========================================
  panel-3 だけ「4枚固定」で横並び（PCのみ）
========================================= */
@media screen and (min-width: 1025px) {
  #panel-3 .top-cardGrid {
    grid-template-columns: repeat(4, 230px);
    justify-content: center;
    gap: 48px;
  }
}
/* ★カード全体を a にする（差分） */
.top-card {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  /* SP：最大360px */
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .top-card {
    /* PC：250px固定 */
    width: 255px;
    max-width: none;
  }
}
.top-card {
  background: #fff;
  border-radius: 10px;
  padding: 26px 22px 22px;
  min-height: 250px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
@media screen and (min-width: 1025px) {
  .top-card {
    padding: 26px 19px 22px;
  }
}
.top-card:focus-visible {
  outline: 3px solid rgba(243, 195, 22, 0.85);
  outline-offset: 3px;
}
.top-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
}
.top-card__icon {
  display: grid;
  place-items: center;
  width: auto;
  height: 72px;
  margin: 0 auto 10px;
}
.top-card__head {
  text-align: center;
}
.top-card__icon img {
  width: 56px;
  height: 56px;
}
.top-card.top-card--shake .top-card__icon img {
  width: 93px;
  height: 81px;
}
.top-card.top-card--flow .top-card__icon img {
  width: 80px;
  height: 67px;
}
.top-card.top-card--login .top-card__icon img {
  width: 83px;
  height: 72px;
}
.top-card.top-card--summary .top-card__icon img {
  width: 93px;
  height: 81px;
}
.top-card.top-card--data .top-card__icon img {
  width: 78px;
  height: 78px;
}
.top-card.top-card--about .top-card__icon img {
  width: 83px;
  height: 72px;
}
.top-card.top-card--rijichou .top-card__icon img {
  width: 81px;
  height: 81px;
}
.top-card.top-card--outline .top-card__icon img {
  width: 81px;
  height: 81px;
}
.top-card.top-card--history .top-card__icon img {
  width: 81px;
  height: 81px;
}
.top-card.top-card--info .top-card__icon img {
  width: 81px;
  height: 81px;
}
.top-card {
  /* ★タイトルに疑似要素で矢印を付与 */
}
.top-card__title {
  margin: 6px 0 10px;
  text-align: center;
  font-size: 16rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.top-card__title::after {
  content: "";
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background-color: #f3c316;
  /* 白矢印（SVG） */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 7l5 5-5 5' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px 18px;
  flex: 0 0 auto;
  transform: translateY(1px);
}
.top-card__text {
  margin: 0;
  font-size: 14rem;
  line-height: 1.7;
  color: #444;
  text-align: justify;
}

.top-placeholder {
  margin: 0;
  padding: 16px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: #fff;
}

/*!
page > top > top-news
------------------------------
*/
.top-news {
  padding: 56rem 0 64rem;
  background: #fff;
}

.top-news__head {
  text-align: center;
  margin-bottom: 24rem;
}

.top-news__en {
  font-family: "futura-pt", "Futura PT", Futura, "Trebuchet MS", Arial, sans-serif;
  color: var(--color-primary);
  font-weight: 500;
  font-size: 16rem;
  letter-spacing: 0.08em;
}

.top-news__jp {
  margin-top: 8rem;
  font-weight: 400;
  font-size: 28rem;
}

.top-news__list {
  border-top: 1px dotted var(--ui-news-border);
}

.top-news__group {
  padding: 20rem 0;
  border-bottom: 1px dotted var(--ui-news-border);
}

.top-news__date {
  margin-bottom: 12rem;
  color: #666;
  font-size: 14rem;
}

.top-news__items {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16rem;
}

.top-news__item {
  display: grid;
  grid-template-columns: 82rem 1fr;
  -moz-column-gap: 16rem;
       column-gap: 16rem;
  align-items: center;
}

.top-news__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 86rem;
  height: 28rem;
  border-radius: 9999rem;
  background: var(--color-button);
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: 0.05em;
}
.top-news__tag.is-empty {
  background: transparent;
}

.top-news__link {
  color: #333;
  text-decoration: none;
  line-height: 1.8;
  font-size: 14rem;
}

@media (any-hover: hover) {
  .top-news__link:hover {
    text-decoration: underline;
  }
}
.top-news__footer {
  margin-top: 40rem;
  text-align: center;
}

/* PC */
@media screen and (min-width: 1025px) {
  .top-news {
    padding: 72rem 0 88rem;
  }
  .top-news__head {
    text-align: left;
    margin-bottom: 28rem;
  }
  .top-news__en {
    font-size: 24rem;
  }
  .top-news__jp {
    font-size: 32rem;
  }
  .top-news__group {
    display: grid;
    grid-template-columns: 140rem 1fr;
    -moz-column-gap: 60rem;
         column-gap: 60rem;
    padding: 28rem 0;
  }
  .top-news__date {
    margin: 2rem 0 0;
    font-size: 16rem;
    padding-left: 40rem;
  }
  .top-news__item {
    grid-template-columns: 92rem 1fr;
    -moz-column-gap: 22rem;
         column-gap: 22rem;
  }
}
/*!
page > about > about-reins
------------------------------
*/
.about-description {
  font-size: 16rem;
  line-height: 1.75;
  text-align: justify;
}

.about-what-button {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 12rem;
  margin: 30rem 0;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .about-what-button {
    gap: 67rem;
    margin: 70rem 0 80rem 0;
  }
}

/*!
page > about > about-4reins
------------------------------
*/
.about-4reins {
  margin-top: 48rem;
}

/* about > about-4reins : SP modal svg */
.about-4reins__thumb {
  width: 100%;
  height: auto;
  display: block;
}

/* モーダル内SVG：下部が切れないように余白を確保（iPhoneのセーフエリアも考慮） */
.img-modal__media--svg {
  max-height: calc(100vh - 120px);
  overflow: auto;
  box-sizing: border-box;
  padding-top: 24rem;
  padding-bottom: calc(24rem + env(safe-area-inset-bottom));
}

/* dialog内のSVG表示（リンクをクリックできるように） */
.img-modal__svgObj {
  width: 100%;
  height: auto;
  display: block;
  pointer-events: auto;
}

.about-4reins__figure {
  margin-top: 24rem;
  margin-bottom: 30rem;
}

.about-4reins__svgWrap {
  width: 100%;
  max-width: 1105rem;
  margin-inline: auto;
  position: relative;
  aspect-ratio: 1105/965;
}

.about-4reins__svgWrap > object,
.about-4reins__svgWrap > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

@media screen and (min-width: 1025px) {
  .about-4reins__figure {
    margin-top: 40rem;
    margin-bottom: 60rem;
  }
}
/*!
page > about > about-merit
------------------------------
*/
.about-merit {
  margin-top: 18rem;
}

/* =====================================
   レインズを利用する3つのメリット（3カラム）
===================================== */
.about-merit-3merit {
  margin: 24rem 0 100rem;
}

.about-meritCards {
  display: grid;
  gap: 16rem;
}

.about-meritCard {
  position: relative;
  overflow: hidden;
  border-radius: 16rem;
  padding: 28rem 22rem 84rem;
  color: #000;
  box-sizing: border-box;
  min-height: 440rem;
}
.about-meritCard__title {
  margin: 0;
  text-align: center;
  font-size: 22rem;
  font-weight: 700;
  line-height: 1.35;
}
.about-meritCard__icon {
  margin-top: 22rem;
  display: grid;
  place-items: center;
}
.about-meritCard__icon img {
  width: 140rem;
  height: auto;
  display: block;
}
.about-meritCard__text {
  margin: 20rem 0 0;
  font-size: 16rem;
  line-height: 1.75;
  letter-spacing: 0.02em;
}
.about-meritCard__num {
  position: absolute;
  right: 18rem;
  bottom: -20rem;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 110rem;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 255, 255, 0.55);
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.about-meritCard--mint {
  background: #7fcbb1;
}
.about-meritCard--yellow {
  background: #ffe11a;
}
.about-meritCard--olive {
  background: #9aa800;
}

@media screen and (min-width: 1025px) {
  .about-meritCards {
    grid-template-columns: repeat(3, 1fr);
    gap: 28rem;
  }
  .about-meritCard {
    border-radius: 5rem;
    padding: 34rem 26rem 92rem;
    min-height: 460rem;
  }
  .about-meritCard__title {
    font-size: 20rem;
  }
  .about-meritCard__icon img {
    width: 115rem;
  }
  .about-meritCard__num {
    right: 20rem;
    font-size: 130rem;
  }
}
/*!
page > about > about-symbol
------------------------------
*/
.about-symbol {
  margin-top: 48rem;
}

.about-symbol__figure {
  width: 287rem;
  margin-inline: auto;
  padding: 100rem 0 80rem;
}

.about-what-button .c-button--arrow--black {
  padding: 10px 24px 7px 24px;
  gap: 4px;
}
@media screen and (min-width: 1025px) {
  .about-what-button .c-button--arrow--black {
    padding: 10px 20px 7px 45px;
    gap: 24px;
  }
}

.about-what-button .c-button--arrow {
  padding: 10px 24px 7px 24px;
  gap: 4px;
}
@media screen and (min-width: 1025px) {
  .about-what-button .c-button--arrow {
    padding: 10px 20px 7px 45px;
    gap: 24px;
  }
}

/*!
page > sell
------------------------------
*/
.sell-flow-title {
  color: #F7BA00;
  font-weight: 600;
}

.sell-flow-footer {
  text-align: center;
}

.sell-flow-attention {
  padding: 60rem 0;
  font-size: 20rem;
}

/*
flow
------------------------------ */
.sell-flow {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sell-flow__item {
  position: relative;
  width: 100%;
  border-radius: 0 40rem 0 0;
  overflow: hidden;
  padding: 28rem 0;
}
.sell-flow__item--step1, .sell-flow__item--step3, .sell-flow__item--step5, .sell-flow__item--step7, .sell-flow__item--step9, .sell-flow__item--step11 {
  background: #FBEA8F;
}
.sell-flow__item--step2, .sell-flow__item--step4, .sell-flow__item--step6, .sell-flow__item--step8, .sell-flow__item--step10 {
  background: #FBF6E6;
}
.sell-flow__item {
  /* step間は余白のみ */
}
.sell-flow__item:not(:last-child) {
  margin-bottom: 15rem;
}

.sell-flow__inner {
  width: 100%;
  padding: 0 20rem;
  display: flex;
  flex-direction: column;
  gap: 16rem;
}

.sell-flow__media {
  display: flex;
  justify-content: center;
}
.sell-flow__media img {
  width: min(260rem, 72vw);
  height: auto;
  display: block;
}

.sell-flow__content {
  padding: 0;
  /* flex横並び時にテキストが右へはみ出して「消える」のを防ぐ */
  min-width: 0;
  /* 長いURL/英数字が混ざっても折り返す保険 */
  overflow-wrap: anywhere;
}

/*
  step表示（solid + dotted を1本に見せる）
  - .sell-flow__step::after の右端から .sell-flow__metaLine の点線が連結するイメージ
  - 点線を左に食い込ませ、固い線を上に重ねて「一本」に見せる
*/
.sell-flow__meta {
  display: flex;
  align-items: flex-end;
  gap: 0;
  margin: 0 0 14rem;
  position: relative;
}

.sell-flow__step {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 14rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-primary, #008F4B);
  margin: 0;
  position: relative;
  padding-bottom: 10rem;
  z-index: 1;
  /* 点線の上に固い線を重ねる */
}
.sell-flow__step::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 16rem;
  height: 2rem;
  border-radius: 999rem;
  background: var(--color-primary, #008F4B);
}

.sell-flow__stepNum {
  font-size: 24rem;
  font-weight: 500;
  color: inherit;
}

.sell-flow__metaLine {
  flex: 1 1 auto;
  /* stepの下線（16rem）部分に点線を潜り込ませる */
  margin-left: -16rem;
  padding-bottom: 10rem;
  border-bottom: 1px dotted #bdbdbd;
  z-index: 0;
}

.sell-flow__title {
  font-size: 22rem;
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 10rem;
  color: #111;
}

.sell-flow__text {
  margin: 0;
  font-size: 16rem;
  line-height: 1.9;
  color: #333;
}

/* step title colors */
.sell-flow__item--step2 .sell-flow__title,
.sell-flow__item--step4 .sell-flow__title,
.sell-flow__item--step6 .sell-flow__title,
.sell-flow__item--step8 .sell-flow__title,
.sell-flow__item--step10 .sell-flow__title {
  color: var(--color-primary, #008F4B);
}

/* step4 check box */
.sell-flow__checkBox {
  margin-top: 18rem;
  background: #FBF6E6;
  border: 1px solid #d8d8d8;
  border-radius: 12rem;
  padding: 18rem 16rem;
}

.sell-flow__checkRow {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "icon" "text" "btn";
  gap: 0;
  justify-items: center;
  align-items: start;
}

.sell-flow__checkIcon {
  grid-area: icon;
}
.sell-flow__checkIcon img {
  width: 120rem;
  height: auto;
  display: block;
}

.sell-flow__checkText {
  grid-area: text;
  width: 100%;
  margin: 0;
  font-size: 16rem;
  line-height: 1.9;
  color: #333;
  text-align: justify;
}

.sell-flow__divider {
  height: 1px;
  background: #d8d8d8;
  margin: 18rem 0;
}

/* PC */
@media screen and (min-width: 1025px) {
  .sell-flow__item {
    /* 指定：0 40rem 0 0 */
    border-radius: 0 40rem 0 0;
    padding: 40rem 60rem;
  }
  .sell-flow__item:not(:last-child) {
    margin-bottom: 30rem;
  }
  .sell-flow__inner {
    /* l-container-s 前提：max-width は持たせない */
    padding: 0;
    flex-direction: row;
    gap: 0;
    align-items: center;
  }
  /* PC：step04は「上段（画像+本文）／下段（CHECK横いっぱい）」に固定 */
  .sell-flow__item--step4 .sell-flow__inner,
  .sell-flow__item--step6 .sell-flow__inner,
  .sell-flow__item--step7 .sell-flow__inner,
  .sell-flow__item--step8 .sell-flow__inner {
    display: grid;
    /* flexを上書き */
    grid-template-columns: 320rem 1fr;
    grid-template-areas: "media content" "check check";
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 0;
    align-items: start;
  }
  .sell-flow__item--step4 .sell-flow__media,
  .sell-flow__item--step6 .sell-flow__media,
  .sell-flow__item--step7 .sell-flow__media,
  .sell-flow__item--step8 .sell-flow__media {
    grid-area: media;
    align-self: start;
  }
  .sell-flow__item--step4 .sell-flow__content,
  .sell-flow__item--step6 .sell-flow__content,
  .sell-flow__item--step7 .sell-flow__content,
  .sell-flow__item--step8 .sell-flow__content {
    grid-area: content;
    min-width: 0;
    /* 文章の潰れ防止 */
  }
  .sell-flow__item--step4 .sell-flow__checkBox,
  .sell-flow__item--step6 .sell-flow__checkBox,
  .sell-flow__item--step7 .sell-flow__checkBox,
  .sell-flow__item--step8 .sell-flow__checkBox {
    grid-area: check;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
  .sell-flow__media {
    justify-content: flex-start;
    flex: 0 0 320rem;
  }
  .sell-flow__media img {
    width: 200rem;
  }
  .sell-flow__title {
    font-size: 28rem;
    margin-bottom: 12rem;
  }
  .sell-flow__checkBox {
    padding: 24rem;
    margin-top: 10rem;
  }
  .sell-flow__checkRow {
    grid-template-columns: 90rem 1fr;
    grid-template-areas: "icon text" ". btn";
    align-items: center;
    justify-items: stretch;
    -moz-column-gap: 24rem;
         column-gap: 24rem;
  }
  .sell-flow__checkIcon img {
    width: 90rem;
  }
  .sell-flow__btn {
    margin-top: 0;
    width: auto;
    justify-self: end;
    min-width: 220rem;
    font-size: 15rem;
    min-height: 52rem;
  }
}
/* ==============================
 step04 checkBox 見た目調整（上書き）
============================== */
/* 共通（SP/PC共通のベース） */
.sell-flow__checkBox {
  background: #fff;
  /* デザインは白っぽい箱 */
  border: 1px solid #d8d8d8;
  border-radius: 12rem;
}

.sell-flow__divider {
  height: 0;
  background: none;
  border-top: 1px solid #d8d8d8;
  /* 1pxの区切り線 */
}

/* ボタン（共通） */
.sell-flow__btn {
  white-space: nowrap;
}

.sell-flow__pdfBadge {
  border-radius: 10rem;
}

/* PC */
@media screen and (min-width: 1025px) {
  /* ボックスの内側余白をデザインの密度に */
  .sell-flow__checkBox {
    padding: 34rem 20rem;
  }
  /* 1行：アイコン / テキスト / ボタン */
  .sell-flow__checkRow {
    grid-template-columns: 110rem 1fr;
    grid-template-areas: "icon text" ". btn";
    align-items: start;
    justify-items: stretch;
    -moz-column-gap: 32rem;
         column-gap: 32rem;
    row-gap: 16rem;
  }
  .sell-flow__checkIcon img {
    width: 110rem;
    /* アイコン少し大きめ */
  }
  .sell-flow__checkText {
    font-size: 16rem;
    line-height: 2;
  }
  .sell-flow__divider {
    margin: 28rem 0;
  }
  /* ボタンをデザインの大きさに */
  .sell-flow__btn {
    min-width: 340rem;
    min-height: 68rem;
    padding: 0 34rem;
    font-size: 18rem;
    gap: 14rem;
  }
  .sell-flow__btn::after {
    width: 10rem;
    height: 10rem;
    border-top: 3rem solid currentColor;
    border-right: 3rem solid currentColor;
  }
  .sell-flow__pdfBadge {
    width: 52rem;
    height: 38rem;
    font-size: 12rem;
    margin-left: 14rem;
  }
}
/* =========================================
 step04：checkBox内ボタンが共通コンポーネント（.c-button-rounded 系）になった場合の調整
 - 既存の .sell-flow__btn 前提の指定を壊さず、step04 内だけ上書きする
========================================= */
.sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded,
.sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded--pdf,
.sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded--pdf {
  grid-area: btn;
  width: 100%;
  justify-self: center; /* SPは中央＆横いっぱい */
  margin-top: 16rem;
}

/* PC：右寄せ＆必要以上に伸ばさない */
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkRow,
  .sell-flow__item--step6 .sell-flow__checkRow,
  .sell-flow__item--step7 .sell-flow__checkRow,
  .sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded--pdf {
    width: auto;
    justify-self: end;
    min-width: 225rem; /* デザインのボタン幅 */
  }
}
/* =========================================
 step04 checkRow：PCは「本文の下にボタン（右寄せ）」配置
========================================= */
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkRow,
  .sell-flow__item--step6 .sell-flow__checkRow,
  .sell-flow__item--step7 .sell-flow__checkRow,
  .sell-flow__item--step8 .sell-flow__checkRow {
    display: grid;
    /* 2列（アイコン／本文+ボタン） */
    grid-template-columns: 110rem 1fr;
    /* 2段（上：本文、下：ボタン） ※アイコンは2段にまたがる */
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 32rem;
         column-gap: 32rem;
    row-gap: 14rem;
    align-items: start; /* 中央揃えを解除 */
  }
  .sell-flow__item--step4 .sell-flow__checkIcon,
  .sell-flow__item--step6 .sell-flow__checkIcon,
  .sell-flow__item--step7 .sell-flow__checkIcon,
  .sell-flow__item--step8 .sell-flow__checkIcon {
    grid-area: icon;
    align-self: start;
  }
  .sell-flow__item--step4 .sell-flow__checkText,
  .sell-flow__item--step6 .sell-flow__checkText,
  .sell-flow__item--step7 .sell-flow__checkText,
  .sell-flow__item--step8 .sell-flow__checkText {
    grid-area: text;
  }
  .sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end; /* 右寄せ */
    width: auto; /* 横幅はボタン自身に任せる */
    max-width: none;
  }
}
/* =========================================================
   FIX (PC): step04 / step06-08 CHECK row layout
   - DevToolsで確認できた最適値（grid + btnを本文下へ）
   - 既存のPCレイアウト（sell-flow__inner 等）は触らず、checkRowだけ上書き
========================================================= */
@media screen and (min-width: 1025px) {
  .sell-flow__checkIcon img {
    width: 90rem;
    height: auto;
  }
  .sell-flow__item--step4 .sell-flow__checkRow,
  .sell-flow__item--step6 .sell-flow__checkRow,
  .sell-flow__item--step7 .sell-flow__checkRow,
  .sell-flow__item--step8 .sell-flow__checkRow {
    display: grid;
    grid-template-columns: 143rem 1fr;
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
  }
  .sell-flow__item--step4 .sell-flow__checkIcon,
  .sell-flow__item--step6 .sell-flow__checkIcon,
  .sell-flow__item--step7 .sell-flow__checkIcon,
  .sell-flow__item--step8 .sell-flow__checkIcon {
    grid-area: icon;
    align-self: start;
  }
  .sell-flow__item--step4 .sell-flow__checkText,
  .sell-flow__item--step6 .sell-flow__checkText,
  .sell-flow__item--step7 .sell-flow__checkText,
  .sell-flow__item--step8 .sell-flow__checkText {
    grid-area: text;
    align-self: start;
  }
  .sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step4 .sell-flow__checkRow > .c-button-rounded--pdf,
  .sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step6 .sell-flow__checkRow > .c-button-rounded--pdf,
  .sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step7 .sell-flow__checkRow > .c-button-rounded--pdf,
  .sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded,
  .sell-flow__item--step8 .sell-flow__checkRow > .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: auto;
    max-width: none;
  }
}
/* ===========================
   step4: checkRow 揃え（PCのみ）
   =========================== */
@media screen and (min-width: 1025px) {
  /* step4だけに限定して安全に上書き */
  .sell-flow__item--step4 .sell-flow__checkRow {
    display: grid;
    grid-template-columns: 143rem 1fr;
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
  }
  /* ←ここが肝：左右ズレの原因を全部潰す */
  .sell-flow__item--step4 .sell-flow__checkIcon {
    grid-area: icon;
    justify-self: start;
    align-self: start;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: flex-start;
  }
  .sell-flow__item--step4 .sell-flow__checkIcon img {
    width: 90rem;
    height: auto;
    display: block;
    margin: 0; /* auto殺し */
  }
  .sell-flow__item--step4 .sell-flow__checkText {
    grid-area: text;
    min-width: 0;
    /* テキスト幅を広げたいなら、列幅はいじらず gap/外側余白で稼ぐのが安全 */
  }
  .sell-flow__item--step4 .c-button-rounded,
  .sell-flow__item--step4 .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: auto; /* 幅いっぱい防止 */
    max-width: none;
    display: inline-flex; /* 念のため */
  }
}
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkRow {
    -moz-column-gap: 32rem;
         column-gap: 32rem;
  }
  .sell-flow__item--step4 .sell-flow__checkBox {
    margin-inline: auto;
  }
}
/* ------------------------------------------------------------
   PC: checkRow alignment fix (step4/6/7/8)
   - Keep icon column fixed, text expands, button sits under text (right)
   - Prevent icon from drifting when text lines are short (step4)
------------------------------------------------------------ */
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkRow,
  .sell-flow__item--step6 .sell-flow__checkRow,
  .sell-flow__item--step7 .sell-flow__checkRow,
  .sell-flow__item--step8 .sell-flow__checkRow {
    /* match DevTools values */
    grid-template-columns: 90rem minmax(0, 1fr);
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
    justify-items: start; /* <- was inherited as center from SP */
  }
  .sell-flow__item--step4 .sell-flow__checkIcon,
  .sell-flow__item--step6 .sell-flow__checkIcon,
  .sell-flow__item--step7 .sell-flow__checkIcon,
  .sell-flow__item--step8 .sell-flow__checkIcon {
    justify-self: start;
    align-self: start;
  }
  .sell-flow__item--step4 .sell-flow__checkIcon img,
  .sell-flow__item--step6 .sell-flow__checkIcon img,
  .sell-flow__item--step7 .sell-flow__checkIcon img,
  .sell-flow__item--step8 .sell-flow__checkIcon img {
    width: 90rem;
    height: auto;
    display: block;
  }
  /* text column: allow it to use the available width */
  .sell-flow__item--step4 .sell-flow__checkText,
  .sell-flow__item--step6 .sell-flow__checkText,
  .sell-flow__item--step7 .sell-flow__checkText,
  .sell-flow__item--step8 .sell-flow__checkText {
    min-width: 0;
  }
  /* button: keep compact and right-aligned under the text */
  .sell-flow__item--step4 .c-button-rounded,
  .sell-flow__item--step4 .c-button-rounded--pdf,
  .sell-flow__item--step6 .c-button-rounded,
  .sell-flow__item--step6 .c-button-rounded--pdf,
  .sell-flow__item--step7 .c-button-rounded,
  .sell-flow__item--step7 .c-button-rounded--pdf,
  .sell-flow__item--step8 .c-button-rounded,
  .sell-flow__item--step8 .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
  }
}
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkIcon,
  .sell-flow__item--step6 .sell-flow__checkIcon,
  .sell-flow__item--step7 .sell-flow__checkIcon,
  .sell-flow__item--step8 .sell-flow__checkIcon {
    justify-self: center;
    transform: translateX(22rem); /* +方向で右へ。5〜15remあたりで調整 */
  }
}
/* =========================================================
   OVERRIDE (PC 1025px〜)
   step04：checkBox内の2つ目（=最後）のcheckRowのみ調整
   - アイコン位置は現状のまま
   - テキストを左へ広げるため column-gap を 0 に
   - 行を親幅いっぱいに伸ばす（width/justify-self）
========================================================= */
@media screen and (min-width: 1025px) {
  .sell-flow__item--step4 .sell-flow__checkBox > .sell-flow__checkRow:last-of-type {
    width: 100%;
    justify-self: stretch;
    -moz-column-gap: 56rem;
         column-gap: 56rem;
  }
  .sell-flow__item--step4 .sell-flow__checkBox > .sell-flow__checkRow:last-of-type > .sell-flow__checkText {
    min-width: 0;
  }
}
/* ============================================================
   sell-flow: regressions hotfix (meta line / sp order / media center)
   ※ 既存の見た目を崩さず「後勝ち」させるため、ファイル末尾に追加してください。
   ============================================================ */
.sell-flow__item .sell-flow__media {
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 1025px) {
  .sell-flow__item .sell-flow__media {
    justify-content: start;
  }
}

/* SP：step（content）を画像より上へ */
.sell-flow__item .sell-flow__content {
  order: -1;
}

@media screen and (min-width: 1025px) {
  .sell-flow__item .sell-flow__content {
    order: 0;
  }
}
/* step下線と点線（metaLine）の接続を“固定幅”で安定させる */
.sell-flow__item .sell-flow__meta {
  --sf-step-col: 90rem; /* step表示ブロックの幅（必要なら微調整） */
  --sf-underline: 34rem; /* step下線の長さ */
  display: flex;
  align-items: flex-end;
  gap: 0;
}

.sell-flow__item .sell-flow__step {
  flex: 0 0 var(--sf-step-col);
}

.sell-flow__item .sell-flow__step::after {
  width: var(--sf-underline);
}

/* 点線を下線終端へ食い込ませて“繋げる” */
.sell-flow__item .sell-flow__metaLine {
  margin-left: calc(var(--sf-underline) - var(--sf-step-col));
  width: 630rem;
}

@media screen and (min-width: 1025px) {
  /* 画像カラムを 260rem に固定（gridでもflexでも崩れない） */
  .sell-flow__inner {
    /* 親が grid の場合に効く（親がflexなら無視されるので安全） */
    grid-template-columns: 280rem minmax(0, 1fr);
  }
  /* 子側は “保険” として固定幅を持たせる（grid itemでも効く） */
  .sell-flow__media {
    /* flex親のときに効く */
    flex: 0 0 260rem;
    /* grid親のときに効く */
    inline-size: 260rem;
    max-inline-size: 260rem;
    display: flex;
    justify-content: flex-start;
    justify-self: start; /* grid時の寄せ（効けばでOK） */
  }
  /* step4/6 などで checkBox がある場合：下段を2カラム全幅にする保険 */
  .sell-flow__checkBox {
    grid-column: 1/-1;
  }
  /* 画像がはみ出してカラム幅を壊すのを防ぐ */
  .sell-flow__media img {
    max-inline-size: 100%;
    height: auto;
    display: block;
  }
}
@media screen and (min-width: 1025px) {
  /* grid 親（step4/6/7/8）の「画像列」を 280rem にする */
  .sell-flow__item--step4 .sell-flow__inner,
  .sell-flow__item--step6 .sell-flow__inner,
  .sell-flow__item--step7 .sell-flow__inner,
  .sell-flow__item--step8 .sell-flow__inner {
    grid-template-columns: 260rem minmax(0, 1fr);
    /* 必要なら gap も詰める（content をさらに左へ） */
    /* column-gap: 40rem; */
  }
  /* 念のため：media 自体も 260rem に固定（grid item 対策） */
  .sell-flow__item--step4 .sell-flow__media,
  .sell-flow__item--step6 .sell-flow__media,
  .sell-flow__item--step7 .sell-flow__media,
  .sell-flow__item--step8 .sell-flow__media {
    inline-size: 260rem;
    max-inline-size: 260rem;
  }
}
/* odd steps: step 01/03/05/07/09/11 のSTEP表記だけ黒にする */
.sell-flow__item--step1 .sell-flow__step,
.sell-flow__item--step3 .sell-flow__step,
.sell-flow__item--step5 .sell-flow__step,
.sell-flow__item--step7 .sell-flow__step,
.sell-flow__item--step9 .sell-flow__step,
.sell-flow__item--step11 .sell-flow__step {
  color: var(--color-black);
}

/* =========================================
   SP：画像を「線の下（タイトルの上）」へ
   ========================================= */
@media screen and (max-width: 1024px) {
  /* 1) 親をgridにして並び順を定義 */
  .sell-flow__inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "meta" "media" "title" "text" "check";
    row-gap: 18rem; /* お好みで */
  }
  /* 2) contentの箱を消して、中の要素を親gridに参加させる */
  .sell-flow__content {
    display: contents;
  }
  /* 3) 各要素をgridのエリアへ割り当て */
  .sell-flow__meta {
    grid-area: meta;
  }
  .sell-flow__media {
    grid-area: media;
  }
  .sell-flow__title {
    grid-area: title;
  }
  .sell-flow__text {
    grid-area: text;
  }
  /* step4/6/7/8 など checkBox がある場合は最後へ */
  .sell-flow__checkBox {
    grid-area: check;
  }
  /* 念のため：画像は中央寄せ */
  .sell-flow__media {
    display: flex;
    justify-content: center;
  }
}
/* PC側は既存レイアウトを維持（念のためSP指定を打ち消し） */
@media screen and (min-width: 1025px) {
  .sell-flow__content {
    display: block; /* contents解除 */
  }
}
@media screen and (max-width: 1024px) {
  /* ========== SP：並び順を「step線 → 画像 → タイトル → 本文 →（あればcheckBox）」に固定 ========== */
  /* grid/flex の “はみ出し”原因（min-width:auto）を潰す */
  .sell-flow__inner,
  .sell-flow__content,
  .sell-flow__meta,
  .sell-flow__title,
  .sell-flow__text,
  .sell-flow__checkBox,
  .sell-flow__checkRow,
  .sell-flow__checkText {
    min-width: 0;
  }
  /* 親を1カラムgrid化して、表示順をareaで制御 */
  .sell-flow__inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "meta" "media" "title" "text" "check";
    row-gap: 0rem;
  }
  /* contentの子（meta/title/text）を親gridのアイテムとして扱う */
  .sell-flow__content {
    display: contents;
  }
  .sell-flow__meta {
    grid-area: meta;
  }
  .sell-flow__media {
    grid-area: media;
  }
  .sell-flow__title {
    grid-area: title;
  }
  .sell-flow__text {
    grid-area: text;
  }
  .sell-flow__checkBox {
    grid-area: check;
  } /* step4/6/7/8などのみ存在 */
  /* 画像が“デカくなる”問題をここで確実に抑える */
  .sell-flow__media {
    display: flex;
    justify-content: flex-end; /* 右寄せ。中央なら center */
  }
  .sell-flow__media img {
    width: auto !important; /* 100% 指定を確実に打ち消す */
    max-width: 220rem; /* 大きいなら 180〜200rem */
    height: auto;
    display: block;
  }
  /* テキストのはみ出し保険（長文・記号でも折り返す） */
  .sell-flow__text,
  .sell-flow__checkText {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}
/*!
page > buy
------------------------------
*/
.buy-flow-title {
  color: var(--color-primary);
  font-weight: 600;
}

.buy-flow-footer {
  text-align: center;
}

.buy-flow-attention {
  padding: 60rem 0;
  font-size: 20rem;
}

/*
flow
------------------------------ */
.buy-flow {
  list-style: none;
  margin: 0;
  padding: 0;
}

.buy-flow__item {
  position: relative;
  width: 100%;
  border-radius: 0 40rem 0 0;
  overflow: hidden;
  padding: 28rem 0;
}
.buy-flow__item--step1, .buy-flow__item--step3, .buy-flow__item--step5, .buy-flow__item--step7, .buy-flow__item--step9, .buy-flow__item--step11 {
  background: #D9DF9B;
}
.buy-flow__item--step2, .buy-flow__item--step4, .buy-flow__item--step6, .buy-flow__item--step8, .buy-flow__item--step10 {
  background: rgba(159, 173, 0, 0.13);
}
.buy-flow__item {
  /* step間は余白のみ */
}
.buy-flow__item:not(:last-child) {
  margin-bottom: 15rem;
}

.buy-flow__inner {
  width: 100%;
  padding: 0 20rem;
  display: flex;
  flex-direction: column;
  gap: 16rem;
}

.buy-flow__media {
  display: flex;
  justify-content: center;
}
.buy-flow__media img {
  width: min(260rem, 72vw);
  height: auto;
  display: block;
}

.buy-flow__content {
  padding: 0;
  /* flex横並び時にテキストが右へはみ出して「消える」のを防ぐ */
  min-width: 0;
  /* 長いURL/英数字が混ざっても折り返す保険 */
  overflow-wrap: anywhere;
}

/*
  step表示（solid + dotted を1本に見せる）
  - .buy-flow__step::after の右端から .buy-flow__metaLine の点線が連結するイメージ
  - 点線を左に食い込ませ、固い線を上に重ねて「一本」に見せる
*/
.buy-flow__meta {
  display: flex;
  align-items: flex-end;
  gap: 0;
  margin: 0 0 14rem;
  position: relative;
}

.buy-flow__step {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 14rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-primary, #008F4B);
  margin: 0;
  position: relative;
  padding-bottom: 10rem;
  z-index: 1;
  /* 点線の上に固い線を重ねる */
}
.buy-flow__step::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 16rem;
  height: 2rem;
  border-radius: 999rem;
  background: var(--color-primary, #008F4B);
}

.buy-flow__stepNum {
  font-size: 24rem;
  font-weight: 500;
  color: inherit;
}

.buy-flow__metaLine {
  flex: 1 1 auto;
  /* stepの下線（16rem）部分に点線を潜り込ませる */
  margin-left: -16rem;
  padding-bottom: 10rem;
  border-bottom: 1px dotted var(--color-white);
  z-index: 0;
}

.buy-flow__title {
  font-size: 22rem;
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 10rem;
  color: #111;
}

.buy-flow__text {
  margin: 0;
  font-size: 16rem;
  line-height: 1.9;
  color: #333;
}

/* step title colors */
.buy-flow__item--step2 .buy-flow__title,
.buy-flow__item--step4 .buy-flow__title,
.buy-flow__item--step6 .buy-flow__title,
.buy-flow__item--step8 .buy-flow__title,
.buy-flow__item--step10 .buy-flow__title {
  color: var(--color-primary);
}

/* step4 check box */
.buy-flow__checkBox {
  margin-top: 18rem;
  background: #FBF6E6;
  border: 1px solid #d8d8d8;
  border-radius: 12rem;
  padding: 18rem 16rem;
}

.buy-flow__checkRow {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "icon" "text" "btn";
  gap: 0;
  justify-items: center;
  align-items: start;
}

.buy-flow__checkIcon {
  grid-area: icon;
}
.buy-flow__checkIcon img {
  width: 120rem;
  height: auto;
  display: block;
}

.buy-flow__checkText {
  grid-area: text;
  width: 100%;
  margin: 0;
  font-size: 16rem;
  line-height: 1.9;
  color: #333;
  text-align: justify;
}

.buy-flow__divider {
  height: 1px;
  background: #d8d8d8;
  margin: 18rem 0;
}

/* PC */
@media screen and (min-width: 1025px) {
  .buy-flow__item {
    /* 指定：0 40rem 0 0 */
    border-radius: 0 40rem 0 0;
    padding: 40rem 60rem;
  }
  .buy-flow__item:not(:last-child) {
    margin-bottom: 30rem;
  }
  .buy-flow__inner {
    /* l-container-s 前提：max-width は持たせない */
    padding: 0;
    flex-direction: row;
    gap: 0;
    align-items: center;
  }
  /* PC：step04は「上段（画像+本文）／下段（CHECK横いっぱい）」に固定 */
  .buy-flow__item--step4 .buy-flow__inner,
  .buy-flow__item--step6 .buy-flow__inner,
  .buy-flow__item--step7 .buy-flow__inner,
  .buy-flow__item--step8 .buy-flow__inner {
    display: grid;
    /* flexを上書き */
    grid-template-columns: 320rem 1fr;
    grid-template-areas: "media content" "check check";
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 0;
    align-items: start;
  }
  .buy-flow__item--step4 .buy-flow__media,
  .buy-flow__item--step6 .buy-flow__media,
  .buy-flow__item--step7 .buy-flow__media,
  .buy-flow__item--step8 .buy-flow__media {
    grid-area: media;
    align-self: start;
  }
  .buy-flow__item--step4 .buy-flow__content,
  .buy-flow__item--step6 .buy-flow__content,
  .buy-flow__item--step7 .buy-flow__content,
  .buy-flow__item--step8 .buy-flow__content {
    grid-area: content;
    min-width: 0;
    /* 文章の潰れ防止 */
  }
  .buy-flow__item--step4 .buy-flow__checkBox,
  .buy-flow__item--step6 .buy-flow__checkBox,
  .buy-flow__item--step7 .buy-flow__checkBox,
  .buy-flow__item--step8 .buy-flow__checkBox {
    grid-area: check;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
  .buy-flow__media {
    justify-content: flex-start;
    flex: 0 0 320rem;
  }
  .buy-flow__media img {
    width: 200rem;
  }
  .buy-flow__title {
    font-size: 28rem;
    margin-bottom: 12rem;
  }
  .buy-flow__checkBox {
    padding: 24rem;
    margin-top: 10rem;
  }
  .buy-flow__checkRow {
    grid-template-columns: 90rem 1fr;
    grid-template-areas: "icon text" ". btn";
    align-items: center;
    justify-items: stretch;
    -moz-column-gap: 24rem;
         column-gap: 24rem;
  }
  .buy-flow__checkIcon img {
    width: 90rem;
  }
  .buy-flow__btn {
    margin-top: 0;
    width: auto;
    justify-self: end;
    min-width: 220rem;
    font-size: 15rem;
    min-height: 52rem;
  }
}
/* ==============================
 step04 checkBox 見た目調整（上書き）
============================== */
/* 共通（SP/PC共通のベース） */
.buy-flow__checkBox {
  background: #fff;
  /* デザインは白っぽい箱 */
  border: 1px solid #d8d8d8;
  border-radius: 12rem;
}

.buy-flow__divider {
  height: 0;
  background: none;
  border-top: 1px solid #d8d8d8;
  /* 1pxの区切り線 */
}

/* ボタン（共通） */
.buy-flow__btn {
  white-space: nowrap;
}

.buy-flow__pdfBadge {
  border-radius: 10rem;
}

/* PC */
@media screen and (min-width: 1025px) {
  /* ボックスの内側余白をデザインの密度に */
  .buy-flow__checkBox {
    padding: 34rem 20rem;
  }
  /* 1行：アイコン / テキスト / ボタン */
  .buy-flow__checkRow {
    grid-template-columns: 110rem 1fr;
    grid-template-areas: "icon text" ". btn";
    align-items: start;
    justify-items: stretch;
    -moz-column-gap: 32rem;
         column-gap: 32rem;
    row-gap: 16rem;
  }
  .buy-flow__checkIcon img {
    width: 110rem;
    /* アイコン少し大きめ */
  }
  .buy-flow__checkText {
    font-size: 16rem;
    line-height: 2;
  }
  .buy-flow__divider {
    margin: 28rem 0;
  }
  /* ボタンをデザインの大きさに */
  .buy-flow__btn {
    min-width: 340rem;
    min-height: 68rem;
    padding: 0 34rem;
    font-size: 18rem;
    gap: 14rem;
  }
  .buy-flow__btn::after {
    width: 10rem;
    height: 10rem;
    border-top: 3rem solid currentColor;
    border-right: 3rem solid currentColor;
  }
  .buy-flow__pdfBadge {
    width: 52rem;
    height: 38rem;
    font-size: 12rem;
    margin-left: 14rem;
  }
}
/* =========================================
 step04：checkBox内ボタンが共通コンポーネント（.c-button-rounded 系）になった場合の調整
 - 既存の .buy-flow__btn 前提の指定を壊さず、step04 内だけ上書きする
========================================= */
.buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded,
.buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded--pdf,
.buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded--pdf {
  grid-area: btn;
  width: 100%;
  justify-self: center; /* SPは中央＆横いっぱい */
}

/* PC：右寄せ＆必要以上に伸ばさない */
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkRow,
  .buy-flow__item--step6 .buy-flow__checkRow,
  .buy-flow__item--step7 .buy-flow__checkRow,
  .buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded--pdf {
    width: auto;
    justify-self: end;
    min-width: 225rem; /* デザインのボタン幅 */
  }
}
/* =========================================
 step04 checkRow：PCは「本文の下にボタン（右寄せ）」配置
========================================= */
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkRow,
  .buy-flow__item--step6 .buy-flow__checkRow,
  .buy-flow__item--step7 .buy-flow__checkRow,
  .buy-flow__item--step8 .buy-flow__checkRow {
    display: grid;
    /* 2列（アイコン／本文+ボタン） */
    grid-template-columns: 110rem 1fr;
    /* 2段（上：本文、下：ボタン） ※アイコンは2段にまたがる */
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 32rem;
         column-gap: 32rem;
    row-gap: 14rem;
    align-items: start; /* 中央揃えを解除 */
  }
  .buy-flow__item--step4 .buy-flow__checkIcon,
  .buy-flow__item--step6 .buy-flow__checkIcon,
  .buy-flow__item--step7 .buy-flow__checkIcon,
  .buy-flow__item--step8 .buy-flow__checkIcon {
    grid-area: icon;
    align-self: start;
  }
  .buy-flow__item--step4 .buy-flow__checkText,
  .buy-flow__item--step6 .buy-flow__checkText,
  .buy-flow__item--step7 .buy-flow__checkText,
  .buy-flow__item--step8 .buy-flow__checkText {
    grid-area: text;
  }
  .buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end; /* 右寄せ */
    width: auto; /* 横幅はボタン自身に任せる */
    max-width: none;
  }
}
/* =========================================================
   FIX (PC): step04 / step06-08 CHECK row layout
   - DevToolsで確認できた最適値（grid + btnを本文下へ）
   - 既存のPCレイアウト（sell-flow__inner 等）は触らず、checkRowだけ上書き
========================================================= */
@media screen and (min-width: 1025px) {
  .buy-flow__checkIcon img {
    width: 90rem;
    height: auto;
  }
  .buy-flow__item--step4 .buy-flow__checkRow,
  .buy-flow__item--step6 .buy-flow__checkRow,
  .buy-flow__item--step7 .buy-flow__checkRow,
  .buy-flow__item--step8 .buy-flow__checkRow {
    display: grid;
    grid-template-columns: 143rem 1fr;
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
  }
  .buy-flow__item--step4 .buy-flow__checkIcon,
  .buy-flow__item--step6 .buy-flow__checkIcon,
  .buy-flow__item--step7 .buy-flow__checkIcon,
  .buy-flow__item--step8 .buy-flow__checkIcon {
    grid-area: icon;
    align-self: start;
  }
  .buy-flow__item--step4 .buy-flow__checkText,
  .buy-flow__item--step6 .buy-flow__checkText,
  .buy-flow__item--step7 .buy-flow__checkText,
  .buy-flow__item--step8 .buy-flow__checkText {
    grid-area: text;
    align-self: start;
  }
  .buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step4 .buy-flow__checkRow > .c-button-rounded--pdf,
  .buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step6 .buy-flow__checkRow > .c-button-rounded--pdf,
  .buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step7 .buy-flow__checkRow > .c-button-rounded--pdf,
  .buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded,
  .buy-flow__item--step8 .buy-flow__checkRow > .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: auto;
    max-width: none;
  }
}
/* ===========================
   step4: checkRow 揃え（PCのみ）
   =========================== */
@media screen and (min-width: 1025px) {
  /* step4だけに限定して安全に上書き */
  .buy-flow__item--step4 .buy-flow__checkRow {
    display: grid;
    grid-template-columns: 143rem 1fr;
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
  }
  /* ←ここが肝：左右ズレの原因を全部潰す */
  .buy-flow__item--step4 .buy-flow__checkIcon {
    grid-area: icon;
    justify-self: start;
    align-self: start;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: flex-start;
  }
  .buy-flow__item--step4 .buy-flow__checkIcon img {
    width: 90rem;
    height: auto;
    display: block;
    margin: 0; /* auto殺し */
  }
  .buy-flow__item--step4 .buy-flow__checkText {
    grid-area: text;
    min-width: 0;
    /* テキスト幅を広げたいなら、列幅はいじらず gap/外側余白で稼ぐのが安全 */
  }
  .buy-flow__item--step4 .c-button-rounded,
  .buy-flow__item--step4 .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: auto; /* 幅いっぱい防止 */
    max-width: none;
    display: inline-flex; /* 念のため */
  }
}
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkRow {
    -moz-column-gap: 32rem;
         column-gap: 32rem;
  }
  .buy-flow__item--step4 .buy-flow__checkBox {
    margin-inline: auto;
  }
}
/* ------------------------------------------------------------
   PC: checkRow alignment fix (step4/6/7/8)
   - Keep icon column fixed, text expands, button sits under text (right)
   - Prevent icon from drifting when text lines are short (step4)
------------------------------------------------------------ */
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkRow,
  .buy-flow__item--step6 .buy-flow__checkRow,
  .buy-flow__item--step7 .buy-flow__checkRow,
  .buy-flow__item--step8 .buy-flow__checkRow {
    /* match DevTools values */
    grid-template-columns: 90rem minmax(0, 1fr);
    grid-template-areas: "icon text" ". btn";
    -moz-column-gap: 53rem;
         column-gap: 53rem;
    row-gap: 0;
    align-items: start;
    justify-items: start; /* <- was inherited as center from SP */
  }
  .buy-flow__item--step4 .buy-flow__checkIcon,
  .buy-flow__item--step6 .buy-flow__checkIcon,
  .buy-flow__item--step7 .buy-flow__checkIcon,
  .buy-flow__item--step8 .buy-flow__checkIcon {
    justify-self: start;
    align-self: start;
  }
  .buy-flow__item--step4 .buy-flow__checkIcon img,
  .buy-flow__item--step6 .buy-flow__checkIcon img,
  .buy-flow__item--step7 .buy-flow__checkIcon img,
  .buy-flow__item--step8 .buy-flow__checkIcon img {
    width: 90rem;
    height: auto;
    display: block;
  }
  /* text column: allow it to use the available width */
  .buy-flow__item--step4 .buy-flow__checkText,
  .buy-flow__item--step6 .buy-flow__checkText,
  .buy-flow__item--step7 .buy-flow__checkText,
  .buy-flow__item--step8 .buy-flow__checkText {
    min-width: 0;
  }
  /* button: keep compact and right-aligned under the text */
  .buy-flow__item--step4 .c-button-rounded,
  .buy-flow__item--step4 .c-button-rounded--pdf,
  .buy-flow__item--step6 .c-button-rounded,
  .buy-flow__item--step6 .c-button-rounded--pdf,
  .buy-flow__item--step7 .c-button-rounded,
  .buy-flow__item--step7 .c-button-rounded--pdf,
  .buy-flow__item--step8 .c-button-rounded,
  .buy-flow__item--step8 .c-button-rounded--pdf {
    grid-area: btn;
    justify-self: end;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
  }
}
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkIcon,
  .buy-flow__item--step6 .buy-flow__checkIcon,
  .buy-flow__item--step7 .buy-flow__checkIcon,
  .buy-flow__item--step8 .buy-flow__checkIcon {
    justify-self: center;
    transform: translateX(22rem); /* +方向で右へ。5〜15remあたりで調整 */
  }
}
/* =========================================================
   OVERRIDE (PC 1025px〜)
   step04：checkBox内の2つ目（=最後）のcheckRowのみ調整
   - アイコン位置は現状のまま
   - テキストを左へ広げるため column-gap を 0 に
   - 行を親幅いっぱいに伸ばす（width/justify-self）
========================================================= */
@media screen and (min-width: 1025px) {
  .buy-flow__item--step4 .buy-flow__checkBox > .buy-flow__checkRow:last-of-type {
    width: 100%;
    justify-self: stretch;
    -moz-column-gap: 56rem;
         column-gap: 56rem;
  }
  .buy-flow__item--step4 .buy-flow__checkBox > .buy-flow__checkRow:last-of-type > .buy-flow__checkText {
    min-width: 0;
  }
}
/* ============================================================
   sell-flow: regressions hotfix (meta line / sp order / media center)
   ※ 既存の見た目を崩さず「後勝ち」させるため、ファイル末尾に追加してください。
   ============================================================ */
.buy-flow__item .buy-flow__media {
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 1025px) {
  .buy-flow__item .buy-flow__media {
    justify-content: start;
  }
}

/* SP：step（content）を画像より上へ */
.buy-flow__item .buy-flow__content {
  order: -1;
}

@media screen and (min-width: 1025px) {
  .buy-flow__item .buy-flow__content {
    order: 0;
  }
}
/* step下線と点線（metaLine）の接続を“固定幅”で安定させる */
.buy-flow__item .buy-flow__meta {
  --sf-step-col: 90rem; /* step表示ブロックの幅（必要なら微調整） */
  --sf-underline: 34rem; /* step下線の長さ */
  display: flex;
  align-items: flex-end;
  gap: 0;
}

.buy-flow__item .buy-flow__step {
  flex: 0 0 var(--sf-step-col);
}

.buy-flow__item .buy-flow__step::after {
  width: var(--sf-underline);
}

/* 点線を下線終端へ食い込ませて“繋げる” */
.buy-flow__item .buy-flow__metaLine {
  margin-left: calc(var(--sf-underline) - var(--sf-step-col));
  width: 630rem;
}

@media screen and (min-width: 1025px) {
  /* 画像カラムを 260rem に固定（gridでもflexでも崩れない） */
  .buy-flow__inner {
    /* 親が grid の場合に効く（親がflexなら無視されるので安全） */
    grid-template-columns: 280rem minmax(0, 1fr);
  }
  /* 子側は “保険” として固定幅を持たせる（grid itemでも効く） */
  .buy-flow__media {
    /* flex親のときに効く */
    flex: 0 0 260rem;
    /* grid親のときに効く */
    inline-size: 260rem;
    max-inline-size: 260rem;
    display: flex;
    justify-content: flex-start;
    justify-self: start; /* grid時の寄せ（効けばでOK） */
  }
  /* step4/6 などで checkBox がある場合：下段を2カラム全幅にする保険 */
  .buy-flow__checkBox {
    grid-column: 1/-1;
  }
  /* 画像がはみ出してカラム幅を壊すのを防ぐ */
  .buy-flow__media img {
    max-inline-size: 100%;
    height: auto;
    display: block;
  }
}
@media screen and (min-width: 1025px) {
  /* grid 親（step4/6/7/8）の「画像列」を 280rem にする */
  .buy-flow__item--step4 .buy-flow__inner,
  .buy-flow__item--step6 .buy-flow__inner,
  .buy-flow__item--step7 .buy-flow__inner,
  .buy-flow__item--step8 .buy-flow__inner {
    grid-template-columns: 260rem minmax(0, 1fr);
    /* 必要なら gap も詰める（content をさらに左へ） */
    /* column-gap: 40rem; */
  }
  /* 念のため：media 自体も 260rem に固定（grid item 対策） */
  .buy-flow__item--step4 .buy-flow__media,
  .buy-flow__item--step6 .buy-flow__media,
  .buy-flow__item--step7 .buy-flow__media,
  .buy-flow__item--step8 .buy-flow__media {
    inline-size: 260rem;
    max-inline-size: 260rem;
  }
}
/* odd steps: step 01/03/05/07/09/11 のSTEP表記だけ黒にする */
.buy-flow__item--step1 .buy-flow__step,
.buy-flow__item--step3 .buy-flow__step,
.buy-flow__item--step5 .buy-flow__step,
.buy-flow__item--step7 .buy-flow__step,
.buy-flow__item--step9 .buy-flow__step,
.buy-flow__item--step11 .buy-flow__step {
  color: var(--color-black);
}

/* =========================================
   SP：画像を「線の下（タイトルの上）」へ
   ========================================= */
@media screen and (max-width: 1024px) {
  /* 1) 親をgridにして並び順を定義 */
  .buy-flow__inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "meta" "media" "title" "text" "check";
    row-gap: 18rem; /* お好みで */
  }
  /* 2) contentの箱を消して、中の要素を親gridに参加させる */
  .buy-flow__content {
    display: contents;
  }
  /* 3) 各要素をgridのエリアへ割り当て */
  .buy-flow__meta {
    grid-area: meta;
  }
  .buy-flow__media {
    grid-area: media;
  }
  .buy-flow__title {
    grid-area: title;
  }
  .buy-flow__text {
    grid-area: text;
  }
  /* step4/6/7/8 など checkBox がある場合は最後へ */
  .buy-flow__checkBox {
    grid-area: check;
  }
  /* 念のため：画像は中央寄せ */
  .buy-flow__media {
    display: flex;
    justify-content: center;
  }
}
/* PC側は既存レイアウトを維持（念のためSP指定を打ち消し） */
@media screen and (min-width: 1025px) {
  .buy-flow__content {
    display: block; /* contents解除 */
  }
}
@media screen and (max-width: 1024px) {
  /* ========== SP：並び順を「step線 → 画像 → タイトル → 本文 →（あればcheckBox）」に固定 ========== */
  /* grid/flex の “はみ出し”原因（min-width:auto）を潰す */
  .buy-flow__inner,
  .buy-flow__content,
  .buy-flow__meta,
  .buy-flow__title,
  .buy-flow__text,
  .buy-flow__checkBox,
  .buy-flow__checkRow,
  .buy-flow__checkText {
    min-width: 0;
  }
  /* 親を1カラムgrid化して、表示順をareaで制御 */
  .buy-flow__inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "meta" "media" "title" "text" "check";
    row-gap: 14rem; /* お好みで */
  }
  /* contentの子（meta/title/text）を親gridのアイテムとして扱う */
  .buy-flow__content {
    display: contents;
  }
  .buy-flow__meta {
    grid-area: meta;
  }
  .buy-flow__media {
    grid-area: media;
  }
  .buy-flow__title {
    grid-area: title;
  }
  .buy-flow__text {
    grid-area: text;
  }
  .buy-flow__checkBox {
    grid-area: check;
  } /* step4/6/7/8などのみ存在 */
  /* 画像が“デカくなる”問題をここで確実に抑える */
  .buy-flow__media {
    display: flex;
    justify-content: flex-end; /* 右寄せ。中央なら center */
  }
  .buy-flow__media img {
    width: auto !important; /* 100% 指定を確実に打ち消す */
    max-width: 220rem; /* 大きいなら 180〜200rem */
    height: auto;
    display: block;
  }
  /* テキストのはみ出し保険（長文・記号でも折り返す） */
  .buy-flow__text,
  .buy-flow__checkText {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}
/*!
page > organization > organization-hero 当機構について（index）
------------------------------
*/
.organization-hero {
  position: relative;
}

.organization-hero__kv {
  position: relative;
  z-index: 1;
  height: 260rem;
  overflow: hidden;
}
.organization-hero__kv img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

/* =================================================
   白いパネル
================================================= */
.organization-hero__panel {
  position: relative;
  z-index: 2;
  margin-top: -34rem;
  /* SPでは“少し内側”に収めて、横幅が広すぎる印象を抑える */
  width: min(100% - 32rem, 800rem);
  margin-inline: auto;
  background: #fff;
  border-radius: 20rem 20rem 0 0;
  padding: 14rem 18rem 0;
}

.organization-hero__title {
  margin: 0;
  text-align: center;
  font-weight: 500;
  font-size: 24rem;
  line-height: 1.2;
  letter-spacing: 0.06em;
  color: var(--color-primary);
}

.organization-hero__grid {
  margin-top: 30rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20rem;
  justify-items: center;
  /* ボタンの最大幅をここでコントロール（SPで広がりすぎないように） */
  max-width: 520rem;
  margin-inline: auto;
}

.organization-hero__btn {
  /* このページのみ：4つのボタンを同サイズに固定 */
  width: 100%;
  height: 68rem;
  min-height: 0;
  padding: 0 28rem;
  /* c-button の上下paddingを打ち消す */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

/* =================================================
   PC
================================================= */
@media screen and (min-width: 1025px) {
  .organization-hero__kv {
    height: 350rem;
  }
  .organization-hero__panel {
    width: min(100% - 80rem, 1000rem);
    margin-top: -78rem;
    padding: 28rem 60rem 45rem;
    border-radius: 24rem 24rem 0 0;
  }
  .organization-hero__title {
    font-size: 32rem;
  }
  .organization-hero__grid {
    margin-top: 44rem;
    max-width: 960rem;
    /* ボタンが端まで伸びすぎないように */
    margin-inline: auto;
    grid-template-columns: 1fr 1fr;
    gap: 34rem 46rem;
    justify-items: stretch;
  }
  .organization-hero__btn {
    width: 100%;
    min-height: 0;
    padding: 0 34rem;
  }
}
/* -----------------------------------------
   organization：矢印を右ギリギリへ
------------------------------------------ */
.organization-hero__btn.c-button--arrow {
  position: relative;
}

.organization-hero__btn.c-button--arrow::after {
  position: absolute;
  right: 20rem;
}

/* -------------------------------------------------------
 .c-page-title の直後が .organization のときだけ効かせる
-------------------------------------------------------- */
/*!
page > organization > greeting 理事長あいさつ
------------------------------
*/
.organization-greeting {
  padding-bottom: 90rem;
}

.organization-greeting__card {
  margin-top: 24rem;
}

.organization-greeting__layout {
  display: block;
}

.organization-greeting__figure {
  /* 画像は固定幅（ご指定：220rem） */
  width: 220rem;
  margin: 0 auto 26rem;
}

.organization-greeting__figure img {
  width: 100%;
  height: auto;
  display: block;
}

.organization-greeting__body {
  font-size: 14rem;
  line-height: 2;
  color: var(--color-font-base);
  text-align: justify;
}

.organization-greeting__body p {
  margin: 0;
}

.organization-greeting__sign {
  margin-top: 34rem;
  text-align: right;
}

.organization-greeting__signName,
.organization-greeting__signDate {
  margin: 0;
  font-size: 14rem;
  line-height: 1.8;
  letter-spacing: 0.16em;
}

.organization-greeting__signDate {
  letter-spacing: 0.35em;
}

/* ================================
   PC
================================ */
@media screen and (min-width: 1025px) {
  .organization-greeting {
    padding-bottom: 140rem;
  }
  .organization-greeting__card {
    margin-top: 40rem;
  }
  .organization-greeting__layout {
    display: grid;
    grid-template-columns: 220rem 1fr;
    gap: 0 46rem;
    align-items: start;
  }
  .organization-greeting__figure {
    width: 100%;
    margin: 0;
  }
  .organization-greeting__body {
    font-size: 14rem;
    line-height: 2.1;
  }
  .organization-greeting__sign {
    margin-top: 46rem;
  }
}
/*!
page > organization > overview 機構概要
------------------------------
*/
.organization-overview img {
  max-width: 940rem;
  margin-inline: auto;
}

.organization-overview-purpose {
  margin-bottom: 70rem;
}

.organization-overview-purpose-description {
  font-size: 16rem;
  line-height: 1.75;
  text-align: justify;
}

.organization-overview-project {
  margin-top: 48rem;
}
.organization-overview-project .figure-modal {
  margin-top: 0;
}
.organization-overview-project .figure-modal > img {
  margin-top: 0;
}

.organization-overview-organization {
  margin: 70rem auto;
}
@media screen and (min-width: 1025px) {
  .organization-overview-organization {
    margin: 100rem auto;
  }
}
.organization-overview-organization .figure-modal {
  margin-top: 0;
}
.organization-overview-organization .figure-modal > img {
  margin-top: 0;
}

.organization-overview-organization-description {
  font-size: 16rem;
  line-height: 1.9;
  text-align: justify;
  max-width: 940rem;
  margin-inline: auto;
}
.organization-overview-organization-description__list {
  margin: 24rem 0 0;
  padding: 0;
  list-style: none;
}
.organization-overview-organization-description__list li {
  position: relative;
  padding-left: 1.2em;
}
.organization-overview-organization-description__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.organization-overview-overview {
  margin: 70rem auto;
}
@media screen and (min-width: 1025px) {
  .organization-overview-overview {
    margin: 100rem auto;
  }
}
.organization-overview-overview .figure-modal {
  margin-top: 0;
}
.organization-overview-overview .figure-modal > img {
  margin-top: 0;
}

.organization-overview-overview-description {
  font-size: 16rem;
  line-height: 1.9;
  text-align: justify;
  max-width: 940rem;
  margin-inline: auto;
}

/* =================================================
   Office detail (事務局)
================================================= */
.organization-overview-office-detail {
  margin-top: 28rem;
  max-width: 940rem;
  margin-inline: auto;
}

.organization-overview-office-detail .office-detail {
  max-width: 840rem;
  margin-inline: auto;
}
@media screen and (min-width: 1025px) {
  .organization-overview-office-detail .office-detail {
    max-width: 940rem;
  }
}

.organization-overview-office-detail .office-detail__org {
  margin: 0 0 30rem;
  font-weight: 700;
  font-size: 16rem;
  line-height: 1.25;
  letter-spacing: 0.06em;
  color: #333;
}
@media screen and (min-width: 1025px) {
  .organization-overview-office-detail .office-detail__org {
    font-size: 18rem;
  }
}

.organization-overview-office-detail .office-detail__row + .office-detail__row {
  margin-top: 28rem;
}

.organization-overview-office-detail .office-detail__term {
  margin: 0;
  font-size: 14rem;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #333;
}
@media screen and (min-width: 1025px) {
  .organization-overview-office-detail .office-detail__term {
    font-size: 16rem;
  }
}

.organization-overview-office-detail .office-detail__desc {
  font-size: 14rem;
  margin: 0;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #333;
}
@media screen and (min-width: 1025px) {
  .organization-overview-office-detail .office-detail__desc {
    font-size: 16rem;
  }
}

/*!
page > _organization > info
------------------------------
*/
@media screen and (min-width: 1025px) {
  .info_agreement-button > .c-button {
    font-size: 18rem;
  }
}
.info_agreement-button a {
  width: 100%;
  justify-content: center;
}
@media screen and (min-width: 1025px) {
  .info_agreement-button a {
    width: inherit;
  }
}

/* ==========================================================================
   財務諸表等（財務ブロック）
   ========================================================================== */
.info-block__head {
  font-size: 18rem;
  font-weight: 700;
  padding-left: 25rem;
  position: relative;
  margin-bottom: 12rem;
}
.info-block__head::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4em;
  width: 16rem;
  height: 16rem;
  background: var(--color-yellow);
}
.info-block__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 互換：旧HTML（liに .info-block_item を付け、テキスト直書き）の三角アイコン */
.info-block__list li.info-block_item::before {
  content: "";
  width: 18rem;
  height: 18rem;
  background: url(../images/icon/triangle.svg) center/contain no-repeat;
  display: inline-block;
}

/* ===== PDFリンク（テキストリンクで使う場合） ===== */
.info-pdf {
  display: inline-flex;
  align-items: center;
  gap: 8rem;
  font-size: 14rem;
  color: #000;
  text-decoration: underline;
}
.info-pdf::before {
  content: "";
  width: 18rem;
  height: 18rem;
  flex-shrink: 0;
  background-color: #333;
  -webkit-mask: url(../images/icon/bxs_file-pdf.svg) center/contain no-repeat;
  mask: url(../images/icon/bxs_file-pdf.svg) center/contain no-repeat;
}

/* ==========================================================================
   リスト（1行＝項目名＋年度ボタン）
   ========================================================================== */
.info-block__item {
  display: flex;
  flex-direction: column;
  /* SPは縦積み */
  gap: 10px;
  padding: 14px 0;
  /* 右側の年度ボタン（単年度） */
}
.info-block__item > .c-button {
  width: 100%;
  /* デザインの“年度ボタン”幅 */
  justify-content: center;
  font-size: 16rem;
}

/* 左の「緑三角＋ラベル」 */
.info-block__label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 500;
}
.info-block__label::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid var(--color-primary);
}

/* 複数年度（貸借対照表） */
.info-block__item--multi .info-block__years {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  /* 右側の年度ボタン（単年度） */
}
.info-block__item--multi .info-block__years > .c-button {
  width: 100%;
  /* デザインの“年度ボタン”幅 */
  justify-content: center;
  font-size: 16rem;
}

/* ==========================================================================
   PC
   ========================================================================== */
@media screen and (min-width: 1025px) {
  /* 左：項目名 / 右：年度ボタン（開始位置を固定） */
  .info-block__item,
  .info-block_item {
    display: grid;
    grid-template-columns: 190rem 1fr;
    /* ←ここが「ボタン開始位置」 */
    align-items: center;
  }
  /* 単年度ボタン：“ボタンカラムの左端” に揃える */
  .info-block__item > .c-button {
    justify-self: start;
    width: 150px;
  }
  /* 複数年度（貸借対照表）：同じ開始位置から横並び、折り返し */
  .info-block__item--multi .info-block__years {
    justify-content: flex-start;
    gap: 16rem;
  }
  .info-block__item--multi .info-block__years > .c-button {
    width: 150px;
  }
  .info-block__item--multi .info-block__label {
    padding-top: 6rem;
  }
}
/* アンカーリンク先の位置調整 */
#statute,
#statements,
#name_list,
#record {
  scroll-margin-top: -150px;
}
@media screen and (min-width: 1025px) {
  #statute,
  #statements,
  #name_list,
  #record {
    scroll-margin-top: -210px;
  }
}

/*!
page > _organization > info > report
------------------------------
*/
.report {
  position: relative;
}

.report-title {
  font-size: 20rem;
  font-weight: 500;
  padding-left: 22rem;
  position: relative;
  margin-bottom: 12rem;
}
.report-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 16rem;
  height: 16rem;
  background: var(--color-button);
}

@media screen and (min-width: 1025px) {
  .report-grid {
    width: 920rem;
    margin: 28rem auto 0;
  }
}

.report-button {
  text-align: center;
  margin-top: 46rem;
}

/*!
page > about > info > report > 各年度
------------------------------
*/
.report-year-title {
  font-size: 20rem;
  font-weight: 500;
  padding-left: 25rem;
  position: relative;
  margin-bottom: 12rem;
}
.report-year-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 16rem;
  height: 16rem;
  background: var(--color-button);
  transform: rotate(45deg);
  border-radius: 3px;
}

/* ==========================================================================
  利用実績報告（月度ボタン）
  ========================================================================== */
.report-year {
  margin-top: 16rem;
}
.report-year__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16rem 18rem;
}
.report-year__item {
  position: relative;
  min-width: 0;
}
.report-year {
  /* .library-qmw__btn と同じ作り（背景なしの白PDFアイコン） */
}
.report-year__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56rem;
  padding: 16rem 44rem 16rem 16rem;
  border-radius: 8rem;
  font-family: inherit;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  background: var(--color-button);
  text-decoration: none;
  /* PDFアイコン（右寄せ）- 背景なし / maskで currentColor 表示 */
}
.report-year__btn::after {
  content: "";
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 22rem;
  height: 22rem;
  background-color: currentColor;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  opacity: 1;
}
.report-year__btn:focus-visible {
  outline: 3rem solid var(--color-button);
  outline-offset: 3rem;
}
.report-year__btn {
  /* disabled（utilityの見た目を最優先しても良いですが、デザイン寄せで上書き） */
}
.report-year__btn.is-disabled, .report-year__btn[aria-disabled=true] {
  background: #d6d6d6;
  opacity: 1;
  pointer-events: none;
}
@media screen and (min-width: 1025px) {
  .report-year__btn {
    min-height: 61rem;
    font-size: 18rem;
  }
}
.report-year {
  /* hover は a のみ */
}
@media screen and (min-width: 1025px) {
  .report-year a.report-year__btn {
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  .report-year a.report-year__btn:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}
.report-year {
  /* NEWバッジ（既存 .c-badge--new を配置だけ制御） */
}
.report-year .c-badge--new {
  position: absolute;
  top: -5rem;
  left: -5rem;
  z-index: 1;
}
.report-year__note {
  margin: 12rem 0 74rem 0;
  font-size: 12rem;
  color: var(--color-font-base);
}
@media screen and (min-width: 1025px) {
  .report-year__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 22rem 54rem;
  }
}

/*!
page > organization > history 沿革
------------------------------
*/
/* =========================
   SP（Mobile first）
========================= */
.history-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  text-align: justify;
}
.history-section .era-80 {
  background: #eef9f1;
}
.history-section .era-90 {
  background: #f7fcea;
}
.history-section .era-00 {
  background: #f9fff3;
}
.history-section .era-10 {
  background: #f2fced;
}
.history-section .era-20 {
  background: #eaffe7;
}
.history-section .era {
  padding: 0 16px 5px;
  margin-bottom: 28px;
  border-radius: 6px;
  opacity: 0;
  transform: translateY(25px);
  transition: all 0.9s ease-out;
}
.history-section .era.show {
  opacity: 1;
  transform: translateY(0);
}
.history-section .era-title {
  font-size: 22px;
  font-weight: 700;
  color: #008F4B;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  padding-top: 16px;
}
.history-section .era-title::after {
  content: "";
  flex: 1;
  height: 2px;
  background: #008F4B;
  opacity: 0.35;
}
.history-section .era-title {
  opacity: 0;
  transform: translateY(15px);
  transition: all 0.8s ease-out;
}
.history-section .era-title.show {
  opacity: 1;
  transform: translateY(0);
}
.history-section .timeline {
  position: relative;
  padding-left: 22px;
  border-left: 3px solid #008F4B;
}
.history-section .timeline .year {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #5EC2B6;
}
.history-section .timeline .content p {
  margin: 0 0 6px;
  line-height: 1.7;
  font-size: 14px;
}
.history-section .era-80 .timeline {
  border-left: none;
  --line-w: 3px;
}
.history-section .era-80 .timeline::before {
  content: "";
  position: absolute;
  left: calc(var(--line-w) / -2);
  top: 16px;
  bottom: 0;
  width: var(--line-w);
  background: #008F4B;
}
.history-section .timeline-item {
  margin-bottom: 28px;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.7s ease-out;
}
.history-section .timeline-item.show {
  opacity: 1;
  transform: translateY(0);
}
.history-section .timeline-item::before {
  content: "";
  position: absolute;
  left: -28px;
  top: 16px;
  width: 10px;
  height: 10px;
  background: #008F4B;
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(0, 143, 75, 0.18);
}
.history-section .month {
  color: #008F4B;
}
.history-section span {
  color: #008F4B;
}

/* =========================
   PC（@include g.mq() を外に出す）
========================= */
@media screen and (min-width: 1025px) {
  .history-section .history-title {
    margin-bottom: 40px;
    font-size: 16px;
  }
  .history-section .history-title span {
    font-size: 36px;
  }
  .history-section .era {
    padding: 0 30px 5px;
    margin-bottom: 40px;
  }
  .history-section .era-title {
    font-size: 32px;
    margin-bottom: 35px;
    padding-top: 20px;
  }
  .history-section .timeline {
    padding-left: 29px;
  }
  .history-section .timeline .year {
    font-size: 26px;
    margin-bottom: 10px;
  }
  .history-section .timeline .content p {
    font-size: 16px;
  }
  .history-section .timeline-item {
    margin-bottom: 40px;
  }
  .history-section .timeline-item::before {
    left: -35px;
  }
}
/*!
page > organization > roster 役員・評議員名簿
------------------------------
*/
.organization-roster__body {
  margin-top: 24rem;
}
.organization-roster__section {
  position: relative;
}
.organization-roster__section + .organization-roster__section {
  margin-top: 44rem;
}
.organization-roster {
  /* ----- heading ----- */
}
.organization-roster__heading {
  display: flex;
  align-items: center;
  gap: 10rem;
  margin: 0;
  font-weight: 700;
  font-size: 18rem;
  line-height: 1.4;
  color: var(--color-font-base);
}
.organization-roster__mark {
  width: 10rem;
  height: 10rem;
  border-radius: 2rem;
  background: #f7ba00;
  flex: 0 0 auto;
  transform: translateY(-1rem);
}
.organization-roster__note {
  margin: 10rem 0 0;
  font-size: 14rem;
  line-height: 1.8;
  color: var(--color-font-base);
}
.organization-roster {
  /* ----- table ----- */
}
.organization-roster__tableWrap {
  margin-top: 30rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.organization-roster__table {
  width: 100%;
  min-width: 720rem;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  background: #fff;
}
.organization-roster {
  /* 列幅調整（スクショ寄せ） */
}
.organization-roster__col--post {
  width: 34%;
}
.organization-roster__col--company {
  width: 36%;
}
.organization-roster__col--name {
  width: 16%;
}
.organization-roster__col--group {
  width: 14%;
}
.organization-roster__table tbody td {
  padding: 15rem 12rem;
  font-size: 14rem;
  line-height: 1.65;
  color: var(--color-font-base);
  vertical-align: middle;
  text-align: center;
  background: #fff;
  border-top: 1px solid #d9d9d9;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  word-break: break-word;
}
.organization-roster__table tbody td:nth-child(3), .organization-roster__table tbody td:nth-child(4) {
  white-space: nowrap;
}
.organization-roster {
  /* SP用スクロールヒント */
}
.organization-roster__section::before {
  content: "scroll→";
  position: absolute;
  top: 88rem;
  left: 0;
  z-index: 2;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  padding: 6rem 10rem;
  border-radius: 999rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: rgba(255, 255, 255, 0.92);
  font-size: 12rem;
  line-height: 1;
  color: #333;
  box-shadow: 0 4rem 10rem rgba(0, 0, 0, 0.08);
}
@media screen and (min-width: 1025px) {
  .organization-roster__body {
    margin-top: 28rem;
  }
  .organization-roster__section + .organization-roster__section {
    margin-top: 56rem;
  }
  .organization-roster__heading {
    gap: 12rem;
    font-size: 18rem;
  }
  .organization-roster__mark {
    width: 12rem;
    height: 12rem;
  }
  .organization-roster__note {
    font-size: 14rem;
  }
  .organization-roster__tableWrap {
    margin-top: 40rem;
    overflow-x: visible;
  }
  .organization-roster__table {
    min-width: 0;
  }
  .organization-roster {
    /* PCでの列幅をさらに整える */
  }
  .organization-roster__col--post {
    width: 35%;
  }
  .organization-roster__col--company {
    width: 35%;
  }
  .organization-roster__col--name {
    width: 15%;
  }
  .organization-roster__col--group {
    width: 15%;
  }
  .organization-roster__table tbody td {
    padding: 16rem 14rem;
    font-size: 15rem;
    line-height: 1.7;
  }
  .organization-roster__section::before {
    content: none;
  }
}

/*!
page > explanation
------------------------------
*/
.explanation {
  padding: 70px 0 56px;
}
.explanation__icon {
  display: grid;
  place-items: center;
}
.explanation__icon img {
  width: 64px;
  height: 64px;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
  flex: none;
}
.explanation {
  /* 「次回から自動的にスキップされます」メッセージ */
}
.explanation__skipMsg {
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  color: var(--color-primary);
}

.explanation__inner {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.explanation__head {
  /* h1は中央寄せのまま、注記だけh1左端に揃えるための幅追従ラッパー */
  align-self: center;
  display: inline-block;
  max-width: 100%;
}

.explanation__title {
  margin: 0;
  text-align: center;
  color: var(--color-primary);
  font-weight: 500;
  letter-spacing: 0.02em;
  font-size: clamp(20px, 5.4vw, 28px);
  line-height: 1.5;
  margin-bottom: 10rem;
}

.explanation__notes {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  justify-items: start;
  color: var(--color-font-base);
  font-size: 14px;
  line-height: 1.6;
}

.explanation__about {
  background: #fbf7e8;
  border-radius: 10px;
  padding: 18px 18px;
}

.explanation__aboutTitle {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.explanation__aboutText {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
}

.explanation__cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.explanation__card {
  background: #eef6e4;
  border-radius: 12px;
  padding: 22px 18px;
}

.explanation__icon {
  display: grid;
  place-items: center;
  color: var(--color-font-base);
  margin-bottom: 14px;
}

.explanation__cardTitle {
  margin: 0 0 10px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.explanation__cardText {
  margin: 0;
  font-size: 14px;
  color: var(--color-font-base);
  text-align: justify;
}

.explanation__list {
  margin: 0;
  padding-left: 1.2em;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-font-base);
}

.explanation__guide {
  display: grid;
  gap: 12px;
  justify-items: center;
  margin: 3rem 0;
}
.explanation__guide a {
  font-size: 16rem;
}

.explanation__guideText {
  margin: 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
  color: #222;
}

.explanation__pdf {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 6px;
  background: #eeeeee;
  color: #222;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
}

.explanation__pdfIcon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: var(--color-font-base);
  color: #fff;
}

.explanation__check {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  align-self: center;
  font-size: 14px;
}

.explanation__checkInput {
  width: 18px;
  height: 18px;
  /* リセットCSSで消されている可能性への対策 */
  display: inline-block !important;
  opacity: 1 !important;
  visibility: visible !important;
  /* チェックボックスの見た目を復元 */
  -moz-appearance: auto !important;
       appearance: auto !important;
  -webkit-appearance: checkbox !important;
  /* ついでに色も揃える（対応ブラウザのみ） */
  accent-color: var(--color-primary);
  /* 余白のズレ防止 */
  margin: 0;
}

.explanation__actions {
  display: grid;
  justify-items: center;
  margin-top: 4rem;
}
.explanation__actions a {
  font-size: 24rem;
  width: inherit;
  gap: 30px;
}

.explanation__login {
  width: 100%;
  max-width: 520px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 18px;
  border-radius: 6px;
  background: var(--color-button);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.02em;
  position: relative;
}

.explanation__loginIcon {
  position: absolute;
  right: 16px;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.12);
}

.explanation__back {
  display: grid;
  justify-items: center;
  margin-top: 21px;
}

.explanation__backLink {
  color: #222;
  text-decoration: none;
  font-size: 14px;
}

.explanation__footer {
  text-align: center;
  font-size: 12px;
  color: #666;
  margin-top: 8px;
}

.explanation__pdf:hover,
.explanation__backLink:hover,
.explanation__login:hover {
  opacity: 0.9;
}

.explanation__list {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.explanation__list li {
  position: relative;
  padding-left: 1.2em;
  line-height: 1.7;
}
.explanation__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

@media screen and (min-width: 1025px) {
  .explanation {
    padding: 100px 0 72px;
  }
  .explanation__inner {
    gap: 18px;
  }
  .explanation__title {
    font-size: clamp(28px, 2.2vw, 36px);
    margin-bottom: 8rem;
  }
  .explanation__notes {
    font-size: 15px;
  }
  .explanation__about {
    padding: 22px 26px;
    border-radius: 12px;
  }
  .explanation__aboutText {
    font-size: 15px;
  }
  .explanation__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
  }
  .explanation__card {
    padding: 28px 15px;
    border-radius: 14px;
  }
  .explanation__cardTitle {
    font-size: 17px;
  }
  .explanation__cardText,
  .explanation__list {
    font-size: 15px;
  }
  .explanation__guideText {
    font-size: 15px;
  }
  .explanation__login {
    font-size: 20px;
    padding: 20px 18px;
    border-radius: 8px;
  }
}
/*!
page > news
------------------------------
*/
.news {
  padding-top: 8rem;
  padding-bottom: 56rem;
}
@media screen and (min-width: 1025px) {
  .news {
    padding-top: 12rem;
    padding-bottom: 80rem;
  }
}

.news__group {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 12rem;
  padding: 22rem 0;
  margin: 0;
  border-top: 1px dotted #d9d9d9;
}
.news__group:last-of-type {
  border-bottom: 1px dotted #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .news__group {
    grid-template-columns: 140rem 1fr;
    -moz-column-gap: 44rem;
         column-gap: 44rem;
    row-gap: 0;
    padding: 26rem 0;
  }
}

.news__date {
  margin: 0;
  font-family: var(--font-family-base);
  font-size: 14rem;
  line-height: 1.6;
  color: var(--color-font-base);
}
@media screen and (min-width: 1025px) {
  .news__date {
    padding-top: 2rem;
    padding-left: 40rem;
  }
}

.news__body {
  margin: 0;
}

.news__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  row-gap: 18rem;
}
@media screen and (min-width: 1025px) {
  .news__list {
    row-gap: 20rem;
  }
}

.news__item {
  display: grid;
  grid-template-columns: 72rem 1fr;
  -moz-column-gap: 18rem;
       column-gap: 18rem;
  align-items: start;
}
@media screen and (min-width: 1025px) {
  .news__item {
    grid-template-columns: 78rem 1fr;
    -moz-column-gap: 24rem;
         column-gap: 24rem;
  }
}

.news__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72rem;
  height: 24rem;
  background: var(--color-button);
  color: var(--color-white);
  border-radius: 999rem;
  font-family: var(--font-family-base);
  font-weight: 700;
  font-size: 12rem;
  letter-spacing: 0.08em;
  line-height: 1;
}
.news__tag.is-empty {
  visibility: hidden;
}
@media screen and (min-width: 1025px) {
  .news__tag {
    width: 78rem;
    height: 26rem;
  }
}

.news__link {
  text-decoration: none;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.news__link:hover, .news__link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3rem;
  color: var(--color-primary);
}

/*!
page > link
------------------------------
*/
.link-links {
  font-size: 14rem;
}

/* ---------- list base ---------- */
.link-links__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr; /* SP */
  row-gap: 14rem; /* li間 */
}

/* PCで3列にしたいリスト */
@media screen and (min-width: 1025px) {
  .link-links__list--pc3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    -moz-column-gap: 56rem;
         column-gap: 56rem; /* デザイン寄せ */
    row-gap: 18rem;
    /* ★ グローバルのjustify-itemsの影響を受けないよう、確実に伸ばす */
    justify-items: stretch;
    align-items: start;
  }
}

/* 下段（全日・関東流通センター等）をデザイン同様に離す */
.link-links__list--sub {
  margin-top: 34rem;
}
@media screen and (min-width: 1025px) {
  .link-links__list--sub {
    margin-top: 46rem;
  }
}

/* 下段の位置指定（PCのみ） */
@media screen and (min-width: 1025px) {
  .link-links__item--c1 {
    grid-column: 1;
  }
}

@media screen and (min-width: 1025px) {
  .link-links__item--c2 {
    grid-column: 2;
  }
}

@media screen and (min-width: 1025px) {
  .link-links__item--c3 {
    grid-column: 3;
  }
}

@media screen and (min-width: 1025px) {
  .link-links__item--r1 {
    grid-row: 1;
  }
}

@media screen and (min-width: 1025px) {
  .link-links__item--r2 {
    grid-row: 2;
  }
}

@media screen and (min-width: 1025px) {
  .link-links__item--r3 {
    grid-row: 3;
  }
}

/* ---------- item (triangle) ---------- */
.link-links__item {
  position: relative;
  padding-left: 18rem; /* 三角分 */
  width: 100%;
  min-width: 0;
}
.link-links__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9em;
  transform: translateY(-50%);
  width: 10rem;
  height: 12rem;
  background-color: var(--color-button);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* ---------- link (external icon) ---------- */
.link-links__link {
  color: #222;
  text-decoration: none;
  line-height: 1.7;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  /* 外部リンクアイコン */
}
.link-links__link:hover, .link-links__link:focus-visible {
  text-decoration: none;
  text-underline-offset: 0.18em;
  color: var(--color-button);
  background-size: 100% 1rem;
}

/* PCのみ：長いリンクを1行固定（SPは改行OK） */
@media screen and (min-width: 1025px) {
  .link-links__link--pc-nowrap {
    white-space: nowrap;
  }
}

/* ---------- divider ---------- */
.link-links__divider {
  border: 0;
  border-top: 2rem dotted var(--color-primary, #01A758);
  margin: 44rem 0;
}
@media screen and (min-width: 1025px) {
  .link-links__divider {
    margin: 56rem 0;
  }
}

/* サブセンター：下段（不動産流通経営協会／全国住宅産業協会）の上余白 */
.link-links__item--c1.link-links__item--r2,
.link-links__item--c1.link-links__item--r3 {
  margin-top: 16rem;
}

@media screen and (min-width: 1025px) {
  .link-links__item--c1.link-links__item--r2,
  .link-links__item--c1.link-links__item--r3 {
    margin-top: 30rem;
  }
}
/*!
page > privacy
------------------------------
*/
.privacy {
  /* 余白（デザイン合わせ） */
}
.privacy .accordion__body {
  padding: 18rem 16rem 22rem;
}
@media screen and (min-width: 1025px) {
  .privacy .accordion__body {
    padding: 26rem 30rem 34rem;
  }
}
.privacy {
  /* Accordion内の本文ブロック（mobile-first） */
}
.privacy .privacy-doc {
  font-size: 14rem;
  line-height: 1.9;
  color: #333;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.privacy .privacy-doc__lead {
  margin: 0 0 16rem;
}
.privacy .privacy-doc__sections, .privacy .privacy-doc__steps {
  margin: 0;
  padding: 0;
  list-style: none;
}
.privacy .privacy-doc__section + .privacy .privacy-doc__section {
  margin-top: 20rem;
}
.privacy .privacy-doc__heading {
  margin: 0 0 8rem;
  font-size: 15rem;
  font-weight: 700;
  line-height: 1.6;
}
.privacy .privacy-doc__num {
  margin-right: 6rem;
  font-weight: 700;
}
.privacy .privacy-doc p {
  margin: 0 0 20rem 0;
}
.privacy .privacy-doc p + p {
  margin-top: 10rem;
}
.privacy .privacy-doc__contact {
  margin-top: 12rem;
}
.privacy .privacy-doc__contact p + p {
  margin-top: 6rem;
}
.privacy .privacy-doc__link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.privacy .privacy-doc {
  /* (1)〜(5) */
}
.privacy .privacy-doc__steps {
  counter-reset: step;
}
.privacy .privacy-doc__steps > li {
  position: relative;
  padding-left: 28rem;
  margin: 0;
}
.privacy .privacy-doc__steps > li + li {
  margin-top: 0;
  text-align: justify;
}
.privacy .privacy-doc__steps > li::before {
  counter-increment: step;
  content: "(" counter(step) ")";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
}
.privacy .privacy-doc {
  /* 3. の小番号リスト */
}
.privacy .privacy-doc__subNumList {
  margin: 8rem 0 10rem;
  padding-left: 20rem;
}
.privacy .privacy-doc__subNumList > li + li {
  margin-top: 6rem;
}
.privacy .privacy-doc {
  /* 箇条書き（・） */
}
.privacy .privacy-doc__dotList {
  margin: 18rem 0;
  padding-left: 42rem;
  list-style: none;
}
.privacy .privacy-doc__dotList > li {
  position: relative;
  padding-left: 1.2em;
}
.privacy .privacy-doc__dotList > li + li {
  margin-top: 6rem;
}
.privacy .privacy-doc__dotList > li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.privacy .privacy-doc {
  /* 法令引用 */
}
.privacy .privacy-doc__smallHead {
  margin-top: 14rem !important;
}
.privacy .privacy-doc__lawList {
  margin: 8rem 0 0;
  padding-left: 22rem;
}
.privacy .privacy-doc__lawList > li + li {
  margin-top: 6rem;
}
.privacy .privacy-doc__note {
  margin-top: 10rem;
}
.privacy .privacy-doc__notes {
  margin-top: 16rem;
}
.privacy .privacy-doc__notes .privacy-doc__label {
  display: inline-block;
  margin-top: 12rem;
  margin-bottom: 0;
}
.privacy {
  /* アコーディオン間のPDFボタン（既存流用想定） */
}
.privacy .privacy-button {
  display: flex;
  flex-direction: column;
  gap: 12rem;
  margin: 25rem 0 50rem;
}
.privacy .privacy-button > a {
  width: 95%;
  margin-inline: auto;
}
@media screen and (min-width: 1025px) {
  .privacy .privacy-doc__section + .privacy .privacy-doc__section {
    margin-top: 24rem;
  }
  .privacy .privacy-doc__heading {
    font-size: 16rem;
  }
  .privacy .privacy-button {
    flex-direction: row;
    justify-content: center;
    gap: 24rem;
    margin: 44rem 0;
  }
  .privacy .privacy-button > a {
    width: auto;
    min-width: 340rem;
    margin-inline: inherit;
  }
}

.privacy-doc__section {
  padding: 10rem 0;
}

.privacy .privacy-doc__steps {
  padding: 20rem 0;
}

.qa-acc .accordion + .accordion {
  margin-top: 24rem;
}
@media screen and (min-width: 1025px) {
  .qa-acc .accordion + .accordion {
    margin-top: 35rem;
  }
}

.qa-acc .accordion__title {
  font-weight: 500;
}

.privacy .privacy-doc {
  --pd-num-w: 26rem;
  --pd-num-gap: 10rem;
}
.privacy .privacy-doc__section {
  padding: 0;
}
.privacy .privacy-doc__section + .privacy .privacy-doc__section {
  margin-top: 22rem;
}
.privacy .privacy-doc__heading {
  display: flex;
  gap: var(--pd-num-gap);
  margin: 0 0 10rem;
  font-weight: 700;
  line-height: 1.6;
  font-size: 15rem;
}
.privacy .privacy-doc__num {
  flex: 0 0 var(--pd-num-w);
  text-align: right;
  margin: 0;
  font-weight: 700;
}
.privacy .privacy-doc__section > p, .privacy .privacy-doc__section > .privacy-doc__contact, .privacy .privacy-doc__section > .privacy-doc__smallHead, .privacy .privacy-doc__section > .privacy-doc__lawList {
  margin-left: calc(var(--pd-num-w) + var(--pd-num-gap));
  text-align: justify;
}
.privacy .privacy-doc__contact {
  margin-top: 14rem;
  padding-left: 16rem;
}
.privacy .privacy-doc__contact p + p {
  margin-top: 6rem;
}
.privacy .privacy-doc__lawList {
  margin-top: 10rem;
  padding-left: 15rem;
}
.privacy .privacy-doc__lawList > li {
  padding-left: 1.6em;
  text-indent: -1.6em;
}
.privacy .privacy-doc__lawList > li + li {
  margin-top: 6rem;
}
@media screen and (min-width: 1025px) {
  .privacy .privacy-doc {
    --pd-num-w: 15rem;
    --pd-num-gap: 12rem;
  }
  .privacy .privacy-doc__heading {
    font-size: 16rem;
    margin-bottom: 12rem;
  }
  .privacy .privacy-doc__section + .privacy .privacy-doc__section {
    margin-top: 26rem;
  }
}

.privacy-doc__lawList {
  margin-top: 10rem;
}
.privacy-doc__lawList li {
  padding-left: 1em;
  text-indent: -1em;
}
.privacy-doc__lawList li + li {
  margin-top: 6rem;
}

/*!
page > sitemap
------------------------------
- Mobile first
- PC: @include g.mq()
*/
/* =========================
   Site map
========================= */
/* =========================
   Columns
========================= */
.sitemap-nav {
  margin: 0;
}

.sitemap-nav__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 44px;
}
@media screen and (min-width: 1025px) {
  .sitemap-nav__cols {
    grid-template-columns: repeat(3, 1fr);
    -moz-column-gap: 60px;
         column-gap: 60px;
    row-gap: 0;
    align-items: start;
  }
}

/* =========================
   Blocks / headings
========================= */
.sitemap-nav__block + .sitemap-nav__block {
  margin-top: 34px;
}
@media screen and (min-width: 1025px) {
  .sitemap-nav__block + .sitemap-nav__block {
    margin-top: 40px;
  }
}

.sitemap-nav__head {
  margin: 0 0 14px;
  font-size: 18rem;
  line-height: 1.45;
  font-weight: 700;
  color: var(--color-primary);
}
.sitemap-nav__head a {
  color: inherit;
  text-decoration: none;
}
.sitemap-nav__head a:hover {
  text-decoration: none;
  text-underline-offset: 0.2em;
  font-weight: 700;
  background-size: 100% 1rem;
}

/* 右カラムの「リンク見出し」用（売却依頼主向けログイン等） */
.sitemap-nav__block--quick .sitemap-nav__head {
  margin: 0;
}
.sitemap-nav__block--quick .sitemap-nav__head--link {
  font-size: 18rem;
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-primary);
}
.sitemap-nav__block--quick .sitemap-nav__head--link + .sitemap-nav__head--link {
  margin-top: 13px;
}

/* =========================
   Lists / items
========================= */
.sitemap-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sitemap-nav__item {
  margin: 0;
  padding: 0;
  font-size: 14rem;
  line-height: 1.95;
  color: #333;
  padding-left: 20rem;
}
.sitemap-nav__item + .sitemap-nav__item {
  margin-top: 8px;
}
.sitemap-nav__item a {
  color: inherit;
  text-decoration: none;
}
.sitemap-nav__item a:hover {
  text-decoration: none;
  text-underline-offset: 0.2em;
  background-size: 100% 1rem;
}

/* =========================
   Indent controls
   - HTMLの class に合わせて字下げ
========================= */
.sitemap-nav__item--indent1 {
  padding-left: 34px;
}
@media screen and (min-width: 1025px) {
  .sitemap-nav__item--indent1 {
    padding-left: 60px;
  }
}

.sitemap-nav__item--indent2 {
  padding-left: 48px;
}
@media screen and (min-width: 1025px) {
  .sitemap-nav__item--indent2 {
    padding-left: 75px;
  }
}

/* =========================
   Branch mark "└"
   - 「└」がダブる原因は、複数箇所で::beforeを出していることが多いです。
   - ここでは `--branch` の「a::before」だけに限定して出します。
========================= */
.sitemap-nav__item--branch a {
  position: relative;
  padding-left: 18px;
  display: inline-block;
}
.sitemap-nav__item--branch a::before {
  content: "└";
  position: absolute;
  left: 0;
  top: 0;
  color: rgba(0, 0, 0, 0.45);
  line-height: inherit;
}

/* =========================
   External icon (SVG)
========================= */
.sitemap-nav__ext-icon {
  width: 14rem;
  height: 14rem;
  margin-left: 6rem;
  vertical-align: -2rem;
  flex: 0 0 auto;
}

/* =========================
   PDF icon (pseudo element)
   - ご要望：色は var(--color-primary)
   - HTML：<a class="is-icon-pdf"> を想定（現状のindex.htmlどおり）
========================= */
.sitemap-nav a.is-icon-pdf {
  display: inline-flex;
  align-items: center;
  gap: 6rem;
}
.sitemap-nav a.is-icon-pdf::after {
  content: "";
  width: 18rem;
  height: 18rem;
  flex: 0 0 auto;
  background-color: var(--color-primary);
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
  mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
}

/* 個別字下げ（この2行だけ） */
.sitemap .sitemap-nav__item--indent2-yakuin {
  padding-left: 83px;
}
@media screen and (min-width: 1025px) {
  .sitemap .sitemap-nav__item--indent2-yakuin {
    padding-left: 110px;
  }
}
.sitemap .sitemap-nav__item--indent2-hyougiin {
  padding-left: 83px;
}
@media screen and (min-width: 1025px) {
  .sitemap .sitemap-nav__item--indent2-hyougiin {
    padding-left: 110px;
  }
}

/* 個別字下げ：利用実績報告 / 利用実績報告一覧 */
.sitemap .sitemap-nav__item--report {
  padding-left: 35px;
}
@media screen and (min-width: 1025px) {
  .sitemap .sitemap-nav__item--report {
    padding-left: 60px;
  }
}
.sitemap .sitemap-nav__item--report-list {
  padding-left: 46px;
}
@media screen and (min-width: 1025px) {
  .sitemap .sitemap-nav__item--report-list {
    padding-left: 75px;
  }
}

/* 外部リンクアイコン（弁当メニューと同方式） */
.sitemap a.i-external::after {
  top: 0;
  content: url(../images/icon/external-link-green.svg);
  display: inline-block;
  vertical-align: middle;
  /* 位置調整：topより安定（必要なら微調整） */
  margin-left: 6rem;
  transform: translateY(2rem);
}
@media screen and (min-width: 1025px) {
  .sitemap a.i-external::after {
    margin-left: 6px;
    transform: translateY(2px);
  }
}

/*!
page > contract > 
------------------------------
*/
.contract-what {
  margin-top: 18rem;
}

.contract-description {
  font-size: 16rem;
  line-height: 1.75;
  text-align: justify;
}

.contract-what-button {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 12rem;
  margin: 30rem 0;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .contract-what-button {
    gap: 67rem;
    margin: 70rem 0 80rem 0;
  }
}

/*!
page > contract > contract-3-types（３種類の媒介契約を比較）
------------------------------
*/
.contract-3-types {
  margin-top: 48rem;
}

.contract-3-types-description {
  font-size: 16rem;
  line-height: 1.75;
  text-align: justify;
}

/* =================================================
   基本設定
================================================= */
html,
body {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
}

/* =================================================
   スマホ（デフォルト）
================================================= */
.sp-buttons {
  display: flex;
  gap: 8px;
  margin: 15px 10px;
}
.sp-buttons button {
  flex: 1;
  padding: 8px 6px;
  font-size: 14px;
  white-space: nowrap;
  border-radius: 6px;
  border: 1px solid #ccc;
  color: #fff;
}
.sp-buttons button:nth-child(1) {
  background: #008746;
  border-color: #006f3a;
}
.sp-buttons button:nth-child(2) {
  background: #559E37;
  border-color: #46842e;
}
.sp-buttons button:nth-child(3) {
  background: #9FAD00;
  border-color: #879500;
}
.sp-buttons button:active {
  opacity: 0.85;
}

.contract-table {
  overflow-x: visible;
  -webkit-overflow-scrolling: touch;
  margin-top: 54rem;
}

.contract-table-chart-wrapper {
  width: 100%;
  padding: 0;
  box-sizing: border-box;
  position: relative;
}

.contract-table-chart-inner {
  display: grid;
  grid-template-columns: 28% 24% 24% 24%;
  padding-bottom: 54rem;
}

/* =================================================
   セル共通（SPデフォルト）
================================================= */
.cell,
.cell-free {
  padding: 10px 6px;
  font-size: 12px;
  line-height: 1.5;
  color: #333;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  text-align: center;
  word-break: break-word;
  background-color: #FFFFF3;
}

.cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cell.blank {
  background: none;
  border: none;
  padding: 0;
  position: static;
}

.left-col {
  border-left: 1px solid #ccc;
}

/* =================================================
   上段タイトル（契約種別）：SPは追従
================================================= */
.top-title {
  font-weight: 700;
  font-size: 13px;
  text-align: center;
  color: #fff;
  border-top: 1px solid #ccc;
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 12px 6px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}
.top-title.exclusive {
  background: #008746;
}
.top-title.semi {
  background: #559E37;
}
.top-title.general {
  background: #9FAD00;
}

/* =================================================
   図解セル（SP）
================================================= */
.top-visual {
  padding: 20px 10px;
  text-align: center;
  border-bottom: 1px solid #ccc;
}
.top-visual img {
  max-width: 90px;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* =================================================
   見出し・装飾
================================================= */
.header-col {
  background: #E9F7E9;
  border-left: 1px solid #ccc;
}

.first-row {
  border-top: 1px solid #ccc;
}

.red {
  color: #FF383C;
  font-weight: 600;
  font-size: 15px;
}

/* =================================================
   PC（g.mq）
================================================= */
@media screen and (min-width: 1025px) {
  .sp-buttons {
    display: none;
  }
  .contract-table {
    overflow-x: auto;
  }
  .contract-table-chart-wrapper {
    width: 1100px;
    margin: 0 auto;
    padding: 0;
    position: static;
  }
  .contract-table-chart-inner {
    grid-template-columns: 215px 1fr 1fr 1fr;
  }
  .cell,
  .cell-free {
    padding: 10px;
    font-size: 13px;
    line-height: 1.7;
    word-break: normal;
  }
  .cell--row-pc {
    flex-direction: row;
    align-items: center;
  }
  .top-title {
    position: static;
    top: auto;
    z-index: auto;
    font-size: 16px;
    padding: 0;
    box-shadow: none;
    line-height: 3.7;
  }
  .top-visual {
    padding: 20px 10px;
  }
  .top-visual img {
    max-width: 140px;
  }
}
.contract-3-types-button {
  text-align: center;
}
.contract-3-types-button a {
  font-size: 14rem;
}
@media screen and (min-width: 1025px) {
  .contract-3-types-button a {
    font-size: inherit;
  }
}

/*!
page > contract > contract-3-types-attention（注記）
------------------------------
*/
.contract-3-types-attention {
  margin: 60rem 0 100rem;
  --marker-w: 2.6em;
}
.contract-3-types-attention__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 32rem;
}
.contract-3-types-attention__title {
  margin: 0;
  line-height: 1.6;
  padding-left: var(--marker-w);
  text-indent: calc(-1 * var(--marker-w));
}
.contract-3-types-attention__text {
  margin: 12rem 0 0;
  font-size: 16rem;
  line-height: 2;
  text-align: justify;
  padding-left: var(--marker-w);
}
.contract-3-types-attention__link {
  color: #1a4cff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.contract-3-types-attention__link:hover {
  text-decoration-thickness: 0.12em;
}
@media screen and (min-width: 1025px) {
  .contract-3-types-attention {
    margin-top: 60rem;
  }
  .contract-3-types-attention__list {
    gap: 40rem;
  }
  .contract-3-types-attention {
    --marker-w: 2.7em;
  }
  .contract-3-types-attention__text {
    margin-top: 14rem;
  }
}

/*!
page > contract > contract-certificate
------------------------------
*/
.contract-certificate {
  margin-top: 18rem;
}
.contract-certificate .contract-certificate-description__inner {
  display: flex;
  flex-direction: column;
  gap: 24rem;
}
.contract-certificate .contract-certificate-description__body {
  font-size: 16rem;
  line-height: 1.75;
  text-align: justify;
}
.contract-certificate .contract-certificate-description__body p {
  margin: 0;
}
.contract-certificate .contract-certificate-description__body p + p {
  margin-top: 24rem;
}
.contract-certificate .contract-certificate-description__list {
  margin: 12rem 0;
  padding: 0;
  list-style: none;
}
.contract-certificate .contract-certificate-description__list li {
  position: relative;
  padding-left: 1.1em;
  font-weight: 700;
}
.contract-certificate .contract-certificate-description__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.contract-certificate .contract-certificate-description__figure {
  margin: 0;
  background: #fff;
  padding: 12rem;
  border-radius: 2rem;
}
.contract-certificate .contract-certificate-description__figure img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1025px) {
  .contract-certificate .contract-certificate-description__inner {
    display: grid;
    grid-template-columns: 1fr 420rem;
    gap: 48rem;
    align-items: start;
  }
  .contract-certificate .contract-certificate-description__figure {
    padding: 16rem;
  }
}

.contract-certificate-description-button {
  text-align: center;
  margin: 48rem 0 30rem;
}

/*!
page > contract > contract-report
------------------------------
*/
.contract-report {
  margin-top: 48rem;
}

.contract-report-description__body {
  font-size: 16rem;
  line-height: 1.9;
  text-align: justify;
}
.contract-report-description__body p {
  margin: 0;
}
.contract-report-description__body p + p {
  margin-top: 24rem;
}
.contract-report-description__list {
  margin: 24rem 0;
  padding: 0;
  list-style: none;
}
.contract-report-description__list li {
  position: relative;
  padding-left: 1.2em;
  font-weight: 700;
}
.contract-report-description__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.contract-report-description__em {
  font-weight: 700;
}
.contract-report-description__note, .contract-report-description__closing {
  margin-top: 24rem;
}
@media screen and (min-width: 1025px) {
  .contract-report-description__body {
    line-height: 1.75;
  }
}

/*!
page > library > library_news
------------------------------
*/
.news-button {
  text-align: center;
  margin-top: 46rem;
}

/*!
page > library > library_explanation
------------------------------
*/
.library_explanation {
  margin-top: 64rem;
}

/* details accordion */
.library-acc {
  border: 1px solid var(--color-primary);
  background: var(--color-white);
}
.library-acc + .library-acc {
  margin-top: 20rem;
}
.library-acc__actions {
  display: flex;
  justify-content: center;
  padding: 24rem 0;
}
.library-acc__close {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: var(--color-button);
  color: var(--color-white);
  border-radius: 5px;
  padding: 12rem 28rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.library-acc__close:hover {
  opacity: 0.8;
  transform: translateY(-1rem);
}
.library-acc__close:focus-visible {
  outline: 3px solid var(--color-button);
  outline-offset: 4rem;
}

.library-acc__summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16rem 22rem;
  background: var(--color-primary);
  color: #fff;
  font-weight: 400;
  letter-spacing: 0.02em;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* デフォルトの三角マーカーを消す */
}
.library-acc__summary::-webkit-details-marker {
  display: none;
}

.library-acc__title {
  font-size: 16rem;
  line-height: 1.4;
}

/* 右端の +/- */
.library-acc__toggle {
  position: relative;
  flex: 0 0 auto;
  width: 18rem;
  height: 18rem;
}
.library-acc__toggle::before, .library-acc__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18rem;
  height: 2rem;
  background: var(--color-white);
  transform: translate(-50%, -50%);
  border-radius: 999px;
}
.library-acc__toggle {
  /* 縦棒（閉じている時は +） */
}
.library-acc__toggle::after {
  width: 2rem;
  height: 18rem;
}

/* open のときは -（縦棒を消す） */
.library-acc[open] .library-acc__toggle::after {
  opacity: 0;
}

/* content：高さアニメ対象（paddingは持たせない） */
.library-acc__content {
  overflow: hidden;
  height: 0;
  padding: 0;
  /* 重要：0固定 */
  transition: height 0.4s ease;
  will-change: height;
}

/* paddingは中身側へ移す */
.library-acc__content > .library-explain,
.library-acc__content > .library-use {
  padding: 26rem 22rem 30rem;
}

/* 動きを減らす設定の方への配慮 */
@media (prefers-reduced-motion: reduce) {
  .library-acc__content {
    transition: none;
  }
}
/* ------------------------------
  Accordion 1：各公表項目の説明
------------------------------ */
.library-explain__item + .library-explain__item {
  margin-top: 22rem;
}

.library-explain__head {
  margin: 0 0 10rem;
  color: var(--color-primary);
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.4;
}

.library-explain__text {
  margin: 0;
  font-size: 14rem;
  line-height: 1.9;
  color: var(--color-font-base);
  text-align: justify;
}
.library-explain__text + .library-explain__text {
  margin-top: 10rem;
}

.library-explain__list {
  margin: 14rem 0 0;
}
.library-explain__list .library-explain__listItem + .library-explain__listItem {
  margin-top: 14rem;
}

.library-explain__listTitle {
  margin: 0 0 6rem;
  font-size: 13rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-font-base);
}

.library-explain__listText {
  margin: 0;
  font-size: 14rem;
  line-height: 1.9;
  color: var(--color-font-base);
  padding-left: 15rem;
}

/* ------------------------------
  Accordion 2：統計利用（引用・転載等）
------------------------------ */
.library-use__section + .library-use__section {
  margin-top: 26rem;
}

.library-use__head {
  display: flex;
  align-items: flex-start;
  gap: 10rem;
  margin: 0 0 12rem;
  font-size: 14rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--color-font-base);
}

.library-use__mark {
  flex: 0 0 auto;
  width: 10rem;
  height: 10rem;
  margin-top: 6rem;
  background: #f2cf2b;
  /* 黄色の四角 */
}

.library-use__text {
  margin: 0;
  font-size: 14rem;
  line-height: 1.9;
  color: var(--color-font-base);
  padding-left: 15rem;
  text-align: justify;
}

.library-use__block {
  margin-top: 12rem;
}

.library-use__subhead {
  margin: 0 0 6rem;
  font-size: 14rem;
  font-weight: 700;
  line-height: 1.8;
  color: var(--color-font-base);
}

.library-use__example {
  margin: 16rem 0 0;
  padding-left: 16rem;
  font-size: 13rem;
  line-height: 1.9;
  color: var(--color-font-base);
}

.library-use__box {
  margin-top: 22rem;
  padding: 18rem 18rem;
  background: #FFFAE9;
}

.library-use__boxTitle {
  margin: 0 0 10rem;
  font-size: 14rem;
  font-weight: 700;
  color: var(--color-font-base);
}

.library-use__boxList {
  margin: 0;
  padding-left: 18rem;
  text-align: justify;
}
.library-use__boxList li {
  font-size: 14rem;
  line-height: 1.3;
  color: var(--color-font-base);
}
.library-use__boxList li + li {
  margin-top: 8rem;
}

/* PDF 注記行（アイコンは bxs_file-pdf.svg を想定） */
.library-use__note {
  display: flex;
  align-items: flex-start;
  /* 2行になった時も先頭が揃う */
  /* 幅が足りなければ折り返す */
  flex-wrap: wrap;
  /* flex内の折り返しで崩れないため */
  min-width: 0;
  margin: 14rem 0 0;
  font-size: 14rem;
  line-height: 1.8;
  color: #333;
}

.library-use__noteMark {
  flex: 0 0 auto;
}

.library-use__pdf {
  flex: 0 0 auto;
  width: 20rem;
  height: 20rem;
  margin-top: 2px;
  /* #333で表示（mask方式） */
  background-color: #333;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
}

/* ここが折り返しを担う（残り幅を使って改行） */
.library-use__noteText {
  flex: 1 1 0%;
  min-width: 0;
  /* 省略せず改行させる */
  white-space: normal;
}
.library-use__noteText a {
  text-decoration: underline;
  text-underline-offset: 2rem;
}

/* =========================
  PC
========================= */
@media screen and (min-width: 1025px) {
  .library_explanation {
    margin-top: 83rem;
  }
  .library-acc + .library-acc {
    margin-top: 50rem;
  }
  .library-acc__summary {
    padding: 17rem 28rem;
  }
  .library-acc__summary:hover {
    opacity: 0.8;
  }
  .library-acc__title {
    font-size: 18rem;
  }
  .library-acc__content {
    padding: 0;
    /* PC側も0固定 */
  }
  .library-acc__content > .library-explain,
  .library-acc__content > .library-use {
    padding: 32rem 34rem 38rem;
  }
  .library-explain__head {
    font-size: 16rem;
  }
  .library-explain__text,
  .library-explain__listTitle,
  .library-explain__listText,
  .library-use__text,
  .library-use__subhead {
    font-size: 14rem;
  }
  .library-use__example {
    font-size: 14rem;
  }
  .library-use__boxList li:nth-child(2) {
    padding-left: 15rem;
  }
}
/*!
page > library > library-list
------------------------------
*/
.library-list {
  margin-top: 100rem;
}

.library-list-description {
  font-size: 16rem;
}
@media screen and (min-width: 1025px) {
  .library-list-description {
    padding-left: 70rem;
  }
}

/*!
page > library > library-year-grid
------------------------------
*/
.library-list-year-grid {
  margin-top: 28rem;
}
@media screen and (min-width: 1025px) {
  .library-list-year-grid {
    width: 920rem;
    margin: 28rem auto 0;
  }
}

.library-year-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.library-year-btn {
  /* 背景色は年ごとに inline の --year-bg で差し替え可能（MT側で制御想定） */
  --year-bg: var(--color-primary);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 82rem;
  padding: 18rem 12rem 18rem 0;
  border-radius: 8rem;
  background: var(--year-bg);
  color: #fff;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.library-year-btn__text {
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transform-origin: center;
  transition: transform 0.2s ease;
}

.library-year-btn::after {
  content: "";
  position: absolute;
  right: 10rem;
  top: 50%;
  width: 10rem;
  height: 10rem;
  border-top: 3rem solid currentColor;
  border-right: 3rem solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

/* Hover（PC想定） */
@media (hover: hover) and (pointer: fine) {
  .library-year-btn:hover {
    background: #F7BA00;
    transform: translateY(-2rem);
    box-shadow: 1rem 1rem 8px 0px rgba(0, 0, 0, 0.35);
  }
  .library-year-btn:hover .library-year-btn__text {
    transform: scale(1.08);
  }
}
/* Touch対策（押下中の視覚フィードバック） */
.library-year-btn:active {
  background: #F7BA00;
}

.library-year-btn:active .library-year-btn__text {
  transform: scale(1.06);
}

.library-year-btn:focus-visible {
  outline: 3rem solid #000;
  outline-offset: 4rem;
}

/* =========================
  PC
========================= */
@media screen and (min-width: 1025px) {
  .library-year-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20rem;
  }
  .library-year-btn {
    min-height: 92rem;
    padding: 20rem 48rem 20rem 28rem;
  }
  .library-year-btn__text {
    font-size: 24rem;
  }
  .library-year-btn::after {
    right: 20rem;
    width: 11rem;
    height: 11rem;
  }
}
.library-year-grid__item {
  display: grid;
  place-items: center;
}

.library-year-btn {
  width: 100%;
  max-width: 220rem;
}

@media screen and (min-width: 1025px) {
  .library-year-btn {
    max-width: 260rem;
  }
}
/*!
page > library > library-other-list
------------------------------
*/
.library-list-other-list {
  margin-top: 105rem;
}
@media screen and (min-width: 1025px) {
  .library-list-other-list {
    margin-top: 205rem;
  }
}

.library-list-other-button {
  margin-top: 25rem;
}
@media screen and (min-width: 1025px) {
  .library-list-other-button {
    margin-top: 0;
  }
}

.library-list-other-list02 {
  margin-top: 95rem;
}

.topic__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72rem;
  height: 24rem;
  background: var(--color-red);
  color: var(--color-white);
  border-radius: 999rem;
  font-family: var(--font-family-base);
  font-weight: 700;
  font-size: 12rem;
  letter-spacing: 0.08em;
  line-height: 1;
}
.topic__tag.is-empty {
  visibility: hidden;
}
@media screen and (min-width: 1025px) {
  .topic__tag {
    width: 78rem;
    height: 26rem;
  }
}

.library_year_news_list .library_year_news_item {
  display: flex;
  align-items: center;
  gap: 12rem;
}
.library_year_news_list .news__tag {
  flex: 0 0 auto;
}
.library_year_news_list .info-title-link {
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .library_year_news_list .library_year_news_item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8rem;
  }
}

/* アンカーリンク先の位置調整 */
/*!
page > library > library_year (tabs)
-----------------------------------
*/
.library_year_modBox {
  margin-top: 10rem;
}
@media screen and (min-width: 1025px) {
  .library_year_modBox {
    margin-top: 0;
  }
}

.library_year_tabMenu {
  position: relative;
  --library_year_tabInset: 16rem;
  /* 端タブと下線を揃える（SP） */
  /* SP：横スクロール */
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  /* スクロールバー非表示（見た目優先） */
  scrollbar-width: none;
  /* Firefox */
}
.library_year_tabMenu::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}
.library_year_tabMenu {
  /* 下のグレーライン（デザイン再現） */
}
.library_year_tabMenu::after {
  content: "";
  position: absolute;
  left: var(--library_year_tabInset);
  right: var(--library_year_tabInset);
  /* 三角マーカー（14rem）と揃える */
  bottom: 42rem;
  height: 2rem;
  background: var(--color-primary);
  pointer-events: none;
}
.library_year_tabMenu {
  /*
  下向き三角（activeマーカー）が
  横スクロール（overflow）で隠れないように、下側に“表示領域”を確保。
  ※ overflow-x: auto の場合、Y方向のはみ出しもクリップされやすいため。
  */
  padding-bottom: 28rem;
}

.library_year_tab_inner {
  /* 端の余白（SP） */
  padding-inline: 0;
}

.library_year_list {
  display: flex;
  align-items: stretch;
  gap: 8rem;
  list-style: none;
  margin: 0;
  padding: 0;
  /* SP：横並び維持 */
  width: -moz-max-content;
  width: max-content;
}

.library_year_item {
  flex: 0 0 auto;
}

/* タブ本体（button） */
.library_year_tabBtn {
  --tab-border: var(--color-primary, #007a3d);
  --tab-active: var(--color-primary, #007a3d);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* SPの見た目（必要に応じて調整） */
  min-width: 150rem;
  height: 65rem;
  padding-inline: 16rem;
  border: 2rem solid var(--tab-border);
  border-radius: 6rem 6rem 0 0;
  background: #fff;
  color: var(--tab-border);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* hoverスライド用（PCで有効） */
  overflow: hidden;
}
.library_year_tabBtn span {
  position: relative;
  z-index: 1;
  display: block;
  white-space: nowrap;
  /* 長文タブだけは折り返し許容 */
}
.library_year_tabBtn {
  /* アクセシビリティ */
}
.library_year_tabBtn:focus-visible {
  outline: 3rem solid rgba(0, 122, 61, 0.35);
  outline-offset: 3rem;
}
.library_year_tabBtn {
  /* 選択中（current） */
}
.library_year_tabBtn.is-active {
  background: var(--tab-active);
  border-color: var(--tab-active);
  color: #fff;
  cursor: default;
  pointer-events: none;
  /* 「currentはリンク不要」＝操作不要 */
  /* 下向き三角 */
}
.library_year_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -14rem;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 14rem solid transparent;
  border-right: 14rem solid transparent;
  border-top: 14rem solid var(--tab-active);
  z-index: 2;
}
.library_year_tabBtn {
  /* PC用：hoverで背景が左→右へスライド */
}
@media screen and (min-width: 1025px) {
  .library_year_tabBtn {
    min-width: 0;
    width: 100%;
    height: 65rem;
    /* 文字の折り返しはPCでは原則しない（必要なら解除） */
  }
  .library_year_tabBtn span {
    white-space: nowrap;
  }
  .library_year_tabBtn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--tab-active);
    transform: translateX(-101%);
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 0;
  }
  .library_year_tabBtn:hover {
    color: #fff;
  }
  .library_year_tabBtn:hover::before {
    transform: translateX(0);
  }
  .library_year_tabBtn {
    /* activeは常時ベタ塗りなので、hover演出は不要 */
  }
  .library_year_tabBtn.is-active::before {
    transform: translateX(0);
    transition: none;
  }
}

/* PC：6カラム固定のタブ並び */
@media screen and (min-width: 1025px) {
  .library_year_tabMenu {
    --library_year_tabInset: 0;
    /* PC：左右余白なし */
    overflow: visible;
    padding-bottom: 0;
  }
  .library_year_tabMenu::after {
    bottom: 14rem;
  }
  .library_year_tab_inner {
    padding-inline: 0;
  }
  .library_year_list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
  }
  .library_year_item {
    /* 区切り線っぽく見せたい場合はここで調整可 */
  }
}
/* パネル */
.library_year_tabWrap {
  margin-top: 0;
}
@media screen and (min-width: 1025px) {
  .library_year_tabWrap {
    margin-top: 32rem;
  }
}

.library_year_tabPanel {
  display: block;
}

/* hidden属性で非表示（JS切替） */
.library_year_tabPanel[hidden] {
  display: none !important;
}

/* ----------------------------------------------------------------
   FIX: アクティブ時の下向き三角が overflow により隠れる問題への対策
   - 三角を「はみ出し」で表現せず、タブメニュー内の確保した余白に収める
   - ScrollHint が overflow を持つ要素（.scroll-hint-content）側に余白を付与
----------------------------------------------------------------- */
.library_year_modBox {
  /* 三角の高さ（必要なら調整） */
  --library-tab-tri-h: 14rem;
  /* 下のグレーラインの太さ（必要なら調整） */
  --library-tab-line-h: 4rem;
  /* 三角のための余白（tri-h 以上に） */
  --library-tab-pad-b: calc(var(--library-tab-tri-h) + 12rem);
}

/* 親で縦方向をクリップしない（ScrollHint 側の overflow に寄せる） */
.library_year_tabMenu {
  position: relative;
  --library_year_tabInset: 16rem;
  /* 端タブと下線を揃える（SP） */
  overflow: visible;
}

/* ScrollHint が実際にスクロールさせる要素に余白とラインを持たせる */
.library_year_tabMenu .scroll-hint-content {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  /* ▼ 三角の表示領域を確保（ここが無いと三角が隠れます） */
  padding-bottom: var(--library-tab-pad-b);
  /* 横スクロールの慣性 */
  -webkit-overflow-scrolling: touch;
  /* スクロールバーを目立たせない（必要なら削除） */
  scrollbar-width: none;
}

.library_year_tabMenu .scroll-hint-content::-webkit-scrollbar {
  display: none;
}

/* 下のグレーライン（ScrollHint内に配置） */
.library_year_tabMenu .scroll-hint-content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--library-tab-line-h);
  background: #d9d9d9;
  z-index: 1;
}

/* タブボタン */
.library_year_tabBtn {
  position: relative;
}

/* アクティブ時：クリック不可（リンク不要の要件） */
.library_year_tabBtn.is-active {
  pointer-events: none;
}

/* ▼ アクティブの下向き三角（「内側」に収める版） */
.library_year_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /* tri-h 分だけ上げることで、三角の先端がちょうどラインに当たる */
  bottom: var(--library-tab-tri-h);
  border-left: 14rem solid transparent;
  border-right: 14rem solid transparent;
  border-top: var(--library-tab-tri-h) solid var(--color-primary);
  z-index: 3;
  /* ラインより上 */
}

/* PC：タブが横スクロール不要なら padding を詰めたい場合はここで調整 */
@media screen and (min-width: 1025px) {
  /* PCは overflow も不要なことが多いので、必要に応じて padding を縮める */
  .library_year_tabMenu .scroll-hint-content {
    padding-bottom: var(--library-tab-pad-b);
  }
}
/* ================================================================
   FIX: タブ下線が「グリーン＋グレーの2重線」になる問題の解消
   目標：参考画像（タブScrollHint-01-26-2026_02_07_PM.png）のように
        「グレー1本のみ」＋アクティブ三角がそのラインに接する見え方
   方針：
   - 下線は .library_year_tabMenu::after の1本だけに統一
   - .scroll-hint-content::after で生成していた線は無効化（2本目の原因）
   - 三角のための padding は tri-h ちょうどにして、下線との距離をゼロにする
================================================================ */
/* 三角・ラインの基準値（既存変数があればそちらが優先されます） */
.library_year_modBox {
  --library-tab-tri-h: 14rem;
  --library-tab-line-h: 4rem;
}

/* ScrollHintのスクロール要素に、三角分だけ余白を確保（余白＝三角高さ） */
.library_year_tabMenu .scroll-hint-content {
  padding-bottom: var(--library-tab-tri-h);
}

/* 下線はタブメニュー側の1本だけにする（グレー） */
/* 2本目の線（scroll-hint-content::after）を無効化 */
.library_year_tabMenu .scroll-hint-content::after {
  content: none !important;
}

/* ついでに、アクティブ三角が見切れないように（button側overflow対策） */
.library_year_tabBtn.is-active {
  overflow: visible;
}

/* アクティブ三角（既存があっても確実に上書き） */
.library_year_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 28rem;
  height: var(--library-tab-tri-h);
  background: var(--color-primary);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  border: 0 !important;
  z-index: 3;
}

/* 下線の左右インセット：SP/PCで分ける */
.library_year_tabMenu {
  --library_year_tabInset: 0;
}

@media screen and (min-width: 1025px) {
  .library_year_tabMenu {
    --library_year_tabInset: 6rem;
    /* PC：今ちょうど良い値 */
  }
}
/* タブを同幅にする */
.library_year_tabBtn {
  --library-year-tab-w: 200rem;
  /* SPここを調整すれば全タブ一括で変わります */
  width: var(--library-year-tab-w);
  min-width: var(--library-year-tab-w);
}
@media screen and (min-width: 1025px) {
  .library_year_tabBtn {
    --library-year-tab-w: 178rem;
    /* PCここを調整すれば全タブ一括で変わります */
    width: var(--library-year-tab-w);
    min-width: var(--library-year-tab-w);
  }
}

.library_year_tabBtn span {
  white-space: normal;
  /* 固定幅のためSPは折り返し */
  word-break: keep-all;
}

/* PC：既存の見た目を優先して折り返し禁止に戻す（必要なら） */
@media screen and (min-width: 1025px) {
  .library_year_tabBtn span {
    white-space: nowrap;
  }
}
/* ================================================================
   追記：タブ内テキストサイズ・内側余白の調整用パラメータ
   - SP/PCで別々に調整可能
   - 既存の指定があっても、この追記を末尾に置くことで上書きできます
================================================================ */
/* SP（デフォルト） */
.library_year_tabBtn {
  --library-year-tab-fz: 14rem;
  /* タブ文字サイズ（SP） */
  --library-year-tab-py: 14rem;
  /* 上下余白（SP） */
  --library-year-tab-px: 16rem;
  /* 左右余白（SP） */
  font-size: var(--library-year-tab-fz);
  padding: var(--library-year-tab-py) var(--library-year-tab-px);
}

.library_year_tabBtn span {
  line-height: 1.25;
  /* 文字サイズ変更時の崩れ防止 */
}

/* PC */
@media screen and (min-width: 1025px) {
  .library_year_tabBtn {
    --library-year-tab-fz: 14rem;
    /* タブ文字サイズ（PC） */
    --library-year-tab-py: 16rem;
    /* 上下余白（PC） */
    --library-year-tab-px: 18rem;
    /* 左右余白（PC） */
    font-size: var(--library-year-tab-fz);
    padding: var(--library-year-tab-py) var(--library-year-tab-px);
  }
}
/*!
page > library > library_year_news
-----------------------------------
*/
.library_year_news {
  margin-top: 65rem;
}
@media screen and (min-width: 1025px) {
  .library_year_news {
    margin-top: 130rem;
  }
}

.library_year_news_list .info-title-link {
  /* SP（デフォルト） */
  display: inline-flex;
  align-items: center;
  gap: 8rem;
  line-height: 1.6;
  text-decoration: underline;
}
.library_year_news_list .info-title-link::before {
  content: "";
  display: inline-block;
  width: 16rem;
  height: 16rem;
  flex: 0 0 16rem;
  margin-top: 2rem;
  /* マスクなので、この色がアイコン色になります */
  background-color: #000;
  /* PDF SVGをマスクとして使用（パスは環境に合わせて調整） */
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
  mask: url("../images/icon/bxs_file-pdf.svg") no-repeat center/contain;
}
@media screen and (min-width: 1025px) {
  .library_year_news_list .info-title-link {
    gap: 10rem;
  }
  .library_year_news_list .info-title-link::before {
    width: 18rem;
    height: 18rem;
    flex-basis: 18rem;
    margin-top: 1rem;
  }
}

.library_year__button {
  margin-top: 65rem;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .library_year__button {
    margin-top: 165rem;
  }
}

/* =========================
   「その他TOPIC」：h3 と li の間隔調整
   ========================= */
/* ul 自体の初期余白を整える */
.library_year_tabPanel .library_year_news_list {
  margin: 0; /* ブラウザデフォルト対策 */
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .library_year_tabPanel .library_year_news_list {
    padding-left: 42rem;
  }
}

/* li 同士の間隔 */
.library_year_news_item + .library_year_news_item {
  margin-top: 30rem; /* ← ここで li間の間隔を調整（画像の“ゆったり感”） */
}

.library-mw {
  --mw-summary: var(--color-button);
  --mw-data: var(--color-second);
  --mw-national: var(--color-third);
  --mw-disabled: #9b9b9b;
  --mw-month-color: #4A4A4A;
  --mw-pdf-icon: url("../images/icon/bxs_file-pdf.svg");
}
@media screen and (min-width: 1025px) {
  .library-mw {
    width: 100%;
    margin-inline: auto;
    max-width: 1050rem;
  }
}

.library-mw__grid {
  display: grid;
  gap: 18rem;
}

.library-mw__item {
  display: grid;
  grid-template-columns: 60rem 1fr;
  align-items: center;
  -moz-column-gap: 0;
       column-gap: 0;
}

.library-mw__month {
  margin: 0;
  color: var(--mw-month-color);
  font-weight: 700;
  font-size: 16rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
@media screen and (min-width: 1025px) {
  .library-mw__month {
    text-align: center;
  }
}

.library-mw__monthNum {
  font-variant-numeric: tabular-nums;
}

.library-mw__btns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8rem;
}

.library-mw__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  justify-self: center;
  height: 44rem;
  border-radius: 5rem;
  padding-inline: 0 16rem;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  font-size: 14rem;
  line-height: 1;
}
.library-mw__btn::after {
  content: "";
  position: absolute;
  right: 6rem;
  top: 50%;
  transform: translateY(-50%);
  width: 16rem;
  height: 16rem;
  background-color: #fff;
  -webkit-mask: var(--mw-pdf-icon) center/contain no-repeat;
  mask: var(--mw-pdf-icon) center/contain no-repeat;
}
@media screen and (min-width: 1025px) {
  .library-mw__btn::after {
    width: 22rem;
    height: 22rem;
    right: 12rem;
  }
}
.library-mw__btn:focus-visible {
  outline: 2rem solid #fff;
  outline-offset: 3rem;
}
@media (hover: hover) and (pointer: fine) {
  .library-mw__btn:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}
.library-mw__btn.is-summary {
  background: var(--mw-summary);
}
.library-mw__btn.is-data {
  background: var(--mw-data);
}
.library-mw__btn.is-national {
  background: var(--mw-national);
}
.library-mw__btn.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library-mw__btn.is-disabled::after {
  background-color: #d9d9d9;
}

@media screen and (min-width: 1025px) {
  .library-mw__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -moz-column-gap: 22rem;
         column-gap: 22rem;
    row-gap: 22rem;
  }
  .library-mw__item {
    grid-template-columns: 90rem 1fr;
    -moz-column-gap: 20rem;
         column-gap: 20rem;
  }
  .library-mw__btn {
    height: 46rem;
    font-size: 15rem;
    padding-inline: 14rem 32rem;
  }
  .library-mw__btns {
    gap: 14rem;
  }
}
/* ---------------------------------------------
  季報マーケットウォッチ（タブ2）
--------------------------------------------- */
.library-qmw {
  --mw-disabled: #9b9b9b;
}
@media screen and (min-width: 1025px) {
  .library-qmw {
    margin-top: 24rem;
    padding: 0 50rem;
  }
}

.library-qmw__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 16rem;
}
@media screen and (min-width: 1025px) {
  .library-qmw__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 24rem;
  }
}

.library-qmw__item {
  min-width: 0;
}

.library-qmw__btn {
  /* <a> と <span> 共通 */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56rem;
  padding: 16rem 44rem 16rem 16rem;
  /* 右側にPDFアイコン分の余白 */
  border-radius: 8rem;
  font-family: inherit;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  background: var(--color-button);
  text-decoration: none;
  /* PDFアイコン（右寄せ）- maskで currentColor 表示 */
}
.library-qmw__btn::after {
  content: "";
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 22rem;
  height: 22rem;
  background-color: currentColor;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  opacity: 1;
}
.library-qmw__btn {
  /* フォーカス可視化 */
}
.library-qmw__btn:focus-visible {
  outline: 3rem solid rgba(0, 143, 75, 0.35);
  outline-offset: 3rem;
}
.library-qmw__btn.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library-qmw__btn.is-disabled::after {
  background-color: #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .library-qmw__btn {
    min-height: 61rem;
    font-size: 18rem;
  }
}

/* hover は a のみ（span無効と競合しないように） */
@media screen and (min-width: 1025px) {
  a.library-qmw__btn {
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  a.library-qmw__btn:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}

/* =========================================================
  年報マーケットウォッチ（tab3）
========================================================= */
.library-aw {
  --mw-disabled: #9b9b9b;
  /* ===== Accordion ===== */
}
.library-aw .library-acc {
  border: 1px solid var(--color-primary);
  background: var(--color-white);
}
.library-aw .library-acc + .library-acc {
  margin-top: 16rem;
}
.library-aw .library-acc__summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18rem 20rem;
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 18rem;
  line-height: 1.35;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* Safari/Chrome marker 제거 */
}
.library-aw .library-acc__summary::-webkit-details-marker {
  display: none;
}
.library-aw .library-acc__summary::marker {
  content: "";
}
.library-aw .library-acc__summary {
  /* + / −（右端） */
}
.library-aw .library-acc__summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 24rem;
  height: 24rem;
  font-size: 24rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.library-aw .library-acc[open] .library-acc__summary::after {
  content: "−";
}
.library-aw .library-acc__title {
  display: inline-flex;
  gap: 10rem;
  align-items: baseline;
}
.library-aw .library-acc__num {
  font-weight: 800;
}
.library-aw {
  /* JSで height を制御する前提 */
}
.library-aw .library-acc__content {
  overflow: hidden;
  height: 0px;
  transition: height 0.35s ease;
  background: var(--color-white);
}
.library-aw .library-acc__inner {
  padding: 22rem 18rem 24rem;
}
.library-aw {
  /* ===== Buttons grid ===== */
}
.library-aw .library-aw__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14rem;
}
.library-aw .library-aw__btn {
  /* <a> と <span> 共通 */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56rem;
  padding: 16rem 44rem 16rem 16rem;
  /* 右側にPDFアイコン分の余白 */
  border-radius: 8rem;
  font-family: inherit;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
  background: var(--color-third);
  text-decoration: none;
  /* PDFアイコン（右寄せ）- maskで currentColor 表示 */
}
.library-aw .library-aw__btn::after {
  content: "";
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 24rem;
  height: 24rem;
  background-color: currentColor;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  opacity: 1;
}
.library-aw .library-aw__btn {
  /* フォーカス可視化 */
}
.library-aw .library-aw__btn:focus-visible {
  outline: 3rem solid rgba(0, 143, 75, 0.35);
  outline-offset: 3rem;
}
.library-aw .library-aw__btn.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library-aw .library-aw__btn.is-disabled::after {
  background-color: #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .library-aw .library-aw__btn {
    min-height: 61rem;
    font-size: 18rem;
  }
}
.library-aw .library-aw__text {
  display: inline-block;
}
.library-aw .library-aw__table {
  display: inline-block;
  margin-right: 10rem;
  font-weight: 800;
}
.library-aw {
  /* ===== PC ===== */
}
@media screen and (min-width: 1025px) {
  .library-aw .library-acc + .library-acc {
    margin-top: 18rem;
  }
  .library-aw .library-acc__summary {
    padding: 20rem 26rem;
    font-size: 20rem;
  }
  .library-aw .library-acc__inner {
    padding: 26rem 28rem 30rem;
  }
  .library-aw .library-aw__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18rem 22rem;
  }
  .library-aw .library-aw__btn {
    min-height: 60rem;
  }
  .library-aw .library-aw__btn:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}

.library-aw .library-aw__group + .library-aw__group {
  margin-top: 22rem;
}
.library-aw .library_year_tabPanel_subtitle {
  margin: 0 0 12rem;
  font-weight: 400;
  font-size: 16rem;
  line-height: 1.35;
}
@media screen and (min-width: 1025px) {
  .library-aw .library-aw__group + .library-aw__group {
    margin-top: 26rem;
  }
  .library-aw .library_year_tabPanel_subtitle {
    font-size: 18rem;
  }
}

@media screen and (min-width: 1025px) {
  .library_year_tabPanel_inner {
    padding: 0 38rem;
  }
}

.library_year_tabPanel_zipButton {
  width: 100%;
  margin-inline: auto;
  margin-top: 40rem;
}
@media screen and (min-width: 1025px) {
  .library_year_tabPanel_zipButton {
    width: 454rem;
    margin-top: 90rem;
  }
}

.library_year_tabPanel_title {
  font-size: 17rem;
  font-weight: 700;
  padding-bottom: 30rem;
}
@media screen and (min-width: 1025px) {
  .library_year_tabPanel_title {
    font-size: 20rem;
  }
}

/* =================================================
   年報マーケットウォッチのタブ非活性
   - 対象: .is-unavailable が付いたタブボタンのみ
================================================= */
.is-unavailable {
  background: #9b9b9b;
  color: #fff;
  border-color: #9b9b9b;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.55;
  filter: none;
}

/* ホバー演出がある場合の保険（色が変わらないように固定） */
.is-unavailable:hover,
.is-unavailable:focus-visible {
  background: #9b9b9b;
  border-color: #9b9b9b;
  outline: none;
}

/* =========================================================
  首都圏不動産流通市場の動向（暦年・年度）（tab4）
========================================================= */
.library-tab4-download {
  --mw-disabled: #9b9b9b;
}
.library-tab4-download__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .library-tab4-download__list {
    grid-template-columns: 1fr 1fr;
    gap: 64rem;
    align-items: center;
  }
}
.library-tab4-download__item {
  display: flex;
  align-items: center;
  gap: 12rem;
  margin: 0;
}
@media screen and (min-width: 1025px) {
  .library-tab4-download__item {
    gap: 16rem;
  }
}
.library-tab4-download__label {
  flex: 0 0 auto;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.2;
  color: #000;
  min-width: 40rem;
}
@media screen and (min-width: 1025px) {
  .library-tab4-download__label {
    min-width: 48rem;
  }
}
.library-tab4-download__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 56rem;
  padding: 14rem 40rem 14rem 24rem;
  border-radius: 8rem;
  background: var(--color-button);
  color: #fff;
  text-decoration: none;
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.library-tab4-download__link::after {
  content: "";
  position: absolute;
  right: 20rem;
  top: 50%;
  transform: translateY(-50%);
  width: 20rem;
  height: 20rem;
  background-color: #fff;
  -webkit-mask: url("../images/icon/bxs_file-pdf-green.svg") center/contain no-repeat;
  mask: url("../images/icon/bxs_file-pdf-green.svg") center/contain no-repeat;
}
.library-tab4-download__link:hover {
  opacity: 0.9;
  transform: translateY(-1rem);
}
.library-tab4-download__link:active {
  transform: translateY(0);
  opacity: 0.85;
}
.library-tab4-download__link:focus-visible {
  outline: 3rem solid rgba(255, 255, 255, 0.75);
  outline-offset: 2rem;
}
.library-tab4-download__link.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library-tab4-download__link.is-disabled::after {
  background-color: #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .library-tab4-download__link {
    min-height: 60rem;
    padding: 16rem 46rem 16rem 24rem;
  }
  .library-tab4-download__link::after {
    right: 24rem;
    width: 22rem;
    height: 22rem;
  }
}

/* ---------------------------------------------
  REINS TOPIC（タブ6）
--------------------------------------------- */
.library_year_topic {
  --mw-disabled: #9b9b9b;
}
@media screen and (min-width: 1025px) {
  .library_year_topic {
    padding: 0 50rem 50rem;
  }
}

.library_year_topic__grid {
  list-style: none;
  padding: 0 0 20rem 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 16rem;
}
@media screen and (min-width: 1025px) {
  .library_year_topic__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 24rem;
  }
}

.library_year_topic__item {
  min-width: 0;
}

.library_year_topic__btn {
  /* <a> と <span> 共通 */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56rem;
  padding: 16rem 44rem 16rem 16rem;
  /* 右側にPDFアイコン分の余白 */
  border-radius: 8rem;
  font-family: inherit;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  background: var(--color-button);
  text-decoration: none;
  /* PDFアイコン（右寄せ）- maskで currentColor 表示 */
}
.library_year_topic__btn::after {
  content: "";
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 22rem;
  height: 22rem;
  background-color: currentColor;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  opacity: 1;
}
.library_year_topic__btn {
  /* フォーカス可視化 */
}
.library_year_topic__btn:focus-visible {
  outline: 3rem solid rgba(0, 143, 75, 0.35);
  outline-offset: 3rem;
}
.library_year_topic__btn.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library_year_topic__btn.is-disabled::after {
  background-color: #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .library_year_topic__btn {
    min-height: 61rem;
    font-size: 18rem;
  }
}

/* hover は a のみ（span無効と競合しないように） */
@media screen and (min-width: 1025px) {
  a.library_year_topic__btn {
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  a.library_year_topic__btn:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}

.library_year_topic__btn_graph {
  /* <a> と <span> 共通 */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56rem;
  padding: 16rem 44rem 16rem 16rem;
  /* 右側にPDFアイコン分の余白 */
  border-radius: 8rem;
  font-family: inherit;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
  background: var(--color-button);
  text-decoration: none;
  /* PDFアイコン（右寄せ）- maskで currentColor 表示 */
}
.library_year_topic__btn_graph::after {
  content: "";
  position: absolute;
  right: 16rem;
  top: 50%;
  transform: translateY(-50%);
  width: 22rem;
  height: 22rem;
  background-color: currentColor;
  mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  -webkit-mask: url("../images/icon/bxs_file-pdf.svg") center/contain no-repeat;
  opacity: 1;
}
.library_year_topic__btn_graph {
  /* フォーカス可視化 */
}
.library_year_topic__btn_graph:focus-visible {
  outline: 3rem solid rgba(0, 143, 75, 0.35);
  outline-offset: 3rem;
}
.library_year_topic__btn_graph.is-disabled {
  background: var(--mw-disabled);
  opacity: 0.55;
}
.library_year_topic__btn_graph.is-disabled::after {
  background-color: #d9d9d9;
}
@media screen and (min-width: 1025px) {
  .library_year_topic__btn_graph {
    min-height: 61rem;
    font-size: 14rem;
  }
}

/* hover は a のみ（span無効と競合しないように） */
@media screen and (min-width: 1025px) {
  a.library_year_topic__btn_graph {
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  a.library_year_topic__btn_graph:hover {
    opacity: 0.9;
    transform: translateY(-1rem);
  }
}

@media screen and (min-width: 1025px) {
  .library_year_tabPanel .library_year_tabPanel_title {
    padding-left: 20rem;
  }
}

.dads-emergency-banner {
  --emg-orange: #f26a00;
  --emg-red: #e00000;
  --emg-text: #111;
  background: #fff;
  color: var(--emg-text);
  border: 6px solid var(--emg-orange);
  padding: 20rem;
  margin-inline: 16px;
  margin-top: 20rem;
  margin-bottom: 20rem;
}

.dads-emergency-banner__header {
  display: grid;
  gap: 12px;
}

.dads-emergency-banner__heading {
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  font-size: 21rem;
}

.dads-emergency-banner__timestamp {
  display: inline-block;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.6;
  font-size: 16rem;
}

.dads-emergency-banner__body p {
  margin: 0;
  letter-spacing: 0.01em;
  line-height: 1.9;
  font-size: 16rem;
  text-align: justify;
}

.dads-emergency-banner__action {
  margin-top: clamp(20px, 3.8vw, 36px);
  display: flex;
  justify-content: center;
}

.dads-emergency-banner__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: min(720px, 100%);
  min-height: 72px;
  padding: 18px 22px;
  background: var(--emg-red);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: clamp(16px, 4.4vw, 20px);
  border-radius: 18px;
  border: 6px solid var(--emg-red);
  box-shadow: inset 0 0 0 6px #fff;
  transition: filter 0.2s ease, transform 0.05s ease;
}
.dads-emergency-banner__button:hover {
  filter: brightness(0.95);
}
.dads-emergency-banner__button:active {
  transform: translateY(1px);
}
.dads-emergency-banner__button:focus-visible {
  outline: 3px solid #111;
  outline-offset: 4px;
}

.dads-emergency-banner__button-icon {
  display: inline-flex;
  align-items: center;
}
.dads-emergency-banner__button-icon img {
  display: block;
  width: 24px;
  height: 24px;
}

@media (min-width: 768px) {
  .dads-emergency-banner {
    margin-inline: auto;
    max-width: 1100px;
  }
  .dads-emergency-banner__heading {
    font-size: 24rem;
  }
  .dads-emergency-banner__header {
    gap: 14px;
  }
  .dads-emergency-banner__action {
    margin-top: 28px;
  }
  .dads-emergency-banner__button {
    min-height: 88px;
    border-radius: 22px;
    padding: 22px 28px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dads-emergency-banner__button {
    transition: none;
  }
}
/*!
page > contact
------------------------------
*/
@media screen and (min-width: 1025px) {
  .contact-description {
    margin-bottom: 40rem;
  }
}
.contact-description p {
  font-size: 16rem;
}
.contact-description h2 {
  font-size: 22rem;
}
@media screen and (min-width: 1025px) {
  .contact-description h2 {
    font-size: 32rem;
  }
}

.contact-qa-button {
  margin: 30rem 0 50rem 0;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .contact-qa-button {
    margin-bottom: 90rem;
    text-align: left;
  }
}

.contact_type {
  display: grid;
  gap: 30rem;
}

/* --- Wide blocks (上2つ) --- */
.contact_type__wide {
  background: #eaf6ea;
  border-radius: 16rem;
  padding: 24rem 20rem;
}

.contact_type__wideInner {
  display: grid;
  gap: 10rem;
}

.contact_type__title {
  font-size: 20rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-align: center;
}

.contact_type__desc {
  font-size: 14rem;
  line-height: 1.8;
}

.contact_type__btn {
  width: 100%;
  max-width: 360rem;
}
.contact_type__btn a {
  padding: 20px 10px 20px 20px;
}

.contact_type__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8rem;
  margin-bottom: 10rem;
}

.contact_type__telLink {
  display: inline-flex;
  align-items: center;
  gap: 4rem;
  text-decoration: none;
}

.contact_type__telIcon {
  width: 28rem;
  height: 28rem;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex: 0 0 auto;
}

.contact_type__telIcon--green {
  background-image: url("../images/icon/phone-green.svg");
}

.contact_type__telIcon--black {
  width: 22rem;
  height: 22rem;
  background-image: url("../images/icon/phone.svg");
}

.contact_type__telNum {
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}

.contact_type__telNote {
  font-size: 18rem;
  font-weight: 400;
  color: var(--color-font-base);
}

.contact_type__meta {
  display: grid;
  gap: 2rem;
  font-size: 14rem;
  line-height: 1.7;
}

.contact_type__metaKey {
  flex: 0 0 auto;
  font-weight: 400;
}

/* --- Caption & cards --- */
.contact_type__caption {
  font-size: 14rem;
  font-weight: 400;
  margin-top: 34rem;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .contact_type__caption {
    font-size: 18rem;
    text-align: left;
  }
}

.contact_type__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30rem;
}

.contact_type__card {
  background: #f3f3f3;
  border-radius: 12rem;
  padding: 28rem 22rem;
  text-align: center;
}

.contact_type__cardTitle {
  font-size: 16rem;
  font-weight: 400;
  line-height: 1.5;
}

.contact_type__cardTel {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8rem;
}

.contact_type__cardTelNum {
  font-size: 22rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--color-font-base);
}

.contact_type__meta--center {
  justify-items: center;
  text-align: center;
}

.contact_type__btn--center {
  margin: 8rem auto 0;
}

/* ========================
SP：ボタンをタイトル直下へ（表示順のみ入れ替え）
------------------------------ */
.contact_type__card {
  display: flex;
  flex-direction: column;
}

.contact_type__cardTitle {
  order: 1;
}

.contact_type__btn {
  order: 2;
}

.contact_type__cardTel {
  order: 3;
}

.contact_type__meta {
  order: 4;
}

/* タイトル直下に来るので、上下余白を調整（お好みで微調整OK） */
.contact_type__btn--center {
  margin: 12rem auto 16rem;
}

/* ========================
PC：元の並びに戻す（「スマホの時だけ」要件）
------------------------------ */
@media screen and (min-width: 1025px) {
  .contact_type__cardTitle,
  .contact_type__btn,
  .contact_type__cardTel,
  .contact_type__meta {
    order: initial;
  }
  .contact_type__btn--center {
    margin: 8rem auto 0;
  }
}
/* ========================
各カラム内だけ中央寄せ（2カラムレイアウトは維持）
------------------------------ */
.contact_type__left,
.contact_type__right {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 15rem;
}

.contact_type__tel {
  justify-content: center;
}

/* PC */
@media screen and (min-width: 1025px) {
  .contact_type {
    gap: 16rem;
  }
  .contact_type__wide {
    padding: 36rem 56rem;
    border-radius: 20rem;
  }
  .contact_type__wide:nth-child(2) {
    margin-top: 30rem;
  }
  .contact_type__wideInner {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 90rem;
  }
  .contact_type__title {
    font-size: 22rem;
  }
  .contact_type__desc {
    font-size: 14rem;
    max-width: 580rem;
  }
  .contact_type__btn {
    max-width: 380rem;
  }
  .contact_type__btn a {
    padding: 15px 20px 15px 30px;
  }
  .contact_type__right {
    text-align: left;
  }
  .contact_type__telNum {
    font-size: 32rem;
  }
  .contact_type__meta {
    font-size: 15rem;
  }
  .contact_type__grid {
    grid-template-columns: 1fr 1fr;
    gap: 40rem;
  }
  .contact_type__card {
    padding: 20rem 34rem;
  }
  .contact_type__cardTitle {
    font-size: 17rem;
  }
  .contact_type__cardTelNum {
    font-size: 22rem;
  }
  /* 中身は中央寄せ（レイアウトは左右2カラムのまま） */
  .contact_type__right {
    text-align: center;
  }
  .contact_type__tel {
    justify-content: center;
  }
}
/* SP（デフォルト）：telリンク有効のまま */
.contact_type__telLink {
  -webkit-tap-highlight-color: transparent;
}

/* PC：telリンクを無効化（クリック不可） */
@media screen and (min-width: 1025px) {
  .contact_type__telLink[href^="tel:"] {
    pointer-events: none;
    cursor: default;
    color: inherit;
    text-decoration: none;
  }
}
/*!
page > contact > contact_type1 一般の皆さま向け 消費者相談室 お問い合わせフォーム
------------------------------
*/
/* =========================================================
  form1 (contact_type1)
========================================================= */
@media screen and (min-width: 1025px) {
  .contact_type1 {
    margin-top: 24rem;
  }
}

/* Form wrapper */
.contactForm1 {
  --cf1-border: var(--color-button);
  --cf1-bg: #E2F0CE;
  /* 左カラム背景（薄いグリーン） */
  --cf1-bg2: #FFFFF3;
  /* ステップ背景など */
  --cf1-required: #e64242;
  color: var(--color-font-base);
}

/* ------------------------------
  Step bar (image)
------------------------------ */
.contactForm1__stepbar {
  margin: 0 0 18rem;
}

.contactForm1__stepbarImg {
  display: block;
  width: 100%;
  height: auto;
}

.contactForm1__stepbarImg.is-pc {
  display: none;
}

.contactForm1__stepbarImg.is-sp {
  display: block;
}

@media screen and (min-width: 1025px) {
  .contactForm1__stepbar {
    margin-bottom: 20rem;
  }
  .contactForm1__stepbarImg.is-pc {
    display: block;
  }
  .contactForm1__stepbarImg.is-sp {
    display: none;
  }
}
/* ------------------------------
  Lead
------------------------------ */
.contactForm1__lead {
  margin-bottom: 18rem;
}
.contactForm1__lead p {
  font-size: 14rem;
  line-height: 1.8;
  margin: 0;
}
.contactForm1__lead p + p {
  margin-top: 6rem;
}

.contactForm1__note {
  font-size: 13rem;
  color: rgba(0, 0, 0, 0.7);
}

.contactForm1__link {
  color: var(--cf1-border, #01A758);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* 外部リンクアイコン（指定リンクのみ） */
.accordion__body a.contactForm1__link[href="https://www.reinfolib.mlit.go.jp/"]::after,
.accordion__body a.contactForm1__link[href="http://www.contract.reins.or.jp/"]::after,
.accordion__body a.contactForm1__link[href="https://www.contract.reins.or.jp/"]::after,
.qa-description a.contactForm1__link[href="https://system.reins.jp/"]::after,
.contactForm1__lead a.contactForm1__link[href="https://system.reins.jp/public/GKG000100.html"]::after {
  content: "";
  display: inline-block;
  width: 16rem;
  height: 16rem;
  margin-left: 1rem;
  vertical-align: -2rem;
  /* ベースライン微調整（不要なら削除OK） */
  background-color: currentColor;
  -webkit-mask: url(../images/icon/external-link-green.svg) no-repeat center/contain;
  mask: url(../images/icon/external-link-green.svg) no-repeat center/contain;
}

.accordion__body a.contactForm1__link,
.qa-description a.contactForm1__link,
.contactForm1__lead a.contactForm1__link {
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: 0 calc(100% - 0.12em);
  padding-bottom: 0.12em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* ------------------------------
  Table layout
------------------------------ */
.contactForm1__table {
  border: 1rem solid var(--cf1-border);
  margin-top: 14rem;
}

.contactForm1__row {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1rem solid var(--cf1-border);
}
.contactForm1__row:first-child {
  border-top: none;
}

.contactForm1__th {
  background: var(--cf1-bg);
  padding: 14rem 14rem;
  display: flex;
  align-items: center;
  gap: 10rem;
  font-weight: 700;
  font-size: 14rem;
}

.contactForm1__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 8rem;
  font-size: 12rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  background: var(--cf1-required);
  white-space: nowrap;
}

.contactForm1__td {
  padding: 12rem 14rem;
  background: var(--cf1-bg2);
}

.contactForm1__td input[type=text],
.contactForm1__td input[type=email],
.contactForm1__td input[type=tel],
.contactForm1__td textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1rem solid #d6d6d6;
  border-radius: 4rem;
  padding: 12rem 14rem;
  font-size: 16rem;
  background: #fff;
}

.contactForm1__td textarea {
  min-height: 160rem;
  resize: vertical;
  padding-top: 14rem;
}

.contactForm1__td input:focus,
.contactForm1__td textarea:focus {
  outline: none;
  border-color: rgba(0, 0, 0, 0.35);
  box-shadow: 0 0 0 3rem rgba(0, 0, 0, 0.07);
}

.contactForm1__fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}

.contactForm1__legend {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.contactForm1__options {
  display: flex;
  flex-wrap: wrap;
  gap: 16rem 24rem;
  align-items: center;
  font-size: 14rem;
}

.contactForm1__option {
  display: inline-flex;
  align-items: center;
  gap: 8rem;
}
.contactForm1__option input {
  transform: translateY(1rem);
}

.contactForm1__hint {
  margin: 10rem 0 0;
  font-size: 13rem;
  line-height: 1.7;
  color: rgba(0, 0, 0, 0.65);
}

/* ------------------------------
  Agree & submit
------------------------------ */
.contactForm1__agree {
  margin-top: 22rem;
  text-align: center;
}

.contactForm1__agreeText {
  font-size: 14rem;
  line-height: 1.8;
  margin: 0 0 12rem;
}

.contactForm1__agreeCheck {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  font-size: 14rem;
}
.contactForm1__agreeCheck input {
  width: 18rem;
  height: 18rem;
}

.contactForm1__actions {
  margin-top: 22rem;
  display: flex;
  justify-content: center;
}

.contactForm1__submit {
  width: 100%;
  max-width: 440rem;
  border: none;
  border-radius: 3rem;
  background: var(--cf1-border);
  color: #fff;
  font-size: 18rem;
  font-weight: 700;
  padding: 18rem 16rem;
  cursor: pointer;
}

/* ------------------------------
  SSL note + divider
------------------------------ */
.contactForm1__ssl {
  margin-top: 24rem;
  /* ボタンとの距離 */
  padding-top: 24rem;
  /* 線と中身の距離 */
  position: relative;
  text-align: center;
}

/* 線は “全幅” で引く */
.contactForm1__ssl::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-top: 1rem solid #D9D9D9;
}

/* 中身だけ 700rem に絞って中央寄せ */
.contactForm1__sslInner {
  max-width: 700rem;
  margin-inline: auto;
  display: grid;
  gap: 2rem;
  /* シールと文言を詰める */
  justify-items: center;
}

.contactForm1__sslSeal {
  flex: 0 0 auto;
  width: 100px;
  height: 50px;
  line-height: 0;
}
.contactForm1__sslSeal img {
  display: block;
  width: 100%;
  height: auto;
}

.contactForm1__sslText {
  margin: 0;
  font-size: 13rem;
  line-height: 1.7;
  color: rgba(0, 0, 0, 0.75);
}

/* ------------------------------
  PC
------------------------------ */
@media screen and (min-width: 1025px) {
  .contactForm1__table {
    border-width: 1rem;
  }
  .contactForm1__row {
    grid-template-columns: 280rem 1fr;
  }
  .contactForm1__th {
    padding: 18rem 18rem;
    font-size: 15rem;
  }
  .contactForm1__td {
    padding: 18rem;
  }
  .contactForm1__submit {
    font-size: 20rem;
  }
  .contactForm1__submit:hover {
    filter: brightness(1.05);
  }
  .contactForm1__ssl {
    text-align: left;
  }
  .contactForm1__sslInner {
    grid-auto-flow: column;
    grid-template-columns: 126rem 1fr;
    align-items: center;
    justify-items: center;
    -moz-column-gap: 10rem;
         column-gap: 10rem;
    row-gap: 0;
  }
}
/* radio / checkbox が共通CSSで消されている場合の復帰 */
.contactForm1 input[type=radio],
.contactForm1 input[type=checkbox] {
  display: inline-block;
  /* display:none 対策 */
  opacity: 1;
  /* opacity:0 対策 */
  position: static;
  /* absolute で飛ばされる対策 */
  width: 18rem;
  height: 18rem;
  margin: 0;
  clip: auto;
  /* clip 対策 */
  -webkit-appearance: auto;
  /* appearance:none 対策 */
  -moz-appearance: auto;
       appearance: auto;
  accent-color: var(--color-primary);
  /* 対応ブラウザなら緑に */
}

/* ラベルの見た目調整（任意） */
.contactForm1__option,
.contactForm1__agreeCheck {
  align-items: center;
}

/* ------------------------------
  確認画面＆完了画面
------------------------------ */
/* 値表示（確認画面） */
.contactForm1__value {
  margin: 0;
  font-size: 14rem;
  line-height: 1.8;
}

/* 確認画面の注意文 */
.contactForm1__confirmLead {
  text-align: center;
  margin: 18rem 0 14rem;
}

.contactForm1__confirmWarn {
  margin: 0;
  font-weight: 500;
  color: #E64242;
  font-size: 20rem;
}

.contactForm1__confirmText {
  margin: 8rem 0 0;
  font-size: 13rem;
}
@media screen and (min-width: 1025px) {
  .contactForm1__confirmText {
    font-size: 14rem;
  }
}

/* 確認画面ボタン（2つ並び） */
.contactForm1__actions--confirm {
  margin-top: 28rem;
  display: flex;
  justify-content: center;
  gap: 18rem;
}

.contactForm1__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200rem;
  padding: 18rem 16rem;
  border-radius: 3rem;
  font-size: 18rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
}

.contactForm1__btn--back {
  background: var(--color-font-base);
  color: #fff;
  min-width: 120rem;
}

.contactForm1__btn--submit,
.contactForm1__btn--top {
  background: var(--color-button);
  color: #fff;
}

/* 完了画面 */
.contactForm1__completeBody {
  text-align: center;
  margin-top: 40rem;
}

.contactForm1__completeTitle {
  margin: 0 0 20rem;
  font-size: 22rem;
  font-weight: 500;
  color: var(--color-primary);
}
@media screen and (min-width: 1025px) {
  .contactForm1__completeTitle {
    margin: 0 0 63rem;
    font-size: 28rem;
  }
}

.contactForm1__completeText {
  margin: 0 0 28rem;
  font-size: 14rem;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .contactForm1__completeText {
    margin: 0 0 90rem;
  }
}

.contactForm1__completeNotice {
  max-width: 790rem;
  margin: 0 auto 40rem;
  border: 1rem solid var(--color-primary);
  padding: 16rem 18rem;
  text-align: left;
}
@media screen and (min-width: 1025px) {
  .contactForm1__completeNotice {
    margin: 0 auto 90rem;
  }
}
.contactForm1__completeNotice p {
  margin: 0;
  font-size: 13rem;
  line-height: 1.8;
}

.contactForm1__actions--complete {
  margin-top: 18rem;
  display: flex;
  justify-content: center;
}

.contactForm1__btn--top {
  width: 100%;
  max-width: 255rem;
}

.contactForm1__arrow {
  margin-left: 12rem;
  font-size: 20rem;
  line-height: 1;
}

/* =========================================================
  form2
  レインズ会員不動産会社専用 操作説明（コールセンター）
  レインズ会員不動産会社向け お問い合わせフォーム
========================================================= */
@media screen and (min-width: 1025px) {
  .contact_type2 {
    margin-top: 24rem;
  }
}

/* Form wrapper */
.contact_type2 .contactForm1 {
  --cf2-border: var(--color-primary);
  --cf2-bg: #E2F0CE;
  /* 左カラム背景（薄いグリーン） */
  --cf2-bg2: #ffffff;
  /* 右カラム背景 */
  --cf2-required: #e64242;
  color: #222;
}

/* ------------------------------
  Step bar (image)
------------------------------ */
.contact_type2 .contactForm1__stepbar {
  margin: 0 0 18rem;
}

.contact_type2 .contactForm1__stepbarImg {
  display: block;
  width: 100%;
  height: auto;
}

.contact_type2 .contactForm1__stepbarImg.is-pc {
  display: none;
}

.contact_type2 .contactForm1__stepbarImg.is-sp {
  display: block;
}

@media screen and (min-width: 1025px) {
  .contact_type2 .contactForm1__stepbar {
    margin-bottom: 20rem;
  }
  .contact_type2 .contactForm1__stepbarImg.is-pc {
    display: block;
  }
  .contact_type2 .contactForm1__stepbarImg.is-sp {
    display: none;
  }
}
/* ------------------------------
  Lead
------------------------------ */
.contact_type2 .contactForm1__lead {
  margin-bottom: 18rem;
}
.contact_type2 .contactForm1__lead p {
  font-size: 14rem;
  line-height: 1.8;
  margin: 0;
}
.contact_type2 .contactForm1__lead p + p {
  margin-top: 6rem;
}

.contact_type2 .contactForm1__note {
  font-size: 13rem;
  color: rgba(0, 0, 0, 0.7);
}

.contact_type2 .contactForm1__link {
  color: var(--cf2-border);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* ------------------------------
  Table layout
------------------------------ */
.contact_type2 .contactForm1__table {
  border: 1rem solid var(--cf2-border);
  margin-top: 14rem;
  background: var(--cf2-bg2);
}

.contact_type2 .contactForm1__row {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1rem solid var(--cf2-border);
}
.contact_type2 .contactForm1__row:first-child {
  border-top: none;
}

.contact_type2 .contactForm1__th {
  background: var(--cf2-bg);
  padding: 14rem 14rem;
  display: flex;
  align-items: center;
  gap: 10rem;
  font-weight: 700;
  font-size: 14rem;
  /* SPは上下積みなので区切り線を入れる */
  border-bottom: 1rem solid var(--cf2-border);
}

.contact_type2 .contactForm1__labelSub {
  display: block;
  margin-top: 4rem;
  font-size: 12rem;
  font-weight: 400;
  line-height: 1.2;
  opacity: 0.85;
}

.contact_type2 .contactForm1__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 8rem 2rem 8rem;
  font-size: 12rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  background: var(--cf2-required);
  white-space: nowrap;
}

.contact_type2 .contactForm1__td {
  padding: 12rem 14rem;
  background: var(--cf2-bg2);
}

.contact_type2 .contactForm1__td input[type=text],
.contact_type2 .contactForm1__td input[type=email],
.contact_type2 .contactForm1__td input[type=tel],
.contact_type2 .contactForm1__td textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1rem solid #d6d6d6;
  border-radius: 4rem;
  padding: 12rem 14rem;
  font-size: 16rem;
  background: #fff;
}

.contact_type2 .contactForm1__td textarea {
  min-height: 160rem;
  resize: vertical;
  padding-top: 14rem;
}

.contact_type2 .contactForm1__td input:focus,
.contact_type2 .contactForm1__td textarea:focus {
  outline: none;
  border-color: rgba(0, 0, 0, 0.35);
  box-shadow: 0 0 0 3rem rgba(0, 0, 0, 0.07);
}

.contact_type2 .contactForm1__fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}

.contact_type2 .contactForm1__legend {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.contact_type2 .contactForm1__options {
  display: flex;
  flex-wrap: wrap;
  gap: 16rem 24rem;
  align-items: center;
  font-size: 14rem;
}

.contact_type2 .contactForm1__option {
  display: inline-flex;
  align-items: center;
  gap: 8rem;
}
.contact_type2 .contactForm1__option input {
  transform: translateY(1rem);
}

.contact_type2 .contactForm1__hint {
  margin: 10rem 0 0;
  font-size: 13rem;
  line-height: 1.7;
  color: rgba(0, 0, 0, 0.65);
}

/* ------------------------------
  Agree & submit
------------------------------ */
.contact_type2 .contactForm1__agree {
  margin-top: 22rem;
  text-align: center;
}

.contact_type2 .contactForm1__agreeText {
  font-size: 14rem;
  line-height: 1.8;
  margin: 0 0 12rem;
}

.contact_type2 .contactForm1__agreeCheck {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  font-size: 14rem;
}
.contact_type2 .contactForm1__agreeCheck input {
  width: 18rem;
  height: 18rem;
}

.contact_type2 .contactForm1__actions {
  margin-top: 22rem;
  display: flex;
  justify-content: center;
}

.contact_type2 .contactForm1__submit {
  width: 100%;
  max-width: 440rem;
  border: none;
  border-radius: 3rem;
  background: var(--cf2-border);
  color: #fff;
  font-size: 18rem;
  font-weight: 700;
  padding: 18rem 16rem;
  cursor: pointer;
}

/* ------------------------------
  SSL note + divider
------------------------------ */
.contact_type2 .contactForm1__ssl {
  margin-top: 24rem;
  /* ボタンとの距離 */
  padding-top: 24rem;
  /* 線と中身の距離 */
  position: relative;
  text-align: center;
}

.contact_type2 .contactForm1__ssl::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-top: 1rem solid #D9D9D9;
}

.contact_type2 .contactForm1__sslInner {
  max-width: 700rem;
  margin-inline: auto;
  display: grid;
  gap: 2rem;
  justify-items: center;
}

.contact_type2 .contactForm1__sslSeal {
  flex: 0 0 auto;
  width: 100px;
  height: 50px;
  line-height: 0;
}
.contact_type2 .contactForm1__sslSeal img {
  display: block;
  width: 100%;
  height: auto;
}

.contact_type2 .contactForm1__sslText {
  margin: 0;
  font-size: 13rem;
  line-height: 1.7;
  color: rgba(0, 0, 0, 0.75);
}

/* ------------------------------
  PC
------------------------------ */
@media screen and (min-width: 1025px) {
  .contact_type2 .contactForm1__row {
    grid-template-columns: 280rem 1fr;
  }
  .contact_type2 .contactForm1__th {
    padding: 18rem 18rem;
    font-size: 15rem;
    border-bottom: none;
    border-right: 1rem solid var(--cf2-border);
  }
  .contact_type2 .contactForm1__td {
    padding: 18rem;
  }
  .contact_type2 .contactForm1__submit {
    font-size: 20rem;
  }
  .contact_type2 .contactForm1__submit:hover {
    filter: brightness(1.05);
  }
  .contact_type2 .contactForm1__ssl {
    text-align: left;
  }
  .contact_type2 .contactForm1__sslInner {
    grid-auto-flow: column;
    grid-template-columns: 100px 1fr;
    align-items: center;
    justify-items: start;
    -moz-column-gap: 16rem;
         column-gap: 16rem;
    row-gap: 0;
  }
}
/* radio / checkbox が共通CSSで消されている場合の復帰 */
.contact_type2 .contactForm1 input[type=radio],
.contact_type2 .contactForm1 input[type=checkbox] {
  display: inline-block;
  opacity: 1;
  position: static;
  width: 18rem;
  height: 18rem;
  margin: 0;
  clip: auto;
  -webkit-appearance: auto;
  -moz-appearance: auto;
       appearance: auto;
  accent-color: var(--color-primary);
}

.contact_type2 .contactForm1__option,
.contact_type2 .contactForm1__agreeCheck {
  align-items: center;
}

/* ------------------------------
  確認画面＆完了画面（contactForm1）
------------------------------ */
.contact_type2 .contactForm1__value {
  margin: 0;
  font-size: 14rem;
  line-height: 1.8;
}

.contact_type2 .contactForm1__confirmLead {
  text-align: center;
  margin: 18rem 0 14rem;
}

.contact_type2 .contactForm1__confirmWarn {
  margin: 0;
  font-weight: 500;
  color: #E64242;
  font-size: 20rem;
}

.contact_type2 .contactForm1__confirmText {
  margin: 8rem 0 0;
  font-size: 14rem;
}

.contact_type2 .contactForm1__actions--confirm {
  margin-top: 28rem;
  display: flex;
  justify-content: center;
  gap: 18rem;
}

.contact_type2 .contactForm1__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200rem;
  padding: 18rem 16rem;
  border-radius: 3rem;
  font-size: 18rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
}

.contact_type2 .contactForm1__btn--back {
  background: var(--color-font-base);
  color: #fff;
  min-width: 120rem;
}

.contact_type2 .contactForm1__btn--submit,
.contact_type2 .contactForm1__btn--top {
  background: var(--color-button);
  color: #fff;
}

.contact_type2 .contactForm1__completeBody {
  text-align: center;
  margin-top: 40rem;
}

.contact_type2 .contactForm1__completeTitle {
  margin: 0 0 20rem;
  font-size: 22rem;
  font-weight: 500;
  color: var(--color-primary);
}
@media screen and (min-width: 1025px) {
  .contact_type2 .contactForm1__completeTitle {
    margin: 0 0 63rem;
    font-size: 28rem;
  }
}

.contact_type2 .contactForm1__completeText {
  margin: 0 0 28rem;
  font-size: 14rem;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .contact_type2 .contactForm1__completeText {
    margin: 0 0 90rem;
  }
}

.contact_type2 .contactForm1__completeNotice {
  max-width: 790rem;
  margin: 0 auto 40rem;
  border: 1rem solid var(--color-primary);
  padding: 16rem 18rem;
  text-align: left;
}
@media screen and (min-width: 1025px) {
  .contact_type2 .contactForm1__completeNotice {
    margin: 0 auto 90rem;
  }
}
.contact_type2 .contactForm1__completeNotice p {
  margin: 0;
  font-size: 13rem;
  line-height: 1.8;
}

.contact_type2 .contactForm1__actions--complete {
  margin-top: 18rem;
  display: flex;
  justify-content: center;
}

.contact_type2 .contactForm1__btn--top {
  width: 100%;
  max-width: 255rem;
}

.contact_type2 .contactForm1__arrow {
  margin-left: 12rem;
  font-size: 20rem;
  line-height: 1;
}

/* contactForm1：placeholder 色調整 */
.contactForm1__form input::-moz-placeholder, .contactForm1__form textarea::-moz-placeholder {
  color: rgba(0, 0, 0, 0.45);
  opacity: 1;
}
.contactForm1__form input::placeholder,
.contactForm1__form textarea::placeholder {
  color: rgba(0, 0, 0, 0.45);
  opacity: 1;
}
.contactForm1__form {
  /* 参考：フォーカス時はplaceholderを少し薄く（任意） */
}
.contactForm1__form input:focus::-moz-placeholder, .contactForm1__form textarea:focus::-moz-placeholder {
  color: rgba(0, 0, 0, 0.28);
}
.contactForm1__form input:focus::placeholder,
.contactForm1__form textarea:focus::placeholder {
  color: rgba(0, 0, 0, 0.28);
}

/* 念のための互換（古めのEdge/IE寄りが必要なら） */

.contactForm1__form input::-moz-placeholder, .contactForm1__form textarea::-moz-placeholder {
  color: rgba(0, 0, 0, 0.35);
  -moz-transition: opacity 0.15s ease;
  transition: opacity 0.15s ease;
}

.contactForm1__form input::placeholder,
.contactForm1__form textarea::placeholder {
  color: rgba(0, 0, 0, 0.35);
  transition: opacity 0.15s ease;
}
.contactForm1__form input:focus::-moz-placeholder, .contactForm1__form textarea:focus::-moz-placeholder {
  opacity: 0;
}
.contactForm1__form input:focus::placeholder,
.contactForm1__form textarea:focus::placeholder {
  opacity: 0;
}

/* =========================
   Privacy Modal
   ========================= */
.c-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  /* まず非表示（ここが無いと“ページ下部に普通に表示”になります） */
  display: none;
  /* iOSなどでのタップ遅延・スクロール挙動の安定化 */
  -webkit-overflow-scrolling: touch;
}
.c-modal.is-open {
  display: block;
}

.c-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.c-modal__dialog {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  /* ノッチ回避 */
  top: calc(env(safe-area-inset-top) + 16px);
  /* 横幅（画面いっぱい回避） */
  width: min(720px, 100% - 48px);
  /* 高さ：まずは互換のため vh、対応環境では svh を優先 */
  height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);
}
@supports (height: 100svh) {
  .c-modal__dialog {
    height: calc(100svh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);
  }
}
.c-modal__dialog {
  margin: 0;
  overflow: hidden;
  outline: none;
}
@media screen and (min-width: 1025px) {
  .c-modal__dialog {
    width: min(980px, 100% - 64px);
    margin: 40px auto;
    max-height: 80dvh;
  }
}

.c-modal__dialog:focus {
  outline: none;
}

.c-modal__body {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  /* 外側は切ってOK（中身がスクロールする） */
}
@media screen and (min-width: 1025px) {
  .c-modal__body {
    position: static;
  }
}

/* 背景スクロール禁止（JSで body に is-modal-open を付与） */
body.is-modal-open {
  overflow: hidden;
}

/* =========================
   Privacy Policy content
   （添付デザイン寄せ）
   ========================= */
.privacy-policy {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.privacy-policy__head {
  background: var(--color-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 14px 14px 16px;
}

.privacy-policy__title {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 700;
}
@media screen and (min-width: 1025px) {
  .privacy-policy__title {
    font-size: 18px;
  }
}

.privacy-policy__close {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  width: 40px;
  height: 40px;
  padding: 0;
  cursor: pointer;
  position: relative;
  flex: 0 0 40px;
}
.privacy-policy__close span {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 18px;
  height: 18px;
}
.privacy-policy__close span::before, .privacy-policy__close span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 2px;
  background: #fff;
  transform-origin: center;
}
.privacy-policy__close span::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.privacy-policy__close span::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.privacy-policy__close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  border-radius: 6px;
}

.privacy-policy__content {
  padding: 18px 16px 0;
  overflow: auto;
  /* ✅ これを削除（iOSの戻りの主因） */
  max-height: none;
  /* ✅ flexで伸縮させ、本文だけスクロール */
  flex: 1 1 auto;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  color: #111;
  font-size: 14px;
  line-height: 1.8;
  /* ✅ 下端に“到達できる余白”を padding で持たせる（safe-area込み） */
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}
@media screen and (min-width: 1025px) {
  .privacy-policy__content {
    padding: 22px 22px 0;
    font-size: 15px;
    padding-bottom: 24px;
  }
}
.privacy-policy__content .c-button {
  display: block;
  /* ✅ 巨大な margin-bottom は不要（戻り隠しになりがち） */
  margin: 20rem auto 0;
}
@media screen and (min-width: 1025px) {
  .privacy-policy__content .c-button {
    margin: 50rem auto 0;
  }
}
.privacy-policy__content .c-button:hover {
  opacity: 0.8;
  transform: translateY(-1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}

.privacy-policy__section + .privacy-policy__section {
  margin-top: 18px;
}

.privacy-policy__heading {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 700;
}

.privacy-policy__text {
  margin: 0;
}

.privacy-policy__list {
  margin: 6px 0 0;
  padding-left: 1.4em;
}

.privacy-policy__box {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #ddd;
  background: #fafafa;
}

.privacy-policy__link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.privacy-policy__link:hover, .privacy-policy__link:focus-visible {
  color: var(--color-primary);
}

/* 共通：左インデントを確保（resetで消えている想定） */
.privacy-policy__content ol.privacy-policy__list,
.privacy-policy__content ul.privacy-policy__list {
  margin: 6px 0 0;
  padding-left: 1.6em;
  list-style-position: outside;
}
.privacy-policy__content {
  /* ol：数字 */
}
.privacy-policy__content ol.privacy-policy__list {
  list-style: decimal;
}
.privacy-policy__content {
  /* ul：中黒 */
}
.privacy-policy__content ul.privacy-policy__list {
  list-style: disc;
}

.c-modal {
  overflow: hidden;
  /* モーダル全体はスクロールさせない */
}

/* ------------------------------
  よくあるご質問
------------------------------ */
.qa-description {
  font-size: 16rem;
}
@media screen and (min-width: 1025px) {
  .qa-description {
    margin-bottom: 40rem;
  }
}

.qa_modBox {
  margin-top: 10rem;
}
@media screen and (min-width: 1025px) {
  .qa_modBox {
    margin-top: 0;
  }
}

.qa_tabMenu {
  position: relative;
  --qa_tabInset: 16rem;
  /* 端タブと下線を揃える（SP） */
  /* SP：横スクロール */
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  /* スクロールバー非表示（見た目優先） */
  scrollbar-width: none;
  /* Firefox */
}
.qa_tabMenu::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}
.qa_tabMenu {
  /* 下のグレーライン（デザイン再現） */
}
.qa_tabMenu::after {
  content: "";
  position: absolute;
  left: var(--qa_tabInset);
  right: var(--qa_tabInset);
  /* 三角マーカー（14rem）と揃える */
  bottom: 42rem;
  height: 2rem;
  background: var(--color-primary);
  pointer-events: none;
}
.qa_tabMenu {
  /*
  下向き三角（activeマーカー）が
  横スクロール（overflow）で隠れないように、下側に“表示領域”を確保。
  ※ overflow-x: auto の場合、Y方向のはみ出しもクリップされやすいため。
  */
  padding-bottom: 28rem;
}

.qa_tab_inner {
  /* 端の余白（SP） */
  padding-inline: 0;
}

.qa_list {
  display: flex;
  align-items: stretch;
  gap: 8rem;
  list-style: none;
  margin: 0;
  padding: 0;
  /* SP：横並び維持 */
  width: -moz-max-content;
  width: max-content;
}

.qa_item {
  flex: 0 0 auto;
}

/* タブ本体（button） */
.qa_tabBtn {
  --tab-border: var(--color-primary, #007a3d);
  --tab-active: var(--color-primary, #007a3d);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* SPの見た目（必要に応じて調整） */
  min-width: 150rem;
  height: 65rem;
  padding-inline: 16rem;
  border: 2rem solid var(--tab-border);
  border-radius: 6rem 6rem 0 0;
  background: #fff;
  color: var(--tab-border);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* hoverスライド用（PCで有効） */
  overflow: hidden;
}
.qa_tabBtn span {
  position: relative;
  z-index: 1;
  display: block;
  white-space: nowrap;
  /* 長文タブだけは折り返し許容 */
}
.qa_tabBtn {
  /* アクセシビリティ */
}
.qa_tabBtn:focus-visible {
  outline: 3rem solid rgba(0, 122, 61, 0.35);
  outline-offset: 3rem;
}
.qa_tabBtn {
  /* 選択中（current） */
}
.qa_tabBtn.is-active {
  background: var(--tab-active);
  border-color: var(--tab-active);
  color: #fff;
  cursor: default;
  pointer-events: none;
  /* 「currentはリンク不要」＝操作不要 */
  /* 下向き三角 */
}
.qa_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -14rem;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 14rem solid transparent;
  border-right: 14rem solid transparent;
  border-top: 14rem solid var(--tab-active);
  z-index: 2;
}
.qa_tabBtn {
  /* PC用：hoverで背景が左→右へスライド */
}
@media screen and (min-width: 1025px) {
  .qa_tabBtn {
    min-width: 0;
    width: 100%;
    height: 65rem;
    /* 文字の折り返しはPCでは原則しない（必要なら解除） */
  }
  .qa_tabBtn span {
    white-space: nowrap;
  }
  .qa_tabBtn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--tab-active);
    transform: translateX(-101%);
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 0;
  }
  .qa_tabBtn:hover {
    color: #fff;
  }
  .qa_tabBtn:hover::before {
    transform: translateX(0);
  }
  .qa_tabBtn {
    /* activeは常時ベタ塗りなので、hover演出は不要 */
  }
  .qa_tabBtn.is-active::before {
    transform: translateX(0);
    transition: none;
  }
}

/* PC：6カラム固定のタブ並び */
@media screen and (min-width: 1025px) {
  .qa_tabMenu {
    --qa_tabInset: 0;
    /* PC：左右余白なし */
    overflow: visible;
    padding-bottom: 0;
  }
  .qa_tabMenu::after {
    bottom: 14rem;
  }
  .qa_tab_inner {
    padding-inline: 0;
  }
  .qa_list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
  .qa_item {
    /* 区切り線っぽく見せたい場合はここで調整可 */
  }
}
/* パネル */
.qa_tabWrap {
  margin-top: 0;
}
@media screen and (min-width: 1025px) {
  .qa_tabWrap {
    margin-top: 32rem;
  }
}

.qa_tabPanel {
  display: block;
}

/* hidden属性で非表示（JS切替） */
.qa_tabPanel[hidden] {
  display: none !important;
}

/* ----------------------------------------------------------------
   FIX: アクティブ時の下向き三角が overflow により隠れる問題への対策
   - 三角を「はみ出し」で表現せず、タブメニュー内の確保した余白に収める
   - ScrollHint が overflow を持つ要素（.scroll-hint-content）側に余白を付与
----------------------------------------------------------------- */
.qa_modBox {
  /* 三角の高さ（必要なら調整） */
  --qa-tab-tri-h: 14rem;
  /* 下のグレーラインの太さ（必要なら調整） */
  --qa-tab-line-h: 4rem;
  /* 三角のための余白（tri-h 以上に） */
  --qa-tab-pad-b: calc(var(--qa-tab-tri-h) + 12rem);
}

/* 親で縦方向をクリップしない（ScrollHint 側の overflow に寄せる） */
.qa_tabMenu {
  position: relative;
  --qa_tabInset: 16rem;
  /* 端タブと下線を揃える（SP） */
  overflow: visible;
}

/* ScrollHint が実際にスクロールさせる要素に余白とラインを持たせる */
.qa_tabMenu .scroll-hint-content {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  /* ▼ 三角の表示領域を確保（ここが無いと三角が隠れます） */
  padding-bottom: var(--qa-tab-pad-b);
  /* 横スクロールの慣性 */
  -webkit-overflow-scrolling: touch;
  /* スクロールバーを目立たせない（必要なら削除） */
  scrollbar-width: none;
}

.qa_tabMenu .scroll-hint-content::-webkit-scrollbar {
  display: none;
}

/* 下のグレーライン（ScrollHint内に配置） */
.qa_tabMenu .scroll-hint-content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--qa-tab-line-h);
  background: #d9d9d9;
  z-index: 1;
}

/* タブボタン */
.qa_tabBtn {
  position: relative;
}

/* アクティブ時：クリック不可（リンク不要の要件） */
.qa_tabBtn.is-active {
  pointer-events: none;
}

/* ▼ アクティブの下向き三角（「内側」に収める版） */
.qa_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /* tri-h 分だけ上げることで、三角の先端がちょうどラインに当たる */
  bottom: var(--qa-tab-tri-h);
  border-left: 14rem solid transparent;
  border-right: 14rem solid transparent;
  border-top: var(--qa-tab-tri-h) solid var(--color-primary);
  z-index: 3;
  /* ラインより上 */
}

/* PC：タブが横スクロール不要なら padding を詰めたい場合はここで調整 */
@media screen and (min-width: 1025px) {
  /* PCは overflow も不要なことが多いので、必要に応じて padding を縮める */
  .qa_tabMenu .scroll-hint-content {
    padding-bottom: var(--qa-tab-pad-b);
  }
}
/* ================================================================
   FIX: タブ下線が「グリーン＋グレーの2重線」になる問題の解消
   目標：参考画像（タブScrollHint-01-26-2026_02_07_PM.png）のように
        「グレー1本のみ」＋アクティブ三角がそのラインに接する見え方
   方針：
   - 下線は .qa_tabMenu::after の1本だけに統一
   - .scroll-hint-content::after で生成していた線は無効化（2本目の原因）
   - 三角のための padding は tri-h ちょうどにして、下線との距離をゼロにする
================================================================ */
/* 三角・ラインの基準値（既存変数があればそちらが優先されます） */
.qa_modBox {
  --qa-tab-tri-h: 14rem;
  --qa-tab-line-h: 4rem;
}

/* ScrollHintのスクロール要素に、三角分だけ余白を確保（余白＝三角高さ） */
.qa_tabMenu .scroll-hint-content {
  padding-bottom: var(--qa-tab-tri-h);
}

/* 下線はタブメニュー側の1本だけにする（グレー） */
/* 2本目の線（scroll-hint-content::after）を無効化 */
.qa_tabMenu .scroll-hint-content::after {
  content: none !important;
}

/* ついでに、アクティブ三角が見切れないように（button側overflow対策） */
.qa_tabBtn.is-active {
  overflow: visible;
}

/* アクティブ三角（既存があっても確実に上書き） */
.qa_tabBtn.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 28rem;
  height: var(--qa-tab-tri-h);
  background: var(--color-primary);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  border: 0 !important;
  z-index: 3;
}

/* 下線の左右インセット：SP/PCで分ける */
.qa_tabMenu {
  --qa_tabInset: 0;
}

@media screen and (min-width: 1025px) {
  .qa_tabMenu {
    --qa_tabInset: 6rem;
    /* PC：今ちょうど良い値 */
  }
}
/* タブを同幅にする */
.qa_tabBtn {
  --qa-tab-w: 224rem;
  /* SPここを調整すれば全タブ一括で変わります */
  width: var(--qa-tab-w);
  min-width: var(--qa-tab-w);
}
@media screen and (min-width: 1025px) {
  .qa_tabBtn {
    --qa-tab-w: 270rem;
    /* PCここを調整すれば全タブ一括で変わります */
    width: var(--qa-tab-w);
    min-width: var(--qa-tab-w);
  }
}

.qa_tabBtn span {
  white-space: normal;
  /* 固定幅のためSPは折り返し */
  word-break: keep-all;
}

/* PC：既存の見た目を優先して折り返し禁止に戻す（必要なら） */
@media screen and (min-width: 1025px) {
  .qa_tabBtn span {
    white-space: nowrap;
  }
}
/* ================================================================
   追記：タブ内テキストサイズ・内側余白の調整用パラメータ
   - SP/PCで別々に調整可能
   - 既存の指定があっても、この追記を末尾に置くことで上書きできます
================================================================ */
/* SP（デフォルト） */
.qa_tabBtn {
  --qa-tab-fz: 16rem;
  /* タブ文字サイズ（SP） */
  --qa-tab-py: 14rem;
  /* 上下余白（SP） */
  --qa-tab-px: 16rem;
  /* 左右余白（SP） */
  font-size: var(--qa-tab-fz);
  padding: var(--qa-tab-py) var(--qa-tab-px);
}

.qa_tabBtn span {
  line-height: 1.25;
  /* 文字サイズ変更時の崩れ防止 */
}

/* PC */
@media screen and (min-width: 1025px) {
  .qa_tabBtn {
    --qa-tab-fz: 14rem;
    /* タブ文字サイズ（PC） */
    --qa-tab-py: 16rem;
    /* 上下余白（PC） */
    --qa-tab-px: 18rem;
    /* 左右余白（PC） */
    font-size: var(--qa-tab-fz);
    padding: var(--qa-tab-py) var(--qa-tab-px);
  }
}
/* ------------------------------
  Q&A Accordion（よくあるご質問：アコーディオン）
  - JSは qa.html 内の既存処理（.accordion）を利用
------------------------------ */
.accordion {
  overflow: hidden;
}
.accordion + .accordion {
  margin-top: 18rem;
}

.accordion__summary {
  display: flex;
  align-items: center;
  gap: 10rem;
  width: 100%;
  padding: 20rem 18rem;
  background: var(--color-primary);
  color: #fff;
  cursor: pointer;
  list-style: none;
  -webkit-tap-highlight-color: transparent;
}
.accordion__summary::-webkit-details-marker {
  display: none;
}
.accordion__summary:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: -2px;
}

.accordion__q {
  flex: 0 0 auto;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 16rem;
  line-height: 1;
}

.accordion__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.accordion__icon {
  flex: 0 0 auto;
  width: 20rem;
  height: 20rem;
  position: relative;
  margin-left: auto;
}
.accordion__icon::before, .accordion__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 15rem;
  height: 2rem;
  background: #fff;
  transform: translate(-50%, -50%);
  border-radius: 999px;
}
.accordion__icon {
  /* 縦棒（＋） */
}
.accordion__icon::after {
  width: 2rem;
  height: 15rem;
}

/* open時は「－」 */
.accordion[open] .accordion__icon::after {
  height: 0;
}

.accordion__content {
  height: 0px;
  /* JSで制御 */
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--color-primary);
  border-top: none;
  transition: height 0.35s ease;
  will-change: height;
}

@media (prefers-reduced-motion: reduce) {
  .accordion__content {
    transition: none;
  }
}
.accordion__contentInner {
  display: grid;
  grid-template-columns: 1.8em 1fr;
  align-items: start;
  padding: 15rem;
  text-align: justify;
}
.accordion__contentInner .contactForm1__link {
  line-height: inherit;
  vertical-align: baseline;
}
.accordion__contentInner .pdf_link {
  display: inline-flex;
  align-items: center;
  line-height: inherit;
  vertical-align: middle;
}
.accordion__contentInner .pdf_link::before {
  content: "";
  display: block;
  width: 20rem;
  height: 20rem;
  background-color: var(--color-primary);
  flex: 0 0 auto;
  /* いったん分解して微調整できるようにする */
  -webkit-mask-image: url(../images/icon/bxs_file-pdf.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  -webkit-mask-position: center 60%;
  mask-image: url(../images/icon/bxs_file-pdf.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center 60%;
}

.accordion__a {
  font-family: "Roboto", sans-serif;
  font-weight: 700;
}

.accordion__body p {
  margin: 0;
  line-height: 1.9;
}
.accordion__body p + p {
  margin-top: 16rem;
}

@media screen and (min-width: 1025px) {
  .accordion + .accordion {
    margin-top: 22rem;
  }
  .accordion__summary {
    padding: 24rem 24rem;
  }
  .accordion__summary:hover {
    opacity: 0.8;
  }
  .accordion__q {
    font-size: 18rem;
  }
  .accordion__title {
    font-size: 18rem;
  }
  .accordion__icon {
    width: 24rem;
    height: 24rem;
  }
  .accordion__icon::before {
    width: 24rem;
  }
  .accordion__icon::after {
    height: 24rem;
  }
  .accordion__contentInner {
    padding: 22rem 24rem 26rem;
  }
  .accordion__contentInner p {
    font-size: 15rem;
    text-align: justify;
  }
}
/* （1）（2）段組み（ぶら下げインデント） */
.a-cols {
  margin: 12rem 0 0;
  padding: 0;
  list-style: none;
}

.a-cols__item {
  display: grid;
  grid-template-columns: 2em 1fr;
  align-items: start;
}
.a-cols__item + .a-cols__item {
  margin-top: 12rem;
}

.a-cols__num {
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  line-height: 1.9;
  white-space: nowrap;
  font-size: 14rem;
}

.a-cols__text p {
  margin: 0;
  line-height: 1.9;
}

/* サブ箇条書き */
.a-cols__sub {
  margin: 8rem 0 0;
  padding: 0;
  list-style: none;
}
.a-cols__sub li {
  position: relative;
  padding-left: 16rem;
  line-height: 1.9;
  font-size: 15rem;
}
.a-cols__sub li + li {
  margin-top: 4rem;
}
.a-cols__sub li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

/* PC */
@media screen and (min-width: 1025px) {
  .a-cols__item {
    grid-template-columns: 1.5em 1fr;
  }
  .a-cols__item + .a-cols__item {
    margin-top: 14rem;
  }
  .a-cols__sub {
    margin-top: 10rem;
  }
  .a-cols__sub li {
    padding-left: 18rem;
  }
}
/* 個人情報の取り扱いについての別タブアイコン */
.contactForm1__agreeText .contactForm1__link {
  color: var(--cf1-border, #01A758);
  /* ▼下線を text-decoration から「背景線」に変更 */
  text-decoration: none;
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-size: 100% 1px;
  /* 線の太さ */
  background-position: 0 calc(100% - 0.02em);
}

/* 既存の ::after（外部リンクアイコン） */
p.contactForm1__agreeText a::after {
  content: "";
  display: inline-block;
  width: 14rem;
  height: 14rem;
  vertical-align: -2rem;
  background-color: currentColor;
  -webkit-mask: url(../images/icon/external-link-green.svg) no-repeat center/contain;
  mask: url(../images/icon/external-link-green.svg) no-repeat center/contain;
  transform: translateY(0.15em);
}

/* 親ページ側：iframeを親幅いっぱいにし、1024判定を同期させる */
.contactForm1 {
  width: 100%;
  max-width: none;
  /* 上位でmax-widthがあってもここは解除 */
}

/* もし.contactForm1に左右paddingがあるなら、ここで相殺 */
.contactForm1 {
  padding-left: 0;
  padding-right: 0;
}

/* iframe自体は100%でOK（念押し） */
.contactForm1 > iframe {
  display: block;
  width: 100%;
  max-width: none;
  border: 0;
}

/* =========================
   privacy modal-like page
   ========================= */
* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body.privacy-page {
  font-family: -apple-system, "Roboto", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  color: #1f2937;
  background: #eef2f7;
  line-height: 1.8;
}

/* 画面全体 */
.privacy-modalpage {
  position: relative;
  min-height: 100svh;
  padding: 24px 12px;
}

/* 背景をうっすら暗くしてモーダル感を出す */
.privacy-modalpage__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.18);
  pointer-events: none;
}

/* 白いパネル */
.privacy-modalpage__panel {
  position: relative;
  z-index: 1;
  width: min(100%, 980px);
  margin: 0 auto;
  background: #fff;
  border: 1px solid #dbe3ec;
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.1);
  overflow: hidden;
}

/* header */
.privacy-modalpage__header {
  /* padding: 20px 20px 16px;
  border-bottom: 1px solid #e7edf4;
  background: #fff; */
  color: #fff;
  background: #008f4b;
  padding: 20px 0;
  text-align: center;
}

.privacy-modalpage__eyebrow {
  margin: 0 0 6px;
  font-size: 12px;
  color: #64748b;
  line-height: 1.4;
}

.privacy-modalpage__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.4;
  color: #fff;
  font-weight: 700;
}

/* 上部ボタン群 */
.privacy-modalpage__actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.privacy-modalpage__backBtn,
.privacy-modalpage__closeBtn {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 8px;
  font-size: 18px;
  padding: 10px 15px 10px 15px;
  text-decoration: none;
  cursor: pointer;
}

/* 戻る */
.privacy-modalpage__backBtn {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
}

.privacy-modalpage__backBtn:hover {
  background: #f8fafc;
}

/* 閉じる（別タブ時だけ効く場合あり） */
.privacy-modalpage__closeBtn {
  border: 1px solid #dbe3ec;
  background: #01a758;
  color: #fff;
}

.privacy-modalpage__closeBtn:hover {
  opacity: 0.8;
  transform: translateY(-0.1rem);
  box-shadow: 0 6rem 16rem rgba(0, 0, 0, 0.12);
}

/* body */
.privacy-modalpage__body {
  padding: 22px;
  font-size: 14px;
}

.privacy-modalpage__body p {
  margin: 0 0 1em;
}

.privacy-block + .privacy-block {
  margin-top: 20px;
}

.privacy-block__title {
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.5;
  color: #111827;
  font-weight: 700;
  /* padding-left: 10px; */
  /* border-left: 4px solid #008f4b; */
}

.privacy-list {
  margin: 0;
  padding-left: 1.3em;
}

.privacy-list li {
  margin: 0.2em 0;
}

.privacy-contact {
  padding: 12px 14px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.privacy-note {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px dashed #d7dee7;
  color: #64748b;
  font-size: 13px;
}

/* footer */
.privacy-modalpage__footer {
  padding: 14px 20px 18px;
  border-top: 1px solid #e7edf4;
  background: #fff;
  text-align: center;
}

.privacy-modalpage__footerBack {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #008f4b;
  text-decoration: underline;
  font-size: 14px;
}

.privacy-modalpage__footerBack:hover {
  opacity: 0.85;
}

/* focus */
.privacy-modalpage__backBtn:focus-visible,
.privacy-modalpage__closeBtn:focus-visible,
.privacy-modalpage__footerBack:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.privacy-doc__link {
  color: #008f4b;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* SP */
@media (max-width: 767px) {
  .privacy-modalpage {
    padding: 12px 8px;
  }
  .privacy-modalpage__panel {
    border-radius: 10px;
  }
  .privacy-modalpage__header {
    padding: 16px 14px 12px;
  }
  .privacy-modalpage__title {
    font-size: 14px;
  }
  .privacy-modalpage__actions {
    gap: 6px;
  }
  .privacy-modalpage__backBtn,
  .privacy-modalpage__closeBtn {
    width: 100%;
    text-align: center;
    justify-content: center;
    padding: 10px 12px;
    font-size: 13px;
  }
  .privacy-modalpage__body {
    padding: 14px;
    font-size: 14px;
    line-height: 1.75;
  }
  .privacy-block__title {
    font-size: 15px;
    padding-left: 8px;
    border-left-width: 3px;
  }
  .privacy-modalpage__footer {
    padding: 12px 14px 14px;
  }
}
.privacy-modalpage__body ul {
  list-style: disc;
  padding-left: 1.5em;
}

.privacy-modalpage__body ol {
  list-style: decimal;
  padding-left: 1.5em;
}/*# sourceMappingURL=style.css.map */