/* ---------------------------
  variable
----------------------------- */
:root {
  --white: #ffffff;
  --black: #333333;
  --gray: #cccccc;
  --beige: #F9F6F4;
  --green: #71B52D;
  --font-primary: var(--black);
  --family-primary: "M PLUS 1", sans-serif;
  --line-height-tight: 1.2;
  --line-height-snug: 1.4;
  --line-height-default: 1.5;
  --line-height-normal: 1.7;
  --line-height-relaxed: 2;
  --spacing-gutter: clamp(20px, 0.719px + 4.944vw, 64px);
  --header-height: 94px;
  --header-height-sp: 50px;
  --leading-trim: calc((1em - 1lh) / 2);
  --radius-full: calc(1px / 0);
  --radius-sm: clamp(10px, 1.236px + 2.247vw, 30px);
  --radius-lg: clamp(20px, 6.854px + 3.371vw, 50px);
}

/* ---------------------------
  icon
----------------------------- */
:root {
  --icon-chevron: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"><path d="M3.661,21.339A12.5,12.5,0,1,1,21.339,3.661,12.5,12.5,0,1,1,3.661,21.339Zm.707-16.97A11.5,11.5,0,1,0,20.632,20.632,11.5,11.5,0,1,0,4.369,4.369Zm5.756,11.677L13.772,12.4,10.125,8.753l.707-.707L15.186,12.4l-4.353,4.354Z" fill="black"/></svg>');
}

/* ---------------------------
  CSS Reset
----------------------------- */
* {
  min-inline-size: 0;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

:where(html) {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

:where(body) {
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

:where(body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
ul,
ol) {
  margin: 0;
}

:where(ul, ol) {
  list-style-type: "";
  padding: unset;
}

:where(a:not([class])) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

:where(a) {
  text-decoration: none;
}

:where(img, picture) {
  max-width: 100%;
  height: auto;
  display: block;
}

:where(input, button, textarea, select) {
  font: inherit;
}

:where(input[type=text], textarea) {
  font-size: 16px;
}

:where(textarea) {
  field-sizing: content;
}

:where(button, [type=button], [type=reset], [type=submit]) {
  touch-action: manipulation;
}

:where(:-moz-any-link,
button,
[type=button],
[type=reset],
[type=submit],
label[for],
select,
summary,
[role=tab],
[role=button]) {
  cursor: pointer;
}

:where(:any-link,
button,
[type=button],
[type=reset],
[type=submit],
label[for],
select,
summary,
[role=tab],
[role=button]) {
  cursor: pointer;
}

:focus:not(:focus-visible) {
  outline: none;
}

:where(address) {
  font-style: normal;
}

:where(table) {
  border-collapse: collapse;
}

@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after,
  ::backdrop {
    background-attachment: scroll !important;
    transition-delay: 0s !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
/* ---------------------------
  base
----------------------------- */
body {
  color: var(--font-primary);
  background-color: var(--beige);
  font-family: var(--family-primary);
  font-size: clamp(0.875rem, 0.82rem + 0.225vw, 1rem);
  line-height: 1.75;
  font-weight: 400;
  overflow-x: clip;
  overflow-y: scroll;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}
body:has(dialog[open]) {
  overflow: hidden;
}

a {
  color: var(--font-primary);
}

button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border: none;
  background: none;
  cursor: pointer;
}

.main {
  margin-top: var(--header-height);
  padding-bottom: clamp(3.5rem, 2.29rem + 4.944vw, 6.25rem);
  background-image: url(../img/common/bg.svg);
  background-size: 1720px auto;
  background-position: top center;
  background-repeat: no-repeat;
}
@media (max-width: 1024px) {
  .main {
    margin-top: var(--header-height-sp);
    background-size: auto 70vw;
  }
}

/* ---------------------------
  utility
----------------------------- */
.u-wrapper {
  max-width: calc(1200px + 2 * var(--spacing-gutter));
  margin-inline: auto;
  padding-inline: var(--spacing-gutter);
}

.u-inner {
  max-width: 1000px;
  margin-inline: auto;
}

.u-container {
  container-type: inline-size;
}

.u-br-sm {
  display: none;
}
@media (max-width: 640px) {
  .u-br-sm {
    display: inline;
  }
}

.u-br-sm-none {
  display: inline;
}
@media (max-width: 640px) {
  .u-br-sm-none {
    display: none;
  }
}

.u-br-md {
  display: none;
}
@media (max-width: 768px) {
  .u-br-md {
    display: inline;
  }
}

.u-br-lg {
  display: none;
}
@media (max-width: 1024px) {
  .u-br-lg {
    display: inline;
  }
}

.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.u-forced-wide {
  margin-inline: calc(50% - 50vi);
}

.u-forced-wide-bg {
  -o-border-image: linear-gradient(var(--_background) 0 0) 0//0 100vi;
     border-image: linear-gradient(var(--_background) 0 0) fill 0//0 100vi;
}

.u-stroke {
  text-shadow: 4px 4px 0 #FFF, -4px -4px 0 #FFF, -4px 4px 0 #FFF, 4px -4px 0 #FFF, 0px 4px 0 #FFF, 0 -4px 0 #FFF, -4px 0 0 #FFF, 4px 0 0 #FFF;
}

/* ---------------------------
  component
----------------------------- */
.c-btn {
  display: block;
  text-align: center;
  max-width: 240px;
  width: 100%;
  margin-inline: auto;
  padding: 1em;
  background-color: var(--green);
  color: var(--white);
  font-weight: 500;
  border-radius: 10px;
  transition: opacity 0.2s ease-in-out;
}
.c-btn:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .c-btn:hover {
    opacity: 0.7;
  }
}

.c-tel a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  transition: opacity 0.2s ease-in-out;
}
.c-tel a:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .c-tel a:hover {
    opacity: 0.7;
  }
}
.c-tel a {
  white-space: nowrap;
  font-size: clamp(1.75rem, 1.64rem + 0.449vw, 2rem);
  font-weight: 700;
  text-align: center;
  line-height: 1;
}
.c-tel p {
  margin-top: 0.5em;
  font-size: clamp(0.75rem, 0.64rem + 0.449vw, 1rem);
  text-align: center;
}

/* ---------------------------
  header
----------------------------- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background-color: var(--white);
}
@media (max-width: 1024px) {
  .header {
    position: absolute;
  }
}

.header-wrapper {
  max-width: calc(1200px + var(--spacing-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--spacing-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: var(--header-height);
}
@media (max-width: 1024px) {
  .header-wrapper {
    padding-right: 0;
    padding-left: 10px;
    height: var(--header-height-sp);
    gap: 8px;
  }
}

.header__logo a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
.header__logo a:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .header__logo a:hover {
    opacity: 0.7;
  }
}
@media (max-width: 1024px) {
  .header__logo img {
    width: 140px;
  }
}

@media (max-width: 1024px) {
  .g-nav {
    position: fixed;
    top: 0;
    left: -100%;
    z-index: 999;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background-color: var(--white);
    padding-top: var(--header-height-sp);
    overflow-y: auto;
    visibility: hidden;
    transition: left 0.2s ease-in, visibility 0.2s ease-in;
  }
}
.g-nav.is_active {
  left: 0;
  visibility: visible;
}

.g-nav-list {
  display: flex;
  align-items: center;
  gap: 40px;
}
@media (max-width: 1440px) {
  .g-nav-list {
    gap: 24px;
  }
}
@media (max-width: 1024px) {
  .g-nav-list {
    display: block;
    padding: 20px;
  }
}

@media (max-width: 1024px) {
  .g-nav-list__item {
    border-bottom: 1px solid var(--gray);
  }
}
@media (max-width: 1024px) {
  .g-nav-list__item:first-child {
    border-top: 1px solid var(--gray);
  }
}
.g-nav-list__item--sm {
  display: none;
}
@media (max-width: 1024px) {
  .g-nav-list__item--sm {
    display: block;
  }
}
.g-nav-list__item a {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: center;
  gap: 0.2em;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: color 0.2s ease-in-out;
}
@media (max-width: 1280px) {
  .g-nav-list__item a {
    font-size: 0.875rem;
  }
}
@media (max-width: 1024px) {
  .g-nav-list__item a {
    padding: 1em;
    font-size: 0.9375rem;
    font-weight: 400;
  }
}
.g-nav-list__item a:focus-visible {
  color: var(--green);
}
@media (any-hover: hover) {
  .g-nav-list__item a:hover {
    color: var(--green);
  }
}
@media (max-width: 1024px) {
  .g-nav-list__item a::before {
    content: "";
    display: inline-block;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    width: 5px;
    height: 6px;
    background-color: var(--green);
  }
}
.g-nav-list__item--action a {
  display: block;
  width: 180px;
  padding: 0.6em;
  background-color: var(--green);
  color: var(--white);
  border-radius: var(--radius-full);
  text-align: center;
}
@media (max-width: 1024px) {
  .g-nav-list__item--action a {
    margin-inline: auto;
    margin-top: 40px;
  }
}
.g-nav-list__item--action a:focus-visible {
  color: var(--white);
}
@media (any-hover: hover) {
  .g-nav-list__item--action a:hover {
    color: var(--white);
  }
}

/* ---------------------------
  hamb
----------------------------- */
.hamburger {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  padding: 17px 12px;
  background-color: var(--green);
  cursor: pointer;
  z-index: 10000;
}
@media (max-width: 1024px) {
  .hamburger {
    display: block;
  }
}
.hamburger.is_active .hamburger__inner {
  transform: translateX(4px);
}
.hamburger.is_active .hamburger__inner span:nth-of-type(1) {
  transform: rotate(34deg);
}
.hamburger.is_active .hamburger__inner span:nth-of-type(2) {
  opacity: 0;
}
.hamburger.is_active .hamburger__inner span:nth-of-type(3) {
  transform: rotate(-34deg);
}

.hamburger__inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  transition: 0.3s ease-in-out;
}
.hamburger__inner span {
  display: block;
  width: 100%;
  height: 1px;
  opacity: 1;
  background-color: #fff;
  transform-origin: left;
  transition: 0.3s ease-in-out;
}

/* ---------------------------
  footer
----------------------------- */
.footer {
  background-color: var(--white);
}

.footer-head {
  padding: clamp(3.5rem, 2.29rem + 4.944vw, 6.25rem) 0;
}

.footer-head__wrapper {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
@media (max-width: 1024px) {
  .footer-head__wrapper {
    flex-direction: column;
    justify-content: center;
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (max-width: 1024px) {
  .footer-head__info {
    text-align: center;
  }
}
@media (max-width: 1024px) {
  .footer-head__info img {
    margin-inline: auto;
  }
}
.footer-head__info address {
  margin-top: 2em;
  margin-bottom: 1em;
  font-size: clamp(0.8125rem, 0.73rem + 0.337vw, 1rem);
}

.footer-head__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 32px;
}
@media (max-width: 1024px) {
  .footer-head__meta {
    justify-content: center;
  }
}
.footer-head__meta dl {
  display: flex;
  align-items: center;
  gap: 0.7em;
}
@media (max-width: 1024px) {
  .footer-head__meta dl {
    justify-content: center;
  }
}
.footer-head__meta dt {
  display: inline-block;
  padding: 0.1em 0.6em;
  border: 1px solid var(--black);
  font-size: 0.75rem;
}
.footer-head__meta dd {
  font-size: clamp(0.875rem, 0.82rem + 0.225vw, 1rem);
}

.footer-head__action {
  display: flex;
  justify-content: end;
}
@media (max-width: 1024px) {
  .footer-head__action {
    flex-direction: column;
    justify-content: center;
  }
}
.footer-head__action dl:first-child {
  padding-right: 80px;
}
@media (max-width: 1024px) {
  .footer-head__action dl:first-child {
    padding-right: 0;
  }
}
.footer-head__action dl:last-child {
  padding-left: 80px;
  border-left: 1px solid var(--black);
}
@media (max-width: 1024px) {
  .footer-head__action dl:last-child {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--black);
    padding-top: 40px;
    margin-top: 40px;
  }
}
.footer-head__action dt {
  text-align: center;
  font-size: clamp(0.875rem, 0.82rem + 0.225vw, 1rem);
  font-weight: 500;
  margin-bottom: 1.6em;
  padding-top: 1em;
}
@media (max-width: 1024px) {
  .footer-head__action dt {
    padding-top: 0;
    margin-bottom: 1.2em;
  }
}

.footer-foot {
  border-top: 1px solid var(--gray);
  padding: 10px 0 12px;
}

.footer-foot__wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.footer-foot__wrapper ul {
  display: flex;
  align-items: center;
}
.footer-foot__wrapper li {
  display: flex;
  align-items: center;
}
.footer-foot__wrapper a {
  font-size: clamp(0.6875rem, 0.63rem + 0.225vw, 0.8125rem);
  transition: color 0.2s ease-in;
}
.footer-foot__wrapper a:focus-visible {
  color: var(--green);
}
@media (any-hover: hover) {
  .footer-foot__wrapper a:hover {
    color: var(--green);
  }
}
.footer-foot__wrapper li:not(:last-child)::after {
  content: "|";
  font-size: 0.9em;
  font-weight: 400;
  margin-inline: 1em;
}
.footer-foot__wrapper small {
  font-size: clamp(0.6875rem, 0.63rem + 0.225vw, 0.8125rem);
}

/* ---------------------------
  top
----------------------------- */
.top-hero-section {
  padding-top: 32px;
  padding-bottom: clamp(2rem, 0.25rem + 7.191vw, 6rem);
}
@media (max-width: 768px) {
  .top-hero-section {
    padding-bottom: 0;
  }
}

.top-hero {
  display: grid;
  grid-template-columns: 4.9fr 7.1fr;
}
@media (max-width: 1024px) {
  .top-hero {
    grid-template-columns: 1fr;
  }
}

.top-hero__text {
  position: relative;
  z-index: 10;
  padding-top: 16px;
}
@media (max-width: 1024px) {
  .top-hero__text {
    padding-top: 5px;
  }
}
.top-hero__text hgroup p {
  font-size: clamp(3.375rem, 2.58rem + 3.258vw, 5.1875rem);
  color: var(--green);
  font-weight: 500;
  white-space: nowrap;
}
.top-hero__text hgroup h2 {
  font-size: clamp(1.125rem, 0.88rem + 1.011vw, 1.6875rem);
  font-weight: 500;
}
.top-hero__text > p {
  font-size: clamp(0.8125rem, 0.76rem + 0.225vw, 0.9375rem);
  font-weight: 500;
  margin-top: 1em;
}

.top-hero__img {
  position: relative;
  width: 100%;
  aspect-ratio: 758/500;
}
@media (max-width: 1024px) {
  .top-hero__img {
    order: -1;
  }
}
.top-hero__img img {
  position: absolute;
  top: 0;
  right: 0;
  max-width: inherit;
  width: 106.8%;
}
@media (max-width: 1024px) {
  .top-hero__img img {
    max-width: 100%;
    width: 100%;
    position: static;
  }
}

.top-common-section {
  padding-top: clamp(3.5rem, 2.84rem + 2.697vw, 5rem);
}

.top-common-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 768px) {
  .top-common-grid {
    grid-template-columns: 1fr;
  }
}

.top-common-grid__text hgroup p {
  font-size: clamp(3rem, 2.34rem + 2.697vw, 4.5rem);
  font-weight: 500;
  color: var(--green);
  white-space: nowrap;
}
.top-common-grid__text h2 {
  font-size: clamp(1rem, 0.86rem + 0.562vw, 1.3125rem);
  font-weight: 400;
  color: var(--white);
  background-color: var(--green);
  border-radius: 5px;
  padding: 0.1em 0.9em;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 0.5em;
}
.top-common-grid__text > p {
  margin-top: 1.5em;
  font-weight: 500;
}
.top-common-grid__text a {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.5em;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  color: var(--green);
  font-weight: 500;
  margin-top: 1.5em;
  transition: opacity 0.2s ease-in-out;
}
.top-common-grid__text a:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .top-common-grid__text a:hover {
    opacity: 0.7;
  }
}
@media (max-width: 1024px) {
  .top-common-grid__text a {
    margin-top: 0.5em;
  }
}
.top-common-grid__text a::before {
  content: "";
  display: inline-block;
  aspect-ratio: 1/1;
  width: 1.5em;
  height: 1.5em;
  -webkit-mask-image: var(--icon-chevron);
          mask-image: var(--icon-chevron);
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  background-color: var(--green);
}

.top-common-grid__img {
  padding-left: 50px;
}
@media (max-width: 768px) {
  .top-common-grid__img {
    padding-left: 0;
    order: -1;
  }
}
.top-common-grid__img img {
  width: 100%;
}

[data-reverse] .top-common-grid__img {
  padding-left: 0;
  padding-right: 50px;
  order: -1;
}
@media (max-width: 768px) {
  [data-reverse] .top-common-grid__img {
    padding-right: 0;
  }
}

/* ---------------------------
  page - common
----------------------------- */
.page-head {
  padding: 40px 0;
}
.page-head hgroup {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px clamp(1.25rem, 0.92rem + 1.348vw, 2rem);
}
.page-head h1 {
  font-size: clamp(1.375rem, 1.21rem + 0.674vw, 1.75rem);
  font-weight: 700;
}
.page-head p {
  color: var(--green);
  font-size: clamp(0.75rem, 0.64rem + 0.449vw, 1rem);
  font-weight: 400;
}

.page-box {
  padding: clamp(1.875rem, 1.33rem + 2.247vw, 3.125rem) clamp(1.25rem, 0.43rem + 3.371vw, 3.125rem);
  background-color: rgb(255 255 255 / 65%);
  border-radius: var(--radius-lg);
}

.post > * {
  margin-top: 1em;
  margin-bottom: 1em;
}
.post > *:first-child {
  margin-top: 0 !important;
}
.post > *:last-child {
  margin-bottom: 0 !important;
}
.post h2:not([class]) {
  font-size: clamp(1.125rem, 1.04rem + 0.337vw, 1.3125rem);
  font-weight: 500;
  border-left: 4px solid var(--green);
  padding-left: 0.6em;
  margin-bottom: 1.5em;
  margin-top: clamp(4rem, 3.01rem + 4.045vw, 6.25rem);
}
.post h3:not([class]) {
  font-size: clamp(0.9375rem, 0.86rem + 0.337vw, 1.125rem);
  font-weight: 500;
  margin-top: 2em;
  margin-bottom: 0.5em;
}
.post h3:not([class]) + p {
  margin-top: 0.5em;
}
.post .headline-round {
  font-size: clamp(0.9375rem, 0.86rem + 0.337vw, 1.125rem);
  font-weight: 500;
  background-color: var(--green);
  color: var(--white);
  text-align: center;
  padding: 0.6em 1em;
  border-radius: var(--radius-full);
  max-width: 460px;
  margin-inline: auto;
  margin-bottom: 1.5em;
  margin-top: clamp(3rem, 2.12rem + 3.596vw, 5rem);
}
.post .lead + .headline-round {
  margin-top: 1em;
}
.post table:not([class]) {
  width: 100%;
  border-collapse: collapse;
}
.post table:not([class]) th, .post table:not([class]) td {
  font-size: clamp(0.8125rem, 0.73rem + 0.337vw, 1rem);
  vertical-align: middle;
  padding: 1.15em 2em;
  border-bottom: 1px solid var(--gray);
  border-top: 1px solid var(--gray);
}
@media (max-width: 640px) {
  .post table:not([class]) th, .post table:not([class]) td {
    padding: 1em;
  }
}
.post table:not([class]) tbody th {
  width: 120px;
}
@media (max-width: 640px) {
  .post table:not([class]) tbody th {
    width: 80px;
  }
}
.post table:not([class]) th {
  font-weight: 400;
  text-align: center;
  white-space: nowrap;
  background-color: var(--beige);
}
.post table:not([class]) .aligncenter {
  text-align: center;
}
.post table:not([class]):has(thead) td + td {
  border-left: 1px solid var(--gray);
}
.post table:not([class]):has(thead) th + th {
  border-left: 1px solid var(--gray);
}
.post iframe {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 940/540;
}
@media (max-width: 640px) {
  .post iframe {
    aspect-ratio: 1/1;
  }
}
.post .border {
  border-radius: var(--radius-sm);
  border: clamp(0.625rem, 0.08rem + 2.247vw, 1.875rem) solid var(--beige);
}
.post .border:has(.box-2) {
  background-color: var(--beige);
}
.post .radius {
  border-radius: var(--radius-sm);
}
.post .box {
  border-radius: var(--radius-sm);
  background-color: var(--beige);
  padding: clamp(1.875rem, 1.33rem + 2.247vw, 3.125rem) clamp(1.25rem, 0.43rem + 3.371vw, 3.125rem);
}
.post .box > * {
  margin-top: 1em;
  margin-bottom: 1em;
}
.post .box > *:first-child {
  margin-top: 0 !important;
}
.post .box > *:last-child {
  margin-bottom: 0 !important;
}
.post .box + .box {
  margin-top: clamp(1.875rem, 1.33rem + 2.247vw, 3.125rem);
}
.post .box-2 {
  border-radius: var(--radius-sm);
  background-color: var(--white);
  padding: clamp(1.25rem, 0.7rem + 2.247vw, 2.5rem);
}
.post .box-2 > * {
  margin-top: 1em;
  margin-bottom: 1em;
}
.post .box-2 > *:first-child {
  margin-top: 0 !important;
}
.post .box-2 > *:last-child {
  margin-bottom: 0 !important;
}
.post .name {
  text-align: right;
}
.post .lead {
  text-align: center;
  font-size: clamp(0.9375rem, 0.86rem + 0.337vw, 1.125rem);
  margin-bottom: 3em;
}
@media (max-width: 640px) {
  .post .lead {
    text-align: left;
  }
}
.post .lead + h2:not([class]) {
  margin-top: 0;
}
.post .link {
  display: inline-block;
  padding-left: 1.4em;
  background-image: url(../img/common/chevron.svg);
  background-size: 1em;
  background-position: left top 0.45em;
  background-repeat: no-repeat;
  transition: color 0.2s ease-in;
}
.post .link:focus-visible {
  color: var(--green);
}
@media (any-hover: hover) {
  .post .link:hover {
    color: var(--green);
  }
}
.post .grid-service {
  display: grid;
  grid-template-columns: 3fr 5.4fr;
  gap: clamp(1.25rem, 0.15rem + 4.494vw, 3.75rem);
}
@media (max-width: 768px) {
  .post .grid-service {
    grid-template-columns: 1fr;
  }
}
.post .grid-service img {
  margin-inline: auto;
}
.post .grid-service > div > * {
  margin-top: 1em;
  margin-bottom: 1em;
}
.post .grid-service > div > *:first-child {
  margin-top: 0 !important;
}
.post .grid-service > div > *:last-child {
  margin-bottom: 0 !important;
}
.post .grid-service > div:last-child {
  padding-top: 20px;
}
@media (max-width: 768px) {
  .post .grid-service > div:last-child {
    padding-top: 0;
  }
}
.post .gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.875rem, 1.6rem + 1.124vw, 2.5rem) clamp(1.25rem, 0.15rem + 4.494vw, 3.75rem);
}
@media (max-width: 768px) {
  .post .gallery {
    grid-template-columns: 1fr;
  }
}
.post figure img {
  width: 100%;
}
.post figure figcaption {
  text-align: center;
  font-size: clamp(0.75rem, 0.7rem + 0.225vw, 0.875rem);
  font-weight: 500;
  margin-top: 1em;
}
.post .action {
  max-width: 350px;
  margin-inline: auto;
  margin-top: clamp(2.5rem, 2.23rem + 1.124vw, 3.125rem);
  text-align: center;
  border: 1px solid var(--gray);
  padding: 32px 20px;
}
.post .action__head {
  font-size: clamp(0.875rem, 0.82rem + 0.225vw, 1rem);
  margin-bottom: 1em;
  font-weight: 400;
}
.post .action__tel {
  display: inline-block;
  font-size: clamp(1.75rem, 1.64rem + 0.449vw, 2rem);
  transition: opacity 0.2s ease-in-out;
}
.post .action__tel:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .post .action__tel:hover {
    opacity: 0.7;
  }
}

.form {
  padding-bottom: 20px;
}
.form form > *:first-child {
  margin-top: 0 !important;
}
.form form > *:last-child {
  margin-bottom: 0 !important;
}
.form dl {
  display: grid;
  grid-template-columns: 3.5fr 5.5fr;
  align-items: center;
  border-top: 1px solid var(--gray);
}
@media (max-width: 768px) {
  .form dl {
    grid-template-columns: 1fr;
  }
}
.form dt, .form dd {
  border-bottom: 1px solid var(--gray);
  padding: 24px 0;
  height: 100%;
  align-content: center;
}
.form dt {
  padding-inline: 30px;
}
@media (max-width: 768px) {
  .form dt {
    padding-inline: 0;
    border-bottom: none;
    padding-bottom: 12px;
  }
}
.form dt span {
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  text-align: center;
  color: #ffffff;
  font-size: 9px;
  background-color: #ED181F;
  border-radius: 3px;
  letter-spacing: 0;
  padding: 0.2em 0.7em;
  margin-left: 0.8em;
  translate: 0 -0.15em;
}
.form dd {
  padding-right: 30px;
}
@media (max-width: 768px) {
  .form dd {
    padding-right: 0;
    padding-top: 0;
  }
}
.form input[type=text],
.form input[type=email],
.form input[type=tel],
.form textarea {
  width: 100%;
  border-radius: 0;
  border: 3px solid #E1E1E1;
  background-color: var(--white);
  font-size: 16px;
  font-weight: 400;
  padding: 0.5em 1em;
  color: var(--black);
}
.form input[type=text]::-moz-placeholder, .form input[type=email]::-moz-placeholder, .form input[type=tel]::-moz-placeholder, .form textarea::-moz-placeholder {
  color: #AEAEAE;
  font-weight: 400;
  font-size: 16px;
}
.form input[type=text]::placeholder,
.form input[type=email]::placeholder,
.form input[type=tel]::placeholder,
.form textarea::placeholder {
  color: #AEAEAE;
  font-weight: 400;
  font-size: 16px;
}
.form textarea {
  display: block;
  height: 180px;
  resize: vertical;
}
@media (max-width: 640px) {
  .form textarea {
    height: 240px;
  }
}
.form .child {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 20px;
}
.form .child__item {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 640px) {
  .form .child__item {
    width: 100%;
  }
}
.form .child__item span {
  width: 2em;
  white-space: nowrap;
}
.form .short {
  max-width: 200px;
}
.form .privacy {
  margin-top: 48px;
}
@media (max-width: 640px) {
  .form .privacy {
    margin-top: 30px;
  }
}
.form .privacy p {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: clamp(0.75rem, 0.7rem + 0.225vw, 0.875rem);
  width: fit-content;
  margin-inline: auto;
}
.form .privacy a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.form .privacy h3 {
  text-align: center;
  font-weight: 400;
  margin-bottom: 1em;
  font-size: clamp(0.875rem, 0.82rem + 0.225vw, 1rem);
}
.form .submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-top: 48px;
}
@media (max-width: 640px) {
  .form .submit {
    margin-top: 30px;
    gap: 20px;
    flex-direction: column;
  }
}
.form .submit button,
.form .submit input[type=submit],
.form .submit input[type=button] {
  display: block;
  width: 100%;
  max-width: 220px;
  font-size: clamp(0.9375rem, 0.91rem + 0.112vw, 1rem);
  font-weight: 400;
  text-align: center;
  padding: 0.8em 1em;
  border-radius: 0;
  color: var(--white);
  background-color: var(--green);
  cursor: pointer;
  border: none;
  transition: opacity 0.2s ease-in-out;
}
.form .submit button:focus-visible,
.form .submit input[type=submit]:focus-visible,
.form .submit input[type=button]:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .form .submit button:hover,
  .form .submit input[type=submit]:hover,
  .form .submit input[type=button]:hover {
    opacity: 0.7;
  }
}
.form .submit button.back,
.form .submit input[type=submit].back,
.form .submit input[type=button].back {
  background-color: #999;
}
.form .check {
  cursor: pointer;
}
.form table:not([class]) th, .form table:not([class]) td {
  background-color: #fff;
  text-align: left;
}