/* 自動生成ファイル: scripts/build-theme-assets.php */

/* source: style.css */
/*
Theme Name: Meisei Corporate
Theme URI: https://meiseikensetsu.co.jp/
Description: 明清建設工業株式会社コーポレートサイト用テーマ
Version: 0.1.0
Text Domain: meisei-corporate
*/

.grecaptcha-badge {
  visibility: hidden !important;
}

/* source: assets/css/components/tokens.css */
:root {
  --ink: #162938;
  --white: #fff;
  --light-gray: #eee;
  --gray: #b6babe;
  --line-gray: #ededed;
  --soft-gray: #707070;
  --text-gray: #666666;
  --off-white: #f1f1f3;
  --offwhite: var(--off-white);
  --indigo-blue: #1c43c9;
  --deep-indigo: #270da6;
  --muted-blue: #496f8c;
  --steel-blue: #3c8ac4;
  --link-blue: #3c8ac4;
  --text-link-color: var(--link-blue);
  --nav-active: #5c98c7;
  --recruit-blue: #2d96fe;
  --surface-subtle-gray: #fafafa;
  --design-width: 1440px;
  --page-max: 1340px;
  --mobile-content-side: 20px;
  --sans: "A-OTF Gothic MB101 Pr6", "a-otf-gothic-mb101-pr6", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  --latin: "Inter", sans-serif;
  --color-text-default: var(--text-gray);
  --color-text-heading: var(--ink);
  --body-text-size: 18px;
  --body-text-size-sm: 16px;
  --body-text-line: 1.9;
  --primitive-radius-full: 9999px;
  --primitive-font-size-sm: 14px;
}

/* source: assets/css/components/base.css */
* {
  box-sizing: border-box;
}

html {
  overflow-x: clip;
  background: var(--white);
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--white);
  color: var(--ink);
  font-family: var(--sans);
  font-feature-settings: "palt";
  font-synthesis-weight: none;
}

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

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

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

.u-sp-break {
  display: none;
}

/* source: assets/css/components/header-drawer/base.css */
.site-header,
.c-drawer,
:root {
  --mobile-content-side: 20px;
}

.site-header,
.c-drawer {
  --sans: "A-OTF Gothic MB101 Pr6", "a-otf-gothic-mb101-pr6", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  --latin: "Inter", sans-serif;
}

/* source: assets/css/components/header-drawer/header.css */
/*
 * Header styles are split by responsibility under header-drawer/header/.
 * This entry file is kept for the stable WordPress style handle.
 */

/* source: assets/css/components/header-drawer/header/layout.css */
.site-header {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: min(var(--page-max), calc(100% - var(--side) * 2));
  margin: 0 auto;
}

.site-header--hero {
  position: fixed;
  z-index: 100;
  top: clamp(28px, 4.8svh, 46px);
  right: clamp(32px, 3.05vw, 44px);
  left: clamp(32px, 3.75vw, 54px);
  display: flex;
  width: auto;
  margin: 0;
  transform: none;
  transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  backface-visibility: hidden;
}

.site-header--hero.is-hidden {
  transform: translate3d(0, calc(-100% - clamp(28px, 4.8svh, 46px) - 12px), 0);
}

body.is-menu-open .site-header--hero {
  color: var(--white);
  transform: none;
  transition: none;
  will-change: auto;
}

body.is-menu-open .site-header--hero .brand,
body.is-menu-open .site-header--hero .menu-button {
  color: var(--white);
}

body.is-menu-open .site-header--hero .brand img {
  filter: none;
}

/* source: assets/css/components/header-drawer/header/brand.css */
.brand {
  position: relative;
  display: flex;
  flex: 0 0 210px;
  flex-direction: column;
  gap: 3px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  transition:
    opacity 420ms ease,
    visibility 420ms ease;
}

body:not(.home) .site-header--hero .brand__description {
  position: absolute;
  bottom: calc(100% + 7px);
  left: 0;
  width: max-content;
  max-width: min(420px, calc(100vw - var(--side) * 2));
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  white-space: nowrap;
}

.brand img {
  width: 210px;
  height: 27.2px;
  object-fit: fill;
  transition: filter 320ms ease;
}

.brand--light {
  color: var(--white);
}

/* source: assets/css/components/header-drawer/header/nav-pill.css */
.nav-pill {
  display: flex;
  align-items: center;
  gap: 0;
  height: 44px;
  margin-left: auto;
  padding: 5px 11px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.18);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  transition:
    background-color 320ms ease,
    backdrop-filter 320ms ease;
}

.nav-pill a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 0 8px 0 16px;
  border-radius: 4px;
  color: var(--white);
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  transition:
    background-color 320ms ease,
    color 320ms ease;
}

.nav-pill a::before {
  position: absolute;
  left: 7px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
  content: "";
}

.nav-pill a:hover,
.nav-pill a:focus-visible {
  background: var(--muted-blue);
}

/* source: assets/css/components/header-drawer/header/contact-pill.css */
.contact-pill {
  position: relative;
  display: grid;
  width: 114px;
  height: 44px;
  place-items: center;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.18);
  color: var(--white);
  font-size: 13px;
  font-weight: 400;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  transition:
    background-color 320ms ease,
    border-color 320ms ease,
    color 320ms ease;
}

.contact-pill:hover,
.contact-pill:focus-visible {
  background: var(--muted-blue);
  color: var(--white);
}

/* source: assets/css/components/header-drawer/hero-news.css */
/* Stable entrypoint for header hero news styles. */

/* source: assets/css/components/header-drawer/hero-news/shell.css */
.hero-news {
  position: fixed;
  z-index: 100;
  right: clamp(20px, 1.95vw, 28px);
  bottom: 0;
  left: auto;
  display: grid;
  grid-template-columns: 106px 1fr;
  align-items: center;
  width: clamp(340px, 26.4vw, 380px);
  height: 80px;
  min-height: 0;
  border-radius: 4px 4px 0 0;
  background: var(--muted-blue);
  color: var(--white);
  opacity: 1;
  visibility: visible;
  transition:
    opacity 320ms ease,
    visibility 0s linear 0s;
}

/* source: assets/css/components/header-drawer/hero-news/state.css */
.hero-news.is-hidden {
  display: none;
}

body.has-footer-hover-tone .hero-news {
  animation: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 320ms ease,
    visibility 0s linear 320ms;
}

/* source: assets/css/components/header-drawer/hero-news/close-button.css */
.hero-news__close {
  position: absolute;
  top: -14px;
  left: -15px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--off-white);
  color: var(--ink);
  cursor: pointer;
}

.hero-news__close::before,
.hero-news__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 1px;
  border-radius: 999px;
  background: currentColor;
  content: "";
}

.hero-news__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.hero-news__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* source: assets/css/components/header-drawer/hero-news/content.css */
.hero-news time {
  display: grid;
  height: 40px;
  place-items: center;
  border-right: 1px solid rgba(255, 255, 255, 0.9);
  font-family: var(--latin);
  font-size: 14px;
}

.hero-news p {
  margin: 0;
  padding: 0 18px;
  font-size: 12px;
  line-height: 1.65;
}

.hero-news a {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 106px 1fr;
  align-items: center;
  width: 100%;
  height: 100%;
  font-weight: inherit;
}

/* source: assets/css/components/header-drawer/hamburger.css */
/* Responsibility: header hamburger style entrypoint. Component files are enqueued from inc/assets/styles.php. */

/* source: assets/css/components/header-drawer/hamburger/menu-button.css */

.menu-button {
  display: flex;
  width: 32px;
  height: 44px;
  flex: 0 0 32px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-family: var(--latin);
  font-size: 11px;
  line-height: 1;
  transition: color 320ms ease;
}

/* source: assets/css/components/header-drawer/hamburger/container.css */

.c-header__hamburger {
  --hamburger-line-gap: 10px;
  --hamburger-line-long: 46px;
  --hamburger-hit-area: var(--hamburger-line-long);
  --hamburger-height: calc(var(--hamburger-line-gap) * 2 + 1px);
  --hamburger-close-center: calc(var(--hamburger-line-gap) + 2px);
  --hamburger-close-edge-adjust: -7px;
  --hamburger-close-duration: 420ms;
  --hamburger-close-ease: cubic-bezier(0.22, 1, 0.36, 1);

  position: relative;
  z-index: 101;
  display: none;
  width: var(--hamburger-hit-area);
  height: var(--hamburger-height);
  flex: 0 0 var(--hamburger-hit-area);
  cursor: pointer;
  margin-left: auto;
}

/* source: assets/css/components/header-drawer/hamburger/lines.css */

.c-header__hamburger span {
  position: absolute;
  right: 0;
  height: 1px;
  background-color: currentColor;
  transform-origin: center;
  transition:
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out,
    width 0.3s ease-in-out,
    top 0.3s ease-in-out,
    bottom 0.3s ease-in-out;
}

.c-header__hamburger span:nth-of-type(1) {
  top: 0;
  width: var(--hamburger-line-long);
}

.c-header__hamburger span:nth-of-type(2) {
  top: var(--hamburger-line-gap);
  width: 36px;
}

.c-header__hamburger span:nth-of-type(3) {
  top: calc(var(--hamburger-line-gap) * 2);
  bottom: auto;
  width: 26px;
}

/* source: assets/css/components/header-drawer/hamburger/states.css */

.c-header__hamburger.is-active span:nth-of-type(1) {
  animation: hamburger-top-to-close var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

.c-header__hamburger.is-active span:nth-of-type(2) {
  animation: hamburger-middle-to-close var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

.c-header__hamburger.is-active span:nth-of-type(3) {
  animation: hamburger-bottom-to-close var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

.c-header__hamburger.is-closing span:nth-of-type(1) {
  animation: hamburger-top-to-open var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

.c-header__hamburger.is-closing span:nth-of-type(2) {
  animation: hamburger-middle-to-open var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

.c-header__hamburger.is-closing span:nth-of-type(3) {
  animation: hamburger-bottom-to-open var(--hamburger-close-duration) var(--hamburger-close-ease) forwards;
}

/* source: assets/css/components/header-drawer/hamburger/keyframes-close.css */

@keyframes hamburger-top-to-close {
  0% {
    right: 0;
    top: 0;
    width: var(--hamburger-line-long);
    transform: rotate(0deg);
  }

  48% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(0deg);
  }

  100% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(45deg);
  }
}

@keyframes hamburger-middle-to-close {
  0% {
    right: 0;
    top: var(--hamburger-line-gap);
    width: 36px;
    opacity: 1;
    transform: rotate(0deg);
  }

  48% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    opacity: 1;
    transform: translateY(-50%) rotate(0deg);
  }

  64%,
  100% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    opacity: 0;
    transform: translateY(-50%) rotate(0deg);
  }
}

@keyframes hamburger-bottom-to-close {
  0% {
    right: 0;
    top: calc(var(--hamburger-line-gap) * 2);
    width: 26px;
    transform: rotate(0deg);
  }

  48% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(0deg);
  }

  100% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(-45deg);
  }
}

/* source: assets/css/components/header-drawer/hamburger/keyframes-open.css */

@keyframes hamburger-top-to-open {
  0% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(45deg);
  }

  52% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(0deg);
  }

  100% {
    right: 0;
    top: 0;
    width: var(--hamburger-line-long);
    transform: rotate(0deg);
  }
}

@keyframes hamburger-middle-to-open {
  0%,
  36% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    opacity: 0;
    transform: translateY(-50%) rotate(0deg);
  }

  52% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    opacity: 1;
    transform: translateY(-50%) rotate(0deg);
  }

  100% {
    right: 0;
    top: var(--hamburger-line-gap);
    width: 36px;
    opacity: 1;
    transform: rotate(0deg);
  }
}

@keyframes hamburger-bottom-to-open {
  0% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(-45deg);
  }

  52% {
    right: var(--hamburger-close-edge-adjust);
    top: var(--hamburger-close-center);
    width: var(--hamburger-line-long);
    transform: translateY(-50%) rotate(0deg);
  }

  100% {
    right: 0;
    top: calc(var(--hamburger-line-gap) * 2);
    width: 26px;
    transform: rotate(0deg);
  }
}

/* source: assets/css/components/header-drawer/drawer.css */
/* Stable entrypoint for drawer styles. */

/* source: assets/css/components/header-drawer/drawer/tokens.css */
.c-drawer {
  --drawer-space-xs: 16px;
  --drawer-space-sm: 24px;
  --drawer-space-info: 25px;
  --drawer-space-md: 32px;
  --drawer-space-lg: 60px;
  --drawer-space-xl: 72px;
  --drawer-font-caption: 12px;
  --drawer-font-social: 16px;
  --drawer-line-caption: 1.6;
  --drawer-copyright-bottom: 20px;
  --drawer-rule-offset: 12px;
  --drawer-inset-inline: max(var(--drawer-space-xs), var(--side));
  --drawer-inset-block-start: calc(var(--drawer-space-xl) + var(--drawer-space-lg) + env(safe-area-inset-top));
  --drawer-inset-block-end: calc(var(--drawer-copyright-bottom) + env(safe-area-inset-bottom));
}

/* source: assets/css/components/header-drawer/drawer/panel.css */
.c-drawer {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 90;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  padding:
    var(--drawer-inset-block-start)
    var(--drawer-inset-inline)
    var(--drawer-inset-block-end);
  background: linear-gradient(235deg, var(--muted-blue) 50%, #2f566f 100%);
  color: var(--white);
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s,
    visibility 0.3s;
}

.c-drawer__inner {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  justify-content: space-between;
}

/* source: assets/css/components/header-drawer/drawer/nav.css */
.c-drawer__nav {
  margin-bottom: var(--drawer-space-xl);
}

.c-drawer__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-drawer__item {
  margin-bottom: var(--drawer-space-sm);
  padding-left: var(--drawer-rule-offset);
  border-left: 1px solid currentColor;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
}

.c-drawer__item a {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s;
}

.c-drawer__item a:hover,
.c-drawer__item a:focus-visible {
  opacity: 0.7;
}

/* source: assets/css/components/header-drawer/drawer/footer.css */
.c-drawer__footer {
  padding-bottom: 0;
}

.c-drawer__social {
  display: inline-block;
  margin: 0 0 var(--drawer-space-info);
  color: inherit;
  font-family: var(--latin), var(--sans);
  font-synthesis: none;
  font-size: var(--drawer-font-social);
  line-height: var(--drawer-line-caption);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: opacity 0.3s;
}

.c-drawer__social:hover,
.c-drawer__social:focus-visible {
  opacity: 0.7;
}

.c-drawer__info {
  display: block;
  margin: 0 0 var(--drawer-space-info);
  font-size: var(--drawer-font-caption);
  font-style: normal;
  line-height: var(--drawer-line-caption);
}

/* source: assets/css/components/header-drawer/drawer/copyright.css */
.c-drawer__copyright {
  display: block;
  margin: 0;
  font-family: var(--latin), var(--sans);
  font-synthesis: none;
  font-size: var(--drawer-font-caption);
  line-height: var(--drawer-line-caption);
}

.c-drawer__copyright .footer__copyright {
  display: inline-block;
  line-height: 1.2;
}

.c-drawer__copyright .footer__copyright-break {
  display: block;
}

.c-drawer__copyright .footer__copyright-separator {
  display: none;
}

/* source: assets/css/components/header-drawer/drawer/state.css */
.c-drawer.is-active {
  opacity: 1;
  visibility: visible;
}

/* source: assets/css/components/header-drawer/states.css */

.has-ink-nav .site-header--hero .nav-pill,
.has-ink-nav .site-header--hero .contact-pill {
  background: rgba(60, 138, 196, 0.05);
}

.has-ink-nav .site-header--hero .nav-pill a,
.has-ink-nav .site-header--hero .contact-pill,
.has-ink-nav .site-header--hero .menu-button {
  color: var(--muted-blue);
}

.has-ink-nav .site-header--hero .brand {
  color: var(--muted-blue);
}

.has-ink-nav .site-header--hero .brand img {
  filter: brightness(0) saturate(100%) invert(42%) sepia(16%) saturate(929%)
    hue-rotate(162deg) brightness(93%) contrast(86%);
}

.has-ink-nav .site-header--hero .nav-pill a:hover,
.has-ink-nav .site-header--hero .nav-pill a:focus-visible {
  background: rgba(60, 138, 196, 0.11);
}

.has-ink-nav .site-header--hero .contact-pill:hover,
.has-ink-nav .site-header--hero .contact-pill:focus-visible {
  background: var(--muted-blue);
  color: var(--white);
}

/* source: assets/css/components/header-drawer/responsive.css */
/* Stable entrypoint for header/drawer responsive styles. */

/* source: assets/css/components/header-drawer/responsive/desktop-narrow.css */
@media (max-width: 1200px) {
  .contact-pill {
    margin-left: auto;
  }

  .site-header--hero {
    left: var(--side);
    width: calc(100% - var(--side) * 2);
  }

  .site-header--hero .contact-pill,
  .site-header--hero .menu-button {
    position: static;
    right: auto;
  }

  .site-header--hero .contact-pill {
    margin-left: 0;
  }
}

/* source: assets/css/components/header-drawer/responsive/tablet.css */
@media (max-width: 1320px) {
  .site-header--hero .nav-pill {
    display: none;
  }

  .c-header__hamburger {
    display: block;
  }

  .site-header--hero .brand img {
    width: 168px;
    height: auto;
  }

  .site-header--hero .brand span:not(.brand__description) {
    font-size: 13px;
  }

  .site-header--hero {
    transition-duration: 1.1s;
  }

  body.is-at-page-end .site-header--hero .brand {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }

  .site-header--hero.is-hidden {
    transform: translate3d(0, calc(-100% - 18px - env(safe-area-inset-top) - 12px), 0);
  }

  .hero-news {
    right: var(--side);
    width: calc(100% - var(--side) * 2);
    min-height: 72px;
    height: auto;
    grid-template-columns: max-content minmax(0, 1fr);
    padding: 12px 0;
  }

  .hero-news time {
    min-width: 118px;
    padding: 0 18px;
  }

  .hero-news a {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .hero-news p {
    padding: 0 42px 0 14px;
  }

  .hero-news__close {
    top: -10px;
    right: -10px;
    left: auto;
    width: 28px;
    height: 28px;
    background: rgba(241, 241, 243, 0.95);
  }

  .c-drawer {
    --drawer-space-xs: 20px;
    --drawer-copyright-bottom: 20px;
    --drawer-inset-inline: 20px;
    --drawer-inset-block-end: calc(20px + env(safe-area-inset-bottom));
  }
}

/* source: assets/css/components/header-drawer/responsive/mobile.css */
@media (max-width: 820px) {
  body:not(.home) .site-header--hero {
    top: calc(18px + env(safe-area-inset-top));
    right: 22px;
    left: 22px;
    align-items: flex-start;
    gap: 12px;
    width: auto;
  }

  body:not(.home) .site-header--hero .brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 52px);
  }

  body:not(.home) .site-header--hero .brand__description {
    display: none;
  }

  body:not(.home) .site-header--hero .brand img {
    width: 168px;
    height: auto;
  }

  body:not(.home) .site-header--hero .brand span:not(.brand__description) {
    overflow: hidden;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body:not(.home) .site-header--hero .contact-pill {
    display: none;
  }

  body:not(.home) .site-header--hero .menu-button {
    width: var(--hamburger-hit-area);
    height: 44px;
    flex-basis: var(--hamburger-hit-area);
  }
}

/* source: assets/css/components/header-drawer/responsive/mobile-compact.css */
@media (max-width: 430px) {
  body:not(.home) .site-header--hero {
    right: 18px;
    left: 18px;
  }
}

/* source: assets/css/components/buttons.css */
.c-button {
  --c-button-width: 272px;
  --c-button-height: 62px;
  --c-button-padding-x: 38px;
  --c-button-bg: var(--muted-blue, #496f8c);
  --c-button-bg-hover: color-mix(in srgb, var(--c-button-bg) 72%, transparent);
  --c-button-color: var(--white, #fff);
  --c-button-border: 1px solid transparent;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--c-button-width);
  min-height: var(--c-button-height);
  padding: 0 var(--c-button-padding-x);
  border: var(--c-button-border);
  border-radius: var(--primitive-radius-full, 9999px);
  background: var(--c-button-bg);
  color: var(--c-button-color);
  font-family: var(--sans, sans-serif);
  font-size: var(--primitive-font-size-sm, 14px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.c-button:visited {
  color: var(--c-button-color);
}

.c-button:hover,
.c-button:focus-visible {
  background: var(--c-button-bg-hover);
  color: var(--c-button-color);
}

.c-button--primary {
  --c-button-bg: var(--muted-blue, #496f8c);
  --c-button-bg-hover: color-mix(in srgb, var(--muted-blue, #496f8c) 72%, transparent);
  --c-button-color: var(--white, #fff);
}

.c-button--outline {
  --c-button-bg: var(--white, #fff);
  --c-button-bg-hover: var(--muted-blue, #496f8c);
  --c-button-color: var(--muted-blue, #496f8c);
  --c-button-border: 1px solid var(--muted-blue, #496f8c);
}

.c-button--outline:hover,
.c-button--outline:focus-visible {
  color: var(--white, #fff);
}

.c-button--contact {
  --c-button-bg: var(--contact-action-color, var(--muted-blue, #496f8c));
  --c-button-bg-hover: var(--contact-action-color, var(--muted-blue, #496f8c));
  --c-button-color: var(--white, #fff);
}

.c-button--contact-outline {
  --c-button-bg: var(--white, #fff);
  --c-button-bg-hover: var(--white, #fff);
  --c-button-color: var(--contact-action-color, var(--muted-blue, #496f8c));
  --c-button-border: 1px solid var(--contact-action-color, var(--muted-blue, #496f8c));
}

/* source: assets/css/components/media.css */
.c-hover-zoom {
  overflow: hidden;
}

.c-hover-zoom__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (hover: hover) and (pointer: fine) {
  .c-hover-zoom__image {
    transform: scale(1.030);
    transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .c-hover-zoom:hover .c-hover-zoom__image,
  .c-hover-zoom:focus-within .c-hover-zoom__image {
    transform: scale(1);
  }
}

/* source: assets/css/components/cursor.css */
/* Stable entrypoint for custom cursor styles. */

/* source: assets/css/components/cursor/scope.css */
@media (hover: hover) and (pointer: fine) and (min-width: 769px) and (prefers-reduced-motion: no-preference) {
  body.home .site-shell,
  body.home .site-shell *,
  body.home .site-header,
  body.home .site-header *,
  body.home .c-drawer,
  body.home .c-drawer *,
  body:not(.home),
  body:not(.home) * {
    cursor: none;
  }
}

/* source: assets/css/components/cursor/base.css */
.c-cursor {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  display: flex;
  width: 8px;
  height: 8px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--muted-blue);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition:
    width 300ms ease,
    height 300ms ease,
    background-color 300ms ease,
    opacity 180ms ease;
}

.c-cursor__bg {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  background: rgba(73, 111, 140, 0.14);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition:
    width 400ms ease,
    height 400ms ease,
    opacity 400ms ease;
}

.c-cursor__inner {
  display: grid;
  place-items: center;
}

.c-cursor__text {
  display: none;
  padding: 0 18px;
  color: var(--white);
  font-family: var(--latin);
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

/* source: assets/css/components/cursor/states.css */
body.is-cursor-on-footer .c-cursor {
  background: var(--off-white);
}

body.is-cursor-on-footer .c-cursor__bg {
  background: rgba(241, 241, 243, 0.18);
}

.c-cursor--hover .c-cursor__bg {
  width: 75px;
  height: 75px;
  opacity: 1;
}

.c-cursor--text {
  width: 82px;
  height: 82px;
  background: var(--off-white);
}

.c-cursor--text .c-cursor__bg {
  opacity: 0;
}

.c-cursor--text .c-cursor__text {
  display: block;
  color: var(--muted-blue);
}

/* source: assets/css/components/cursor/reduced-motion.css */
@media (hover: none), (pointer: coarse), (max-width: 768px) {
  .c-cursor {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-cursor {
    display: none;
  }
}

/* source: assets/css/components/shared-sections.css */
/* Responsibility: shared section style entrypoint. Component files are enqueued from inc/assets/styles.php. */

/* source: assets/css/components/shared-sections/about-page.css */
/* Responsibility: shared section blocks reused by top and lower-page templates. */

.about-page {
  position: relative;
  z-index: 2;
  display: grid;
  align-items: center;
  grid-template-columns: 190px 1fr;
  gap: 38px;
  width: 100%;
  padding: 67px max(var(--side), calc((100vw - var(--page-max)) / 2 + 155px));
  border-top: 1px solid var(--light-gray);
  border-bottom: 1px solid var(--light-gray);
}

.about-page p {
  margin: 0;
  font-size: 14px;
  line-height: 1.75;
}

.about-page__label {
  color: var(--muted-blue);
  font-family: var(--latin);
  font-size: 16px;
  font-weight: 700;
}

.about-page p:not(.about-page__label) {
  font-weight: 500;
}

/* source: assets/css/components/shared-sections/section-heading.css */


.section-heading__ja {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
}

.section-heading__ja span {
  width: 30px;
  height: 3px;
  border-radius: 999px;
  background: var(--muted-blue);
}

/* source: assets/css/components/shared-sections/faq.css */
/* Stable entrypoint for shared FAQ section styles. */

/* source: assets/css/components/shared-sections/faq/layout.css */
.faq {
  display: grid;
  grid-template-columns: 300px minmax(0, 815px);
  gap: 55px;
  width: min(1170px, calc(100% - var(--side) * 2));
  margin: 0 auto;
  padding: 120px 0;
}

.faq__list {
  border-top: 1px solid #ddd;
}

.faq-item {
  border-bottom: 1px solid #ddd;
}

/* source: assets/css/components/shared-sections/faq/intro.css */
.faq .section-heading__ja {
  gap: 14px;
  margin: 0;
  font-size: 14px;
}

.faq__intro .display-title {
  margin: 64px 0 18px;
  font-size: 56px;
  line-height: 0.9;
}

.faq__intro p:last-child {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

/* source: assets/css/components/shared-sections/faq/question-row.css */
.faq-row {
  display: grid;
  grid-template-columns: 30px 1fr 25px;
  gap: 0;
  align-items: center;
  width: 100%;
  min-height: 49px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  transition: color 240ms ease;
}

.faq-row span {
  color: var(--gray);
  font-family: var(--latin), var(--sans);
  font-synthesis: none;
  font-size: 18px;
}

.faq-row i {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 999px;
  background: var(--light-gray);
  font-style: normal;
  line-height: 1;
}

.faq-row i img {
  width: 11px;
  height: 11px;
  display: block;
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-row[aria-expanded="true"] i img {
  transform: rotate(45deg);
}

/* source: assets/css/components/shared-sections/faq/answer.css */
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transform: translateY(-4px);
  visibility: hidden;
  transition:
    grid-template-rows 420ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 260ms ease,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s linear 420ms;
}

.faq-answer > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  min-height: 0;
  overflow: hidden;
}

.faq-answer span {
  padding-top: 4px;
  color: var(--muted-blue);
  font-family: var(--latin), var(--sans);
  font-synthesis: none;
  font-size: 18px;
  line-height: 1.8;
}

.faq-answer p {
  margin: 0;
  padding: 6px 56px 20px 0;
  color: var(--ink);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.85;
}

.faq-answer__content {
  padding: 6px 56px 20px 0;
}

.faq-answer__content p {
  padding: 0;
}

.faq-answer a {
  color: var(--text-link-color);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* source: assets/css/components/shared-sections/faq/state.css */
.faq-item.is-open .faq-answer {
  grid-template-rows: 1fr;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  transition-delay: 0s;
}

/* source: assets/css/components/shared-sections/conversion.css */
/* Stable entrypoint for shared conversion section styles. */

/* source: assets/css/components/shared-sections/conversion/shell.css */
.conversion {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  min-height: 500px;
  padding: 200px max(var(--side), calc((100vw - 1240px) / 2));
  color: var(--white);
  overflow: hidden;
}

/* source: assets/css/components/shared-sections/conversion/background.css */
.conversion__bg {
  position: absolute;
  inset: 0;
  background-color: #496f8c;
  background-image: linear-gradient(
    218deg,
    rgba(73, 111, 140, 0.96) 50%,
    rgba(47, 86, 111, 1) 100%
  );
}

.conversion__bg::before {
  position: absolute;
  inset: 0;
  background-color: #496f8c;
  background-image: url("../../images/shared-conversion-background.jpg");
  background-position: center;
  background-size: cover;
  background-blend-mode: multiply;
  content: "";
  opacity: 0.1;
}

/* source: assets/css/components/shared-sections/conversion/card.css */
.conversion-card {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 0;
  align-items: center;
  min-height: 160px;
  padding: 34px 40px;
  border-radius: 4px;
  background: #305870;
}

.conversion-card--entry {
  background: var(--nav-active);
}

.conversion-card h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.conversion-card div p {
  margin: 14px 0 0;
  font-family: var(--latin), var(--sans);
  font-synthesis: none;
  font-size: 18px;
  line-height: 1;
  text-transform: uppercase;
}

.conversion-card > p {
  margin: 0;
  font-size: 14px;
  line-height: 1.75;
}

/* source: assets/css/components/shared-sections/conversion/arrow.css */
.conversion-card__arrow {
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 40px;
  height: 20px;
}

/* source: assets/css/components/shared-sections/responsive.css */
/* Stable entrypoint for shared lower-page responsive section styles. */

/* source: assets/css/components/shared-sections/responsive/heading-about.css */
@media (max-width: 820px) {
  body:not(.home) .section-heading__ja {
    font-size: 15px;
  }

  body:not(.home) .about-page {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 38px var(--side);
  }

  body:not(.home) .about-page p {
    line-height: 1.5;
  }
}

/* source: assets/css/components/shared-sections/responsive/faq.css */
@media (max-width: 820px) {
  body:not(.home) .faq {
    grid-template-columns: 1fr;
    gap: 30px;
    width: 100%;
    padding: 72px var(--side);
  }

  body:not(.home) .faq__intro {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 24px;
    align-items: end;
    align-items: last baseline;
  }

  body:not(.home) .faq__intro .section-heading__ja {
    grid-column: 1 / -1;
  }

  body:not(.home) .faq__intro .display-title {
    margin: 28px 0 0;
    font-size: 52px;
  }

  body:not(.home) .faq__intro p:last-child {
    margin: 0;
  }

  body:not(.home) .faq__intro-sp-break {
    display: none;
  }

  body:not(.home) .faq-row {
    grid-template-columns: 28px 1fr 32px;
    min-height: 56px;
    padding: 8px 0;
  }

  body:not(.home) .faq-answer p,
  body:not(.home) .faq-answer__content {
    padding-right: 0;
  }
}

/* source: assets/css/components/shared-sections/responsive/conversion.css */
@media (max-width: 820px) {
  body:not(.home) .conversion {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 12px;
    min-height: 560px;
    padding: 72px var(--side);
  }

  body:not(.home) .conversion-card {
    grid-template-columns: 1fr 44px;
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 15px;
    align-content: center;
    min-height: 156px;
    padding: 20px;
  }

  body:not(.home) .conversion-card div {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
  }

  body:not(.home) .conversion-card div p {
    margin: 0;
    margin-left: auto;
  }

  body:not(.home) .conversion-card > p {
    grid-column: 1;
    font-size: 13px;
    padding-right: 0;
  }

  body:not(.home) .conversion-card--entry .conversion-card__sp-join {
    display: none;
  }

  body:not(.home) .conversion-card__arrow {
    position: static;
    grid-column: 2;
    grid-row: 2;
    align-self: end;
    justify-self: end;
    width: 44px;
    height: auto;
  }
}

/* source: assets/css/components/shared-sections/narrow.css */

@media (max-width: 430px) {
  body:not(.home) .conversion-card {
    min-height: 148px;
    padding: 16px;
  }

  body:not(.home) .conversion-card > p {
    padding-right: 0;
  }

  body:not(.home) .conversion-card div p {
    font-size: 16px;
  }

  body:not(.home) .conversion-card__sp-join {
    display: none;
  }
}
