/*** The new CSS reset - version 1.11.3 (last updated 25.8.2024) ***/
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

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

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

a, button {
  cursor: revert;
}

ol, ul, menu, summary {
  list-style: none;
}

ol {
  counter-reset: revert;
}

img {
  max-inline-size: 100%;
  max-block-size: 100%;
}

table {
  border-collapse: collapse;
}

input, textarea {
  -webkit-user-select: auto;
}

textarea {
  white-space: revert;
}

meter {
  -webkit-appearance: revert;
  -moz-appearance: revert;
       appearance: revert;
}

:where(pre) {
  all: revert;
  box-sizing: border-box;
}

::-moz-placeholder {
  color: unset;
}

::placeholder {
  color: unset;
}

:where([hidden]) {
  display: none;
}

:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}

:where([draggable=true]) {
  -webkit-user-drag: element;
}

:where(dialog:modal) {
  all: revert;
  box-sizing: border-box;
}

::-webkit-details-marker {
  display: none;
}

/*** Custom Styles ***/
:root {
  --pt-clr-1:hsl(226, 48%, 20%);
  --pt-clr-2:hsl(18, 100%, 50%);
  --pt-clr-2-l:hsl(18, 94%, 58%);
  --pt-clr-3:hsl(47, 100%, 80%);
  --pt-clr-4:hsl(227, 60%, 82%);
  --pt-clr-5:hsl(226, 69%, 73%);
  --pt-clr-a:var(--pt-clr-5);
  --pt-clr-ahover:var(--pt-clr-5);
  --pt-clr-bd:var(--pt-clr-5);
  --pt-clr-bd-l1:var(--pt-clr-5);
  --pt-clr-bd-l2:var(--pt-clr-5);
  --pt-clr-bd-l3:var(--pt-clr-5);
  --pt-font-family-san: "Noto Sans JP", sans-serif;
  --pt-font-family-serif: "Noto Serif JP", serif;
  --pt-8-pc: 8px;
  --pt-12-pc: 12px;
  --pt-14-pc: 14px;
  --pt-16-pc: 16px;
  --pt-18-pc: 18px;
  --pt-20-pc: 20px;
  --pt-24-pc: 24px;
  --pt-28-pc: 28px;
  --pt-32-pc: 32px;
  --pt-36-pc: 36px;
  --pt-40-pc: 40px;
  --pt-48-pc: 48px;
  --pt-60-pc: 60px;
  --pt-96-pc: 96px;
  --pt-120-pc: 120px;
  --pt-160-pc: 160px;
  --pt-8-sp: calc(8 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-12-sp: calc(12 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-14-sp: calc(14 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-16-sp: calc(16 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-18-sp: calc(18 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-20-sp: calc(20 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-24-sp: calc(24 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-28-sp: calc(28 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-32-sp: calc(32 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-36-sp: calc(36 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-40-sp: calc(40 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-48-sp: calc(48 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-60-sp: calc(60 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-96-sp: calc(96 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-120-sp: calc(120 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-160-sp: calc(160 / var(--pt-max-width-calc-sm) * 100vw);
  --pt-8: min(var(--pt-8-sp),var(--pt-8-pc));
  --pt-12: min(var(--pt-12-sp),var(--pt-12-pc));
  --pt-14: min(var(--pt-14-sp),var(--pt-14-pc));
  --pt-16: min(var(--pt-16-sp),var(--pt-16-pc));
  --pt-18: min(var(--pt-18-sp),var(--pt-18-pc));
  --pt-20: min(var(--pt-20-sp),var(--pt-20-pc));
  --pt-24: min(var(--pt-24-sp),var(--pt-24-pc));
  --pt-28: min(var(--pt-28-sp),var(--pt-28-pc));
  --pt-32: min(var(--pt-32-sp),var(--pt-32-pc));
  --pt-36: min(var(--pt-36-sp),var(--pt-36-pc));
  --pt-40: min(var(--pt-40-sp),var(--pt-40-pc));
  --pt-48: min(var(--pt-48-sp),var(--pt-48-pc));
  --pt-60: min(var(--pt-60-sp),var(--pt-60-pc));
  --pt-96: min(var(--pt-96-sp),var(--pt-96-pc));
  --pt-120: min(var(--pt-120-sp),var(--pt-120-pc));
  --pt-160: min(var(--pt-160-sp),var(--pt-160-pc));
  --pt-max-width-calc-md: 900;
  --pt-max-width-calc-sm: 640;
  --pt-max-width-px-md: calc(var(--pt-max-width-calc-md) * 1px);
  --pt-max-width-px-sm: calc(var(--pt-max-width-calc-sm) * 1px);
  --pt-trans: 0.3s;
  --pt-lh: 1.85;
  --pt-lh-h: 1.5;
  --pt-r:min(4vw,8px);
  --pt-r-c:var(--pt-16);
  --pt-spa-side: var(--pt-36);
  --pt-spa-side-sm: var(--pt-20);
  --pt-spa-side-lg: var(--pt-60);
  --pt-shadow-1:rgba(0, 0, 0, 0.1) 0px 0px 8px;
  --pt-shadow-2:rgba(0, 0, 0, 0.4) 5px 6px 12px;
  --pt-btn-width: min(68%,300px);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--pt-40);
}

body {
  margin: 0;
  font-family: var(--pt-font-family-san);
  font-style: normal;
  font-weight: 400;
  color: var(--pt-clr-1);
  line-height: 1.85;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:svgjs='http://svgjs.dev/svgjs' width='1440' height='1000' preserveAspectRatio='none' viewBox='0 0 1440 1000'%3e%3cg mask='url(%26quot%3b%23SvgjsMask1217%26quot%3b)' fill='none'%3e%3crect width='1440' height='1000' x='0' y='0' fill='rgba(27%2c 40%2c 82%2c 1)'%3e%3c/rect%3e%3cpath d='M1440 0L1324.99 0L1440 430.35z' fill='rgba(255%2c 255%2c 255%2c .1)'%3e%3c/path%3e%3cpath d='M1324.99 0L1440 430.35L1440 691.27L728.16 0z' fill='rgba(255%2c 255%2c 255%2c .075)'%3e%3c/path%3e%3cpath d='M728.16 0L1440 691.27L1440 798.38L363.41999999999996 0z' fill='rgba(255%2c 255%2c 255%2c .05)'%3e%3c/path%3e%3cpath d='M363.4200000000001 0L1440 798.38L1440 857.76L179.00000000000009 0z' fill='rgba(255%2c 255%2c 255%2c .025)'%3e%3c/path%3e%3cpath d='M0 1000L668.68 1000L0 809.52z' fill='rgba(0%2c 0%2c 0%2c .1)'%3e%3c/path%3e%3cpath d='M0 809.52L668.68 1000L874.76 1000L0 463.41999999999996z' fill='rgba(0%2c 0%2c 0%2c .075)'%3e%3c/path%3e%3cpath d='M0 463.41999999999996L874.76 1000L928.98 1000L0 222.44999999999996z' fill='rgba(0%2c 0%2c 0%2c .05)'%3e%3c/path%3e%3cpath d='M0 222.44999999999993L928.98 1000L1178.0900000000001 1000L0 190.67999999999992z' fill='rgba(0%2c 0%2c 0%2c .025)'%3e%3c/path%3e%3c/g%3e%3cdefs%3e%3cmask id='SvgjsMask1217'%3e%3crect width='1440' height='1000' fill='white'%3e%3c/rect%3e%3c/mask%3e%3c/defs%3e%3c/svg%3e");
  background-size: cover;
  background-position: 50%;
  background-attachment: fixed;
  text-align: justify;
}

:where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--pt-font-family-serif);
  font-weight: normal;
  font-weight: 500;
  line-height: var(--pt-lh-h);
}

:where(img) {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

.lhc::before {
  display: block;
  width: 0;
  height: 0;
  margin-top: calc((1 - 1.85) * 0.5em);
  content: "";
}
.lhc::after {
  display: block;
  width: 0;
  height: 0;
  margin-bottom: calc((1 - 1.85) * 0.5em);
  content: "";
}

.lhc-h::before {
  display: block;
  width: 0;
  height: 0;
  margin-top: calc((1 - 1.5) * 0.5em);
  content: "";
}
.lhc-h::after {
  display: block;
  width: 0;
  height: 0;
  margin-bottom: calc((1 - 1.5) * 0.5em);
  content: "";
}

.nowrap {
  white-space: nowrap;
}

@media screen and (max-width: 639px ) {
  .is-pc {
    display: none;
  }
}

@media screen and (min-width: 640px ) {
  .is-mb {
    display: none;
  }
}

.pt-page-wrapper {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  justify-content: center;
  width: 100%;
}
@media screen and (min-width: 1000px) {
  .pt-page-wrapper {
    grid-template-columns: 3fr 5fr;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (min-width: 1500px) {
  .pt-page-wrapper {
    margin-left: 7.5vw;
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (max-width: 899px ) {
  .pt-page-wrapper__inn:nth-of-type(1) {
    display: none;
  }
}

.pt-fixbnr {
  position: fixed;
  width: 100%;
  background-color: #f9f9f9;
  bottom: 0;
  z-index: 5;
  padding: var(--pt-16) 0;
  box-shadow: var(--pt-shadow-2), var(--pt-shadow-2);
}
.pt-fixbnr h4 {
  display: none;
}
@media screen and (min-width: 1000px) {
  .pt-fixbnr {
    display: none;
  }
}

.pt-contents-1 {
  position: sticky;
  top: 0;
  display: none;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr auto 1fr;
  height: 100vh;
  max-height: 100vh;
  padding-left: var(--pt-spa-side);
  padding-right: var(--pt-spa-side);
}
@media screen and (min-width: 1000px) {
  .pt-contents-1 {
    display: grid;
  }
}
.pt-contents-1__inn:nth-of-type(1) {
  grid-row: 2;
}
.pt-contents-1__inn:nth-of-type(1) h2 {
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: var(--pt-32);
  margin-left: auto;
  margin-right: auto;
}
.pt-contents-1__inn:nth-of-type(2) {
  grid-row: 3;
  align-content: flex-end;
}
.pt-contents-1__inn:nth-of-type(2) p {
  padding-bottom: var(--pt-40);
  text-align: center;
}

.pt-contents-2 {
  max-width: var(--pt-max-width-px-sm);
  margin-left: auto;
  margin-right: auto;
  background-color: #fff;
  box-shadow: var(--pt-shadow-2);
}

.pt-logo.pt-logo--1 {
  margin-top: -4em;
  max-width: min(100%, 450px);
}
.pt-logo.pt-logo--2 {
  max-width: min(33%, 270px);
}

.pt-copyright {
  color: #fff;
}

.pt-grid {
  display: grid;
  grid-template-columns: var(--_cols, 1fr);
  grid-template-rows: var(--_rows, auto);
  justify-content: center;
}

.pt-side {
  padding-left: var(--pt-spa-side-sm);
  padding-right: var(--pt-spa-side-sm);
}

.pt-side-md {
  padding-left: var(--pt-spa-side);
  padding-right: var(--pt-spa-side);
}

.pt-side-lg {
  padding-left: var(--pt-spa-side-lg);
  padding-right: var(--pt-spa-side-lg);
}

.pt-sec + .pt-sec {
  margin-top: var(--_mart, var(--pt-96));
  margin-bottom: var(--_marb, auto);
}

.pt-ctp {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: var(--pt-12);
}
.pt-ctp h4 {
  font-size: var(--pt-24);
  color: var(--pt-clr-2);
}
@media screen and (min-width: 640px ) {
  .pt-ctp h4 {
    font-size: var(--pt-20);
  }
}
.pt-ctp a {
  width: min(100%, 450px);
}

.pt-btn {
  cursor: pointer;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: center;
  color: #fff;
  line-height: 1;
  background-color: var(--pt-clr-2);
  font-size: var(--_btn-fz, var(--pt-32));
  border-radius: 50vw;
  padding: max(0.75em, var(--pt-18-pc)) 0;
  width: var(--_btn-w, 100%);
  transition-duration: var(--pt-trans);
  transition-property: background-color, color, box-shadow;
}
@media screen and (min-width: 640px ) {
  .pt-btn {
    font-size: var(--_btn-fz, var(--pt-28));
  }
}
.pt-btn::before {
  content: "";
  display: flex;
}
.pt-btn::after {
  content: "";
  display: flex;
  justify-content: flex-end;
}
.pt-btn:active, .pt-btn:focus {
  background-color: var(--pt-clr-2-l);
  box-shadow: 4px 0px 0px var(--pt-clr-2-l);
}
@media (hover: hover) {
  .pt-btn:hover {
    background-color: var(--pt-clr-2-l);
    box-shadow: 0px 0px 0.25em var(--pt-clr-2-l);
  }
}

.pt-bg {
  background-color: var(--pt-clr-1);
  padding: var(--pt-spa-side) var(--pt-spa-side-sm);
  border-radius: var(--pt-r-c);
}
.pt-bg--sm {
  background-color: var(--pt-clr-1);
  padding: var(--pt-spa-side) var(--pt-spa-side-sm);
  border-radius: var(--pt-r);
}

.pt-bg-2 {
  background-image: var(--_img);
  background-position: center;
  background-size: 100% 80%;
  background-repeat: no-repeat;
}

.pt-bg-shadow {
  background-color: #fff;
  padding: var(--pt-spa-side) var(--pt-spa-side-sm);
  border-radius: var(--pt-r-c);
  box-shadow: var(--pt-shadow-1);
}

.pt-marker {
  color: var(--pt-clr-1);
  background-color: var(--pt-clr-3);
}

.pt-header {
  padding-top: var(--pt-spa-side);
  padding-bottom: var(--pt-spa-side-sm);
}

.pt-footer {
  background-color: #0a0f1c;
  margin-top: var(--pt-96);
  padding-top: var(--pt-60);
  padding-bottom: calc(var(--pt-96) + var(--pt-60));
  color: #fff;
}
.pt-footer h2 {
  text-align: center;
  font-size: var(--pt-28);
}
.pt-footer address {
  text-align: center;
  font-size: var(--pt-24);
  font-style: normal;
  color: #d9d9d9;
}
@media screen and (min-width: 640px ) {
  .pt-footer address {
    font-size: var(--pt-20);
  }
}
.pt-footer a {
  text-decoration: underline;
}
.pt-footer__info-1 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--pt-32);
}
.pt-footer__info-1 address {
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--pt-24);
}
@media screen and (min-width: 1000px) {
  .pt-footer {
    padding-bottom: var(--pt-60);
  }
}

.pt-hero picture {
  display: block;
  padding-left: var(--pt-spa-side-sm);
  width: 100%;
  overflow: hidden;
}
.pt-hero picture img {
  display: inline-block;
  min-width: 105%;
}
.pt-hero__desc {
  margin-top: var(--pt-32);
  text-decoration: underline;
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-hero__desc {
    font-size: var(--pt-24);
  }
}

:root {
  --logo-height: clamp(60px, 6vw, 100px);
  --logo-gap: clamp(8px, 5vw, 20px);
  --slide-speed: 35s;
}

.pt-logo-sliders {
  overflow: hidden;
  max-width: 99vw;
  margin: var(--pt-32) auto var(--pt-96);
}

.pt-slider {
  overflow: hidden;
  margin: clamp(8px, 5vw, 20px) 0;
  min-width: 0;
}

.pt-slider__track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
}

.pt-slider__list {
  display: flex;
  gap: var(--logo-gap);
  padding: 0;
  margin: 0;
  list-style: none;
  margin-left: var(--logo-gap);
}
.pt-slider__list li {
  flex: 0 0 min(40vw, 140px);
}
.pt-slider__list picture {
  height: var(--logo-height);
  width: min(40vw, 140px);
}
.pt-slider__list img {
  vertical-align: middle;
  height: 100%;
  width: min(40vw, 140px);
  -o-object-fit: contain;
     object-fit: contain;
  transition: opacity 0.3s ease;
}

.pt-slider--left .pt-slider__track {
  animation: slide-left var(--slide-speed) linear infinite;
}

.pt-slider--right .pt-slider__track {
  animation: slide-right var(--slide-speed) linear infinite;
}

@keyframes slide-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-33.333%);
  }
}
@keyframes slide-right {
  from {
    transform: translateX(-33.333%);
  }
  to {
    transform: translateX(0);
  }
}
.pt-apo-1__logo {
  width: 60%;
  margin-left: auto;
  margin-right: auto;
  display: block;
}
.pt-apo-1 h3 {
  margin: var(--pt-40) 0;
  font-size: var(--pt-28);
  text-align: center;
  color: #fff;
}
.pt-apo-1__pic {
  display: block;
  padding-left: var(--pt-spa-side-sm);
  padding-right: var(--pt-spa-side-sm);
  margin-bottom: calc((var(--pt-12) + var(--pt-60)) * -1);
}

.pt-apo-ttl {
  font-family: var(--pt-font-family-serif);
  line-height: 1;
  display: flex;
  justify-content: center;
}

.pt-apo-desc {
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-desc {
    font-size: var(--pt-20);
  }
}

.pt-apo-2-1 {
  position: relative;
  border-top: 1px solid var(--pt-clr-4);
  display: grid;
  grid-template-columns: calc(var(--pt-120) + var(--pt-20)) 1fr;
  grid-template-rows: auto;
  padding-left: var(--pt-spa-side-sm);
  padding-right: var(--pt-spa-side-sm);
}
.pt-apo-2-1__ttl {
  font-size: calc(var(--pt-120) + var(--pt-20));
  writing-mode: vertical-rl;
  font-weight: 700;
  height: calc(350 / var(--pt-max-width-calc-sm) * 100vw);
}
@media screen and (min-width: 640px ) {
  .pt-apo-2-1__ttl {
    height: auto;
  }
}
.pt-apo-2-1__desc {
  border-left: 1px solid var(--pt-clr-4);
  padding-top: var(--pt-32);
  padding-left: var(--pt-28);
}
@media screen and (max-width: 639px ) {
  .pt-apo-2-1__desc {
    padding-bottom: var(--pt-96);
  }
}
.pt-apo-2-1__pic {
  width: 20%;
  position: absolute;
  bottom: calc(var(--pt-48) * -1);
  right: 23%;
  z-index: 1;
}

.pt-apo-2-2 {
  position: relative;
  border-top: 1px solid var(--pt-clr-4);
  display: grid;
  grid-template-columns: 1fr calc(var(--pt-60) + var(--pt-32));
  grid-template-rows: auto;
  padding-left: var(--pt-spa-side);
  padding-right: var(--pt-spa-side);
}
.pt-apo-2-2.pt-apo-2-2--rev {
  grid-template-columns: calc(var(--pt-60) + var(--pt-32)) 1fr;
}
.pt-apo-2-2.pt-apo-2-2--rev .pt-apo-2-2__ttl {
  grid-column: 1;
}
.pt-apo-2-2.pt-apo-2-2--rev .pt-apo-2-2__sub-ttl {
  grid-column: 2;
  padding-left: var(--pt-28);
  padding-right: 0;
  border-left: 1px solid var(--pt-clr-4);
  border-right: none;
}
@media screen and (max-width: 899px ) {
  .pt-apo-2-2.pt-apo-2-2--mart {
    margin-top: var(--pt-32);
  }
}
.pt-apo-2-2:nth-last-of-type(1) .pt-apo-2-2__desc {
  padding-bottom: 0;
}
.pt-apo-2-2__ttl {
  font-size: calc(var(--pt-60) + var(--pt-32));
  writing-mode: vertical-rl;
  color: #fff;
  background-color: var(--pt-clr-1);
  grid-column: 2;
  font-weight: 700;
}
.pt-apo-2-2__sub-ttl {
  font-family: var(--pt-font-family-serif);
  border-right: 1px solid var(--pt-clr-4);
  padding-right: var(--pt-28);
  grid-column: 1;
  grid-row: 1;
  font-size: var(--pt-48);
  line-height: 1.25;
  align-content: center;
}
.pt-apo-2-2__sub-ttl h4 {
  display: flex;
  align-content: center;
  flex-direction: column;
}
.pt-apo-2-2__sub-ttl span:nth-of-type(1) {
  font-size: 0.61em;
}
.pt-apo-2-2__sub-ttl span:nth-of-type(2) {
  font-weight: 700;
}
.pt-apo-2-2__desc {
  grid-column: 1/-1;
  grid-row: auto;
  padding-top: var(--pt-32);
  padding-bottom: var(--pt-32);
}
.pt-apo-2-2__pic {
  width: 28%;
  position: absolute;
  top: calc(var(--pt-60) * -1);
  right: 22%;
  z-index: 1;
}

.pt-apo-2-3__ttl, .pt-apo-2-3__sub-ttl {
  font-family: var(--pt-font-family-serif);
  color: var(--pt-clr-3);
  text-align: center;
}
.pt-apo-2-3__ttl {
  font-size: var(--pt-60);
  font-weight: 700;
  line-height: 1;
  margin: var(--pt-36) 0 0;
}
.pt-apo-2-3__sub-ttl {
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-2-3__sub-ttl {
    font-size: var(--pt-24);
  }
}
.pt-apo-2-3__desc {
  font-size: var(--pt-28);
  margin: var(--pt-40) 0;
  text-align: center;
  color: #fff;
}
@media screen and (min-width: 640px ) {
  .pt-apo-2-3__desc {
    font-size: var(--pt-20);
  }
}
.pt-apo-2-3__pic {
  display: block;
  padding-left: var(--pt-spa-side-sm);
  padding-right: var(--pt-spa-side-sm);
  margin-bottom: calc((var(--pt-12) + var(--pt-120)) * -1);
}

.pt-apo-3-1__ttl {
  border-top: 1px solid var(--pt-clr-4);
  font-size: var(--pt-96);
  font-weight: 700;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: center;
}
.pt-apo-3-1__ttl::before {
  content: "";
  display: flex;
  border-right: 1px solid var(--pt-clr-4);
  height: 100%;
}
.pt-apo-3-1__ttl::after {
  content: "";
  display: flex;
  border-left: 1px solid var(--pt-clr-4);
  height: 100%;
}
.pt-apo-3-1__sub-ttl {
  font-size: var(--pt-28);
  text-align: center;
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-16) 0;
  font-weight: 700;
}
@media screen and (min-width: 640px ) {
  .pt-apo-3-1__sub-ttl {
    font-size: var(--pt-20);
  }
}
.pt-apo-3-1__desc {
  padding-top: var(--pt-36);
  padding-bottom: var(--pt-36);
  border-top: 1px solid var(--pt-clr-4);
  text-align: center;
}

.pt-apo-3-2__ttl {
  display: grid;
  grid-template-columns: 15% 1fr;
  grid-template-rows: auto;
  justify-content: center;
  align-items: center;
  gap: var(--pt-20);
  border-top: 1px solid var(--pt-clr-4);
  border-bottom: 1px solid var(--pt-clr-4);
}
.pt-apo-3-2__ttl picture, .pt-apo-3-2__ttl img {
  vertical-align: middle;
}
.pt-apo-3-2__ttl h3 {
  font-family: var(--pt-font-family-serif);
  font-size: var(--pt-32);
  font-weight: 700;
}
.pt-apo-3-2__ttl h3.__ls-sm {
  letter-spacing: -0.07em;
}
.pt-apo-3-2__body {
  padding-top: var(--pt-32);
  padding-bottom: var(--_padb, var(--pt-36));
}
.pt-apo-3-2__sub-ttl {
  color: var(--pt-clr-2);
  font-size: var(--pt-28);
  line-height: 1.25;
}
.pt-apo-3-2__sub-ttl strong {
  font-size: 1.75em;
}
.pt-apo-3-2__desc {
  margin-top: var(--pt-28);
}

.pt-apo-3-3 h3 {
  text-align: center;
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-3-3 h3 {
    font-size: var(--pt-24);
  }
}
.pt-apo-3-3__pic {
  display: block;
  width: 70%;
  margin: var(--pt-40) auto calc(var(--pt-160) * -1);
}

.pt-apo-4-1__ttl {
  font-size: calc(var(--pt-60) + var(--pt-12));
  font-weight: 700;
  text-align: center;
  border-top: 1px solid var(--pt-clr-4);
  border-bottom: 1px solid var(--pt-clr-4);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: center;
}
@media screen and (min-width: 640px ) {
  .pt-apo-4-1__ttl {
    font-size: var(--pt-60);
  }
}
.pt-apo-4-1__ttl::before {
  content: "";
  display: flex;
  border-right: 1px solid var(--pt-clr-4);
  height: 100%;
}
.pt-apo-4-1__ttl::after {
  content: "";
  display: flex;
  border-left: 1px solid var(--pt-clr-4);
  height: 100%;
}
.pt-apo-4-1__sub-ttl {
  font-size: var(--pt-28);
  text-align: center;
  padding: var(--pt-36) 0;
  font-weight: 700;
}
@media screen and (min-width: 900px ) {
  .pt-apo-4-1__sub-ttl {
    font-size: var(--pt-20);
  }
}
.pt-apo-4-1.pt-apo-4-1--2 {
  border-bottom: 1px solid var(--pt-clr-4);
  margin-bottom: var(--pt-40);
}

.pt-apo-4-2.pt-apo-4-2--1 {
  position: relative;
}
.pt-apo-4-2.pt-apo-4-2--1 .pt-apo-4-2__ttl span {
  padding: 0.45em 0.5em 0.45em var(--pt-spa-side-sm);
}
.pt-apo-4-2.pt-apo-4-2--1 .pt-apo-4-2__desc {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: 1fr;
  border-top: 1px solid var(--pt-clr-4);
}
.pt-apo-4-2.pt-apo-4-2--1 .pt-apo-4-2__desc span {
  margin-top: -1.75em;
  border-left: 1px solid var(--pt-clr-4);
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-16) var(--pt-spa-side-lg) var(--pt-16) var(--pt-spa-side-sm);
  background-color: #fff;
}
@media screen and (max-width: 639px ) {
  .pt-apo-4-2.pt-apo-4-2--1 .pt-apo-4-2__desc span {
    font-size: var(--pt-24);
  }
}
.pt-apo-4-2.pt-apo-4-2--1 .pt-apo-4-2__desc::before {
  content: "";
  display: flex;
  height: 100%;
  padding: var(--pt-16) 0 var(--pt-16) var(--pt-spa-side-sm);
}
.pt-apo-4-2.pt-apo-4-2--2 {
  position: relative;
}
.pt-apo-4-2.pt-apo-4-2--2 .pt-apo-4-2__ttl span:nth-of-type(1) {
  padding: 0.45em 0.5em 0.25em var(--pt-spa-side-sm);
}
.pt-apo-4-2.pt-apo-4-2--2 .pt-apo-4-2__ttl span:nth-of-type(2) {
  padding: 0em 0.5em 0.45em var(--pt-spa-side-sm);
}
.pt-apo-4-2.pt-apo-4-2--2 .pt-apo-4-2__desc {
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-16) 0 var(--pt-16) var(--pt-spa-side-sm);
}
@media screen and (max-width: 639px ) {
  .pt-apo-4-2.pt-apo-4-2--2 .pt-apo-4-2__desc {
    font-size: var(--pt-24);
  }
}
.pt-apo-4-2__ttl {
  font-family: var(--pt-font-family-serif);
  font-size: var(--pt-32);
  font-weight: 700;
  color: #fff;
  line-height: 1;
  border-top: 1px solid var(--pt-clr-4);
}
.pt-apo-4-2__ttl span {
  display: inline-block;
  line-height: 1.25;
  background-color: var(--pt-clr-1);
}
.pt-apo-4-2__ttl::before {
  content: "";
  display: block;
}
.pt-apo-4-2__desc--last {
  border-bottom: 1px solid var(--pt-clr-4);
}
.pt-apo-4-2__pic {
  width: calc(var(--pt-60) + var(--pt-16));
  position: absolute;
  bottom: 0;
  right: var(--pt-spa-side);
}
@media screen and (min-width: 640px ) {
  .pt-apo-4-2__pic {
    width: calc(var(--pt-96) + var(--pt-16));
  }
}

.pt-apo-4-3 h3 {
  text-align: center;
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-4-3 h3 {
    font-size: var(--pt-24);
  }
}
.pt-apo-4-3__pic {
  display: block;
  width: 65%;
  margin: var(--pt-40) auto calc(var(--pt-160) * -1);
}

.pt-apo-5-1__ttl, .pt-apo-5-1__sub-ttl {
  font-family: var(--pt-font-family-serif);
  color: var(--pt-clr-3);
  text-align: center;
  font-weight: 700;
}
.pt-apo-5-1__ttl {
  font-size: var(--pt-48);
  line-height: 1.25;
}
.pt-apo-5-1__sub-ttl {
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-5-1__sub-ttl {
    font-size: var(--pt-24);
  }
}
.pt-apo-5-1__desc {
  margin: var(--pt-40) 0;
  color: #fff;
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-5-1__desc {
    font-size: var(--pt-20);
  }
}

.pt-apo-5-2 {
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-36) 0;
}
@media screen and (min-width: 640px ) {
  .pt-apo-5-2 {
    padding: var(--pt-28) 0;
  }
}
.pt-apo-5-2.pt-apo-5-2--last {
  padding: var(--pt-36) 0 0;
  border-bottom: none;
}
@media screen and (min-width: 640px ) {
  .pt-apo-5-2.pt-apo-5-2--last {
    padding: var(--pt-28) 0 0;
  }
}
.pt-apo-5-2 ul li:not(:nth-of-type(1)) {
  margin-top: var(--pt-16);
}
.pt-apo-5-2 h4 {
  color: var(--pt-clr-3);
  font-size: var(--pt-32);
  margin-bottom: var(--pt-28);
}
.pt-apo-5-2 li {
  display: grid;
  grid-template-columns: var(--pt-60) 1fr;
  grid-template-rows: auto;
  align-content: center;
  gap: var(--pt-24);
  color: var(--pt-clr-5);
  font-size: var(--pt-24);
  line-height: var(--pt-lh-h);
}
@media screen and (min-width: 640px ) {
  .pt-apo-5-2 li {
    line-height: var(--pt-lh);
    font-size: var(--pt-20);
  }
}
.pt-apo-5-2 li :is(picture, img) {
  vertical-align: middle;
}
.pt-apo-5-2 li span {
  display: flex;
  align-items: center;
  height: var(--pt-60);
}

.pt-apo-6-1__ttl {
  font-size: var(--pt-48);
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 640px ) {
  .pt-apo-6-1__ttl {
    font-size: var(--pt-40);
  }
}
.pt-apo-6-1__sub-ttl {
  text-align: center;
  padding: var(--pt-32) 0;
  font-weight: 700;
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-6-1__sub-ttl {
    font-size: var(--pt-20);
  }
}

.pt-apo-6-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: var(--pt-16);
}
.pt-apo-6-2 h3 {
  font-family: var(--pt-font-family-serif);
  color: #fff;
  font-size: var(--pt-24);
  text-align: center;
}
.pt-apo-6-2 p {
  text-align: center;
  color: var(--pt-clr-5);
  font-size: var(--pt-20);
}
.pt-apo-6-2__inn {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr auto auto;
}
.pt-apo-6-2__pic {
  width: 70%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pt-apo-6-2__pic.pt-apo-6-2__pic--4 {
  width: 85%;
}

.pt-apo-6-3 {
  background-color: var(--pt-clr-4);
  margin-top: var(--pt-40);
}
.pt-apo-6-3 > * + * {
  margin-top: var(--pt-16);
}
.pt-apo-6-3__inn {
  display: grid;
  grid-template-columns: var(--pt-48) 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  grid-template-areas: "img header" "emp body";
  -moz-column-gap: var(--pt-24);
       column-gap: var(--pt-24);
  row-gap: var(--pt-8);
  padding: var(--pt-spa-side-sm);
  background-color: #fff;
  border-radius: var(--pt-r);
}
.pt-apo-6-3__inn span {
  font-size: var(--pt-28);
  background-color: var(--pt-clr-1);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  line-height: 1;
  grid-area: img;
}
.pt-apo-6-3__inn h3 {
  grid-area: header;
  font-size: var(--pt-28);
  line-height: 1;
}
.pt-apo-6-3__inn p {
  font-size: var(--pt-24);
  grid-area: body;
}
@media screen and (min-width: 640px ) {
  .pt-apo-6-3__inn p {
    font-size: var(--pt-20);
  }
}

.pt-apo-6-4 {
  text-align: center;
  font-size: var(--pt-28);
  padding: var(--pt-36) 0 var(--pt-96);
  background-color: var(--pt-clr-4);
}
@media screen and (min-width: 640px ) {
  .pt-apo-6-4 {
    font-size: var(--pt-20);
  }
}

.pt-apo-7-1 {
  position: relative;
}
.pt-apo-7-1::before {
  content: "";
  width: 2px;
  height: 100%;
  position: absolute;
  top: 2px;
  left: var(--pt-spa-side);
  z-index: 1;
  background-color: var(--pt-clr-1);
}
.pt-apo-7-1__step {
  position: relative;
  z-index: 2;
  border-top: 1px solid var(--pt-clr-4);
  line-height: 1;
}
.pt-apo-7-1__step--inn {
  font-size: var(--pt-32);
  background-color: var(--pt-clr-1);
  color: #fff;
  line-height: 1;
  padding: 0.25em var(--pt-spa-side);
  display: inline-block;
}
@media screen and (min-width: 640px ) {
  .pt-apo-7-1__step--inn {
    font-size: var(--pt-24);
  }
}
.pt-apo-7-1__step--inn span {
  color: var(--pt-clr-3);
}
.pt-apo-7-1 h3 {
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-12) 0 var(--pt-12) calc(var(--pt-spa-side) + var(--pt-spa-side-sm));
  font-size: var(--pt-32);
}
@media screen and (min-width: 640px ) {
  .pt-apo-7-1 h3 {
    font-size: var(--pt-28);
  }
}
.pt-apo-7-1__desc {
  border-top: 1px solid var(--pt-clr-4);
  padding: var(--pt-16) var(--pt-16) var(--pt-16) calc(var(--pt-spa-side) + var(--pt-spa-side-sm));
  font-size: var(--pt-28);
}
@media screen and (min-width: 640px ) {
  .pt-apo-7-1__desc {
    font-size: var(--pt-20);
  }
}
.pt-apo-7-1.pt-apo-7-1--last::before {
  content: initial;
}

:is(.pt-apo-8-1__dt, .pt-apo-8-1__dd) {
  padding: var(--pt-spa-side-sm);
  display: grid;
  grid-template-columns: var(--pt-48) 1fr;
  gap: var(--pt-20);
  grid-template-rows: auto;
  justify-content: center;
}
@media screen and (min-width: 900px ) {
  :is(.pt-apo-8-1__dt, .pt-apo-8-1__dd) {
    font-size: var(--pt-16);
  }
}

:is(.pt-apo-8-1__dt--desc, .pt-apo-8-1__dd--desc) {
  font-size: var(--pt-28);
  display: flex;
  align-items: center;
}
@media screen and (min-width: 900px ) {
  :is(.pt-apo-8-1__dt--desc, .pt-apo-8-1__dd--desc) {
    font-size: var(--pt-20);
  }
}

.pt-apo-8-1__dt {
  background-color: var(--pt-clr-4);
  border-radius: var(--pt-r);
}
.pt-apo-8-1__dt--q {
  color: #fff;
  background-color: var(--pt-clr-1);
  line-height: 1;
  font-size: var(--pt-24);
  height: var(--pt-48);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}
.pt-apo-8-1__dt--q span {
  transform: translateY(-0.1em);
}
.pt-apo-8-1__dd {
  margin-left: 0;
}
.pt-apo-8-1__dd--a {
  border: 1px solid var(--pt-clr-1);
  height: var(--pt-48);
  font-size: var(--pt-24);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}
.pt-apo-8-1__dd--a span {
  transform: translateY(-0.1em);
}
.pt-apo-8-1__dd + .pt-apo-8-1__dt {
  margin-top: var(--padb, var(--pt-20));
}