@charset "UTF-8";
/* =========================================================
foundation
========================================================= */
/* reset
--------------------------------------------------------- */
/*! TAK's Custom Base.css v1.3.4 | MIT License | github.com/tak-dcxi/taks-custom-base-css */
*,
::before,
::after {
  box-sizing: border-box;
  min-inline-size: 0;
  border-width: 0;
  border-style: solid;
}

:where(:root, body) {
  overflow-x: clip;
}

:where(:root) {
  font-style: unset;
  font-weight: 400;
  line-height: 1.5;
  text-align: start;
  word-break: normal;
  overflow-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

:where(body) {
  min-block-size: 100svb;
  margin: unset;
}

:where(h1, h2, h3, h4, h5, h6) {
  margin-block: unset;
  font-size: unset;
}

:where(p, blockquote, figure, pre, address, ul, ol, dl) {
  margin-block: unset;
}

:where(blockquote, figure) {
  margin-inline: unset;
}

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

:where(dt) {
  font-weight: 700;
}

:where(dd) {
  margin-inline-start: unset;
}

:where(b, strong) {
  font-weight: 700;
}

:where(em):where(:lang(ja)) {
  font-weight: 700;
}

:where(i, cite, em, dfn, var):where(:lang(ja)) {
  font-style: unset;
}

:where(small) {
  font-size: 1em;
  font-weight: 400;
}

:where(:-moz-any-link) {
  color: inherit;
  text-decoration: none;
}

:where(:any-link) {
  color: inherit;
  text-decoration: none;
}

:where(img, picture, svg, video, canvas, audio, iframe, embed, object) {
  max-inline-size: 100%;
  block-size: auto;
}

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

:where(caption) {
  text-align: start;
}

:where(td, th) {
  padding: unset;
  vertical-align: top;
}

:where(th) {
  font-weight: 700;
  text-align: start;
}

:where(button, input, select, textarea),
::file-selector-button {
  padding: unset;
  border: none;
  border-radius: unset;
  background-color: unset;
  color: unset;
  font: unset;
  vertical-align: middle;
  letter-spacing: unset;
  text-align: unset;
  text-transform: unset;
}

:where([type=radio i], [type=checkbox i]) {
  margin: unset;
}

:where([type=file i]) {
  cursor: unset;
}

:where(textarea) {
  margin-block: unset;
  resize: block;
}

:where(button),
::file-selector-button {
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  touch-action: manipulation;
}

:where(button)::-moz-focus-inner {
  padding: unset;
}

:where(button, label[for], select, [role=tab], [role=button], [role=option]),
::file-selector-button {
  cursor: pointer;
}

:where(select):where(:disabled) {
  opacity: inherit;
}

:where(fieldset) {
  margin-inline: unset;
  padding: unset;
}

:where(legend) {
  padding-inline: unset;
}

:where(optgroup) {
  font: unset;
}

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

::placeholder {
  opacity: unset;
}

::picker(select) {
  display: block flow;
  padding: unset;
}

:where(summary) {
  display: block flow;
  cursor: pointer;
}

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

:where(dialog, [popover]) {
  overflow: unset;
  inline-size: unset;
  block-size: unset;
  max-inline-size: unset;
  max-block-size: unset;
  padding: unset;
  background-color: unset;
  color: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none !important;
}

::backdrop {
  background-color: unset;
}

:where(:-moz-focusring) {
  outline: auto;
}

:where(:focus-visible) {
  outline-offset: 2px;
}

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

[tabindex="-1"]:focus-visible {
  outline: none !important;
}

:where(:disabled, [aria-disabled=true]) {
  cursor: default;
}

[hidden]:not([hidden=until-found]) {
  display: none !important;
}

/* css variables
--------------------------------------------------------- */
:root {
  --c-main: #4F62BE;
  --c-bg: #F4F5FB;
  --ff-main: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;
  --ff-roboto: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --ff-inter: "Inter", sans-serif;
  --ff-zen-kaku: "Zen Kaku Gothic Antique", sans-serif;
  --h-header: 82px;
  --pi-container_num: 62;
  --pi-container: calc(var(--pi-container_num) * 1px);
  --w-container_num: 1280;
  --w-container: calc(var(--w-container_num) * 1px);
  --full-size-container_num: calc(var(--w-container_num) + var(--pi-container_num) * 2);
  --full-size-container: calc(var(--full-size-container_num) * 1px);
  --lts-base: 0.04em;
  --leading-trim: calc((1em - 1lh) / 2);
  --rem: 1rem / 16;
  --bp-sm_num: 570;
  --bp-md_num: 767;
  --bp-lg_num: 1048;
  --bp-xl_num: 1328;
  --bp-xxl_num: 1608;
  --sp-width: 375;
  --sp-ratio: calc(1 / var(--sp-width) * 100vw);
}
@supports not (top: 1lh) {
  :root :root {
    --leading-trim: 0px;
  }
}
@media (max-width: 767px) {
  :root {
    --h-header: 64px;
    --w-container_num: calc(375 - var(--pi-container_num) * 2);
  }
}
@media (max-width: 570px) {
  :root {
    --pi-container_num: 20;
  }
}
:root:where(:lang(en)),
:root :where([lang=en]) {
  --leading-trim: calc((1cap - 1lh) / 2);
}

/* base
--------------------------------------------------------- */
@view-transition {
  navigation: auto;
}
html {
  scrollbar-gutter: stable;
}
html.is-scroll-lock {
  overflow: clip;
  overscroll-behavior-y: none;
}
html.is-scroll-lock body {
  overscroll-behavior-y: none;
}
html:not(.is-opening-scroll-end):has(:target) {
  scroll-behavior: smooth;
}

body {
  inline-size: 100%;
  background-color: #fff;
  color: #242424;
  font-family: var(--ff-main);
  font-size: calc(16 * var(--rem));
  font-weight: 500;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: unset;
  line-height: 1.75;
  overflow-wrap: break-word;
}
@media (max-width: 767px) {
  body {
    font-size: calc(14 * var(--rem));
  }
}

:where(:focus-visible) {
  outline-offset: 2px;
}

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

[tabindex="-1"]:focus-visible {
  outline: none !important;
}

:where([id], :focus) {
  scroll-margin-block-start: calc(var(--h-header) + var(--_scmbs-id, 0px));
}

a, label, html input[type=button], input[type=reset], input[type=submit], button {
  cursor: pointer;
}

a, button {
  --_c-link-hover: var(--c-main);
  color: inherit;
  text-decoration: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(100, 100, 100, 0.3);
  transition: color 0.3s;
}
@media (any-hover: hover) {
  a:where(:hover), button:where(:hover) {
    color: var(--_c-link-hover);
  }
  a:where(:has(img)), button:where(:has(img)) {
    --_op-link-img-hover: .6;
  }
  a:where(:has(img)) :where(img), button:where(:has(img)) :where(img) {
    transition: opacity 0.3s;
  }
  a:where(:has(img):hover) :where(img), button:where(:has(img):hover) :where(img) {
    opacity: var(--_op-link-img-hover);
  }
}

img {
  max-inline-size: 100%;
  block-size: auto;
  vertical-align: top;
}

button[disabled], input[disabled] {
  cursor: default;
}

audio:not([controls]) {
  display: none;
  block-size: 0;
}

strong {
  font-weight: 700;
}

sub, sup {
  position: relative;
  font-size: 60%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.8em;
  margin: 0 -0.1em;
}

sub {
  bottom: -0.25em;
}

svg:not(:root) {
  overflow: hidden;
}

address, em {
  font-style: normal;
}

[hidden], template {
  display: none;
}

hr {
  box-sizing: content-box;
  block-size: 0;
}

iframe {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

button, input, optgroup, select, textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

textarea {
  overflow: auto;
  resize: vertical;
}

button {
  overflow: visible;
}

@keyframes fade-in {
  0% {
    opacity: var(--_keyf-op-start, 0);
  }
  100% {
    opacity: var(--_keyf-op-end, 1);
  }
}
@keyframes fade-out {
  0% {
    opacity: var(--_keyf-op-start, 1);
  }
  100% {
    opacity: var(--_keyf-op-end, 0);
  }
}
@keyframes slide-in-x {
  0% {
    translate: var(--_keyf-trl-x-start, 100%) 0;
  }
  100% {
    translate: var(--_keyf-trl-x-end, 0) 0;
  }
}
@keyframes slide-out-x {
  0% {
    translate: var(--_keyf-trl-x-start, 0) 0;
  }
  100% {
    translate: var(--_keyf-trl-x-end, 100%) 0;
  }
}
@keyframes slide-in-y {
  0% {
    translate: 0 var(--_keyf-trl-y-start, 100%);
  }
  100% {
    translate: 0 var(--_keyf-trl-y-end, 0);
  }
}
@keyframes slide-out-y {
  0% {
    translate: 0 var(--_keyf-trl-y-start, 0);
  }
  100% {
    translate: 0 var(--_keyf-trl-y-end, 100%);
  }
}
@keyframes fade-in-left {
  0% {
    opacity: var(--_keyf-op-start, 0);
    translate: var(--_keyf-trl-x-start, -10%) 0;
  }
  100% {
    opacity: var(--_keyf-op-end, 1);
    translate: var(--_keyf-trl-x-end, 0%) 0;
  }
}
@keyframes fade-in-right {
  0% {
    opacity: var(--_keyf-op-start, 0);
    translate: var(--_keyf-trl-x-start, 10%) 0;
  }
  100% {
    opacity: var(--_keyf-op-end, 1);
    translate: var(--_keyf-trl-x-end, 0%) 0;
  }
}
@keyframes fade-in-bottom {
  0% {
    opacity: var(--_keyf-op-start, 0);
    translate: 0 var(--_keyf-trl-y-start, 10%);
  }
  100% {
    opacity: var(--_keyf-op-end, 1);
    translate: 0 var(--_keyf-trl-y-end, 0%);
  }
}
@keyframes fade-in-bottom-right {
  0% {
    opacity: var(--_keyf-op-start, 0);
    translate: var(--_keyf-trl-x-start, 100%) var(--_keyf-trl-y-start, 100%);
  }
  100% {
    opacity: var(--_keyf-op-end, 1);
    translate: var(--_keyf-trl-x-end, 0%) var(--_keyf-trl-y-end, 0%);
  }
}
@keyframes scale-up {
  0% {
    scale: var(--_keyf-sca-start, 1);
  }
  100% {
    scale: var(--_keyf-sca-end, 1.1);
  }
}
@keyframes scale-down {
  0% {
    scale: var(--_keyf-sca-start, 1.1);
  }
  100% {
    scale: var(--_keyf-sca-end, 1);
  }
}
@keyframes loop-slider {
  0% {
    box-shadow: inset rgba(0, 0, 0, 0) 0 0 0;
    translate: var(--_keyf-pos-x-loop-start, 0%) 0;
  }
  100% {
    translate: var(--_keyf-pos-x-loop-end, -100%) 0;
    box-shadow: inset rgba(0, 0, 0, 0.0000001) 0 0 0 10px;
  }
}
/* =========================================================
vendor
========================================================= */
/* =========================================================
layout
========================================================= */
/* container
--------------------------------------------------------- */
.l-container {
  --_w-container: var(--w-container);
  --_full-size-container: calc(var(--_w-container) + var(--pi-container) * 2);
  margin-inline: auto;
  padding-inline: var(--pi-container);
}
@media not all and (max-width: 767px) {
  .l-container {
    max-inline-size: var(--_full-size-container);
  }
}
@media (max-width: 767px) {
  .l-container {
    padding-inline: calc(30 * var(--sp-ratio));
  }
}
@media not all and (max-width: 767px) {
  .l-container--w-1680 {
    max-inline-size: 1758px;
  }
}
@media not all and (max-width: 767px) {
  .l-container--breadcrumb {
    --_w-container: 1460px;
  }
}
/* follow-btn
--------------------------------------------------------- */
.l-follow-btn {
  position: fixed;
}
@media (max-width: 767px) {
  .l-follow-btn {
    bottom: 20px;
    right: 30px;
  }
}

/* Template
--------------------------------------------------------- */
.l-footer {
  --_pb-footer: 64px;
  grid-area: footer;
  color: #fff;
}
.l-footer__inner {
  margin-inline: auto;
}
@media not all and (max-width: 767px) {
  .l-footer__inner {
    max-inline-size: 1535px;
    padding-top: 53px;
    padding-inline: 50px;
    padding-bottom: 60px;
  }
}
@media (max-width: 767px) {
  .l-footer__inner {
    padding-top: calc(30 * var(--sp-ratio));
    padding-bottom: calc(26 * var(--sp-ratio));
    padding-inline: calc(25 * var(--sp-ratio));
  }
}

.l-footer__nav-area {
  display: flex;
  justify-content: space-between;
  margin-block-end: 15px;
}
@media not all and (max-width: 767px) {
  .l-footer__nav-area {
    border-bottom: 1px solid #E5E5E5;
    padding-block-end: 105px;
  }
  @media (max-width: 1048px) {
    .l-footer__nav-area {
      flex-direction: column;
      row-gap: 32px;
    }
  }
}
@media (max-width: 767px) {
  .l-footer__nav-area {
    --_ble-nav-area: 28px;
    row-gap: calc(30 * var(--sp-ratio));
    flex-direction: column;
  }
}

.l-footer__logo {
  flex: 0 0 auto;
}
@media not all and (max-width: 1048px) {
  .l-footer__logo {
    margin-inline-end: 40px;
  }
}
@media (max-width: 767px) {
  .l-footer__logo {
    inline-size: calc(160 * var(--sp-ratio));
  }
}

.l-footer__main {
  background-image: linear-gradient(170deg, #f8b5cd, #4f62be 79%);
}
@media (max-width: 767px) {
  .l-footer__main {
    --_pb-footer: 64px;
  }
}
.l-footer__main :where(a:not(:has(img))) {
  --_h-line: 1px;
  --_bgc-line: currentColor;
  --_bgp-x-line: right;
  --_bgp-y-line: top calc(50% + 0.5em + var(--_pos-y-line));
  --_bgp-x-line-hover: left;
  --_bgs-x-line-hover: 100%;
  --_pos-y-line: 0.25em;
  --_c-link-hover: inherit;
  padding-block-end: var(--_pos-y-line);
  background: linear-gradient(90deg, var(--_bgc-line), var(--_bgc-line)) var(--_bgp-x-line) var(--_bgp-y-line)/0 var(--_h-line) no-repeat;
  transition: background-size 0.3s;
}
@media (any-hover: hover) {
  .l-footer__main :where(a:not(:has(img))):where(:hover) {
    background-position-x: var(--_bgp-x-line-hover);
    background-size: var(--_bgs-x-line-hover) var(--_h-line);
  }
}

.l-footer__legal {
  display: flex;
  justify-content: space-between;
}
@media not all and (max-width: 767px) {
  .l-footer__legal {
    font-size: calc(13 * var(--rem));
  }
}
@media (max-width: 767px) {
  .l-footer__legal {
    flex-direction: column;
    row-gap: calc(2 * var(--sp-ratio));
    border-top: #fff solid 1px;
    font-size: calc(13 * var(--rem));
  }
}

.l-footer__copyright {
  flex: 0 0 auto;
  font-weight: 400;
}
@media not all and (max-width: 767px) {
  .l-footer__copyright {
    font-size: calc(12 * var(--rem));
  }
}
@media (max-width: 767px) {
  .l-footer__copyright {
    text-align: center;
    font-size: calc(12 * var(--rem));
  }
}
.l-footer__copyright small {
  letter-spacing: inherit;
}

/* footer-nav
--------------------------------------------------------- */
.l-footer-nav {
  flex: 0 1 auto;
}
@media not all and (max-width: 767px) {
  .l-footer-nav {
    line-height: 1.44;
    font-weight: 400;
  }
  @media (max-width: 1048px) {
    .l-footer-nav {
      inline-size: 100%;
    }
  }
}
.l-footer-nav :where(a) {
  --_c-link-hover: inherit;
}
@media (max-width: 767px) {
  .l-footer-nav {
    margin-left: calc(5 * var(--sp-ratio));
  }
}
.l-footer-nav__list {
  display: grid;
}
@media not all and (max-width: 767px) {
  .l-footer-nav__list {
    --_w-ico-triangle_num: 14;
    --_mr-ico-triangle_num: 6;
    --_num-footer-nav-columns: 4;
    grid-template-columns: repeat(var(--_num-footer-nav-columns), auto);
    gap: 65px;
  }
  @media (max-width: 1048px) {
    .l-footer-nav__list {
      row-gap: 32px;
    }
  }
}
@media (max-width: 767px) {
  .l-footer-nav__list {
    --_w-ico-triangle_num: 11;
    --_mr-ico-triangle_num: 8;
    --_num-footer-nav-columns: 3;
    grid-template-columns: repeat(var(--_num-footer-nav-columns), auto);
    font-size: calc(16 * var(--rem));
    row-gap: 15px;
    -moz-column-gap: calc(18 * var(--sp-ratio));
         column-gap: calc(18 * var(--sp-ratio));
  }
}

.l-footer-nav__link {
  display: flex;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  font-weight: 400;
}
.l-footer-nav__sub-list {
  color: #fff;
  font-weight: 400;
}
@media not all and (max-width: 767px) {
  .l-footer-nav__sub-list {
    --_fz-nav-sub-list_num: 14;
    margin-block-start: 12px;
    font-size: calc(var(--_fz-nav-sub-list_num) * 1px);
  }
}
@media (max-width: 767px) {
  .l-footer-nav__sub-list {
    --_fz-nav-sub-list_num: 13;
    margin-block-start: 4px;
    font-size: calc(14 * var(--rem));
  }
}

.l-footer-nav__sub-item:not(:last-child) {
  margin-block-end: 8px;
}
/* footer-policy-list
--------------------------------------------------------- */
.l-footer-policy-list {
  display: flex;
  -moz-column-gap: 32px;
       column-gap: 32px;
  line-height: 1.46;
}
@media (max-width: 767px) {
  .l-footer-policy-list {
    flex-wrap: wrap;
    margin-top: calc(16 * var(--sp-ratio));
    justify-content: center;
  }
}
.l-footer-policy-list__link {
  display: flex;
  -moz-column-gap: 6px;
       column-gap: 6px;
}
.l-footer-policy-list__link::after {
  content: "";
  display: block;
  inline-size: calc(13 / 13 * 1em);
  block-size: auto;
  aspect-ratio: 13/13;
  background: url(/tthas/assets/img/common/ico_ext-window.svg) center/contain no-repeat;
}

/* gnav
--------------------------------------------------------- */
.l-header__inner:has(.l-gnav[aria-hidden=false]) .l-header__logo .u-logo-hamburger {
  display: block;
}
.l-header__inner:has(.l-gnav[aria-hidden=false]) .l-header__logo .u-logo {
  display: none;
}
@media not all and (max-width: 1048px) {
  .l-gnav {
    display: flex;
    align-items: center;
  }
}
@media (max-width: 1048px) {
  .l-gnav {
    overflow-x: clip;
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    color: #fff;
  }
  .l-gnav.is-open {
    display: grid;
    grid-template-columns: 1fr;
    padding-block-start: var(--h-header);
    background-image: linear-gradient(119deg, #946DE4, #4055BC 82%);
  }
  .l-gnav-btn:has(+ .l-gnav.is-open) span {
    background-color: #fff;
  }
  .l-gnav.is-open .l-gnav__item::after {
    content: "";
    background: #fff;
    height: 1px;
    width: 100%;
    position: absolute;
    bottom: -10px;
    left: 0;
  }
  .l-gnav.is-open .l-gnav__inner a:hover {
    color: #fff;
    opacity: 0.7;
  }
  .l-gnav.is-open::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset-block-start: 0;
    inset-inline-start: 0;
    display: block;
    inline-size: 100svw;
    block-size: 100svh;
    pointer-events: none;
  }
  .l-gnav:where([aria-hidden=false]) {
    animation: fade-in 0.4s cubic-bezier(0, 0, 0.2, 1);
  }
  .l-gnav:where([aria-hidden=true]) {
    animation: fade-out 0.4s cubic-bezier(0, 0, 0.2, 1) forwards;
  }
}
.l-gnav__inner a:hover {
  color: var(--c-main);
}
@media (max-width: 1048px) {
  .l-gnav__inner {
    overflow-y: auto;
    overflow-x: clip;
    overscroll-behavior-y: contain;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-block-start: 5px;
    padding-inline: calc(30 * var(--sp-ratio));
  }
}

.l-gnav__header {
  width: 100%;
  min-block-size: var(--h-header);
}
@media not all and (max-width: 1048px) {
  .l-gnav__header {
    display: none;
  }
}
@media (max-width: 1048px) {
  .l-gnav__header {
    display: flex;
    align-items: center;
    margin-block-end: 56px;
  }
}

.l-gnav__logo {
  inline-size: 118px;
}

.l-gnav__list {
  font-weight: 500;
}
@media not all and (max-width: 1048px) {
  .l-gnav__list {
    display: flex;
    min-block-size: inherit;
    -moz-column-gap: 47px;
         column-gap: 47px;
  }
}
@media (max-width: 1048px) {
  .l-gnav__list {
    display: grid;
    row-gap: calc(17 * var(--sp-ratio));
  }
}

.l-gnav__item {
  position: relative;
}
@media not all and (max-width: 1048px) {
  .l-gnav__item {
    display: flex;
    align-items: center;
    min-block-size: var(--h-header);
  }
}
@media (max-width: 1048px) {
  .l-gnav__item {
    --_bgi-gnav-arrow: url(/tthas/assets/img/common/ico_arrow-main.svg);
    --_trlx-gnav-arrow: 20% ;
  }
}

.l-gnav__link {
  transition: all 0.3s;
}
@media (max-width: 1048px) {
  .l-gnav__link {
    display: flex;
    justify-content: space-between;
    inline-size: 100%;
    min-block-size: 30px;
  }
  .l-gnav__link:after {
    content: "";
    display: block;
    margin-block: var(--leading-trim);
    inline-size: 24px;
    block-size: auto;
    aspect-ratio: 23/17;
    background: url(/tthas/assets/img/home/ico_arrow-white.svg) center/contain no-repeat;
    transition: translate 0.3s;
  }
}
@media (max-width: 1048px) and (any-hover: hover) {
  .l-gnav__link:where(:-moz-any-link, :enabled):hover:after {
    translate: var(--_trlx-gnav-arrow) 0;
  }
  .l-gnav__link:where(:any-link, :enabled):hover:after {
    translate: var(--_trlx-gnav-arrow) 0;
  }
}
@media (max-width: 1048px) {
  .l-gnav__link.l-gnav__link--no-arrow::after {
    display: none;
  }
}
@media (max-width: 1048px) {
  .l-gnav__link .t-txt {
    display: flex;
    flex-direction: column;
  }
}
@media not all and (max-width: 1048px) {
  .l-gnav__link .t-txt__ja {
    font-size: 17px;
  }
}
@media (max-width: 1048px) {
  .l-gnav__link .t-txt__ja {
    letter-spacing: inherit;
    font-size: calc(20 * var(--rem));
  }
}
@media not all and (max-width: 1048px) {
  .l-gnav__link .t-txt__en {
    display: none;
  }
}
@media (max-width: 1048px) {
  .l-gnav__link .t-txt__en {
    font-family: var(--ff-roboto);
    letter-spacing: inherit;
  }
}
@media not all and (max-width: 1048px) {
  .l-gnav__link .t-ico {
    grid-area: ico;
    align-self: center;
    block-size: auto;
    aspect-ratio: 1;
    inline-size: 9px;
  }
  .l-gnav__link .t-ico:after {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    content: "";
    border-bottom: solid 2px #333;
    border-right: solid 2px #333;
    rotate: 45deg;
    translate: 0px -1px;
    transition: rotate 0.3s, translate 0.3s;
  }
}
@media not all and (max-width: 1048px) {
  @media (hover: hover) and (pointer: fine) {
    .l-gnav__item:where(:not(:has(.l-gnav__link[aria-expanded]))):hover .l-gnav__link .t-ico:after, .l-gnav__item:where(:not(:has(.l-gnav__link[aria-expanded]))):has(:focus-visible) .l-gnav__link .t-ico:after {
      rotate: 225deg;
      translate: 0 3px;
    }
  }
}
@media (max-width: 1048px) {
  .l-gnav__link .t-ico {
    inline-size: 10px;
  }
}
@media not all and (max-width: 1048px) {
  .l-gnav__link:where(:has(.t-ico)) {
    display: grid;
    grid-template: "txt ico" auto/auto auto;
    -moz-column-gap: 8px;
         column-gap: 8px;
  }
}
.l-gnav__link:where(:has(.t-ico))[aria-expanded=true] .t-ico:after {
  rotate: 225deg;
  translate: -2px 3px;
}

@media not all and (max-width: 1048px) {
  .l-gnav__privacy {
    display: none;
  }
}
@media (max-width: 1048px) {
  .l-gnav__privacy {
    display: flex;
    align-items: center;
    -moz-column-gap: 6px;
         column-gap: 6px;
    min-block-size: 57px;
    font-size: calc(13 var(--rem));
    border-top: 1px solid #D9D9D9;
    margin-block-start: 36px;
  }
  .l-gnav__privacy::after {
    content: "";
    display: block;
    inline-size: 1em;
    block-size: auto;
    aspect-ratio: 1/1;
    background: url(/tthas/assets/img/common/ico_ext-window.svg) center/contain no-repeat;
  }
}

@media not all and (max-width: 1048px) {
  .l-gnav__sub-list-wrap {
    position: absolute;
    inset-block-start: 88%;
    inset-inline-start: 50%;
    z-index: 2;
    margin-block-start: 0;
    padding: 23px 18px;
    width: 155px;
    border-radius: 8px;
    visibility: hidden;
    background-image: linear-gradient(154deg, #946DE4, #4055BC 82%);
    box-shadow: 0 3px 2.5px rgba(0, 0, 0, 0.1);
    opacity: 0;
    translate: -50% 0;
    transition: opacity 0.3s, visibility 0.3s ease;
  }
  .l-gnav__sub-list-wrap:where([aria-hidden=false]) {
    visibility: visible;
    opacity: 1;
  }
  @media (hover: hover) and (pointer: fine) {
    .l-gnav__item:where(:not(:has(.l-gnav__link[aria-expanded]))):hover .l-gnav__sub-list-wrap, .l-gnav__item:where(:not(:has(.l-gnav__link[aria-expanded]))):has(:focus-visible) .l-gnav__sub-list-wrap {
      visibility: visible;
      opacity: 1;
    }
  }
}
@media (max-width: 1048px) {
  .l-gnav__sub-list-wrap {
    /*  display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.25s;
    &[aria-hidden=false] {
      grid-template-rows: 1fr;
    } */
    font-size: calc(18 * var(--rem));
    margin-block-end: 4px;
  }
}

@media not all and (max-width: 1048px) {
  .l-gnav__sub-list {
    --_rg-sub-list: 10px;
    display: flex;
    flex-direction: column;
    row-gap: var(--_rg-sub-list);
    line-height: 1.5;
    white-space: nowrap;
    color: #fff;
    font-size: 14px;
  }
}
@media (max-width: 1048px) {
  .l-gnav__sub-list {
    margin-top: calc(5 * var(--sp-ratio));
  }
}

@media (max-width: 1048px) {
  .l-gnav__sub-item {
    display: grid;
    align-items: center;
  }
  .l-gnav__sub-item:not(:last-child) {
    margin-block-end: 4px;
  }
}

.l-gnav__sub-link {
  transition: opacity 0.3s;
}
.l-gnav__sub-link:hover {
  color: #fff !important;
  opacity: 0.7 !important;
}
@media not all and (max-width: 1048px) {
  .l-gnav__sub-link {
    display: flex;
    flex-direction: column;
    row-gap: var(--_rg-sub-list);
  }
}
@media (max-width: 1048px) {
  .l-gnav__sub-link {
    display: grid;
    align-items: center;
    grid-template-columns: 1fr;
    height: calc(28 * var(--rem));
  }
}

/* gnav-btn
--------------------------------------------------------- */
.l-gnav-btn {
  --_bgc-gnav-btn: #333;
  --_h-gnav-btn-line: 2px;
  --_ty-gnav-btn-line-gap: 7px;
  --_rotate-gnav-btn-line: 26deg;
  position: relative;
  z-index: 1001;
  display: grid;
  align-items: center;
  inline-size: 28px;
  block-size: 28px;
}
@media not all and (max-width: 1048px) {
  .l-gnav-btn {
    display: none;
  }
}
.l-gnav-btn span {
  position: absolute;
  inset: 0;
  display: block;
  inline-size: 100%;
  block-size: var(--_h-gnav-btn-line);
  margin-block: auto;
  background-color: var(--c-main);
  transition: translate 0.3s, rotate 0.3s;
}
.l-gnav-btn span:first-child {
  translate: 0 calc(var(--_ty-gnav-btn-line-gap) * -1);
}
.l-gnav-btn span:last-child {
  translate: 0 var(--_ty-gnav-btn-line-gap);
}
.l-gnav-btn[aria-expanded=true] span:first-child {
  translate: 0;
  rotate: var(--_rotate-gnav-btn-line);
}
.l-gnav-btn[aria-expanded=true] span:nth-of-type(2) {
  display: none;
}
.l-gnav-btn[aria-expanded=true] span:last-child {
  translate: 0;
  rotate: calc(var(--_rotate-gnav-btn-line) * -1);
}

/* greybg
--------------------------------------------------------- */
.l-greybg {
  background-color: var(--c-bg);
  border-radius: 8px;
  box-shadow: 0px 0px 28px 0px rgba(205, 205, 205, 0.5);
}
@media not all and (max-width: 767px) {
  .l-greybg {
    padding: 85px 20px;
    display: flex;
    justify-content: center;
  }
}
@media (max-width: 1048px) {
  .l-greybg {
    padding: 50px 20px;
  }
}
@media (max-width: 767px) {
  .l-greybg {
    padding: calc(35 * var(--sp-ratio)) calc(30 * var(--sp-ratio));
  }
}
@media (max-width: 767px) {
  :where(.l-container) .l-greybg--sp-wide {
    border-radius: 0;
    margin-inline: calc(-30 * var(--sp-ratio));
  }
}

/* header
--------------------------------------------------------- */
.l-header {
  position: sticky;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 100;
  grid-area: header;
  width: 100%;
  min-block-size: var(--h-header);
  background-color: #fff;
  line-height: 1.4;
}
:where(body:has(.l-main > [data-fullscreen]:first-child)) .l-header {
  background-color: transparent;
  transition: 0.3s background-color;
}
.l-header.is-show {
  background-color: #fff;
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-inline-size: 1920px;
  min-block-size: inherit;
  margin-inline: auto;
  padding-inline: var(--pi-container);
}
@media (max-width: 767px) {
  .l-header__inner {
    padding-inline: calc(30 * var(--sp-ratio));
  }
}

.l-header__logo {
  position: relative;
  flex: 0 0 auto;
  z-index: 1002;
}
@media (max-width: 767px) {
  .l-header__logo {
    inline-size: calc(120 * var(--sp-ratio));
  }
}
/* main
--------------------------------------------------------- */
.l-main {
  display: flow-root;
  grid-area: main;
}
.l-main:has(> [data-fullscreen]:first-child) {
  margin-block-start: calc(var(--h-header) * -1);
}

/* sec
--------------------------------------------------------- */
.l-sec {
  --_pb-sec: calc(var(--_pb-sec_num) * 1px);
}
@media not all and (max-width: 767px) {
  .l-sec {
    --_pb-sec: clamp(var(--_pb-sec-lg_num) * 1px, var(--_pb-sec-lg_num) * 1px + (var(--_pb-sec-xxl_num) - var(--_pb-sec-lg_num)) * (100vw - var(--bp-lg_num) * 1px) / (var(--bp-xxl_num) - var(--bp-lg_num)), var(--_pb-sec-xxl_num) * 1px);
    --_pb-sec-lg_num: 80;
    --_pb-sec-xxl_num: 160;
    padding-block-end: 130px;
  }
}
@media (max-width: 1048px) {
  .l-sec {
    padding-block-end: 80px;
  }
}
@media (max-width: 767px) {
  .l-sec {
    --_pb-sec_num: 80;
    padding-block-end: calc(60 * var(--sp-ratio));
  }
}
.l-sec:has(.l-outer-container) {
  display: grid;
  grid-template-columns: var(--pi-container) 1fr var(--pi-container);
}
.l-sec:has(.l-outer-container)::before, .l-sec:has(.l-outer-container)::after {
  content: "";
}
@media not all and (max-width: 767px) {
  .l-sec--block {
    padding-block-start: 155px;
  }
}
@media (max-width: 1048px) {
  .l-sec--block {
    padding-block-start: 80px;
  }
}
@media (max-width: 767px) {
  .l-sec--block {
    padding-block-start: calc(28 * var(--sp-ratio));
  }
}
.l-sec--block:where([id], :focus) {
  --_scmbs-id: calc(var(--_pb-sec) * -1);
}

.l-sec--gray {
  background-color: #EEEEEE;
}

/* three-column
--------------------------------------------------------- */
.l-three-column {
  display: flex;
  gap: 50px;
}
/* two-column
--------------------------------------------------------- */
@media not all and (max-width: 767px) {
  .l-two-column {
    --_w-side-md_num: 232;
    --_w-side-lg_num: 325;
    --_w-side: clamp(var(--_w-side-md_num) * 1px, var(--_w-side-md_num) * 1px + (var(--_w-side-lg_num) - var(--_w-side-md_num)) * (100vw - var(--bp-md_num) * 1px) / (var(--bp-lg_num) - var(--bp-md_num)), var(--_w-side-lg_num) * 1px);
    display: grid;
    gap: 60px;
    grid-template-columns: min(50vw, 558px) 1fr;
  }
}
.l-two-column--fluid-md-xl {
  --_w-side: clamp(var(--_w-side-md_num) * 1px, var(--_w-side-md_num) * 1px + (var(--_w-side-xl_num) - var(--_w-side-md_num)) * (100vw - var(--bp-md_num) * 1px) / (var(--bp-xl_num) - var(--bp-md_num)), var(--_w-side-xl_num) * 1px);
}

@media not all and (max-width: 767px) {
  .l-two-column__side {
    container-type: inline-size;
  }
}
@media not all and (max-width: 767px) {
  .l-two-column__main {
    container-type: inline-size;
    margin-bottom: 154px;
  }
}
.l-two-column__img {
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}
/* two-column-list
--------------------------------------------------------- */
@media not all and (max-width: 1048px) {
  .l-two-column-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px;
    margin-top: 80px;
  }
}
@media (max-width: 1048px) {
  .l-two-column-list {
    margin-top: calc(40 * var(--sp-ratio));
  }
}
.l-two-column-list__box {
  background-color: #fff;
  box-shadow: 0px 0px 14px 0px rgba(66, 132, 193, 0.3);
  border-radius: 10px;
  overflow: hidden;
}
@media (max-width: 1048px) {
  .l-two-column-list__box:not(:last-child) {
    margin-bottom: 38px;
  }
}
@media not all and (max-width: 767px) {
  .l-two-column-list__box {
    display: flex;
    justify-content: space-between;
    gap: 0px;
  }
}

/* wrapper
--------------------------------------------------------- */
.l-wrapper {
  display: grid;
  grid-template: "header " "main" 1fr "footer ";
  min-block-size: 100svb;
}

/* =========================================================
component
========================================================= */
/* breadcrumb
--------------------------------------------------------- */
.c-breadcrumb {
  position: relative;
  display: grid;
}
@media not all and (max-width: 767px) {
  .c-breadcrumb {
    justify-content: left;
    font-size: calc(14 * var(--rem));
  }
}
@media (max-width: 767px) {
  .c-breadcrumb {
    display: flex;
    font-size: calc(13 * var(--rem));
  }
}
.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
}
@media not all and (max-width: 767px) {
  .c-breadcrumb__list {
    --_ml-breadcrumb-item: 18px;
    -moz-column-gap: 2px;
         column-gap: 2px;
  }
}
@media (max-width: 767px) {
  .c-breadcrumb__list {
    --_ml-breadcrumb-item: 26px;
    --_mi-breadcrumb-item-after: 6px;
    -moz-column-gap: var(--_mi-breadcrumb-item-after);
         column-gap: var(--_mi-breadcrumb-item-after);
  }
}

.c-breadcrumb__item {
  flex: 0 0 auto;
  color: #A1A1A1;
}
.c-breadcrumb__item:first-child {
  text-transform: uppercase;
}
.c-breadcrumb__item:not(:first-child) {
  --_h-breadcrumb-item-underline: 1px;
  display: inline-grid;
  grid-template-columns: var(--_ml-breadcrumb-item) auto;
}
.c-breadcrumb__item:not(:first-child):before {
  display: block;
  content: "＞";
}
.c-breadcrumb__item:last-child {
  flex: 0 1 auto;
}
.c-breadcrumb__item:last-child > span {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.c-breadcrumb__txt {
  color: var(--c-main);
}
/* btn
--------------------------------------------------------- */
.c-btn {
  --_op-link-img-hover: 1;
  --_c-btn: var(--c-main);
  --_c-btn-hover: #fff;
  --_lh-btn: 1.5;
  --_bgc-btn: #fff;
  --_bgc-btn-hover: var(--c-main);
  --_bdc-btn: var(--c-main);
  --_bgi-btn-arrow: url(/tthas/assets/img/common/ico_arrow-main.svg);
  --_bgi-btn-arrow-hover: url(/tthas/assets/img/common/ico_arrow-white.svg);
  --_trsdu-btn: 0.25s;
  --_trlx-btn-arrow: 20%;
  display: flex;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  border: solid var(--_bdc-btn);
  border-width: 2px;
  border-radius: calc(6 * var(--rem));
  text-decoration: none;
  background-color: var(--_bgc-btn);
  color: var(--_c-btn);
  line-height: var(--_lh-btn);
  font-weight: 700;
  letter-spacing: var(--lts-base);
  transition-property: color, background-color;
  transition-duration: var(--_trsdu-btn);
}
@media not all and (max-width: 767px) {
  .c-btn {
    min-inline-size: 320px;
    min-block-size: 64px;
    font-size: calc(18 * var(--rem));
  }
}
@media (max-width: 767px) {
  .c-btn {
    min-inline-size: 224px;
    min-block-size: 56px;
    font-size: calc(16 * var(--rem));
  }
}
@media (any-hover: hover) {
  .c-btn:where(:-moz-any-link, :enabled):hover {
    color: var(--_c-btn-hover);
    background-color: var(--_bgc-btn-hover);
  }
  .c-btn:where(:any-link, :enabled):hover {
    color: var(--_c-btn-hover);
    background-color: var(--_bgc-btn-hover);
  }
  .c-btn:where(:-moz-any-link, :enabled):hover .c-btn__inner:after {
    translate: var(--_trlx-btn-arrow);
    background-image: var(--_bgi-btn-arrow-hover);
  }
  .c-btn:where(:any-link, :enabled):hover .c-btn__inner:after {
    translate: var(--_trlx-btn-arrow);
    background-image: var(--_bgi-btn-arrow-hover);
  }
}
.c-btn--center {
  margin-inline: auto;
}

.c-btn--right {
  margin-inline-start: auto;
}

.c-btn--reverse {
  --_trlx-btn-arrow: -20% ;
}

.c-btn--bg-none {
  background-color: transparent;
}

.c-btn--bd {
  --_bdc-btn: var(--_c-btn);
}

.c-btn--full {
  inline-size: 100%;
}

.c-btn__inner {
  position: relative;
  display: grid;
  inline-size: 100%;
  grid-template-columns: 1fr auto 1fr;
  -moz-column-gap: 0.5em;
       column-gap: 0.5em;
  align-items: center;
  align-self: stretch;
  padding: 0.75em 0.8em;
}
:where(.c-btn--entry) .c-btn__inner {
  grid-template-columns: 1fr auto auto;
  padding-inline: 1.95em;
}
@media (max-width: 767px) {
  :where(.c-btn--entry) .c-btn__inner {
    -moz-column-gap: 0.63em;
         column-gap: 0.63em;
    padding-inline: 1.3em;
  }
}
.c-btn__inner:before, .c-btn__inner:after {
  content: "";
}
:where(.c-btn--reverse) .c-btn__inner:before {
  grid-row: 1;
  grid-column: 3;
}
.c-btn__inner:after {
  justify-self: end;
  inline-size: calc(24.55 / 18 * 1em);
  block-size: auto;
  aspect-ratio: 24.55/10;
  background: var(--_bgi-btn-arrow) center/contain no-repeat;
  transition: translate var(--_trsdu-btn);
}
:where(.c-btn--reverse) .c-btn__inner:after {
  justify-self: start;
  grid-row: 1;
  grid-column: 1;
  rotate: 180deg;
}

.c-btn__txt {
  display: block;
  margin-block: var(--leading-trim);
  line-height: var(--_lh-btn);
}
.c-btn__txt[lang=en] {
  font-weight: 700;
  font-family: var(--ff-roboto);
}

/* ext-link
--------------------------------------------------------- */
.c-ext-link {
  display: flex;
  -moz-column-gap: 6px;
       column-gap: 6px;
  flex: 0 1 auto;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  color: var(--c-main);
  text-decoration: underline;
  text-underline-offset: 0.1em;
  transition: color 0.3s;
}
@media (any-hover: hover) {
  .c-ext-link:hover {
    color: inherit;
  }
}
@media not all and (max-width: 767px) {
  .c-ext-link {
    flex-direction: row-reverse;
  }
}
@media (max-width: 767px) {
  .c-ext-link {
    display: block;
  }
}
.c-ext-link::after {
  content: "";
  display: block;
  flex: 0 0 auto;
  inline-size: calc(13 / 16 * 1em);
  block-size: auto;
  aspect-ratio: 13/13;
  background: center/contain no-repeat;
  background-image: url(/tthas/assets/img/common/ico_ext-window-main.svg);
}
@media (max-width: 767px) {
  .c-ext-link::after {
    display: inline-block;
    inline-size: calc(14 / 16 * 1em);
  }
}

/* text-link
--------------------------------------------------------- */
.c-txt-link {
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  color: var(--c-main);
  text-decoration: underline;
  text-underline-offset: 0.1em;
  transition: color 0.3s;
}
@media (any-hover: hover) {
  .c-txt-link:hover {
    color: inherit;
  }
}
@media (max-width: 767px) {
  .c-txt-link {
    display: block;
  }
}

/* dl-list
--------------------------------------------------------- */
.c-dl-list {
  display: flex;
  flex-wrap: wrap;
}
.c-dl-list__title {
  width: clamp(70px, 10%, 100px);
  margin-top: 15px;
}
.c-dl-list__title.--center {
  margin-top: 20px;
}

.c-dl-list__text {
  width: 90%;
  margin-top: 17px;
  line-height: 1.5;
  font-size: 16px;
  position: relative;
}
.c-dl-list__text:nth-of-type(2):after {
  bottom: -25px !important;
}
.c-dl-list__text.--big {
  font-size: 40px;
}
.c-dl-list__text:not(:last-of-type)::after {
  content: "";
  height: 1px;
  width: 111%;
  background-color: var(--c-main);
  position: absolute;
  bottom: -10px;
  right: 0;
}

.c-dl-list__link {
  margin-top: 10px;
  display: block;
  color: var(--c-main);
  text-decoration: underline;
  display: flex;
  gap: 6px;
}
.c-dl-list__link::after {
  content: "";
  display: block;
  inline-size: 1em;
  block-size: auto;
  aspect-ratio: 13/13;
  background: url(/tthas/assets/img/common/ico_ext-window.svg) center/contain no-repeat;
}

/* list
--------------------------------------------------------- */
.c-list {
  padding-top: 5px;
  line-height: 1.35;
  font-size: 15px;
}
.c-list__item {
  display: flex;
}
.c-list__item::before {
  content: "・";
  flex: 0 0 auto;
}

/* page-ttl
--------------------------------------------------------- */
.c-page-ttl {
  --_lh-page-ttl: 1.45;
}
@media not all and (max-width: 767px) {
  .c-page-ttl {
    --_fz-page-ttl_num: 56;
    margin-block: calc(32 / var(--_fz-page-ttl_num) * 1em) calc(72 / var(--_fz-page-ttl_num) * 1em);
    font-size: clamp(40px, 40px + (var(--_fz-page-ttl_num) - 40) * (100vw - var(--bp-lg_num) * 1px) / (var(--bp-xxl_num) - var(--bp-lg_num)), var(--_fz-page-ttl_num) * 1px);
  }
}
@media (max-width: 767px) {
  .c-page-ttl {
    --_fz-page-ttl_num: 32;
    margin-block-end: 28px;
    font-size: calc(var(--_fz-page-ttl_num) * var(--rem));
  }
}
.c-page-ttl__sub {
  --_w-disc-area:calc(32 / var(--_fz-ttl-sub_num) *1em);
  display: grid;
  grid-column-gap: calc(10 / var(--_fz-ttl-sub_num) * 1em);
  align-items: center;
  color: var(--c-main);
  letter-spacing: 0;
  font-family: var(--ff-main);
  font-size: calc(var(--_fz-ttl-sub_num) / var(--_fz-page-ttl_num) * 1em);
  font-weight: 600;
}
@media not all and (max-width: 767px) {
  .c-page-ttl__sub {
    --_fz-ttl-sub_num: 20;
    margin-block-end: calc(28 / var(--_fz-ttl-sub_num) * 1em);
  }
}
@media (max-width: 767px) {
  .c-page-ttl__sub {
    --_fz-ttl-sub_num: 20;
    margin-block-end: calc(18 / var(--_fz-ttl-sub_num) * 1em);
  }
}
.c-page-ttl__sub > span {
  display: block;
  line-height: var(--_lh-page-ttl);
  margin-block: var(--leading-trim);
  letter-spacing: 0em;
}

.c-page-ttl__main {
  display: grid;
  font-weight: 600;
  font-family: var(--ff-zen-kaku);
}
.c-page-ttl__main > span {
  display: block;
  line-height: var(--_lh-page-ttl);
  margin-block: var(--leading-trim);
  letter-spacing: inherit;
}

/* sec-box
--------------------------------------------------------- */
.c-sec-box {
  background-color: var(--c-bg);
  border-radius: 10px;
}
@media not all and (max-width: 1048px) {
  .c-sec-box {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 30px;
    padding: 60px 59px;
    gap: 38px;
  }
}
@media (max-width: 1048px) {
  .c-sec-box {
    display: flex;
    flex-flow: column;
    padding-block: calc(24 * var(--sp-ratio));
    align-items: center;
    gap: calc(20 * var(--sp-ratio));
    width: 90%;
    margin: 0 auto;
  }
}
@media (max-width: 767px) {
  .c-sec-box {
    width: 100%;
  }
}
.c-sec-box__container {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0px 0px 16px 0px rgba(205, 205, 205, 0.7);
  text-align: center;
}
@media not all and (max-width: 1048px) {
  .c-sec-box__container {
    padding: 30px 35px 34px;
  }
}
@media (max-width: 1048px) {
  .c-sec-box__container {
    width: 90%;
    padding: calc(22 * var(--sp-ratio)) calc(5 * var(--sp-ratio));
  }
}

/* sec-headline
--------------------------------------------------------- */
.c-sec-headline {
  display: grid;
  font-size: calc(var(--_fz-headline_num) * var(--rem));
  font-family: var(--ff-zen-kaku);
  font-weight: 700;
  color: var(--c-main);
}
@media not all and (max-width: 767px) {
  .c-sec-headline {
    --_fz-headline_num: 36;
    margin-block: -0.375em calc(40 / var(--_fz-headline_num) * 1em);
  }
}
@media (max-width: 767px) {
  .c-sec-headline {
    --_fz-headline_num: 22;
    margin-block-end: calc(11 / var(--_fz-headline_num) * 1em);
  }
}
.c-sec-headline > span {
  display: block;
  line-height: var(--_lh-sec-ttl);
  margin-block: var(--leading-trim);
}
@media not all and (max-width: 767px) {
  .c-sec-headline--mbe-lg {
    margin-block-end: calc(56 / var(--_fz-headline_num) * 1em);
  }
}
@media (max-width: 767px) {
  .c-sec-headline--mbe-lg {
    margin-block-end: calc(32 / var(--_fz-headline_num) * 1em);
  }
}

/* sec-ttl
--------------------------------------------------------- */
.c-sec-ttl {
  --lts-base: 0.02em;
  --_lh-sec-ttl: 1.65;
  font-weight: 600;
  color: #333;
}
@media not all and (max-width: 767px) {
  .c-sec-ttl {
    margin-block-end: min(5vw, 66px);
    font-size: calc(65 * var(--rem));
  }
}
@media (max-width: 767px) {
  .c-sec-ttl {
    margin-block-end: calc(22 * var(--sp-ratio));
    font-size: calc(32 * var(--rem));
  }
}
@media not all and (max-width: 767px) {
  .c-sec-ttl--main-en {
    margin-block-end: 80px;
    font-size: calc(80 * var(--rem));
  }
}
@media (max-width: 767px) {
  .c-sec-ttl--main-en {
    margin-block-end: 52px;
    font-size: calc(48 * var(--rem));
  }
}

.c-sec-ttl__sub {
  color: var(--c-main);
  font-family: var(--ff-roboto);
  font-weight: 700;
  color: var(--c-main);
}
@media not all and (max-width: 767px) {
  .c-sec-ttl__sub {
    --_fz-ttl-sub_num: 32;
    --_w-disc-area:calc(32 / var(--_fz-ttl-sub_num) *1em);
    margin-block-end: min(1.5vw, 17px);
    font-size: 20px;
  }
}
@media (max-width: 767px) {
  .c-sec-ttl__sub {
    --_fz-ttl-sub_num: 18;
    --_w-disc-area:calc(28 / var(--_fz-ttl-sub_num) *1em);
    margin-block-end: calc(2 * var(--sp-ratio));
    font-size: calc(20 * var(--rem));
  }
}
:where(.c-sec-ttl--main-en) .c-sec-ttl__sub {
  font-family: var(--ff-main);
}
@media not all and (max-width: 767px) {
  :where(.c-sec-ttl--main-en) .c-sec-ttl__sub {
    --_fz-ttl-sub_num: 20;
    margin-block-end: calc(30 / var(--_fz-ttl-sub_num) * 1em);
  }
}
@media (max-width: 767px) {
  :where(.c-sec-ttl--main-en) .c-sec-ttl__sub {
    --_fz-ttl-sub_num: 15;
    margin-block-end: calc(20 / var(--_fz-ttl-sub_num) * 1em);
  }
}
.c-sec-ttl__sub > span {
  display: block;
  line-height: var(--_lh-sec-ttl);
  margin-block: var(--leading-trim);
}

.c-sec-ttl__main {
  font-family: var(--ff-zen-kaku);
}
.c-sec-ttl__main > span {
  display: block;
  line-height: var(--_lh-sec-ttl);
  margin-block: var(--leading-trim);
}

/* word-blk
--------------------------------------------------------- */
.c-word-blk {
  display: inline-block;
}

/* =========================================================
project
========================================================= */
/* box-cont
--------------------------------------------------------- */
@media not all and (max-width: 767px) {
  .p-box-cont {
    width: 355px;
    margin: 22px 0px 78px 25px;
  }
}
@media (max-width: 767px) {
  .p-box-cont {
    width: 95%;
    margin: calc(20 * var(--sp-ratio)) calc(7 * var(--sp-ratio));
  }
}
.p-box-cont__ttl {
  color: var(--c-main);
}
@media not all and (max-width: 1048px) {
  .p-box-cont__ttl {
    font-size: calc(24 * var(--rem));
    font-weight: 500;
  }
}
@media (max-width: 1048px) {
  .p-box-cont__ttl {
    font-size: 20px;
  }
}
@media (max-width: 767px) {
  .p-box-cont__ttl {
    margin-bottom: calc(0 * var(--sp-ratio));
    font-weight: 540;
    font-size: calc(20 * var(--rem));
    line-height: 1.2;
  }
}

.p-box-cont__img {
  position: relative;
}
@media not all and (max-width: 767px) {
  .p-box-cont__img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media not all and (max-width: 767px) {
  .p-box-cont__img {
    width: 220px;
  }
}
@media (max-width: 767px) {
  .p-box-cont__img {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .p-box-cont__text {
    font-size: calc(16 * var(--rem));
    margin-top: calc(9 * var(--sp-ratio));
    line-height: 1.5;
  }
}

/* card-list
--------------------------------------------------------- */
@media not all and (max-width: 767px) {
  .p-card-list {
    display: grid;
    grid-template-columns: repeat(var(--_col-card, 3), 1fr);
    gap: min(5vw, 56px);
  }
}
@media (max-width: 767px) {
  .p-card-list {
    display: block;
  }
}

/* info-tbl
--------------------------------------------------------- */
@media not all and (max-width: 767px) {
  .p-info-tbl {
    margin-top: 5px;
  }
}
.p-info-tbl__row {
  display: grid;
}
@media not all and (max-width: 767px) {
  .p-info-tbl__row {
    grid-template-columns: 80px auto;
    -moz-column-gap: 12px;
         column-gap: 12px;
  }
}
.p-info-tbl__row:not(:last-of-type) {
  border-bottom: 1px solid #DCDCDC;
}
@media not all and (max-width: 767px) {
  .p-info-tbl__row:not(:last-of-type) {
    padding-bottom: 0.45em;
    margin-bottom: 0.7em;
    line-height: 1.6;
  }
}
@media (max-width: 767px) {
  .p-info-tbl__row:not(:last-of-type) {
    padding-bottom: 0.4em;
    margin-bottom: 0.4em;
  }
}

.p-info-tbl__ttl {
  color: #A1A1A1;
}
@media (max-width: 767px) {
  .p-info-tbl__ttl {
    font-size: calc(16 * var(--rem));
  }
}

@media not all and (max-width: 767px) {
  .p-info-tbl__txt {
    line-height: 1.5;
  }
}
@media (max-width: 767px) {
  .p-info-tbl__txt {
    line-height: 1.4;
  }
}
.p-info-tbl__txt .c-list {
  padding-top: 0;
  line-height: 1.32;
}
@media not all and (max-width: 767px) {
  .p-info-tbl__txt .c-list {
    margin-bottom: 0.3em;
  }
}
@media not all and (max-width: 767px) {
  .p-info-tbl__txt .c-list > :where(li):where(:not(:last-child)) {
    margin-bottom: 0.3em;
  }
}
/* media-card
--------------------------------------------------------- */
.p-media-card:hover .p-media-card__arrow {
  display: flex;
  align-items: center;
  transition: transform 0.3s;
  transform: translateX(10px);
}
@media (max-width: 767px) {
  .p-media-card:not(:last-of-type) {
    display: block;
    margin-bottom: calc(40 * var(--sp-ratio));
  }
}
.p-media-card__img {
  overflow: hidden;
}
.p-media-card__img img {
  width: 100%;
}
@media not all and (max-width: 767px) {
  .p-media-card__img {
    margin-block-end: 32px;
    border-radius: 10px;
  }
}
@media (max-width: 767px) {
  .p-media-card__img {
    margin-block-end: calc(20 * var(--sp-ratio));
    border-radius: 10px;
  }
}

.p-media-card__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.p-media-card__heading {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  line-height: 1.4;
  font-family: var(--ff-zen-kaku);
}
@media not all and (max-width: 767px) {
  .p-media-card__heading {
    font-size: clamp(0px, 2.4vw, 24px);
  }
}
@media (max-width: 767px) {
  .p-media-card__heading {
    font-size: calc(20 * var(--rem));
  }
}

.p-media-card__arrow {
  display: flex;
  align-items: center;
  transition: transform 0.3s;
}
/* more-btn
--------------------------------------------------------- */
.p-more-btn {
  display: block;
  background-image: linear-gradient(153deg, #f8b5cd, #4f62be 79%);
  text-align: center;
  border-radius: 5px;
  box-shadow: 4px 4px 10px 0px rgba(107, 129, 177, 0.33);
}
.p-more-btn:hover .p-more-btn__text::after {
  transform: translateX(40%) translateY(-50%);
}
@media not all and (max-width: 767px) {
  .p-more-btn {
    width: 234px;
    padding-block: 9px;
  }
}
@media (max-width: 767px) {
  .p-more-btn {
    width: 100%;
    margin: 0 auto;
    padding-block: calc(11 * var(--sp-ratio));
  }
}
.p-more-btn__text {
  color: #fff;
  position: relative;
}
.p-more-btn__text::after {
  content: "";
  background: url(/tthas/assets/img/home/ico_arrow-white.svg) center/contain no-repeat;
  width: 27px;
  height: 17px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: transform ease 0.3s;
}
@media not all and (max-width: 767px) {
  .p-more-btn__text::after {
    right: 25px;
  }
}
@media (max-width: 767px) {
  .p-more-btn__text::after {
    right: calc(15 * var(--sp-ratio));
  }
}
@media (max-width: 767px) {
  .p-more-btn__text {
    font-size: calc(15 * var(--rem));
  }
}

/* over-text
--------------------------------------------------------- */
.p-over-text {
  font-weight: 500;
}
@media not all and (max-width: 767px) {
  .p-over-text {
    width: 120%;
    font-size: 16px;
  }
}
@media (max-width: 767px) {
  .p-over-text {
    line-height: 1.85;
    margin-bottom: calc(24 * var(--sp-ratio));
    font-size: calc(16 * var(--sp-ratio));
  }
}

/* page-header
--------------------------------------------------------- */
@media not all and (max-width: 767px) {
  .p-page-header {
    margin-block-start: 26px;
  }
}
@media (max-width: 767px) {
  .p-page-header {
    margin-top: 8px;
  }
}
@media (max-width: 767px) {
  .p-page-header .c-breadcrumb {
    display: none;
  }
}
/* page-panel
--------------------------------------------------------- */
.p-page-panel {
  scroll-margin-block-start: calc(var(--h-header) + var(--_scmbs-id, 0px));
}
.p-page-panel:not(.is-initialized) > *:nth-child(n+11) {
  display: none;
}
.p-page-panel__page[aria-hidden=true] {
  display: none;
}

/* post-article-list
--------------------------------------------------------- */
@media not all and (max-width: 1048px) {
  .p-post-article-list {
    padding-inline: 10px;
  }
}
@media (max-width: 1048px) {
  .p-post-article-list {
    padding-block: clamp(0px, 18 * var(--sp-ratio), 50px);
    padding-inline: calc(30 * var(--sp-ratio));
  }
}

/* post-article
--------------------------------------------------------- */
.p-post-article {
  --lh-post-article: 1.6;
  position: relative;
  display: block;
}
@media not all and (max-width: 1048px) {
  .p-post-article {
    --_pi-post-article: 8px;
    padding-block: 12px;
  }
}
@media (max-width: 1048px) {
  .p-post-article {
    --_pi-post-article: 4px;
    padding-block: clamp(0px, 14 * var(--sp-ratio), 30px);
  }
}
.p-post-article:first-child {
  padding-block-start: 0;
}
.p-post-article:last-of-type {
  padding-block-end: 0;
}
.p-post-article:not(:last-of-type) {
  border-block-end: 1px solid #e5e5e5;
}
@media (any-hover: hover) {
  .p-post-article:not(div):where(:hover):after {
    inset-inline-start: 0;
    inset-inline-end: auto;
    inline-size: 100%;
  }
}
.p-post-article__inner {
  display: grid;
}
@media not all and (max-width: 1048px) {
  .p-post-article__inner {
    --_w-post-arrow:calc(24.55 / 16 * 1em);
    align-items: start;
    grid-template-columns: 105px 1fr;
  }
}
@media (max-width: 1048px) {
  .p-post-article__inner {
    --_w-post-arrow:calc(19 / 14 * 1em);
    display: block;
  }
}

.p-post-article__time {
  margin-block: var(--leading-trim);
  line-height: var(--lh-post-article);
  font-weight: 700;
  color: #A1A1A1;
}
@media not all and (max-width: 1048px) {
  .p-post-article__time {
    margin-block: var(--leading-trim);
    font-size: 14px;
  }
}
@media (max-width: 1048px) {
  .p-post-article__time {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: span 1;
    grid-row: 1;
    font-size: calc(14 * var(--rem));
  }
}

.p-post-article__ttl {
  margin-block: var(--leading-trim);
  line-height: var(--lh-post-article);
  color: var(--c-main);
  font-weight: 500;
}
@media not all and (max-width: 1048px) {
  .p-post-article__ttl .t-txt {
    font-size: 16px;
  }
}
@media (max-width: 1048px) {
  .p-post-article__ttl {
    font-size: calc(16 * var(--rem));
    margin-top: calc(4 * var(--rem));
    line-height: 1.5;
  }
}
@media (max-width: 1048px) {
  .p-post-article__ttl .t-txt {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: span 1;
    grid-row: 2;
    margin-block: var(--leading-trim);
  }
}
.p-post-article__ttl:after {
  display: block;
  align-self: center;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 24.55/10;
  background: url(/tthas/assets/img/common/ico_arrow-main.svg) center/contain no-repeat;
  transition: translate 0.3s;
  content: "";
}
div.p-post-article .p-post-article__ttl:after {
  display: none;
}
@media (any-hover: hover) {
  :where(.p-post-article:not(div):hover) .p-post-article__ttl:after {
    translate: var(--_pi-post-article) 0;
  }
}
@media (max-width: 1048px) {
  .p-post-article__ttl:after {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: span 1;
    grid-row: span 2;
  }
}

/* sec-title
--------------------------------------------------------- */
.p-sec-title {
  font-family: var(--ff-zen-kaku);
  color: var(--c-main);
}
@media not all and (max-width: 767px) {
  .p-sec-title {
    font-size: min(3vw, 34px);
  }
}
/* split-block
--------------------------------------------------------- */
.p-split-block {
  display: grid;
}
@media not all and (max-width: 1048px) {
  .p-split-block {
    grid-template-columns: auto clamp(var(--_w-lg-split-body_num, 700) * 1px, var(--_w-lg-split-body_num, 700) * 1px + (var(--_w-xxl-split-body_num, 840) - var(--_w-lg-split-body_num, 700)) * (100vw - var(--bp-lg_num) * 1px) / (var(--bp-xxl_num) - var(--bp-lg_num)), var(--_w-xxl-split-body_num, 840) * 1px);
    grid-template-areas: ". body";
  }
}
@media not all and (max-width: 767px) {
  .p-split-block__body {
    grid-area: body;
  }
}
.p-split-block__ttl {
  color: var(--c-main);
  font-family: var(--ff-zen-kaku);
}
@media not all and (max-width: 767px) {
  .p-split-block__ttl {
    margin-block-end: 10px;
    font-size: calc(24 * var(--rem));
    line-height: 1.7;
  }
}
@media (max-width: 767px) {
  .p-split-block__ttl {
    margin-block-end: calc(17 * var(--sp-ratio));
    font-size: calc(22 * var(--rem));
    line-height: 1.4;
  }
}

@media not all and (max-width: 767px) {
  .p-split-block__content {
    margin-bottom: 30px;
    line-height: 1.8;
  }
}
@media (max-width: 767px) {
  .p-split-block__content {
    line-height: 1.8;
    font-size: calc(16 * var(--rem));
    margin-bottom: calc(20 * var(--sp-ratio));
    line-height: 1.5;
  }
}

/* tbl-list
--------------------------------------------------------- */
.p-tbl-list {
  display: grid;
  row-gap: var(--_row-tbl-item);
}
@media not all and (max-width: 767px) {
  .p-tbl-list {
    --_w-tbl-ttl: 138px;
    --_row-tbl-item: 25px;
  }
}
@media (max-width: 767px) {
  .p-tbl-list {
    --_row-tbl-item: 20px;
  }
}
.p-tbl-list__item {
  display: grid;
  padding-block-end: var(--_row-tbl-item);
  border-bottom: 1px solid #e5e5e5;
}
@media not all and (max-width: 767px) {
  .p-tbl-list__item {
    grid-template-columns: var(--_w-tbl-ttl) 1fr;
  }
}
@media (max-width: 767px) {
  .p-tbl-list__item {
    grid-template-columns: 1fr;
    row-gap: 8px;
  }
}

.p-tbl-list__ttl {
  margin-block: var(--leading-trim);
  color: var(--c-main);
  font-weight: 600;
}
@media not all and (max-width: 767px) {
  .p-tbl-list__content {
    margin-block: var(--leading-trim);
  }
}
@media not all and (max-width: 767px) {
  .p-tbl-list__content .t-over-img {
    margin-inline-start: calc(var(--_w-tbl-ttl) * -1);
  }
}
/* ---------------------------------------------------------
utility
--------------------------------------------------------- */
/* only
--------------------------------------------------------- */
.u-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media not all and (max-width: 767px) {
  .u-sp-only {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .u-pc-only {
    display: none !important;
  }
}

@media not all and (max-width: 1048px) {
  .u-tb-only {
    display: none !important;
  }
}
@media (max-width: 1048px) {
  .u-not-tb-only {
    display: none !important;
  }
}

.u-c-main {
  color: var(--c-main) !important;
}

.u-ta-c {
  text-align: center !important;
}
.u-ta-l {
  text-align: left !important;
}
.u-ta-r {
  text-align: right !important;
}

.u-mi-a {
  margin-inline: auto !important;
}

.u-fw-n {
  font-weight: 400 !important;
}
.u-fw-m {
  font-weight: 500 !important;
}
.u-fw-b {
  font-weight: 700 !important;
}

.u-ff-oswald {
  font-family: var(--ff-oswald) !important;
}

.u-tt-c {
  text-transform: capitalize !important;
}
.u-tt-u {
  text-transform: uppercase !important;
}

.u-is-disable {
  pointer-events: none;
}

.u-logo-hamburger {
  display: none;
}

.u-logo {
  display: block;
}