@charset "UTF-8";
/* CSS Document */
/*
Theme Name: BUZZ REUSE
*/
/*Font Weight 	Regular400  Medium500  Bold700  Heavy800 	Black900*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html.lenis {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

ul {
  list-style: none;
}

li {
  list-style: none;
}

/* rem の基準となるフォントサイズ（body の @include fsize と同じ可変値にして、em / rem が常に同じ結果になるようにしています） */
html {
  font-size: 1vw;
}

@media screen and (min-width: 1921px) {
  html {
    font-size: 19.2px;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 2vw;
  }
}
@media screen and (max-width: 480px) {
  html {
    font-size: 3vw;
  }
}
h1 {
  font-size: 1.6rem;
  font-weight: 300;
}

h2 {
  font-weight: 300;
}

/* =======================================================================================================================
　　　　　　　　　全体
======================================================================================================================= */
body {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1rem;
  line-height: 2em;
  letter-spacing: 0.05em;
  color: #1a2e1f;
  background: #ffffff;
  overflow-x: hidden;
}

/* =======================================================================================================================
　　　　　　　　　固定ページ共通パーツ
======================================================================================================================= */
/* =======================================================================================================================
　　　　　　　　　レイアウト
======================================================================================================================= */
.sec {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 5em 0;
}

@media screen and (max-width: 480px) {
  .sec {
    padding: 2.5em 0;
  }
}
.innerbox {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 0 7.5em;
}

@media screen and (max-width: 1350px) {
  .innerbox {
    padding: 0 5em;
  }
}
@media screen and (max-width: 768px) {
  .innerbox {
    padding: 0 2.5em;
  }
}
@media screen and (max-width: 480px) {
  .innerbox {
    padding: 0 1.5em;
  }
}
#wrapper {
  overflow: hidden;
  margin-top: 0em;
}

/* 元テンプレートは @include sp{ br{display:none;} } でスマホ時に br を無効化していましたが、
   本サイトでは見出し・本文の改行位置をデザイン通りに保つため br は常に有効にしています。 */
/* 欧文フォント */
/* 日本語フォント */
.jp {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

/* 文字寄せ */
.center {
  text-align: center;
}

.right {
  text-align: right;
}

/* ノートパソコン改行 */
@media screen and (max-width: 1350px) {
  .npbr {
    display: block;
  }
}
/* タブレット改行 */
@media screen and (max-width: 768px) {
  .tbbr {
    display: block;
  }
}
/* スマホ改行 */
@media screen and (max-width: 480px) {
  .spbr {
    display: block;
  }
}
/* スマホ非表示 */
@media screen and (max-width: 480px) {
  .spnone {
    display: none;
  }
}
/* 見出し */
/* 段落 */
p {
  padding-bottom: 0;
}

/* 注釈 */
.note {
  padding-left: 1em;
  text-indent: -1em;
  color: #398933;
  font-size: 0.85em;
  line-height: 1.25em;
}

.note::before {
  content: "※";
}

/* 画像 */
img {
  vertical-align: bottom;
}

img.img100 {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
  width: 100%;
  height: 100%;
  font-family: "object-fit: cover; object-position: 50% 50%;";
}

.imgbox {
  line-height: 0;
}

/* =======================================================================================================================
　　　　　　　　　SVG
======================================================================================================================= */
/* 読み込み遅延 */
img {
  transition: 1s ease;
  backface-visibility: hidden;
}

img.lazyload {
  opacity: 0;
  filter: alpha(opacity=0);
}

img.lazyloaded {
  opacity: 1;
  filter: alpha(opacity=100);
}

/* 読み込み遅延 */
.lazyload0, .lazyload1, .lazyload2, .lazyload3, .lazyload4 {
  transition: 1s ease;
  backface-visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
}

.lazyload0.lazyloaded, .lazyload1.lazyloaded, .lazyload2.lazyloaded, .lazyload3.lazyloaded, .lazyload4.lazyloaded {
  transition: 1s ease;
  backface-visibility: hidden;
  opacity: 1;
  filter: alpha(opacity=100);
}

.lazyload1 {
  transform: translate(0, 2.5em);
}

.lazyload1.lazyloaded {
  transform: translate(0, 0);
}

.lazyload2 {
  transform: translate(-2.5em, 0);
}

.lazyload2.lazyloaded {
  transform: translate(0, 0);
}

.lazyload3 {
  transform: translate(2.5em, 0);
}

.lazyload3.lazyloaded {
  transform: translate(0, 0);
}

.lazyload4 {
  transform: translate(0, -2.5em);
}

.lazyload4.lazyloaded {
  transform: translate(0, 0);
}

/* トップページ内コンテンツの場合 */
#front-page section .lazyload0.lazyloaded, #front-page section .lazyload1.lazyloaded, #front-page section .lazyload2.lazyloaded, #front-page section .lazyload3.lazyloaded, #front-page section .lazyload4.lazyloaded {
  opacity: 0;
  filter: alpha(opacity=0);
}

#front-page section .lazyload1.lazyloaded {
  transform: translate(0, 2.5em);
}

#front-page section .lazyload2.lazyloaded {
  transform: translate(-2.5em, 0);
}

#front-page section .lazyload3.lazyloaded {
  transform: translate(2.5em, 0);
}

#front-page section .lazyload4.lazyloaded {
  transform: translate(0, -2.5em);
}

#front-page section.on .lazyload0.lazyloaded, #front-page section.on .lazyload1.lazyloaded, #front-page section.on .lazyload2.lazyloaded, #front-page section.on .lazyload3.lazyloaded, #front-page section.on .lazyload4.lazyloaded {
  opacity: 1;
  filter: alpha(opacity=100);
}

#front-page section.on .lazyload1.lazyloaded {
  transform: translate(0, 0);
}

#front-page section.on .lazyload2.lazyloaded {
  transform: translate(0, 0);
}

#front-page section.on .lazyload3.lazyloaded {
  transform: translate(0, 0);
}

#front-page section.on .lazyload4.lazyloaded {
  transform: translate(0, 0);
}

@media screen and (min-width: 1921px) and (max-aspect-ratio: 100/53) {
  #front-page section.onsp .lazyload0.lazyloaded, #front-page section.onsp .lazyload1.lazyloaded, #front-page section.onsp .lazyload2.lazyloaded, #front-page section.onsp .lazyload3.lazyloaded, #front-page section.onsp .lazyload4.lazyloaded {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  #front-page section.onsp .lazyload1.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload2.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload3.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload4.lazyloaded {
    transform: translate(0, 0);
  }
}
@media screen and (max-width: 1920px) and (min-width: 1351px) and (max-aspect-ratio: 2/1) {
  #front-page section.onsp .lazyload0.lazyloaded, #front-page section.onsp .lazyload1.lazyloaded, #front-page section.onsp .lazyload2.lazyloaded, #front-page section.onsp .lazyload3.lazyloaded, #front-page section.onsp .lazyload4.lazyloaded {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  #front-page section.onsp .lazyload1.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload2.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload3.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload4.lazyloaded {
    transform: translate(0, 0);
  }
}
@media screen and (max-width: 1350px) and (min-width: 769px) and (max-aspect-ratio: 25/13) {
  #front-page section.onsp .lazyload0.lazyloaded, #front-page section.onsp .lazyload1.lazyloaded, #front-page section.onsp .lazyload2.lazyloaded, #front-page section.onsp .lazyload3.lazyloaded, #front-page section.onsp .lazyload4.lazyloaded {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  #front-page section.onsp .lazyload1.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload2.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload3.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload4.lazyloaded {
    transform: translate(0, 0);
  }
}
@media screen and (max-width: 768px) and (min-width: 481px) and (max-aspect-ratio: 25/37) {
  #front-page section.onsp .lazyload0.lazyloaded, #front-page section.onsp .lazyload1.lazyloaded, #front-page section.onsp .lazyload2.lazyloaded, #front-page section.onsp .lazyload3.lazyloaded, #front-page section.onsp .lazyload4.lazyloaded {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  #front-page section.onsp .lazyload1.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload2.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload3.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload4.lazyloaded {
    transform: translate(0, 0);
  }
}
@media screen and (max-width: 480px) and (max-aspect-ratio: 35/68) {
  #front-page section.onsp .lazyload0.lazyloaded, #front-page section.onsp .lazyload1.lazyloaded, #front-page section.onsp .lazyload2.lazyloaded, #front-page section.onsp .lazyload3.lazyloaded, #front-page section.onsp .lazyload4.lazyloaded {
    opacity: 1;
    filter: alpha(opacity=100);
  }
  #front-page section.onsp .lazyload1.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload2.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload3.lazyloaded {
    transform: translate(0, 0);
  }
  #front-page section.onsp .lazyload4.lazyloaded {
    transform: translate(0, 0);
  }
}
/* リンク */
a {
  text-decoration: none;
  color: #1a2e1f;
  transition: 0.3s ease;
  backface-visibility: hidden;
}

a img {
  transition: 0.3s ease;
  backface-visibility: hidden;
}

a:hover {
  color: #1a2e1f;
  opacity: 0.6;
}

a:hover img {
  opacity: 0.7;
  filter: alpha(opacity=70);
}

/* ================= フォーム ============================================================ */
/* =============== コンタクトフォーム（全ページ共通） ========================================================= */
.formbox {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 3.57em 0;
  background: white;
}

@media screen and (max-width: 768px) {
  .formbox {
    padding: 1.5em 0;
  }
}
.formbox h3 {
  font-size: 2em;
  line-height: 1.7em;
  padding-bottom: 0.5em;
}

.formbox p {
  padding-bottom: 2em;
}

/* contact form 7 ------------------------------------------- */
.wpcf7-form .formctt {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}

.formname {
  width: 16em;
  font-weight: 700;
  text-align: right;
  padding: 1em 0.5em 0 0;
  line-height: 1em;
}

@media screen and (max-width: 480px) {
  .formname {
    width: 100%;
    text-align: left;
    padding: 0.5em 0;
  }
}
.formname::after {
  content: "：";
}

span .formname {
  padding-top: 1.5em;
}

.wpcf7-form-control-wrap {
  flex: 1;
}

@media screen and (max-width: 480px) {
  .wpcf7-form-control-wrap {
    width: 100%;
    flex: none;
  }
}
div.wpcf7 {
  text-align: left;
}

.wpcf7-form p {
  padding: 0 0 2em 0;
}

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=date],
.wpcf7-form textarea {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1em;
  line-height: 1.7em;
  box-sizing: border-box;
  padding: 0.75em 1.5em;
  border: #1a2e1f solid 0.1em;
}

@media screen and (max-width: 1500px) {
  .wpcf7-form input[type=text],
  .wpcf7-form input[type=email],
  .wpcf7-form input[type=tel],
  .wpcf7-form input[type=date],
  .wpcf7-form textarea {
    padding: 0.5em 1em;
  }
}
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=date],
.wpcf7-form textarea {
  /* 確認ページ */
}

.wpcf7-form input[type=text].wpcf7c-conf,
.wpcf7-form input[type=email].wpcf7c-conf,
.wpcf7-form input[type=tel].wpcf7c-conf,
.wpcf7-form input[type=date].wpcf7c-conf,
.wpcf7-form textarea.wpcf7c-conf {
  background: #fff;
  border: none;
  border-radius: none;
}

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form textarea {
  width: 100% !important;
}

.wpcf7-form .yubin input[type=text] {
  max-width: 180px;
}

.wpcf7-form label .yubin {
  position: relative;
  top: 1em;
}

.wpcf7-form label .yubin br {
  display: none;
}

.wpcf7-form {
  /*送信ボタン*/
}

.wpcf7-form input[type=submit],
.wpcf7-form input[type=button],
.wpcf7-form .resetbtn {
  width: 10em !important;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  letter-spacing: 1em;
  text-indent: 1em;
  box-sizing: border-box;
  padding: 0.5em 1em;
  margin: auto;
  display: flex;
  text-align: center;
  justify-content: center;
  transition: 0.3s ease;
  backface-visibility: hidden;
  border: none;
  background: #398933;
  border: solid 1px #398933;
  color: white;
}

.wpcf7-form input[type=submit]:hover,
.wpcf7-form input[type=button]:hover,
.wpcf7-form .resetbtn:hover {
  cursor: pointer;
  background-color: white;
  color: #398933;
}

@media screen and (max-width: 480px) {
  .wpcf7-form input[type=submit],
  .wpcf7-form input[type=button],
  .wpcf7-form .resetbtn {
    padding: 0.5em 0.5em;
    width: 8em !important;
    margin: 0 0.5em;
  }
}
.wpcf7-form .resetbtn {
  letter-spacing: 0;
  text-indent: 0;
  background: #1a2e1f;
}

.wpcf7-form .wpcf7c-btn-back {
  background: #1a2e1f;
}

.contactformarea .form {
  width: 100%;
  margin: 0 auto 0 auto;
}

/* ボタンリスト */
.btnlist {
  list-style: none inside;
  text-align: center;
}

.btnlist li {
  display: inline-block;
}

/* 確認ページ */
input[type=hidden] {
  position: relative;
  z-index: 100;
  display: inline-block;
  background: #fff !important;
  border: #fff solid 2px;
}

div.wpcf7-mail-sent-ok {
  border: 2px solid #398933;
}

div.wpcf7 .ajax-loader {
  width: 0;
  height: 0;
}

@keyframes onAutoFillStart {}
input:-webkit-autofill {
  animation-name: onAutoFillStart;
  -webkit-transition: background-color 50000s ease-in-out 0s;
  transition: background-color 50000s ease-in-out 0s;
}

input:-webkit-autofill-selected {
  animation-name: onAutoFillStart;
  -webkit-transition: background-color 50000s ease-in-out 0s;
  transition: background-color 50000s ease-in-out 0s;
}

input:-internal-autofill-selected {
  background-color: rgba(232, 240, 254, 0) !important;
}

.wpcf7-form {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 2em 3em 2em 0em;
}

@media screen and (max-width: 480px) {
  .wpcf7-form {
    padding: 2em 3em 2em 2em;
  }
}
.wpcf7-form p, .wpcf7-form ul {
  position: relative;
  z-index: 2;
}

.wpcf7-form fieldset {
  border: none;
  color: #1a2e1f;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 0 2em 8.5em;
}

@media screen and (max-width: 480px) {
  .wpcf7-form fieldset {
    padding: 0 0 2em 0em;
  }
}
.wpcf7-form fieldset legend {
  display: contents;
  font-weight: 700;
}

.wpcf7-form fieldset p {
  display: contents;
}

@media screen and (max-width: 768px) {
  .wpcf7-form fieldset p .wpcf7-form-control {
    display: flex;
    flex-direction: column;
    margin-top: -2.2em;
    padding: 0 0 0 7.5em;
    line-height: 1em;
  }
}
.formbg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  background: #fff;
  z-index: 1;
  border-radius: 1em;
}

/* チェックボックス・ラジオボタン */
span.wpcf7-list-item {
  display: inline-block;
  margin: 0 0 0 0;
  padding: 0.3em;
}

span.wpcf7-list-item input[type=radio] + span,
span.wpcf7-list-item input[type=checkbox] + span {
  padding-right: 1em;
  font-size: 1em;
}

span.wpcf7-list-item:last-child input[type=radio] + span,
span.wpcf7-list-item:last-child input[type=checkbox] + span {
  padding-right: 0;
}

input[type=radio],
input[type=checkbox] {
  position: relative;
  cursor: pointer;
  line-height: 1em;
}

input[type=radio].wpcf7c-conf,
input[type=checkbox].wpcf7c-conf {
  display: none;
}

input[type=radio].wpcf7c-conf + span,
input[type=checkbox].wpcf7c-conf + span {
  display: none;
}

.wpcf7-list-item-label {
  cursor: pointer;
  line-height: 1em;
}

.wpcf7c-elm-step2.bdstep2 {
  display: block;
  width: 100%;
  border-bottom: #398933 solid 1px;
}

/* エラーメッセージ */
.wpcf7-not-valid-tip {
  color: #1a2e1f;
  font-weight: 700;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: #398933;
  background: #1a2e1f;
  color: #398933;
  font-weight: 700;
}

/* 送信済メッセージ */
div.wpcf7-mail-sent-ok {
  border: 2px solid #398933;
}

#wpcf7cpcnf {
  position: relative !important;
  display: flex;
  flex-direction: column-reverse;
}

#wpcf7cpcnf table {
  padding: 5em;
  display: flex;
  flex-direction: column;
}

#wpcf7cpcnf table tr {
  border-bottom: solid black 0.75px;
  margin-bottom: 3em;
}

@media screen and (max-width: 480px) {
  #wpcf7cpcnf table tr {
    display: flex;
    flex-direction: column;
  }
}
#wpcf7cpcnf table tr th {
  width: -moz-max-content;
  width: max-content;
  padding: 0 2em 0 0;
}

#wpcf7cpcnf table tr th p {
  width: -moz-max-content;
  width: max-content;
}

#wpcf7cpcnf .wpcf7cp-btns {
  display: flex;
  justify-content: center;
  padding: 0 0 8em 0;
  position: relative;
}

#wpcf7cpcnf .wpcf7cp-btns::before {
  content: "この画面は確認画面です。「この内容で送信」ボタンを押すとお問い合わせが完了し、メールが送られます。";
  position: absolute;
  bottom: 0em;
  width: 80%;
  font-size: 1.25em;
  color: red;
}

#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-submit-btn {
  width: 11em !important;
}

@media screen and (max-width: 480px) {
  #wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-submit-btn {
    width: 10em !important;
  }
}
#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-submit-btn {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  box-sizing: border-box;
  padding: 0.5em 1em;
  display: flex;
  text-align: center;
  justify-content: center;
  transition: 0.3s ease;
  backface-visibility: hidden;
  border: none;
  background: #398933;
  border: solid 1px #398933;
  color: white;
}

#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-submit-btn:hover {
  cursor: pointer;
  background-color: white;
  color: #398933;
}

#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-edit-btn {
  width: 11em !important;
}

@media screen and (max-width: 480px) {
  #wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-edit-btn {
    width: 10em !important;
  }
}
#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-edit-btn {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  box-sizing: border-box;
  padding: 0.5em 1em;
  display: flex;
  text-align: center;
  justify-content: center;
  transition: 0.3s ease;
  backface-visibility: hidden;
  border: none;
  background: #6f7272;
  border: solid 1px #6f7272;
  color: white;
}

#wpcf7cpcnf .wpcf7cp-btns .wpcf7cp-cfm-edit-btn:hover {
  cursor: pointer;
  background-color: white;
  color: #6f7272;
}

.wpcf7cp-form-hide {
  display: none !important;
}

/* =======================================================================================================================
　　　　　　　　　ヘッダー
======================================================================================================================= */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: auto;
  width: 100%;
  z-index: 90;
  background: #ebeee9;
  box-shadow: 0 0.5em 1em 0 rgba(0, 0, 0, 0.2);
}

header .header-nav {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: space-between;
  height: 4.8em;
  padding: 0 1.65em;
}

@media screen and (min-width: 769px) {
  header .header-nav {
    height: 4.4em;
    padding: 0 2.5em;
  }
}
header .header-nav {
  /* ロゴ ------------------------------------------- */
}

header .header-nav .logo {
  display: block;
}

header .header-nav .logo img {
  width: auto;
  height: 2.65em;
  display: block;
}

@media screen and (min-width: 769px) {
  header .header-nav .logo img {
    height: 2.2em;
  }
}
header .header-nav {
  /* PC用ナビ ------------------------------------------- */
}

header .header-nav .header-pc-nav {
  display: none;
}

@media screen and (min-width: 769px) {
  header .header-nav .header-pc-nav {
    display: flex;
    align-items: center;
    gap: 1.6em;
  }
}
header .header-nav .header-pc-nav .tel {
  font-size: 0.85em;
  line-height: 1.3em;
  text-align: right;
}

header .header-nav .header-pc-nav .tel .header-tel-num {
  display: block;
  font-size: 1.7em;
  font-weight: 700;
  color: #1a2e1f;
  letter-spacing: 0;
}

header .header-nav .header-pc-nav .tel .header-tel-num a {
  color: #1a2e1f;
}

header .header-nav .header-pc-nav .btn-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #398933;
  color: #fff;
  font-weight: 700;
  font-size: 0.95em;
  border-radius: 999px;
  padding: 0.9em 1.6em;
  white-space: nowrap;
  transition: 0.3s ease;
  backface-visibility: hidden;
}

header .header-nav .header-pc-nav .btn-header-cta:hover {
  opacity: 0.85;
  color: #fff;
}

/* ヘッダー分の余白確保 */
#wrapper {
  padding-top: 3.6em;
}

@media screen and (min-width: 769px) {
  #wrapper {
    padding-top: 4.4em;
  }
}
@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* =======================================================================================================================
　　　　　　　　　トップページメインカラム
======================================================================================================================= */
/*共通パーツここから*/
/* スクロールでふわっと表示（js/fadeup.js 連動）
   ※ JSが読み込めなかった場合でもコンテンツが非表示のままにならないよう、
   　 <html class="js"> が付いている（＝JS動作環境）時だけ初期状態を非表示にしています ------------------------------------------- */
html.js .fadeUpTrigger {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

html.js .fadeUpTrigger.fadeUp {
  opacity: 1;
  transform: translateY(0);
}

/* ボタン（丸ピル型） ------------------------------------------- */
.btn-pill--green {
  position: relative;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 22rem;
  margin: 0 auto;
  padding: 1.1rem 1.5rem;
  border-radius: 999px;
  border: 0.12rem solid #1a2e1f;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.05rem;
  text-align: center;
  transition: 0.3s ease;
  backface-visibility: hidden;
}

.btn-pill--green:hover {
  opacity: 0.85;
}

.btn-pill--green {
  background: #398933;
  border-color: #398933;
  color: #fff;
}

.btn-pill--green:hover {
  color: #fff;
}

.btn-pill--orange {
  position: relative;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 22rem;
  margin: 0 auto;
  padding: 1.1rem 1.5rem;
  border-radius: 999px;
  border: 0.12rem solid #1a2e1f;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.05rem;
  text-align: center;
  transition: 0.3s ease;
  backface-visibility: hidden;
}

.btn-pill--orange:hover {
  opacity: 0.85;
}

.btn-pill--orange {
  background: #e29e30;
  border-color: #e29e30;
  color: #fff;
}

.btn-pill--orange:hover {
  color: #fff;
}

/* セクション共通見出し（グリーンの帯） ------------------------------------------- */
.block-title, body .flow .flow-title {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #398933;
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1em;
  padding: 0.9rem 1rem;
  border-radius: 0.6rem;
  letter-spacing: 0.08rem;
}

/*共通パーツここまで*/
body main {
  display: block;
  overflow: hidden;
}

body {
  /* =======================================================================================================================
  　　　　　　　　　メインビジュアル
  ======================================================================================================================= */
}

body .mv {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #398933;
  padding-bottom: 3rem;
  overflow: hidden;
}

@media screen and (min-width: 769px) {
  body .mv {
    padding-bottom: 4rem;
  }
}
body .mv .mv-head {
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
  text-align: left;
}

@media screen and (min-width: 769px) {
  body .mv .mv-head {
    padding-top: 2.6rem;
    max-width: 62rem;
    margin: 0 auto;
  }
}
body .mv .mv-head .mv-catch {
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3em;
  margin-bottom: 0.05rem;
}

body .mv .mv-head .mv-logo {
  color: #fff;
  font-size: 2.75rem;
  font-weight: 600;
  line-height: 1.15em;
  letter-spacing: 0.02rem;
}

@media screen and (min-width: 769px) {
  body .mv .mv-head .mv-logo {
    font-size: 3.4rem;
  }
}
@media screen and (min-width: 769px) {
  body .mv .mv-body {
    max-width: 62rem;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 2rem;
  }
}
body .mv .mv-panel-wrap {
  position: relative;
}

@media screen and (min-width: 769px) {
  body .mv .mv-panel-wrap {
    flex: 1 1 56%;
  }
}
body .mv .mv-panel {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #fff;
  border: 0.14rem solid #1a2e1f;
  border-radius: 1.6rem;
  padding: 1.6rem 8.5rem 3.4rem 1.6rem;
}

@media screen and (min-width: 769px) {
  body .mv .mv-panel {
    padding: 2.2rem 2.2rem 2.2rem 2.2rem;
  }
}
body .mv .mv-panel .mv-panel-text {
  color: #398933;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.4em;
}

body .mv .mv-panel .mv-panel-price {
  color: #e29e30;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 1.3em;
  display: inline-block;
  margin-top: 0.1rem;
}

body .mv .mv-panel .mv-panel-price .mv-panel-deco {
  display: block;
  width: 8.4rem;
  max-width: 100%;
  height: auto;
  margin-top: 0.1rem;
}

body .mv {
  /* パネルの枠にスタッフ・商品画像が重なるように配置 ------------------------------------------- */
}

body .mv .mv-char {
  position: absolute;
  right: -0.6rem;
  bottom: -1.2rem;
  width: 46%;
  z-index: 3;
}

body .mv .mv-char img {
  max-width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 769px) {
  body .mv .mv-char {
    position: static;
    flex: 1 1 40%;
    width: auto;
    display: flex;
    align-items: flex-end;
  }
  body .mv .mv-char img {
    max-width: 18rem;
    margin: 0 auto;
  }
}
body .mv .mv-items {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  margin-top: -4.2rem;
  padding-top: 4.2rem;
}

body .mv .mv-items img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 769px) {
  body .mv .mv-items {
    max-width: 62rem;
    margin: 2rem auto 0;
    padding-top: 0;
  }
}
body .mv .mv-cta {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  position: relative;
  margin-top: 0.4rem;
  padding: 1.4rem 0 0.6rem;
}

@media screen and (min-width: 769px) {
  body .mv .mv-cta {
    max-width: 62rem;
    margin: 2rem auto 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }
}
body .mv .mv-cta {
  /* リサイクルマークの背景装飾 */
}

body .mv .mv-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 130%;
  max-width: 40rem;
  height: 100%;
  background: url("assets/buzzreuse/images/main-back01.webp") no-repeat center/contain;
  z-index: 0;
  pointer-events: none;
}

body .mv .mv-cta .mv-cta-copy {
  position: relative;
  z-index: 1;
  display: block;
  width: 92%;
  max-width: 28rem;
  height: auto;
  margin: 0 auto;
}

body .mv .mv-cta .mv-badges {
  position: relative;
  z-index: 1;
  display: block;
  width: 62%;
  max-width: 18rem;
  height: auto;
  margin: 0.6rem auto 0;
}

@media screen and (min-width: 769px) {
  body .mv .mv-cta .mv-badges {
    margin: 0;
  }
}
body {
  /* =======================================================================================================================
  　　　　　　　　　REUSE NEWS
  ======================================================================================================================= */
}

body .news {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #ffffff;
  text-align: center;
  overflow: hidden;
  padding-top: 4rem;
  padding-bottom: 2.6rem;
}

@media screen and (min-width: 769px) {
  body .news {
    padding-top: 5rem;
    padding-bottom: 3rem;
  }
}
body .news::before {
  content: "";
  position: absolute;
  top: 4.4rem;
  left: 50%;
  transform: translateX(-50%);
  width: 15rem;
  height: 12.5rem;
  background: url(assets/buzzreuse/images/main-back01.webp) no-repeat center/contain;
  pointer-events: none;
  z-index: 0;
}

@media screen and (min-width: 769px) {
  body .news::before {
    top: 5rem;
    width: 20rem;
    height: 16.7rem;
  }
}
body .news .innerbox {
  position: relative;
  z-index: 1;
}

body .news .news-title {
  line-height: 0;
}

body .news .news-title img {
  display: block;
  width: 14.25rem;
  max-width: 70%;
  height: auto;
  margin: 0 auto;
}

body .news .news-body {
  margin-top: 1.2rem;
  font-size: 0.95rem;
  line-height: 1.7em;
  color: #398933;
  font-weight: 700;
}

body .news .cta-buttons {
  margin-top: 1.3rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

body .news .cta-buttons .btn-pill--green,
body .news .cta-buttons .btn-pill--orange {
  width: auto;
  flex: 1 1 auto;
  max-width: 15rem;
  border: 0.18rem solid #1a2e1f;
}

body {
  /* =======================================================================================================================
  　　　　　　　　　買取品目（サービス紹介）
  ======================================================================================================================= */
}

body .service {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  position: relative;
  background: #398933;
  overflow: hidden;
  padding-top: 3.2rem;
  padding-bottom: 2.5rem;
}

body .service::before {
  content: "";
  position: absolute;
  top: 0.8rem;
  right: -2.7rem;
  width: 10.8rem;
  height: 10.8rem;
  background: url(assets/buzzreuse/images/section-02-back.svg) no-repeat center/contain;
  pointer-events: none;
  z-index: 0;
}

body .service .innerbox {
  position: relative;
  z-index: 1;
}

body .service .service-title {
  text-align: center;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5em;
}

body .service .service-title em {
  display: inline;
  font-style: normal;
  color: #e29e30;
}

body .service .category-list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  list-style: none inside;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 1.7rem;
}

body .service .category-list li {
  width: 31%;
  text-align: center;
  margin-bottom: 1.45rem;
}

@media screen and (min-width: 769px) {
  body .service .category-list li {
    width: 14.5%;
  }
}
body .service .category-list .category-photo {
  position: relative;
  box-sizing: border-box;
}

body .service .category-list .category-photo::before {
  content: "";
  display: block;
  padding-top: 100%;
}

body .service .category-list .category-photo {
  border-radius: 50%;
  overflow: hidden;
  border: 0;
}

body .service .category-list .category-photo img {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
  width: 100%;
  height: 100%;
  font-family: "object-fit: cover; object-position: 50% 50%;";
}

body .service .category-list p {
  margin-top: 0.6rem;
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.35;
}

body .service .service-note {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #fff;
  border: 0.2rem solid #1a2e1f;
  border-radius: 1.6rem;
  padding: 1.55rem 1.35rem;
  position: relative;
  margin-top: 0.25rem;
}

@media screen and (min-width: 769px) {
  body .service .service-note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 2rem 2.5rem;
  }
}
body .service .service-note .service-note-text {
  color: #398933;
  font-weight: 600;
  font-size: 1.15rem;
  line-height: 1.55em;
  padding-right: 7.6rem;
}

@media screen and (min-width: 769px) {
  body .service .service-note .service-note-text {
    padding-right: 11rem;
    flex: 1;
  }
}
body .service .service-note .service-note-char {
  position: absolute;
  right: 0.05rem;
  bottom: -2.9rem;
  width: 9rem;
  z-index: 2;
}

body .service .service-note .service-note-char img {
  max-width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 769px) {
  body .service .service-note .service-note-char {
    position: absolute;
    right: 1rem;
    bottom: -4rem;
    width: 11rem;
    margin-left: 0;
  }
}
@media screen and (min-width: 769px) {
  body .service {
    padding-top: 5rem;
    padding-bottom: 4rem;
  }
  body .service::before {
    width: 15rem;
    height: 15rem;
    right: -3rem;
    top: 1.2rem;
  }
}
body {
  /* =======================================================================================================================
  　　　　　　　　　BUZZ REUSEについて
  ======================================================================================================================= */
}

body .about {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #e29e30;
}

body .about .about-brand {
  color: #398933;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.05rem;
}

body .about .about-title {
  color: #1a2e1f;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.5em;
  margin-top: 0.3rem;
}

body .about .about-panel {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #fff;
  border: 0.14rem solid #1a2e1f;
  border-radius: 1.6rem;
  padding: 1.6rem;
  margin-top: 1.6rem;
}

@media screen and (min-width: 769px) {
  body .about .about-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 2rem;
    padding: 2.2rem;
  }
}
body .about .about-panel .about-img {
  width: 60%;
  margin: 0 auto;
}

body .about .about-panel .about-img img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 769px) {
  body .about .about-panel .about-img {
    width: 30%;
    flex: none;
    margin: 0;
  }
}
body .about .about-panel .about-text {
  margin-top: 1.2rem;
  font-size: 0.95rem;
  line-height: 1.9em;
  color: #1a2e1f;
}

@media screen and (min-width: 769px) {
  body .about .about-panel .about-text {
    margin-top: 0;
    flex: 1;
  }
}
body {
  /* =======================================================================================================================
  　　　　　　　　　買取の流れ
  ======================================================================================================================= */
}

body .flow {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #ffffff;
  padding-top: 2.8rem;
  padding-bottom: 2.86rem;
}

body .flow .innerbox {
  padding-left: 2rem;
  padding-right: 2rem;
}

@media screen and (min-width: 769px) {
  body .flow .innerbox {
    max-width: 48rem;
    margin: 0 auto;
  }
}
body .flow .flow-title {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #398933;
  color: #fff;
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1em;
  padding: 0.58rem 1rem;
  border-radius: 0.85rem;
  letter-spacing: 0.08rem;
}

body .flow .flow-sub {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 1rem;
  padding-bottom: 0;
  line-height: 1;
}

body .flow .flow-sub .flow-sub-em {
  font-size: 1.75rem;
  font-weight: 900;
  color: #398933;
  line-height: 1;
  padding-bottom: 0.15rem;
}

body .flow .flow-sub .flow-sub-step {
  display: block;
  width: 10.23rem;
  height: auto;
}

body .flow .flow-list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  list-style: none inside;
  margin-top: 1.7rem;
  padding-left: 0;
  counter-reset: flow;
}

body .flow .flow-list::before {
  display: none;
}

body .flow .flow-list > li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin-bottom: 1.15rem;
  padding-left: 3.45rem;
}

body .flow .flow-list > li:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 0.89rem;
  top: 1.65rem;
  height: calc(100% + 1.15rem);
  width: 0.14rem;
  background: #1a2e1f;
}

body .flow .flow-list > li:last-child {
  margin-bottom: 0;
}

body .flow .flow-list .flow-num {
  position: absolute;
  z-index: 2;
  left: -0.76rem;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.3rem;
  height: 3.3rem;
  border-radius: 50%;
  background: #398933;
  color: #fff;
  font-size: 1.55rem;
  line-height: 1;
  font-weight: 600;
}

body .flow .flow-list .flow-card {
  position: relative;
  box-sizing: border-box;
  width: calc(100% + 0.08rem);
  overflow: visible;
  background: #fff;
  border: 0.18rem solid #1a2e1f;
  border-radius: 1.05rem;
  padding: 1.35rem 1rem 1rem 1.7rem;
}

body .flow .flow-list .flow-card h3 {
  position: relative;
  z-index: 2;
  font-size: 1.65rem;
  font-weight: 600;
  color: #398933;
  line-height: 1.25em;
  letter-spacing: 0.02em;
}

body .flow .flow-list .flow-card .flow-tag {
  display: inline-block;
  background: #e29e30;
  color: #fff;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.4rem 0.85rem;
  border-radius: 0.9rem;
  margin-left: 0.45rem;
  vertical-align: 0.18rem;
  white-space: nowrap;
}

body .flow .flow-list .flow-card p {
  position: relative;
  z-index: 2;
  margin-top: 0.55rem;
  padding-bottom: 0;
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.55em;
  color: #1a2e1f;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

body .flow .flow-list .flow-card .flow-icon {
  position: absolute;
  z-index: 1;
  margin: 0;
}

body .flow .flow-list .flow-card .flow-icon img {
  width: 100%;
  height: auto;
  display: block;
}

body .flow .flow-list > li:nth-child(1) .flow-card {
  height: 10.17rem;
}

body .flow .flow-list > li:nth-child(1) .flow-icon {
  width: 11.62rem;
  right: 0.27rem;
  bottom: 0.46rem;
}

body .flow .flow-list > li:nth-child(1) .flow-card p {
  max-width: 10.2rem;
}

body .flow .flow-list > li:nth-child(2) .flow-card {
  height: 11.325rem;
}

body .flow .flow-list > li:nth-child(2) .flow-icon {
  width: 12.95rem;
  right: 0.39rem;
  bottom: 0.76rem;
}

body .flow .flow-list > li:nth-child(2) .flow-card p {
  max-width: 11.3rem;
}

body .flow .flow-list > li:nth-child(3) .flow-card {
  height: 8.59rem;
}

body .flow .flow-list > li:nth-child(3) .flow-icon {
  width: 9.91rem;
  right: 1.16rem;
  bottom: -0.08rem;
}

body .flow .flow-list > li:nth-child(3) .flow-card p {
  max-width: 12rem;
}

body .flow .flow-list > li:nth-child(4) .flow-card {
  height: 8.59rem;
}

body .flow .flow-list > li:nth-child(4) .flow-icon {
  width: 12.31rem;
  right: -1.32rem;
  bottom: -0.01rem;
}

body .flow .flow-list > li:nth-child(4) .flow-card p {
  max-width: 12.7rem;
}

body .flow .flow-list > li:nth-child(5) .flow-card {
  height: 10.6rem;
}

body .flow .flow-list > li:nth-child(5) .flow-icon {
  width: 9.36rem;
  right: -0.34rem;
  bottom: 1.22rem;
}

body .flow .flow-list > li:nth-child(5) .flow-card p {
  max-width: 13.2rem;
}

body .flow .flow-note {
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 0.05rem;
  width: calc(100% + 0.3rem);
  margin-left: -0.15rem;
  background: #e29e30;
  border: 0.18rem solid #1a2e1f;
  border-radius: 1rem;
  padding: 0.55rem;
  margin-top: 1.71rem;
  height: 6.84rem;
}

body .flow .flow-note .flow-note-icon {
  flex: none;
  width: 6.8rem;
  transform: translateY(0.17rem);
}

body .flow .flow-note .flow-note-icon img {
  width: 100%;
  height: auto;
  display: block;
}

body .flow .flow-note p {
  flex: 1;
  padding-bottom: 0;
  color: #1a2e1f;
  font-size: 1rem;
  line-height: 1.65em;
  font-weight: 700;
  letter-spacing: 0.01em;
}

/* =======================================================================================================================
　　　　　　　　　スマートフォンナビゲーション
======================================================================================================================= */
/* ================= 格納ナビゲーション ============================================================ */
.hm_btn, .hm_menu_wrap {
  display: block;
}

@media screen and (min-width: 769px) {
  .hm_btn, .hm_menu_wrap {
    display: none !important;
  }
}
.hm_menu_check { /* チェックボックスを隠す */
  display: none;
}

/* -------------------------- メニューボタン ------------------------------------------- */
.hm_btn {
  display: flex;
  width: 3em;
  height: 1.2em;
  cursor: pointer;
  border-left: transparent solid 1.8em;
  border-right: transparent solid 1.8em;
  border-top: transparent solid 3em;
  border-bottom: transparent solid 1.5em;
  position: fixed;
  top: 0;
  left: auto;
  right: 0;
  bottom: auto;
  background: transparent;
  cursor: pointer;
  z-index: 98;
}

@media screen and (max-width: 768px) {
  .hm_btn {
    display: flex !important;
  }
}
.hm_btn {
  justify-content: flex-end;
}

.hm_btn::before {
  width: 2em;
  height: 0.13em;
  background: #1a2e1f;
  display: block;
  content: "";
  position: absolute;
  transition: background 0.2s linear, box-shadow 0.2s linear, transform 0.2s 0.2s;
}

.hm_btn::after {
  width: 3em;
  height: 0.13em;
  background: #1a2e1f;
  display: block;
  content: "";
  position: absolute;
  transition: background 0.2s linear, box-shadow 0.2s linear, transform 0.2s 0.2s;
}

.hm_btn {
  /*3本線にしたいとき
  	&::before{
  		-webkit-box-shadow: #ffffff 0 0.532em 0;
  		box-shadow: #ffffff 0 0.532em 0;
  	}
  	*/
}

.hm_btn::after {
  bottom: 0;
}

.hm_btn {
  /* 色反転 */
  transition: 1s ease;
}

/* 開閉時のアニメーション */
.hm_menu_check:checked ~ .hm_btn::before {
  width: 3em;
  background: rgba(0, 0, 0, 0);
  box-shadow: #1a2e1f 0 0.532em 0;
  transform: rotate(45deg) translate3d(0.5em, -0.25em, 0);
}

.hm_menu_check:checked ~ .hm_btn::after {
  background: #1a2e1f;
  transform: rotate(-45deg) translate3d(0.5em, -0.25em, 0);
}

/* -------------------------- 格納領域 ------------------------------------------- */
.hm_menu_wrap {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  filter: alpha(opacity=0);
  transition: 0.7s;
  box-sizing: border-box;
  visibility: hidden;
  z-index: 97;
}

.hm_menu_wrap .hm_inner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  -webkit-overflow-scrolling: touch;
  overflow-y: scroll;
}

.hm_menu_wrap .hm_inner .menucontent {
  box-sizing: border-box;
  padding: 0em 1em 3em 1em;
  width: 100%;
  min-height: -moz-fit-content;
  min-height: fit-content;
  position: absolute;
  top: 0;
  left: 100%;
  right: 0;
  bottom: auto;
  left: 0;
  transition: left 1s;
  border: none;
  /* 中身デザイン */
}

/* 開閉時のアニメーション */
.hm_menu_check:checked ~ .hm_menu_wrap {
  opacity: 1;
  filter: alpha(opacity=100);
  visibility: visible;
}

.hm_menu_check:checked ~ .hm_menu_wrap .menucontent {
  font-weight: 500;
  opacity: 1;
  filter: alpha(opacity=100);
  background: rgba(235, 238, 234, 0.98);
  left: 0;
  height: auto;
  min-height: 100vh;
  min-height: calc(var(--vh, 1vh) * 100);
}

.hm_menu_check:checked ~ .hm_menu_wrap .menucontent .logo {
  opacity: 1;
  position: relative;
  display: flex;
  align-items: center;
  padding: 1.6em 0 1.2em;
  cursor: pointer;
}

.hm_menu_check:checked ~ .hm_menu_wrap .menucontent .logo img {
  width: auto;
  height: 2.2em;
  opacity: 1;
}

.hm_menu_check:checked ~ .hm_menu_wrap .menucontent .gnav {
  padding: 0;
  margin-top: 1em;
  opacity: 1;
}

/* メニューリスト */
.main_menu {
  position: relative;
  font-size: 1.85em;
  height: -moz-fit-content;
  height: fit-content;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 0 0 1em 0;
}

.main_menu li {
  color: black;
  position: relative;
  box-sizing: border-box;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  text-align: end;
  margin: 0 0 0 auto;
  padding: 1.2em 0.8em 0 0;
  font-size: 1em;
}

.main_menu li a {
  color: black;
  display: flex;
  justify-content: flex-end;
}

.main_menu li a img {
  width: 0.35em;
}

.main_menu li a {
  /*
  &::after{
  	content: url(/images/ya.svg);
  	vertical-align: middle;
  	width: 1.75em;
  	height: auto;
  	padding: 0 0 0 0.5em;
  	position: relative;
  	left: 0;
  	bottom: 0.2em;
  	transition: all 0.4s ease-out;
  }*/
}

.main_menu li a span {
  position: relative;
  padding: 0 0 0.5em 0;
}

.main_menu li a span::before {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  background: 0 0;
  transition: all 0.4s ease-out;
  content: "";
  width: 102%;
  height: 6px;
  border-bottom: solid 1px;
  border-right: solid 1px;
  transform: skew(45deg);
}

.main_menu li a:hover::after {
  left: 0.2em;
}

.main_menu li a:hover span::before {
  background: currentColor;
  animation: btn-line 0.5s ease-out 0s 1 normal forwards;
}

/* =======================================================================================================================
　　　　　　　　　フッター
======================================================================================================================= */
#footer {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #398933;
  padding: 3em 0 2em;
  position: relative;
  overflow: hidden;
}

#footer .shop-card {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  width: 85%;
  margin: auto;
  background: #fff;
  border-radius: 1.6em;
  padding: 2.5em 1.8em;
  margin-bottom: 2.4em;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media screen and (min-width: 769px) {
  #footer .shop-card {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
    padding: 2.4em;
  }
}
@media screen and (min-width: 769px) {
  #footer .shop-card .shop-card-main {
    flex: 1 1 40%;
  }
}
#footer .shop-card .shop-logo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6em;
  margin-bottom: 2em;
  justify-content: center;
}

#footer .shop-card .shop-logo img {
  width: 12.6em;
  height: auto;
  display: block;
}

#footer .shop-card .shop-logo .shop-logo-txt {
  line-height: 1.3em;
}

#footer .shop-card .shop-logo .shop-logo-txt small {
  display: block;
  font-size: 0.6em;
  font-weight: 700;
  color: #398933;
}

#footer .shop-card .shop-logo .shop-logo-txt strong {
  display: block;
  font-size: 1.3em;
  font-weight: 600;
  color: #398933;
  letter-spacing: 0.02em;
}

#footer .shop-card .shop-info li {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.6em;
  margin-bottom: 0.8em;
  font-size: 0.9rem;
  line-height: 1.6em;
  color: #1a2e1f;
  flex-direction: row;
}

#footer .shop-card .shop-info li .shop-info-icon {
  flex: none;
  width: 1.4em;
  margin-top: 0.15em;
}

#footer .shop-card .shop-info li .shop-info-icon img {
  display: block;
  width: auto;
  height: 100%;
  color: #398933;
}

#footer .shop-card .shop-map {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin-top: 1.4em;
  border-radius: 1em;
  overflow: hidden;
  border: 0.08em solid #dcdcdc;
}

@media screen and (min-width: 769px) {
  #footer .shop-card .shop-map {
    flex: 1 1 55%;
    margin-top: 0;
  }
}
#footer .shop-card .shop-map iframe {
  display: block;
  width: 100%;
  height: 14em;
  border: none;
}

@media screen and (min-width: 769px) {
  #footer .shop-card .shop-map iframe {
    height: 100%;
    min-height: 16em;
  }
}
#footer {
  /* ブランドロゴ下の丸矢印アイコン（見本の半透明の大きい矢印マーク） */
}

#footer .footer-brand {
  position: relative;
  text-align: center;
}

#footer .footer-brand .footer-deco {
  position: absolute;
  top: 50%;
  right: -1.5em;
  transform: translateY(-50%);
  width: 9em;
  height: auto;
  opacity: 0.2;
  pointer-events: none;
  z-index: 0;
}

@media screen and (min-width: 769px) {
  #footer .footer-brand .footer-deco {
    width: 12em;
  }
}
#footer .footer-brand .footer-brand-logo {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.6em;
}

#footer .footer-brand .footer-brand-logo img {
  width: 17.4em;
  height: auto;
  display: block;
}

#footer .footer-links {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1em;
  margin-top: 1.4em;
  font-size: 0.85rem;
}

#footer .footer-links a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  font-size: 1rem;
}

#footer .footer-links .footer-links-sep {
  color: rgba(255, 255, 255, 0.6);
}

.copyright {
  display: block;
  text-align: center;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.78rem;
  line-height: 1.6em;
  margin-top: 1.2em;
}

/* =======================================================================================================================
　　　　　　　　　Q&A
======================================================================================================================= */
.faq-ctt .sec {
  /* 背景色を交互にする */
  background: #ebeee9;
}

.faq-ctt .sec:first-child {
  padding-top: 0;
}

.faq-ctt .sec .innerbox {
  /* 見出し ------------------------------------------- */
}

.faq-ctt .sec .innerbox .faq-heading {
  position: relative;
  margin-bottom: 2em;
}

.faq-ctt .sec .innerbox .faq-heading .faq-lead {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: #398933;
  margin-bottom: 0.3em;
}

.faq-ctt .sec .innerbox .faq-heading h2 {
  font-size: 1.9rem;
  font-weight: 700;
  color: #1a2e1f;
  line-height: 1.3em;
}

.faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
  position: absolute;
  top: -0.3em;
  right: 0;
  font-size: 2.6rem;
  font-weight: 600;
  color: #dcdcdc;
  opacity: 0.6;
  z-index: 0;
}

@media screen and (min-width: 769px) {
  .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    display: none;
  }
}
.faq-ctt .sec .innerbox .faq-heading .faq-people {
  display: block;
  width: 11em;
  margin: 1em auto 0;
}

.faq-ctt .sec .innerbox .faq-heading .faq-people img {
  width: 100%;
  height: auto;
}

.faq-ctt .sec .innerbox {
  /* -------------------------- Q&Aリスト（薄いグリーングレーのパネルで囲む） ------------------------------------------- */
}

.faq-ctt .sec .innerbox ul.qa_list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  list-style: none inside;
  background: #dbe2da;
  border-radius: 1.8em;
  padding: 1.6em 1em;
}

@media screen and (min-width: 769px) {
  .faq-ctt .sec .innerbox ul.qa_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    padding: 2em;
    gap: 0 4%;
  }
}
.faq-ctt .sec .innerbox ul.qa_list li.qa_set {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin-bottom: 1em;
  border-radius: 1.2em;
  overflow: hidden;
  z-index: 1;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 769px) {
  .faq-ctt .sec .innerbox ul.qa_list li.qa_set {
    width: 48%;
  }
}
.faq-ctt .sec .innerbox ul.qa_list li.qa_set label {
  cursor: pointer;
  display: block;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set {
  /* テキスト ------------------------------------------- */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  /* Q */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6em;
  padding: 1.2em;
  text-indent: -1.9em;
  padding-left: 3.45em;
  padding-right: 3.6em;
  background: #ffffff;
  color: #1a2e1f;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::before {
  content: "Q";
  font-weight: 900;
  font-size: 1.5em;
  padding-right: 0.5em;
  color: #e29e30;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question {
  /* ＋／－ アイコン（開閉時はアイコンだけ塗りつぶしが変わる） */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::after {
  display: block;
  content: "＋";
  font-size: 1.1em;
  font-weight: 700;
  line-height: 1.6em;
  width: 1.8em;
  height: 1.8em;
  text-indent: 0.3em;
  box-sizing: border-box;
  position: absolute;
  top: auto;
  left: 1em;
  right: auto;
  bottom: auto;
  top: 50%;
  margin-top: -0.9em;
  transition: 1s ease;
  backface-visibility: hidden;
  border-radius: 50%;
  border: #398933 solid 0.12em;
  background: transparent;
  color: #398933;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt {
  /* A */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  height: auto;
  max-height: 0;
  overflow: hidden;
  padding: 0;
  transition: 1s ease;
  backface-visibility: hidden;
  background: #ffffff;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer span {
  display: block;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 0 1.5em 1.5em;
  text-indent: -1.8em;
  padding-left: 3.8em;
  font-size: 0.9rem;
  line-height: 1.6em;
  color: #4f6156;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer span::before {
  content: "A";
  font-size: 1.3em;
  font-weight: 900;
  padding-right: 0.5em;
  color: #398933;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set {
  /* 開閉動作 -------------------------------------------
     input（.qa_open）と .qa_txt は兄弟要素ではなく label の中に .qa_txt がネストしているため、
     「.qa_open:checked + .qa_txt」ではマッチしない。
     「.qa_open:checked + label」（隣接兄弟）→ その中の .qa_txt という子孫セレクタで指定する。 */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open {
  position: absolute;
  top: 0;
  left: 0;
  right: auto;
  bottom: auto;
  z-index: 10;
  opacity: 0;
  filter: alpha(opacity=0);
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt {
  /* Q（背景・文字色は変えず、＋／－アイコンだけ切り替える） */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt .question::after {
  content: "－";
  background: #398933;
  border-color: #398933;
  color: #fff;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt {
  /* A */
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt p.answer {
  max-height: 50em;
}

.faq-ctt .sec .innerbox {
  /* -------------------------- リンクボタン ------------------------------------------- */
}

.faq-ctt .sec .innerbox .btn {
  padding-top: 2em;
}

/* =======================================================================================================================
　　　　　　　　　フリーページ（カスタムフィールド）
======================================================================================================================= */
.sec {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 6em 0;
  position: relative;
  width: 87.5%;
}

@media screen and (max-width: 768px) {
  .sec {
    width: 100%;
  }
}
@media screen and (max-width: 480px) {
  .sec {
    width: 100%;
  }
}
.sec .innerbox {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  z-index: 10;
}

@media screen and (max-width: 480px) {
  .sec {
    padding: 0em 0 6em 0;
  }
}
.freepage-ctt,
.contactpage-ctt {
  padding-top: 0;
  padding-bottom: 0;
}

.freepage-ctt .sec,
.contactpage-ctt .sec {
  padding-bottom: calc(3vw + 2.33em);
}

/* 最大幅1500px */
.max1500px {
  max-width: 1500px;
  margin: 0 auto;
}

/* =============== 背景色 ========================================================= */
.sec_bg1 {
  background: white;
}

@media screen and (min-width: 1351px) {
  .sec_bg1 {
    padding-top: 4em;
  }
}
.sec_bg2 {
  background: #ffffff;
}

.sec_bg3 {
  background-color: #dcdcdc;
}

.sec_bg3 a {
  color: #398933;
}

.sec_bg4 {
  padding: 0 !important;
  padding-bottom: 0 !important;
  color: #ffffff;
}

.sec_bg4 .innerbox {
  padding: 0;
}

/* 同じ背景色のセクションが続いたときに余白をなくす */
.sec_bg1 + .sec_bg1, .sec_bg2 + .sec_bg2, .sec_bg3 + .sec_bg3 {
  padding-top: 0;
}

.wrap-img-history {
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
}

.wrap-img-history img {
  opacity: 0.12;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: 50% 50%;
  object-position: 50% 50%;
  width: 100%;
  height: 100%;
  font-family: "object-fit: cover; object-position: 50% 50%;";
  object-fit: cover;
  object-position: 50% 50%;
  height: 100vh;
}

@media screen and (max-width: 480px) {
  .wrap-img-history img {
    opacity: 0.12;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 50% 50%;
    object-position: 34% 50%;
    width: 100%;
    height: 100%;
    font-family: "object-fit: cover; object-position: 50% 50%;";
    object-fit: cover;
    -o-object-position: 34% 50%;
       object-position: 34% 50%;
    height: 124vh;
  }
}
/* =============== テキスト ========================================================= */
/* ------------ 見出し -------------------------------- */
.parts-h3 {
  text-align: center;
  color: #1a2e1f;
  font-size: 2.5em;
  font-weight: 700;
  line-height: 1.5em;
  padding: 2em 0;
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
}

@media screen and (max-width: 768px) {
  .parts-h3 {
    font-size: 1.8em;
  }
}
.sec_bg3 .parts-h3 {
  color: #ffffff;
}

.parts-h4 {
  font-size: 1.5em;
  font-weight: 500;
  line-height: 1.5em;
  padding-top: 3em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .parts-h4 {
    font-size: 1.3em;
  }
}
/* 大きな数字 */
.lnmb {
  display: block;
  font-size: 0.65em;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1em;
  padding-bottom: 0.25em;
}

.sec_bg3 .lnmb {
  color: #ffffff;
}

/* 左寄せ・幅指定中央配置テキスト */
.centerbox {
  max-width: 800px;
  margin: 0 auto;
}

/* ------------ 段落 -------------------------------- */
.freepage-ctt {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.freepage-ctt .sec p {
  padding: 0 0 4em 0;
  font-weight: 400;
}

@media screen and (max-width: 768px) {
  .freepage-ctt .sec p {
    padding: 0 0 4em 0;
  }
}
.freepage-ctt .sec p {
  /* 余白小さめ */
}

.freepage-ctt .sec p.btmmin {
  padding-bottom: 2em;
}

.freepage-ctt .sec p {
  /* 強調 */
}

.freepage-ctt .sec p.parts-copy {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
  color: #1a2e1f;
  font-size: 2em;
  font-weight: 700;
  line-height: 1.5em;
  padding-bottom: 0.5em;
}

@media screen and (max-width: 768px) {
  .freepage-ctt .sec p.parts-copy {
    font-size: 1.5em;
  }
}
.freepage-ctt .sec p.parts-copy strong {
  font-size: 2em;
}

.freepage-ctt .sec p.parts-copy span {
  color: #398933;
}

.freepage-ctt .sec p {
  /* 注釈 */
}

.freepage-ctt .sec p.note {
  opacity: 0.6;
  font-size: 0.9em;
  line-height: 1.7em;
  padding-bottom: 4em;
  padding-left: 1.2em;
  text-indent: -0.65em;
  width: 100%;
  max-width: 1500px;
  box-sizing: border-box;
  margin: 0 auto;
}

.freepage-ctt .sec p.note::before {
  display: inline-block;
  content: "※";
  padding-right: 0.2em;
}

.freepage-ctt .sec .imgtxt_txtbox p:last-child {
  padding-bottom: 0;
  font-weight: 400;
}

/* やや小さめ強調 */
.strong {
  font-size: 1.3em;
  font-weight: 700;
  line-height: 2em;
}

.imgtxt_txtbox .parts-copy {
  color: #1a2e1f !important;
}

/* =============== ブロック ========================================================= */
/* ------------ 背景色つきテキストボックス -------------------------------- */
.bbox {
  width: 100%;
  box-sizing: border-box;
  padding: 3.57em;
  background: #398933;
  color: #1a2e1f;
  margin-bottom: 5em;
}

@media screen and (max-width: 768px) {
  .bbox {
    padding: 1.5em;
  }
}
.bbox a {
  color: #1a2e1f;
}

.bbox h3 {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.5em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .bbox h3 {
    font-size: 1.5em;
  }
}
.bbox p {
  padding-bottom: 0;
}

/* =============== 画像 ========================================================= */
.parts-100img {
  width: 100%;
  position: relative;
  padding-bottom: 4em;
  text-align: center;
}

.parts-100img.center {
  text-align: center;
}

.parts-100img.left {
  text-align: left;
}

.parts-100img.right {
  text-align: right;
}

.parts-100img img {
  max-width: inherit;
  height: auto;
}

@media screen and (max-width: 768px) {
  .parts-100img img {
    width: 100%;
  }
}
/* ------------ 画像＋テキスト -------------------------------- */
.box_imglefttxt,
.box_imgrighttxt {
  width: 100%;
  position: relative;
  overflow: hidden;
  zoom: 1;
  padding: 0 2em;
  padding-bottom: 4em;
}

@media screen and (max-width: 768px) {
  .box_imglefttxt,
  .box_imgrighttxt {
    padding: 0;
  }
}
.box_imglefttxt .imgtxt_imgbox,
.box_imgrighttxt .imgtxt_imgbox {
  width: 40%;
  position: relative;
  padding-bottom: 1em;
}

@media screen and (max-width: 1350px) {
  .box_imglefttxt .imgtxt_imgbox,
  .box_imgrighttxt .imgtxt_imgbox {
    width: 45%;
  }
}
@media screen and (max-width: 768px) {
  .box_imglefttxt .imgtxt_imgbox,
  .box_imgrighttxt .imgtxt_imgbox {
    width: 50%;
  }
}
@media screen and (max-width: 480px) {
  .box_imglefttxt .imgtxt_imgbox,
  .box_imgrighttxt .imgtxt_imgbox {
    width: 100%;
    padding-bottom: 2.5em;
  }
}
.box_imglefttxt .imgtxt_imgbox,
.box_imgrighttxt .imgtxt_imgbox {
  /* 画像 */
}

.box_imglefttxt .imgtxt_imgbox img,
.box_imgrighttxt .imgtxt_imgbox img {
  width: 100%;
  height: auto;
}

/* 画像左 -------------------------------- */
.box_imglefttxt .imgtxt_imgbox {
  float: left;
  padding-right: 3%;
}

/* 画像右 -------------------------------- */
.box_imgrighttxt .imgtxt_imgbox {
  float: right;
  padding-left: 3%;
}

@media screen and (max-width: 480px) {
  .box_imglefttxt .imgtxt_imgbox,
  .box_imgrighttxt .imgtxt_imgbox {
    float: none;
    padding-right: 0;
    padding-left: 0;
  }
}
/* テキスト -------------------------------- */
/* 見出し */
.imgtxt_txtbox h3 {
  font-size: 2em;
  line-height: 1.5em;
  font-weight: normal;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .imgtxt_txtbox h3 {
    font-size: 1.8em;
  }
}
@media screen and (max-width: 480px) {
  .imgtxt_txtbox h3 {
    font-size: 1.5em;
    padding-bottom: 0.67em;
  }
}
/* ------------ 2～4つ並び画像テキストボックス -------------------------------- */
/* テキスト */
.imgbox_txtarea {
  display: block;
  width: 100%;
  z-index: 1;
  position: relative;
  box-sizing: border-box;
}

.imgbox_txtarea h3 {
  font-size: 1.2em;
  font-weight: normal;
  line-height: 1.5em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  margin-bottom: 0.5em;
}

.imgbox_txtarea p {
  padding: 0 !important;
}

/* 2つ並び画像テキストボックス -------------------------------- */
.img2box {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding-bottom: 4em;
  /* リスト */
}

.img2box ul {
  list-style: none inside;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  margin-top: -2em;
}

@media screen and (max-width: 480px) {
  .img2box ul {
    margin-top: -3em;
  }
}
.img2box ul li {
  width: 48.5%;
  position: relative;
  box-sizing: border-box;
  padding: 2em;
  margin-top: 2em;
}

@media screen and (max-width: 768px) {
  .img2box ul li {
    padding: 0;
  }
}
@media screen and (max-width: 480px) {
  .img2box ul li {
    width: 100%;
    margin-top: 3em;
  }
}
.img2box ul li {
  /* 画像 */
}

.img2box ul li img {
  width: 100%;
  height: auto;
  margin-bottom: 1em;
}

@media screen and (max-width: 480px) {
  .img2box.imghbox ul li {
    width: 48.5%;
  }
}
/* 3つ並び画像テキストボックス -------------------------------- */
.img3txtbox {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding-bottom: 4em;
  /* リスト */
}

.img3txtbox ul {
  list-style: none inside;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  margin-top: -3em;
}

.img3txtbox ul li {
  width: 32%;
  position: relative;
  box-sizing: border-box;
  margin-right: 2%;
  margin-top: 3em;
  padding: 2em;
}

@media screen and (min-width: 769px) {
  .img3txtbox ul li:nth-child(3n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 768px) {
  .img3txtbox ul li {
    width: 100%;
    margin-bottom: 3em;
    margin-right: 0;
  }
}
.img3txtbox ul li {
  /* 画像 */
}

.img3txtbox ul li img {
  width: 100%;
  height: auto;
  margin-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .img3txtbox.imghbox ul li {
    width: 32%;
    margin-right: 2%;
  }
  .img3txtbox.imghbox ul li:nth-child(3n) {
    margin-right: 0;
  }
}
/* 4つ並び画像テキストボックス -------------------------------- */
.img4txtbox {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 0 2em 4em 2em;
  /* リスト */
}

.img4txtbox ul {
  list-style: none inside;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  margin-top: -2em;
}

@media screen and (max-width: 1350px) {
  .img4txtbox ul {
    margin-top: -3em;
  }
}
.img4txtbox ul li {
  width: 23.5%;
  position: relative;
  box-sizing: border-box;
  margin-right: 2%;
  margin-top: 2em;
}

@media screen and (min-width: 1351px) {
  .img4txtbox ul li:nth-child(4n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 1350px) {
  .img4txtbox ul li {
    margin-top: 3em;
  }
}
@media screen and (max-width: 1350px) and (min-width: 481px) {
  .img4txtbox ul li {
    width: 49%;
  }
  .img4txtbox ul li:nth-child(2n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 480px) {
  .img4txtbox ul li {
    width: 100%;
  }
}
.img4txtbox ul li {
  /* 画像 */
}

.img4txtbox ul li img {
  width: 100%;
  height: auto;
  margin-bottom: 1em;
}

@media screen and (max-width: 1350px) and (min-width: 481px) {
  .img4txtbox.imghbox ul li {
    width: 23.5%;
  }
  .img4txtbox.imghbox ul li:nth-child(2n) {
    margin-right: 2%;
  }
  .img4txtbox.imghbox ul li:nth-child(4n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 480px) {
  .img4txtbox.imghbox ul li {
    width: 23.5%;
  }
  .img4txtbox.imghbox ul li:nth-child(4n) {
    margin-right: 0;
  }
}
/* =============== リスト ========================================================= */
/* ノーマルリストマークつき -------------------------------- */
.no_list {
  width: 100%;
  box-sizing: border-box;
  padding: 3.57em;
  margin: 0 auto;
  margin-bottom: 4em;
  max-width: 1500px;
  position: relative;
  background: #ebeee9;
  color: #ffffff;
}

@media screen and (max-width: 768px) {
  .no_list {
    padding: 1.5em;
  }
}
.no_list {
  /* 見出し */
}

.no_list h3 {
  font-size: 2em;
  font-weight: normal;
  line-height: 1.5em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .no_list h3 {
    font-size: 1.5em;
  }
}
.no_list {
  /* リスト */
}

.no_list ul {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding-left: 1.5em;
}

.no_list ul li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  font-size: 1em;
  line-height: 1.7em;
  padding-bottom: 1.5em;
}

.no_list ul li:last-child {
  padding-bottom: 0;
}

/* チェックボックスマークつき -------------------------------- */
.check_list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 3.57em;
  margin: 0 auto;
  margin-bottom: 4em;
  max-width: 1500px;
  background: #ebeee9;
  color: #1a2e1f;
}

@media screen and (max-width: 768px) {
  .check_list {
    padding: 1.5em;
  }
}
.check_list {
  /* 見出し */
}

.check_list h3 {
  font-size: 2em;
  font-weight: normal;
  line-height: 1.5em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .check_list h3 {
    font-size: 1.5em;
  }
}
.check_list {
  /* リスト */
}

.check_list ul {
  list-style: none inside;
  width: 100%;
  position: relative;
  box-sizing: border-box;
}

.check_list ul li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  font-size: 1em;
  line-height: 1.7em;
  padding-bottom: 1.5em;
  text-indent: -1.2em;
  padding-left: 1.2em;
}

.check_list ul li::before {
  display: inline-block;
  padding-left: 1em;
  padding-right: 0.2em;
  font-family: "Font Awesome 5 Free";
  content: "\f14a";
  font-weight: 400;
}

.check_list ul li:last-child {
  padding-bottom: 0;
}

/* 番号つき -------------------------------- */
.order_list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 3.57em;
  margin: 0 auto;
  margin-bottom: 4em;
  max-width: 1500px;
  position: relative;
  background: #ebeee9;
  color: #1a2e1f;
}

@media screen and (max-width: 768px) {
  .order_list {
    padding: 1.5em;
  }
}
.order_list {
  /* 見出し */
}

.order_list h3 {
  font-size: 2em;
  font-weight: normal;
  line-height: 1.5em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .order_list h3 {
    font-size: 1.5em;
  }
}
.order_list {
  /* リスト */
}

.order_list ol {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  list-style-position: inside;
}

.order_list ol li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  font-size: 1em;
  line-height: 1.7em;
  text-indent: -1em;
  padding-left: 1em;
  padding-bottom: 1em;
}

.order_list ol li:nth-child(n+10) {
  text-indent: -1.5em;
  padding-left: 1.5em;
}

.order_list ol li:last-child {
  padding-bottom: 0;
}

/* 表型 -------------------------------- */
.table_list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0 2em 4em 2em;
  /* 見出し */
}

.table_list h3 {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500 !important;
  font-size: 1.8em;
  font-weight: normal;
  line-height: 1.5em;
  padding-bottom: 0.5em;
}

@media screen and (max-width: 768px) {
  .table_list h3 {
    font-size: 1.5em;
  }
}
.table_list h4 {
  font-size: 1.5em;
  padding: 0 0 0.5em 0;
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
}

.table_list {
  /* リスト */
}

.table_list ul {
  list-style: none inside;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: white;
  box-shadow: 0.278em 0.278em 1.1em 0 rgba(0, 0, 0, 0.2);
}

.table_list ul li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  border-bottom: white solid 1px;
}

.table_list ul li:last-child {
  border-bottom: none;
}

.table_list ul li .tablelist_th,
.table_list ul li .tablelist_td {
  padding: 1em;
  font-size: 1em;
  position: relative;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
  .table_list ul li .tablelist_th,
  .table_list ul li .tablelist_td {
    padding: 1em;
    display: block;
    text-align: left;
  }
}
.table_list ul li .tablelist_th {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
  font-weight: 500;
  width: 20%;
  font-weight: 700;
  background-color: #1a2e1f;
  color: white;
}

@media screen and (max-width: 768px) {
  .table_list ul li .tablelist_th {
    width: 100%;
    font-weight: bold;
    border-right: none;
    border-bottom: none;
    padding: 0.5em 1em;
  }
}
.table_list ul li .tablelist_td {
  background-color: #398933;
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
  font-weight: 300;
  width: 80%;
  color: black;
}

@media screen and (max-width: 768px) {
  .table_list ul li .tablelist_td {
    width: 100%;
    padding: 0.5em 1em;
  }
}
/* 注釈マークつき -------------------------------- */
.note_list {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin: 0 auto;
  margin-bottom: 4em;
  max-width: 1500px;
  opacity: 0.6;
  padding: 3.57em;
  background: #ebeee9;
}

@media screen and (max-width: 768px) {
  .note_list {
    padding: 1.5em;
  }
}
.note_list {
  /* 見出し */
}

.note_list h3 {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.5em;
  padding-bottom: 1em;
}

@media screen and (max-width: 768px) {
  .note_list h3 {
    font-size: 1.3em;
    font-weight: 500;
  }
}
.note_list {
  /* リスト */
}

.note_list ul {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  list-style: none inside;
}

.note_list ul li {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  font-size: 0.9em;
  line-height: 1.7em;
  text-indent: -1.2em;
  padding-left: 1.2em;
  padding-bottom: 1.5em;
}

.note_list ul li::before {
  display: inline-block;
  padding-left: 1em;
  padding-right: 0.2em;
  content: "※";
}

.note_list ul li:last-child {
  padding-bottom: 0;
}

/* =============== Youtube動画 ========================================================= */
.videobox .imgtxt_imgbox {
  width: 60%;
}

.youtube_box {
  width: 100%;
}

.youtube_box span {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube_box span iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

.img2box .youtube_box,
.img3txtbox .youtube_box {
  padding-bottom: 1.5em;
}

/* =============== 余白ゼロ ========================================================= */
.freepage-ctt .sec .innerbox p:last-child,
.freepage-ctt .sec .innerbox p.parts-copy:last-child,
.freepage-ctt .sec .innerbox p.note:last-child,
.freepage-ctt .sec .innerbox .parts-100img:last-child,
.freepage-ctt .sec .innerbox .box_imglefttxt:last-child,
.freepage-ctt .sec .innerbox .box_imgrighttxt:last-child,
.freepage-ctt .sec .innerbox .img2box:last-child,
.freepage-ctt .sec .innerbox .img3txtbox:last-child,
.freepage-ctt .sec .innerbox .img4txtbox:last-child {
  padding-bottom: 0;
}

.freepage-ctt .sec .innerbox .bbox:last-child,
.freepage-ctt .sec .innerbox .no_list:last-child,
.freepage-ctt .sec .innerbox .check_list:last-child,
.freepage-ctt .sec .innerbox .order_list:last-child,
.freepage-ctt .sec .innerbox .table_list:last-child,
.freepage-ctt .sec .innerbox .note_list:last-child {
  margin-bottom: 0;
}

.img2box img:last-child,
.img3txtbox img:last-child,
.img4txtbox img:last-child {
  margin-bottom: 0;
}

.img2box a img:last-child,
.img3txtbox a img:last-child,
.img4txtbox a img:last-child {
  margin-bottom: 2.5em;
}

.img2box a:last-child img,
.img3txtbox a:last-child img,
.img4txtbox a:last-child img {
  margin-bottom: 0;
}

.img2box a:last-child img:last-child,
.img3txtbox a:last-child img:last-child,
.img4txtbox a:last-child img:last-child {
  margin-bottom: 0;
}

li .youtube_box:last-child {
  margin-bottom: 0;
}

.imgtxt_imgbox .youtube_box {
  margin-bottom: 0;
}

/* =======================================================================================================================
　　　　　　　　　お問い合わせ
======================================================================================================================= */
.contact-template .wrap,
.contactpage-ctt {
  padding-top: 0;
  padding-bottom: 0;
}

.contactpage-ctt {
  /* 見出し */
}

.contactpage-ctt h3 {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
  font-style: normal;
  font-weight: 400;
  font-size: 2em;
  font-weight: 700;
  line-height: 1.4em;
  padding-bottom: 0.5em;
  text-align: center;
}

.contactpage-ctt .sec {
  width: 100%;
}

.contactpage-ctt .sec p {
  padding-bottom: 2em;
}

@media screen and (max-width: 768px) {
  .contactpage-ctt .sec p.center {
    text-align: left;
  }
}
.contactpage-ctt .sec.contact_tel p {
  text-align: center;
  /* -------------------------- 電話 ------------------------------------------- */
}

.contactpage-ctt .sec.contact_tel p.contacttel_tel {
  font-size: 3em;
  line-height: 1em;
  padding-bottom: 0.1em;
  color: black;
}

.contactpage-ctt .sec.contact_tel p.contacttel_tel strong {
  font-weight: bold;
}

.contactpage-ctt .sec.contact_tel p.contacttel_tel::before {
  display: inline-block;
  padding-right: 0.2em;
  font-family: "Font Awesome 5 Free";
  content: "\f095";
  font-weight: 900;
}

@media screen and (max-width: 768px) {
  .contactpage-ctt .sec.contact_tel p.contacttel_tel.center {
    text-align: center;
  }
}
.contactpage-ctt .sec.contact_tel p {
  /* 時間 */
}

.contactpage-ctt .sec.contact_tel p.contacttel_time {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.3em;
  padding-bottom: 0;
  color: black;
}

@media screen and (max-width: 768px) {
  .contactpage-ctt .sec.contact_tel p.contacttel_time.center {
    text-align: center;
  }
}
.webcontact .ct_info {
  text-align: center;
}

/* =======================================================================================================================
   Q&A / Footer sample layout override
   ======================================================================================================================= */
.faq-ctt .sec {
  position: relative;
  overflow: hidden;
  background: #ebeee9;
}

.faq-ctt .sec::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 14em;
  background: #398933;
  z-index: 0;
  pointer-events: none;
}

.faq-ctt .sec .innerbox {
  position: relative;
  z-index: 1;
}

.faq-ctt .sec .innerbox .faq-heading {
  position: relative;
  margin-bottom: 0;
}

.faq-ctt .sec .innerbox .faq-heading .faq-lead {
  position: relative;
  z-index: 1;
  color: #398933;
  margin-bottom: 0.25em;
}

.faq-ctt .sec .innerbox .faq-heading h2 {
  position: relative;
  z-index: 1;
  color: #398933;
  line-height: 1.25em;
}

.faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
  top: -0.55em;
  right: -0.12em;
  font-size: 5rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(57, 137, 51, 0.07);
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}

.faq-ctt .sec .innerbox .faq-heading .faq-people {
  position: relative;
  z-index: 2;
  width: 56%;
  max-width: 22em;
  margin: 0.8em auto -0.05em;
  line-height: 0;
}

.faq-ctt .sec .innerbox .faq-heading .faq-people img {
  display: block;
}

.faq-ctt .sec .innerbox ul.qa_list {
  position: relative;
  z-index: 1;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::after {
  left: auto;
  right: 1em;
}

@media screen and (max-width: 768px) {
  .faq-ctt .sec::after {
    height: 25em;
  }
  .faq-ctt .sec .innerbox ul.qa_list {
    width: calc(100% + 2.5em);
    margin-right: -2.5em;
    border-radius: 1.8em 0 0 1.8em;
    padding: 1.8em 1.5em 1.8em 1.8em;
  }
}
@media screen and (max-width: 480px) {
  .faq-ctt .sec .innerbox ul.qa_list {
    width: calc(100% + 1.5em);
    margin-right: -1.5em;
    padding: 1.8em 1.25em 1.8em 1.5em;
  }
}
@media screen and (min-width: 769px) {
  .faq-ctt .sec .innerbox .faq-heading .faq-people {
    width: 16em;
  }
}
/* === BUZZ REUSE ABOUT FIX 2026-08-24 === */
body .about {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #e29e30;
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
  overflow: hidden;
}

body .about::before {
  content: "";
  position: absolute;
  top: 1.4rem;
  right: -2.5rem;
  width: 17rem;
  height: 14rem;
  background: url(assets/buzzreuse/images/section-03-back.webp) center/contain no-repeat;
  pointer-events: none;
}

body .about .innerbox {
  position: relative;
  z-index: 1;
}

body .about .about-brand {
  width: 10rem;
  line-height: 0;
}

body .about .about-brand img {
  display: block;
  width: 100%;
  height: auto;
}

body .about .about-title {
  color: #1a2e1f;
  font-weight: 800;
  font-size: 1.42rem;
  line-height: 1.55;
  margin-top: 1.15rem;
}

body .about .about-title span {
  color: #398933;
}

body .about .about-panel {
  display: block;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  background: #fff;
  border: 0.2rem solid #1a2e1f;
  border-radius: 1rem;
  padding: 39vw 1.55rem 2rem;
  margin-top: 25vw;
  overflow: visible;
}

body .about .about-panel .about-img {
  position: absolute;
  left: 50%;
  top: -19vw;
  transform: translateX(-50%);
  width: 93%;
  margin: 0;
  z-index: 2;
  pointer-events: none;
}

body .about .about-panel .about-img img {
  width: 100%;
  height: auto;
  display: block;
}

body .about .about-panel .about-text {
  position: relative;
  z-index: 3;
  margin: 0;
  padding-bottom: 0;
  font-size: 0.93rem;
  font-weight: 700;
  line-height: 1.7;
  color: #398933;
}

@media screen and (min-width: 769px) {
  body .about {
    padding-top: 6rem;
    padding-bottom: 5rem;
  }
  body .about::before {
    top: 1rem;
    right: -5rem;
    width: 34rem;
    height: 28rem;
  }
  body .about .about-brand {
    width: 13rem;
  }
  body .about .about-title {
    font-size: 2rem;
    margin-top: 1.5rem;
  }
  body .about .about-panel {
    display: block;
    margin-top: 15rem;
    padding: 18.5rem 3rem 3rem;
  }
  body .about .about-panel .about-img {
    top: -13.8rem;
    width: min(60rem, 110%);
  }
  body .about .about-panel .about-text {
    font-size: 1.15rem;
    line-height: 1.8;
  }
}
/* First view / REUSE NEWS fixed CTA adjustments */
body .first-view {
  width: 100%;
  position: relative;
}

body .news::before {
  background-image: url("assets/buzzreuse/images/news-back.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 1;
}

body .cta-buttons--fixed {
  position: fixed;
  left: 50%;
  bottom: 1.15rem;
  transform: translateX(-50%);
  z-index: 85;
  width: min(100% - 3rem, 38rem);
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  pointer-events: none;
}

body .cta-buttons--fixed .btn-pill--green, body .cta-buttons--fixed .btn-pill--orange {
  pointer-events: auto;
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0.85rem 0.55rem;
  border: 0.16rem solid #1a2e1f;
  font-size: 0.92rem;
  line-height: 1.2;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  body .first-view {
    height: calc(100svh - 3.6em);
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
  }
  body .first-view .mv {
    flex: 0 0 72%;
    min-height: 0;
    padding-bottom: 0;
  }
  body .first-view .mv .mv-head {
    padding-top: clamp(0.8rem, 2.2vh, 1.35rem);
    padding-bottom: clamp(0.55rem, 1.5vh, 1rem);
  }
  body .first-view .mv .mv-head .mv-catch {
    font-size: clamp(1rem, 2.25vh, 1.15rem);
  }
  body .first-view .mv .mv-head .mv-logo {
    font-size: clamp(2.05rem, 5.2vh, 2.75rem);
  }
  body .first-view .mv .mv-panel {
    border-width: 0.13rem;
    border-radius: clamp(1rem, 2.8vh, 1.6rem);
    padding: clamp(0.8rem, 2.2vh, 1.45rem) 8.2rem clamp(1.8rem, 4.3vh, 3rem) clamp(1rem, 2.7vh, 1.55rem);
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.02rem, 2.6vh, 1.3rem);
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    font-size: clamp(1.85rem, 4.7vh, 2.3rem);
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: clamp(6.5rem, 19vh, 8.4rem);
  }
  body .first-view .mv .mv-char {
    width: 45%;
    bottom: -0.65rem;
  }
  body .first-view .mv .mv-items {
    margin-top: clamp(-3.8rem, -7.2vh, -2.9rem);
    padding-top: clamp(2.9rem, 7.2vh, 3.8rem);
  }
  body .first-view .mv .mv-cta {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    padding: clamp(0.15rem, 0.8vh, 0.5rem) 0 0;
  }
  body .first-view .mv .mv-cta::before {
    height: 115%;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    width: min(90%, 26rem);
  }
  body .first-view .mv .mv-cta .mv-badges {
    width: min(56%, 15.5rem);
    margin-top: clamp(0.2rem, 0.65vh, 0.45rem);
  }
  body .first-view .news {
    flex: 1 1 28%;
    min-height: 0;
    padding-top: clamp(0.8rem, 2vh, 1.3rem);
    padding-bottom: clamp(4.8rem, 9vh, 5.6rem);
  }
  body .first-view .news::before {
    top: clamp(1.55rem, 3.4vh, 2.3rem);
    width: clamp(8.5rem, 24vh, 12.5rem);
    height: clamp(7.4rem, 20vh, 10.5rem);
  }
  body .first-view .news .news-title img {
    width: clamp(10.2rem, 25vh, 13rem);
  }
  body .first-view .news .news-body {
    margin-top: clamp(0.5rem, 1.2vh, 0.85rem);
    font-size: clamp(0.72rem, 1.7vh, 0.92rem);
    line-height: 1.55;
  }
}
@media screen and (min-width: 769px) {
  body .cta-buttons--fixed {
    bottom: 1.5rem;
    width: min(100% - 4rem, 44rem);
    gap: 1rem;
  }
  body .cta-buttons--fixed .btn-pill--green, body .cta-buttons--fixed .btn-pill--orange {
    font-size: 1rem;
    padding: 1rem 1.5rem;
  }
}
/* === First view natural flow fix 2026-08-25 === */
body .first-view {
  width: 100%;
  position: relative;
  display: block;
  height: auto;
  min-height: 0;
  overflow: visible;
  background: #fff;
}

body .first-view .mv {
  flex: none;
  height: auto;
  min-height: 0;
}

body .first-view .news {
  position: relative;
  flex: none;
  height: auto;
  min-height: 0;
}

body .news::before {
  background-image: url("assets/buzzreuse/images/news-back.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 1;
}

body .cta-buttons--fixed {
  position: fixed;
  left: 50%;
  bottom: 1.15rem;
  transform: translateX(-50%);
  z-index: 85;
  width: min(100% - 3rem, 38rem);
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  pointer-events: none;
}

body .cta-buttons--fixed .btn-pill--green, body .cta-buttons--fixed .btn-pill--orange {
  pointer-events: auto;
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0.85rem 0.55rem;
  border: 0.16rem solid #1a2e1f;
  font-size: 0.92rem;
  line-height: 1.2;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  body .first-view {
    height: auto;
    min-height: 0;
    display: block;
    overflow: visible;
  }
  body .first-view .mv {
    flex: none;
    height: auto;
    min-height: 0;
    padding-bottom: 2.4rem;
  }
  body .first-view .mv .mv-head {
    padding-top: 1.9rem;
    padding-bottom: 1.8rem;
  }
  body .first-view .mv .mv-head .mv-catch {
    font-size: 1.3rem;
    line-height: 1.35;
  }
  body .first-view .mv .mv-head .mv-logo {
    font-size: 3rem;
    line-height: 1.1;
  }
  body .first-view .mv .mv-panel {
    min-height: 17rem;
    padding: 2rem 9.4rem 4.3rem 1.8rem;
    border-width: 0.15rem;
    border-radius: 1.55rem;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: 1.45rem;
    line-height: 1.45;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.25rem;
    font-size: 2.75rem;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 9.4rem;
  }
  body .first-view .mv .mv-char {
    width: 52%;
    right: -0.9rem;
    bottom: -3.6rem;
  }
  body .first-view .mv .mv-items {
    margin-top: -3.4rem;
    padding-top: 0;
    z-index: 2;
  }
  body .first-view .mv .mv-cta {
    margin-top: 0.5rem;
    padding: 1.2rem 0 0.5rem;
  }
  body .first-view .mv .mv-cta::before {
    height: 100%;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    width: 96%;
    max-width: 28rem;
  }
  body .first-view .mv .mv-cta .mv-badges {
    width: 58%;
    max-width: 17rem;
    margin-top: 0.45rem;
  }
  body .first-view .news {
    flex: none;
    height: auto;
    min-height: 0;
    padding-top: 4rem;
    padding-bottom: 5.4rem;
  }
  body .first-view .news::before {
    top: 4.4rem;
    width: 15rem;
    height: 12.5rem;
  }
  body .first-view .news .news-title img {
    width: 14.25rem;
    max-width: 70%;
  }
  body .first-view .news .news-body {
    margin-top: 1.2rem;
    font-size: 1.125rem;
    line-height: 1.7;
  }
}
@media screen and (min-width: 769px) {
  body .cta-buttons--fixed {
    bottom: 1.5rem;
    width: min(100% - 4rem, 44rem);
    gap: 1rem;
  }
  body .cta-buttons--fixed .btn-pill--green, body .cta-buttons--fixed .btn-pill--orange {
    font-size: 1rem;
    padding: 1rem 1.5rem;
  }
}
/* === REUSE NEWS CTA sticky-after-reach 2026-08-25 === */
body .news .cta-buttons-anchor {
  width: 100%;
  margin-top: 1.3rem;
  position: relative;
}

body .news .cta-buttons-anchor .cta-buttons {
  margin-top: 0;
}

body .news .cta-buttons.is-fixed {
  position: fixed;
  left: 50%;
  bottom: var(--cta-fixed-bottom, 4rem);
  transform: translateX(-50%);
  z-index: 85;
  width: min(100% - 3rem, 38rem);
  margin: 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.75rem;
}

body .news .cta-buttons.is-fixed .btn-pill--green, body .news .cta-buttons.is-fixed .btn-pill--orange {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0.85rem 0.55rem;
  border: 0.16rem solid #1a2e1f;
  font-size: 0.92rem;
  line-height: 1.2;
  white-space: nowrap;
}

@media screen and (min-width: 769px) {
  body .news .cta-buttons.is-fixed {
    bottom: var(--cta-fixed-bottom, 1.5rem);
    width: min(100% - 4rem, 44rem);
    gap: 1rem;
  }
  body .news .cta-buttons.is-fixed .btn-pill--green, body .news .cta-buttons.is-fixed .btn-pill--orange {
    font-size: 1rem;
    padding: 1rem 1.5rem;
  }
}
/* =======================================================================================================================
   Main visual mobile fine-tuning (reference layout)
======================================================================================================================= */
@media screen and (max-width: 768px) {
  body .first-view .mv {
    position: relative;
    width: 100%;
    height: 138vw;
    min-height: 138vw;
    padding: 0;
    overflow: hidden;
  }
  body .first-view .mv .mv-head.innerbox {
    position: absolute;
    top: 4.6vw;
    left: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 0 6.2vw;
    z-index: 6;
    text-align: left;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.7vw;
    font-size: 4.65vw;
    line-height: 1.25;
    letter-spacing: 0.02em;
  }
  body .first-view .mv .mv-head .mv-logo {
    margin: 0;
    font-size: 7.35vw;
    line-height: 1.08;
    letter-spacing: 0.015em;
  }
  body .first-view .mv .mv-body.innerbox {
    position: absolute;
    top: 22.2vw;
    left: 5.25vw;
    width: 89.5vw;
    max-width: none;
    margin: 0;
    padding: 0;
    z-index: 3;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    margin: 0;
  }
  body .first-view .mv .mv-panel {
    width: 100%;
    height: 43.5vw;
    min-height: 0;
    box-sizing: border-box;
    padding: 7.2vw 0 0 6vw;
    border-width: 0.45vw;
    border-radius: 2.9vw;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    margin: 0;
    font-size: 4.65vw;
    line-height: 1.42;
    letter-spacing: 0.02em;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 1.2vw;
    font-size: 7.5vw;
    line-height: 1.08;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 38vw;
    margin-top: 0.8vw;
  }
  body .first-view .mv .mv-char {
    position: absolute;
    top: -15.5vw;
    right: -5.2vw;
    bottom: auto;
    width: 50.6vw;
    z-index: 4;
  }
  body .first-view .mv .mv-char img {
    width: 100%;
    height: auto;
    max-width: none;
    margin: 0;
  }
  body .first-view .mv .mv-items.innerbox {
    position: absolute;
    top: 56.7vw;
    left: -0.5vw;
    width: 97.7vw;
    max-width: none;
    margin: 0;
    padding: 0;
    z-index: 7;
  }
  body .first-view .mv .mv-items img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
  body .first-view .mv .mv-cta.innerbox {
    position: absolute;
    top: 89.5vw;
    left: 0;
    width: 100vw;
    height: 48.5vw;
    max-width: none;
    margin: 0;
    padding: 0;
    z-index: 2;
    overflow: visible;
  }
  body .first-view .mv .mv-cta::before {
    top: 1.5vw;
    left: 18.5vw;
    transform: none;
    width: 52vw;
    max-width: none;
    height: 45vw;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat center/contain;
    z-index: 0;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    position: absolute;
    top: 0;
    left: -2vw;
    width: 102.5vw;
    max-width: none;
    height: auto;
    margin: 0;
    z-index: 2;
  }
  body .first-view .mv .mv-cta .mv-badges {
    position: absolute;
    top: 0.85vw;
    right: 2.5vw;
    width: 53vw;
    max-width: none;
    height: auto;
    margin: 0;
    z-index: 3;
  }
  body .news .cta-buttons-anchor {
    overflow: visible;
    transition: height 0.28s ease, margin-top 0.28s ease;
  }
  body .news .cta-buttons-anchor.is-stuck {
    margin-top: 0.45rem;
  }
}
/* === REUSE NEWS CTA iPhone/Safari fixed visibility fix === */
body .news .cta-buttons-anchor {
  min-height: 0;
  overflow: visible;
  transition: height 0.28s ease, margin-top 0.28s ease;
}

body .news .cta-buttons-anchor.is-stuck {
  margin-top: 0.45rem;
}

body > .cta-buttons.is-fixed {
  position: fixed;
  left: 50%;
  bottom: var(--cta-fixed-bottom, 4rem);
  transform: translateX(-50%);
  z-index: 9999;
  width: min(100% - 3rem, 38rem);
  margin: 0;
  display: flex !important;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.75rem;
  visibility: visible;
  opacity: 1;
}

body > .cta-buttons.is-fixed .btn-pill--green, body > .cta-buttons.is-fixed .btn-pill--orange {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0.85rem 0.55rem;
  border: 0.16rem solid #1a2e1f;
  font-size: 0.92rem;
  line-height: 1.2;
  white-space: nowrap;
}

@media screen and (min-width: 769px) {
  body > .cta-buttons.is-fixed {
    bottom: var(--cta-fixed-bottom, 1.5rem);
    width: min(100% - 4rem, 44rem);
    gap: 1rem;
  }
  body > .cta-buttons.is-fixed .btn-pill--green, body > .cta-buttons.is-fixed .btn-pill--orange {
    font-size: 1rem;
    padding: 1rem 1.5rem;
  }
}
/* =======================================================================================================================
   Scroll reveal：セクション単位ではなく各要素を順番にふわっと表示
======================================================================================================================= */
html.reveal-ready.js .reveal-item {
  opacity: 0;
  transform: translateY(1.45rem);
  transition: opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms), transform 0.78s cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

html.reveal-ready.js .reveal-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

html.reveal-ready.js .reveal-item.is-initial {
  transition: none;
}

html.reveal-ready.js .reveal-flow .flow-num {
  opacity: 0;
  transform: scale(0.72);
  transition: opacity 0.42s ease var(--reveal-delay, 0ms), transform 0.58s cubic-bezier(0.34, 1.56, 0.64, 1) var(--reveal-delay, 0ms);
}

html.reveal-ready.js .reveal-flow .flow-card {
  opacity: 0;
  transform: translate3d(1.25rem, 0.55rem, 0);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--reveal-delay, 0ms) + 70ms), transform 0.72s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--reveal-delay, 0ms) + 70ms);
}

html.reveal-ready.js .reveal-flow .flow-icon {
  transform: scale(0.96);
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--reveal-delay, 0ms) + 160ms);
}

html.reveal-ready.js .reveal-flow.is-visible .flow-num {
  opacity: 1;
  transform: scale(1);
}

html.reveal-ready.js .reveal-flow.is-visible .flow-card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

html.reveal-ready.js .reveal-flow.is-visible .flow-icon {
  transform: scale(1);
}

html.reveal-ready.js .reveal-flow.is-initial .flow-num,
html.reveal-ready.js .reveal-flow.is-initial .flow-card,
html.reveal-ready.js .reveal-flow.is-initial .flow-icon {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready.js .reveal-item,
  html.reveal-ready.js .reveal-flow .flow-num,
  html.reveal-ready.js .reveal-flow .flow-card,
  html.reveal-ready.js .reveal-flow .flow-icon {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* 固定CTAが最下部のフッター内容に被らないための退避スペース */
#footer {
  padding-bottom: calc(1.4em + var(--cta-footer-space, 0px));
}

/* =======================================================================================================================
   Mobile visual polish 2026-08-25 17:37
   見本画像に合わせたスマホ最終調整
======================================================================================================================= */
@media screen and (max-width: 768px) {
  /* --- Main visual ------------------------------------------------------------ */
  body .first-view .mv .mv-panel .mv-panel-price {
    font-size: 8.15vw;
    line-height: 1.05;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 35.5vw;
    max-width: none;
    margin-top: 1.05vw;
  }
  body .first-view .mv .mv-cta::before {
    top: 1.8vw;
    left: -5.5vw;
    width: 55vw;
    height: 47vw;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat center/contain;
  }
  /* --- Service --------------------------------------------------------------- */
  body .service .service-title {
    font-size: 1.68rem;
    line-height: 1.48;
  }
  body .service .service-note {
    padding-right: 1.1rem;
  }
  body .service .service-note .service-note-text {
    padding-right: 12.4rem;
  }
  body .service .service-note .service-note-char {
    width: 15.4rem;
    right: -2.15rem;
    bottom: -4.45rem;
    z-index: 3;
  }
  /* --- About ----------------------------------------------------------------- */
  body .about .about-brand,
  body .about .about-title {
    margin-left: 0.35rem;
  }
  body .about .about-title {
    margin-top: 0.72rem;
  }
  body .about .about-panel {
    margin-top: 22vw;
  }
  /* --- Flow ------------------------------------------------------------------ */
  body .flow .flow-list > li .flow-card {
    padding: 1rem 0.9rem 0.8rem 1.55rem;
  }
  body .flow .flow-list > li .flow-card h3 {
    font-size: 1.4rem;
    line-height: 1.28;
    letter-spacing: 0.01em;
  }
  body .flow .flow-list > li .flow-card .flow-tag {
    font-size: 0.72rem;
    padding: 0.32rem 0.58rem;
    border-radius: 0.7rem;
    margin-left: 0.28rem;
    vertical-align: 0.12rem;
  }
  body .flow .flow-list > li .flow-card p {
    margin-top: 0.38rem;
    font-size: 1.1rem;
    line-height: 1.52;
    letter-spacing: 0.01em;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card {
    height: 7.35rem;
  }
  body .flow .flow-list > li:nth-child(1) .flow-icon {
    width: 10.65rem;
    right: 0.15rem;
    bottom: 0.35rem;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    height: 8.15rem;
  }
  body .flow .flow-list > li:nth-child(2) .flow-icon {
    width: 11.55rem;
    right: 0.18rem;
    bottom: 0.45rem;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card {
    height: 6.45rem;
  }
  body .flow .flow-list > li:nth-child(3) .flow-icon {
    width: 9.2rem;
    right: 0.55rem;
    bottom: -0.03rem;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card {
    height: 6.55rem;
  }
  body .flow .flow-list > li:nth-child(4) .flow-icon {
    width: 9.7rem;
    right: -0.72rem;
    bottom: 0;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card {
    height: 7.7rem;
  }
  body .flow .flow-list > li:nth-child(5) .flow-icon {
    width: 8.25rem;
    right: -0.1rem;
    bottom: 0.55rem;
  }
  /* --- FAQ ------------------------------------------------------------------- */
  body .faq-ctt .sec:first-child {
    padding-top: 3rem;
    padding-bottom: 0.55rem;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    top: -2.15rem;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::after {
    transition: 0.38s ease;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer {
    transition: max-height 0.52s cubic-bezier(0.22, 1, 0.36, 1);
  }
}
/* =======================================================================================================================
   Shop card mobile information polish 2026-08-25
======================================================================================================================= */
@media screen and (max-width: 768px) {
  #footer .shop-card {
    padding: 2.15em 1.35em 1.9em;
    margin-top: 0;
  }
  #footer .shop-card .shop-logo {
    margin-bottom: 1.7em;
  }
  #footer .shop-card .shop-logo img {
    width: 16.8em;
  }
  #footer .shop-card .shop-info li {
    gap: 0.55em;
    margin-bottom: 0.7em;
    font-size: 0.98rem;
    line-height: 1.55;
  }
  #footer .shop-card .shop-info li .shop-info-icon {
    width: 1.55em;
    margin-top: 0.08em;
  }
}
/* =======================================================================================================================
   Header + service note final polish 2026-08-25 17:46
======================================================================================================================= */
header {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
}

#wrapper {
  padding-top: 0;
}

@media screen and (min-width: 769px) {
  #wrapper {
    padding-top: 0;
  }
}
@media screen and (max-width: 768px) {
  /* 見本の白ヘッダー比率は現状とほぼ同じなので高さは維持し、固定のみ解除 */
  header .header-nav {
    height: 4.8em;
    padding-left: 1.65em;
    padding-right: 1.65em;
  }
  header .header-nav .logo img {
    height: 2.65em;
  }
  /* 見本同様、人物を大きくしつつセクション下端で切れない位置へ */
  body .service .service-note .service-note-text {
    padding-right: 12.4rem;
  }
  body .service .service-note .service-note-char {
    width: 15.4rem;
    right: -2.15rem;
    bottom: -4.45rem;
    z-index: 3;
  }
}
/* =======================================================================================================================
   Service note character exact mobile placement 2026-08-25 18:11
   見本画像の比率に合わせ、人物で白枠の右端を隠す
======================================================================================================================= */
@media screen and (max-width: 768px) {
  body .service .service-note .service-note-text {
    font-size: 1rem;
    line-height: 1.5;
    padding-right: 11rem;
  }
  body .service .service-note .service-note-char {
    width: 17.8rem;
    right: -5.35rem;
    bottom: -3.25rem;
    z-index: 3;
  }
}
/* =======================================================================================================================
   Service note spacing + panel width mobile polish 2026-08-25
======================================================================================================================= */
@media screen and (max-width: 768px) {
  body .service .service-note {
    width: calc(100% - 3.2rem);
    margin-left: 0;
    margin-right: auto;
    margin-top: 2.6rem;
  }
  body .service .service-note .service-note-text {
    padding-right: 8.8rem;
  }
  body .service .service-note .service-note-char {
    right: -6.15rem;
    bottom: -3.25rem;
  }
}
/* =======================================================================================================================
   Service mobile reference match 2026-08-25
   見本.png のスマホ比率に合わせた最終調整
======================================================================================================================= */
@media screen and (max-width: 480px) {
  body .service {
    padding-top: 2.45rem;
    padding-bottom: 2.2rem;
  }
  body .service::before {
    top: 0.55rem;
    right: -2.35rem;
    width: 12.5rem;
    height: 12.5rem;
  }
  body .service .service-title {
    font-size: 1.72rem;
    line-height: 1.48;
  }
  /* タイトルを少し上げた分、商品画像の開始位置は見本と同じ高さに保つ */
  body .service .category-list {
    margin-top: 2.45rem;
  }
  /* 見本の丸画像は現在表示より約6%小さい */
  body .service .category-list li {
    width: 29.2%;
    margin-bottom: 1.45rem;
  }
  body .service .category-list p {
    margin-top: 0.58rem;
    font-size: 1rem;
    line-height: 1.32;
  }
  /* 白枠：見本は現在より上に始まり、縦幅も広い */
  body .service .service-note {
    width: calc(100% - 4.6rem);
    margin-left: 0;
    margin-right: auto;
    margin-top: 0.55rem;
    min-height: 9.25rem;
    padding: 1.7rem 1.95rem 1.65rem;
    border-width: 0.2rem;
    border-radius: 1.65rem;
  }
  body .service .service-note .service-note-text {
    font-size: 1.15rem;
    line-height: 1.55;
    padding-right: 3.2rem;
    white-space: nowrap;
  }
  /* 人物は見本の見かけサイズに戻し、右側へ寄せて本文を圧迫しない */
  body .service .service-note .service-note-char {
    width: 14.8rem;
    right: -7.7rem;
    bottom: -1.45rem;
    z-index: 3;
  }
}
/* =======================================================================================================================
   Tablet / Desktop header polish 2026-08-26
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 769px) {
  header .header-nav {
    height: 5.2em;
    padding: 0 clamp(2.5em, 4vw, 5.5em);
  }
  header .header-nav .logo img {
    height: 2.75em;
  }
  header .header-nav .header-pc-nav {
    gap: 1.35em;
  }
  header .header-nav .header-pc-nav .tel {
    font-size: 0.82em;
    line-height: 1.18;
  }
  header .header-nav .header-pc-nav .tel .header-tel-num {
    margin-top: 0.08em;
    font-size: 1.72em;
    line-height: 1;
  }
  header .header-nav .header-pc-nav .btn-header-cta {
    min-width: 10.8em;
    padding: 1.02em 1.75em;
    font-size: 0.96em;
  }
}
/* =======================================================================================================================
   Tablet / Desktop main visual redesign 2026-08-26
   ※スマホ（768px以下）は完成版を維持
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .mv {
    min-height: clamp(46rem, 72vw, 60rem);
    padding-bottom: clamp(2.6rem, 4vw, 4.5rem);
  }
  body .mv .mv-head {
    width: min(100%, 72rem);
    max-width: 72rem;
    padding-top: clamp(2.2rem, 3.2vw, 3.3rem);
    padding-bottom: clamp(1.2rem, 2vw, 1.8rem);
  }
  body .mv .mv-head .mv-catch {
    font-size: clamp(1.15rem, 1.5vw, 1.55rem);
    letter-spacing: 0.025em;
  }
  body .mv .mv-head .mv-logo {
    margin-top: 0.06em;
    font-size: clamp(3.4rem, 5vw, 5rem);
    line-height: 1.05;
    letter-spacing: 0.01em;
  }
  body .mv .mv-body {
    display: block;
    width: min(100%, 72rem);
    max-width: 72rem;
    margin: 0 auto;
  }
  body .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    min-height: clamp(18rem, 28vw, 25rem);
  }
  body .mv .mv-panel {
    width: 72%;
    min-height: clamp(13.5rem, 18vw, 17.5rem);
    padding: clamp(2.2rem, 3.2vw, 3.3rem) clamp(2.2rem, 3vw, 3.2rem);
    border-width: 0.18rem;
    border-radius: clamp(1.4rem, 2vw, 2rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  body .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.35rem, 1.9vw, 1.85rem);
    line-height: 1.42;
  }
  body .mv .mv-panel .mv-panel-price {
    margin-top: 0.16em;
    font-size: clamp(2.8rem, 4vw, 4rem);
    line-height: 1.05;
  }
  body .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: clamp(9.5rem, 13vw, 13rem);
    margin-top: 0.15rem;
  }
  body .mv .mv-char {
    position: absolute;
    z-index: 3;
    right: clamp(1.2rem, 4vw, 4.5rem);
    bottom: -1.4rem;
    width: clamp(15rem, 24vw, 21rem);
    display: block;
  }
  body .mv .mv-char img {
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  body .mv .mv-items {
    z-index: 4;
    width: min(90%, 66rem);
    max-width: 66rem;
    margin: clamp(-5rem, -6vw, -3.4rem) auto 0;
    padding-top: 0;
  }
  body .mv .mv-items img {
    width: 100%;
    height: auto;
  }
  body .mv .mv-cta {
    width: min(100%, 72rem);
    max-width: 72rem;
    min-height: clamp(12rem, 18vw, 16.5rem);
    margin: clamp(0.8rem, 1.8vw, 1.6rem) auto 0;
    padding: clamp(1.2rem, 2vw, 2rem) clamp(0.5rem, 1vw, 1rem) 0.4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(2rem, 5vw, 5rem);
  }
  body .mv .mv-cta::before {
    left: 16%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: clamp(20rem, 34vw, 31rem);
    max-width: none;
    height: clamp(16rem, 28vw, 25rem);
    background-position: center;
    background-size: contain;
  }
  body .mv .mv-cta .mv-cta-copy {
    flex: 0 1 54%;
    width: min(54%, 31rem);
    max-width: 31rem;
    margin: 0 0 0 -1.1rem;
  }
  body .mv .mv-cta .mv-badges {
    flex: 0 0 auto;
    width: clamp(14rem, 22vw, 20rem);
    max-width: 20rem;
    margin: 0 clamp(1rem, 4vw, 4rem) 0 0;
  }
}
/* 769〜1024pxでは、PCの重なり感を保ちながら少しコンパクトに */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .mv {
    min-height: 44rem;
  }
  body .mv .mv-head,
  body .mv .mv-body,
  body .mv .mv-cta {
    width: min(100%, 58rem);
  }
  body .mv .mv-panel {
    width: 75%;
  }
  body .mv .mv-char {
    right: 1rem;
    width: clamp(14rem, 27vw, 17rem);
  }
  body .mv .mv-items {
    width: 92%;
  }
}
/* =======================================================================================================================
   Tablet / Desktop fixed header + 2 CTA 2026-08-26
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 769px) {
  header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 9998;
  }
  header .header-nav {
    height: 5.4rem;
    padding: 0 clamp(1.8rem, 3.2vw, 4.8rem);
  }
  header .header-nav .logo img {
    height: 2.75rem;
  }
  header .header-nav .header-pc-nav {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }
  header .header-nav .header-pc-nav .tel {
    display: none;
  }
  header .header-nav .header-pc-nav .btn-header-phone,
  header .header-nav .header-pc-nav .btn-header-cta {
    min-height: 3.35rem;
    border: 0.15rem solid #1a2e1f;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-decoration: none;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  header .header-nav .header-pc-nav .btn-header-phone:hover,
  header .header-nav .header-pc-nav .btn-header-cta:hover {
    transform: translateY(-1px);
    opacity: 0.9;
  }
  header .header-nav .header-pc-nav .btn-header-phone {
    min-width: 12.7rem;
    padding: 0.5rem 1.25rem;
    background: #e29e30;
    color: #1a2e1f;
    flex-direction: column;
    gap: 0.12rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone span {
    font-size: 0.72rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone strong {
    font-size: 1rem;
    letter-spacing: 0.025em;
  }
  header .header-nav .header-pc-nav .btn-header-cta {
    min-width: 10.7rem;
    padding: 0.8rem 1.45rem;
    background: #398933;
    color: #fff;
    font-size: 0.95rem;
  }
  #wrapper {
    padding-top: 5.4rem;
  }
  #service, #about, #flow, #faq, #contact {
    scroll-margin-top: 5.8rem;
  }
  body .news .cta-buttons-anchor {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  header .header-nav {
    padding: 0 1.4rem;
  }
  header .header-nav .logo img {
    height: 2.35rem;
  }
  header .header-nav .header-pc-nav {
    gap: 0.5rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone {
    min-width: 10.3rem;
    padding-inline: 0.85rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone span {
    font-size: 0.65rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone strong {
    font-size: 0.88rem;
  }
  header .header-nav .header-pc-nav .btn-header-cta {
    min-width: 8.7rem;
    padding-inline: 1rem;
    font-size: 0.86rem;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV reference match 2026-08-26
   送付見本（1448×989）の構図を基準に、769px以上のみ再構成
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv {
    position: relative;
    isolation: isolate;
    width: 100%;
    height: clamp(48rem, 68.3vw, 61.8rem);
    min-height: 48rem;
    padding: 0;
    overflow: hidden;
    background: linear-gradient(135deg, #0a9234 0%, #078f31 46%, #0a8b31 100%);
  }
  /* 右上の大きなリサイクルマーク */
  body .first-view .mv::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 3.6%;
    right: -2.6%;
    width: 30%;
    height: 38%;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat center/contain;
    pointer-events: none;
  }
  /* 左下のストライプ円 */
  body .first-view .mv::after {
    content: "";
    position: absolute;
    z-index: 0;
    left: -12.5%;
    top: 45.8%;
    width: 31%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.09) 0, rgba(255, 255, 255, 0.09) 0.45rem, rgba(255, 255, 255, 0.025) 0.45rem, rgba(255, 255, 255, 0.025) 1rem);
    pointer-events: none;
  }
  /* タイトル */
  body .first-view .mv .mv-head.innerbox {
    position: absolute;
    z-index: 3;
    top: 4.5%;
    left: 16.25%;
    width: 52%;
    max-width: none;
    margin: 0;
    padding: 0;
    text-align: left;
  }
  body .first-view .mv .mv-head.innerbox::before {
    content: "";
    position: absolute;
    left: -15%;
    top: -1.35rem;
    width: 6.6rem;
    height: 4.8rem;
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.35) 0.15rem, transparent 0.18rem);
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.28rem;
    color: #fff;
    font-size: clamp(1.15rem, 1.7vw, 1.65rem);
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-shadow: 0 0.08rem 0.12rem rgba(0, 0, 0, 0.14);
  }
  body .first-view .mv .mv-head .mv-logo {
    margin: 0;
    color: #fff;
    font-size: clamp(3.8rem, 6.2vw, 5.75rem);
    line-height: 1.02;
    font-weight: 900;
    letter-spacing: 0.015em;
    text-shadow: 0 0.14rem 0.2rem rgba(0, 0, 0, 0.16);
  }
  /* 白パネル＋人物 */
  body .first-view .mv .mv-body.innerbox {
    position: absolute;
    z-index: 2;
    top: 22.8%;
    left: 16.25%;
    width: 66.5%;
    height: 29.2%;
    max-width: none;
    margin: 0;
    padding: 0;
    display: block;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
  }
  body .first-view .mv .mv-panel {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 69.5%;
    height: 100%;
    min-height: 0;
    padding: 2.15% 4.2%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #fff;
    border: 0.18rem solid #1a2e1f;
    border-radius: clamp(1.5rem, 2vw, 2.15rem);
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    margin: 0;
    color: #277f31;
    font-size: clamp(1.55rem, 2.4vw, 2.25rem);
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: 0.025em;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    position: relative;
    display: inline-block;
    width: -moz-max-content;
    width: max-content;
    margin: 0.18em 0 0;
    color: #f39a00;
    font-size: clamp(3.2rem, 5vw, 4.65rem);
    line-height: 1.03;
    font-weight: 900;
    letter-spacing: 0.015em;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: "";
    position: absolute;
    right: -3.4rem;
    top: -0.85rem;
    width: 3.5rem;
    height: 3.5rem;
    background: linear-gradient(68deg, transparent 46%, #f39a00 47% 54%, transparent 55%) 0 0/1.15rem 2.7rem no-repeat, linear-gradient(83deg, transparent 46%, #f39a00 47% 54%, transparent 55%) 1.25rem -0.15rem/1.15rem 2.7rem no-repeat;
    transform: rotate(-8deg);
    pointer-events: none;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin-top: 0.12rem;
  }
  body .first-view .mv .mv-char {
    position: absolute;
    z-index: 4;
    top: -25.5%;
    right: 1.1%;
    bottom: auto;
    width: 25.8%;
    display: block;
  }
  body .first-view .mv .mv-char img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  /* 商品群：人物より手前 */
  body .first-view .mv .mv-items.innerbox {
    position: absolute;
    z-index: 5;
    top: 47.3%;
    left: 14.9%;
    width: 77.2%;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-items img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  /* 下部コピー＋0円バッジ */
  body .first-view .mv .mv-cta.innerbox {
    position: absolute;
    z-index: 6;
    left: 15.1%;
    bottom: 3%;
    width: 72.5%;
    height: 18.8%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2.2rem;
  }
  body .first-view .mv .mv-cta::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: -15%;
    bottom: -12%;
    top: auto;
    transform: none;
    width: 7rem;
    height: 5.2rem;
    max-width: none;
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.34) 0.14rem, transparent 0.17rem);
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
  }
  body .first-view .mv .mv-cta::after {
    content: "";
    position: absolute;
    z-index: 0;
    right: -14.5%;
    bottom: -20%;
    width: 7rem;
    height: 5.2rem;
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.32) 0.14rem, transparent 0.17rem);
    background-size: 1.25rem 1.25rem;
    pointer-events: none;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    position: relative;
    z-index: 2;
    flex: 0 0 52%;
    width: 52%;
    max-width: none;
    height: auto;
    margin: 0 0 1.6% -2.1%;
  }
  body .first-view .mv .mv-cta .mv-badges {
    position: relative;
    z-index: 2;
    flex: 0 0 31%;
    width: 31%;
    max-width: none;
    height: auto;
    margin: 0 4.2% 0 0;
  }
}
/* タブレットは同じ構図を保ちつつ、左右余白を詰める */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv {
    height: clamp(48rem, 76vw, 53rem);
  }
  body .first-view .mv .mv-head.innerbox {
    left: 8%;
    width: 72%;
    top: 5.5%;
  }
  body .first-view .mv .mv-head.innerbox::before {
    left: -8%;
  }
  body .first-view .mv .mv-body.innerbox {
    left: 8%;
    width: 86%;
    top: 23%;
    height: 29%;
  }
  body .first-view .mv .mv-panel {
    width: 72%;
  }
  body .first-view .mv .mv-char {
    width: 27%;
    right: 0;
    top: -21%;
  }
  body .first-view .mv .mv-items.innerbox {
    left: 6.5%;
    width: 89%;
    top: 48%;
  }
  body .first-view .mv .mv-cta.innerbox {
    left: 7.5%;
    width: 86%;
    bottom: 3.2%;
  }
  body .first-view .mv::before {
    width: 37%;
    right: -7%;
  }
  body .first-view .mv::after {
    width: 40%;
    left: -18%;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV centered composition fix 2026-08-26
   商品・人物を中央へまとめ、NEWSに隠れない高さを確保
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv {
    height: clamp(54rem, 64vw, 60rem);
    min-height: 54rem;
    overflow: hidden;
  }
  /* NEWSは必ずMVの直後から始める */
  body .first-view .news {
    position: relative;
    z-index: 1;
    margin-top: 0 !important;
    clear: both;
  }
  /* 背景装飾を左右に寄せ、中央の商品群を邪魔しない */
  body .first-view .mv::before {
    top: 4%;
    right: -5%;
    width: 28%;
    height: 34%;
  }
  body .first-view .mv::after {
    left: -10%;
    top: 48%;
    width: 26%;
  }
  /* タイトルは中央コンテンツの左端に揃える */
  body .first-view .mv .mv-head.innerbox {
    top: 4.8%;
    left: 17.5%;
    width: 50%;
  }
  body .first-view .mv .mv-head.innerbox::before {
    left: -13%;
  }
  /* 白パネル＋人物を中央寄りにまとめる */
  body .first-view .mv .mv-body.innerbox {
    top: 21.5%;
    left: 17.5%;
    width: 65%;
    height: 27.5%;
  }
  body .first-view .mv .mv-panel {
    width: 70%;
    height: 100%;
    padding: 2.4% 4.4%;
  }
  body .first-view .mv .mv-char {
    top: -18%;
    right: 3.5%;
    width: 29%;
  }
  /* 商品群は横幅いっぱいにせず、中央へ */
  body .first-view .mv .mv-items.innerbox {
    top: 46.5%;
    left: 19%;
    width: 62%;
  }
  /* 下部コピーと0円バッジも中央の範囲内に収める */
  body .first-view .mv .mv-cta.innerbox {
    left: 18%;
    bottom: 3.8%;
    width: 64%;
    height: 18%;
    gap: 2rem;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    flex-basis: 48%;
    width: 48%;
    margin-left: 0;
  }
  body .first-view .mv .mv-cta .mv-badges {
    flex-basis: 29%;
    width: 29%;
    margin-right: 2%;
  }
  body .first-view .mv .mv-cta::before {
    left: -22%;
  }
  body .first-view .mv .mv-cta::after {
    right: -24%;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv {
    height: clamp(50rem, 82vw, 55rem);
    min-height: 50rem;
  }
  body .first-view .mv .mv-head.innerbox {
    left: 10%;
    width: 62%;
  }
  body .first-view .mv .mv-body.innerbox {
    left: 10%;
    width: 80%;
    top: 22%;
    height: 27%;
  }
  body .first-view .mv .mv-panel {
    width: 70%;
  }
  body .first-view .mv .mv-char {
    width: 29%;
    right: 2%;
    top: -14%;
  }
  body .first-view .mv .mv-items.innerbox {
    left: 13%;
    width: 74%;
    top: 48%;
  }
  body .first-view .mv .mv-cta.innerbox {
    left: 11%;
    width: 78%;
    bottom: 4%;
  }
  body .first-view .mv::before {
    right: -8%;
    width: 34%;
  }
  body .first-view .mv::after {
    left: -15%;
    width: 33%;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV natural height structure fix 2026-08-26
   absolute主体をやめ、主要ブロックを通常フローに戻してNEWSとの重なりを防止
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv {
    height: auto;
    min-height: 0;
    padding: 3.2vw 0 3.2vw;
    overflow: hidden;
  }
  /* タイトル：通常フロー */
  body .first-view .mv .mv-head.innerbox {
    position: relative;
    inset: auto;
    width: 64%;
    max-width: none;
    height: auto;
    margin: 0 auto;
    padding: 0;
  }
  /* 白パネル：通常フロー。人物だけこの中で重ねる */
  body .first-view .mv .mv-body.innerbox {
    position: relative;
    inset: auto;
    width: 64%;
    max-width: none;
    height: auto;
    margin: 2.2vw auto 0;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    height: auto;
  }
  body .first-view .mv .mv-panel {
    position: relative;
    width: 72%;
    height: auto;
    min-height: 19vw;
    padding: 2.3vw 3.8vw;
    box-sizing: border-box;
  }
  body .first-view .mv .mv-char {
    position: absolute;
    top: auto;
    right: 2.5%;
    bottom: -2.2vw;
    width: 30%;
    height: auto;
  }
  /* 商品画像：通常フローにして高さをMVへ加算 */
  body .first-view .mv .mv-items.innerbox {
    position: relative;
    inset: auto;
    width: 62%;
    max-width: none;
    height: auto;
    margin: -3.2vw auto 0;
    padding: 0;
    z-index: 5;
  }
  body .first-view .mv .mv-items img {
    position: relative;
    width: 100%;
    height: auto;
  }
  /* 下部コピー・バッジ：通常フロー */
  body .first-view .mv .mv-cta.innerbox {
    position: relative;
    inset: auto;
    width: 64%;
    max-width: none;
    height: auto;
    min-height: 0;
    margin: 1.1vw auto 0;
    padding: 0.5vw 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.2vw;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    flex: 0 0 48%;
    width: 48%;
    max-width: none;
    margin: 0;
  }
  body .first-view .mv .mv-cta .mv-badges {
    flex: 0 0 29%;
    width: 29%;
    max-width: none;
    margin: 0;
  }
  /* NEWSはMVの通常フロー終了後に必ず開始 */
  body .first-view .news {
    position: relative;
    z-index: 1;
    clear: both;
    margin-top: 0 !important;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv {
    padding: 4vw 0 4vw;
  }
  body .first-view .mv .mv-head.innerbox,
  body .first-view .mv .mv-body.innerbox,
  body .first-view .mv .mv-cta.innerbox {
    width: 82%;
  }
  body .first-view .mv .mv-body.innerbox {
    margin-top: 2.8vw;
  }
  body .first-view .mv .mv-panel {
    width: 72%;
    min-height: 25vw;
    padding: 3vw 4.2vw;
  }
  body .first-view .mv .mv-char {
    width: 31%;
    right: 2%;
    bottom: -2.8vw;
  }
  body .first-view .mv .mv-items.innerbox {
    width: 76%;
    margin-top: -3vw;
  }
  body .first-view .mv .mv-cta.innerbox {
    margin-top: 1.8vw;
    gap: 3vw;
  }
}
/* =======================================================================================================================
   Tablet / Desktop header size + scroll direction behavior 2026-08-26
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 769px) {
  header {
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease;
    will-change: transform;
  }
  header.is-scroll-hidden {
    transform: translateY(-105%);
    opacity: 0;
    pointer-events: none;
  }
  header .header-nav {
    height: 6.6rem;
    padding: 0 clamp(2rem, 3.5vw, 5.2rem);
  }
  header .header-nav .logo img {
    height: 3.45rem;
    width: auto;
  }
  header .header-nav .header-pc-nav {
    gap: 0.9rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone,
  header .header-nav .header-pc-nav .btn-header-cta {
    min-height: 4.05rem;
    border-width: 0.16rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone {
    min-width: 14.7rem;
    padding: 0.55rem 1.45rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone span {
    font-size: 0.82rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone strong {
    font-size: 1.18rem;
  }
  header .header-nav .header-pc-nav .btn-header-cta {
    min-width: 12rem;
    padding: 0.8rem 1.65rem;
    font-size: 1.05rem;
  }
  #wrapper {
    padding-top: 6.6rem;
  }
  #service,
  #about,
  #flow,
  #faq,
  #contact {
    scroll-margin-top: 7rem;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  header .header-nav {
    height: 6rem;
    padding: 0 1.5rem;
  }
  header .header-nav .logo img {
    height: 2.9rem;
  }
  header .header-nav .header-pc-nav {
    gap: 0.55rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone,
  header .header-nav .header-pc-nav .btn-header-cta {
    min-height: 3.6rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone {
    min-width: 11.2rem;
    padding-inline: 0.95rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone span {
    font-size: 0.68rem;
  }
  header .header-nav .header-pc-nav .btn-header-phone strong {
    font-size: 0.95rem;
  }
  header .header-nav .header-pc-nav .btn-header-cta {
    min-width: 9.2rem;
    padding-inline: 1.05rem;
    font-size: 0.9rem;
  }
  #wrapper {
    padding-top: 6rem;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV panel balance polish 2026-08-26
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv .mv-body.innerbox {
    margin-top: 1.65vw;
  }
  body .first-view .mv .mv-panel {
    width: 68%;
    min-height: 15.8vw;
    padding: 1.65vw 3.15vw;
    justify-content: center;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.45rem, 2.05vw, 2.05rem);
    line-height: 1.4;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.08em;
    font-size: clamp(3rem, 4.4vw, 4.25rem);
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    margin-top: 0.06rem;
  }
  body .first-view .mv .mv-char {
    right: 1.1%;
    bottom: -2.5vw;
    width: 34.5%;
  }
  body .first-view .mv .mv-items.innerbox {
    margin-top: -3vw;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv .mv-body.innerbox {
    margin-top: 2.1vw;
  }
  body .first-view .mv .mv-panel {
    width: 68.5%;
    min-height: 21vw;
    padding: 2.25vw 3.6vw;
  }
  body .first-view .mv .mv-char {
    width: 35%;
    right: 0.5%;
    bottom: -3vw;
  }
  body .first-view .mv .mv-items.innerbox {
    margin-top: -2.6vw;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV layout match 2026-08-26 09:37
   見本「メインビジュアル見本.jpg」基準。スマホは変更しない。
======================================================================================================================= */
@media screen and (min-width: 1025px) {
  body .first-view .mv {
    position: relative;
    width: 100%;
    height: 46.5vw;
    min-height: 620px;
    max-height: 950px;
    padding: 0;
    overflow: hidden;
    background: #398933;
  }
  /* 左側の半透明リサイクルマーク */
  body .first-view .mv::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: -2.5%;
    top: 4.5%;
    width: 41%;
    height: 70%;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat left center/contain;
    pointer-events: none;
  }
  body .first-view .mv::after {
    content: none;
    display: none;
  }
  /* タイトル */
  body .first-view .mv .mv-head.innerbox {
    position: absolute;
    z-index: 5;
    top: 4.2%;
    left: 37%;
    width: 43%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-head.innerbox::before {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.08em 10%;
    font-size: clamp(1.45rem, 1.8vw, 2.15rem);
    line-height: 1.25;
    letter-spacing: 0.04em;
  }
  body .first-view .mv .mv-head .mv-logo {
    margin: 0;
    font-size: clamp(4.4rem, 6vw, 7rem);
    line-height: 1.02;
    letter-spacing: 0.035em;
    white-space: nowrap;
  }
  /* 白枠＋スタッフ */
  body .first-view .mv .mv-body.innerbox {
    position: absolute;
    z-index: 3;
    top: 31.5%;
    left: 21.5%;
    width: 58%;
    max-width: none;
    height: 26%;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    height: 100%;
  }
  body .first-view .mv .mv-panel {
    position: relative;
    z-index: 1;
    display: block;
    box-sizing: border-box;
    width: 63%;
    height: 100%;
    min-height: 0;
    padding: 3.6% 5.5%;
    border: 0.19rem solid #1a2e1f;
    border-radius: 1.55rem;
    background: #fff;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.55rem, 2.15vw, 2.45rem);
    line-height: 1.38;
    font-weight: 600;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.08em;
    font-size: clamp(3.4rem, 4.9vw, 5.8rem);
    line-height: 1.05;
    font-weight: 900;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 63%;
    max-width: 18rem;
    margin-top: 0.12em;
  }
  body .first-view .mv .mv-char {
    position: absolute;
    z-index: 4;
    top: -20%;
    right: 13.5%;
    bottom: auto;
    width: 29.5%;
    height: auto;
  }
  body .first-view .mv .mv-char img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  /* 商品群：左下にまとめる */
  body .first-view .mv .mv-items.innerbox {
    position: absolute;
    z-index: 6;
    top: 52.5%;
    left: 2.8%;
    width: 54%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-items img {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
  /* 下部コピー＋0円バッジ */
  body .first-view .mv .mv-cta.innerbox {
    position: absolute;
    z-index: 7;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: block;
    pointer-events: none;
  }
  body .first-view .mv .mv-cta::before,
  body .first-view .mv .mv-cta::after {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-cta .mv-badges {
    position: absolute;
    z-index: 2;
    top: 35%;
    left: 58.5%;
    width: 27%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    position: absolute;
    z-index: 2;
    top: 61.5%;
    left: 55.5%;
    width: 43%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  body .first-view .news {
    position: relative;
    z-index: 1;
    clear: both;
    margin-top: 0 !important;
  }
}
/* タブレット：PC構図を保ちながら縦方向に少し余裕を持たせる */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv {
    position: relative;
    width: 100%;
    height: 72vw;
    min-height: 570px;
    max-height: 760px;
    padding: 0;
    overflow: hidden;
    background: #398933;
  }
  body .first-view .mv::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: -8%;
    top: 6%;
    width: 52%;
    height: 67%;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat left center/contain;
    pointer-events: none;
  }
  body .first-view .mv::after,
  body .first-view .mv .mv-head.innerbox::before {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-head.innerbox {
    position: absolute;
    z-index: 5;
    top: 5%;
    left: 27%;
    width: 55%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.08em 7%;
    font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  }
  body .first-view .mv .mv-head .mv-logo {
    font-size: clamp(3.6rem, 7.5vw, 5.2rem);
    line-height: 1.02;
    white-space: nowrap;
  }
  body .first-view .mv .mv-body.innerbox {
    position: absolute;
    z-index: 3;
    top: 29%;
    left: 12%;
    width: 76%;
    max-width: none;
    height: 27%;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    height: 100%;
  }
  body .first-view .mv .mv-panel {
    width: 66%;
    height: 100%;
    min-height: 0;
    padding: 4% 5.3%;
    border: 0.18rem solid #1a2e1f;
    border-radius: 1.4rem;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.25rem, 2.45vw, 1.7rem);
    line-height: 1.38;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.08em;
    font-size: clamp(2.8rem, 5.6vw, 4rem);
    line-height: 1.05;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 65%;
    margin-top: 0.1em;
  }
  body .first-view .mv .mv-char {
    position: absolute;
    z-index: 4;
    top: -17%;
    right: 5%;
    bottom: auto;
    width: 30%;
  }
  body .first-view .mv .mv-char img {
    width: 100%;
    max-width: none;
    height: auto;
  }
  body .first-view .mv .mv-items.innerbox {
    position: absolute;
    z-index: 6;
    top: 52%;
    left: 3%;
    width: 61%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-items img {
    width: 100%;
    max-width: none;
    height: auto;
  }
  body .first-view .mv .mv-cta.innerbox {
    position: absolute;
    z-index: 7;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: block;
    pointer-events: none;
  }
  body .first-view .mv .mv-cta::before,
  body .first-view .mv .mv-cta::after {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-cta .mv-badges {
    position: absolute;
    top: 36%;
    left: 61.5%;
    width: 32%;
    max-width: none;
    margin: 0;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    position: absolute;
    top: 64%;
    left: 48%;
    width: 50%;
    max-width: none;
    margin: 0;
  }
  body .first-view .news {
    position: relative;
    z-index: 1;
    clear: both;
    margin-top: 0 !important;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV final layering + center composition 2026-08-26
   ※スマホ（768px以下）は変更しない
   重なり順（前→後）：mv-items → mv-cta-copy → mv-char → mv-panel
======================================================================================================================= */
@media screen and (min-width: 1025px) {
  body .first-view {
    overflow: visible;
  }
  body .first-view .mv {
    overflow: visible;
    height: 46.5vw;
    min-height: 620px;
    max-height: 950px;
  }
  /* 右側の余白に薄いストライプ円 */
  body .first-view .mv::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    right: -7.5vw;
    top: 51%;
    width: 25vw;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.075) 0 8px, transparent 8px 18px);
    pointer-events: none;
  }
  body .first-view .mv .mv-body.innerbox,
  body .first-view .mv .mv-cta.innerbox {
    z-index: auto;
  }
  /* 白パネルは一番奥 */
  body .first-view .mv .mv-panel {
    z-index: 10;
  }
  /* 人物は画面中央。白パネルより手前 */
  body .first-view .mv .mv-char {
    z-index: 20;
    left: 50%;
    right: auto;
    top: -20%;
    bottom: auto;
    width: 26.5%;
    transform: translateX(-50%);
  }
  /* 商品はメインビジュアル最前面。NEWS白背景へ少し重ねる */
  body .first-view .mv .mv-items.innerbox {
    z-index: 40;
    top: auto;
    bottom: -1.15vw;
    left: 2.6%;
    width: 54%;
  }
  /* コピーは人物より前、商品より後ろ。見本に合わせ少し回転 */
  body .first-view .mv .mv-cta.innerbox {
    z-index: auto;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    z-index: 30;
    top: 61.5%;
    left: 55.5%;
    width: 43%;
    transform: rotate(3.5deg);
    transform-origin: left center;
  }
  body .first-view .mv .mv-cta .mv-badges {
    z-index: 35;
  }
  /* NEWSはMV直下。商品だけが少し上から重なる */
  body .first-view .news {
    z-index: 1;
    margin-top: 0 !important;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view {
    overflow: visible;
  }
  body .first-view .mv {
    overflow: visible;
  }
  body .first-view .mv::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    right: -11vw;
    top: 54%;
    width: 31vw;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.07) 0 6px, transparent 6px 14px);
    pointer-events: none;
  }
  body .first-view .mv .mv-body.innerbox,
  body .first-view .mv .mv-cta.innerbox {
    z-index: auto;
  }
  body .first-view .mv .mv-panel {
    z-index: 10;
  }
  body .first-view .mv .mv-char {
    z-index: 20;
    left: 50%;
    right: auto;
    top: -17%;
    bottom: auto;
    width: 28.5%;
    transform: translateX(-50%);
  }
  body .first-view .mv .mv-items.innerbox {
    z-index: 40;
    top: auto;
    bottom: -1.35vw;
    left: 2.8%;
    width: 61%;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    z-index: 30;
    transform: rotate(3.5deg);
    transform-origin: left center;
  }
  body .first-view .mv .mv-cta .mv-badges {
    z-index: 35;
  }
  body .first-view .news {
    z-index: 1;
    margin-top: 0 !important;
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV reference final match 2026-08-26
   見本「メインビジュアル見本(1).jpg」に合わせた最終調整
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 1025px) {
  body .first-view .mv {
    height: clamp(680px, 45.8vw, 940px);
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  /* 左のリサイクルマーク */
  body .first-view .mv::before {
    left: -2.5%;
    top: 4%;
    width: 38%;
    height: 69%;
  }
  /* 見本の左下ストライプ円 */
  body .first-view .mv::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    left: -7vw;
    right: auto;
    top: auto;
    bottom: -6vw;
    width: 27vw;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.075) 0 8px, transparent 8px 18px);
    pointer-events: none;
  }
  /* タイトル */
  body .first-view .mv .mv-head.innerbox {
    top: 4.2%;
    left: 36.5%;
    width: 44%;
  }
  /* 白パネル：見本より小さくならないよう少し広く・高く */
  body .first-view .mv .mv-body.innerbox {
    top: 31.8%;
    left: 21.5%;
    width: 58%;
    height: 29%;
  }
  body .first-view .mv .mv-panel {
    width: 68%;
    height: 100%;
    padding: 4.2% 5.3%;
    border-radius: 1.5rem;
    z-index: 10;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(1.5rem, 2vw, 2.25rem);
    line-height: 1.38;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.04em;
    font-size: clamp(3.25rem, 4.55vw, 5.4rem);
    line-height: 1.03;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 63%;
    max-width: 18rem;
    margin-top: 0.08em;
  }
  /* 人物：見本と同じくらい大きく、中央より少し左 */
  body .first-view .mv .mv-char {
    z-index: 20;
    left: 48.3%;
    right: auto;
    top: -38%;
    bottom: auto;
    width: 37%;
    transform: translateX(-50%);
  }
  /* 商品群：サイズは維持し、見本位置まで上・左へ */
  body .first-view .mv .mv-items.innerbox {
    z-index: 40;
    top: auto;
    bottom: 0.35vw;
    left: 1.6%;
    width: 54%;
  }
  /* 0円バッジ：見本の位置へ少し左上 */
  body .first-view .mv .mv-cta .mv-badges {
    z-index: 35;
    top: 34.5%;
    left: 57.1%;
    width: 27%;
  }
  /* 曲線コピー：見本のように少し左上へ、角度も緩く */
  body .first-view .mv .mv-cta .mv-cta-copy {
    z-index: 30;
    top: 58%;
    left: 52.5%;
    width: 44.5%;
    transform: rotate(-2deg);
    transform-origin: left center;
  }
  body .first-view .news {
    position: relative;
    z-index: 1;
    margin-top: 0 !important;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  body .first-view .mv {
    height: clamp(590px, 72vw, 735px);
    min-height: 0;
    max-height: none;
  }
  body .first-view .mv::after {
    left: -10vw;
    right: auto;
    top: auto;
    bottom: -8vw;
    width: 32vw;
  }
  body .first-view .mv .mv-body.innerbox {
    top: 29.5%;
    height: 29%;
  }
  body .first-view .mv .mv-panel {
    width: 69%;
  }
  body .first-view .mv .mv-char {
    left: 48%;
    top: -34%;
    width: 39%;
  }
  body .first-view .mv .mv-items.innerbox {
    left: 1.8%;
    bottom: 0.2vw;
  }
  body .first-view .mv .mv-cta .mv-badges {
    left: 59.5%;
    top: 35%;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    left: 49%;
    top: 59%;
    width: 49%;
    transform: rotate(-2deg);
  }
}
/* =======================================================================================================================
   Tablet / Desktop MV proportional responsive canvas 2026-08-26
   見本「メインビジュアル見本.jpg」の構図を 769px 以上で同比率のまま縮放する。
   958px / 1805px など画面幅が変わっても、タブレット専用の縦長レイアウトへ切り替えない。
   ※スマホ（768px以下）は変更しない
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view {
    overflow: visible;
  }
  body .first-view .mv {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: min(46.1vw, 944px);
    min-height: 0;
    max-height: none;
    padding: 0;
    overflow: visible;
    background: #398933;
  }
  /* 背景の大きなリサイクルマーク */
  body .first-view .mv::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: -2.5%;
    top: 4%;
    width: 38%;
    height: 69%;
    background: url("assets/buzzreuse/images/main-back01.webp") no-repeat left center/contain;
    pointer-events: none;
  }
  /* 左下ストライプ円 */
  body .first-view .mv::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    left: -7%;
    right: auto;
    top: auto;
    bottom: -13%;
    width: 27%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.075) 0 8px, transparent 8px 18px);
    pointer-events: none;
  }
  /* タイトル：常に同じ相対位置 */
  body .first-view .mv .mv-head.innerbox {
    position: absolute;
    z-index: 5;
    top: 4.2%;
    left: 36.5%;
    width: 44%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
    text-align: left;
  }
  body .first-view .mv .mv-head.innerbox::before {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.08em 9%;
    font-size: clamp(14px, 1.8vw, 35px);
    line-height: 1.25;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  body .first-view .mv .mv-head .mv-logo {
    margin: 0;
    font-size: clamp(34px, 6vw, 116px);
    line-height: 1.02;
    letter-spacing: 0.035em;
    white-space: nowrap;
  }
  /* 白パネル＋人物を置く座標系 */
  body .first-view .mv .mv-body.innerbox {
    position: absolute;
    z-index: 3;
    top: 31.8%;
    left: 21.5%;
    width: 58%;
    max-width: none;
    height: 29%;
    margin: 0;
    padding: 0;
    display: block;
  }
  body .first-view .mv .mv-panel-wrap {
    position: relative;
    width: 100%;
    height: 100%;
  }
  body .first-view .mv .mv-panel {
    position: relative;
    z-index: 10;
    box-sizing: border-box;
    display: block;
    width: 68%;
    height: 100%;
    min-height: 0;
    padding: 4.2% 5.3%;
    border: max(2px, 0.17vw) solid #1a2e1f;
    border-radius: clamp(12px, 1.5vw, 29px);
    background: #fff;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(14px, 2vw, 39px);
    line-height: 1.38;
    font-weight: 600;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.04em;
    font-size: clamp(31px, 4.55vw, 88px);
    line-height: 1.03;
    font-weight: 900;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    display: block;
    width: 63%;
    max-width: none;
    height: auto;
    margin-top: 0.08em;
  }
  /* 人物：パネル基準の同比率で中央付近 */
  body .first-view .mv .mv-char {
    position: absolute;
    z-index: 20;
    left: 48.3%;
    right: auto;
    top: -38%;
    bottom: auto;
    width: 37%;
    height: auto;
    transform: translateX(-50%);
  }
  body .first-view .mv .mv-char img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  /* 商品群：画面幅に比例して同じ位置・大きさを維持 */
  body .first-view .mv .mv-items.innerbox {
    position: absolute;
    z-index: 40;
    top: auto;
    bottom: 0.35%;
    left: 1.6%;
    width: 54%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
  }
  body .first-view .mv .mv-items img {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
  /* 0円バッジ＋曲線コピー用の全面座標系 */
  body .first-view .mv .mv-cta.innerbox {
    position: absolute;
    z-index: auto;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: block;
    pointer-events: none;
  }
  body .first-view .mv .mv-cta::before,
  body .first-view .mv .mv-cta::after {
    content: none;
    display: none;
  }
  body .first-view .mv .mv-cta .mv-badges {
    position: absolute;
    z-index: 35;
    top: 34.5%;
    left: 57.1%;
    width: 27%;
    max-width: none;
    height: auto;
    margin: 0;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    position: absolute;
    z-index: 30;
    top: 58%;
    left: 52.5%;
    width: 44.5%;
    max-width: none;
    height: auto;
    margin: 0;
    transform: rotate(-2deg);
    transform-origin: left center;
  }
  /* NEWS は必ず MV の実高さの直後から開始 */
  body .first-view .news {
    position: relative;
    z-index: 1;
    clear: both;
    margin-top: 0 !important;
  }
}
/* =======================================================================================================================
   MV final layout polish 2026-08-26 10:14
   769px以上：比率レスポンシブは維持しつつ、パネル内収まり・CTAコピー角度を最終調整
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv .mv-panel {
    width: 72%;
    padding: 4.2% 30% 4.2% 5.2%;
    overflow: hidden;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: clamp(14px, 1.75vw, 34px);
    line-height: 1.42;
    white-space: nowrap;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    margin-top: 0.08em;
    font-size: clamp(30px, 3.5vw, 68px);
    line-height: 1.02;
    white-space: nowrap;
    max-width: 100%;
  }
  body .first-view .mv .mv-panel .mv-panel-price::after {
    content: none !important;
    display: none !important;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 78%;
    max-width: 100%;
    margin-top: 0.08em;
  }
  body .first-view .mv .mv-cta .mv-badges {
    top: 34.2%;
    left: 60.5%;
    width: 27.5%;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    top: 61.5%;
    left: 51.5%;
    width: 40%;
    transform: rotate(-15deg);
    transform-origin: left center;
  }
}
/* =======================================================================================================================
   MV composition polish 2026-08-26 10:25
   769px以上：タイトル中央寄せ／パネル右端を人物で隠す／CTAコピーを商品群からつなぐ／ストライプ円を左へ
======================================================================================================================= */
@media screen and (min-width: 769px) {
  /* タイトルは画面中央基準 */
  body .first-view .mv .mv-head.innerbox {
    left: 50%;
    width: 54%;
    transform: translateX(-50%);
    text-align: center;
  }
  body .first-view .mv .mv-head .mv-catch {
    margin: 0 0 0.08em;
    text-align: center;
  }
  body .first-view .mv .mv-head .mv-logo {
    margin: 0 auto;
    text-align: center;
  }
  /* 白枠は人物の胴体に右端を隠してもらう幅に。下側にはしっかり余白を残す */
  body .first-view .mv .mv-panel {
    width: 56%;
    height: 100%;
    padding: 4.8% 5% 8.4% 5.5%;
    overflow: hidden;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    max-width: 88%;
    font-size: clamp(14px, 1.7vw, 33px);
    line-height: 1.42;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    max-width: 88%;
    margin-top: 0.12em;
    font-size: clamp(30px, 3.35vw, 65px);
    line-height: 1;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 72%;
    margin-top: 0.12em;
  }
  /* 商品群の下に潜らせ、右端から曲線が出てくるようにする */
  body .first-view .mv .mv-cta .mv-cta-copy {
    z-index: 30;
    top: 67.2%;
    left: 50.2%;
    width: 46%;
    transform: rotate(-15deg);
    transform-origin: left center;
  }
  /* 左下ストライプ円をさらに左へ */
  body .first-view .mv::after {
    left: -13.5%;
    bottom: -13%;
    width: 28%;
  }
}
/* =======================================================================================================================
   MV panel spacing polish 2026-08-26 10:32
   769px以上：無料査定下の余白を確保し、白枠右端を人物の下で終わらせる
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv .mv-panel {
    width: 51.5%;
    height: 112%;
    padding: 5.2% 5% 10.5% 5.5%;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    max-width: 92%;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    max-width: 92%;
    margin-top: 0.14em;
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 72%;
    margin-top: 0.14em;
  }
}
/* =======================================================================================================================
   MV panel final compact polish 2026-08-26
   769px以上：テキストを上へ、下余白を少し圧縮、右端をさらに短く
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv .mv-panel {
    width: 49%;
    height: 105%;
    padding: 3.6% 4% 7% 5.5%;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    max-width: 94%;
    transform: translateY(-3%);
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    max-width: 94%;
    margin-top: 0.08em;
    transform: translateY(-3%);
  }
  body .first-view .mv .mv-panel .mv-panel-price .mv-panel-deco {
    width: 70%;
    margin-top: 0.1em;
  }
}
/* =======================================================================================================================
   MV stripe circle position 2026-08-26
   769px以上：mv::after のストライプ円を画面右側へ移動
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv::after {
    left: auto;
    right: -13.5%;
    top: auto;
    bottom: -13%;
    width: 28%;
  }
}
/* =======================================================================================================================
   MV CTA copy final placement 2026-08-26
   769px以上：見本に合わせて位置・幅を固定
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .mv .mv-cta .mv-cta-copy {
    top: 71.2%;
    left: 56.9%;
    width: 41%;
    transform: rotate(-15deg);
    transform-origin: left center;
  }
}
/* =======================================================================================================================
   MV desktop max-width lock 2026-08-26
   1440pxを超えたらパーツの拡大を止め、1440px基準の構図を中央に維持する
======================================================================================================================= */
@media screen and (min-width: 1441px) {
  body .first-view .mv {
    height: 664px;
  }
  body .first-view .mv::before {
    left: calc(50% - 756px);
    top: 27px;
    width: 547px;
    height: 458px;
  }
  body .first-view .mv::after {
    left: auto;
    right: calc(50% - 914px);
    bottom: -86px;
    width: 403px;
  }
  body .first-view .mv .mv-head.innerbox {
    top: 28px;
    left: 50%;
    width: 778px;
    transform: translateX(-50%);
  }
  body .first-view .mv .mv-head .mv-catch {
    font-size: 26px;
  }
  body .first-view .mv .mv-head .mv-logo {
    font-size: 86px;
  }
  body .first-view .mv .mv-body.innerbox {
    top: 211px;
    left: calc(50% - 410px);
    width: 835px;
    height: 193px;
  }
  body .first-view .mv .mv-panel .mv-panel-text {
    font-size: 24px;
  }
  body .first-view .mv .mv-panel .mv-panel-price {
    font-size: 48px;
  }
  body .first-view .mv .mv-items.innerbox {
    left: calc(50% - 697px);
    width: 778px;
    bottom: 2px;
  }
  body .first-view .mv .mv-cta.innerbox {
    left: calc(50% - 720px);
    right: auto;
    top: 0;
    bottom: auto;
    width: 1440px;
    height: 664px;
  }
  body .first-view .mv .mv-cta .mv-badges {
    top: 227px;
    left: 879px;
    width: 396px;
  }
  body .first-view .mv .mv-cta .mv-cta-copy {
    top: 473px;
    left: 819px;
    width: 590px;
    transform: rotate(-15deg);
    transform-origin: left center;
  }
}
/* =======================================================================================================================
   NEWS spacing + background center 2026-08-26
   769px以上：上下余白を5remで統一し、news::beforeをセクション中央へ
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .first-view .news {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  body .first-view .news::before {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
/* =======================================================================================================================
   Service tablet / desktop reference layout 2026-08-26
   ※スマホ（768px以下）は既存レイアウトを維持
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .service {
    padding-top: clamp(3.5rem, 5vw, 5.5rem);
    padding-bottom: clamp(4rem, 6vw, 6.5rem);
    overflow: hidden;
  }
  body .service::before {
    top: clamp(1rem, 2.5vw, 3rem);
    right: clamp(-7rem, -5vw, -3rem);
    width: clamp(18rem, 31vw, 34rem);
    height: clamp(18rem, 31vw, 34rem);
    background: url(assets/buzzreuse/images/section-02-back.svg) no-repeat center/contain;
  }
  body .service .innerbox {
    width: min(88vw, 1420px);
    max-width: 1420px;
    margin: 0 auto;
    padding: 0;
    position: relative;
  }
  body .service .service-title {
    text-align: center;
    font-size: clamp(2rem, 2.7vw, 3rem);
    line-height: 1.48;
    letter-spacing: 0.035em;
  }
  body .service .category-list {
    width: 74%;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    -moz-column-gap: clamp(1.5rem, 2.8vw, 3.2rem);
         column-gap: clamp(1.5rem, 2.8vw, 3.2rem);
    row-gap: clamp(2.2rem, 4.2vw, 4.6rem);
    margin-top: clamp(2.6rem, 4vw, 4.8rem);
    align-items: start;
  }
  body .service .category-list li {
    width: auto;
    margin: 0;
    min-width: 0;
    text-align: center;
  }
  body .service .category-list .category-photo {
    width: 100%;
    max-width: 240px;
    margin: 0 auto;
    border: 0;
  }
  body .service .category-list p {
    margin-top: clamp(0.65rem, 1vw, 1rem);
    font-size: clamp(1rem, 1.4vw, 1.45rem);
    line-height: 1.35;
    white-space: nowrap;
  }
  /* 下段の右半分を使って、見本どおり白枠＋人物を配置 */
  body .service .service-note {
    position: absolute;
    right: 0;
    bottom: clamp(0.3rem, 1vw, 1rem);
    width: 50%;
    min-height: clamp(8.7rem, 13.5vw, 12.5rem);
    margin: 0;
    padding: clamp(1.35rem, 2vw, 2.1rem) clamp(8.8rem, 13vw, 13.5rem) clamp(1.35rem, 2vw, 2.1rem) clamp(2rem, 3.1vw, 3.4rem);
    border-width: 0.2rem;
    border-radius: clamp(1.3rem, 1.8vw, 2rem);
    display: flex;
    align-items: center;
    background: #fff;
    overflow: visible;
  }
  body .service .service-note .service-note-text {
    padding-right: 0;
    color: #398933;
    font-size: clamp(1rem, 1.45vw, 1.5rem);
    line-height: 1.65;
    letter-spacing: 0.03em;
    white-space: nowrap;
    position: relative;
    z-index: 2;
  }
  body .service .service-note .service-note-char {
    position: absolute;
    width: clamp(14rem, 21vw, 22rem);
    right: clamp(-4.8rem, -4.2vw, -2.5rem);
    bottom: clamp(-6.4rem, -5vw, -4rem);
    z-index: 3;
    margin: 0;
  }
  body .service .service-note .service-note-char img {
    width: 100%;
    max-width: none;
    height: auto;
    display: block;
  }
}
/* かなり横長の画面でも、サービス内の各パーツはこれ以上広がらない */
@media screen and (min-width: 1600px) {
  body .service .innerbox {
    width: 1420px;
  }
}
/* =======================================================================================================================
   Service desktop composition polish 2026-08-26
   769px以上：1240px基準・カテゴリ中央寄せ・人物をセクション下端へ接地
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .service {
    --service-note-bottom: clamp(3.2rem, 3.8vw, 4.6rem);
    padding-bottom: 0;
  }
  body .service .innerbox {
    width: min(100% - 4rem, 1240px);
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
  }
  body .service .category-list {
    width: 78%;
    margin-left: auto;
    margin-right: auto;
  }
  body .service .service-note {
    right: 2.5%;
    bottom: var(--service-note-bottom);
    width: 47%;
    min-height: clamp(8.2rem, 11.2vw, 10.8rem);
    padding: clamp(1.2rem, 1.7vw, 1.8rem) clamp(10.5rem, 15vw, 14rem) clamp(1.2rem, 1.7vw, 1.8rem) clamp(1.8rem, 2.5vw, 2.7rem);
    border-width: 0.2rem;
    overflow: visible;
  }
  body .service .service-note .service-note-text {
    font-size: clamp(0.98rem, 1.25vw, 1.3rem);
    line-height: 1.6;
    white-space: nowrap;
  }
  body .service .service-note .service-note-char {
    width: clamp(19rem, 25vw, 24rem);
    right: clamp(-7.4rem, -6.5vw, -4.8rem);
    bottom: calc(-1 * var(--service-note-bottom));
    z-index: 4;
  }
}
@media screen and (min-width: 1440px) {
  body .service .innerbox {
    width: 1240px;
  }
  body .service .category-list {
    width: 940px;
  }
  body .service .service-note {
    width: 575px;
    right: 28px;
  }
  body .service .service-note .service-note-char {
    width: 360px;
    right: -92px;
  }
}
/* =======================================================================================================================
   Service responsive lock + bottom spacing 2026-08-26
   769px以上：1240pxキャンバス基準。1440px以上では各パーツを固定。
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .service {
    --service-note-bottom: clamp(48px, 4vw, 62px);
    --service-bottom-space: clamp(38px, 3.8vw, 56px);
    padding-top: clamp(64px, 6vw, 88px);
    padding-bottom: var(--service-bottom-space);
  }
  body .service .innerbox {
    width: min(100% - 64px, 1240px);
    max-width: 1240px;
  }
  body .service::before {
    top: clamp(20px, 2vw, 34px);
    right: clamp(-92px, -5vw, -54px);
    width: clamp(300px, 28vw, 440px);
    height: clamp(300px, 28vw, 440px);
  }
  body .service .service-title {
    font-size: clamp(30px, 2.55vw, 42px);
    line-height: 1.48;
  }
  body .service .category-list {
    width: min(78%, 940px);
    -moz-column-gap: clamp(24px, 2.6vw, 42px);
         column-gap: clamp(24px, 2.6vw, 42px);
    row-gap: clamp(44px, 4vw, 64px);
    margin-top: clamp(42px, 4vw, 60px);
    margin-bottom: clamp(72px, 7vw, 96px);
  }
  body .service .category-list .category-photo {
    max-width: 220px;
  }
  body .service .category-list p {
    margin-top: clamp(10px, 1vw, 14px);
    font-size: clamp(17px, 1.35vw, 22px);
  }
  body .service .service-note {
    width: min(47%, 575px);
    right: 28px;
    bottom: var(--service-note-bottom);
    min-height: clamp(138px, 11vw, 170px);
    padding: clamp(20px, 1.8vw, 28px) clamp(168px, 14vw, 205px) clamp(20px, 1.8vw, 28px) clamp(28px, 2.4vw, 38px);
    border-radius: clamp(20px, 1.7vw, 28px);
  }
  body .service .service-note .service-note-text {
    font-size: clamp(16px, 1.22vw, 20px);
    line-height: 1.6;
  }
  body .service .service-note .service-note-char {
    width: clamp(285px, 25vw, 360px);
    right: clamp(-92px, -6vw, -58px);
    bottom: calc(-1 * (var(--service-note-bottom) + var(--service-bottom-space)));
  }
}
/* 1440px以上：これ以上は中身を拡大しない */
@media screen and (min-width: 1440px) {
  body .service {
    --service-note-bottom: 58px;
    --service-bottom-space: 52px;
    padding-top: 82px;
    padding-bottom: var(--service-bottom-space);
  }
  body .service .innerbox {
    width: 1240px;
    max-width: 1240px;
  }
  body .service::before {
    top: 28px;
    right: -72px;
    width: 420px;
    height: 420px;
  }
  body .service .service-title {
    font-size: 40px;
  }
  body .service .category-list {
    width: 940px;
    -moz-column-gap: 38px;
         column-gap: 38px;
    row-gap: 58px;
    margin-top: 56px;
    margin-bottom: 90px;
  }
  body .service .category-list .category-photo {
    width: 100%;
    max-width: 212px;
  }
  body .service .category-list p {
    margin-top: 13px;
    font-size: 21px;
  }
  body .service .service-note {
    width: 575px;
    right: 28px;
    bottom: var(--service-note-bottom);
    min-height: 166px;
    padding: 26px 198px 26px 36px;
    border-radius: 26px;
  }
  body .service .service-note .service-note-text {
    font-size: 19px;
  }
  body .service .service-note .service-note-char {
    width: 350px;
    right: -86px;
    bottom: calc(-1 * (var(--service-note-bottom) + var(--service-bottom-space)));
  }
}
/* =======================================================================================================================
   Service note character / panel final polish 2026-08-26
   769px以上：人物を拡大、下端をservice最下部へ接地、白枠右端を短くする
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .service {
    --service-note-bottom: clamp(48px, 4vw, 58px);
    --service-bottom-space: clamp(42px, 3.8vw, 52px);
    padding-bottom: var(--service-bottom-space);
  }
  body .service .service-note {
    width: min(43%, 525px);
    right: clamp(54px, 5vw, 82px);
    bottom: var(--service-note-bottom);
    min-height: clamp(138px, 11vw, 166px);
    padding-right: clamp(175px, 15vw, 210px);
  }
  body .service .service-note .service-note-char {
    width: clamp(330px, 29vw, 405px);
    right: clamp(-122px, -8.2vw, -88px);
    bottom: calc(-1 * (var(--service-note-bottom) + var(--service-bottom-space)));
    z-index: 4;
  }
}
@media screen and (min-width: 1440px) {
  body .service {
    --service-note-bottom: 56px;
    --service-bottom-space: 50px;
  }
  body .service .service-note {
    width: 520px;
    right: 76px;
    bottom: var(--service-note-bottom);
    min-height: 164px;
    padding: 26px 205px 26px 34px;
  }
  body .service .service-note .service-note-char {
    width: 400px;
    right: -118px;
    bottom: calc(-1 * (var(--service-note-bottom) + var(--service-bottom-space)));
  }
}
/* =======================================================================================================================
   Service note stable composition 2026-08-26
   769px以上：人物の基準箱と「見える白枠」を分離。
   白枠の幅・高さを変えても人物位置が動かない構造に統一する。
======================================================================================================================= */
.service-note-wrap {
  display: contents;
}

@media screen and (min-width: 769px) {
  body .service {
    --service-note-overhang: clamp(60px, 8vw, 66px);
    padding-bottom: var(--service-note-overhang);
  }
  body .service .innerbox {
    position: relative;
  }
  body .service .category-list {
    margin-bottom: 0;
    padding-bottom: 0;
  }
  /* 位置決め用の基準箱。人物・白枠・文字はすべてこの幅を基準に縮尺する */
  body .service .service-note-wrap {
    display: block;
    position: absolute;
    right: clamp(34px, 5.3vw, 76px);
    bottom: calc(-1 * var(--service-note-overhang));
    width: min(42%, 520px);
    aspect-ratio: 520/270;
    container-type: inline-size;
    z-index: 5;
    pointer-events: none;
  }
  /* service-note本体は人物の位置基準として100%を維持する */
  body .service .service-note-wrap .service-note {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
    display: block;
    box-sizing: border-box;
  }
  /* 見える白枠だけを独立して縮める。人物の座標には影響しない */
  body .service .service-note-wrap .service-note::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 0;
    top: 2.5cqw;
    width: 88%;
    height: 57.74%;
    box-sizing: border-box;
    border: 3px solid #1a2e1f;
    border-radius: 5cqw;
    background: #fff;
  }
  body .service .service-note-wrap .service-note-text {
    position: absolute;
    z-index: 2;
    left: 6.5cqw;
    top: 9cqw;
    margin: 0;
    padding: 0;
    color: #398933;
    font-size: 3.65cqw;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
  /* 人物は100%基準箱に固定。白枠幅を変えても追従しない */
  body .service .service-note-wrap .service-note-char {
    position: absolute;
    z-index: 4;
    width: 76.9cqw;
    right: -22.7cqw;
    bottom: 0;
    margin: 0;
  }
  body .service .service-note-wrap .service-note-char img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
}
/* 1440px以上は1240pxキャンバス内で完全固定 */
@media screen and (min-width: 1440px) {
  body .service {
    --service-note-overhang: 66px;
  }
  body .service .service-note-wrap {
    right: 76px;
    width: 520px;
  }
}
/* =======================================================================================================================
   ABOUT tablet / desktop composition 2026-08-26
   769px以上：見本レイアウトを1240pxキャンバス基準で比例縮小し、最大幅以降は固定。
   スマホ側の既存指定には影響させない。
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .about {
    padding: 0;
    overflow: hidden;
  }
  body .about .innerbox {
    width: min(80vw, 1240px);
    max-width: 1240px;
    margin: 0 auto;
    padding-top: clamp(49px, 6.4vw, 84px);
    padding-right: 0;
    padding-bottom: clamp(55px, 7.1vw, 93px);
    padding-left: 0;
    position: relative;
    z-index: 1;
    container-type: inline-size;
  }
  /* 見本の中央付近にある半透明のリサイクルマーク */
  body .about::before {
    top: 4%;
    right: auto;
    left: 50%;
    width: min(36vw, 500px);
    height: min(31vw, 430px);
    transform: translateX(-50%);
    background: url(assets/buzzreuse/images/section-03-back.webp) center/contain no-repeat;
    opacity: 1;
    z-index: 0;
  }
  body .about .about-brand {
    width: 26cqw;
    max-width: 322px;
    margin: 0;
    line-height: 0;
    position: relative;
    z-index: 2;
  }
  body .about .about-title {
    margin: 2.35cqw 0 0;
    padding: 0;
    font-size: 3.05cqw;
    line-height: 1.48;
    font-weight: 600;
    letter-spacing: 0.015em;
    color: #1a2e1f;
    position: relative;
    z-index: 2;
  }
  body .about .about-title span {
    color: #398933;
  }
  body .about .about-panel {
    width: 100%;
    height: 24.5cqw;
    min-height: 0;
    margin: 5.6cqw 0 0;
    padding: 7.9cqw 5.35cqw 4.2cqw;
    box-sizing: border-box;
    background: #fff;
    border: 3px solid #1a2e1f;
    border-radius: 1.45cqw;
    position: relative;
    overflow: visible;
    z-index: 1;
  }
  body .about .about-panel .about-img {
    position: absolute;
    z-index: 3;
    top: -27.2cqw;
    right: -1.3cqw;
    left: auto;
    width: 53cqw;
    max-width: 657px;
    margin: 0;
    transform: none;
    pointer-events: none;
  }
  body .about .about-panel .about-img img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
  body .about .about-panel .about-text {
    position: relative;
    z-index: 4;
    margin: 0;
    padding: 0;
    color: #398933;
    font-size: 1.82cqw;
    font-weight: 600;
    line-height: 1.72;
    letter-spacing: 0.018em;
  }
}
/* 1240pxキャンバス到達後は各パーツを固定して、ワイド画面で拡大し続けない */
@media screen and (min-width: 1550px) {
  body .about .innerbox {
    padding-top: 84px;
    padding-bottom: 93px;
  }
  body .about .about-brand {
    width: 322px;
  }
  body .about .about-title {
    margin-top: 29px;
    font-size: 38px;
  }
  body .about .about-panel {
    height: 304px;
    margin-top: 69px;
    padding: 98px 66px 52px;
    border-radius: 18px;
  }
  body .about .about-panel .about-img {
    top: -337px;
    right: -16px;
    width: 657px;
  }
  body .about .about-panel .about-text {
    font-size: 22px;
  }
  body .about::before {
    width: 500px;
    height: 430px;
  }
}
/* =======================================================================================================================
   FLOW tablet / desktop proportional canvas
   769px以上：見本の構図を1つのキャンバスとして比例拡大。
   コンテナ幅が760pxに達したら、それ以上は拡大せず中央固定。
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .flow {
    padding-top: clamp(36px, 4.2vw, 66px);
    padding-bottom: clamp(38px, 4.6vw, 72px);
  }
  body .flow .innerbox {
    width: min(48vw, 760px);
    max-width: 760px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    container-type: inline-size;
  }
  /* 元の48rem幅を100cqwとして、すべて同じ比率で拡大 */
  body .flow .flow-title {
    width: 100%;
    font-size: 4.1667cqw;
    padding: 1.2083cqw 2.0833cqw;
    border-radius: 1.7708cqw;
    letter-spacing: 0.1667cqw;
  }
  body .flow .flow-sub {
    gap: 1.25cqw;
    margin-top: 2.0833cqw;
  }
  body .flow .flow-sub .flow-sub-em {
    font-size: 3.6458cqw;
    padding-bottom: 0.3125cqw;
  }
  body .flow .flow-sub .flow-sub-step {
    width: 21.3125cqw;
    max-width: none;
  }
  body .flow .flow-list {
    margin-top: 3.5417cqw;
  }
  body .flow .flow-list > li {
    margin-bottom: 2.3958cqw;
    padding-left: 7.1875cqw;
  }
  body .flow .flow-list > li:not(:last-child)::after {
    left: 1.8542cqw;
    top: 3.4375cqw;
    height: calc(100% + 2.3958cqw);
    width: 0.2917cqw;
    min-width: 2px;
  }
  body .flow .flow-list .flow-num {
    left: -1.5833cqw;
    top: 0;
    width: 6.875cqw;
    height: 6.875cqw;
    font-size: 3.2292cqw;
  }
  body .flow .flow-list .flow-card {
    width: calc(100% + 0.1667cqw);
    border-width: 0.375cqw;
    border-radius: 2.1875cqw;
    padding: 2.8125cqw 2.0833cqw 2.0833cqw 3.5417cqw;
  }
  body .flow .flow-list .flow-card h3 {
    font-size: 3.4375cqw;
    line-height: 1.25;
  }
  body .flow .flow-list .flow-card .flow-tag {
    font-size: 2.0417cqw;
    padding: 0.8333cqw 1.7708cqw;
    border-radius: 1.875cqw;
    margin-left: 0.9375cqw;
    vertical-align: 0.375cqw;
  }
  body .flow .flow-list .flow-card p {
    margin-top: 1.1458cqw;
    font-size: 2.25cqw;
    line-height: 1.55;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card {
    height: 21.1875cqw;
  }
  body .flow .flow-list > li:nth-child(1) .flow-icon {
    width: 24.2083cqw;
    right: 0.5625cqw;
    bottom: 0.9583cqw;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card p {
    max-width: 21.25cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    height: 23.5938cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-icon {
    width: 26.9792cqw;
    right: 0.8125cqw;
    bottom: 1.5833cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card p {
    max-width: 23.5417cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card {
    height: 17.8958cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-icon {
    width: 20.6458cqw;
    right: 2.4167cqw;
    bottom: -0.1667cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card p {
    max-width: 25cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card {
    height: 17.8958cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-icon {
    width: 25.6458cqw;
    right: -2.75cqw;
    bottom: -0.0208cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card p {
    max-width: 26.4583cqw;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card {
    height: 22.0833cqw;
  }
  body .flow .flow-list > li:nth-child(5) .flow-icon {
    width: 19.5cqw;
    right: -0.7083cqw;
    bottom: 2.5417cqw;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card p {
    max-width: 27.5cqw;
  }
  body .flow .flow-note {
    gap: 0.1042cqw;
    width: calc(100% + 0.625cqw);
    margin-left: -0.3125cqw;
    border-width: 0.375cqw;
    border-radius: 2.0833cqw;
    padding: 1.1458cqw;
    margin-top: 3.5625cqw;
    height: 14.25cqw;
  }
  body .flow .flow-note .flow-note-icon {
    width: 14.1667cqw;
    transform: translateY(0.3542cqw);
  }
  body .flow .flow-note p {
    font-size: 2.0833cqw;
    line-height: 1.65;
  }
}
/* =======================================================================================================================
   FLOW tablet / desktop exact reference composition 2026-08-26
   769px以上：見本_ステップ.jpg の比率をそのまま再現。
   画面幅に応じて全要素を同倍率で拡大し、基準幅 746px で拡大停止。
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .flow {
    padding-top: clamp(46px, 6.35vw, 97px);
    padding-bottom: clamp(54px, 6vw, 92px);
  }
  body .flow .innerbox {
    width: min(49vw, 746px);
    max-width: 746px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    container-type: inline-size;
  }
  body .flow .flow-title {
    width: 98.93cqw;
    height: 10.59cqw;
    margin: 0 auto;
    padding: 0;
    border-radius: 1.45cqw;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 5.1cqw;
    line-height: 1;
    letter-spacing: 0.08em;
  }
  body .flow .flow-sub {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 1.35cqw;
    margin-top: 3.8cqw;
    padding: 0;
    line-height: 1;
  }
  body .flow .flow-sub .flow-sub-em {
    font-size: 4.25cqw;
    line-height: 1;
    padding-bottom: 0.55cqw;
    font-weight: 900;
  }
  body .flow .flow-sub .flow-sub-step {
    width: 23.2cqw;
    max-width: none;
    height: auto;
  }
  body .flow .flow-list {
    width: 100%;
    margin-top: 5.9cqw;
    padding: 0;
    position: relative;
  }
  body .flow .flow-list > li {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    padding-left: 12.2cqw;
    margin: 0;
  }
  body .flow .flow-list > li:nth-child(1) {
    margin-bottom: 3.9cqw;
  }
  body .flow .flow-list > li:nth-child(2) {
    margin-bottom: 1.9cqw;
  }
  body .flow .flow-list > li:nth-child(3) {
    margin-bottom: 3cqw;
  }
  body .flow .flow-list > li:nth-child(4) {
    margin-bottom: 3.9cqw;
  }
  body .flow .flow-list > li:nth-child(5) {
    margin-bottom: 0;
  }
  /* 丸数字と縦線：見本の位置関係を固定 */
  body .flow .flow-list .flow-num {
    left: -2cqw;
    top: 0.25cqw;
    width: 11.1cqw;
    height: 11.1cqw;
    font-size: 5.15cqw;
    line-height: 1;
    z-index: 3;
  }
  body .flow .flow-list > li:not(:last-child)::after {
    left: 3.55cqw;
    top: 5.8cqw;
    width: 0.46cqw;
    min-width: 3px;
    height: calc(100% + 4.1cqw);
    background: #1a2e1f;
    z-index: 0;
  }
  body .flow .flow-list .flow-card {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    padding: 5.25cqw 3.1cqw 2.2cqw 6.05cqw;
    border: 0.48cqw solid #1a2e1f;
    border-radius: 2.7cqw;
    background: #fff;
  }
  body .flow .flow-list .flow-card h3 {
    position: relative;
    z-index: 2;
    margin: 0;
    font-size: 4.35cqw;
    line-height: 1.18;
    letter-spacing: 0.01em;
    font-weight: 600;
  }
  body .flow .flow-list .flow-card .flow-tag {
    font-size: 2.25cqw;
    line-height: 1;
    padding: 0.95cqw 1.85cqw;
    border-radius: 1.7cqw;
    margin-left: 1.15cqw;
    vertical-align: 0.55cqw;
    white-space: nowrap;
  }
  body .flow .flow-list .flow-card p {
    position: relative;
    z-index: 2;
    margin: 1.55cqw 0 0;
    padding: 0;
    font-size: 2.72cqw;
    line-height: 1.58;
    letter-spacing: 0.015em;
    font-weight: 600;
    color: #1a2e1f;
    white-space: nowrap;
  }
  /* 各カードは見本の実測比率。テキスト左位置は共通、イラストだけ個別に固定 */
  body .flow .flow-list > li:nth-child(1) .flow-card {
    height: 34.32cqw;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card h3 {
    max-width: 52cqw;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card p {
    max-width: 39cqw;
  }
  body .flow .flow-list > li:nth-child(1) .flow-icon {
    width: 39.4cqw;
    right: 1.35cqw;
    top: 6.55cqw;
    bottom: auto;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    height: 38.34cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card h3 {
    max-width: 49cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card p {
    max-width: 37cqw;
  }
  body .flow .flow-list > li:nth-child(2) .flow-icon {
    width: 43.85cqw;
    right: 2.15cqw;
    top: 14.05cqw;
    bottom: auto;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card {
    height: 30.96cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card h3 {
    max-width: 49cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card p {
    max-width: 47cqw;
  }
  body .flow .flow-list > li:nth-child(3) .flow-icon {
    width: 30.56cqw;
    right: 5.75cqw;
    top: 0;
    bottom: auto;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card {
    height: 29.89cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card h3 {
    max-width: 49cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card p {
    max-width: 48cqw;
  }
  body .flow .flow-list > li:nth-child(4) .flow-icon {
    width: 39.15cqw;
    right: -2cqw;
    top: 0.15cqw;
    bottom: auto;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card {
    height: 35.79cqw;
    padding-top: 4.55cqw;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card h3 {
    max-width: 48cqw;
    line-height: 1.15;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card p {
    max-width: 49cqw;
  }
  body .flow .flow-list > li:nth-child(5) .flow-icon {
    width: 30.56cqw;
    right: 0.25cqw;
    top: 8.85cqw;
    bottom: auto;
  }
  body .flow .flow-list .flow-icon {
    position: absolute;
    z-index: 1;
    margin: 0;
  }
  body .flow .flow-list .flow-icon img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
  }
  /* 本人確認枠も見本比率 */
  body .flow .flow-note {
    width: 100%;
    height: 23.19cqw;
    margin: 5.1cqw 0 0;
    padding: 0;
    display: block;
    position: relative;
    box-sizing: border-box;
    border: 0.48cqw solid #1a2e1f;
    border-radius: 2.55cqw;
    background: #e29e30;
    overflow: hidden;
  }
  body .flow .flow-note .flow-note-icon {
    position: absolute;
    left: 2.4cqw;
    top: 4.15cqw;
    width: 23.05cqw;
    transform: none;
    margin: 0;
  }
  body .flow .flow-note .flow-note-icon img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
  }
  body .flow .flow-note p {
    position: absolute;
    left: 27.8cqw;
    top: 3.65cqw;
    margin: 0;
    padding: 0;
    font-size: 2.72cqw;
    line-height: 1.65;
    letter-spacing: 0.01em;
    font-weight: 700;
    color: #1a2e1f;
    white-space: nowrap;
  }
}
/* =======================================================================================================================
   FAQ tablet / desktop layout 2026-08-26
   769px以上：左に見出し＋人物、右に縦並びQ&Aパネル。1240px相当で拡大を停止。
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .faq-ctt .sec {
    position: relative;
    overflow: hidden;
    background: #2f6b4b;
    padding: 0;
  }
  body .faq-ctt .sec::after {
    display: none;
  }
  body .faq-ctt .sec:first-child {
    padding-top: 0;
    padding-bottom: 0;
  }
  body .faq-ctt .sec > .innerbox {
    width: min(86vw, 1240px);
    max-width: 1240px;
    min-height: clamp(570px, 47vw, 700px);
    margin: 0 auto;
    padding: clamp(68px, 5.8vw, 88px) 0 clamp(42px, 3.8vw, 58px);
    display: grid;
    grid-template-columns: 32% 68%;
    align-items: start;
    position: relative;
    z-index: 1;
    container-type: inline-size;
    box-sizing: border-box;
  }
  /* 左側：見出し */
  body .faq-ctt .sec .innerbox .faq-heading {
    grid-column: 1;
    position: static;
    margin: 0;
    padding: 0 4cqw 0 0;
    color: #fff;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-lead {
    display: block;
    position: relative;
    z-index: 3;
    margin: 0 0 0.65em;
    color: #fff;
    font-size: clamp(14px, 1.5cqw, 18px);
    line-height: 1.45;
    font-weight: 700;
    white-space: nowrap;
  }
  body .faq-ctt .sec .innerbox .faq-heading h2 {
    position: relative;
    z-index: 3;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 4.25cqw, 52px);
    line-height: 1.15;
    font-weight: 600;
    letter-spacing: 0.01em;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-index-pill {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 29cqw;
    height: clamp(38px, 3.4cqw, 44px);
    margin-top: clamp(34px, 3.7cqw, 48px);
    padding: 0 clamp(18px, 1.7cqw, 22px);
    box-sizing: border-box;
    background: #fff;
    border: 2px solid rgba(26, 46, 31, 0.75);
    border-radius: 999px;
    color: #1a2e1f;
    font-size: clamp(12px, 1.15cqw, 14px);
    font-weight: 700;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-index-pill span {
    color: #398933;
    font-size: 1.35em;
    line-height: 1;
  }
  /* 大きなQ&A透かし */
  body .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    display: block;
    position: absolute;
    z-index: 0;
    top: clamp(54px, 4.5cqw, 70px);
    right: 1cqw;
    color: rgba(255, 255, 255, 0.1);
    font-size: clamp(88px, 11.2cqw, 138px);
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
  }
  /* 左下の人物 */
  body .faq-ctt .sec .innerbox .faq-heading .faq-people {
    position: absolute;
    z-index: 2;
    left: 1.5cqw;
    bottom: 0;
    width: clamp(240px, 29cqw, 360px);
    max-width: none;
    margin: 0;
    line-height: 0;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-people img {
    display: block;
    width: 100%;
    height: auto;
  }
  /* 右側のQ&Aパネル */
  body .faq-ctt .sec .innerbox ul.qa_list {
    grid-column: 2;
    display: block;
    position: relative;
    z-index: 2;
    width: calc(100% + max(7vw, (100vw - min(86vw, 1240px)) / 2));
    margin: clamp(105px, 9cqw, 132px) 0 0;
    padding: clamp(34px, 3.8cqw, 48px) clamp(34px, 3.6cqw, 46px);
    box-sizing: border-box;
    background: #f1efe9;
    border-radius: clamp(22px, 2.4cqw, 30px) 0 0 clamp(22px, 2.4cqw, 30px);
    gap: 0;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set {
    width: 100%;
    margin: 0 0 clamp(12px, 1.3cqw, 16px);
    border-radius: clamp(10px, 1.05cqw, 13px);
    overflow: hidden;
    background: #fff;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set:last-child {
    margin-bottom: 0;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set label {
    display: block;
    width: 100%;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question {
    min-height: clamp(58px, 5.6cqw, 70px);
    display: flex;
    align-items: center;
    box-sizing: border-box;
    margin: 0;
    padding: clamp(14px, 1.4cqw, 18px) clamp(58px, 5.2cqw, 68px) clamp(14px, 1.4cqw, 18px) clamp(48px, 4.2cqw, 54px);
    background: #fff;
    color: #1a2e1f;
    font-size: clamp(14px, 1.42cqw, 17px);
    line-height: 1.45;
    font-weight: 700;
    text-indent: 0;
    position: relative;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::before {
    content: "Q";
    position: absolute;
    left: clamp(20px, 1.7cqw, 22px);
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
    color: #e29e30;
    font-size: clamp(20px, 1.9cqw, 24px);
    font-weight: 900;
    line-height: 1;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question::after {
    content: "+";
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: clamp(16px, 1.6cqw, 20px);
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    width: clamp(28px, 2.6cqw, 32px);
    height: clamp(28px, 2.6cqw, 32px);
    border: 2px solid #398933;
    border-radius: 50%;
    background: #fff;
    color: #398933;
    font-size: clamp(19px, 1.8cqw, 22px);
    font-weight: 500;
    line-height: 1;
    text-indent: 0;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
    transition: 0.28s ease;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer {
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    background: #fff;
    transition: max-height 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer span {
    display: block;
    box-sizing: border-box;
    padding: 0 clamp(24px, 2.5cqw, 32px) clamp(18px, 1.7cqw, 22px) clamp(48px, 4.2cqw, 54px);
    color: #505a52;
    font-size: clamp(13px, 1.2cqw, 15px);
    line-height: 1.7;
    text-indent: 0;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer span::before {
    content: "A";
    color: #398933;
    font-size: 1.15em;
    font-weight: 900;
    padding-right: 0.55em;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt .question::after {
    content: "−";
    background: #398933;
    border-color: #398933;
    color: #fff;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt p.answer {
    max-height: 40em;
  }
}
/* ワイド画面では中身を1240px時点で固定し、背景だけ横に伸ばす */
@media screen and (min-width: 1442px) {
  body .faq-ctt .sec > .innerbox {
    width: 1240px;
    max-width: 1240px;
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    width: calc(100% + (100vw - 1240px) / 2);
  }
}
/* =======================================================================================================================
   FAQ desktop full-bleed right edge fix 2026-08-26
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .faq-ctt {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
  body .faq-ctt .sec {
    width: 100vw;
    max-width: none;
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    margin-right: calc(-1 * max(7vw, (100vw - min(86vw, 1240px)) / 2));
  }
}
@media screen and (min-width: 1442px) {
  body .faq-ctt .sec .innerbox ul.qa_list {
    margin-right: calc(-1 * (100vw - 1240px) / 2);
  }
}
/* =======================================================================================================================
   FAQ desktop polish 2026-08-26
   ・一覧ピル削除後の余白整理
   ・character05を拡大
   ・Q&A透かしをビューポート右端寄りへ拡大
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .faq-ctt .sec .innerbox .faq-heading .faq-people {
    left: 0.5cqw;
    bottom: 0;
    width: clamp(270px, 33cqw, 410px);
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    top: clamp(38px, 3.5cqw, 52px);
    right: calc(-7vw + 20px);
    font-size: clamp(118px, 14.5cqw, 180px);
    line-height: 0.9;
  }
}
@media screen and (min-width: 1442px) {
  body .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    right: calc(-1 * (100vw - 1240px) / 2 + 20px);
    font-size: 180px;
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-people {
    width: 410px;
  }
}
/* FAQ desktop background split 2026-08-26 */
@media screen and (min-width: 769px) {
  body .faq-ctt .sec {
    background: linear-gradient(to bottom, #2f6b4b 0%, #2f6b4b 69%, #398933 69%, #398933 100%);
  }
  /* Q&Aパネルは背景切替より前面に維持 */
  body .faq-ctt .sec > .innerbox {
    position: relative;
    z-index: 1;
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    position: relative;
    z-index: 2;
  }
}
/* =======================================================================================================================
   FAQ final tablet/desktop positioning polish 2026-08-26
   ・Q&A透かしを上へ
   ・人物下端を背景色の境界へ接地
   ・Q&Aパネルは左位置を維持しつつ右側のみ短く
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .faq-ctt .sec {
    --faq-bg-split: 69%;
    background: linear-gradient(to bottom, #2f6b4b 0%, #2f6b4b var(--faq-bg-split), #398933 var(--faq-bg-split), #398933 100%);
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-qa-mark {
    top: clamp(10px, 1.2cqw, 16px);
  }
  body .faq-ctt .sec .innerbox .faq-heading .faq-people {
    bottom: calc(100% - var(--faq-bg-split));
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    width: 100%;
    margin-right: 0;
  }
}
@media screen and (min-width: 1442px) {
  body .faq-ctt .sec .innerbox ul.qa_list {
    width: 100%;
    margin-right: 0;
  }
}
/* =======================================================================================================================
   FAQ panel right full-bleed + people gap 2026-08-26
   左側は人物との間隔を確保し、右側だけviewport端まで伸ばす
======================================================================================================================= */
@media screen and (min-width: 769px) {
  body .faq-ctt .sec {
    --faq-panel-gap: clamp(28px, 3cqw, 38px);
    --faq-right-bleed: max(7vw, (100vw - min(86vw, 1240px)) / 2);
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    margin-left: var(--faq-panel-gap);
    margin-right: calc(-1 * var(--faq-right-bleed));
    width: calc(100% - var(--faq-panel-gap) + var(--faq-right-bleed));
  }
}
@media screen and (min-width: 1442px) {
  body .faq-ctt .sec {
    --faq-panel-gap: 38px;
    --faq-right-bleed: calc((100vw - 1240px) / 2);
  }
  body .faq-ctt .sec .innerbox ul.qa_list {
    margin-left: var(--faq-panel-gap);
    margin-right: calc(-1 * var(--faq-right-bleed));
    width: calc(100% - var(--faq-panel-gap) + var(--faq-right-bleed));
  }
}
/* =======================================================================================================================
   Footer width + deco polish 2026-08-26
======================================================================================================================= */
@media screen and (min-width: 769px) {
  #footer .shop-card {
    width: min(78vw, 1240px);
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (max-width: 768px) {
  #footer .footer-brand {
    padding-bottom: 5.4rem;
  }
  #footer .footer-brand .footer-brand-logo {
    position: relative;
    z-index: 2;
    top: 2rem;
  }
  #footer .footer-brand .footer-deco {
    top: auto;
    right: auto;
    left: 50%;
    bottom: -0.75rem;
    width: 13.8rem;
    max-width: 44vw;
    transform: translateX(-50%);
    opacity: 0.2;
    z-index: 0;
  }
  #footer .footer-links {
    margin-top: 0.5rem;
  }
}
/* =======================================================================================================================
   Footer deco centered below brand - tablet / desktop
======================================================================================================================= */
@media screen and (min-width: 769px) {
  #footer .footer-brand {
    padding-bottom: clamp(78px, 6vw, 104px);
  }
  #footer .footer-brand .footer-brand-logo {
    position: relative;
    z-index: 2;
  }
  #footer .footer-brand .footer-deco {
    top: auto;
    right: auto;
    left: 50%;
    bottom: -8px;
    width: clamp(180px, 14vw, 240px);
    max-width: none;
    transform: translateX(-50%);
    opacity: 0.2;
    z-index: 0;
  }
  #footer .footer-links {
    margin-top: 0.65rem;
  }
}
/* =======================================================================================================================
   Footer desktop layout fix 2026-08-26
   - 店舗情報と地図を横並び
   - footer-links 以下が押し出されないよう縦余白を整理
======================================================================================================================= */
@media screen and (min-width: 769px) {
  #footer {
    height: auto;
    min-height: 0;
    overflow: visible;
    padding-bottom: calc(2rem + var(--cta-footer-space, 0px));
  }
  #footer .wrap-footer {
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  #footer .shop-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: clamp(32px, 3.5vw, 56px);
    width: min(78vw, 1240px);
    max-width: 1240px;
    padding: clamp(32px, 5vw, 56px);
    margin: 0 auto clamp(34px, 3vw, 48px);
  }
  #footer .shop-card .shop-card-main {
    flex: 0 0 34%;
    min-width: 0;
  }
  #footer .shop-card .shop-logo {
    justify-content: flex-start;
    margin-bottom: clamp(22px, 2vw, 30px);
  }
  #footer .shop-card .shop-info li {
    font-size: clamp(14px, 1.05vw, 17px);
    line-height: 1.65;
    margin-bottom: 0.8em;
  }
  #footer .shop-card .shop-map {
    flex: 1 1 0;
    width: auto;
    margin-top: 0;
    align-self: stretch;
    min-height: 250px;
  }
  #footer .shop-card .shop-map iframe {
    width: 100%;
    height: 100%;
    min-height: 250px;
  }
  /* 装飾はロゴ下に残しつつ、リンクを下へ押し出し過ぎない */
  #footer .footer-brand {
    padding-bottom: clamp(42px, 3.2vw, 56px);
  }
  #footer .footer-brand .footer-deco {
    left: 50%;
    right: auto;
    top: auto;
    bottom: -22px;
    width: clamp(170px, 12vw, 220px);
    transform: translateX(-50%);
  }
  #footer .footer-links {
    display: flex;
    visibility: visible;
    opacity: 1;
    margin-top: 12px;
  }
  #footer .copyright {
    display: block;
    visibility: visible;
    opacity: 1;
    margin-top: 16px;
  }
}
/* =======================================================================================================================
   Footer shop card proportion polish 2026-08-26
   - 店舗カードを少し細く
   - 地図を約4:3
   - 店舗カード下の余白を広げる
======================================================================================================================= */
@media screen and (min-width: 769px) {
  #footer .shop-card {
    width: min(72vw, 1120px);
    max-width: 1120px;
    gap: clamp(28px, 3vw, 48px);
    margin-bottom: clamp(64px, 5vw, 88px);
  }
  #footer .shop-card .shop-card-main {
    flex: 0 0 32%;
  }
  #footer .shop-card .shop-map {
    flex: 1 1 0;
    width: auto;
    min-height: 0;
    aspect-ratio: 4/3;
    align-self: center;
    overflow: hidden;
  }
  #footer .shop-card .shop-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
  }
}
/* =======================================================================================================================
   FAQ accordion stable motion 2026-08-26
   JSで実高を計測し height をアニメーション。旧max-height/grid方式を完全に無効化。
======================================================================================================================= */
.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer {
  display: block;
  height: 0;
  max-height: none !important;
  overflow: hidden;
  opacity: 0;
  padding: 0;
  transition: height 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease !important;
  will-change: height, opacity;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer > span {
  display: block;
  min-height: 0;
}

.faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_open:checked + label .qa_txt p.answer {
  max-height: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer {
    transition: none !important;
  }
}
/* === REUSE NEWS single-line title ellipsis === */
body .news .news-body .news-list {
  width: min(100%, 52rem);
  margin: 0 auto;
}

body .news .news-body .news-item {
  display: flex;
  align-items: baseline;
  width: 100%;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  line-height: 1.7em;
}

body .news .news-body .news-item time {
  flex: 0 0 auto;
  margin-right: 0.55em;
  white-space: nowrap;
}

body .news .news-body .news-item-title {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* =======================================================================================================================
   Flow mobile step 02 bottom spacing 2026-08-26
======================================================================================================================= */
@media screen and (max-width: 768px) {
  body .flow .flow-list > li:nth-child(2) {
    margin-bottom: 1.45rem;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    height: 8.65rem;
  }
}
/* =======================================================================================================================
   REUSE NEWS date/title alignment 2026-08-26
======================================================================================================================= */
body .news .news-body .news-list {
  width: min(100% - 2rem, 680px);
  margin-left: auto;
  margin-right: auto;
}

body .news .news-body .news-item {
  display: grid;
  grid-template-columns: clamp(96px, 8vw, 118px) minmax(0, 1fr);
  -moz-column-gap: clamp(10px, 1.2vw, 18px);
       column-gap: clamp(10px, 1.2vw, 18px);
  align-items: baseline;
  text-align: left;
}

body .news .news-body .news-item time {
  width: 100%;
  margin-right: 0;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

body .news .news-body .news-item-title {
  width: 100%;
  text-align: left;
}

@media screen and (max-width: 768px) {
  body .news .news-body .news-list {
    width: calc(100% - 1.5rem);
  }
  body .news .news-body .news-item {
    grid-template-columns: 5.8rem minmax(0, 1fr);
    -moz-column-gap: 0.55rem;
         column-gap: 0.55rem;
  }
}
/* =======================================================================================================================
   REUSE NEWS centered date/title group 2026-08-26
======================================================================================================================= */
body .news .news-body .news-list {
  width: min(100% - 2rem, 460px);
  margin-left: auto;
  margin-right: auto;
}

body .news .news-body .news-item {
  grid-template-columns: 7.4rem minmax(0, 1fr);
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}

@media screen and (max-width: 768px) {
  body .news .news-body .news-list {
    width: min(100% - 1.5rem, 22rem);
  }
  body .news .news-body .news-item {
    grid-template-columns: 5.8rem minmax(0, 1fr);
    -moz-column-gap: 0.55rem;
         column-gap: 0.55rem;
  }
}
/* =======================================================================================================================
   Seto feedback polish 2026-08-27
   - smartphone sticky CTA: easier to read/tap
   - smartphone body copy: modestly larger without changing the composition
   - character01.webp replaced with a high-resolution source
======================================================================================================================= */
@media screen and (max-width: 768px) {
  /* 追従CTA：固定前後で大きさが変わらないよう共通化 */
  body .news .cta-buttons,
  body .news .cta-buttons.is-fixed,
  body > .cta-buttons.is-fixed,
  body .cta-buttons--fixed {
    width: min(100% - 1.5rem, 40rem);
    gap: 0.8rem;
  }
  body .news .cta-buttons .btn-pill--green,
  body .news .cta-buttons .btn-pill--orange,
  body .news .cta-buttons.is-fixed .btn-pill--green,
  body .news .cta-buttons.is-fixed .btn-pill--orange,
  body > .cta-buttons.is-fixed .btn-pill--green,
  body > .cta-buttons.is-fixed .btn-pill--orange,
  body .cta-buttons--fixed .btn-pill--green,
  body .cta-buttons--fixed .btn-pill--orange {
    min-height: 44px;
    padding: 10px 12px;
    font-size: clamp(13px, 3.55vw, 15px);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.035em;
  }
  /* REUSE NEWS本文 */
  body .news .news-body {
    font-size: clamp(13px, 3.45vw, 15px);
    line-height: 1.72;
    font-weight: 600;
  }
  /* 買取品目ラベル・補足本文 */
  body .service .category-list p {
    font-size: clamp(12.5px, 3.25vw, 14px);
    line-height: 1.42;
    font-weight: 600;
  }
  body .service .service-note .service-note-text,
  body .service .service-note-wrap .service-note-text {
    font-size: clamp(14px, 3.6vw, 16px);
    line-height: 1.62;
    font-weight: 600;
  }
  /* BUZZ REUSE紹介本文 */
  body .about .about-panel .about-text {
    font-size: clamp(13.5px, 3.5vw, 15.5px);
    line-height: 1.82;
    font-weight: 600;
  }
  /* 買取の流れ：カード内の説明文のみ一段階読みやすく */
  body .flow .flow-list .flow-card p {
    font-size: clamp(11.5px, 3vw, 12.8px);
    line-height: 1.62;
    font-weight: 500;
  }
  body .flow .flow-note p {
    font-size: clamp(11.5px, 3vw, 12.8px);
    line-height: 1.68;
    font-weight: 500;
  }
  /* FAQ：質問・回答とも本文サイズを底上げ */
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt .question {
    font-size: clamp(12.5px, 2.5vw, 15.5px);
    line-height: 1.55;
    font-weight: 600;
  }
  body .faq-ctt .sec .innerbox ul.qa_list li.qa_set .qa_txt p.answer span {
    font-size: clamp(13px, 3.35vw, 15px);
    line-height: 1.72;
    font-weight: 500;
  }
}
/* NEWS本文だけはタブレット以上でも小さく見えすぎないよう最低サイズを確保 */
@media screen and (min-width: 769px) {
  body .news .news-body {
    font-size: clamp(15px, 0.98vw, 17px);
    line-height: 1.72;
  }
}
/* =======================================================================================================================
   Mobile readability polish 2026-08-27
   - high-res character01 keeps the original visual aspect/placement via cropped source asset
   - NEWS mark centered vertically/horizontally and news copy enlarged
   - service category label kept on one line
   - flow copy restored to a readable size with comfortable card spacing
   - shop-card information and sticky CTA copy enlarged
======================================================================================================================= */
@media screen and (max-width: 768px) {
  /* REUSE NEWS：背景マークをセクション中央へ */
  body .first-view .news::before {
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
  }
  /* REUSE NEWS：日付＋タイトルを一段階大きく */
  body .news .news-body {
    font-size: clamp(15px, 4vw, 17px);
    line-height: 1.62;
    font-weight: 600;
  }
  body .news .news-body .news-item {
    line-height: 1.62;
  }
  /* 買取品目：「おもちゃ・ホビー」を1行で保持 */
  body .service .category-list li:nth-child(3) p {
    white-space: nowrap;
    font-size: clamp(11.5px, 3.1vw, 13px);
    letter-spacing: -0.02em;
  }
  /* 買取の流れ：本文を読みやすく戻し、白枠内の余白を維持 */
  body .flow .flow-list .flow-card {
    padding-top: 1.28rem;
    padding-bottom: 1.02rem;
  }
  body .flow .flow-list .flow-card p {
    margin-top: 0.58rem;
    font-size: clamp(13.5px, 3.75vw, 15px);
    line-height: 1.58;
    font-weight: 500;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    height: 10.5rem;
  }
  body .flow .flow-note p {
    font-size: clamp(13px, 2.55vw, 14.5px);
    line-height: 1.62;
    font-weight: 500;
  }
  /* 地図カード：店舗情報を一段階大きく */
  #footer .shop-card .shop-info li {
    gap: 0.7em;
    margin-bottom: 0.95em;
    font-size: clamp(16px, 4.1vw, 18px);
    line-height: 1.62;
  }
  #footer .shop-card .shop-info li .shop-info-icon {
    width: 1.45em;
    height: 1.25em;
    margin-top: 0.12em;
  }
  /* 追従CTA：文字を少し大きく、押しやすさも確保 */
  body .news .cta-buttons .btn-pill--green,
  body .news .cta-buttons .btn-pill--orange,
  body .news .cta-buttons.is-fixed .btn-pill--green,
  body .news .cta-buttons.is-fixed .btn-pill--orange,
  body > .cta-buttons.is-fixed .btn-pill--green,
  body > .cta-buttons.is-fixed .btn-pill--orange,
  body .cta-buttons--fixed .btn-pill--green,
  body .cta-buttons--fixed .btn-pill--orange {
    min-height: 48px;
    padding: 11px 12px;
    font-size: clamp(14px, 3.85vw, 16.5px);
    line-height: 1.2;
    font-weight: 600;
  }
}
/* =======================================================================================================================
   Shop info spacing + mobile flow auto-height 2026-08-27
======================================================================================================================= */
#footer .shop-card .shop-info li,
.buzz-footer .shop-card .shop-info li {
  margin-bottom: 0.48em;
}

#footer .shop-card .shop-info li:last-child,
.buzz-footer .shop-card .shop-info li:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 768px) {
  body .flow .flow-list > li .flow-card {
    height: auto !important;
    min-height: 0;
    padding: 1.25rem 1rem 1.05rem 1.7rem;
  }
  body .flow .flow-list > li:nth-child(1) .flow-card {
    padding-bottom: 1.15rem;
  }
  body .flow .flow-list > li:nth-child(2) .flow-card {
    padding-bottom: 1.2rem;
  }
  body .flow .flow-list > li:nth-child(3) .flow-card {
    padding-bottom: 3.35rem;
  }
  body .flow .flow-list > li:nth-child(4) .flow-card {
    padding-bottom: 3.05rem;
  }
  body .flow .flow-list > li:nth-child(5) .flow-card {
    padding-top: 1.2rem;
    padding-bottom: 1.55rem;
  }
  body .flow .flow-list .flow-card p {
    margin-top: 0.55rem;
    font-size: 1rem;
    line-height: 1.62;
    font-weight: 500;
  }
  #footer .shop-card .shop-info li,
  .buzz-footer .shop-card .shop-info li {
    margin-bottom: 0.42em;
  }
}
/* =======================================================================================================================
   SUB PAGES / POSTS — current BUZZ REUSE only
   Old-theme layout CSS has been removed.
======================================================================================================================= */
/* Top page uses viewport-scaled rem values. Sub pages use a stable 16px root. */
html.buzzreuse-sub-html {
  font-size: 16px !important;
  max-width: 100%;
  overflow-x: hidden;
}

body.buzzreuse-sub-page {
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.03em;
  color: #1a2e1f;
}

body.buzzreuse-sub-page > main {
  width: 100%;
  min-width: 0;
  flex: 1 0 auto;
}

body.buzzreuse-sub-page > #footer.buzz-footer {
  flex: 0 0 auto;
  margin-top: auto;
}

body.buzzreuse-sub-page #main-wrap,
body.buzzreuse-sub-page #wrapper,
body.buzzreuse-sub-page .news-single,
body.buzzreuse-sub-page .archive-wrap,
body.buzzreuse-sub-page .buzz-page-main {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

/* Keep the decorative footer mark subtle everywhere. */
#footer.buzz-footer .footer-deco {
  opacity: 0.2;
}

/* ---------- Fixed pages ---------- */
body.buzzreuse-sub-page .buzz-page-main {
  width: 100%;
  padding: clamp(4.75rem, 6vw, 7rem) 0 clamp(5.5rem, 7vw, 8rem);
  color: #1a2e1f;
}

body.buzzreuse-sub-page .buzz-page-inner {
  width: min(72vw, 1160px);
  max-width: 1160px;
  margin: 0 auto;
  min-width: 0;
}

body.buzzreuse-sub-page .buzz-page-header {
  position: static;
  display: block;
  width: 100%;
  margin: 0 0 clamp(2.2rem, 3vw, 3.25rem);
  padding: 0 0 clamp(1.15rem, 1.4vw, 1.5rem);
  border-bottom: 2px solid #398933;
}

body.buzzreuse-sub-page .buzz-page-title {
  position: static;
  margin: 0;
  padding: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: clamp(1.55rem, 1.8vw, 2rem);
  line-height: 1.45;
  font-weight: 700;
  color: #111;
}

body.buzzreuse-sub-page .page-editor-content {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  min-width: 0;
  color: #1a2e1f;
  font-weight: 500;
  overflow: visible;
}

body.buzzreuse-sub-page .page-editor-content,
body.buzzreuse-sub-page .page-editor-content * {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

body.buzzreuse-sub-page .page-editor-content p,
body.buzzreuse-sub-page .page-editor-content div,
body.buzzreuse-sub-page .page-editor-content span,
body.buzzreuse-sub-page .page-editor-content strong,
body.buzzreuse-sub-page .page-editor-content a,
body.buzzreuse-sub-page .page-editor-content li {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}

body.buzzreuse-sub-page .page-editor-content p,
body.buzzreuse-sub-page .page-editor-content li {
  font-size: 1rem;
  line-height: 1.9;
  font-weight: 500;
}

body.buzzreuse-sub-page .page-editor-content p {
  margin: 0 0 1.4em;
}

body.buzzreuse-sub-page .page-editor-content h2,
body.buzzreuse-sub-page .page-editor-content h3,
body.buzzreuse-sub-page .page-editor-content h4 {
  margin: 1.8em 0 0.7em;
  line-height: 1.5;
  font-weight: 700;
}

body.buzzreuse-sub-page .page-editor-content ul,
body.buzzreuse-sub-page .page-editor-content ol {
  margin: 0 0 1.5em;
  padding-left: 1.5em;
}

body.buzzreuse-sub-page .page-editor-content ul {
  list-style: disc;
}

body.buzzreuse-sub-page .page-editor-content ol {
  list-style: decimal;
}

/* Fixed pages use native browser scrolling. */
html.buzzreuse-sub-html,
body.buzzreuse-sub-page#page {
  overscroll-behavior-y: auto;
  scroll-behavior: auto;
}

body.buzzreuse-sub-page#page {
  overflow-y: visible !important;
}

body.buzzreuse-sub-page#page .buzz-page-main,
body.buzzreuse-sub-page#page .buzz-page-inner,
body.buzzreuse-sub-page#page .page-editor-content,
body.buzzreuse-sub-page#page .page-editor-content * {
  touch-action: auto !important;
  overscroll-behavior: auto !important;
}

/* ---------- Blog archive / single ---------- */
body.buzzreuse-sub-page .archive-wrap,
body.buzzreuse-sub-page .news-single {
  width: min(70vw, 1100px);
  margin: 0 auto;
  padding: clamp(8rem, 9vw, 10rem) 0 clamp(5rem, 7vw, 7rem);
  color: #1a2e1f;
  font-weight: 500;
}

body.buzzreuse-sub-page .archive-wrap > h1,
body.buzzreuse-sub-page .news-single .news-header > .title {
  margin: 0 0 1.25rem;
  font-size: clamp(1.55rem, 1.8vw, 2rem);
  line-height: 1.45;
  font-weight: 700;
  color: #111;
}

body.buzzreuse-sub-page .news-single .date,
body.buzzreuse-sub-page .archive-wrap .date {
  font-size: 1rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

body.buzzreuse-sub-page .archive-wrap .news-list {
  margin: 1.25rem 0 0;
  padding: 0;
}

body.buzzreuse-sub-page .archive-wrap .news-list li {
  border-bottom: 1px solid rgba(26, 46, 31, 0.35);
  list-style: none;
}

body.buzzreuse-sub-page .archive-wrap .news-list li:first-child {
  border-top: 1px solid rgba(26, 46, 31, 0.35);
}

body.buzzreuse-sub-page .archive-wrap .news-list li a {
  display: grid;
  grid-template-columns: 7.2rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  padding: 1.15rem 0;
  color: #1a2e1f;
  text-decoration: none;
}

body.buzzreuse-sub-page .archive-wrap .news-list .title {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 500;
}

body.buzzreuse-sub-page .news-content {
  margin-top: clamp(2.5rem, 4vw, 4rem);
  font-weight: 500;
}

body.buzzreuse-sub-page .news-content p,
body.buzzreuse-sub-page .news-content li {
  margin-bottom: 1.25em;
  line-height: 1.9;
  font-weight: 500;
}

body.buzzreuse-sub-page .news-content h2,
body.buzzreuse-sub-page .news-content h3 {
  margin: 1.8em 0 0.7em;
  font-weight: 700;
}

body.buzzreuse-sub-page .news-single .back {
  display: flex;
  justify-content: center;
  padding: clamp(4rem, 6vw, 7rem) 0 0;
}

body.buzzreuse-sub-page .news-single .back a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 13rem;
  padding: 0.9rem 2.4rem;
  border: 2px solid #cad1c7;
  border-radius: 999px;
  background: #cad1c7;
  color: #1a2e1f;
  text-decoration: none;
  font-weight: 500;
}

/* ---------- Generic post fallback / 404 ---------- */
body.buzzreuse-sub-page .page-wrap,
body.buzzreuse-sub-page .not-found .innerbox {
  width: min(72vw, 1160px);
  margin: 0 auto;
}

body.buzzreuse-sub-page .page-wrap {
  padding: clamp(8rem, 9vw, 10rem) 0 clamp(5rem, 7vw, 7rem);
}

body.buzzreuse-sub-page .page-wrap h1 {
  margin-bottom: 1.5rem;
  font-size: clamp(1.55rem, 1.8vw, 2rem);
  line-height: 1.45;
  font-weight: 700;
}

/* ---------- Mobile sub pages ---------- */
@media screen and (max-width: 768px) {
  /* On sub pages the header participates in normal flow on mobile. */
  body.buzzreuse-sub-page .buzz-header {
    position: static;
  }
  body.buzzreuse-sub-page #wrapper {
    padding-top: 0;
  }
  body.buzzreuse-sub-page .buzz-page-main {
    padding: 3.75rem 0 4.5rem;
  }
  body.buzzreuse-sub-page .buzz-page-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 1.4rem;
  }
  body.buzzreuse-sub-page .buzz-page-header {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
  }
  body.buzzreuse-sub-page .buzz-page-title {
    font-size: 1.55rem;
  }
  body.buzzreuse-sub-page .archive-wrap,
  body.buzzreuse-sub-page .news-single {
    width: calc(100% - 2.8rem);
    max-width: none;
    padding: 3.5rem 0 4.5rem;
  }
  body.buzzreuse-sub-page .archive-wrap .news-list li a {
    grid-template-columns: 6.7rem minmax(0, 1fr);
    gap: 0.8rem;
    padding: 1rem 0;
  }
  body.buzzreuse-sub-page .archive-wrap > h1,
  body.buzzreuse-sub-page .news-single .news-header > .title {
    font-size: 1.55rem;
  }
  body.buzzreuse-sub-page .page-wrap,
  body.buzzreuse-sub-page .not-found .innerbox {
    width: calc(100% - 2.8rem);
  }
  body.buzzreuse-sub-page .page-wrap {
    padding: 3.5rem 0 4.5rem;
  }
}
/* ======================================================================================================================
   買取査定依頼 / 固定ページ「contact」
   Contact Form 7 + Confirm Plus Contact Form 7
   「送信完了」ページと同じ、淡い背景 + 白いカード + グリーン基調
====================================================================================================================== */

body.buzzreuse-sub-page #wrapper-form.contact-form-page {
  --form-green: #398933;
  --form-green-dark: #1a2e1f;
  --form-orange: #e29e30;
  --form-text: #526158;
  --form-muted: #7d897f;
  --form-line: #dbe4d9;
  --form-field: #f7f9f6;
  --form-required: #e95858;
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  color: var(--form-text);
  background:
    radial-gradient(circle at 18% 18%, rgba(226, 158, 48, .09), transparent 30%),
    radial-gradient(circle at 85% 8%, rgba(57, 137, 51, .12), transparent 34%),
    #f4f7f3;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-page__section {
  padding: clamp(9.5rem, 12vw, 12rem) 0 clamp(5rem, 9vw, 8rem);
}

body.buzzreuse-sub-page #wrapper-form .contact-form-page__inner {
  width: min(calc(100% - 2.5rem), 960px);
  margin: 0 auto;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-page__inner--form {
  width: min(calc(100% - 2.5rem), 900px);
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card {
  position: relative;
  padding: clamp(2.7rem, 6vw, 4.6rem) clamp(1.4rem, 5.5vw, 4.4rem);
  border: 1px solid rgba(26, 46, 31, .08);
  border-radius: clamp(1.5rem, 3vw, 2rem);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 1.25rem 3.5rem rgba(26, 46, 31, .07);
  scroll-margin-top: 7.5rem;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  margin: 0 auto 1.45rem;
  border-radius: 50%;
  background: var(--form-green);
  box-shadow: 0 .8rem 1.8rem rgba(57, 137, 51, .16);
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__icon::before {
  content: "";
  width: 1.65rem;
  height: 2.05rem;
  box-sizing: border-box;
  border: .18rem solid #fff;
  border-radius: .18rem;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__icon::after {
  content: "";
  position: absolute;
  width: .9rem;
  height: .16rem;
  margin-top: -.65rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 .48rem 0 #fff, 0 .96rem 0 #fff;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__heading {
  text-align: center;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__heading--confirm {
  display: none;
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-card__heading--input {
  display: none;
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-card__heading--confirm {
  display: block;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__eyebrow {
  margin: 0 0 .5rem;
  padding: 0;
  color: var(--form-green);
  font-size: .82rem;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .16em;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__title {
  margin: 0;
  padding: 0;
  color: var(--form-green-dark);
  font-size: clamp(1.9rem, 4vw, 2.75rem);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .03em;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__lead {
  max-width: 38rem;
  margin: 1.1rem auto 0;
  padding: 0;
  color: #617066;
  font-size: clamp(.92rem, 1.6vw, 1rem);
  line-height: 1.9;
  font-weight: 500;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-page__required {
  color: var(--form-required);
  font-weight: 700;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: min(100%, 34rem);
  margin: clamp(2rem, 4vw, 2.8rem) auto clamp(2.2rem, 5vw, 3.2rem);
  padding: 0;
  list-style: none;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps::before {
  content: "";
  position: absolute;
  top: 1.08rem;
  left: 16.66%;
  right: 16.66%;
  height: 2px;
  background: #dce5da;
  z-index: 0;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
  color: #98a39b;
  text-align: center;
  font-size: .78rem;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .04em;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  margin: 0 auto .45rem;
  box-sizing: border-box;
  border: 2px solid #d8e1d6;
  border-radius: 50%;
  color: #94a096;
  background: #fff;
  font-size: .78rem;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--input,
body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--input span {
  color: var(--form-green);
}

body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--input span {
  border-color: var(--form-green);
  color: #fff;
  background: var(--form-green);
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--input {
  color: #718078;
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--input span {
  border-color: #c7d5c5;
  color: var(--form-green);
  background: #eef5ed;
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--confirm,
body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--confirm span {
  color: var(--form-green);
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-steps__item--confirm span {
  border-color: var(--form-green);
  color: #fff;
  background: var(--form-green);
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card__form {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card .wpcf7,
body.buzzreuse-sub-page #wrapper-form .contact-form-card .wpcf7 form,
body.buzzreuse-sub-page #wrapper-form .assessment-form {
  width: 100%;
  max-width: none;
  margin: 0;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card .wpcf7 form > p {
  margin: 0;
  padding: 0;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem 1.3rem;
  margin-bottom: 1.25rem;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__field {
  min-width: 0;
  margin: 0 0 1.25rem;
  padding: 0;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__grid .assessment-form__field {
  margin-bottom: 0;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__label {
  display: block;
  margin: 0 0 .52rem;
  padding: 0;
  color: var(--form-green-dark);
  font-size: clamp(.92rem, 1.5vw, 1rem);
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: .03em;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__label .required {
  margin-left: .16em;
  color: var(--form-required);
  font-style: normal;
  font-weight: 700;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

body.buzzreuse-sub-page #wrapper-form input[type="text"],
body.buzzreuse-sub-page #wrapper-form input[type="email"],
body.buzzreuse-sub-page #wrapper-form input[type="tel"],
body.buzzreuse-sub-page #wrapper-form textarea {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
  border: 1.5px solid #e0e7de;
  border-radius: 1.05rem;
  outline: 0;
  background: var(--form-field);
  color: #344039;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  font-weight: 500;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

body.buzzreuse-sub-page #wrapper-form input[type="text"],
body.buzzreuse-sub-page #wrapper-form input[type="email"],
body.buzzreuse-sub-page #wrapper-form input[type="tel"] {
  height: 4rem;
  padding: 0 1.25rem;
}

body.buzzreuse-sub-page #wrapper-form textarea {
  min-height: 11.5rem;
  padding: 1.15rem 1.25rem;
  resize: vertical;
}

body.buzzreuse-sub-page #wrapper-form input::placeholder,
body.buzzreuse-sub-page #wrapper-form textarea::placeholder {
  color: #9aa49d;
  opacity: 1;
}

body.buzzreuse-sub-page #wrapper-form input:focus,
body.buzzreuse-sub-page #wrapper-form textarea:focus {
  border-color: var(--form-green);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(57, 137, 51, .09);
}

body.buzzreuse-sub-page #wrapper-form .wpcf7-not-valid {
  border-color: #e87575;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7-not-valid-tip {
  display: block;
  margin: .4rem .25rem 0;
  padding: 0;
  color: #d94949;
  font-size: .84rem;
  line-height: 1.6;
  font-weight: 500;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__actions {
  margin-top: clamp(2.35rem, 5vw, 3.4rem);
  text-align: center;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__actions > p {
  margin: 0;
  padding: 0;
}

body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm,
body.buzzreuse-sub-page #wrapper-form .wpcf7-submit,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-edit-btn {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 4.05rem;
  box-sizing: border-box;
  margin: 0;
  padding: .9rem 1.5rem;
  border-radius: 999px;
  cursor: pointer;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: .98rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none;
  transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease;
}

body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm,
body.buzzreuse-sub-page #wrapper-form .wpcf7-submit,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn {
  border: 2px solid var(--form-green-dark);
  color: #fff;
  background: var(--form-green);
  box-shadow: 0 .75rem 1.6rem rgba(57, 137, 51, .15);
}

body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-edit-btn {
  border: 2px solid var(--form-green-dark);
  color: var(--form-green-dark);
  background: #fff;
  box-shadow: none;
}

body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm:hover,
body.buzzreuse-sub-page #wrapper-form .wpcf7-submit:hover,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn:hover,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-edit-btn:hover {
  transform: translateY(-1px);
  opacity: .9;
}

body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm:active,
body.buzzreuse-sub-page #wrapper-form .wpcf7-submit:active,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn:active,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-edit-btn:active {
  transform: translateY(0);
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__note {
  margin: 1rem 0 0;
  padding: 0;
  color: #93a097;
  text-align: center;
  font-size: .84rem;
  line-height: 1.7;
  font-weight: 500;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7-response-output {
  margin: 1.25rem 0 0 !important;
  padding: .95rem 1.1rem !important;
  border-width: 1px !important;
  border-radius: .9rem;
  font-size: .9rem;
  line-height: 1.7;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7-spinner {
  display: block;
  margin: .85rem auto 0;
}

/* Confirm Plus が確認画面の裏側に残す元フォームをレイアウトから完全に除外 */
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-form-hide {
  position: absolute !important;
  top: -99999px !important;
  left: -99999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Confirm Plus 確認画面 */
body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf {
  display: block !important;
  flex-direction: initial !important;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf table {
  display: table !important;
  width: 100%;
  margin: 0;
  padding: 0 !important;
  border: 0;
  border-collapse: separate;
  border-spacing: 0 .72rem;
  table-layout: fixed;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tbody {
  display: table-row-group;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tr {
  display: table-row;
  margin: 0;
  border: 0;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th,
body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td {
  box-sizing: border-box;
  padding: 1rem 1.15rem;
  border-top: 1px solid #e0e7de;
  border-bottom: 1px solid #e0e7de;
  vertical-align: middle;
  font-size: .96rem;
  line-height: 1.75;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th {
  width: 34%;
  border-left: 1px solid #e0e7de;
  border-radius: .9rem 0 0 .9rem;
  color: var(--form-green-dark);
  background: #eef5ed;
  text-align: left;
  font-weight: 700;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td {
  border-right: 1px solid #e0e7de;
  border-radius: 0 .9rem .9rem 0;
  color: #4f5e54;
  background: #fbfcfa;
  font-weight: 500;
  overflow-wrap: anywhere;
}

body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th p,
body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td p {
  margin: 0;
  padding: 0;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7cp-btns {
  position: static !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  justify-content: initial !important;
  gap: .9rem;
  width: min(100%, 34rem);
  margin: 2.2rem auto 0;
  padding: 0 !important;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7cp-btns::before {
  content: none !important;
  display: none !important;
}

body.buzzreuse-sub-page #wrapper-form .wpcf7cp-btns .wpcf7cp-cfm-edit-btn,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-btns .wpcf7cp-cfm-submit-btn {
  width: 100% !important;
  margin: 0;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  max-width: 760px;
  margin: clamp(2.5rem, 5vw, 3.4rem) auto 0;
  padding: 1.25rem 1.4rem;
  border: 1px solid #e0e7de;
  border-radius: 1.05rem;
  background: #f8faf7;
}

body.is-contact-confirm.buzzreuse-sub-page #wrapper-form .contact-form-help {
  display: none;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help__label {
  margin: 0;
  padding: 0;
  color: #5e6c62;
  font-size: .9rem;
  line-height: 1.65;
  font-weight: 600;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel {
  flex: 0 0 auto;
  min-width: 12.5rem;
  padding: .62rem 1.1rem;
  border: 2px solid var(--form-green-dark);
  border-radius: 999px;
  color: var(--form-green-dark);
  background: var(--form-orange);
  text-align: center;
  text-decoration: none;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel span,
body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel strong {
  display: block;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel span {
  font-size: .7rem;
  line-height: 1.3;
  font-weight: 700;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel strong {
  margin-top: .1rem;
  font-size: 1.03rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .03em;
}

@media screen and (max-width: 768px) {
  body.buzzreuse-sub-page #wrapper-form .contact-form-page__section {
    padding-top: 7.5rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-page__inner,
  body.buzzreuse-sub-page #wrapper-form .contact-form-page__inner--form {
    width: min(calc(100% - 2rem), 900px);
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-card {
    padding: 2.2rem 1.25rem 2rem;
    border-radius: 1.35rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-card__icon {
    width: 4.4rem;
    height: 4.4rem;
    margin-bottom: 1.2rem;
  }

  body.buzzreuse-sub-page #wrapper-form .assessment-form__grid {
    gap: 1rem;
  }

  body.buzzreuse-sub-page #wrapper-form input[type="text"],
  body.buzzreuse-sub-page #wrapper-form input[type="email"],
  body.buzzreuse-sub-page #wrapper-form input[type="tel"] {
    height: 3.8rem;
    padding: 0 1rem;
  }

  body.buzzreuse-sub-page #wrapper-form textarea {
    min-height: 10rem;
    padding: 1rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-help {
    display: block;
    padding: 1.15rem;
    text-align: center;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-help__tel {
    display: block;
    width: 100%;
    max-width: 20rem;
    box-sizing: border-box;
    margin: .85rem auto 0;
  }
}

@media screen and (max-width: 560px) {
  body.buzzreuse-sub-page #wrapper-form .assessment-form__grid {
    grid-template-columns: 1fr;
    margin-bottom: 0;
  }

  body.buzzreuse-sub-page #wrapper-form .assessment-form__grid .assessment-form__field {
    margin-bottom: 1.15rem;
  }

  body.buzzreuse-sub-page #wrapper-form .assessment-form__field {
    margin-bottom: 1.15rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-steps {
    width: 100%;
    margin-top: 1.7rem;
    margin-bottom: 2rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-steps__item {
    font-size: .72rem;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf table,
  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tbody,
  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tr,
  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th,
  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td {
    display: block;
    width: 100%;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf table {
    border-spacing: 0;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tr {
    margin-bottom: .85rem;
    border: 1px solid #e0e7de;
    border-radius: .9rem;
    overflow: hidden;
    background: #fbfcfa;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th,
  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td {
    border: 0;
    border-radius: 0;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf th {
    padding: .72rem .95rem;
    background: #eef5ed;
    font-size: .84rem;
  }

  body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf td {
    padding: .9rem .95rem 1rem;
    font-size: .92rem;
  }

  body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm,
  body.buzzreuse-sub-page #wrapper-form .wpcf7-submit,
  body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn,
  body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-edit-btn {
    min-height: 3.85rem;
  }

  body.buzzreuse-sub-page #wrapper-form .wpcf7cp-btns {
    grid-template-columns: 1fr;
  }
}

/* ======================================================================================================================
   送信完了 / fixed page「thanks」
====================================================================================================================== */

body.buzzreuse-sub-page #thanks-page.thanks-page {
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(226, 158, 48, .09), transparent 30%),
    radial-gradient(circle at 85% 8%, rgba(57, 137, 51, .12), transparent 34%),
    #f4f7f3;
}

body.buzzreuse-sub-page #thanks-page .thanks-page__section {
  padding: clamp(9.5rem, 12vw, 12rem) 0 clamp(5rem, 9vw, 8rem);
}

body.buzzreuse-sub-page #thanks-page .thanks-page__inner {
  width: min(calc(100% - 2.5rem), 820px);
  margin: 0 auto;
}

body.buzzreuse-sub-page #thanks-page .thanks-card {
  padding: clamp(2.7rem, 6vw, 5rem) clamp(1.5rem, 6vw, 4.5rem);
  border: 1px solid rgba(26, 46, 31, .08);
  border-radius: clamp(1.5rem, 3vw, 2rem);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 1.25rem 3.5rem rgba(26, 46, 31, .07);
  text-align: center;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  background: #398933;
  box-shadow: 0 .8rem 1.8rem rgba(57, 137, 51, .16);
}

body.buzzreuse-sub-page #thanks-page .thanks-card__icon span {
  display: block;
  width: 1.7rem;
  height: .9rem;
  border-left: .25rem solid #fff;
  border-bottom: .25rem solid #fff;
  transform: translateY(-.15rem) rotate(-45deg);
}

body.buzzreuse-sub-page #thanks-page .thanks-card__eyebrow {
  margin: 0 0 .5rem;
  padding: 0;
  color: #398933;
  font-size: .82rem;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .16em;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__title {
  margin: 0;
  padding: 0;
  color: #1a2e1f;
  font-size: clamp(1.8rem, 4vw, 2.65rem);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .03em;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__text {
  margin: 1.4rem auto 0;
  padding: 0;
  max-width: 36rem;
  color: #617066;
  font-size: clamp(.94rem, 1.6vw, 1rem);
  line-height: 2;
  font-weight: 500;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .9rem;
  max-width: 34rem;
  margin: 2.3rem auto 0;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__home,
body.buzzreuse-sub-page #thanks-page .thanks-card__contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.9rem;
  padding: .85rem 1.2rem;
  border: 2px solid #1a2e1f;
  border-radius: 999px;
  font-size: .95rem;
  line-height: 1.3;
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, opacity .2s ease;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__home {
  color: #fff;
  background: #398933;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__contact {
  color: #1a2e1f;
  background: #fff;
}

body.buzzreuse-sub-page #thanks-page .thanks-card__home:hover,
body.buzzreuse-sub-page #thanks-page .thanks-card__contact:hover {
  transform: translateY(-1px);
  opacity: .9;
}

@media screen and (max-width: 768px) {
  body.buzzreuse-sub-page #thanks-page .thanks-page__inner {
    width: min(calc(100% - 2rem), 820px);
  }

  body.buzzreuse-sub-page #thanks-page .thanks-page__section {
    padding-top: 7.5rem;
  }

  body.buzzreuse-sub-page #thanks-page .thanks-card__actions {
    grid-template-columns: 1fr;
  }
}

/* 2026-08-27: Fixed-page title bar — underline only */
body.buzzreuse-sub-page .buzz-page-header {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-bottom: 2px solid #398933 !important;
}

/* 2026-08-27: Fixed-page preformatted text wrapping (company info etc.) */
body.buzzreuse-sub-page .page-editor-content pre,
body.buzzreuse-sub-page .page-editor-content .wp-block-preformatted {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0 0 1.4em;
  padding: 0;
  font: inherit;
  line-height: 1.9;
  color: inherit;
  background: transparent;
  border: 0;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere;
  word-break: normal;
}


/* ======================================================================================================================
   買取査定依頼フォーム 幅・確認ボタン調整 2026-08-27
====================================================================================================================== */
body.buzzreuse-sub-page #wrapper-form .contact-form-card__form {
  width: 100%;
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
}

body.buzzreuse-sub-page #wrapper-form .contact-form-card .wpcf7 form {
  width: 100%;
  max-width: none;
  padding: 0 !important;
  box-sizing: border-box;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form,
body.buzzreuse-sub-page #wrapper-form .assessment-form__field,
body.buzzreuse-sub-page #wrapper-form .wpcf7-form-control-wrap,
body.buzzreuse-sub-page #wrapper-form input[type="text"],
body.buzzreuse-sub-page #wrapper-form input[type="email"],
body.buzzreuse-sub-page #wrapper-form input[type="tel"],
body.buzzreuse-sub-page #wrapper-form textarea {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

body.buzzreuse-sub-page #wrapper-form .assessment-form__actions {
  width: min(100%, 34rem);
  margin: clamp(2.35rem, 5vw, 3.4rem) auto 0;
  text-align: center;
}

body.buzzreuse-sub-page #wrapper-form input.wpcf7-form-control.wpcf7cp-confirm,
body.buzzreuse-sub-page #wrapper-form .wpcf7-submit,
body.buzzreuse-sub-page #wrapper-form .wpcf7cp-cfm-submit-btn {
  display: flex !important;
  width: 100% !important;
  max-width: 34rem;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  text-indent: 0 !important;
  letter-spacing: .03em !important;
  align-items: center !important;
  justify-content: center !important;
}

@media screen and (max-width: 768px) {
  body.buzzreuse-sub-page #wrapper-form .contact-form-card {
    padding-left: .8rem;
    padding-right: .8rem;
  }

  body.buzzreuse-sub-page #wrapper-form .contact-form-card__form {
    max-width: none;
  }
}

/* 確認画面：氏名・フリガナは1行で表示 */
body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tr.buzzreuse-confirm-row--name td,
body.buzzreuse-sub-page #wrapper-form #wpcf7cpcnf tr.buzzreuse-confirm-row--kana td {
  white-space: nowrap;
}
