@charset "UTF-8";
/* style */
/* reset */
body.cmEdit {
  box-sizing: border-box;
  font-size: var(--initial-fontSize);
  font-family: var(--font-sansSerif);
  font-weight: normal;
  color: var(--initial-color);
  background-color: var(--initial-bgColor);
  margin: 0;
}

body.cmEdit * {
  box-sizing: border-box;
  margin: 0;
}

body.cmEdit *::before {
  display: inline-block;
}

body.cmEdit *::after {
  display: inline-block;
}

body.cmEdit script, body.cmEdit style {
  display: none !important;
}

body.cmEdit :where(h1, h2, h3, h4, h5, p, li, dt, dd, th, td, legend) {
  word-break: break-all;
  overflow-wrap: break-word;
}

body.cmEdit :where(video, iframe, img) {
  max-width: 100%;
}

body.cmEdit :where(ul, ol, menu) {
  padding: 0;
  list-style-type: none;
}

body.cmEdit address {
  font-style: normal;
}

body.cmEdit code {
  font-family: var(--font-monospace);
}

body.cmEdit fieldset {
  border: 0;
  padding: 0;
}

body.cmEdit legend {
  width: 100%;
}

body.cmEdit :where(i, b, em, strong) {
  font-style: normal;
}

body.cmEdit a {
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-decoration: none;
  transition: 0.2s;
}

body.cmEdit a[href^=tel] {
  cursor: initial;
  pointer-events: none;
}

body.cmEdit a[href] {
  cursor: pointer;
}

body.cmEdit a[href]:hover {
  opacity: 0.8;
}

body.cmEdit time {
  word-break: keep-all;
}

body.cmEdit img {
  display: inline-block;
  height: auto;
  border: none;
  vertical-align: middle;
  object-fit: cover;
  image-rendering: -webkit-optimize-contrast;
}

body.cmEdit :where(form, input, textarea, select, button) {
  font-family: var(--font-sansSerif);
  font-size: var(--initial-formFontSize);
  color: var(--initial-color);
}

body.cmEdit :where(input, textarea, select, button) {
  border: 1px solid var(--color-border-gray);
  border-radius: 2px;
  vertical-align: baseline;
  padding: 0.5em;
}

body.cmEdit :where(input, textarea, select, button, [type=file]) {
  max-width: 100%;
}

body.cmEdit :where([type=submit], [type=button], [type=reset], button, [type=text], [type=password], [type=email], [type=number], [type=search], [type=tel]) {
  -webkit-appearance: none;
  appearance: none;
  -moz-appearance: none;
}

body.cmEdit :where(select, [type=submit], [type=button], [type=reset], button, [type=text], [type=password], [type=email], [type=number], [type=search], [type=tel]) {
  min-height: var(--input-height);
}

body.cmEdit :where(label, [type=submit], [type=button], [type=reset], button) {
  cursor: pointer;
}

body.cmEdit label {
  display: inline-block;
}

body.cmEdit input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 100em var(--color-inputBg) inset;
}

body.cmEdit textarea {
  width: 100%;
  min-height: 5em;
}

body.cmEdit select {
  background-color: #FFF;
}

/* lib/class */
.coverImage {
  background-color: #f2f2f2;
  background-size: 75%;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}

.coverImage img {
  width: 102%;
  height: 102%;
  object-fit: cover;
  object-position: center center;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.imgBg {
  background-color: #f2f2f2;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

@font-face {
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-display: swap;
  src: url("/font/NotoSansJP/NotoSansJP-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 700;
  font-display: swap;
  src: url("/font/NotoSansJP/NotoSansJP-Bold.woff2") format("woff2");
}
/* animation */
@keyframes open {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes close {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes sideOpen {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes sideClose {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
    display: none;
  }
}
@keyframes rotate45 {
  from {
    rotate: 0deg;
  }
  to {
    rotate: 45deg;
  }
}
@keyframes rotate0 {
  from {
    rotate: 45deg;
  }
  to {
    rotate: 0deg;
  }
}
:root {
  --width-max: 1200px;
  --width-max-limited: 1000px;
  --width-min: 350px;
  --width-dialog: 300px;
  --initial-color: var(--color-gray-dark);
  --initial-bgColor: #FFF;
  --initial-fontSize: 16px;
  --initial-formFontSize: 16px;
  --font-sansSerif: "Inter", "Noto Sans JP", "Yu Gothic", "YuGothic", "Meiryo";
  --img-path: "/image/";
  --radius-s: 2px;
  --radius-m: 4px;
  --radius-l: 8px;
  --layout-pc-1: "_a  _a  _a" min-content;
  --layout-pc-2: "_b  _c  _d" auto;
  --layout-pc-3: "_e  _e  _e" min-content;
  --layout-pc-colmuns: min-content 1fr min-content;
  --layout-sp-1: "_a" min-content;
  --layout-sp-2: "_b" min-content;
  --layout-sp-3: "_c" auto;
  --layout-sp-4: "_d" min-content;
  --layout-sp-5: "_e" min-content;
  --color-gray: #999999;
  --color-gray-light: #F2F2F2;
  --color-gray-dark: #262626;
  --color-ok: blue;
  --color-ng: red;
  --color-main: #81CDDB;
  --color-main-on: white;
  --color-sub: #F2F2F2;
  --color-sub-on: #222;
  --color-base: white;
  --color-border-gray: rgba(153, 153, 153, 0.25);
  --color-border-main: rgba(129, 205, 219, 0.5);
  --color-border-sub: rgba(242, 242, 242, 0.5);
  --color-border-ok: rgba(0, 0, 255, 0.5);
  --color-border-ng: rgba(255, 0, 0, 0.5);
  --color-shadow-gray: rgba(153, 153, 153, 0.5);
}

html {
  --width-contentArea-max: 800px;
  --border: 1px solid rgba(211, 211, 211, 0.5);
  --shadow: 1px 1px 2px lightgray;
  --pageHeaderHeight: 55px;
}

body.cmEdit {
  /**/
  /**/
}

body.cmEdit {
  min-height: 100dvh;
}

@media (max-width: 800px) {
  body.cmEdit {
    display: grid;
    grid-template: "header header" auto "menu   title" auto "menu   inputArea" 1fr;
    grid-template-columns: auto 1fr;
  }
}
@media (min-width: 801px) {
  body.cmEdit {
    display: grid;
    grid-template: "header header header    header" auto "menu   .      title     right" auto "menu   left   inputArea ." 1fr;
    grid-template-columns: auto 1fr minmax(0, 800px) 1fr;
  }
}
body.cmEdit.fixed {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden !important;
}

@media (max-width: 800px) {
  body.cmEdit:has(menu section.active) .wrapper .form {
    display: none;
  }
}
body.cmEdit .tagModal {
  width: clamp(300px, 50%, 500px);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}

body.cmEdit .tagModal h4 {
  margin-bottom: 0.5em;
}

body.cmEdit .tagModal h4.usedTag {
  display: none;
}

body.cmEdit .tagModal h4.usedTag:has(+ div .active) {
  display: block;
}

body.cmEdit .tagModal__box {
  border: none;
}

body.cmEdit .tagModal__tagList__item {
  padding: 0 26px 0 10px;
}

body.cmEdit .tagModal__usedTagList__item {
  padding: 0 10px 0 10px;
}

body.cmEdit .tagModal__deleteTagBtn {
  top: -4px;
}

body.cmEdit .sf-toolbar {
  display: none !important;
}

body.cmEdit ::placeholder {
  color: lightgray;
}

body.cmEdit button {
  user-select: none;
  display: block;
  font-size: 0.9em;
  background-color: transparent;
  border: none;
  white-space: nowrap;
  line-height: 1.5;
  padding: 0.5rem 1rem;
}

body.cmEdit button[name=add]::before {
  content: "+";
}

body.cmEdit button[name=props]::before {
  content: "\f013";
}

body.cmEdit button[name=index]::before {
  content: "\f0c9";
}

body.cmEdit button[name=hint]::before {
  content: "\f059";
}

body.cmEdit button[name=guide]::before {
  content: "\f15c";
}

body.cmEdit button[name=img]::before {
  content: "\f03e";
}

body.cmEdit button[name=urlOpen]::before {
  content: "\f0c1";
}

body.cmEdit button[name=h]::before {
  content: "H";
}

body.cmEdit button[name=b]::before {
  content: "B";
}

body.cmEdit button[name=s]::before {
  content: "\f0cc";
}

body.cmEdit button[name=align]::before {
  content: "\f038";
}

body.cmEdit button[name=list]::before {
  content: "\f03a";
}

body.cmEdit button[name=ul]::before {
  content: "\f0ca";
}

body.cmEdit button[name=ol]::before {
  content: "\f0cb";
}

body.cmEdit button[name=table]::before {
  content: "\f00b";
}

body.cmEdit button[name=link]::before {
  content: "\f0c1";
}

body.cmEdit button[name=blockquote]::before {
  content: "\f10d";
}

body.cmEdit button[name=del]::before {
  content: "\f1f8";
}

body.cmEdit button[name=file]::before {
  content: "\f15c";
}

body.cmEdit button[name=h2]::before {
  content: "h2";
}

body.cmEdit button[name=h3]::before {
  content: "h3";
}

body.cmEdit button[name=h4]::before {
  content: "h4";
}

body.cmEdit button[name=hr]::before {
  content: "―";
}

body.cmEdit button.iconOnly {
  font-size: 0;
  text-align: center;
}

body.cmEdit button.iconOnly::before {
  font-size: 1rem;
}

body.cmEdit button.iconOnly::after {
  font-size: 1rem;
}

body.cmEdit button::before {
  font-family: "FontAwesome solid";
  vertical-align: baseline;
  margin-right: 0.25em;
  display: inline-block;
}

body.cmEdit .mase-validation li {
  font-size: 0.9em;
  color: var(--color-ng);
  margin-bottom: 0.25em;
}

body.cmEdit .pageHeader {
  grid-area: header;
  display: -webkit-flex;
  -webkit-align-items: center;
  display: flex;
  align-items: center;
  gap: 0.5em;
  background-color: var(--initial-bgColor);
  border-bottom: var(--border);
  padding: 0.5em 1em;
  position: sticky;
  top: 0;
  z-index: 3;
}

body.cmEdit .pageHeader :where(a, button) {
  font-size: 0.8em;
}

body.cmEdit .pageHeader :where(a, button):where(.draft, .conf) {
  border: var(--border);
  border-radius: 5px;
}

body.cmEdit .pageHeader :where(a, button).pageCloser {
  color: gray;
  padding: 0.25em 0.5em;
}

body.cmEdit .pageHeader :where(a, button).pageCloser:is(.sp.fixed *) {
  font-size: 0;
  pointer-events: none;
}

body.cmEdit .pageHeader :where(a, button).pageCloser:is(.sp.fixed *)::before {
  font-family: "FontAwesome solid";
  content: "\f057";
  vertical-align: baseline;
  font-size: 1rem;
}

body.cmEdit .pageHeader :where(a, button).draft {
  margin-left: auto;
}

body.cmEdit .pageHeader :where(a, button).conf {
  color: var(--color-main-on);
  background-color: var(--color-main);
  border: 1px solid var(--color-border-main);
}

body.cmEdit menu {
  grid-area: menu;
  display: -webkit-flex;
  display: flex;
  border-right: var(--border);
  position: relative;
}

body.cmEdit menu:is(body.fixed *) {
  display: none;
}

body.cmEdit menu button:is(.close) {
  padding-left: 0.15rem;
}

body.cmEdit menu button:is(.close)::after {
  font-family: "FontAwesome solid";
  content: "\f100";
  vertical-align: baseline;
  font-size: 1rem;
  color: gray;
}

body.cmEdit menu nav {
  position: sticky;
  top: 0;
}

body.cmEdit menu nav button {
  width: 100%;
  text-align: center;
  padding: 1rem;
}

body.cmEdit menu > section {
  min-width: 150px;
  background-color: white;
  padding: 1em;
  padding-right: 2em;
  transform-origin: 0 0;
}

@media (max-width: 600px) {
  body.cmEdit menu > section {
    width: 100dvw;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
  }
}
@media (min-width: 601px) {
  body.cmEdit menu > section {
    max-width: 350px;
  }
}
body.cmEdit menu > section.passive {
  animation-name: sideClose;
  animation-fill-mode: forwards;
  display: none;
}

body.cmEdit menu > section.active {
  animation-name: sideOpen;
  animation-duration: 0.25s;
  animation-fill-mode: forwards;
}

body.cmEdit menu > section.props {
  max-width: 500px;
  max-height: calc(100dvh - var(--pageHeaderHeight));
  padding-bottom: 5vh;
  overflow-y: auto;
  background-color: white;
}

@media (max-width: 1200px) {
  body.cmEdit menu > section.props {
    width: 100dvw;
    max-width: unset;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
  }
}
body.cmEdit menu > section.props .inValidInfo:not(:empty) {
  padding: 1em 0;
  color: var(--color-ng);
}

body.cmEdit menu > section.props .inValidInfo:not(:empty)::before {
  font-family: "FontAwesome solid";
  content: "\f06a";
  vertical-align: baseline;
  margin-right: 0.35em;
}

body.cmEdit menu > section.props table:has([value=RK0033]:checked) tr:has([name*="[worryOther]"]) {
  display: block;
}

body.cmEdit menu > section.props tr {
  display: block;
}

body.cmEdit menu > section.props tr:has([name*="[worryOther]"]) {
  display: none;
}

body.cmEdit menu > section.props tr.none {
  display: none;
}

body.cmEdit menu > section.props tr.tag button {
  border: var(--border);
}

body.cmEdit menu > section.props tr.tag div[data-prototype] {
  display: none;
}

body.cmEdit menu > section.props tr.tag div.tagList {
  min-height: 1.5rem;
  min-width: 10rem;
  color: var(--color-main);
}

.tagModal .save {
  display: table;
  color: white;
  background-color: var(--color-main);
  padding: 0.5em 3em;
  margin-inline: auto;
}

body.cmEdit menu > section.props th {
  display: block;
  text-align: left;
  margin-bottom: 0.25em;
}

body.cmEdit menu > section.props th.required {
  position: relative;
}

body.cmEdit menu > section.props th.required::before {
  font-family: "FontAwesome solid";
  content: "*";
  vertical-align: baseline;
  position: absolute;
  top: -0.25em;
  left: -0.25em;
  font-size: 0.8em;
  color: red;
}

body.cmEdit menu > section.props td {
  display: block;
  margin-bottom: 0.5em;
}

body.cmEdit menu > section.props .u-checks {
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25em;
}

body.cmEdit menu > section.props .u-checks li {
  display: inline-block;
  font-size: 0.85em;
  border: var(--border);
  border-radius: 3px;
  user-select: none;
  padding: 0.25em 0.5em;
}

body.cmEdit menu > section.props .u-checks li [type=checkbox] {
  display: none;
}

body.cmEdit menu > section.props .u-checks li:has(:checked) {
  color: white;
  background-color: var(--color-main);
}

body.cmEdit menu > section.props .js_dd_upload {
  display: inline-block;
  width: auto !important;
  font-size: 0.9em;
  color: gray;
  background-color: whitesmoke;
  border: var(--border);
  border-radius: 0.5em;
  text-align: center;
  padding: 1em;
}

body.cmEdit menu > section.props .js_dd_upload .image {
  display: inline-block;
  padding: 0.5em 0;
}

body.cmEdit menu > section.props .js_dd_upload img {
  width: 150px;
  height: 150px;
  border-radius: 3px;
}

body.cmEdit menu > section.props button {
  display: inline-block;
}

body.cmEdit menu > section.props button.js_dd_delete {
  padding: 0;
}

body.cmEdit menu > section.props button.js_dd_delete::before {
  font-family: "FontAwesome solid";
  content: "\f057";
  vertical-align: baseline;
}

body.cmEdit menu > section.props button.form-calendarBtn {
  background-color: whitesmoke;
  border: var(--border);
  border-radius: 3px;
  padding: 0.5em 1em;
}

body.cmEdit menu > section.props button.form-calendarBtn::before {
  font-family: "FontAwesome solid";
  content: "\f133";
  vertical-align: baseline;
  margin: 0;
}

body.cmEdit menu > section.props .form-fields-datetime_widget {
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25em;
}

body.cmEdit menu > section.props .datetime {
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25em;
}

body.cmEdit menu > section.index nav > ul {
  padding-left: 0;
}

body.cmEdit menu > section.index ul {
  padding-left: 0.75em;
}

body.cmEdit menu > section.hint h4 {
  display: -webkit-flex;
  -webkit-justify-content: space-between;
  -webkit-align-items: center;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

body.cmEdit menu > section.hint h4::after {
  font-family: "FontAwesome solid";
  content: "\f078";
  vertical-align: baseline;
  transition: 0.15s;
}

body.cmEdit menu > section.hint h4:has(+ .open) {
  margin-bottom: 1em;
}

body.cmEdit menu > section.hint h4:has(+ .open)::after {
  rotate: 180deg;
}

body.cmEdit menu > section.hint ul {
  height: 0;
  padding-left: 1.25em;
  transition: all 0.3s ease-in-out;
  overflow: hidden;
}

body.cmEdit menu > section.hint li {
  list-style-type: disc;
}

body.cmEdit menu > section.guide li {
  display: -webkit-flex;
  -webkit-align-items: center;
  display: flex;
  align-items: center;
  font-size: 0.9em;
  padding: 0.25em;
}

body.cmEdit menu > section.guide li[name=add]::before {
  content: "+";
}

body.cmEdit menu > section.guide li[name=props]::before {
  content: "\f013";
}

body.cmEdit menu > section.guide li[name=index]::before {
  content: "\f0c9";
}

body.cmEdit menu > section.guide li[name=hint]::before {
  content: "\f059";
}

body.cmEdit menu > section.guide li[name=guide]::before {
  content: "\f15c";
}

body.cmEdit menu > section.guide li[name=img]::before {
  content: "\f03e";
}

body.cmEdit menu > section.guide li[name=urlOpen]::before {
  content: "\f0c1";
}

body.cmEdit menu > section.guide li[name=h]::before {
  content: "H";
}

body.cmEdit menu > section.guide li[name=b]::before {
  content: "B";
}

body.cmEdit menu > section.guide li[name=s]::before {
  content: "\f0cc";
}

body.cmEdit menu > section.guide li[name=align]::before {
  content: "\f038";
}

body.cmEdit menu > section.guide li[name=list]::before {
  content: "\f03a";
}

body.cmEdit menu > section.guide li[name=ul]::before {
  content: "\f0ca";
}

body.cmEdit menu > section.guide li[name=ol]::before {
  content: "\f0cb";
}

body.cmEdit menu > section.guide li[name=table]::before {
  content: "\f00b";
}

body.cmEdit menu > section.guide li[name=link]::before {
  content: "\f0c1";
}

body.cmEdit menu > section.guide li[name=blockquote]::before {
  content: "\f10d";
}

body.cmEdit menu > section.guide li[name=del]::before {
  content: "\f1f8";
}

body.cmEdit menu > section.guide li[name=file]::before {
  content: "\f15c";
}

body.cmEdit menu > section.guide li[name=h2]::before {
  content: "h2";
}

body.cmEdit menu > section.guide li[name=h3]::before {
  content: "h3";
}

body.cmEdit menu > section.guide li[name=h4]::before {
  content: "h4";
}

body.cmEdit menu > section.guide li[name=hr]::before {
  content: "―";
}

body.cmEdit menu > section.guide li::before {
  font-family: "FontAwesome solid";
  vertical-align: baseline;
  width: 3em;
  text-align: center;
}

body.cmEdit menu > section h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5em;
}

body.cmEdit menu > section section {
  margin: 1em 0;
}

body.cmEdit .wrapper {
  position: relative;
  display: grid;
  grid-template-columns: subgrid;
  grid-template-rows: subgrid;
}

@media (max-width: 800px) {
  body.cmEdit .wrapper {
    grid-column: 2/-1;
    grid-row: 2/-1;
  }
}
@media (min-width: 801px) {
  body.cmEdit .wrapper {
    grid-column: 2/span 3;
    grid-row: 2/span 2;
  }
}
body.cmEdit .wrapper .tool {
  grid-area: inputArea;
  position: absolute;
  left: 0;
  z-index: 4;
}

@media (max-width: 800px) {
  body.cmEdit .wrapper .left {
    display: none;
  }
}
@media (min-width: 801px) {
  body.cmEdit .wrapper .left {
    grid-area: left;
    min-width: 4rem;
    padding-left: 1rem;
    position: relative;
  }
}
body.cmEdit .wrapper .left .sideOpenCloser {
  position: absolute;
  right: 0;
  translate: 0 -25%;
}

body.cmEdit .wrapper .form {
  display: grid;
  grid-template-columns: subgrid;
  grid-template-rows: subgrid;
  grid-area: title/title/inputArea/inputArea;
  padding: 5vh 0;
}

body.cmEdit .wrapper .form .title {
  grid-area: title;
  padding: 0 1rem;
}

body.cmEdit .wrapper .form .title:is(body.fixed *) {
  display: none;
}

body.cmEdit .wrapper .form .inputArea {
  grid-area: inputArea;
  padding: 0 1rem;
}

body.cmEdit .wrapper .right {
  padding: 5vh 0.5rem;
}

@media (max-width: 800px) {
  body.cmEdit .wrapper .right {
    position: fixed;
    right: 0;
    bottom: 2.5vh;
  }
}
@media (min-width: 801px) {
  body.cmEdit .wrapper .right {
    grid-area: right;
  }
}
body.cmEdit .tool {
  background-color: white;
  box-shadow: var(--shadow);
}

body.cmEdit .tool.passive {
  animation-name: close;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

body.cmEdit .tool.active {
  animation-name: open;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

@media (max-width: 800px) {
  body.cmEdit .tool.add {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
    top: auto !important;
  }
}
body.cmEdit .tool.add button {
  display: block;
  width: 100%;
  border-left: var(--border);
  text-align: left;
}

@media (max-width: 800px) {
  body.cmEdit .tool.add button {
    width: 100%;
  }
}
body.cmEdit .tool.add button.img::before {
  content: "\f03e";
}

body.cmEdit .tool.add button.urlOpen::before {
  content: "\f0c1";
}

body.cmEdit .tool.add button::before {
  width: 2rem;
  text-align: center;
}

body.cmEdit .tool.add div.urlInput {
  display: -webkit-flex;
  display: flex;
  border-top: var(--border);
  border-left: var(--border);
}

body.cmEdit .tool.add div.urlInput.passive {
  animation-name: close;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  display: none;
}

body.cmEdit .tool.add div.urlInput.active {
  animation-name: open;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

body.cmEdit .tool.add div.urlInput * {
  border: none;
}

body.cmEdit .tool.add div.urlInput [type=text] {
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  margin-right: 4px;
}

body.cmEdit .tool.add div.urlInput .urlExec {
  -webkit-flex: 0 1 5rem;
  flex: 0 1 5rem;
  max-width: 5rem;
  font-weight: bold;
  background-color: var(--color-main);
  color: white;
  border-radius: 0;
  text-align: center;
}

body.cmEdit .tool.add div.urlInput .close {
  -webkit-flex: 0 1 3rem;
  flex: 0 1 3rem;
  max-width: 3rem;
  display: inline-block;
  width: 3rem;
  border: none;
  text-align: center;
  padding: 0.5rem 0;
}

@media (max-width: 800px) {
  body.cmEdit .tool.change {
    border-top: var(--border);
    opacity: 1 !important;
    visibility: visible !important;
    position: fixed;
    top: var(--vvHeight) !important;
    left: 0 !important;
    translate: 0 -100%;
  }
}
@media (min-width: 801px) {
  body.cmEdit .tool.change {
    translate: 0 -150%;
  }
}
body.cmEdit .tool.change :where(button)[name=b] {
  font-weight: bold;
}

body.cmEdit .tool.change :where(button).active {
  font-weight: bold;
  color: var(--color-main);
}

body.cmEdit .tool.change .flex {
  display: -webkit-inline-flex;
  display: inline-flex;
}

@media (max-width: 800px) {
  body.cmEdit .tool.change .flex {
    width: 100dvw;
    overflow-x: auto;
  }
}
body.cmEdit .tool.change .flex button:not(:last-of-type) {
  border-right: var(--border);
}

body.cmEdit .tool.change .flex button.folder::after {
  font-family: "FontAwesome solid";
  content: "\f107";
  vertical-align: baseline;
  color: gray;
  margin-left: 1em;
}

@media (min-width: 801px) {
  body.cmEdit .tool.change .flex button[name=add] {
    display: none;
  }
}
body.cmEdit .tool.change .flex button[name=aInput]::before {
  content: "\f0c1";
}

body.cmEdit .tool.change .flex button:disabled {
  color: lightgray;
}

body.cmEdit .tool.change .spInside {
  background-color: white;
  border-left: var(--border);
}

@media (min-width: 801px) {
  body.cmEdit .tool.change .spInside {
    box-shadow: 2px 2px 2px lightgray;
    position: absolute;
    top: 3em;
  }
}
@media (max-width: 800px) {
  body.cmEdit .tool.change .spInside {
    width: 100dvw;
  }
}
body.cmEdit .tool.change .spInside.passive {
  display: none;
}

body.cmEdit .tool.change .spInside.h:has(*.active) [name=none] {
  display: block;
}

body.cmEdit .tool.change .spInside.h [name=h2] {
  font-weight: bold;
  font-size: 1.3em;
}

body.cmEdit .tool.change .spInside.h [name=h3] {
  font-weight: bold;
  font-size: 1.2em;
}

body.cmEdit .tool.change .spInside.h [name=h4] {
  font-weight: bold;
  font-size: 1.1em;
}

body.cmEdit .tool.change .spInside.h [name=none] {
  display: none;
}

@media (min-width: 801px) {
  body.cmEdit .tool.change .spInside.list {
    left: 11em;
  }
}
body.cmEdit .tool.change .spInside.list [name=ul]::before {
  content: "\f0ca";
}

body.cmEdit .tool.change .spInside.list [name=ol]::before {
  content: "\f0cb";
}

@media (min-width: 801px) {
  body.cmEdit .tool.change .spInside.align {
    left: 18em;
  }
}
body.cmEdit .tool.change .spInside.align:not(:has(.active)) [name=l] {
  font-weight: bold;
  color: var(--color-main);
}

body.cmEdit .tool.change .spInside.align [name=l]::before {
  content: "\f036";
}

body.cmEdit .tool.change .spInside.align [name=c]::before {
  content: "\f037";
}

body.cmEdit .tool.change .spInside.align [name=r]::before {
  content: "\f038";
}

body.cmEdit .tool.change .spInside.aInput {
  border: var(--border);
}

body.cmEdit .tool.change .spInside.aInput * {
  border: none;
}

body.cmEdit .tool.change .spInside.aInput.active {
  display: -webkit-flex;
  display: flex;
}

@media (min-width: 801px) {
  body.cmEdit .tool.change .spInside.aInput.active {
    left: 15em;
  }
}
body.cmEdit .tool.change .spInside.aInput [type=text] {
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  margin-right: 4px;
}

@media (max-width: 800px) {
  body.cmEdit .tool.change .spInside.aInput [type=text] {
    width: 100%;
  }
}
body.cmEdit .tool.change .spInside.aInput :where(.aExec, .aClear) {
  -webkit-flex: 0 1 auto;
  flex: 0 1 auto;
  max-width: fit-content;
  font-weight: bold;
  border-radius: 0;
  text-align: center;
}

body.cmEdit .tool.change .spInside.aInput .aExec {
  color: white;
  background-color: var(--color-main);
}

body.cmEdit .tool.change .spInside.aInput .aClear {
  background-color: whitesmoke;
  border-right: var(--border);
}

body.cmEdit .tool.change .spInside.aInput .close {
  -webkit-flex: 0 1 3rem;
  flex: 0 1 3rem;
  max-width: 3rem;
  display: inline-block;
  width: 3rem;
  text-align: center;
  padding: 0.5rem 0;
}

@media (max-width: 800px) {
  body.cmEdit .spInside {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
  }
}
body.cmEdit .spInside button {
  display: block;
  width: 100%;
  cursor: pointer;
  transition: 0.2s;
  text-align: left;
  padding: 0.5em 1em;
}

body.cmEdit .spInside button:hover {
  background-color: rgba(211, 211, 211, 0.25);
}

body.cmEdit .spInside button:not(:first-of-type) {
  border-top: 1px solid var(--color-border-gray);
}

body.cmEdit .spInside button::before {
  font-family: "FontAwesome solid";
  vertical-align: baseline;
  margin-right: 0.35em;
}

body.cmEdit .spInside button.close {
  display: -webkit-flex;
  -webkit-justify-content: space-between;
  -webkit-align-items: center;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: gray;
  border-top: 1px solid var(--color-border-gray);
}

@media (min-width: 801px) {
  body.cmEdit .spInside button.close {
    display: none;
  }
}
body.cmEdit .spInside button.close::after {
  font-family: "FontAwesome solid";
  content: "\f00d";
  vertical-align: baseline;
}

body.cmEdit .left .addToolOpener {
  padding: 0;
  position: absolute;
  right: 0;
  translate: 0 -25%;
}

@media (max-width: 800px) {
  body.cmEdit .left .addToolOpener {
    display: none;
  }
}
body.cmEdit .left .addToolOpener.passive {
  animation-name: rotate0;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

body.cmEdit .left .addToolOpener.active {
  animation-name: rotate45;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

body.cmEdit .left .addToolOpener::before {
  content: "+";
  width: 2.5rem;
  font-size: 1.25rem;
  color: var(--color-gray);
  background-color: white;
  border: var(--border);
  border-radius: 100%;
  line-height: 2.5rem;
}

body.cmEdit .form .title {
  width: 100%;
  font-weight: bold;
  font-size: 2em;
  background-color: transparent;
  border: none;
  outline: none;
  padding: 0;
  margin-bottom: 2.5vh;
  overflow: hidden;
}

body.cmEdit .form .image img {
  border: 2px solid transparent;
  border-radius: 4px;
  cursor: pointer;
}

body.cmEdit .form .image img:hover {
  border-color: var(--color-main);
}

body.cmEdit .form .image figcaption:empty::before {
  content: "caption";
}

body.cmEdit .form .getUrlContentsInfo {
  cursor: pointer;
}

body.cmEdit .form .getUrlContentsInfo:hover {
  border-color: var(--color-main);
}

body.cmEdit .right {
  font-size: 0.8em;
  color: gray;
}

body.cmEdit .right span {
  white-space: nowrap;
}

body.cmEdit .right span:has(i:empty) {
  display: none;
}

body.cmEdit .right i {
  display: inline-block;
  font-weight: bold;
  color: var(--color-main);
  margin-right: 0.25em;
}

.generateIndex[class] {
  font-size: 0.9em;
}

.generateIndex[class]:is(main *) {
  background-color: rgba(245, 245, 245, 0.5);
  padding: 1em;
  margin-bottom: 2em;
}

.generateIndex[class] h3:is(main *) {
  margin-bottom: 0.25em;
}

.generateIndex[class] h3:is(main *)::before {
  font-family: "FontAwesome solid";
  content: "\f550";
  vertical-align: baseline;
  margin-right: 0.35em;
}

.generateIndex[class] ul {
  padding-left: 1em;
}

.generateIndex[class] > ul {
  padding-left: 0;
}

.generateIndex[class] a {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0.25em 0;
}

.generateIndex[class] a:is(.scroll *) {
  cursor: pointer;
}

.generateIndex[class] a:is(.scroll *):hover {
  color: var(--color-main);
}

.getUrlContentsInfo[class] {
  display: -webkit-flex;
  -webkit-justify-content: space-between;
  display: flex;
  justify-content: space-between;
  max-width: 500px;
  font-size: 0.9em;
  color: var(--initial-color);
  background-color: white;
  border: 2px solid var(--color-border-gray);
  border-radius: 4px;
  text-decoration: none;
  margin: 0.5em 0;
}

.getUrlContentsInfo[class].selected {
  border-color: var(--color-main);
}

.getUrlContentsInfo[class] *::selection {
  background: none;
}

.getUrlContentsInfo[class] .textWrapper {
  padding: 1em;
  padding-left: 1rem;
}

.getUrlContentsInfo[class] .textWrapper * {
  word-break: break-all;
}

.getUrlContentsInfo[class] .textWrapper em:not(:empty) {
  font-size: 1.1em;
  font-weight: bold;
  line-height: 1.4;
}

.getUrlContentsInfo[class] .textWrapper p:not(:empty) {
  font-size: 0.85em;
  color: gray;
  line-height: 1.3;
  padding: 0.5em 0;
}

.getUrlContentsInfo[class] .textWrapper p:is(:empty) {
  padding: 0;
}

.getUrlContentsInfo[class] .textWrapper i {
  font-size: 0.7em;
  color: gray;
}

.getUrlContentsInfo[class] .imageWrapper {
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  display: grid;
  -webkit-place-items: center;
  place-items: center;
  width: max(100px, 30%);
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  padding: 0.5em;
  padding-right: 1rem;
}

.getUrlContentsInfo[class] .imageWrapper.noImage {
  display: grid;
  -webkit-place-items: center;
  place-items: center;
  background-color: whitesmoke;
}

.getUrlContentsInfo[class] .imageWrapper.noImage::before {
  font-family: "FontAwesome solid";
  content: "\f03e";
  vertical-align: baseline;
  color: gray;
}

.getUrlContentsInfo[class] .imageWrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cmEditor {
  font-size: 16px;
  min-height: 100dvh;
  background-color: white;
  caret-color: var(--color-main);
  outline: none;
  overflow-y: auto;
  position: relative;
}

.cmEditor.fixed {
  padding: 1rem;
  position: fixed;
  top: var(--pageHeaderHeight);
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
}

.cmEditor > *:not(blockquote):first-child {
  padding-top: 0;
  margin-top: 0;
}

.cmEditor h1 {
  font-size: 2rem;
  margin: 1.5rem 0;
}

.cmEditor h2 {
  font-size: 1.75rem;
  margin: 1.5rem 0;
}

.cmEditor h3 {
  font-size: 1.5rem;
  margin: 1.5rem 0;
}

.cmEditor h4 {
  font-size: 1.25rem;
  margin: 1.5rem 0;
}

.cmEditor p {
  line-height: 1.5;
}

.cmEditor p:not(.description) {
  margin: 1.5rem 0;
}

.cmEditor blockquote {
  background-color: whitesmoke;
  border-radius: 5px;
  padding: 1rem;
  margin: 1.5rem 0;
  position: relative;
}

.cmEditor blockquote::before {
  font-family: "FontAwesome solid";
  content: "\f10d";
  vertical-align: baseline;
  color: lightgray;
  position: absolute;
  top: 0;
  left: 1rem;
  translate: -50% -50%;
}

.cmEditor ul {
  padding-left: 1.5rem;
  margin: 1.5rem 0;
}

.cmEditor ul li {
  list-style-type: disc;
}

.cmEditor ul ul {
  padding: 0;
  padding-left: 1.5rem;
}

.cmEditor ol {
  padding-left: 1.5rem;
  margin: 1.5rem 0;
}

.cmEditor ol li {
  list-style-type: decimal;
}

.cmEditor ol ol {
  padding: 0;
  padding-left: 1.5rem;
}

.cmEditor li {
  margin: 0.5rem 0;
}

.cmEditor table {
  font-size: 0.9em;
  border-collapse: collapse;
  margin: 1.5rem 0;
}

.cmEditor table :where(th, td) {
  border: var(--border);
  padding: 0.5em 1em;
}

.cmEditor th {
  font-weight: normal;
  background-color: rgba(129, 205, 219, 0.5);
  text-align: left;
}

.cmEditor b {
  font-weight: bold;
}

.cmEditor a:not(.getUrlContentsInfo) {
  display: inline-block;
  color: var(--color-main);
  text-decoration: underline;
  position: relative;
}

.cmEditor a:not(.getUrlContentsInfo):hover {
  opacity: 1;
}

.cmEditor a:not(.getUrlContentsInfo):hover::after {
  content: attr(href);
  display: inline-block;
  max-width: 20em;
  font-size: xx-small;
  background-color: rgba(255, 255, 255, 0.9);
  border: var(--border);
  border-radius: 4px;
  word-break: normal;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding: 0.25em 0.75em;
  position: absolute;
  left: 0;
  translate: 0 110%;
  overflow: hidden;
}

.cmEditor hr {
  border: none;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 48%, rgb(100, 100, 100) 50%, rgba(255, 255, 255, 0) 52%, rgba(255, 255, 255, 0) 100%);
  cursor: pointer;
  padding: 1em 0;
}

.cmEditor .l {
  text-align: left;
}

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

.cmEditor .r {
  text-align: right;
}

.cmEditor .image {
  display: table;
  border: 2px solid transparent;
  text-align: center;
  padding-top: 0.5em;
  margin-bottom: 0.5em;
}

.cmEditor .image img.selected {
  border-color: var(--color-main);
}

.cmEditor .image figcaption {
  font-size: 0.8em;
  color: gray;
  text-align: center;
  padding: 0.5rem;
}

.cmEditor .focus {
  position: relative;
}

.cmEditor .focus::before {
  content: "";
  display: block;
  width: 5px;
  height: 100%;
  background-color: lightgray;
  position: absolute;
  top: 0;
  left: -14px;
}

.cmEditor .focus:is(ul *, ol *)::before {
  left: -37px;
}

.cmEditor .keep {
  height: 10vh;
  user-select: none;
}
