/* STUDIO から引っこ抜いたページの補正と、自前のメニュー（site/assets/frozen.js） */
.fz-menu { position: fixed; inset: 0; z-index: 10000; background: rgba(0, 30, 80, .55); display: flex; justify-content: flex-end;
  opacity: 0; pointer-events: none; transition: opacity .25s; }
.fz-menu.open { opacity: 1; pointer-events: auto; }
.fz-sheet { position: relative; width: min(380px, 100%); height: 100%; overflow-y: auto; background: #d0e3f6; padding: 84px 24px 40px;
  display: flex; flex-direction: column; gap: 22px; transform: translateX(30px); transition: transform .25s;
  font-family: "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif; }
.fz-menu.open .fz-sheet { transform: none; }
.fz-close { position: absolute; top: 18px; right: 18px; width: 52px; height: 52px; border-radius: 14px; border: 0; background: #fff;
  box-shadow: 4px 4px 0 #275382; color: #275382; font: 900 26px/1 sans-serif; cursor: pointer; }
.fz-sheet nav { display: grid; gap: 10px; }
.fz-sheet a { display: flex; flex-direction: column; position: relative; text-decoration: none; color: #275382; font-weight: 800;
  font-size: 15px; line-height: 1.3; background: #fff; border: 4px solid #275382; border-radius: 14px; padding: 9px 40px 9px 14px;
  box-shadow: 3px 3px 0 #e6ff0a; }
.fz-sheet a small { font-size: 10px; letter-spacing: .08em; color: #6b7f99; }
.fz-sheet a span { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 20px; }
.fz-spon { display: flex; gap: 10px; }
.fz-spon a { flex: 1; padding-right: 14px; }
/* スライドの切り替え */
.fz-slide-in { animation: fz-in .35s ease-out; }
@keyframes fz-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
