@charset "UTF-8";
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

main,
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

nav ul {
  list-style: none;
}

ul {
  list-style: none;
}

ol {
  margin-left: 24px;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

i {
  font-style: normal;
}

* {
  box-sizing: border-box;
}
*:before, *:after {
  box-sizing: border-box;
}
* {
  -webkit-tap-highlight-color: transparent;
}

html {
  -webkit-text-size-adjust: 100%;
  font-size: 62.5%;
}

body {
  background: radial-gradient(1200px 600px at 85% -10%, rgba(142, 174, 156, 0.25), transparent 60%), radial-gradient(900px 500px at -10% 20%, rgba(63, 107, 86, 0.08), transparent 55%), linear-gradient(180deg, #fbfdfc 0%, #f7faf8 40%, #f3f7f4 100%);
  color: #1f2a24;
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-feature-settings: "palt";
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1;
  min-height: 100svh;
  min-width: 360px;
  overflow-x: hidden;
  overflow-y: scroll;
  position: relative;
  scrollbar-gutter: stable;
  text-rendering: optimizeLegibility;
  word-break: break-all;
}

[x-cloak] {
  display: none !important;
}

main {
  min-height: calc(100svh - 64px - 120px);
  min-width: 100svw;
}

.section {
  padding: clamp(4.8rem, 1.6rem + 5vw, 8rem) 0;
}
.section .inner {
  margin: 0 auto;
  max-width: 1140px;
  padding: 0 clamp(0rem, 3.2rem + -2.5vw, 1.6rem);
}
.section .inner h2 {
  display: grid;
  gap: 16px;
}
.section .inner h2 small {
  color: #8eae9c;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  font-weight: 400;
  letter-spacing: 0.15em;
}
.section .inner h2 span {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(2.8rem, 1.6rem + 1.875vw, 4rem);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.section .inner p {
  color: #5d6d64;
  letter-spacing: 0.04em;
  line-height: 1.8;
  text-align: justify;
}
.section .inner .no-data {
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  text-align: center;
}
.section .inner .actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.6rem, -0.8rem + 3.75vw, 4rem);
  justify-content: center;
}
.section .inner .error > p {
  color: #e65050;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  text-align: center;
}
.section .inner .error > .actions {
  margin-top: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
}
.section .inner .error > .actions .btn {
  width: clamp(14rem, 12rem + 3.125vw, 16rem);
}

.page-hero {
  padding: clamp(4.8rem, 1.6rem + 5vw, 8rem) 0 clamp(2.4rem, 1.6rem + 1.25vw, 3.2rem);
  background: radial-gradient(900px 420px at 90% 0%, rgba(142, 174, 156, 0.2), transparent 65%), linear-gradient(180deg, #fbfdfc 0%, #eef5f1 100%);
  border-bottom: 1px solid rgba(201, 216, 207, 0.6);
}
.page-hero .inner {
  display: grid;
  gap: clamp(2.4rem, 1.6rem + 1.25vw, 3.2rem);
  margin: 0 auto;
  max-width: 1140px;
  padding: 0 clamp(0rem, 3.2rem + -2.5vw, 1.6rem);
}
.page-hero .inner h1 {
  display: grid;
  gap: 16px;
}
.page-hero .inner h1 small {
  color: #8eae9c;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  font-weight: 400;
  letter-spacing: 0.15em;
}
.page-hero .inner h1 span {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(2.8rem, 1.6rem + 1.875vw, 4rem);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.page-hero .inner p {
  color: #5d6d64;
  letter-spacing: 0.04em;
  line-height: 1.8;
  text-align: justify;
}

.btn {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 9999px;
  display: inline-flex;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  justify-content: center;
  letter-spacing: 0.04em;
  min-height: clamp(4.8rem, 4rem + 1.25vw, 5.6rem);
  padding: 12px 24px;
  transition: background 0.25s cubic-bezier(0.22, 1, 0.36, 1), color 0.25s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1), transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.btn:hover, .btn:focus-visible {
  transform: translateY(-1px);
}
.btn.primary {
  background-color: #3f6b56;
  color: #fff;
}
.btn.primary:hover, .btn.primary:focus-visible {
  background-color: #2f5342;
}
.btn.ghost {
  background-color: rgba(255, 255, 255, 0.6);
  border-color: #c9d8cf;
  color: #2f5342;
}
.btn.ghost:hover, .btn.ghost:focus-visible {
  background-color: #fff;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  cursor: pointer;
}

.disc {
  display: grid;
  gap: 12px;
}
.disc li {
  padding-left: 1.2em;
  position: relative;
}
.disc li::before {
  background-color: #8eae9c;
  border-radius: 50%;
  content: "";
  height: 8px;
  left: 0;
  position: absolute;
  top: 0.3em;
  width: 8px;
}

.only-sp {
  display: block;
}

header {
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  background: rgba(247, 250, 248, 0.85);
  border-bottom: 1px solid rgba(201, 216, 207, 0.7);
  height: 64px;
  position: sticky;
  top: 0;
  z-index: 20;
}
header.is-nav-open {
  border-bottom-color: transparent;
}
header.is-nav-open nav {
  display: grid;
}
header .inner {
  align-items: center;
  display: flex;
  gap: 16px;
  height: 100%;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1140px;
  padding: 0 clamp(0rem, 3.2rem + -2.5vw, 1.6rem);
}
header .logo {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.8rem;
  font-weight: 600;
}
header .nav-toggle {
  background: transparent;
  border: 0;
  cursor: pointer;
  display: inline-grid;
  gap: 6px;
  height: 40px;
  place-content: center;
  width: 40px;
}
header .nav-toggle::before, header .nav-toggle::after {
  background-color: #1f2a24;
  content: "";
  display: block;
  height: 2px;
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  width: 20px;
}
header .nav-toggle[aria-expanded=true]::before {
  transform: translateY(4px) rotate(45deg);
}
header .nav-toggle[aria-expanded=true]::after {
  transform: translateY(-4px) rotate(-45deg);
}
header nav {
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  background: rgba(247, 250, 248, 0.85);
  border-bottom: 1px solid #c9d8cf;
  box-shadow: 0 12px 28px rgba(31, 42, 36, 0.08);
  display: none;
  font-size: 1.4rem;
  gap: 0;
  left: 0;
  padding: 8px 24px 24px;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 21;
}
header nav a {
  border-bottom: 1px solid rgba(201, 216, 207, 0.7);
  color: #5d6d64;
  padding: 16px 4px;
  transition: color 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
header nav a:hover, header nav a:focus-visible {
  color: #2f5342;
}

footer {
  background-color: rgba(238, 245, 241, 0.1);
  border-top: 1px solid #c9d8cf;
  height: 120px;
}
footer .inner {
  align-content: center;
  display: grid;
  gap: 16px;
  height: 100%;
  margin: 0 auto;
  max-width: 1140px;
}
footer .inner .logo {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
}
footer .inner .copy {
  color: #5d6d64;
  font-size: 1.4rem;
  line-height: 1.6;
  text-align: center;
}

.section.blog .inner {
  display: grid;
  gap: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
  margin: 0 auto;
  max-width: 960px;
  padding: 0 clamp(0rem, 3.2rem + -2.5vw, 1.6rem);
}
.section.blog .inner .tag-list {
  background-color: #eef5f1;
  border-radius: 8px;
  padding: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
  width: 100%;
}
.section.blog .inner .tag-list > h2 {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(1.6rem, 1.2rem + 0.625vw, 2rem);
  font-weight: 700;
  margin-bottom: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
}
.section.blog .inner .tag-list > ul {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.8rem, 0rem + 1.25vw, 1.6rem);
  list-style: none;
}
.section.blog .inner .tag-list > ul > li > a {
  background-color: #fff;
  border: 1px solid #c9d8cf;
  border-radius: 4px;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  font-weight: 500;
  line-height: 1;
  padding: 6px 12px;
  text-decoration: none;
  transition: 0.3s;
}
.section.blog .inner .list {
  border-top: 1px solid #c9d8cf;
  list-style: none;
  padding: 0;
  width: 100%;
}
.section.blog .inner .list > li {
  border-bottom: 1px solid #c9d8cf;
}
.section.blog .inner .list > li > a {
  color: #1f2a24;
  display: grid;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  font-weight: 500;
  gap: clamp(0.8rem, 0rem + 1.25vw, 1.6rem);
  grid-template-columns: 1fr;
  line-height: 1.4;
  padding: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
  text-decoration: none;
  transition: 0.3s;
}
.section.blog .inner .list > li > a > time {
  color: #5d6d64;
}
.section.blog .inner .list > li > a > span {
  color: #1f2a24;
}
.section.blog .inner .list + .actions {
  display: flex;
  justify-content: center;
  margin-top: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
}
.section.blog .inner .pagination {
  display: flex;
  gap: 8px;
  justify-content: space-between;
  margin-top: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
  width: 100%;
}
.section.blog .inner .pagination > .page-arrow {
  align-items: center;
  background-color: #8eae9c;
  border-radius: 50%;
  display: flex;
  height: clamp(3.2rem, 2.4rem + 1.25vw, 4rem);
  justify-content: center;
  padding: 0;
  transition: 0.3s;
  width: clamp(3.2rem, 2.4rem + 1.25vw, 4rem);
}
.section.blog .inner .pagination > .page-arrow::before {
  background-color: #fff;
  content: "";
  display: block;
  height: clamp(1rem, 0.8rem + 0.313vw, 1.2rem);
  width: clamp(1rem, 0.8rem + 0.313vw, 1.2rem);
}
.section.blog .inner .pagination > .page-arrow.prev::before {
  clip-path: polygon(60% 0, 10% 50%, 60% 100%, 70% 90%, 30% 50%, 70% 10%);
}
.section.blog .inner .pagination > .page-arrow.next::before {
  clip-path: polygon(40% 0, 90% 50%, 40% 100%, 30% 90%, 70% 50%, 30% 10%);
}
.section.blog .inner .pagination > .page-arrow.disabled {
  background-color: #eee;
  pointer-events: none;
}
.section.blog .inner .pagination > .page-arrow.disabled::before {
  background-color: #bbb;
}
.section.blog .inner .pagination > .page-numbers {
  display: flex;
  gap: 4px;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.section.blog .inner .pagination > .page-numbers > li {
  align-items: center;
  display: flex;
  justify-content: center;
}
.section.blog .inner .pagination > .page-numbers > li > a, .section.blog .inner .pagination > .page-numbers > li > span {
  align-items: center;
  color: #1f2a24;
  display: flex;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  justify-content: center;
  line-height: 1;
}
.section.blog .inner .pagination > .page-numbers > li > a {
  background-color: transparent;
  border-radius: 50%;
  color: #1f2a24;
  height: clamp(3.2rem, 2.4rem + 1.25vw, 4rem);
  text-decoration: none;
  transition: 0.2s;
  width: clamp(3.2rem, 2.4rem + 1.25vw, 4rem);
}
.section.blog .inner .pagination > .page-numbers > li > a.current {
  background-color: #3f6b56;
  color: #fff;
  pointer-events: none;
}
.section.blog .inner .pagination > .page-numbers > li > span.dots {
  color: #1f2a24;
}
.section.blog-post .inner article > time {
  color: #5d6d64;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  font-weight: 500;
}
.section.blog-post .inner article > h1 {
  color: #1f2a24;
  font-size: clamp(1.8rem, 0.8rem + 1.563vw, 2.8rem);
  font-weight: 600;
  line-height: 1.4;
  margin-top: clamp(0.8rem, 0.4rem + 0.625vw, 1.2rem);
}
.section.blog-post .inner article .tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.8rem, 0rem + 1.25vw, 1.6rem);
  height: 100%;
  list-style: none;
  margin: 16px 0 0 0;
  padding: 0;
  width: 100%;
}
.section.blog-post .inner article .tag-list > a {
  background-color: #fff;
  border: 1px solid #c9d8cf;
  border-radius: 4px;
  color: #1f2a24;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  line-height: 1;
  padding: 6px 12px;
  text-decoration: none;
  transition: 0.3s;
}
.section.blog-post .inner article .eyecatch {
  margin-top: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
}
.section.blog-post .inner article .eyecatch > img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
.section.blog-post .inner article .content {
  font-size: clamp(1.4rem, 1.223rem + 0.368vw, 1.6rem);
  margin-top: clamp(1.6rem, 0rem + 2.5vw, 3.2rem);
}
.section.blog-post .inner article .content a {
  color: #3f6b56;
  text-decoration: underline;
  transition: 0.3s;
}
.section.blog-post .inner article .content a:hover {
  color: #2f5342;
}
.section.blog-post .inner article .content h1,
.section.blog-post .inner article .content h2,
.section.blog-post .inner article .content h3,
.section.blog-post .inner article .content h4,
.section.blog-post .inner article .content h5,
.section.blog-post .inner article .content h6 {
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: clamp(0.6rem, 0.4rem + 0.313vw, 0.8rem);
}
.section.blog-post .inner article .content h1 {
  font-size: clamp(2.4rem, 2rem + 0.625vw, 2.8rem);
}
.section.blog-post .inner article .content h2 {
  font-size: clamp(2.2rem, 1.8rem + 0.625vw, 2.6rem);
}
.section.blog-post .inner article .content h3 {
  font-size: clamp(2rem, 1.6rem + 0.625vw, 2.4rem);
}
.section.blog-post .inner article .content h4 {
  font-size: clamp(1.8rem, 1.4rem + 0.625vw, 2.2rem);
}
.section.blog-post .inner article .content h5 {
  font-size: clamp(1.6rem, 1.2rem + 0.625vw, 2rem);
}
.section.blog-post .inner article .content h6 {
  font-size: clamp(1.4rem, 1rem + 0.625vw, 1.8rem);
}
.section.blog-post .inner article .content p {
  line-height: 1.6;
  margin-bottom: 1em;
}
.section.blog-post .inner article .content ol,
.section.blog-post .inner article .content ul {
  line-height: 1.6;
  margin-left: 1em;
  padding-left: 40px;
}
.section.blog-post .inner article .content ul {
  list-style: disc;
}
.section.blog-post .inner article .content code {
  background-color: #fff;
  border-radius: 4px;
  color: #c57600;
  display: inline-block;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  line-height: inherit;
  padding: 4px 8px;
}
.section.blog-post .inner article .content blockquote {
  border-left: 4px solid #c9d8cf;
  color: #5d6d64;
  font-style: italic;
  line-height: 1.6;
  margin: 1em 0;
  padding-left: 16px;
}
.section.blog-post .inner article .content pre {
  background-color: #fff;
  border-radius: 4px;
  display: block;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  line-height: 1.6;
  margin: 1em 0;
}
.section.blog-post .inner article .content pre code {
  background-color: transparent;
  padding: 1em;
}
.section.blog-post .inner article .content table {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}
.section.blog-post .inner article .content table th,
.section.blog-post .inner article .content table td {
  padding: 0.5em;
  border: 1px solid #c9d8cf;
}
.section.blog-post .inner article .content figure {
  width: 100%;
}
.section.blog-post .inner article .content figure img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.section.blog-post .inner article .content figure figcaption {
  color: #5d6d64;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  line-height: 1.4;
  margin-top: 0.5em;
}
.section.blog-post .inner article .content hr {
  border: none;
}
.section.blog-post .inner article .content hr.__se__solid {
  border-top: 1px solid #c9d8cf;
}
.section.blog-post .inner article .content hr.__se__dashed {
  border-top: 1px dashed #8eae9c;
}
.section.blog-post .inner article .content hr.__se__dotted {
  border-top: 2px dotted #c9d8cf;
}
.section.blog-post .inner article .content .se-video-container {
  height: auto;
  position: relative;
  max-width: 100%;
  width: auto;
}
.section.blog-post .inner article .content .se-video-container iframe,
.section.blog-post .inner article .content .se-video-container video {
  border: 0;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.section.blog-post .inner .actions {
  border-top: 1px solid #c9d8cf;
  margin-top: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
  padding-top: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
}
.section.blog-post .inner .actions .btn {
  width: clamp(14rem, 12rem + 3.125vw, 16rem);
}

.status {
  align-items: center;
  background: radial-gradient(900px 420px at 85% 0%, rgba(142, 174, 156, 0.2), transparent 65%), radial-gradient(700px 360px at 10% 90%, rgba(63, 107, 86, 0.08), transparent 60%), linear-gradient(180deg, #fbfdfc 0%, #f7faf8 55%, #f3f7f4 100%);
  display: grid;
  min-height: calc(100svh - 64px - 120px);
}
.status .inner {
  display: grid;
  gap: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
  margin: 0 auto;
  max-width: 640px;
  text-align: center;
}
.status .inner strong {
  color: #3f6b56;
  display: block;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(5.6rem, 2.4rem + 5vw, 8.8rem);
  font-weight: 700;
  letter-spacing: 0.06em;
}
.status .inner small {
  color: #8eae9c;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  letter-spacing: 0.1em;
}
.status .inner h1 {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(2rem, 0.8rem + 1.875vw, 3.2rem);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.status .inner p {
  color: #5d6d64;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  line-height: 1.8;
}
.status .inner .actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.6rem, -0.8rem + 3.75vw, 4rem);
  justify-content: center;
  margin-top: 24px;
}

.section.legal .inner {
  display: grid;
  gap: clamp(2.4rem, 0.8rem + 2.5vw, 4rem);
  max-width: 960px;
  padding: 0 clamp(0rem, 3.2rem + -2.5vw, 1.6rem);
}
.section.legal .inner > section {
  counter-increment: num;
  display: grid;
  gap: 16px;
}
.section.legal .inner > section h2 {
  display: grid;
  gap: 8px;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(1.8rem, 1.4rem + 0.625vw, 2.2rem);
  font-weight: 600;
  grid-template-columns: auto 1fr;
  letter-spacing: 0.04em;
}
.section.legal .inner > section h2::before {
  content: counter(num) ".";
}
.section.legal .inner > section .disc li {
  color: #5d6d64;
  line-height: 1.2;
}
.section.legal .inner > section .disc li::before {
  top: 0.4em;
}
.section.legal .inner .date {
  text-align: right;
}
.section.legal .inner a {
  color: #2f5342;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.section.legal .inner a:hover, .section.legal .inner a:focus-visible {
  color: #3f6b56;
}

.hero {
  align-items: end;
  display: grid;
  min-height: calc(100svh - 64px);
  overflow: hidden;
  position: relative;
}
.hero .bg {
  inset: 0;
  position: absolute;
  z-index: 0;
}
.hero .bg::after {
  background: linear-gradient(90deg, rgba(247, 250, 248, 0.9) 0%, rgba(247, 250, 248, 0.7) 40%, rgba(247, 250, 248, 0.2) 70%), linear-gradient(180deg, rgba(247, 250, 248, 0.15) 40%, rgba(247, 250, 248, 0.75) 100%);
  content: "";
  inset: 0;
  position: absolute;
}
.hero .bg img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}
.hero .inner {
  margin: 0 auto;
  max-width: 1140px;
  padding: clamp(4.8rem, 0rem + 7.5vw, 9.6rem) clamp(0rem, 3.2rem + -2.5vw, 1.6rem) clamp(5.6rem, 2.4rem + 5vw, 8.8rem);
  position: relative;
  width: 100%;
  z-index: 1;
}
.hero .inner h1 {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(3.6rem, 0rem + 5.625vw, 7.2rem);
  font-weight: 700;
  letter-spacing: 0.06em;
}
.hero .inner h2 {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(2.4rem, 1.6rem + 1.25vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-top: 24px;
}
.hero .inner p {
  color: #5d6d64;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  line-height: 1.8;
  margin-top: 16px;
}
.hero .inner .actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
  margin-top: 32px;
}

.section.blog h2 + p {
  margin-top: 24px;
}
.section.about {
  background: linear-gradient(180deg, rgba(238, 245, 241, 0.7), rgba(247, 250, 248, 0.2));
}
.section.about .inner {
  align-items: center;
  display: grid;
  gap: clamp(3.2rem, 0rem + 5vw, 6.4rem);
}
.section.about .inner figure {
  border-radius: 16px;
  overflow: hidden;
}
.section.about p {
  margin-top: 24px;
}
.section.about .disc {
  margin-top: 24px;
}
.section.about .disc li {
  line-height: 1.8;
}
.section.about .disc li::before {
  top: 0.7em;
}
.section.flow {
  background: linear-gradient(180deg, transparent, rgba(238, 245, 241, 0.8) 30%, rgba(238, 245, 241, 0.8) 70%, transparent);
}
.section.flow h2 + p {
  margin-top: 24px;
}
.section.flow ul {
  align-items: start;
  counter-reset: step;
  display: grid;
  gap: clamp(0rem, 4.8rem + -3.75vw, 2.4rem) clamp(1.6rem, 0rem + 2.5vw, 3.2rem);
  margin-top: clamp(2.4rem, 0rem + 3.75vw, 4.8rem);
}
.section.flow ul li {
  counter-increment: step;
  display: grid;
  gap: 16px;
}
.section.flow ul li::before {
  color: #3f6b56;
  content: "STEP 0" counter(step);
  letter-spacing: 0.1em;
}
.section.flow ul li figure {
  border: 1px solid rgba(63, 107, 86, 0.1);
  border-radius: 16px;
  overflow: hidden;
}
.section.flow ul li h3 {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-top: 8px;
}
.section.voice h2 + p {
  margin-top: 24px;
}
.section.voice ul {
  display: grid;
  gap: 0 clamp(1.6rem, 0rem + 2.5vw, 3.2rem);
  margin-top: clamp(3.2rem, 1.6rem + 2.5vw, 4.8rem);
}
.section.voice ul li {
  border-top: 1px solid #c9d8cf;
  display: grid;
  gap: 16px;
  padding: 24px 0;
  position: relative;
}
.section.voice ul li:last-child {
  border-bottom: 1px solid #c9d8cf;
}
.section.voice ul li small {
  align-items: center;
  background-color: #eef5f1;
  border-radius: 9999px;
  color: #5d6d64;
  display: grid;
  font-size: clamp(1.2rem, 1rem + 0.313vw, 1.4rem);
  font-weight: 400;
  height: 24px;
  left: 50%;
  padding: 0 16px;
  position: absolute;
  top: -12px;
  transform: translateX(-50%);
  width: -moz-fit-content;
  width: fit-content;
}
.section.voice ul li p {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.section.faq .inner {
  max-width: 800px;
}
.section.faq .list {
  margin-top: clamp(2.4rem, 0rem + 3.75vw, 4.8rem);
}
.section.faq details {
  border-top: 1px solid #c9d8cf;
  padding: clamp(2.4rem, 1.6rem + 1.25vw, 3.2rem) 0;
}
.section.faq details:last-child {
  border-bottom: 1px solid #c9d8cf;
}
.section.faq details[open] summary::after {
  display: none;
}
.section.faq details summary {
  cursor: pointer;
  list-style: none;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 0 clamp(2rem, 1.6rem + 0.625vw, 2.4rem) 0 0;
  position: relative;
}
.section.faq details summary::-webkit-details-marker {
  display: none;
}
.section.faq details summary::before, .section.faq details summary::after {
  background-color: #3f6b56;
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.section.faq details summary::before {
  height: 1px;
  right: 0;
  width: clamp(1.2rem, 0.8rem + 0.625vw, 1.6rem);
}
.section.faq details summary::after {
  height: clamp(1.2rem, 0.8rem + 0.625vw, 1.6rem);
  right: clamp(0.6rem, 0.4rem + 0.313vw, 0.8rem);
  width: 1px;
}
.section.faq details p {
  font-size: clamp(1.4rem, 1.2rem + 0.313vw, 1.6rem);
  line-height: 1.6;
  padding-top: 16px;
}
.section.contact {
  background: radial-gradient(700px 320px at 50% 0%, rgba(142, 174, 156, 0.2), transparent 70%), linear-gradient(180deg, #eef5f1, #f7faf8);
}
.section.contact .inner {
  margin-bottom: clamp(2.4rem, 0rem + 3.75vw, 4.8rem);
  max-width: 960px;
}
.section.contact p {
  margin-top: 24px;
}
.section.contact iframe {
  border: none;
  width: 100%;
}
@media screen and (min-width: 640px){
  .only-sp {
    display: none;
  }
  header .nav-toggle {
    display: none;
  }
  header nav {
    align-items: center;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    display: flex;
    gap: clamp(1.6rem, 0.8rem + 1.25vw, 2.4rem);
    padding: 0;
    position: static;
  }
  header nav a {
    border-bottom: none;
    padding: 0;
  }
  footer .inner .logo {
    text-align: left;
  }
  footer .inner .copy {
    text-align: left;
  }
  .section.about .inner {
    grid-template-columns: 1fr 1fr;
  }
  .section.flow ul {
    grid-template-columns: repeat(3, 1fr);
  }
  .section.voice ul {
    grid-template-columns: repeat(3, 1fr);
  }
  .section.voice ul li:last-child {
    border-bottom: 0;
  }
}
@media screen and (min-width: 1024px){
  .section.blog .inner .list > li > a {
    grid-template-columns: auto 1fr;
  }
}
@media (hover: hover){
  .section.blog .inner .tag-list > ul > li > a:hover {
    background-color: #3f6b56;
    color: #fff;
  }
  .section.blog .inner .list > li > a:hover span {
    text-decoration: underline;
  }
  .section.blog .inner .pagination > .page-arrow:hover {
    background-color: #3f6b56;
  }
  .section.blog .inner .pagination > .page-numbers > li > a:hover {
    background-color: #8eae9c;
    color: #fff;
  }
  .section.blog-post .inner article .tag-list > a:hover {
    background-color: #3f6b56;
    color: #fff;
  }
}