@charset "utf-8";

/* Google Fonts 統合読み込み */
@import url('https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Noto+Serif+SC:wght@400;600&family=Shippori+Mincho+B1:wght@400;500;600;700&display=swap');

/* レスポンシブ - エレガントピンク・ローズ（ピンク強調・leclat-beauty最適化） */
:root {
  --first-color: #b35c75;  /* メインの上品なディープローズ */
  --second-color: #c2929e; /* サブの優しげなモーヴピンク */
  --base-color: #e08b9f;   /* 基調となる華やかなピンク */
  --accent-color: #e86184; /* ポップになりすぎないアクセントローズピンク */
  --bg-light: #fdf7f8;     /* うっすらピンクをまとうミルキーホワイト背景 */
}

body {
  color: #3d3335;
  font-weight: normal;
  line-height: 1.85;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "YuGothic M", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
  font-size: 16px;
  background-color: #ffffff;
}

.article table.normalTbl,
.sideContents #sideServices h2,
.sideContents #sideBlogCategories h2,
.sideContents #sideBlogDates h2,
.sideContents #sideMobile h2,
.sideContents ul,
.sideContents dl {
  font-size: 100%;
  padding: 0 0 6px;
  color: #333333;
}

.mainImage #slider li {
  height: auto !important;
}

#mainTopics {
  background: var(--bg-light);
}

#mainArticles_body .article,
#mainArticles_body .gallery {
  margin-bottom: 90px;
}

#mainArticles_body .article.common_margin {
  margin-bottom: 30px;
}

#wrap .gallery_slide .galleryPreview .images .image img {
  width: auto;
}

.article.bg,
.gallery.bg {
  background: var(--bg-light);
}

.article.zero_margin.col2,
.article.zero_margin.col3 {
  margin-bottom: 0;
}

.article.bg.zero_margin,
.gallery.bg.zero_margin {
  margin-bottom: 0;
  padding-bottom: 0;
}

.sideContents dl ul li a,
ul.topics li p.description {
  font-size: 1em;
}

ul.topics li {
  width: 80%;
  margin: 0 auto;
  background: #ffffff;
}

.notation {
  margin: 0 0 6px;
  font-size: 0.9em;
  color: #666666;
}

a,
ul.topics li h3 a {
  transition: all 0.25s ease;
}

ul.topics li h3 a {
  color: var(--first-color);
}

#topMenu_outer .topMenu li a {
  line-height: 2.4em;
  font-feature-settings: 'palt';
  color: #444444;
  font-size: 1.1em;
}

#slider li.slick-slide {
  transition: opacity 1.4s ease 0s !important;
}

#info-link.max .gallery_grid li {
  margin: 10px;
  width: 23.5%;
}

/* パーツ */
#mainArticles .envelope {
  background: #fdf5f7;
  box-shadow: 0 1px 1px 0 inset #f0d5dc;
  text-align: left;
}

#mainArticles .article.envelope {
  margin-bottom: 50px;
}

.align-c {
  text-align: center !important;
}

.link-wrap {
  margin: 14px 0 20px;
}

ol.pp,
ul.maru {
  font-size: 1em;
  margin-bottom: 12px;
}

strong {
  background: linear-gradient(transparent 80%, #fbdbe2 80%);
}

ul.topics li h3 a:hover {
  color: var(--accent-color);
}

#contact.article .image {
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
}

.article.img200 .image img {
  max-width: 200px;
  width: 100%;
}

#wrap .img400 img {
  max-width: 400px;
  width: 100%;
}

.article.theme,
.gallery.theme {
  background: #fcf0f3;
}

.article.theme h3,
.gallery.theme h3 {
  color: #333333;
  padding: 22px 0;
}

.article.theme h3:after,
.gallery.theme h3:after {
  background: none;
}

/* ヘッダー */
#title #title_outer {
  display: block;
  overflow: hidden;
  height: 108px;
}


#title h1 {
  background: url(/materials/179057230596801.jpg) no-repeat bottom left;
  background-size: 100%;
  height: 88px;
  width: 160px;
  margin: 10px auto;
  z-index: 1;
  position: relative;
}

#title h1:hover {
  opacity: 0.8;
}

#title h1 a {
  display: inline-block;
  overflow: hidden;
  text-indent: 110%;
  white-space: nowrap;
  height: 100%;
  width: 100%;
}

#topMenu_outer li a {
  overflow: hidden;
}

#topMenu_outer .topMenu li a:after {
  top: 0;
  bottom: 0;
  margin: auto;
}

#topMenu_outer .topMenu li a:hover {
  background: #fdf5f7;
  color: var(--first-color);
}

#title .description {
  text-indent: unset;
  visibility: unset;
  font-size: 15px;
  position: absolute;
  top: -30px;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
}

/* グローバルメニューカスタム */
#wrap_body #topMenu {
  position: relative;
  width: 1024px;
  margin: 0 auto;
  top: -126px;
}

#topMenu_outer {
  position: absolute;
  top: 74px;
  right: 0;
  margin: 0;
  width: calc(100% - 180px);
  z-index: 1;
}

@media only screen and (max-width: 980px) and (min-width: 601px) {
  #wrap_body #topMenu {
    position: unset;
    width: auto;
  }
  #title #title_outer {
    height: auto;
    margin-left: 20px;
  }
  #title h1 {
    background-position: center;
  }
}

@media only screen and (max-width: 600px) {
  #wrap_body #topMenu,
  #topMenu_outer {
    position: unset;
  }
}

/* ams-build */
.ams-build #wrap_body #topMenu {
  position: relative;
  height: 50px;
  top: 0;
  width: 100%;
}

.ams-build #wrap_body #topMenu_outer {
  width: 100%;
  top: 0;
}

.ams-build #title,
.ams-build #title #title_outer {
  height: auto;
  position: unset;
}

.ams-build #title .description {
  top: 0;
}

.ams-build #wrap_body {
  position: relative;
}

/* 見出し (headline) */
#mainArticles h2,
#listTopics h2,
#mainArticles .article h2,
.mainContents .article h3,
#mainTopics h2,
.mainContents div.gallery h3,
.article h4,
.article h5,
#mainServices h2,
.article table#flowTbl strong,
.serif,
#title .description,
#topMenu_outer .topMenu li a,
.menubox li a,
#bottomLink a,
div#topLink ul.langmenu li a {
  font-family: "Cardo", "Shippori Mincho B1", "Noto Serif SC", serif;
  font-weight: 400;
  font-style: normal;
}

#mainArticles h2,
#listTopics h2 {
  font-size: 2.3em;
  font-weight: 500;
  margin: 50px 0;
  letter-spacing: 0.1em;
  background: none;
  color: var(--first-color);
  padding: 0;
}

#mainTopics h2,
#mainArticles .article h2,
.article h3,
.gallery h3,
.freeHtml h3,
.article.bg h3,
.gallery.bg h3 {
  font-size: 1.9em;
  line-height: 1.4em;
  color: #222222;
  background: none;
  margin-bottom: 50px;
  padding: 22px 0;
  position: relative;
}

.article.bg h3,
.article.theme h3,
.article.gray h3,
.gallery.bg h3,
.gallery.theme h3,
.gallery.gray h3 {
  margin-top: 40px;
}

.article.bg h3,
.article.gray h3,
.gallery.bg h3,
.gallery.gray h3 {
  padding: 22px 0;
}

.article h3 a,
.gallery h3 a,
.article h3 a:hover {
  color: var(--first-color);
}

/* 装飾サークルアイコン */
#mainTopics h2::after,
#mainArticles .article h2::after,
.article h3::after,
.gallery h3::after,
.freeHtml h3::after,
#mainTopics h2::before,
#mainArticles .article h2::before,
.article h3::before,
.gallery h3::before,
.freeHtml h3::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: none;
  border: 1px solid var(--base-color);
  border-right-color: transparent;
  border-left-color: transparent;
  border-bottom-color: transparent;
}

#mainTopics h2::after,
#mainArticles .article h2::after,
.article h3::after,
.gallery h3::after,
.freeHtml h3::after {
  border-bottom: 1px solid var(--base-color);
  border-top-color: transparent;
  top: auto;
  bottom: 0;
}

#mainArticles div[id^=blog] h2:after {
  margin: auto;
}

#mainArticles div[id^="blog"] h2 {
  margin: 30px 0 40px;
}

.mainContents .article h4 {
  background: none;
  border: none;
  font-size: 1.5em;
  font-weight: 500;
  line-height: 1.3em;
  padding: 10px 0 8px;
  margin-top: 20px;
}

.mainContents .article h4::before {
  font-family: "Font Awesome 5 Free";
  content: "\f0c8";
  font-weight: 900;
  position: unset;
  background: none;
  color: var(--base-color);
  margin-right: 8px;
}

.article h5 {
  color: var(--first-color);
  border: none;
  border-bottom: solid 1px var(--base-color);
  margin: 12px 0 20px;
  padding: 8px 0;
  font-size: 1.3em;
  letter-spacing: 0.1em;
}

.article h6 {
  background: var(--bg-light);
  color: var(--first-color);
  font-size: 1em;
  padding: 8px 18px;
  border-radius: 4px;
  line-height: 1.4em;
  position: relative;
}

.article h6:before {
  content: none;
}

.article.frame h6 {
  margin-top: 16px;
}

.article.envelope h6,
table#flowTbl h6 {
  padding-left: 22px;
  margin: 0;
}

.article.envelope h6::before,
table#flowTbl h6::before {
  left: 0;
}

/* ボタン・リンク */
a.btn {
  display: block;
  background: #ffffff;
  color: var(--first-color);
  border: solid 1px var(--base-color);
  border-radius: 999px;
  transition: all 0.3s ease;
  padding: 14px 0;
  max-width: 600px;
  font-weight: normal;
  margin: 0 auto;
  overflow: hidden;
  text-decoration: none;
}

a.btn:hover {
  box-shadow: 0 6px 18px rgba(224, 139, 159, 0.35);
  background: var(--base-color);
  color: #ffffff;
}

a.btn::after {
  color: inherit;
}

a.oLink {
  text-decoration: none;
  color: var(--first-color);
}

a.oLink:hover {
  text-decoration: underline;
}

.oLink::after {
  font-family: "Font Awesome 5 Free";
  content: "\f35d";
  font-weight: 900;
  margin-left: 6px;
  font-size: 0.9em;
}

p.col2 a.btn,
p.col3 a.btn {
  display: inline-block;
  width: 48%;
  margin: 0 1%;
}

p.col3 a.btn {
  width: 31%;
}

.freeHtml_body a.btn {
  padding: 10px;
  max-width: 220px;
  margin: 14px auto;
}

ul.topics li p.date,
ul.topics li p.more a,
#mainTopics .listview a {
  background: var(--second-color);
  color: #ffffff;
}

ul.topics li p.more a:hover,
#mainTopics .listview a:hover {
  background: var(--first-color);
}

p.contact {
  max-width: 560px;
  margin: 0 auto 40px;
}

/* サイト案内 */
#info-link .gallery_grid li.galleryGrid .image a {
  box-sizing: border-box;
  border-radius: 100%;
  border: 2px solid var(--base-color);
  max-width: 128px;
  display: block;
  margin: 0 auto;
  padding: 30px;
  background: #ffffff;
  transition: all 0.3s ease;
}

#info-link .gallery_grid li.galleryGrid .image a:hover {
  border-color: var(--accent-color);
  background: #fdf2f4;
  box-shadow: 0 0 12px rgba(232, 97, 132, 0.3);
}

#info-link .gallery_grid li.galleryGrid a:hover,
#info-link .gallery_grid li.galleryGrid a:hover img {
  opacity: 1;
}

#info-link .gallery_grid li.galleryGrid .comment::before {
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  font-weight: 900;
  margin-right: 4px;
  color: var(--base-color);
}

#info-link .comment {
  font-size: 0.9em;
  font-feature-settings: 'palt';
}

.article.frame {
  padding: 16px 20px;
  border: solid 1px var(--base-color);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(224, 139, 159, 0.12);
}

/* リスト */
ul.check li {
  font-size: 1.1em;
  padding: 0 0 10px 8px;
  margin-bottom: 10px;
  font-weight: normal;
  position: relative;
}

ul.check li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f00c";
  font-weight: 900;
  border: 1px solid var(--base-color);
  color: var(--first-color);
  width: auto;
  height: auto;
  padding: 0 4px;
  top: 0;
  border-radius: 2px;
}

::marker {
  color: var(--base-color);
}

ol.pp.olist {
  counter-reset: number;
  list-style: none;
  padding-top: 16px;
}

ol.pp.olist li {
  list-style: none;
  line-height: 1.6em;
  margin-bottom: 1em;
}

ol.pp.olist li::before {
  counter-increment: number;
  content: counter(number);
  background: var(--base-color);
  display: inline-block;
  width: 1.6em;
  height: 1.6em;
  line-height: 1.6em;
  text-align: center;
  border-radius: 4px;
  color: #ffffff;
  margin-right: 0.4em;
  vertical-align: top;
}

.menubox {
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 1%;
  justify-content: center;
  margin-bottom: 1em;
}

.menubox li {
  width: 49%;
}

.menubox.col3 li {
  width: 32%;
}

ul.menubox.col1 li {
  width: 100%;
}

.menubox li a {
  display: block;
  border-radius: 4px;
  text-align: center;
  padding: 8px 6px;
  border: solid 1px var(--base-color);
  color: var(--first-color);
  text-decoration: none;
  background: #ffffff;
  transition: all 0.3s ease;
}

.menubox li a:hover {
  background-color: var(--base-color);
  color: #ffffff;
}

.menubox li a:hover::before {
  color: #ffffff;
}

.menubox li a:before {
  padding-right: 6px;
  color: var(--base-color);
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  font-weight: 900;
}

ul.menubox.txt li a {
  border: none;
  border-bottom: solid 1px var(--base-color);
  border-radius: unset;
  background: none;
  margin-bottom: 2em;
  color: var(--first-color);
  font-size: 1.2em;
  letter-spacing: 0;
  position: relative;
}

ul.menubox.txt li a::before {
  content: none;
}

ul.menubox.txt li a::after {
  content: '\f078';
  font-family: "Font Awesome 5 Free";
  font-size: 1.2em;
  font-weight: 900;
  display: block;
  color: var(--base-color);
  position: absolute;
  right: 0;
  left: 0;
  bottom: -1.8em;
}

ul.menubox.txt {
  gap: 3%;
  justify-content: center;
  margin-bottom: 0.8em;
  margin-top: 2em;
}

ul.menubox.txt li {
  display: block;
  width: 48%;
  text-align: center;
}

ul.menubox.txt.col3 li {
  width: 31%;
}

ul.menubox.txt li a:hover {
  background: none;
  color: var(--accent-color);
}

ul.maru.col2,
ul.maru.col3 {
  display: flex;
  flex-wrap: wrap;
}

ul.maru.col2 li {
  width: 50%;
  font-feature-settings: 'palt';
}

ul.maru.col3 li {
  width: 33%;
  font-feature-settings: 'palt';
}

ul.maru li:before {
  margin-left: -16px;
  margin-right: 4px;
  font-size: 0.6em;
  vertical-align: middle;
  color: var(--base-color);
}

.theme.full li.galleryGrid .image img {
  border-radius: 14px;
}

#mainArticles table.contactTable input.button,
#mainArticles table.contactTable input[type="button"] {
  border-radius: 4px;
}

.video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/* テーブル */
.article table.normalTbl.half {
  width: 52%;
  margin-top: 0;
}

.article table.normalTbl,
.article table.normalTbl tr:last-child td,
.article table.normalTbl tr:last-child th {
  border: none;
}

.article table.normalTbl th,
.article table.normalTbl tr:last-child th {
  background: none;
  font-weight: 600;
  border-bottom: solid 1px var(--first-color);
  color: var(--first-color);
}

.article table.normalTbl td,
.article table.normalTbl th {
  padding: 10px;
}

.article table.normalTbl td {
  border-color: #f3dbe0;
}

.article table.normalTbl tr:last-child td {
  border-bottom: dotted 1px #e0b8c2;
}

.article.col2 table.normalTbl th {
  width: auto;
  line-height: 1.4em;
  white-space: nowrap;
}

.article.col2 table.normalTbl th,
.article.col2 table.normalTbl td {
  font-size: 0.9em;
  padding: 6px;
  font-feature-settings: 'palt';
}

.article table#flowTbl td {
  border: none;
  background: var(--bg-light);
  border-radius: 8px;
}

.article table#flowTbl strong {
  background: none;
  border-bottom: solid 1px var(--base-color);
  color: var(--first-color);
  font-size: 1.2em;
  padding: 0 12px 2px;
  display: block;
  float: left;
  margin: 0 30px 0 10px;
}

.article table#flowTbl p {
  margin: 0;
}

.article table#flowTbl td:after {
  color: var(--base-color);
  bottom: -1em;
  line-height: 1em;
}

.article.bg table#flowTbl td {
  background: #ffffff;
}

/* Side Table */
#sideContents table.normalTbl {
  border-collapse: collapse;
  border-spacing: 0;
  margin: 10px auto;
  width: 100%;
}

#sideContents table.normalTbl th {
  height: auto;
  width: 25%;
  padding: 6px;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  border-bottom: solid 1px var(--first-color);
}

#sideContents table.normalTbl td {
  border-bottom: solid 1px #f3dbe0;
  background: none;
  height: auto;
  line-height: 1.6em;
  padding: 6px;
}

.article.zero_margin,
.gallery.zero_margin,
.article.full.zero_margin,
.article.zero_margin.max {
  margin-bottom: 0 !important;
}

.article.full.zero_margin,
.article.zero_margin.max {
  padding-bottom: 10px;
}

/* Contact Form */
#mainArticles table.contactTable,
#mainArticles table.contactTable tr th,
#mainArticles table.contactTable tr td {
  border-color: #f3dbe0;
  border-width: 1px;
}

#mainArticles form {
  background: none;
  padding: 0;
}

#mainArticles table.contactTable tr th {
  background-color: var(--bg-light);
  border-right: none;
  color: #333333;
}

#mainArticles table.contactTable tr td {
  background: #ffffff;
  border-right: none;
}

#mainArticles table.contactTable {
  border-left: none;
}

/* Footer & Side */
#sideContents {
  background: url(/materials/174124143039901.jpg) no-repeat bottom #fdf7f8;
  background-size: 100%;
}

.freeHtml_body {
  margin-bottom: 40px;
}

p.col2 {
  display: flex;
  justify-content: center;
}

.side-logo {
  margin: 20px auto;
  max-width: 160px;
}

.side-logo img {
  max-width: 350px;
  width: 100%;
  margin: 0 auto 10px;
  display: block;
}

#footer_body .topMenu li a:hover,
#footer_body .services li a:hover,
.sideContents ul li a:hover,
.sideContents dt a:hover {
  background: none;
  color: var(--first-color);
}

.side-banner {
  max-width: 600px;
  margin: 0 auto 40px;
}

#footer,
#footer_body .topMenu li a,
#footer_body .services li a {
  background: none;
}

#footer_body .topMenu li a,
#footer_body .services li a {
  color: #555555;
}

#footer_body {
  padding: 0 0 46px;
}

#footer_body,
#footer_body .topMenu,
#footer_body .services {
  display: block;
  width: 100%;
}

#footer_body .topMenu,
#footer_body .services {
  display: flex;
  justify-content: flex-start;
  flex-direction: unset;
}

#footer_body .topMenu li,
#footer_body .services li {
  width: 20%;
  margin: 0 0 6px;
}

#footer_body .topMenu {
  margin-bottom: 0;
}

#footer_body .services {
  margin-top: 0;
  flex-wrap: wrap;
}

#footer_body .copyright {
  padding: 14px 0;
  background: var(--first-color);
  color: #ffffff;
}

#footer_body .copyright,
#footer_body .copyright a {
  font-weight: normal;
  color: #ffffff;
}

#footer_body .topMenu li a,
#footer_body .services li a {
  padding: 0;
}

#footer_body .topMenu li a::before,
#footer_body .services li a::before {
  color: var(--base-color);
}

/* メディアクエリ（PC / Tab） */
@media only screen and (min-width: 820px) {
  .col2.article h3,
  .col3.article h3 {
    font-size: 1.6em;
    padding: 0 0 10px;
  }
  .article.col3 {
    flex-basis: 32%;
  }
  #wrap_body #title {
    border-top: solid 33px #fcf0f3;
  }
}

@media only screen and (max-width: 820px) {
  .article table.normalTbl.half,
  ul.maru.col2 li,
  ul.maru.col3 li {
    width: 100%;
  }
  #title .description {
    text-indent: -9999px;
    visibility: hidden;
    position: unset;
  }
  #wrap_body #title {
    border-bottom: solid 2px var(--base-color);
  }
  #title h1 {
    padding: 0;
    width: 106.6px;
  }
  #topMenu_outer {
    top: 52px;
    height: 80px;
    width: calc(100% - 140px);
  }
  #topMenu_outer .topMenu li a {
    font-size: 1em;
  }
}

@media only screen and (min-width: 600px) {
  .sideContents #sideBanners ul li img {
    max-height: 70px;
    max-width: unset;
    width: auto;
  }
  .article.full.bg,
  .article.full.theme,
  .article.full.gray,
  .gallery.full.bg,
  .gallery.full.theme,
  .gallery.full.gray {
    padding-top: 10px;
  }
}

/* モバイル向けスタイル */
@media only screen and (max-width: 600px) {
  body {
    font-size: 15px;
  }
  #toggle,
  .active #toggle {
    background-color: var(--first-color);
  }
  #info-link .comment {
    font-size: 0.8em;
  }
  .contact-img a {
    width: 100%;
    margin-bottom: 12px;
  }
  ul.topics li {
    width: 90%;
  }
  .menubox {
    display: block;
  }
  ul.menubox.txt {
    display: flex;
  }
  .menubox li {
    width: 100%;
    margin-bottom: 12px;
  }
  ul.faq li.qus:before,
  ul.faq li.ans:before {
    margin-left: -38px;
  }
  #wrap_body #topMenu {
    order: 1;
  }
  .article.frame {
    flex-basis: 90%;
    margin: 0 auto 40px !important;
  }
  .article table.normalTbl td {
    background: #ffffff;
  }
  #sideContents table.normalTbl th,
  #sideContents table.normalTbl td {
    display: block;
    width: 100%;
    padding: 8px;
    text-align: center;
  }
  #sideContents table.normalTbl th {
    font-weight: bold;
  }
  #sideContents table.normalTbl td {
    border-bottom: solid 2px var(--first-color);
  }
  .sideContents #sideBanners ul {
    display: block;
  }
  .sideContents #sideBanners li.sideBanner img {
    max-height: 60px;
    width: auto;
    max-width: 100%;
  }
  p.col2,
  p.col3 {
    flex-wrap: wrap;
  }
  p.col2 a.btn,
  p.col3 a.btn {
    width: 100%;
    display: block;
    margin-bottom: 10px;
    padding: 8px 0;
  }
  #info-link .gallery_grid li.galleryGrid .image img {
    width: 100%;
  }
  .article table.normalTbl td {
    border-top: none;
  }
  .article table.normalTbl.price td {
    text-align: right;
  }
  .article table.normalTbl.price td::before {
    content: attr(data-label);
    float: left;
    font-weight: bold;
    font-size: 0.9em;
    color: var(--first-color);
  }
  .article table.normalTbl.price thead {
    display: none;
  }
  .article table.normalTbl.price th {
    padding: 20px 0 6px;
  }
  #title h1 {
    margin: 6px auto;
    height: 60px;
    margin-left: 12px;
  }
  #title #title_outer {
    height: 74px;
    background: none;
  }
  #topMenu_outer .topMenu li a:hover::before,
  #topMenu_outer .topMenu li a:hover:before {
    content: none;
  }
  #topMenu_outer .topMenu li a {
    line-height: 1.25em;
    font-weight: normal;
    background: #fdf5f7;
  }
  #mainArticles h2,
  #listTopics h2 {
    font-size: 1.5em;
    letter-spacing: 0.01em;
    margin: 30px 0 20px;
    padding: 0 10px;
  }
  .mainContents .article h4 {
    font-size: 1.3em;
    padding-top: 18px;
  }
  #mainTopics h2,
  #mainArticles .article h2,
  .article h3,
  .gallery h3,
  .freeHtml h3,
  .article.bg h3 {
    font-size: 1.5em;
    line-height: 1.4em;
    min-height: 3.5em;
    margin: 10px 0 30px;
  }
  .menubox li,
  .menubox.col3 li {
    float: unset;
    width: 100%;
    display: block;
    margin: 6px 0;
    font-size: 0.9em;
    font-feature-settings: 'palt';
  }
  #mainArticles table.contactTable tr.must th {
    padding: 1em;
    padding-right: 50px;
  }
  .article table.normalTbl th {
    text-align: center;
    font-weight: bold;
  }
  #footer_body .topMenu li,
  #footer_body .services li {
    width: 49%;
    display: inline-block;
    margin-bottom: 2px;
    font-size: 1.1em;
  }
  #footer_body .topMenu,
  #footer_body .services {
    display: block;
    margin-left: 4%;
    margin-bottom: 16px;
    padding-top: 20px;
  }

  /* モバイル固定フッターリンク */
  #bottomLink {
    position: fixed;
    display: block;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 1000;
    height: 50px;
    overflow: hidden;
  }
  #bottomLink a {
    display: block;
    color: #ffffff;
    background: var(--first-color);
    text-decoration: none;
    font-weight: normal;
    line-height: 3.4em;
    height: 100%;
  }
  #bottomLink a::before {
    font-family: "Font Awesome 5 Free";
    content: "\f105";
    font-weight: 900;
    margin-right: 10px;
    color: var(--base-color);
  }
  #wrap {
    position: relative;
    margin-bottom: 4px;
  }
}

/* TOP問い合わせボタン・言語切替 */
#wrap {
  position: relative;
}

#sideContents,
.mainArticles,
#wrap_body #contents {
  position: unset;
}

body.body-media-pc.ams-build #topLink {
  position: unset;
}

#topLink {
  position: absolute;
  width: 1024px;
  top: 40px;
  z-index: 0;
}

div#topLink ul.langmenu {
  display: flex;
  padding: 0;
  justify-content: flex-end;
}

div#topLink ul.langmenu li {
  border: none;
  padding: 0;
  margin-right: 1em;
}

div#topLink ul.langmenu li a {
  padding: 0;
  color: var(--first-color);
}

div#topLink ul.langmenu li a:hover,
#topLink a::before {
  color: var(--base-color);
}

#topLink a::before {
  font-family: "Font Awesome 5 Free";
  content: "\f054";
  font-weight: 900;
  margin: 0;
  font-size: 0.8em;
  padding-right: 6px;
}

@media only screen and (max-width: 1024px) {
  #topLink {
    width: 100%;
    left: 0;
  }
}

@media only screen and (max-width: 820px) {
  #topLink {
    top: 10px;
  }
}

@media only screen and (max-width: 600px) {
  div#topLink ul.langmenu {
    display: flex;
    justify-content: flex-start;
  }
  div#topLink {
    left: 134px;
    top: 44px;
  }
}

@media only screen and (max-width: 350px) {
  div#topLink ul.langmenu {
    width: 140px;
    flex-wrap: wrap;
  }
  div#topLink {
    top: 18px;
    left: 140px;
  }
}

/*h3検討中*/
/* --- H3見出し：左バー＋淡い背景ライン --- */
#mainTopics h2,
#mainArticles .article h2,
.article h3,
.gallery h3,
.freeHtml h3,
.article.bg h3,
.gallery.bg h3 {
  font-size: 1.5em;
  line-height: 1.4;
  color: #3d3335;
  text-align: left;
  background: var(--bg-light, #fdf7f8);
  margin: 35px 0 25px;
  padding: 12px 18px 12px 20px;
  position: relative;
  border-left: 4px solid var(--accent-color, #e86184);
  border-radius: 0 4px 4px 0;
}

/* 元の前後装飾（サークル）をクリア */
.mainTopics h2::before, .mainTopics h2::after,
.article h3::before, .article h3::after,
.gallery h3::before, .gallery h3::after,
.freeHtml h3::before, .freeHtml h3::after {
  display: none !important;
}

ul.check li:before {
    transform: rotate(0deg);
}