* {
  -webkit-box-sizing: border-box; /* 古いWebkit系用 */
  -moz-box-sizing: border-box;     /* 古いFirefox用 */
  box-sizing: border-box;
  /* font-family: "Kosugi Maru", sans-serif;
  font-weight: 400; */
  /* margin: 0px;
  padding: 0px; */
}

.kosugi-maru-regular {
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 400;
  font-style: normal;
}

:root {
  --height-header: 100px;
  --padding-forHeader: calc(3% + var(--height-header) );
  --padding-forHeaderAdd: calc(6% + var(--height-header) );
  --padding-forHeaderAdd: calc(15px + var(--height-header)*2 );

  --height-folderHead:9vh;
  --height-folderCont:calc(100% - var(--height-folderHead) );
  --height-footer: 50px;
  --height-colophon:calc( 100vh - var(--height-footer) );
  --height-formLine:20px;
}

body {
  margin: 0;

  /* 広告位置変更に伴うスクロールアンカリングの無効化 */
  /* overflow-anchor: none; */
}

#vdbanner {
  height: 0;
  overflow: hidden;
}

/* .warningOrient {

} */

header {
  height: var(--height-header);
  border: 3px solid blue;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  /* z-index: 1; */
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 0 3%;

  background-color: rgba(128, 128, 128, 0.4);
}

header nav {
  width: 100%;
  display: flex;
  justify-content: space-between;

  height: 100%;
  height: 66%;
}

header a {
  text-decoration: none;
  color: #000;
  
  font-weight: bold;
  height: 100%;
}

.headLogo {
  display: flex;
  align-items: center;
  height: 100%;
}

.headLogo h1 {
  margin: 0;
}

.headLogo a img {
  height: 100%;
  border: 1px solid #000;
}

.headMenu {
  /* width: 25vw; */
  width: 45vw;
  /* ↓お問合せ部分の拡張につき再記 */
}

.headMenu ul {
  display: flex;
  justify-content: space-around;
  align-items: center;
  list-style: none;
  padding-left: 0;
  /* margin: 0; */
  margin-top: 0;
  margin-bottom: 0;
  height: 100%;
  /* gap: 4vw; */
  /* お問合せ部分に装飾とpaddingを入れる都合で削除 */
}

header .hamburgerMenu {
  display: none;
}

.headMenu li.responseLink {
  display: none;
}

main {
  /* padding-top: var(--height-header); */
}

/* xrea広告用 */
.vdbannerEx {
  position: absolute;
  z-index: 1;
  top: var(--height-header);
  width: 100%;
  display: block;
  text-align: center;
  padding: 10px 0;
}

.vdbannerEx a {
  display: inline-block;
  /* justify-content: center; */
}

.vdbannerEx a img {
  max-width: 468px;
  max-height: 60px;
  width: 100%;
}
/*  */


.noteWrap {
  min-height: 100vh;
  padding: 3%;
  /* background-color: red; */
  display: flex;
  justify-content: space-around;
  padding-top: var(--padding-forHeader);
  /* transition: background-color 3s;
  background-color: white; */
  /* z-index: 0; */
  position: relative;
}

.vdbannerEx + .noteWrap {
  padding-top: var(--padding-forHeaderAdd);
}

/* 背景色の透過度アニメーション試行 */
.noteWrap::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  content: "";
  width: 100%;
  height: 100%;
  /* animation: backFade ease 2s infinite alternate; */
  /* animation: backFade ease 5s infinite alternate; */
  /* animation: backFade ease 3s infinite alternate; */
  /* animation: backFade ease 2s infinite; */
  animation: backFade ease 3s;
  /* opacity: 0.3; */
  /* background-size: 200% 200%; */
}

@keyframes backFade {
  0% {
    /* opacity: 0.3; */
    /* background-position: 0% 50%; */
    filter: hue-rotate(0deg);
  }
  50% {
      /* background-position: 100% 50%; */
      /* filter: hue-rotate(45deg); */
      filter: hue-rotate(180deg);
    }
  100% {
    /* opacity: 1.0; */
    /* background-position: 0% 50%; */
    /* filter: hue-rotate(0deg); */
    /* filter: hue-rotate(180deg); */
    filter: hue-rotate(0deg);
  }
}
/* 透過上下を使わないなら擬似要素不要かと思ったが、本体で色相環を回転させると内部の画像にも影響する */

.noteWrap.pageBack::before {
/* .noteWrap.pageBack { */
  background-color: red;
  background: linear-gradient(45deg, #7266ff, #feb47b, #ff7e5f, #a7cfff);
  background: linear-gradient(45deg, red, yellow);
  /* transition: background-color 2s; */
  opacity: 0.7;
}

.noteWrap.postBack::before {
/* .noteWrap.postBack { */
  background-color: yellow;
  background: linear-gradient(45deg, yellow, lime);
  opacity: 0.6;
}

.noteWrap.archiveBack::before {
/* .noteWrap.archiveBack { */
  background-color: aqua;
  /* background: linear-gradient(45deg, aqua, cornflowerblue); */
  background: linear-gradient(45deg, limegreen, turquoise);
}

.noteWrap.pageArchBack::before {
/* .noteWrap.pageArchBack { */
  background-color: tomato;
  background: linear-gradient(45deg, #ff7e5f, #a7cfff);
}

.noteWrap.contactBack::before {
/* .noteWrap.contactBack { */
  background-color: pink;
  background: linear-gradient(45deg, pink, mediumpurple);
  opacity: 0.7;
}

.noteWrap.grayBack::before {
/* .noteWrap.grayBack { */
  background-color: grey;
  background: linear-gradient(to top, grey, steelblue);
  opacity: 0.7;
}

.noteFrame {
  background: linear-gradient(to top, #f3ecd8 50%, #fffef2);
  height: 100%;
  height: auto;
  min-height: 100vh;
  width: 70%;
  border-radius: 20px 0 0 20px;
  border-left: 3px solid grey;
  border-right: 3px solid #000;
  border-bottom: 3px solid grey;
  padding: 5% 2% 3%;
  padding: 3% 2% 3%;
}

.noteHead {
  display: flex;
  align-items: center;
  justify-content: end;
  border-bottom: 3px dashed #000;
  height: var(--height-folderHead);
  min-height: fit-content;
}

.noteHead h2 {
  text-align: right;
  padding-right: 5%;
  margin: 0;
}

.noteHead h2::before {
  position: static;
  background-color: #000;
  content: "" !important;
  display: inline-block;
  height: 50px;
  margin-right: 25px;
  vertical-align: middle;
  width: 3px;
  transform: rotate(45deg);
}

.noteContent {
  border-bottom: 3px dashed #000;
  /* height: var(--height-folderCont); */
  min-height: var(--height-folderCont);
  /* 内部先頭の上marginに対する対策？ */
  padding-top: 1%;

  /* 前後記事へのナビゲーション位置の基準? */
  /* position: relative; */
}


/* 直下ul（固定および投稿アーカイブ用。記事内には干渉しない）  */
.noteContent > ul {
  margin: 0;
  list-style: none;
  padding-left: 0;
  width: 100%;
}

.noteContent > ul li {
  min-height: fit-content;
  height: 25vh;
  padding: 1.5% 1.5%;
  border-bottom: 2px dashed #000;
  /* background-color: #fff; */
  /* display: flex; */
}

.noteWrap.pageArchBack .noteFrame .pageList {
/* .noteWrap.archiveBack .noteFrame .pageList { */
  display: flex;
}

.noteFrame .worksTex {
  margin-left: 2%;
  display: flex;
  /* align-items: center; */
  flex-flow: column;
  justify-content: center;
}

.noteFrame .worksTex h3,.noteFrame .worksTex p {
  border-bottom: 2px dashed #000;
}

.noteFrame .worksTex a,.noteFrame .postList a {
  text-decoration: none;
}

/* .noteWrap.archiveBack .noteFrame .postList .postInfo .postTag { */
.noteWrap .noteFrame .postList .postInfo .postTag {
  background-color: #ef8f8f;
  border: 1px solid #123456;
  border-radius: 3px;
  margin-left: 1%;
  padding: 0 4px;
}

/* 折り返し対策 */
.noteWrap .noteFrame .postList .postInfo > * {
  margin: 0 0 0 1%;
}


/* 記事一覧系統 */
.noteContent > ul li:last-child {
  border-bottom: none;
}

/* 投稿記事の見出し用追加クラス（未完成） */
.noteContent h4.inPostHead {
  border-bottom: 3px dashed #000;
  padding-bottom: 10px;
}

/* .noteContent img.inPostImg { */
.noteContent .inPostImg img {
  width: 75% !important;
}

/* .noteContent *:has(.inPostImg img) { */
/* .noteContent figure:has(.inPostImg img) { */
/* .noteContent figure.inPostImg { */
.noteContent *.inPostImg {
  display: flex;
  justify-content: center;  
}


/* 投稿用コメント欄オンオフ */
.comments-template {
  display: none;
}

.noteContent .Comments > h4 {
  width: fit-content;
  background-color: #6495ed;
  color: #fff;
  padding: 1% 2%;
  border-radius: 8px;
  box-shadow: 2px 2px 4px #000;
  margin-top: 5%;
  margin-bottom: 5%;
}

.noteContent .comments-template #respond form p:not(.comment-form-cookies-consent) label {
  display: block;
}

.noteContent .comments-template .form-Box {
  display: flex;
}

.noteContent .comments-template .form-Box p {
  width: 50%;
}

.noteContent .comments-template .form-Box p input {
  width: 90%;
  max-width: 250px;
}

.noteContent .comments-template p.comment-form-url input {
  width: 45%;
}

.noteContent > ul.has-pagenavi li:last-child,
.noteContent > ul:has(+ .wp-pagenavi) li:last-child {
/* .noteContent > ul + .wp-pagenavi li:last-child { */
  border-bottom: 2px dashed #000;
}

/* ページネーション実装に伴い隣接セレクタを用い表示上の有無に対応→失敗→なんとか↑hasが効かない火狐用にjQueryも */
.wp-pagenavi {
  margin: 5% auto;
  text-align: center;
}

.noteContent .Navi {
  width: 100%;
  /* 記事の中身がある時に下端が被る／そもそも「記事の中身が無い」場合の見え方を考慮不要 */
  /* position: absolute; */
  /* bottom: 0; */
  border-top: 2px dashed #000;
  margin-top: 5%;
  padding-top: 5%;
  padding-bottom: 5%;
  text-align: center;
}

.noteContent .Navi span {
  font-weight: 900;
}

/* １つしかない時に適応させているが、４つ未満でも↑↑↑↑に引っ掛かるため */
/* .noteContent > ul li:first-child { */
.noteContent > ul li:first-child,
.noteContent > ul li:nth-child(2),
.noteContent > ul li:nth-child(3) {
  border-bottom: 2px dashed #000;
}

.noteContent > ul li .postInfo {
  display: flex;
  
  flex-wrap: wrap;
/* 折り返し対策 */
  padding-top: 8px;
  row-gap: 8px;
  margin-bottom: 8px;
}

.noteContent > ul li .worksImg {
  height: 100%;
  display: flex;
  align-items: center;
  /* border: 1px dashed #000; */
}

/* lightbox2による画像拡大実装による追記 */
.noteContent > ul li .worksImg a {
  height: 100%;
  display: flex;
  align-items: center;
}

.noteContent > ul li .worksImg img {
  height: 100%;
  aspect-ratio: 4 / 3;

  border: 1.5px dashed #000;
  border: 1px solid #000;
}

.noteContent > ul li .worksTex h3,.noteContent > ul li .worksTex p {
  margin: 2% 0;
}

.worksTex p.lined {
  width: 103%;
}

.noteContent p span.pageTag {
  margin-right: 1%;
  /* padding-right: 1%; */
}

/* .noteContent span.pageCat:nth-of-type(2) { */
/* .noteContent p span.pageCat:first-of-type { */
/* 隣接セレクタ */
.noteContent p span.pageTag + span.pageCat {
  margin-left: 1%;
  /* padding-left: 1%; */
}

/* 個別記事用 */
.noteContent .Title {
  border-bottom: 2px dashed#000;
}

.noteContent .Title h3 {
  padding-bottom: 1%;
}

.noteContent .Date {
  text-align: end;
}

/* ↓この部分は投稿コメント欄のコメント内容欄にも適用される */
/* ブログ用メールフォーム */
.noteContent form > p textarea {
  width: 85%;
  min-width: 60%;
  max-width: 95%;
  height: 80px;
  min-height: 80px;
  max-height: 160px;
  font-size: 14px;
  line-height: 16px;
}

.noteContent form > p label.blogContact {
  display: flex;
  justify-content: space-between;
}

/* 検索結果 */
/* .noteContent .searchResults ul li { */
.noteContent .searchResults ul li > div {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 2px dashed #000;
  /* width: fit-content; */
  max-width: fit-content;
  min-width: 50%;
}

.noteContent .searchResults .searchBox {
  margin-top: 15vh;
  display: flex;
  justify-content: center;
}

.searchBox input {
  /* padding-left: 1%; */
  border-radius: 6px;
}

.sideBar {
  background: linear-gradient(to top, #f3ecd8 50%, #fffef2);
  height: 100%;
  /* height: auto; */
  height: max-content;
  width: 20%;
  padding-right: 1%;
  padding-bottom: 2%;
  padding-top: 1%;
}

.sideBar h4 {
  border-bottom: 2px solid #000;
  margin: 5% 5%;
}

.sideBar .searchResponsive {
  display: none;
}

.sideBar .searchBase form {
  padding-left: 4%;
  /* padding-top: 3%; */
}

.sideBar .searchBase .searchLabel {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important; /* IE 10+ の問題を修正 */
}

.sideBar .searchBase input {
  width: 100%;
  /* width: 75%; */
}

a.buttonTop {
  display: none;
}

footer {
  background-color: #aaaeee;
  width: 100%;
  /* height: 50px; */
  height: var(--height-footer);
  display: flex;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width:768px) {
  

}

@media screen and (max-width:960px) and (min-width:701px) {

  .sideBar {
    padding-left: 1%;
    width: 24%;
    border-radius: 6px;
  }

  .sideBar .searchBase form {
    padding-left: 0;
  }

  .sideBar .sideNew ul,.sideBar .sideCat ul,.sideBar .sideMonth ul {
    list-style: none;
    padding-left: 0;
    font-size: 15px;
  }
}

@media screen and (min-width:701px) {
  /* PC以上で「お問い合わせ」リンクを装飾する */
  .headMenu ul li:last-child {
    background-color: #6495ed;
    color: #fff;
    padding: 1% 2%;
    border-radius: 8px;
    box-shadow: 2px 2px 4px #000;
    border: 1px solid #fff;
  }

  .headMenu ul li:last-child a {
    color: #fff;
  }

  .headMenu ul li.conversionLink {

  }

  /* 同条件で固定制作物ページのサイドバー表示オンオフ */

  .noteWrap.pageBack .noteFrame {
    position: relative;
    transition: width 1.5s;
  }

  /* .noteWrap.pageBack .noteFrame::before {
    position: absolute;
    content: "サイドバーを折りたたむ";
    top: -32px;
    right: 0;
    font-size: 16px;
    display: none;
  } */
   
  .noteFrame .buttonExtend {
    display: block;
    position: absolute;
    width: fit-content;
    top: -32px;
    right: 0;
    font-size: 16px;
  }

  .noteFrame .buttonExtend p {
    margin: 0;
  }

  .noteFrame.extended {
    width: 85%;
    /* max-width: 1000px; */
  }

  /* .noteFrame.extended + .sideBar {
    display: none;
  } */


}

@media screen and (max-width:700px) {

  :root {
  --height-header: 60px;
  /* --height-folderCont: calc(100% - var(--height-folderHead)); */
  --height-folderCont: 91vh;
  }

  body.stop {
    overflow: hidden;
  }

  header {
    padding: 0 4%;
  }

  header nav {
    height: 100%;
    align-items: center;
  }

  .headMenu {
    position: fixed;
    background-color: darkgray;
    top: 0;
    left: 0;
    left: 105%;
    width: 100%;
    height: 100vh;
    transition: all 1s;
    /* z-index: 2; */
    z-index: 3;
  }

  .headMenu.menuOpen {
    top: 0;
    left: 0;
  }

  .headMenu ul {
    /* height: 50%; */
    height: 60%;
    flex-flow: column;
    text-align: center;
    align-items: normal;
    gap: unset;
  }

  .headMenu li.responseLink {
    display: block;
  }

  .headMenu ul li a {
    width: 40%;
    display: inline-block;
    border-bottom: 6px double black;
  }

  header .hamburgerMenu {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    background-color: rgba(0, 0, 0, 0.7);
    /* z-index: 3; */
    z-index: 4;
  }

  .hamburgerMenu span {
    width: 25px;
    height: 4px;
    display: inline-block;
    content: "";
    background-color: #fff;
    position: relative;
  }

  .hamburgerMenu span.cross {
    background-color: transparent;
  }

  .hamburgerMenu span::before {
    position: absolute;
    width: 25px;
    height: 4px;
    display: inline-block;
    content: "";
    background-color: #fff;
    top: 8px;
    left: 0;
    transition: all 0.5s;
  }

  .hamburgerMenu span.cross::before {
    transform: rotate(-45deg);
    top: 0;
  }

  .hamburgerMenu span::after {
    position: absolute;
    width: 25px;
    height: 4px;
    display: inline-block;
    content: "";
    background-color: #fff;
    bottom: 8px;
    left: 0;
    transition: all 0.5s;
  }

  .hamburgerMenu span.cross::after {
    transform: rotate(45deg);
    bottom: 0;
  }

  .noteWrap {
    /* display: block; */
    flex-flow: column;
    gap: 20px;
  }

  .noteFrame {
    width: 100%;
    /* padding-top: 8%; */
    min-height: 100vh;
  }

  .noteContent > ul li {
    /* min-height: 20vw; */
  }

  .noteContent > ul li .worksTex h3,.noteContent > ul li .worksTex p {
    font-size: 1.05em;
  }

  .noteContent > ul li .worksImg img {
    height: 75%;
  }

  .noteFrame .buttonExtend {
    display: none;
  }

  /* PC以上でサイドバーを隠したまま画面サイズを変更した時用 */
  .noteFrame.extended + .sideBar {
    display: block !important;
  }

  .sideBar {
    /* display: none; */
    width: 100%;
    padding: 0% 2%;
  }

  .sideBar h4 {
    margin: 5% 2%;
  }

  .sideBar ul {
    /* display: flex; */
    list-style: none;
    padding-left: 0;
    /* サイドバー要素の上下空白に干渉 */
    /* margin: 0;  */
  }

  .sideBar ul.postLoop li,
  .sideBar ul.pageLoop li {
    /* width: 25%; */
    text-align: center;
  }

  .sideBar .searchResponsive {
    display: block;
  }
  .sideBar .searchBase {
    display: none;
  }

  .sideBar .sideCat ul, .sideBar .sideMonth ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  
  a.buttonTop {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 40px;
    right: 3%;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: gray;
    z-index: 0;
  }

  a.buttonTop span.arrow {
    z-index: -1 !important;
    position: relative;
    /* display: inline-block; */
    width: 10px;
    height: 10px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(-45deg);
    margin-top: 5px;
  }

}

@media screen and (max-width:426px) {
  
  .noteContent > ul li {
    /* min-height: 30vw; */
  }

  .noteContent > ul li .worksImg img {
    height: 55%;
  }

  .noteContent form > .formLine label span input {
    width: 85%;
  }

  .noteContent form > p label.blogContact {
    /* justify-content: space-around; */
  }

  .noteContent form > p label.blogContact input.wpcf7-form-control.wpcf7-submit {
    margin-right: 15px;
  }

  .noteContent form > p label.blogContact br {
    display: none;
  }

  .noteContent form .wpcf7-spinner {
    display: none !important;
  }

}
