:root {
  --site-max: 1280px;
  --content-max: 1080px;
  --sidebar-w: 200px;
  --main-w: 1280px;
  --page-main-we-pc: 180px;
  --page-main-pt-pc: 165px;
  --section-mt: 4em;
  --section-mb: 83.82px;
  --side-pad: clamp(16px, 4vw, 50px);
  --universal-gutter: clamp(10px, 4vw, 30px);
  --universal-hero-offset: 0px;
  --universal-h1-fs: clamp(23.2px, calc(-2.933333px + 8.166667vw), 42.8px);
  --universal-jan-fs: clamp(16.24px, calc(-2.053333px + 5.716667vw), 29.96px);
  --company-head-offset: 0px;
  --type-h1-base: var(--universal-h1-fs);
  --type-news-date-fs: clamp(14px, calc(15px + (var(--type-h1-base) - 45px) * 0.0666667), 16px);
  --type-news-text-fs: clamp(11px, calc(13px + (var(--type-h1-base) - 45px) * 0.0666667), 14px);
  --type-news-date-ls: 0.1em;
  --type-news-text-ls: 0.09em;
  --type-news-text-lh: 2.4;
  --type-top-hero-lead-fs: clamp(13px, calc(9.3678px + 0.67416vw), 18px);
  --type-top-section-title: clamp(16px, calc(17px + (var(--type-h1-base) - 45px) * 0.0666667), 18px);
  --type-vision-text-pc: clamp(13px, calc(9.3678px + 0.67416vw), 18px);
  --type-vision-text-sp: clamp(13px, calc(9.3678px + 0.67416vw), 18px);
  --type-vision-text-lh-sp: clamp(2, calc(2 + 0.4 * var(--sp-t)), 2.4);
  --type-company-text-fs: clamp(13px, calc(9.3678px + 0.67416vw), 18px);
  --section-mt-sp: 50px;
}

@media (min-width: 561px) and (max-width: 834px) {
  :root {
    --universal-jan-fs: clamp(29.96px, calc(29.276731px + 0.121795vw), 30.2925px);
    --universal-h1-fs: clamp(42.8px, calc(41.823901px + 0.173993vw), 43.275px);
  }
}

@media (min-width: 835px) {
  :root {
    --universal-hero-offset: 30px;
    --universal-h1-fs: clamp(45px, calc(3.75vw + 12px), 60px);
    --universal-jan-fs: clamp(31.5px, calc(2.625vw + 8.4px), 42px);
    --company-head-offset: 30px;
  }
}

@media (min-width: 835px) {
  @supports (font-size: clamp(1px, 1vw, 2px)) {
    :root {
      --pl-h1-30: clamp(0px, calc((var(--universal-h1-fs) - 45px) * 2), 30px);
    }
  }
}

@font-face {
  font-family: "source-sans-pro";
  src:
    local("Source Sans Pro Light"),
    local("SourceSansPro-Light"),
    local("Source Sans Pro"),
    url("/theme/honshu/assets/font/SourceSansPro-Light.otf") format("opentype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  unicode-range:
    U+0000-00FF,
    U+0100-024F,
    U+0259,
    U+1E00-1EFF,
    U+2000-206F,
    U+20A0-20CF,
    U+2100-214F,
    U+2C60-2C7F,
    U+A720-A7FF;
}

@font-face {
  font-family: "source-sans-pro";
  src:
    local("Source Sans Pro Regular"),
    local("SourceSansPro-Regular"),
    local("Source Sans Pro"),
    url("/theme/honshu/assets/font/SourceSansPro-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range:
    U+0000-00FF,
    U+0100-024F,
    U+0259,
    U+1E00-1EFF,
    U+2000-206F,
    U+20A0-20CF,
    U+2100-214F,
    U+2C60-2C7F,
    U+A720-A7FF;
}

@font-face {
  font-family: "source-sans-pro";
  src:
    local("Source Sans Pro Semibold"),
    local("SourceSansPro-Semibold"),
    local("Source Sans Pro"),
    url("/theme/honshu/assets/font/SourceSansPro-Semibold.otf") format("opentype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range:
    U+0000-00FF,
    U+0100-024F,
    U+0259,
    U+1E00-1EFF,
    U+2000-206F,
    U+20A0-20CF,
    U+2100-214F,
    U+2C60-2C7F,
    U+A720-A7FF;
}

@font-face {
  font-family: "source-sans-pro";
  src:
    local("Source Sans Pro Bold"),
    local("SourceSansPro-Bold"),
    local("Source Sans Pro"),
    url("/theme/honshu/assets/font/SourceSansPro-Bold.otf") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range:
    U+0000-00FF,
    U+0100-024F,
    U+0259,
    U+1E00-1EFF,
    U+2000-206F,
    U+20A0-20CF,
    U+2100-214F,
    U+2C60-2C7F,
    U+A720-A7FF;
}

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

html{
  font-size: clamp(14px, calc(13.3878px + 0.2041vw), 16px);
  font-weight: 300;
}

html, body {
  overflow-x: clip;
}

body {
  margin: 0;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 200;
  font-synthesis: none;
  color: #1a1a1a;
  background: #ffffff;
  overflow-x: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.has-page-enter [class^="page-"][class$="__content"] > main {
  opacity: 0;
  transition: opacity 0.55s ease;
}

body.has-page-enter.is-page-enter [class^="page-"][class$="__content"] > main {
  opacity: 1;
}

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(10px);
  filter: blur(1.5px);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  body.has-page-enter [class^="page-"][class$="__content"] > main {
    opacity: 1;
    transition: none;
  }

  .reveal-on-scroll {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

.page-contact-general .reveal-on-scroll,
.page-contact-general .reveal-on-scroll.is-visible,
.page-contact-company .reveal-on-scroll,
.page-contact-company .reveal-on-scroll.is-visible {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
}

a {
  text-decoration: none;
  color: #1a1a1a;
}

h1 {
  font-size: 4.6875vw;
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.1em;
}

@media (min-width: 320px) {
  h1 { font-size: 23.2px; }
}

@media (min-width: 430px) {
  h1 { font-size: 32.7px; }
}

@media (min-width: 570px) {
  h1 { font-size: 45px; }
}

@media (min-width: 835px) {
  h1 { font-size: 45px; }
}

@media (min-width: 871px) {
  h1 { font-size: 54px; }
}

@media (min-width: 940px) {
  h1 { font-size: 60px; }
}

h2 {
  font-size: 3.28vw;
  font-weight: 700;
  letter-spacing: 0.07em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

@media (min-width: 835px) {
  h2 { font-size: 42px; }
}

@media (max-width: 834px) {
  h2 { font-size: 42px; }
}

@media (max-width: 630px) {
  h2 {
    font-size: calc(25.88px + 1.63vw);
    line-height: calc(25.88px + 1.63vw);
  }
}

@media (max-width: 525px) {
  h2 { font-size: 5.9vw; }
}

h3 {
  font-size: 1.640625vw;
  line-height: 25px;
  letter-spacing: 0.1em;
  font-weight: 700;
  padding-left: 22px;
}

@media (min-width: 1280px) {
  h3 { font-size: 21px; }
}

@media (min-width: 835px) {
  h3 { font-size: 18px; }
}

@media (max-width: 834px) {
  h3 {
    font-size: 2.734375vw;
    padding-left: 0;
  }
}

@media (max-width: 660px) {
  h3 { font-size: 18px; }
}

h4 {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 0.4;
  margin: 0;
  padding-left: var(--pl-h1-55, 55px);
}

@media (max-width: 834px) {
  h4 {
    font-size: 13px;
  }
}

h5 {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.08em;
  margin: 0;
}

small {
  font-size: .875rem;
}

.font-source {
  font-size: 16px;
  letter-spacing: 0.1em;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.font-source--semibold { font-weight: 600; }
.font-source--regular  { font-weight: 400; }

.page-top .home-news {
  font-family: "Noto Sans JP", sans-serif;
}

.universal-news__text,
.universal-news__textInner {
  font-family: inherit;
}

.universal-news__textInner {
  font-weight: 500;
}

.universal-news__date.font-source {
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.universal-news__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #1a1a1a;
}

.universal-news__item {
  border-bottom: 1px solid #1a1a1a;
}

@media (max-width: 834px) {
  .universal-news__item {
    padding: 10px 0 10px 8px;
  }
}

.universal-news__link {
  display: grid;
  grid-template-columns: 160px 1fr;
  column-gap: 0;
  align-items: center;
  width: 100%;
  padding: 35px 0 30px 50px;
  text-decoration: none;
  color: inherit;
}

@media (max-width: 834px) {
  .universal-news__link {
    grid-template-columns: 1fr;
    row-gap: 10px;
    align-items: start;
    padding: 35px 0 30px 8px;
  }
}

@media (hover:hover) and (pointer:fine) {
  .universal-news__link {
    position: relative;
  }

  .universal-news__textInner {
    color: inherit;
    font-weight: 500;
    transition:
      color var(--news-color-ms, 320ms) linear;
  }

  .universal-news__link.is-newsWeight .universal-news__textInner {
    font-weight: 500;
  }

  .universal-news__link.is-newsRun .universal-news__textInner {
    color: #3a75bb;
  }

  .universal-news__uLayer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
  }

  .universal-news__date,
  .universal-news__text {
    position: relative;
    z-index: 1;
  }

  .universal-news__u {
    position: absolute;
    height: 1px;
    background: #3a75bb;
    transform-origin: left;
    transform: scaleX(0);
    animation-name: newsUnderline;
    animation-duration: var(--news-underline-ms, 320ms);
    animation-timing-function: cubic-bezier(0.18, 0.0, 0.0, 1.0);
    animation-fill-mode: forwards;
    animation-delay: var(--d, 0ms);
  }

  @keyframes newsUnderline{
    0%   { transform: scaleX(0); }
    86%  { transform: scaleX(.98); }
    100% { transform: scaleX(1); }
  }
}

.universal-news__date {
  letter-spacing: 0.1em;
  font-weight: 600;
  font-size: clamp(14px, calc(14px + ((100vw - 835px) / 445) * 2), 16px);
}

.universal-news__text {
  margin: 0;
  width: 100%;
  padding-right: 4%;
  font-size: clamp(11px, calc(11px + (100vw - 320px) / 514), 13px);
  line-height: var(--type-news-text-lh);
}

@media (max-width: 834px) {
  .universal-news__body {
    width: 100%;
  }
}

@media (min-width: 835px) {
  .universal-news__list {
    max-width: 100vw;
    width: 100%;
  }
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : img etc.                  ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.visually-hidden {
  display: none;
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : Menu-Side                 ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

.side-header {
  position: static;
  width: 100%;
  padding: 24px 0 0 20px;
  background: #ffffff;
}

@media (max-width: 834px) {
  .side-header {
    position: fixed;
    top: 0;
    z-index: 100;
    background: #ffffff;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    max-width: 100vw;
    left: 0;
    right: 0;
    margin: 0;
  }

  [class^="page-"][class$="__content"] {
    padding-top: 84px;
  }
}

@media (min-width: 835px) {
  .side-header {
    position: sticky;
    top: 60px;
    left: 0;
    width: var(--sidebar-w);
    padding-left: 15px;
    margin: 0 auto 40px;
    grid-column: 1 / 2;
  }
}

.side-header__logo {
  display: block;
}

@media (min-width: 835px){
  .side-header__logo{
    position: fixed;
    top: 50px;
    left: max(32px, calc((100vw - var(--main-w)) / 2 + 32px));
    margin-left: 0;
    z-index: 81;
    --nav-footer-shift: 0px;
    transform: translateY(calc(-1 * var(--nav-footer-shift)));
    will-change: transform;
  }
}

.side-header__logo img {
  display: block;
  width: 134px;
  height: auto;
}

.side-header__toggle {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.side-header__burger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 22px;
  cursor: pointer;
}

.side-header__burger-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #1a1a1a;
  border-radius: 999px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.side-header__nav {
  margin-top: 65px;
  font-size: 11px;
  line-height: 29.333px;
  letter-spacing: 0.1em;
  --nav-indent: calc(1em + 8px);
}

.side-header__list,
.side-header__accordion {
  list-style: none;
  margin: 0;
  padding: 0;
}

.side-header__list {
  display: grid;
  gap: 0;
}

.side-header__list a,
.side-header__accordion a {
  color: inherit;
  text-decoration: none;
  line-height: 33.333px;
}

.side-header__item {
  position: relative;
}

.side-header__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.side-header__link--indent {
  padding-left: var(--nav-indent);
}

.side-header__link--accordion {
  position: relative;
  padding-left: 0;
  margin-left: var(--nav-indent);
  gap: 0;
}

.side-header__link--accordion::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 12px;
  height: 1px;
  background: currentColor;
  transform: translate(calc(-100% - 6px), -50%);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.side-header__link--accordion-full::before {
  content: "";
}

.side-header__accordion {
  display: grid;
  gap: 0;
  margin-top: 0;
  padding-bottom: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition-property: opacity, max-height, transform;
  transition-duration: 0.9s, 0.9s, 0.9s;
  transition-timing-function: ease;
  transition-delay: 0.12s, 0s, 0s;
  will-change: opacity, max-height, transform;
}

.side-header__accordion li {
  line-height: 33.333px;
  margin-left: 19px;
}

.side-header__item--spaced {
  margin-top: 16.333px;
  margin-bottom: 16.333px;
}

@media (min-width: 835px) {
  .page-top__content {
    display: grid;
    grid-template-columns: var(--sidebar-w) 1fr;
    align-items: start;
  }

  .side-header__nav {
    position: fixed;
    top: 170px;
    left: max(14px, calc((100vw - var(--main-w)) / 2 + 14px));
    width: calc(var(--sidebar-w) - 14px);
    margin-top: 0;
    margin-left: 0;
    z-index: 80;
    --nav-footer-shift: 0px;
    transform: translateY(calc(-1 * var(--nav-footer-shift)));
    will-change: transform;
  }

  .side-header__item--has-sub:hover .side-header__accordion,
  .side-header__item--has-sub:focus-within .side-header__accordion {
    max-height: 300px;
    padding-bottom: 30px;
    opacity: 1;
    pointer-events: auto;
    transition-duration: 1.2s, 1.2s, 1.2s;
    transition-delay: 0s, 0s, 0s;
  }

  .side-header__item--has-sub:nth-of-type(5):hover .side-header__accordion,
  .side-header__item--has-sub:nth-of-type(5):focus-within .side-header__accordion {
    padding-bottom: 0;
  }

  .side-header__item--has-sub:hover .side-header__link--accordion::before,
  .side-header__item--has-sub:focus-within .side-header__link--accordion::before {
    opacity: 1;
  }
}

@media (min-width: 835px) and (hover:hover) and (pointer:fine) {

  .side-header__nav .side-header__list a {
    position: relative;
    color: inherit;
    text-decoration: none;
    transition: color .6s ease, font-weight .2s ease;
    --nav-fw-hover: 400;
    font-weight: 300;
  }

  .side-header__nav .side-header__list a.font-source--semibold {
    --nav-fw-hover: 400;
  }

  .side-header__nav .side-header__list a::after {
    content: none;
  }

  .side-header__nav .side-header__list a:hover,
  .side-header__nav .side-header__list a:focus-visible {
    color: #3a75bb;
    font-weight: var(--nav-fw-hover);
  }

  .side-header__item--has-sub:hover > a.header-textLink,
  .side-header__item--has-sub:focus-within > a.header-textLink {
    color: #3a75bb;
    font-weight: 400;
  }

  .side-header__item--has-sub:hover > a.header-textLink > .header-textLink__label::after,
  .side-header__item--has-sub:focus-within > a.header-textLink > .header-textLink__label::after {
    transform: scaleX(1);
  }
}

@media (max-width: 834px) {
  .side-header__nav a.header-textLink {
    color: #282828;
  }

  .side-header__nav .side-header__accordion a.header-textLink {
    color: #666666;
  }

  .side-header__logo img {
    width: 120px;
  }

  .side-header__list > .side-header__item > .side-header__link--indent {
    padding-left: 0;
  }

  .side-header__list > .side-header__item > .side-header__link--accordion {
    margin-left: 0;
  }

  .side-header__list > .side-header__item > .header-textLink > .header-textLink__label {
    font-size: 14px;
  }

  .side-header__list > .side-header__item > .header-textLink > .header-textLink__label.nav-en,
  .side-header__list > .side-header__item > .header-textLink > .header-textLink__label .nav-en {
    font-size: 16px;
  }

  .side-header__list > .side-header__item > .header-textLink {
    line-height: 33.333px;
    padding-top: 0;
    padding-bottom: 0;
  }

  .side-header__list > .side-header__item:nth-child(2),
  .side-header__list > .side-header__item:nth-child(3),
  .side-header__list > .side-header__item:nth-child(4) {
    min-height: 74px;
    display: flex;
    align-items: center;
  }

  .side-header__item--spaced {
    margin-top: 0;
    margin-bottom: 0;
  }

  .side-header__list > .side-header__item:nth-child(2) > .header-textLink,
  .side-header__list > .side-header__item:nth-child(3) > .header-textLink,
  .side-header__list > .side-header__item:nth-child(4) > .header-textLink {
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.2;
  }

  .side-header__list > .side-header__item:nth-child(5) > .header-textLink {
    padding-top: 40px;
  }

  .side-header__accordion li {
    line-height: 2.2;
    margin-left: 0;
  }

  .side-header__accordion[aria-label="私たちについてのメニュー"] li:last-child {
    margin-bottom: 2em;
  }

  .side-header__accordion a.header-textLink {
    font-size: 0;
    line-height: 2.2;
  }

  .side-header__nav .side-header__accordion .header-textLink__label {
    font-size: 13px;
    line-height: 2.2;
  }

  .side-header__nav .more-wrap--nav {
    margin-left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .side-header__burger {
    display: inline-flex;
    margin-left: auto;
  }

  .side-header__nav {
    display: none;
    position: fixed;
    inset: 0;
    top: 0;
    background: #ffffff;
    padding: 80px 20px 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
    z-index: 99;
  }

  .side-header__toggle:checked ~ .side-header__nav {
    display: block;
    padding-top: 1.875rem;
  }

  .side-header__accordion {
    max-height: none;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    padding-top: 8px;
  }

  .side-header__toggle:checked + .side-header__burger .side-header__burger-bar:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }

  .side-header__toggle:checked + .side-header__burger .side-header__burger-bar:nth-child(2) {
    opacity: 0;
  }

  .side-header__toggle:checked + .side-header__burger .side-header__burger-bar:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : universal                 ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

.universal__jan {
  font-size: var(--universal-jan-fs);
  font-weight: 200;
  letter-spacing: 0.08em;
  line-height: 1.6;
  margin: 0 0 6px 0;
  font-family: "Noto Sans JP";
}

h2.universal__jan {
  font-weight: 700;
}

.universal__en {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.2em;
  margin: 0;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.universal__en.universal-hero__sub {
  font-size: clamp(12px, calc(12px + (100vw - 320px) / 514), 13px);
}

.side-header__nav .header-textLink__label {
  font-size: 11px;
  font-weight: 700;
  font-family: "Noto Sans JP";
  letter-spacing: 0.08em;
}

.side-header__accordion .header-textLink__label {
  font-weight: 500;
}

.side-header__nav .header-textLink__label.nav-en,
.side-header__nav .header-textLink__label .nav-en {
  font-size: 11px;
  font-weight: 600;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
}

@media (min-width: 835px) {
  .universal__en {
    font-size: 15px;
  }

  .universal__en.universal-hero__sub {
    font-size: clamp(14px, calc(14px + (100vw - 835px) / 445), 15px);
  }
}

.section-universal__background {
  max-width: var(--content-max);
  width: 100%;
  background: rgba(58, 117, 187, 0.05);
  padding: 20px 0 50px !important;
  margin: 60px 0 0 !important;
}

@media (max-width: 834px) {
  .section-universal__background {
    padding: 20px 0 50px !important;
    margin: 60px 0 0 0 !important;
  }
}

.section-universal-inner-image__background {
  max-width: var(--content-max);
  width: 100%;
  background: rgba(58, 117, 187, 0.05);
  padding: 20px 0 50px !important;
  margin: 110px 0 0 !important;
}

@media (max-width: 834px) {
  .section-universal__background {
    padding: 20px 0 50px !important;
    margin: 60px 0 0 0 !important;
  }
}

.page-universal__main {
  margin-left: 0;
  max-width: var(--content-max);
  width: 100%;
  padding-top: 24px;
  padding-left: var(--side-pad);
  padding-right: var(--side-pad);
}

@media (min-width: 835px) {
  .page-universal__main {
    margin-left: 0;
    grid-column: 2 / 3;
    padding: var(--page-main-pt-pc) 0 0;
  }
}

@media (max-width: 834px) {
  .page-universal__main {
    padding: 24px 0 48px;
  }
}

.page-universal-honshu__main {
  margin-left: 0;
  max-width: var(--content-max);
  width: 100%;
  padding-top: 24px;
  padding-left: var(--side-pad);
  padding-right: var(--side-pad);
}

@media (min-width: 835px) {
  .page-universal-honshu__main {
    margin-left: 0;
    grid-column: 2 / 3;
    padding: var(--page-main-we-pc) 0 0;
  }
}

@media (max-width: 834px) {
  .page-universal-honshu__main {
    padding: 24px 0 48px;
  }
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : universal hero scale      ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

.universal-hero {
  margin-top: 0;
  margin-bottom: var(--section-mb);
  padding: 0 0 0 var(--side-pad);
  --hero-h1: clamp(23.2px, calc(-2.933333px + 8.166667vw), 42.8px);
  --hero-eyebrow: clamp(14px, calc(0.625vw + 12px), 20px);
  --hero-sub:     clamp(12px, calc(0.3125vw + 11px), 15px);
}

@media (min-width: 561px) and (max-width: 834px) {
  .universal-hero {
    --hero-h1: clamp(42.8px, calc(41.823901px + 0.173993vw), 43.275px);
  }
}

@media (min-width: 835px) {
  .universal-hero {
    --hero-h1: clamp(45px, calc(3.75vw + 12px), 60px);
    padding-left: var(--pl-h1-30, 0px);
  }
}

@media (min-width: 835px) and (max-width: 1280px) {
  .universal-hero {
    padding-left: var(--universal-gutter);
  }
}

@media (min-width: 1281px) {
  .universal-hero {
    padding-left: var(--universal-gutter);
  }
}

.universal-hero h1 {
  font-size: var(--hero-h1);
  line-height: 1.1;
  margin: 0 0 0.2em;
  white-space: nowrap;
}

.universal-hero__eyebrow {
  font-size: var(--hero-eyebrow);
  margin: 0 0 1em;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: #9e9e9e;
}

.universal-hero__sub {
  font-size: var(--hero-sub);
  margin: 0;
  white-space: nowrap;
  font-weight: 600;
  color: #6d6d6d;
}

.universal-hero__title {
  color: #101011;
}

@media (max-width: 834px) {
  .universal-hero__title {
    line-height: 9vw;
  }
}

.universal-breadcrumbs {
  margin: 0;
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #1a1a1a;
  text-decoration: none;
  margin-left: var(--universal-gutter);
  margin-bottom: 30px;
}

.breadcrumbs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

.breadcrumbs__list li {
  line-height: 1;
  display: flex;
  align-items: center;
}

.breadcrumbs__list a {
  line-height: 1;
  display: inline-block;
  color: inherit;
  text-decoration: none;
}

.breadcrumbs__list li + li::before {
  content: ">";
  margin-inline: 0.5em;
}

.breadcrumbs__jan {
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin: 0;
  display: inline-flex;
  align-items: center;
  font-family: "Noto Sans JP";
}

.breadcrumbs__en {
    font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin: 0;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.universal-breadcrumbs .header-textLink__label {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  font-family: "Noto Sans JP";
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.universal-breadcrumbs .header-textLink__label .nav-en {
  font-size: 13px;
  font-weight: 600;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
}

.universal-breadcrumbs .header-textLink__label .breadcrumbs-en {
  font-size: 12px;
  font-weight: 600;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
  display: inline-block;
  line-height: 1;
  transform: translateY(var(--breadcrumbs-en-shift, -0.2px));
}

@media (min-width: 835px) {
  .footer__copyright {
    font-weight: 600;
  }
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : ボタン                     ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

@media (hover:hover) and (pointer:fine) {
  a.textLink {
    color: #1a1a1a;
    text-decoration: none;

    background-image: linear-gradient(#3a75bb, #3a75bb);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0% 1px;

    transition:
      color .6s ease,
      background-size .6s ease;
  }

  a.textLink:hover,
  a.textLink:focus-visible {
    color: #3a75bb;
    background-size: 100% 1px;
  }
}

@media (hover:hover) and (pointer:fine) {
  a.header-textLink {
    color:#282828;
    text-decoration:none;
    transition: color .6s ease;
  }

  .side-header__accordion a.header-textLink {
    color: #666666;
  }

  a.header-textLink > .header-textLink__label {
    display:inline-block;
    position: relative;
    line-height: 1.2;
  }

  a.header-textLink > .header-textLink__label::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom: -1px;
    height: 1px;
    background: #3a75bb;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .6s ease;
  }

  a.header-textLink:hover,
  a.header-textLink:focus-visible {
    color:#3a75bb;
  }

  a.header-textLink:hover > .header-textLink__label::after,
  a.header-textLink:focus-visible > .header-textLink__label::after {
    transform: scaleX(1);
  }
}

.button__more,
.footer__store,
.footer__sns {
  position: relative;
  overflow: hidden;
  border: 0;
}

.button__more,
.footer__store {
  border-radius: 999px;
}

.footer__sns {
  border-radius: 50%;
}

.button__more {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  height: 35px;
  padding: 0 52.6141px;
  margin: 32px auto 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
  background-color: transparent;
  text-decoration: none;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.footer__store {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 35px;
  padding: 0 22px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #666666;
  text-decoration: none;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  transition: background-color 0.45s ease, color 0.45s ease;
}

.footer__sns {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  color: #1a1a1a;
  background: transparent;
  transition: background-color 0.45s ease, color 0.45s ease, border-color 0.45s ease;
}

.footer__sns img {
  display: block;
  width: 18px;
  height: 18px;
  transition: filter 0.45s ease;
}

.button__more::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  border: 1px solid #1a1a1a;
  transition: border-color 0.45s ease;
}

.footer__sns:hover,
.footer__sns:focus-visible {
  background: #3a75bb;
  color: #ffffff;
  border-color: #ffffff;
  filter: none;
}

.footer__sns:hover::before,
.footer__sns:focus-visible::before {
  border-color: #ffffff;
}

@supports not ((background: conic-gradient(#000, #000)) and (-webkit-mask: linear-gradient(#000 0 0))) {
  @media (hover: hover) and (pointer: fine) {
    .button__more::after,
    .footer__store::after,
    .footer__sns::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      background:
        linear-gradient(#3a75bb, #3a75bb) left  top    / 0%  2px no-repeat,
        linear-gradient(#3a75bb, #3a75bb) right bottom / 0%  2px no-repeat,
        linear-gradient(#3a75bb, #3a75bb) left  top    / 2px 0%  no-repeat,
        linear-gradient(#3a75bb, #3a75bb) right bottom / 2px 0%  no-repeat;
      opacity: 0;
      transition: background-size .6s ease, opacity .1s linear;
    }

    .button__more:hover::after,
    .footer__store:hover::after,
    .footer__sns:hover::after,
    .button__more:focus-visible::after,
    .footer__store:focus-visible::after,
    .footer__sns:focus-visible::after {
      opacity: 1;
      background-size:
        100% 2px,
        100% 2px,
        2px 100%,
        2px 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .button__more::after,
    .footer__store::after,
    .footer__sns::after {
      transition: none;
      opacity: 1;
      background-size:
        100% 2px,
        100% 2px,
        2px 100%,
        2px 100%;
    }
  }
}

@supports ((background: conic-gradient(#000, #000)) and (-webkit-mask: linear-gradient(#000 0 0))) {
  @property --bd-a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0turn;
  }

  @media (hover: hover) and (pointer: fine) {
    .button__more::after,
    .footer__sns::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      padding: 2px;
      -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
      -webkit-mask-composite: xor;
              mask-composite: exclude;
      --bd-a: 0turn;
      background: conic-gradient (
        from -90deg,
        #3a75bb 0turn,
        #3a75bb var(--bd-a),
        transparent var(--bd-a),
        transparent 1turn
      );
      opacity: 0;
      transition: --bd-a .9s linear, opacity .1s linear;
    }

    .button__more:hover::after,
    .footer__sns:hover::after,
    .button__more:focus-visible::after,
    .footer__sns:focus-visible::after {
      opacity: 1;
      --bd-a: 1turn;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .button__more::after,
    .footer__sns::after {
      transition: none;
      opacity: 1;
      --bd-a: 1turn;
    }
  }
}

@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .footer__sns-icon {
    width: 18px;
    height: 18px;
    display: block;
    background: currentColor;
    transition: background-color 0.45s ease;

    -webkit-mask-image: url("/theme/honshu/assets/images/common/icon_instagram.svg");
            mask-image: url("/theme/honshu/assets/images/common/icon_instagram.svg");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
  }

  @supports selector(:has(*)) {
    .footer__sns:has(.footer__sns-icon) img { display: none; }
  }
}

.universal-hero__more {
  display: inline-flex;
  width: fit-content;
  flex: 0 0 auto;
  justify-self: start;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: transparent;
  -webkit-text-fill-color: transparent;
  --more-icon-color: #1a1a1a;
  letter-spacing: 0.12em;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.4;
  background-image:
    linear-gradient(#3a75bb, #3a75bb),
    linear-gradient(#1a1a1a, #1a1a1a);
  background-repeat: no-repeat;
  background-size: 0% 100%, 100% 100%;
  background-position: right bottom, left bottom;
  -webkit-background-clip: text;
          background-clip: text;
  transition: background-size 0.3s ease, background-position 1.7s;
}

.universal-hero__more:hover {
  background-position: 0 100%;
}

.universal-hero__more:hover,
.universal-hero__more:focus-visible {
  background-size: 100% 100%, 100% 100%;
  background-position: left bottom, left bottom;
}

.universal-hero__more-text {
  padding-bottom: 0px;
  font-size: 12px;
  background-image: linear-gradient(#3a75bb, #3a75bb);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  transition: background-size 0.5s;
}

.universal-hero__more-text:hover {
  background-position: bottom left;
  background-size: 98% 1px;
}

@media (max-width: 834px) {
  .universal-news__text,
  .universal-hero__more,
  .universal-hero__more-text {
    font-size: 13px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .universal-hero__more:hover .universal-hero__more-text,
  .universal-hero__more:focus-visible .universal-hero__more-text {
    font-weight: 400;
  }
}

@media (hover: hover) and (pointer: fine) {
  .universal-hero__more:hover,
  .universal-hero__more:focus-visible{
    --more-icon-color: #3a75bb;
  }
}

.universal-hero__more-icon {
  position: relative;
  width: 24px;
  height: 24px;
  display: block;
  color: var(--more-icon-color);
  transition: color .25s ease;
  transition-delay: 0s;
  flex: 0 0 auto;
}

.more-wrap {
  text-align: center;
}

@media (max-width: 834px) {
  .more-wrap {
    margin-left: -30px;
    width: calc(100% + 30px);
    display: flex;
    justify-content: center;
  }

  .more-wrap .button__more {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (min-width: 835px) {
  .more-wrap--nav {
    margin-left: -16px;
    width: calc(100% + 14px);
    display: flex;
    justify-content: center;
  }
}

.btn-trace {
  width: 136.4182px;
  height: 35px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 60px auto 0;
  position: relative;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-size: 11px;
  line-height: 1;
  color: #666666;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  border: 1px solid #1a1a1a;
  border-radius: 9999px;
  transition: color 800ms ease, border-color 200ms ease;
}

.side-header__nav .btn-trace {
  margin-top: 30px;
}

.btn-trace.is-hover {
  color: #3a75bb;
  transition: color 800ms ease, border-color 0ms linear;
  border-color: transparent;
}

.btn-trace .trace-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.btn-trace .trace-rect {
  fill: none;
  stroke: #3a75bb;
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
}

.btn-trace.is-hover .trace-rect {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .btn-trace.is-hover .trace-rect{ opacity: 0; }
}

/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ */
/* ┃  Layout : footer                    ┃ */
/* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */

.footer {
  padding: 80px 0 0;
  color: #1a1a1a;
  font-weight: 500;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  background: rgba(58, 117, 187, 0.05);
}

.footer__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 80px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

.footer__logo img {
  display: block;
  width: 134px;
  height: auto;
}

.footer__company,
.footer__address,
.footer__tel {
  margin: 0;
  font-size: 11px;
  line-height: 1.9;
  letter-spacing: 0.1em;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  padding-left: 7px;
}

.footer__company {
  margin-top: 24px;
}

.footer__actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.footer__actions .more-wrap {
  margin: 0;
  width: auto;
  display: block;
  text-align: left;
}

.footer__actions .btn-trace {
  margin: 32px 0 0;
}

.footer__store {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 35px;
  padding: 0 22px;
  border: 1px solid #1a1a1a;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #666666;
  text-decoration: none;
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  transition: background-color 0.45s ease, color 0.45s ease, border-color 0.45s ease;
}

.footer__sns {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border: 1px solid #1a1a1a;
  border-radius: 50%;
  margin-top: 32px;
}

@media (max-width: 834px) {
  .footer__sns {
    width: 35px;
    height: 35px;
    min-width: 35px;
    min-height: 35px;
    padding: 0;
    line-height: 1;
    border-radius: 50%;
    flex: 0 0 35px;
    aspect-ratio: 1 / 1;
  }
}

.footer__sns img {
  display: block;
  width: 18px;
  height: 18px;
}

@supports not ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .footer__sns img{ transition: filter 0.45s ease; }
  .footer__sns:hover img,
  .footer__sns:focus-visible img{
    filter: brightness(0) invert(1);
  }
}

.footer__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
  min-width: 520px;
  margin-top: 60px;
}

.footer__nav-title {
  margin: 0 0 7px;
  font-size: 11px;
  letter-spacing: 0.1em;
}

.footer__nav-title .nav-en {
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.footer__nav-group .footer__nav-title + .footer__nav-title {
  margin-top: 11px;
}

.footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
  letter-spacing: 0.1em;
}

.footer__nav-item--news {
  padding-left: 0;
  margin-left: 0;
}

.footer__nav-item--news::before {
  content: none;
}

.footer__nav-list li {
  position: relative;
  padding-left: 12px;
}

.footer__nav-list li.footer__nav-item--news {
  padding-left: 0;
  margin-left: 0;
}

.footer__nav-list li::before {
  content: "　-";
  position: absolute;
  left: -15px;
  top: 44%;
  transform: translateY(-50%);
  line-height: inherit;
}

.footer__nav-list a {
  color: inherit;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 0.1em;
}

.footer__news {
  padding-left: 1px;
}

.footer__copyright {
  max-width: 1280px;
  margin: 64px auto 0;
  padding: 0 40px 30px 20px;
  text-align: right;
  font-size: 11px;
  letter-spacing: 0.08em;
}

@media (max-width: 885px) {
  .footer__inner {
    flex-direction: column;
    gap: 40px;
  }

  .footer__nav {
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 32px;
  }

  .footer__copyright {
    text-align: left;
  }
}

@media (max-width: 834px) {
  .footer__inner {
    padding-left: 15px;
    padding-right: 15px;
  }

  .footer__nav {
    padding-left: 7px;
  }

  .footer__copyright {
    padding-left: 0;
    padding-right: 0;
    text-align: center;
  }
}

/* Safari / Chrome Form And Font Hardening */
body,
button,
input,
textarea,
select {
  font-family: "source-sans-pro", "Source Sans Pro", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

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