@charset "UTF-8";
/*
Theme Name: サンケイ広告2026年版
Theme URI:
Author: grafix
Author URI: https://www.gd-system.jp/
Description:
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
/*
YUI 3.18.1 (build f7e7bcb)
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
html {
  color: #000;
  background: #FFF;
  font-size: 14px;
  line-height: 1.75;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  *font-size: 100%;
}

legend {
  color: #000;
}

#yui3-css-stamp.cssreset {
  display: none;
}

/* html tag */
body {
  word-wrap: break-word;
  word-break: break-all;
  text-justify: inter-ideograph;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

a {
  color: #2e93d4;
  text-decoration: none;
  transition: 0.2s;
}

a:hover {
  text-decoration: underline;
}

img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  vertical-align: bottom;
  transition: opacity 0.2s ease-in-out;
}

*::after,
*::before {
  vertical-align: bottom;
}

a[href^=tel] {
  color: #000;
  cursor: text;
  pointer-events: none;
}

a[href^=tel]:hover {
  text-decoration: none;
}

strong {
  font-weight: bold;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.page-template-realm .header-wrap {
  background: transparent;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100;
}

.header-wrap {
  background: #000;
  color: #fff;
  padding: 46px 60px 44px 60px;
  margin: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
}
.header-wrap header .header {
  width: 118px;
}
.header-wrap nav .nav ul {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
}
.header-wrap nav .nav ul li {
  font-size: 1rem;
  line-height: 2.357;
  position: relative;
}
.header-wrap nav .nav ul li:first-of-type a::before {
  display: none;
}
.header-wrap nav .nav ul li a {
  color: #fff;
  position: relative;
  padding: 7px 16px;
}
.header-wrap nav .nav ul li a strong {
  color: #d60000;
}
.header-wrap nav .nav ul li a::after {
  content: "";
  display: block;
  height: 1px;
  background: #fff;
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 0;
  transition: 0.2s;
}
.header-wrap nav .nav ul li a:hover {
  text-decoration: none;
}
.header-wrap nav .nav ul li a:hover::after {
  left: 16px;
  right: 16px;
}
.header-wrap nav .nav ul li.active > a::after {
  left: 16px;
  right: 16px;
}
.header-wrap nav .nav ul li ul {
  visibility: hidden;
  opacity: 0;
  transition: 0.2s;
  position: absolute;
  left: 0;
  top: 32px;
  padding: 20px 0;
  background: rgba(0, 0, 0, 0.8);
  display: block;
}
.header-wrap nav .nav ul li ul li {
  white-space: nowrap;
}
.header-wrap nav .nav ul li:hover ul {
  visibility: visible;
  opacity: 1;
}

.main {
  width: 100%;
  max-width: 680px;
  margin: 144px auto 200px;
  display: block;
}
.main h1 {
  font-size: 3.7rem;
  line-height: 1.75;
  font-weight: 700;
  margin: 0 0 96px;
}

.footer-wrap {
  background: #000;
  color: #fff;
  padding: 20px;
}
.footer-wrap .footer {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  font-size: 0.857rem;
  line-height: 1.666;
}
.footer-wrap .footer .footer-credit {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.footer-wrap .footer .footer-credit .com-inner + .com-inner {
  margin-left: 20px;
}
.footer-wrap .footer .footer-credit a {
  color: #fff;
}
.footer-wrap .footer .footer-nav ul {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
}
.footer-wrap .footer .footer-nav ul li {
  position: relative;
}
.footer-wrap .footer .footer-nav ul li::before {
  content: "|";
  display: inline-block;
  margin: 0 4px;
}
.footer-wrap .footer .footer-nav ul li:first-of-type::before {
  display: none;
}
.footer-wrap .footer .footer-nav ul li a {
  color: #fff;
  position: relative;
  padding: 3px 0;
}
.footer-wrap .footer .footer-nav ul li a::after {
  content: "";
  display: block;
  height: 1px;
  background: #fff;
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 0;
  transition: 0.2s;
}
.footer-wrap .footer .footer-nav ul li a:hover {
  text-decoration: none;
}
.footer-wrap .footer .footer-nav ul li a:hover::after {
  left: 3px;
  right: 3px;
}

.copyright {
  text-align: center;
}
.copyright .mark {
  font-size: 1.714rem;
  line-height: 1;
  vertical-align: middle;
}
.copyright .text {
  font-size: 0.857rem;
  line-height: 3.333;
}

.content-header .content-header-inner {
  position: relative;
  padding-top: 39.6%;
}
.content-header .content-header-inner .layer-bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 75%;
  height: 100%;
  background: #000;
}
.content-header .content-header-inner .layer-img {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  width: 81.25%;
}
.content-header .content-header-inner .layer-img img {
  width: 100%;
  height: 100%;
  max-width: inherit;
  max-height: inherit;
}
.content-header .content-header-inner .layer-img .sp {
  display: none;
}
.content-header .content-header-inner .layer-text {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 75%;
  height: 100%;
  margin: auto;
  text-align: right;
}
.content-header .content-header-inner .layer-text h1 {
  margin-top: 16.5%;
  font-size: 5.857rem;
  line-height: 1.1;
  color: rgba(255, 255, 255, 0.4);
  font-family: "arial black", sans-serif;
  font-weight: 700;
}
.content-header .content-header-inner .layer-text h2 {
  font-size: 3rem;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
  margin-top: 20px;
}
.content-header .content-header-inner .layer-text p {
  font-size: 2.142857rem;
  line-height: 1.2;
  font-weight: 700;
  font-family: "arial black", sans-serif;
  color: #fff;
}
.content-header .content-header-inner .layer-scroll {
  position: absolute;
  bottom: 110px;
  left: -216px;
  z-index: 1;
  transform: rotate(270deg);
}
.content-header .content-header-inner .layer-scroll .scroll-down {
  display: block;
  position: relative;
  width: 324px;
  cursor: pointer;
  text-align: left;
}
.content-header .content-header-inner .layer-scroll .scroll-down .text {
  font-size: 1.142857rem;
  line-height: 1;
  color: #000;
  font-weight: 700;
}
.content-header .content-header-inner .layer-scroll .scroll-down .line {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 254px;
  height: 1px;
  margin: auto;
}
.content-header .content-header-inner .layer-scroll .scroll-down .line::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 120%;
  height: 100%;
  background: #000;
  animation-name: scrollLine;
  animation-duration: 3.2s;
  animation-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
  animation-iteration-count: infinite;
}
.content-header .content-header-inner .layer-scroll .scroll-down:hover {
  text-decoration: none;
}

.screen-reader-text {
  display: none;
}

.pagination {
  margin: 30px 0 0;
}
.pagination .nav-links {
  text-align: center;
}
.pagination .nav-links .page-numbers {
  display: inline-block;
  padding: 4px 13px;
  border: solid 1px #999;
  margin: 0 10px;
  color: #666;
}
.pagination .nav-links .page-numbers.current {
  background: #f0f0f0;
}
.pagination .nav-links .page-numbers.prev, .pagination .nav-links .page-numbers.next {
  border: solid 1px #fff;
}

.wp-block-media-text > figure > img {
  max-height: inherit;
}

.page-template-default .main .content {
  overflow: hidden;
  font-size: 1.142857rem;
  line-height: 1.75;
}
.page-template-default .main .content h3 {
  font-size: 2.142857rem;
  line-height: 1.75;
  font-weight: 700;
}
.page-template-default .main .content h3 strong {
  color: #d60000;
}
.page-template-default .main .content ul {
  padding-left: 1.4em;
  list-style-type: disc;
}

.body-index .header-wrap {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  z-index: 10;
  background: transparent;
}
.body-index .page-front .content-header {
  margin: 0 0 122px;
}
.body-index .page-front .content-header .content-header-inner {
  padding-top: 57.6%;
}
.body-index .page-front .content-header .content-header-inner .layer-bg {
  width: 75.7%;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info {
  position: absolute;
  left: 20px;
  bottom: 30px;
  color: #fff;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 10px;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title h2 {
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 700;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title p {
  font-size: 0.857rem;
  line-height: 1;
  padding-left: 20px;
  margin-left: 20px;
  border-left: solid 1px #fff;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title p a {
  text-decoration: underline;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title p a:hover {
  text-decoration: none;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-body ul li {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-body ul li .date {
  margin-right: 20px;
}
.body-index .page-front .content-header .content-header-inner .layer-bg .header-info a {
  color: #fff;
}
.body-index .page-front .content-header .content-header-inner .layer-img {
  width: 78%;
}
.body-index .page-front .content-header .content-header-inner .layer-text {
  height: 80%;
}
.body-index .page-front .content-header .content-header-inner .layer-text h1 {
  color: #fff;
}
.body-index .page-front .content-header .content-header-inner .layer-text h1 strong {
  color: #de0000;
}
.body-index .page-front .content-header .content-header-inner .layer-text h2 {
  font-size: 3.642857rem;
  line-height: 1.2;
  margin-top: 40px;
}
.body-index .page-front .content-header .content-header-inner .layer-text .layer-scroll {
  bottom: 0;
}
.body-index .page-front .front-topics {
  width: 100%;
  max-width: 680px;
  margin: 0 auto 122px;
}
.body-index .page-front .front-topics .front-topics-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 65px;
}
.body-index .page-front .front-topics .front-topics-title h2 {
  font-size: 1.857rem;
  line-height: 1.75;
  font-weight: 700;
  color: #333;
}
.body-index .page-front .front-topics .front-topics-title p a {
  font-size: 1rem;
  line-height: 1.75;
  color: #333;
  text-decoration: underline;
}
.body-index .page-front .front-topics .front-topics-title p a:hover {
  text-decoration: none;
}
.body-index .page-front .front-topics .front-topics-body ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.body-index .page-front .front-topics .front-topics-body ul li {
  flex-basis: 31%;
  flex-shrink: 0;
  flex-grow: 0;
}
.body-index .page-front .front-topics .front-topics-body ul li + li {
  margin-left: 22px;
}
.body-index .page-front .front-topics .front-topics-body ul li a {
  color: #333;
}
.body-index .page-front .front-topics .front-topics-body ul li a:hover .img img {
  transform: scale(1.2);
}
.body-index .page-front .front-topics .front-topics-body ul li .img {
  height: 160px;
  background: #f7f7f7;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 10px;
  overflow: hidden;
}
.body-index .page-front .front-topics .front-topics-body ul li .img img {
  transition: 3s;
}
.body-index .page-front .front-topics .front-topics-body ul li .meta {
  font-size: 0.857rem;
  line-height: 1.75;
  color: #666;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 5px;
}
.body-index .page-front .front-topics .front-topics-body ul li .meta .terms {
  margin-right: 5px;
}
.body-index .page-front .front-topics .front-topics-body ul li h3 {
  font-size: 1rem;
  line-height: 1.894;
}
.body-index .page-front .front-catch {
  margin: 0 0 80px;
}
.body-index .page-front .front-catch h2 {
  font-size: 1.857rem;
  line-height: 1.75;
  font-weight: 700;
  color: #333;
  text-align: center;
}
.body-index .page-front .front-contents-menu {
  background: #f0f0f0;
  padding: 40px 0 100px;
}
.body-index .page-front .front-contents-menu h2 {
  font-size: 1.2857rem;
  line-height: 1.75;
  font-weight: 700;
  padding-left: 36px;
  position: relative;
  margin: 0 0 30px;
  letter-spacing: 2px;
}
.body-index .page-front .front-contents-menu h2::before {
  content: "";
  display: block;
  width: 27px;
  height: 1px;
  background: #000;
  position: absolute;
  left: 0;
  top: 50%;
}
.body-index .page-front .front-contents-menu ul {
  display: flex;
  justify-content: space-between;
  align-items: inherit;
  flex-wrap: nowrap;
}
.body-index .page-front .front-contents-menu ul li {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 0;
}
.body-index .page-front .front-contents-menu ul li a {
  color: #333;
  text-align: center;
}
.body-index .page-front .front-contents-menu ul li a:hover {
  text-decoration: none;
}
.body-index .page-front .front-contents-menu ul li a:hover .img img {
  transform: scale(1.2);
}
.body-index .page-front .front-contents-menu ul li a h3 {
  font-size: 1.142857rem;
  line-height: 1.75;
  font-weight: 700;
  padding: 0 0 17px;
  margin: 0 0 17px;
  position: relative;
}
.body-index .page-front .front-contents-menu ul li a h3::after {
  content: "";
  display: block;
  width: 36px;
  height: 2px;
  background: #000;
  position: absolute;
  left: 50%;
  margin-left: -18px;
  bottom: 0;
}
.body-index .page-front .front-contents-menu ul li a .img {
  position: relative;
  margin: 0 0 10px;
  overflow: hidden;
}
.body-index .page-front .front-contents-menu ul li a .img img {
  transition: 3s;
}
.body-index .page-front .front-contents-menu ul li a .img .mess {
  font-size: 1.2857rem;
  line-height: 1.75;
  color: #fff;
  font-weight: bold;
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  writing-mode: vertical-rl;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: nowrap;
  transition: 5s;
}
.body-index .page-front .front-contents-menu ul li a .img .mess span {
  margin-bottom: 40px;
}
.body-index .page-front .front-contents-menu ul li a .text {
  font-size: 1.2857rem;
  line-height: 1.75;
  color: #000;
  font-weight: 700;
}

.page-realm {
  padding-bottom: 1px;
  background-image: url(img/bg.png);
  background-repeat: repeat-x;
  background-position: center 980px;
}
.page-realm .main {
  max-width: 990px;
  margin: 40px auto 200px;
}
.page-realm .main .content .content1 {
  max-width: 920px;
  margin: 0 auto 63px;
  text-align: center;
  background: #f4f4f4;
  padding: 17px;
  box-sizing: border-box;
  font-size: 1.357rem;
  line-height: 2;
  color: #333;
  box-shadow: 8px 7px 0 #bfbfbf;
}
.page-realm .main .content .content2 {
  margin: 0 auto 87px;
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.page-realm .main .content .content2 .inner {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 0;
  max-width: 100%;
  background: #fff;
  padding: 40px 30px;
  box-shadow: 0 0 5px rgba(177, 177, 177, 0.75);
  box-sizing: border-box;
}
.page-realm .main .content .content2 .inner + .inner {
  margin-left: 37px;
}
.page-realm .main .content .content2 .inner h3 {
  font-size: 1.42857rem;
  line-height: 1.75;
  text-align: center;
  padding: 0 0 20px;
  border-bottom: solid 1px #222;
  margin: 0 0 20px;
}
.page-realm .main .content .content2 .inner ul {
  display: flex;
  justify-content: space-between;
  align-items: inherit;
  flex-wrap: wrap;
  font-size: 1rem;
  line-height: 1.5;
  color: #222;
}
.page-realm .main .content .content2 .inner ul li {
  flex-basis: 50%;
  flex-shrink: 0;
  flex-grow: 0;
  max-width: 50%;
  padding: 5px 0 5px 20px;
  position: relative;
  box-sizing: border-box;
}
.page-realm .main .content .content2 .inner ul li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 5px;
}
.page-realm .main .content .content2:not(.column-1) .inner ul {
  display: block;
}
.page-realm .main .content .content2:not(.column-1) .inner ul li {
  max-width: inherit;
}
.page-realm .main .content .content3 .inner {
  margin: 0 0 39px;
  background: #fff;
  border: solid 1px #333;
  padding: 40px 46px 30px 35px;
  display: flex;
  justify-content: space-between;
  align-items: inherit;
  flex-wrap: nowrap;
}
.page-realm .main .content .content3 .inner .img {
  flex-basis: inherit;
  flex-shrink: 0;
  flex-grow: 1;
  max-width: 65%;
}
.page-realm .main .content .content3 .inner .body {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 1;
  margin-left: 40px;
  position: relative;
}
.page-realm .main .content .content3 .inner .body h4 {
  font-size: 1.42857rem;
  line-height: 1.5;
  color: #333;
  margin: 0 0 30px;
}
.page-realm .main .content .content3 .inner .body .text {
  font-size: 0.857rem;
  line-height: 2;
  color: #212121;
  margin: 0 0 2em;
}
.page-realm .main .content .content3 .inner .body .link {
  font-size: 0.857rem;
  line-height: 1.75;
  position: absolute;
  left: 0;
  bottom: 0;
}
.page-realm .main .content .content3 .inner .body .link a {
  color: #333;
  position: relative;
}
.page-realm .main .content .content3 .inner .body .link a::after {
  content: url(img/icon_blank.png);
  display: inline-block;
  margin-left: 5px;
}

.archive-work .main {
  max-width: 880px;
}
.archive-work h1 {
  margin: 0 0 48px;
}
.archive-work .works-tab {
  margin: 0 0 56px;
}
.archive-work .works-tab ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.archive-work .works-tab ul li {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 1;
}
.archive-work .works-tab ul li + li {
  margin-left: 2.35294%;
}
.archive-work .works-tab ul li a {
  display: block;
  padding: 10px;
  text-align: center;
  color: #000;
  font-weight: 700;
  border: solid 1px #999;
}
.archive-work .works-tab ul li a:hover {
  color: #fff;
  background: #000;
  border: solid 1px #000;
  text-decoration: none;
}
.archive-work .works-tab ul li.active a {
  color: #fff;
  background: #000;
  border: solid 1px #000;
}
.archive-work .works-list ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  margin-left: -3.235%;
}
.archive-work .works-list ul li {
  flex-basis: 30%;
  flex-shrink: 1;
  flex-grow: 0;
  margin: 0 0 20px 3.235%;
}
.archive-work .works-list ul li a {
  color: #333;
}
.archive-work .works-list ul li .img {
  height: 160px;
  background: #f7f7f7;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 10px;
}
.archive-work .works-list ul li .meta {
  font-size: 0.857rem;
  line-height: 1.75;
  color: #666;
  margin: 0 0 5px;
}
.archive-work .works-list ul li h2 {
  font-size: 1rem;
  line-height: 1.894;
  margin: 0 0 5px;
}

.page-vision {
  background: #f0f0f0;
  padding: 0 0 200px;
}
.page-vision h1 {
  display: none;
}
.page-vision .main {
  max-width: 1246px;
  margin: 0 auto;
}
.page-vision .main .content {
  display: flex;
  justify-content: space-between;
  align-items: inherit;
  flex-wrap: nowrap;
}
.page-vision .main .content .president {
  flex-basis: 480px;
  flex-shrink: 0;
  flex-grow: 0;
}
.page-vision .main .content .president .data {
  background: #000;
  color: #fff;
  padding: 20px 40px;
  position: relative;
  z-index: 1;
  margin: -10px 0 0 90px;
  max-width: 300px;
  box-sizing: border-box;
}
.page-vision .main .content .president .data .pos {
  font-size: 0.7142857rem;
  line-height: 1.75;
}
.page-vision .main .content .president .data h3 {
  font-size: 1.42857rem;
  line-height: 1.1;
  font-weight: 700;
}
.page-vision .main .content .text {
  margin: 120px 100px 40px 0;
  padding: 0 34px;
  color: #333;
  font-size: 1rem;
  line-height: 2;
}
.page-vision .main .content .text h2 {
  font-size: 1.357rem;
  line-height: 2;
  margin: 0 0 30px;
  font-weight: 700;
}
.page-vision .main .data-list {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 20px 60px 4px;
  box-sizing: border-box;
  background: #fff;
}
.page-vision .main .data-list dl {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  font-size: 1rem;
  line-height: 2;
}
.page-vision .main .data-list dl dt {
  flex-basis: 115px;
  flex-shrink: 0;
  flex-grow: 0;
  border-right: solid 1px #333;
  font-weight: 700;
  margin: 0 0 16px;
  box-sizing: border-box;
}
.page-vision .main .data-list dl dd {
  flex-basis: calc(100% - 115px);
  flex-shrink: 0;
  flex-grow: 0;
  max-width: calc(100% - 115px);
  margin: 0 0 16px;
  box-sizing: border-box;
  padding-left: 30px;
}

@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, .page-vision .main .data-list dl dd {
    flex-basis: calc(100% - 146px);
    max-width: calc(100% - 146px);
  }
}
.page-about dl {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  border-top: solid 1px #999;
}
.page-about dl dt {
  color: #000;
  flex-basis: 22%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
}
.page-about dl dd {
  color: #222;
  flex-basis: 78%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
}
.page-about dl dd p {
  margin: 0;
}
.page-about dl dd p + p {
  margin-top: 24px;
}
.page-about dl dd a {
  color: #333;
  text-decoration: underline;
}
.page-about dl dd a:hover {
  text-decoration: none;
}
.page-about dl dd a[href^=tel] {
  text-decoration: none;
}

.page-history dl {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  border-top: solid 1px #999;
}
.page-history dl dt {
  color: #000;
  flex-basis: 22%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
}
.page-history dl dd {
  color: #222;
  flex-basis: 78%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
}
.page-history dl dd p {
  margin: 0;
}
.page-history dl dd p + p {
  margin-top: 24px;
}

.page-group .main {
  max-width: 880px;
}
.page-group .contents {
  border-bottom: solid 1px #999;
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
  padding: 0 0 28px;
}
.page-group .contents:first-of-type {
  border-top: solid 1px #999;
}
.page-group .contents h2 {
  flex-basis: 22%;
  flex-shrink: 0;
  flex-grow: 0;
  color: #000;
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 700;
  margin: 28px 0 0;
}
.page-group .contents .data {
  flex-basis: 78%;
  flex-shrink: 0;
  flex-grow: 0;
  color: #222;
  font-size: 1rem;
  line-height: 1.75;
}
.page-group .contents .data h3 {
  margin: 28px 0 0;
  font-weight: 700;
}
.page-group .contents .data .text {
  margin: 28px 0 0;
}
.page-group .sales {
  border: none;
  padding: 0;
}
.page-group .sales .data {
  margin-top: 28px;
}
.page-group .employees h2 {
  margin-top: 14px;
}
.page-group .employees .data {
  margin-top: 14px;
}
.page-group .philosophy,
.page-group .slogan,
.page-group .guide {
  display: block;
  border: none;
}
.page-group .philosophy h2,
.page-group .slogan h2,
.page-group .guide h2 {
  background: #e8e8e8;
  padding: 10px;
}
.page-group .philosophy .data,
.page-group .slogan .data,
.page-group .guide .data {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
}
.page-group .philosophy .data .box,
.page-group .slogan .data .box,
.page-group .guide .data .box {
  flex-basis: 49%;
  flex-shrink: 0;
  flex-grow: 0;
  margin-left: 2%;
}
.page-group .philosophy .data .box:nth-of-type(2n+1),
.page-group .slogan .data .box:nth-of-type(2n+1),
.page-group .guide .data .box:nth-of-type(2n+1) {
  margin-left: 0;
}
.page-group .philosophy .data .box .text {
  padding-left: 2em;
  position: relative;
}
.page-group .philosophy .data .box .text::before {
  content: "１．";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
}
.page-group .guide .data .box {
  flex-basis: 32%;
  flex-shrink: 0;
  flex-grow: 0;
  margin-left: 2%;
}
.page-group .guide .data .box:nth-of-type(2n+1) {
  margin-left: 2%;
}
.page-group .guide .data .box:nth-of-type(3n+1) {
  margin-left: 0;
}

.page-team .main h1 {
  border-bottom: solid 1px #999;
  margin: 0 0 28px;
}
.page-team .main .team-tab {
  margin: 0 0 56px;
}
.page-team .main .team-tab ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.page-team .main .team-tab ul li {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 1;
}
.page-team .main .team-tab ul li + li {
  margin-left: 2.35294%;
}
.page-team .main .team-tab ul li a {
  display: block;
  padding: 10px 0;
  text-align: center;
  color: #000;
  font-weight: 700;
  border: solid 1px #999;
}
.page-team .main .team-tab ul li a:hover {
  color: #fff;
  background: #000;
  border: solid 1px #000;
  text-decoration: none;
}
.page-team .main .team {
  width: 100%;
  max-width: 640px;
  margin: 0 auto 76px;
  background: #f9f9f9;
  padding: 90px 50px 70px;
  box-sizing: border-box;
  position: relative;
}
.page-team .main .team h2 {
  font-size: 1.57rem;
  line-height: 1.75;
  font-weight: 700;
  color: #333;
  min-width: 94px;
  border-bottom: solid 2px #333;
  position: absolute;
  left: -40px;
  top: 28px;
}
.page-team .main .team .data .slogan {
  font-size: 1.42857rem;
  line-height: 1.5;
  color: #222;
  font-weight: 700;
  margin: 0 0 70px;
}
.page-team .main .team .data h3 {
  font-size: 1.142857rem;
  line-height: 1.75;
  color: #000;
  font-weight: 700;
  border-bottom: dotted 1px #222;
  padding: 0 0 5px;
  margin: 0 0 10px;
}
.page-team .main .team .data .text {
  font-size: 1rem;
  line-height: 2;
  color: #222;
}

.page-privacy .main h1 {
  margin: 0 0 48px;
}
.page-privacy .main .content h2 {
  font-size: 1.714rem;
  line-height: 1.75;
  font-weight: 700;
  margin: 80px 0 40px;
  padding-bottom: 20px;
  position: relative;
}
.page-privacy .main .content h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 6px;
  background: #000;
  position: absolute;
  left: 0;
  bottom: 0;
}
.page-privacy .main .content h3 {
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 700;
  margin: 30px 0 10px;
}
.page-privacy .main .content p {
  font-size: 1rem;
  line-height: 2;
  color: #222;
  margin: 0 0 24px;
}
.page-privacy .main .content dl {
  color: #222;
}
.page-privacy .main .content dl dd {
  margin: 0 0 48px;
}

.page-partner {
  padding-bottom: 1px;
  background-image: url(img/bg.png);
  background-repeat: repeat-x;
  background-position: center 580px;
}
.page-partner .main {
  max-width: 720px;
}
.page-partner h1 {
  margin: 0 20px 48px;
}
.page-partner h2 {
  font-size: 1.714rem;
  line-height: 1.75;
  font-weight: 700;
  color: #000;
  margin: 0 20px 24px;
}
.page-partner p {
  color: #222;
  font-size: 1rem;
  line-height: 2;
  margin: 0 20px;
}
.page-partner ul {
  margin: 100px 20px 76px;
  background: #fff;
  box-shadow: 0 0 10px #ccc;
  padding: 10px 28px;
  color: #222;
  list-style-type: none !important;
}
.page-partner ul li {
  padding: 7px 0 7px 25px;
  position: relative;
}
.page-partner ul li::before {
  content: "■";
  display: block;
  position: absolute;
  left: 0;
  top: 7px;
}
.page-partner .btn a {
  display: block;
  width: 100%;
  background: #000;
  color: #fff;
  border: none;
  font-size: 1.142857rem;
  line-height: 1.75;
  font-weight: 700;
  text-align: center;
  padding: 26px;
  box-sizing: border-box;
  transition: 0.2s;
}
.page-partner .btn a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.page-recruit .main h1 {
  margin: 0 0 48px;
}
.page-recruit .main .job-tab {
  margin: 0 0 56px;
}
.page-recruit .main .job-tab ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.page-recruit .main .job-tab ul li {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 1;
}
.page-recruit .main .job-tab ul li + li {
  margin-left: 2.35294%;
}
.page-recruit .main .job-tab ul li a {
  display: block;
  padding: 10px;
  text-align: center;
  color: #000;
  font-weight: 700;
  border: solid 1px #999;
}
.page-recruit .main .job-tab ul li a:hover {
  text-decoration: none;
  background: #111;
  color: #fff;
}
.page-recruit .main .job-tab ul li.active a {
  color: #fff;
  background: #000;
  border: solid 1px #000;
  text-decoration: none;
}
.page-recruit .main .job-text {
  margin: 0 0 56px;
}
.page-recruit .main .job-data {
  margin: 0 0 28px;
}
.page-recruit .main .job-data dl {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  border-top: solid 1px #999;
}
.page-recruit .main .job-data dl dt {
  color: #000;
  flex-basis: 22%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
  font-weight: 700;
}
.page-recruit .main .job-data dl dd {
  color: #222;
  flex-basis: 78%;
  flex-shrink: 0;
  flex-grow: 0;
  border-bottom: solid 1px #999;
  margin: 0;
  padding: 28px 0;
  box-sizing: border-box;
}
.page-recruit .main .job-data dl dd p + p {
  margin: 24px 0 0;
}
.page-recruit .main .bikou {
  margin: 0 0 56px;
}
.page-recruit .main .btn a {
  display: block;
  width: 100%;
  background: #000;
  color: #fff;
  border: none;
  font-size: 1.142857rem;
  line-height: 1.75;
  font-weight: 700;
  text-align: center;
  padding: 26px;
  box-sizing: border-box;
  transition: 0.2s;
}
.page-recruit .main .btn a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.page-contact .form-control {
  width: 100%;
  padding: 22px;
  font-size: 1.142857rem;
  line-height: 1.75;
  border: none;
  background: #f5f5f5;
  box-sizing: border-box;
}
.page-contact .form-control:focus {
  border: none;
  outline-offset: 0;
  outline: -webkit-focus-ring-color auto 0;
}
.page-contact input[name=yubin1] {
  width: 158px;
}
.page-contact input[name=yubin2] {
  width: 217px;
}
.page-contact select[name=pref] {
  width: 460px;
}
.page-contact .yubin_btn {
  color: #000;
  text-decoration: underline;
  font-weight: 700;
}
.page-contact dl {
  color: #222;
}
.page-contact dl dt {
  font-weight: 700;
  margin: 0 0 20px;
}
.page-contact dl dt span {
  font-size: 0.857rem;
  line-height: 1.75;
}
.page-contact dl dd {
  margin: 0 0 48px;
}
.page-contact .mwform-radio-field {
  margin-right: 20px;
}
.page-contact .mwform-radio-field:last-of-type {
  margin-right: 0;
}
.page-contact .mwform-radio-field input[type=radio] {
  display: none;
}
.page-contact .mwform-radio-field label {
  position: relative;
  padding-left: 20px;
}
.page-contact .mwform-radio-field label span::before {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border: solid 1px #000;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0;
}
.page-contact .mwform-radio-field label input[type=radio]:checked + span::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  background: #000;
  border-radius: 50%;
  position: absolute;
  left: 4px;
  top: 4px;
}
.page-contact .form-action {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
}
.page-contact .form-action button {
  flex-basis: 100%;
  flex-shrink: 1;
  flex-grow: 1;
  background: #000;
  color: #fff;
  border: none;
  font-size: 1.142857rem;
  line-height: 1.75;
  font-weight: 700;
  text-align: center;
  padding: 26px;
  box-sizing: border-box;
  transition: 0.2s;
  cursor: pointer;
}
.page-contact .form-action button + button {
  margin-left: 30px;
}
.page-contact .form-action button.btn-back {
  background: #333;
}
.page-contact .form-action button:hover {
  background: #666;
}
.page-contact .mw_wp_form_confirm .yubin_btn {
  display: none;
}
.page-contact .mw_wp_form_confirm dl dd {
  padding: 22px;
  background: #f5f5f5;
}

.archive-information h1 {
  margin: 0 0 48px;
}
.archive-information ul {
  border-top: solid 1px #999;
}
.archive-information ul li {
  border-bottom: solid 1px #999;
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: nowrap;
}
.archive-information ul li .date {
  flex-basis: 22%;
  flex-shrink: 0;
  flex-grow: 0;
  padding: 28px 0;
}
.archive-information ul li h3 {
  flex-basis: 78%;
  flex-shrink: 0;
  flex-grow: 0;
  padding: 28px 0;
}

.archive-topics ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  margin-left: -3.235%;
}
.archive-topics ul li {
  flex-basis: 30%;
  flex-shrink: 1;
  flex-grow: 0;
  margin: 0 0 20px 3.235%;
}
.archive-topics ul li a {
  color: #333;
}
.archive-topics ul li .img {
  height: 160px;
  background: #f7f7f7;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 10px;
}
.archive-topics ul li .meta {
  font-size: 0.857rem;
  line-height: 1.75;
  color: #666;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 5px;
}
.archive-topics ul li .meta .terms {
  margin-right: 5px;
}
.archive-topics ul li h3 {
  font-size: 1rem;
  line-height: 1.894;
}

.single-post h1 {
  font-size: 1.714rem;
  line-height: 1.75;
  font-weight: 700;
  margin: 100px 0 48px;
  padding-bottom: 17px;
  position: relative;
}
.single-post h1::after {
  content: "";
  display: block;
  width: 60px;
  height: 6px;
  background: #000;
  position: absolute;
  left: 0;
  bottom: 0;
}
.single-post .meta {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
  color: #333;
  margin: 0 0 48px;
}
.single-post .meta .date {
  margin-right: 40px;
}
.single-post .meta .terms .term {
  display: inline-block;
  margin-right: 10px;
}
.single-post .content {
  overflow: hidden;
  font-size: 1.142857rem;
  line-height: 1.75;
}
.single-post .content p {
  margin: 1.4em 0;
}
.single-post .navigation ul {
  display: flex;
  justify-content: center;
  align-items: inherit;
  flex-wrap: nowrap;
}
.single-post .navigation ul li a {
  background: #000;
  color: #fff;
  font-weight: bold;
  padding: 0 40px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  transition: background 0.2s;
}
.single-post .navigation ul li a:hover {
  text-decoration: none;
  background: #e4e4e4;
  color: #000;
}
.single-post .navigation ul li.prev, .single-post .navigation ul li.next {
  font-size: 1.142857rem;
  line-height: 1.75;
}

.page-sitemap .main .content a {
  color: #333;
}
.page-sitemap .main .content h3 {
  margin: 36px 0 14px;
  font-size: 1.142857rem;
  line-height: 1.75;
}
.page-sitemap .main .content ul {
  display: flex;
  justify-content: flex-start;
  align-items: inherit;
  flex-wrap: wrap;
  font-size: 1rem;
  line-height: 1.75;
  padding: 0;
  list-style-type: none;
}
.page-sitemap .main .content ul li {
  flex-basis: 32%;
  flex-shrink: 0;
  flex-grow: 0;
  margin: 0 0 14px 2%;
}
.page-sitemap .main .content ul li:nth-of-type(3n+1) {
  margin-left: 0;
}

@media screen and (max-width: 768px) {
  a[href^=tel] {
    pointer-events: auto;
  }
  .header-wrap {
    background: #000;
    color: #fff;
    padding: 10px;
    margin: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
  }
  .header-wrap header .header {
    width: 90px;
  }
  .header-wrap nav .nav .sp-nav {
    position: absolute;
    right: 0;
    top: 0;
    width: 44px;
    height: 44px;
  }
  .header-wrap nav .nav .sp-nav span {
    display: block;
    height: 0;
    border-bottom: solid 1px #fff;
    position: absolute;
    left: 14px;
    right: 14px;
    transition: 0.2s;
  }
  .header-wrap nav .nav .sp-nav span:nth-of-type(1) {
    top: 14px;
  }
  .header-wrap nav .nav .sp-nav span:nth-of-type(2) {
    top: 50%;
  }
  .header-wrap nav .nav .sp-nav span:nth-of-type(3) {
    bottom: 13px;
  }
  .header-wrap nav .nav .sp-nav.active span:nth-of-type(1) {
    top: 22px;
    transform: rotate(45deg);
  }
  .header-wrap nav .nav .sp-nav.active span:nth-of-type(2) {
    transform: scale(0);
  }
  .header-wrap nav .nav .sp-nav.active span:nth-of-type(3) {
    bottom: 21px;
    transform: rotate(-45deg);
  }
  .header-wrap nav .nav ul {
    display: none;
    position: absolute;
    top: 44px;
    left: 0;
    right: 0;
    background: #000;
    padding: 0;
    z-index: 2;
  }
  .header-wrap nav .nav ul li {
    border-top: solid 1px #fff;
  }
  .header-wrap nav .nav ul li a {
    display: block;
    padding: 10px 20px;
  }
  .header-wrap nav .nav ul li a::before {
    display: none;
  }
  .header-wrap nav .nav ul li.active a::after {
    display: none;
  }
  .header-wrap nav .nav ul li.has-sub > a {
    position: relative;
  }
  .header-wrap nav .nav ul li.has-sub > a::before, .header-wrap nav .nav ul li.has-sub > a::after {
    content: "";
    display: block;
    width: 11px;
    height: 0;
    border-bottom: solid 1px #fff;
    position: absolute;
    left: inherit;
    bottom: inherit;
    right: 10px;
    top: 50%;
  }
  .header-wrap nav .nav ul li.has-sub > a::after {
    transform: rotate(90deg);
  }
  .header-wrap nav .nav ul li.has-sub > a.active::after {
    transform: rotate(0);
    top: 50%;
  }
  .header-wrap nav .nav ul li.has-sub ul {
    position: static;
    visibility: visible;
    opacity: 1;
    display: none;
    padding: 0;
    background: #333;
  }
  .main h1 {
    font-size: 1.42857rem;
    line-height: 1.75;
    margin: 0 0 24px;
  }
  .main {
    width: auto;
    max-width: inherit;
    margin: 20px 6.25% 50px;
  }
  .main h1 {
    margin: 0 0 20px;
  }
  .footer-wrap {
    padding: 0;
  }
  .footer-wrap .footer {
    width: auto;
    max-width: inherit;
    display: block;
  }
  .footer-wrap .footer .footer-credit {
    padding: 20px 20px 5px;
  }
  .footer-wrap .footer .footer-credit .tel {
    display: block;
  }
  .footer-wrap .footer .footer-credit a {
    color: #fff;
  }
  .footer-wrap .footer .footer-nav ul {
    display: block;
  }
  .footer-wrap .footer .footer-nav ul li::before {
    display: none;
  }
  .footer-wrap .footer .footer-nav ul li a {
    padding: 12px 20px 0;
    display: block;
  }
  .footer-wrap .footer .footer-nav ul li + li a {
    padding: 0 20px;
  }
  .footer-wrap .footer .footer-nav ul li:last-of-type a {
    padding: 0 20px 20px;
  }
  .copyright {
    text-align: center;
  }
  .copyright .mark {
    font-size: 1.42857rem;
    line-height: 1;
    vertical-align: middle;
  }
  .copyright .text {
    font-size: 0.7142857rem;
    line-height: 3.333;
  }
  .content-header .content-header-inner {
    padding-top: 127.33%;
  }
  .content-header .content-header-inner .layer-bg {
    width: 77.33%;
  }
  .content-header .content-header-inner .layer-img {
    width: 80%;
  }
  .content-header .content-header-inner .layer-img .pc {
    display: none;
  }
  .content-header .content-header-inner .layer-img .sp {
    display: block;
  }
  .content-header .content-header-inner .layer-text {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .content-header .content-header-inner .layer-text h1 {
    margin-top: 0;
    font-size: 2.142857rem;
    line-height: 1.1;
  }
  .content-header .content-header-inner .layer-text h2 {
    font-size: 1.42857rem;
    line-height: 1.2;
  }
  .content-header .content-header-inner .layer-text p {
    font-size: 1.142857rem;
    line-height: 1.2;
  }
  .content-header .content-header-inner .layer-scroll {
    bottom: 140px;
    left: -170px;
  }
  .content-header .content-header-inner .layer-scroll .scroll-down {
    width: 300px;
  }
  .content-header .content-header-inner .layer-scroll .scroll-down .text {
    font-size: 0.7857rem;
    line-height: 1;
  }
  .page-template-default .main .content {
    font-size: 1rem;
    line-height: 1.75;
  }
  .page-template-default .main .content h3 {
    font-size: 1.142857rem;
    line-height: 1.75;
    margin: 0 0 10px;
  }
  .body-index .header-wrap {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    z-index: 10;
    background: transparent;
  }
  .body-index .page-front .content-header {
    margin: 0 0 50px;
  }
  .body-index .page-front .content-header .content-header-inner {
    padding-top: 117.3%;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg {
    width: 77.33%;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info {
    left: 10px;
    bottom: 5px;
    right: 10px;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title {
    font-size: 0.7142857rem;
    line-height: 1.75;
    margin: 0 0 5px;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-title h2 {
    font-size: 0.7142857rem;
    line-height: 1.75;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-body {
    font-size: 0.7142857rem;
    line-height: 1.5;
    height: 30px;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-body ul li {
    display: flex;
    justify-content: flex-start;
    align-items: inherit;
    flex-wrap: nowrap;
  }
  .body-index .page-front .content-header .content-header-inner .layer-bg .header-info .header-info-body ul li .date {
    flex-basis: 60px;
    flex-shrink: 0;
    flex-grow: 0;
    margin: 0;
  }
  .body-index .page-front .content-header .content-header-inner .layer-img {
    width: 80%;
  }
  .body-index .page-front .content-header .content-header-inner .layer-img .pc {
    display: none;
  }
  .body-index .page-front .content-header .content-header-inner .layer-img .sp {
    display: block;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text h1 {
    margin-top: 0;
    font-size: 2.142857rem;
    line-height: 1.1;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text h2 {
    font-size: 1.42857rem;
    line-height: 1.2;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text .layer-scroll {
    bottom: 40px;
    left: -170px;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text .layer-scroll .scroll-down {
    width: 300px;
  }
  .body-index .page-front .content-header .content-header-inner .layer-text .layer-scroll .scroll-down .text {
    font-size: 0.7857rem;
    line-height: 1;
  }
  .body-index .page-front .front-topics {
    width: auto;
    max-width: inherit;
    margin: 0 3.125% 50px;
  }
  .body-index .page-front .front-topics .front-topics-title {
    margin: 0 0 20px;
  }
  .body-index .page-front .front-topics .front-topics-title h2 {
    font-size: 1.42857rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-topics .front-topics-title p a {
    font-size: 0.857rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-topics .front-topics-body {
    overflow-x: auto;
  }
  .body-index .page-front .front-topics .front-topics-body ul li {
    flex-basis: 45%;
    flex-shrink: 0;
    flex-grow: 0;
    margin-bottom: 20px;
  }
  .body-index .page-front .front-topics .front-topics-body ul li + li {
    margin-left: 15px;
  }
  .body-index .page-front .front-catch {
    margin: 0 3.125% 40px;
  }
  .body-index .page-front .front-catch h2 {
    font-size: 1.42857rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-contents-menu {
    background: #f0f0f0;
    padding: 40px 0 50px;
  }
  .body-index .page-front .front-contents-menu h2 {
    font-size: 1.2857rem;
    line-height: 1.75;
    font-weight: 700;
    padding-left: 36px;
    position: relative;
    margin: 0 0 30px;
    letter-spacing: 2px;
  }
  .body-index .page-front .front-contents-menu h2::before {
    content: "";
    display: block;
    width: 27px;
    height: 1px;
    background: #000;
    position: absolute;
    left: 0;
    top: 50%;
  }
  .body-index .page-front .front-contents-menu ul {
    display: flex;
    justify-content: space-between;
    align-items: inherit;
    flex-wrap: wrap;
  }
  .body-index .page-front .front-contents-menu ul li {
    flex-basis: 50%;
    flex-shrink: 1;
    flex-grow: 0;
    margin: 0 0 30px;
  }
  .body-index .page-front .front-contents-menu ul li a h3 {
    font-size: 0.92857rem;
    line-height: 1.75;
    padding: 0 0 10px;
    margin: 0 0 10px;
  }
  .body-index .page-front .front-contents-menu ul li a .img {
    margin: 0 0 5px;
  }
  .body-index .page-front .front-contents-menu ul li a .img .mess {
    font-size: 1rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-contents-menu ul li a .img .mess span {
    margin-bottom: 20px;
  }
  .body-index .page-front .front-contents-menu ul li a .text {
    font-size: 1rem;
    line-height: 1.75;
  }
  .page-realm {
    background-position: center 980px;
  }
  .page-realm .main {
    max-width: inherit;
    margin: 40px auto 50px;
  }
  .page-realm .main .content .content1 {
    max-width: inherit;
    margin: 0 6.25% 40px;
    padding: 10px;
    font-size: 1rem;
    line-height: 2;
    box-shadow: 5px 5px 0 #bfbfbf;
  }
  .page-realm .main .content .content2 {
    margin: 0 6.25% 40px;
    display: block;
  }
  .page-realm .main .content .content2 .inner {
    max-width: inherit;
    padding: 10px;
  }
  .page-realm .main .content .content2 .inner + .inner {
    margin-left: 0;
    margin-top: 30px;
  }
  .page-realm .main .content .content2 .inner h3 {
    font-size: 1.142857rem;
    line-height: 1.75;
    padding: 0 0 10px;
    margin: 0 0 10px;
  }
  .page-realm .main .content .content2 .inner ul {
    display: block;
    font-size: 1rem;
    line-height: 1.5;
  }
  .page-realm .main .content .content2 .inner ul li {
    max-width: inherit;
  }
  .page-realm .main .content .content2:not(.column-1) .inner ul {
    display: block;
  }
  .page-realm .main .content .content3 .inner {
    margin: 0 6.25% 30px;
    padding: 20px;
    display: block;
  }
  .page-realm .main .content .content3 .inner .img {
    max-width: inherit;
    text-align: center;
    margin: 0 0 10px;
  }
  .page-realm .main .content .content3 .inner .body {
    margin-left: 0;
  }
  .page-realm .main .content .content3 .inner .body h4 {
    font-size: 1.142857rem;
    line-height: 1.5;
    margin: 0 0 10px;
  }
  .page-realm .main .content .content3 .inner .body h4 img {
    max-width: 50%;
  }
  .page-realm .main .content .content3 .inner .body .text {
    margin: 0 0 10px;
  }
  .page-realm .main .content .content3 .inner .body .link {
    position: static;
  }
  .archive-work .main {
    max-width: inherit;
  }
  .archive-work .works-tab {
    margin: 0 0 10px;
  }
  .archive-work .works-tab ul {
    display: flex;
    justify-content: flex-start;
    align-items: inherit;
    flex-wrap: wrap;
  }
  .archive-work .works-tab ul li {
    flex-basis: 30%;
    flex-shrink: 0;
    flex-grow: 0;
    margin: 0 0 20px 5%;
    overflow: hidden;
  }
  .archive-work .works-tab ul li + li {
    margin-left: 5%;
  }
  .archive-work .works-tab ul li:nth-of-type(3n+1) {
    margin-left: 0;
  }
  .archive-work .works-tab ul li a {
    height: 100%;
    box-sizing: border-box;
  }
  .archive-work .works-list ul {
    display: block;
    margin-left: 0;
  }
  .archive-work .works-list ul li {
    margin: 0 0 20px;
    padding: 0 0 15px;
    border-bottom: solid 1px #ccc;
    overflow: hidden;
  }
  .archive-work .works-list ul li .img {
    width: 40%;
    float: left;
    height: auto;
    margin: 0 10px 10px 0;
  }
  .archive-work .works-list ul li h2 {
    height: auto !important;
  }
  .page-vision {
    padding: 0 0 30px;
  }
  .page-vision .main {
    max-width: inherit;
    margin: 0;
  }
  .page-vision .main .content {
    display: block;
  }
  .page-vision .main .content .president {
    margin: 0 0 20px;
  }
  .page-vision .main .content .president .data {
    padding: 10px 20px;
    margin: -10px 20px 0;
    max-width: inherit;
  }
  .page-vision .main .content .president .data .pos {
    font-size: 0.7142857rem;
    line-height: 1.75;
  }
  .page-vision .main .content .president .data h3 {
    font-size: 1.42857rem;
    line-height: 1.1;
    font-weight: 700;
  }
  .page-vision .main .content .text {
    margin: 0 3.125% 20px;
    padding: 0;
  }
  .page-vision .main .content .text h2 {
    font-size: 1.142857rem;
    line-height: 2;
    margin: 0 0 30px;
  }
  .page-vision .main .data-list {
    width: auto;
    max-width: inherit;
    margin: 0 3.125%;
    padding: 20px 3.125% 10px;
  }
  .page-vision .main .data-list dl {
    display: block;
  }
  .page-vision .main .data-list dl dt {
    border-right: none;
    border-bottom: solid 1px #000;
    margin: 0 0 5px;
  }
  .page-vision .main .data-list dl dd {
    max-width: inherit;
    margin: 0 0 15px;
    padding-left: 0;
  }
  .page-about dl {
    display: block;
  }
  .page-about dl dt {
    padding: 14px 0 0;
    border-bottom: none;
  }
  .page-about dl dd {
    padding: 5px 0 14px;
  }
  .page-about dl dd a {
    color: #2e93d4;
  }
  .page-about dl dd a[href^=tel] {
    text-decoration: underline;
  }
  .page-history dl {
    display: block;
  }
  .page-history dl dt {
    padding: 14px 0 0;
    border-bottom: none;
  }
  .page-history dl dd {
    padding: 5px 0 14px;
  }
  .page-group .main {
    max-width: inherit;
  }
  .page-group .contents {
    display: block;
    padding: 0 0 14px;
  }
  .page-group .contents h2 {
    margin: 14px 0 0;
  }
  .page-group .contents .data h3 {
    margin: 14px 0 0;
  }
  .page-group .sales .data {
    margin-top: 14px;
  }
  .page-group .philosophy .data,
  .page-group .slogan .data,
  .page-group .guide .data {
    display: block;
  }
  .page-group .philosophy .data .box,
  .page-group .slogan .data .box,
  .page-group .guide .data .box {
    margin-left: 0;
  }
  .page-group .guide .data .box:nth-of-type(2n+1) {
    margin-left: 0;
  }
  .page-team .main .team-tab {
    margin: 0 0 50px;
  }
  .page-team .main .team-tab ul {
    display: block;
  }
  .page-team .main .team-tab ul li + li {
    margin: 10px 0 0;
  }
  .page-team .main .team {
    width: auto;
    max-width: inherit;
    margin: 0 auto 30px;
    padding: 40px 20px 20px;
  }
  .page-team .main .team h2 {
    font-size: 1.2857rem;
    line-height: 1.75;
    left: 10px;
    top: -15px;
  }
  .page-team .main .team .data .slogan {
    font-size: 1.142857rem;
    line-height: 1.5;
    margin: 0 0 30px;
  }
  .page-team .main .team .data h3 {
    font-size: 1rem;
    line-height: 1.75;
    border-bottom: dotted 1px #222;
    padding: 0 0 5px;
    margin: 0 0 10px;
  }
  .page-team .main .team .data .text {
    font-size: 0.857rem;
    line-height: 2;
    color: #222;
  }
  .page-privacy .main h1 {
    margin: 0 0 24px;
  }
  .page-privacy .main .content h2 {
    font-size: 1.142857rem;
    line-height: 1.75;
    margin: 50px 0 24px;
  }
  .page-privacy .main .content h2::after {
    height: 3px;
  }
  .page-privacy .main .content h3 {
    font-size: 1rem;
    line-height: 1.75;
    margin: 24px 0 12px;
  }
  .page-privacy .main .content p {
    font-size: 1rem;
    line-height: 2;
    margin: 0 0 12px;
  }
  .page-privacy .main .content dl dd {
    margin: 0 0 24px;
  }
  .page-partner .main {
    margin: 20px 0 50px;
  }
  .page-partner h1 {
    margin: 0 6.25% 24px;
  }
  .page-partner h2 {
    font-size: 1rem;
    line-height: 1.75;
    margin: 0 6.25% 12px;
  }
  .page-partner p {
    margin: 0 6.25%;
  }
  .page-partner ul {
    margin: 50px 6.25% 38px;
    padding: 10px 14px;
    font-size: 0.857rem;
    line-height: 1.75;
  }
  .page-partner .btn a {
    font-size: 0.857rem;
    line-height: 1.75;
    font-weight: 500;
    padding: 15px;
  }
  .page-recruit .main h1 {
    margin: 0 0 24px;
  }
  .page-recruit .main .job-tab {
    margin: 0 0 28px;
  }
  .page-recruit .main .job-text {
    margin: 0 0 28px;
  }
  .page-recruit .main .job-data {
    margin: 0 0 14px;
  }
  .page-recruit .main .job-data dl {
    display: block;
  }
  .page-recruit .main .job-data dl dt {
    padding: 14px 0 0;
    border-bottom: none;
  }
  .page-recruit .main .job-data dl dd {
    padding: 14px 0;
  }
  .page-recruit .main .job-data dl dd p + p {
    margin: 19px 0 0;
  }
  .page-recruit .main .bikou {
    margin: 0 0 56px;
  }
  .page-recruit .main .btn a {
    display: block;
    width: 100%;
    background: #000;
    color: #fff;
    border: none;
    font-size: 1.142857rem;
    line-height: 1.75;
    font-weight: 700;
    text-align: center;
    padding: 26px;
    box-sizing: border-box;
    transition: 0.2s;
  }
  .page-recruit .main .btn a:hover {
    text-decoration: none;
    opacity: 0.8;
  }
  .page-contact .form-control {
    padding: 10px;
  }
  .page-contact input[name=yubin1] {
    width: 30%;
  }
  .page-contact input[name=yubin2] {
    width: 40%;
  }
  .page-contact select[name=pref] {
    width: 100%;
  }
  .page-contact dl dt {
    margin: 0 0 5px;
  }
  .page-contact .mwform-radio-field {
    margin-right: 0;
    display: block;
  }
  .page-contact .horizontal-item + .horizontal-item {
    margin: 0;
  }
  .page-contact .form-action button {
    font-size: 0.857rem;
    line-height: 1.75;
    font-weight: 500;
    padding: 20px;
  }
  .page-contact .form-action button + button {
    margin-left: 30px;
  }
  .page-contact .form-action button.btn-back {
    background: #333;
  }
  .page-contact .form-action button:hover {
    background: #666;
  }
  .page-contact .mw_wp_form_confirm dl dd {
    padding: 10px;
  }
  .archive-topics ul {
    display: flex;
    justify-content: space-between;
    align-items: inherit;
    flex-wrap: wrap;
    margin-left: 0;
  }
  .archive-topics ul li {
    flex-basis: 48%;
    flex-shrink: 1;
    flex-grow: 0;
    margin: 0 0 20px;
  }
  .single-post h1 {
    font-size: 1.714rem;
    line-height: 1.75;
    font-weight: 700;
    margin: 100px 0 48px;
    padding-bottom: 17px;
    position: relative;
  }
  .single-post h1::after {
    content: "";
    display: block;
    width: 60px;
    height: 6px;
    background: #000;
    position: absolute;
    left: 0;
    bottom: 0;
  }
  .single-post .meta {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: nowrap;
    color: #333;
    margin: 0 0 48px;
  }
  .single-post .meta .date {
    margin-right: 40px;
  }
  .single-post .meta .terms .term {
    display: inline-block;
    margin-right: 10px;
  }
  .single-post .content {
    overflow: hidden;
    font-size: 1.142857rem;
    line-height: 1.75;
  }
  .single-post .content p {
    margin: 1.4em 0;
  }
  .single-post .navigation ul {
    display: flex;
    justify-content: center;
    align-items: inherit;
    flex-wrap: nowrap;
  }
  .single-post .navigation ul li a {
    background: #000;
    color: #fff;
    font-weight: bold;
    padding: 0 40px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    transition: background 0.2s;
  }
  .single-post .navigation ul li a:hover {
    text-decoration: none;
    background: #e4e4e4;
    color: #000;
  }
  .single-post .navigation ul li.prev, .single-post .navigation ul li.next {
    font-size: 1.142857rem;
    line-height: 1.75;
  }
  .page-sitemap .main .content a {
    color: #333;
  }
  .page-sitemap .main .content h3 {
    margin: 36px 0 14px;
    font-size: 1.142857rem;
    line-height: 1.75;
  }
  .page-sitemap .main .content ul {
    display: flex;
    justify-content: flex-start;
    align-items: inherit;
    flex-wrap: wrap;
    font-size: 1rem;
    line-height: 1.75;
    padding: 0;
    list-style-type: none;
  }
  .page-sitemap .main .content ul li {
    flex-basis: 32%;
    flex-shrink: 0;
    flex-grow: 0;
    margin: 0 0 14px 2%;
  }
  .page-sitemap .main .content ul li:nth-of-type(3n+1) {
    margin-left: 0;
  }
}
@keyframes scrollLine {
  0% {
    transform: translateX(100%);
  }
  5% {
    transform: translateX(100%);
  }
  45% {
    transform: translateX(0);
  }
  55% {
    transform: translateX(0);
  }
  95% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(-100%);
  }
}
.body-index .page-front .front-movie {
  width: 100%;
  max-width: 680px;
  margin: 0 auto 122px;
}
.body-index .page-front .front-movie .front-movie-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0 0 65px;
}
.body-index .page-front .front-movie .front-movie-title h2 {
  font-size: 1.857rem;
  line-height: 1.75;
  font-weight: 700;
  color: #333;
}
.body-index .page-front .front-movie .front-movie-title p a {
  font-size: 1rem;
  line-height: 1.75;
  color: #333;
  text-decoration: underline;
}
.body-index .page-front .front-movie .front-movie-title p a:hover {
  text-decoration: none;
}
.body-index .page-front .front-movie .front-movie-body {
  position: relative;
  padding-top: 56.25%;
}
.body-index .page-front .front-movie .front-movie-body iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.body-index .page-front .front-movie .front-movie-caption {
  text-align: center;
  padding: 10px;
}

@media screen and (max-width: 768px) {
  .body-index .page-front .front-movie {
    width: auto;
    max-width: inherit;
    margin: 0 3.125% 50px;
  }
  .body-index .page-front .front-movie .front-movie-title {
    margin: 0 0 20px;
  }
  .body-index .page-front .front-movie .front-movie-title h2 {
    font-size: 1.42857rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-movie .front-movie-title p a {
    font-size: 0.857rem;
    line-height: 1.75;
  }
  .body-index .page-front .front-movie .front-movie-body {
    overflow-x: auto;
  }
  .body-index .page-front .front-movie .front-movie-body ul li {
    flex-basis: 45%;
    flex-shrink: 0;
    flex-grow: 0;
    margin-bottom: 20px;
  }
  .body-index .page-front .front-movie .front-movie-body ul li + li {
    margin-left: 15px;
  }
}
.page-template-no_header_footer {
  font-size: 1.142857rem;
  line-height: 1.75;
}
.page-template-no_header_footer .mb0 {
  margin-bottom: 0;
}
.page-template-no_header_footer .mb0 figure {
  margin-bottom: 0;
}
.page-template-no_header_footer .mb0 + * figure {
  margin-top: 0;
}
.page-template-no_header_footer .main {
  margin-top: 50px;
  margin-bottom: 50px;
}
.page-template-no_header_footer .main h1 {
  margin-bottom: 30px;
}
.page-template-no_header_footer .main .content h2 {
  font-weight: 700;
  font-size: 1.714rem;
  line-height: 1.75;
  margin-bottom: 10px;
}
.page-template-no_header_footer .main .content .marker {
  background: linear-gradient(transparent 50%, #fff899 50%);
}
.page-template-no_header_footer .main .content p {
  margin: 1em 0 1.5em;
}
.page-template-no_header_footer .main .content p:first-child {
  margin-top: 0;
}
.page-template-no_header_footer .main .content p:last-child {
  margin-bottom: 0;
}
.page-template-no_header_footer .main .content .link-btn {
  margin: 50px 20px 20px;
}
.page-template-no_header_footer .main .content .link-btn a {
  display: block;
  background: #e0234f;
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 10px;
}

.wp-block-separator {
  border-style: solid;
  border-width: 1px;
  border-bottom: none;
}

@media screen and (max-width: 768px) {
  .page-template-no_header_footer {
    font-size: 1rem;
    line-height: 1.75;
  }
  .page-template-no_header_footer .main {
    margin: 30px 0 30px;
  }
  .page-template-no_header_footer .main h1 {
    margin-bottom: 20px;
    text-align: center;
  }
  .page-template-no_header_footer .main .content {
    margin-left: 10px;
    margin-right: 10px;
  }
  .page-template-no_header_footer .main .content h2 {
    font-size: 1.42857rem;
    line-height: 1.75;
  }
  .page-template-no_header_footer .main .content .link-btn {
    margin: 30px 0 10px;
  }
}/*# sourceMappingURL=style.css.map */
/*
2025.07.23
*/
.group_logo{
	width:40%;
}
@media screen and (max-width: 768px) {
	.group_logo{
		width:50%;
	}
}

/* ================================
   Base
================================ */
*{ box-sizing: border-box; }

body{
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
  color: #111;
  background: #fff;
}



/* ================================
   Hero (Full width)
================================ */
.hero-wide{
  position: relative;
  width: 100%;
  margin-left:0;
  margin-right:0;
  overflow: hidden;
  background: #000;

  height: 85svh;
  min-height: 520px;
  max-height: 860px;
}

.hero-wide__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
}

.hero-wide::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(0,0,0,.62),
    rgba(0,0,0,.22) 55%,
    rgba(0,0,0,.08)
  );
}

/* センター配置 */
.hero-wide__overlay{
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  place-items: center;
  padding: clamp(20px, 4vw, 56px);
  text-align: center;
}

/* ================================
   Catch: 1文字ずつ “つながる” → 全体が “ひろがる＋少し拡大”
================================ */
.hero-wide__catch{
  margin: 0;
  color: #fff;
  font-weight: 800;
  line-height: 1.12;
  font-size: clamp(34px, 5.6vw, 64px);
  text-shadow: 0 10px 28px rgba(0,0,0,.35);

  display: inline-block;
  position: relative;

  letter-spacing: -0.08em;  /* つながる */
  transform: scale(0.96);   /* 最初少し小さく */
}

.hero-wide__catch .char{
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
  animation: charIn .55s cubic-bezier(.2,.9,.2,1) forwards;
  animation-delay: calc(var(--i) * 0.06s + 0.12s);
}

.hero-wide__catch.is-typed{
  animation: spacingOut .75s ease 1.05s forwards;
}

/* “ひろがる”下線 */
.hero-wide__catch::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -12px;
  height: 3px;
  width: 72%;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  opacity: 0;
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  animation: underlineGrow .7s ease 1.2s forwards;
}

@keyframes charIn{
  to{ opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes spacingOut{
  to{
    letter-spacing: 0.03em;
    transform: scale(1.08);
  }
}

@keyframes underlineGrow{
  to{
    transform: translateX(-50%) scaleX(1);
    opacity: 1;
  }
}

/* ================================
   Lead section (outside hero)
================================ */
.lead-section{
  padding: clamp(26px, 4vw, 52px) 0;
  background: #fff;
}

.lead-section__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.lead-section__text{
  margin: 0 auto;
  max-width: 76ch;
  font-size: clamp(15px, 1.55vw, 17px);
  line-height: 2.1;
  color: #222;
  text-align: center;
}

/* ================================
   Infinity section
================================ */
.infinity-section{
  padding: clamp(28px, 5vw, 60px) 0;
  background: #fff;
}

.infinity-wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.infinity-svg{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .25s ease, filter .25s ease;
}

.infinity-wrap:hover .infinity-svg{
  filter: drop-shadow(0 14px 26px rgba(0,0,0,.12));
  transform: translateY(-2px);
}

/* 初期：∞セクション自体は非表示（スクロールでふわっと出す） */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}

.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常は見える（JS不発でも表示を担保） */
.infinity-svg .ribbon,
.infinity-svg .highlight{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

.infinity-svg .center-card,
.infinity-svg .side-card{
  opacity: 1;
  transform: none;
}

/* is-inviewになった瞬間だけ描画アニメ */
.js-infinity.is-inview .infinity-svg .ribbon{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation:
    draw 1.7s ease .25s forwards,
    breathe 5.8s ease-in-out 2.25s infinite;
  transform-origin: 600px 260px;
}

.js-infinity.is-inview .infinity-svg .highlight{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.9s ease .40s forwards;
  opacity: .55;
}

.js-infinity.is-inview .infinity-svg .center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease .70s forwards;
}

.js-infinity.is-inview .infinity-svg .side-card{
  opacity: 0;
  transform: translateY(12px);
  animation: pop .95s ease .90s forwards;
}

@keyframes draw{ to{ stroke-dashoffset: 0; } }
@keyframes pop{ to{ opacity: 1; transform: translateY(0); } }
@keyframes breathe{ 0%,100%{opacity:.96;} 50%{opacity:.88;} }

/* ================================
   Reduced motion
================================ */
@media (prefers-reduced-motion: reduce){
  .hero-wide__catch{ transform: none !important; letter-spacing: 0.03em !important; }
  .hero-wide__catch .char{ animation: none !important; opacity: 1 !important; transform:none !important; filter:none !important; }
  .hero-wide__catch.is-typed{ animation: none !important; }

  .js-infinity{ opacity: 1 !important; transform: none !important; transition: none !important; }
  .js-infinity.is-inview .infinity-svg .ribbon,
  .js-infinity.is-inview .infinity-svg .highlight,
  .js-infinity.is-inview .infinity-svg .center-card,
  .js-infinity.is-inview .infinity-svg .side-card{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
}

@media (max-width: 768px){
  .hero-wide{
    height: 75svh;
    min-height: 420px;
  }
}


/* =========================================
   Neo Infinity (C案)
========================================= */

/* 初期：スクロール前は消す */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常時は表示（JS失敗でも見える） */
.infinity-svg--neo .neo-ribbon{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

/* is-inviewで“描画” */
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--main{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.8s ease .25s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--sub{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.0s ease .40s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--glow{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.1s ease .15s forwards, breathe 5.8s ease-in-out 2.6s infinite;
}

/* 中央カードも少し遅れて出現 */
.infinity-svg--neo .neo-center-card{
  opacity: 1;
  transform: none;
}
.js-infinity.is-inview .infinity-svg--neo .neo-center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease 1.0s forwards;
}

/* keyframes（既にあるなら不要） */
@keyframes draw{
  to{ stroke-dashoffset: 0; }
}
@keyframes pop{
  to{ opacity: 1; transform: translateY(0); }
}
@keyframes breathe{
  0%,100%{ opacity: .40; }
  50%{ opacity: .22; }
}

/* 青矢印（左三角）を左からスッと出す */
.js-infinity.is-inview .cone-left{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(-80px);
  animation: coneInLeft .75s cubic-bezier(.2,.9,.2,1) .15s forwards;
}

@keyframes coneInLeft{
  to{
    opacity: 0.95;
    transform: translateX(0);
  }
}

/* オレンジ矢印（右三角）を右からスッと出す */
.js-infinity.is-inview .cone-right{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(80px);
  animation: coneInRight .75s cubic-bezier(.2,.9,.2,1) .22s forwards;
}

@keyframes coneInRight{
  0%{ opacity: 0; transform: translateX(80px); }
  80%{ opacity: 0.95; transform: translateX(-6px); } /* 少し行き過ぎ→戻る */
  100%{ opacity: 0.95; transform: translateX(0); }
}
.infinity-wrap{
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* 背景画像を背面に敷く */
.infinity-wrap .bg-image{
  position: absolute;
  left: 50%;
  top: 110%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 1100px;
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
  max-height: fit-content;
}


/* SVGを前面に */
.infinity-wrap svg{
  position: relative;
  z-index: 2;
}


/* =========================
   Tabs + FAQ (scoped)
   File: css/tabs-faq.css
========================= */

/* 共通：安全策（既存CSSの影響を受けにくくする） */
.tabs, .tabs * { box-sizing: border-box; }

/* --- Tabs Nav --- */
.tabs__nav{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.tabs__btn{
  appearance: none;
  border: 1px solid #ddd;
  background: #fff;
  color: #333;
  padding: 12px 14px;
  cursor: pointer;
  line-height: 1.2;
  font-weight: 600;
  transition: transform .05s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.tabs__btn:hover{ border-color: #bbb; }
.tabs__btn:active{ transform: translateY(1px); }

.tabs__btn.is-active{
  border-color: #0078b7;
  background: #0078b7;
  color: #fff;
}

/* フォーカス可視化（A11y） */
.tabs__btn:focus-visible{
  outline: 3px solid rgba(0,120,183,.35);
  outline-offset: 2px;
}

/* --- Panels --- */
.tabs__panels{
  padding: 18px 0;
  background: #fff;
}

.tabs__panel[hidden]{ display: none !important; }

/* セクションタイトル強化 */
.tabs__title{
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0 0 20px;
  padding-bottom: 10px;
  position: relative;
  line-height: 1.4;
}

.tabs__title::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 60px;
  height: 3px;
  background: #0078b7;
  border-radius: 2px;
}

/* --- FAQ --- */
.faq{
  display: grid;
  gap: 14px;
}

/* Q + A を1枚カードにする */
.faq-item{
  border: none;
  border-radius: 14px;
  background: #fff;
  padding: 14px 16px;
  margin: 0; /* grid gapで間隔管理 */
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, transform .1s ease;
}
.faq-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

.faq-q{
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
}

/* Accordion button */
.faq-toggle{
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 0;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  position: relative;
}

.faq-toggle::after{
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  font-weight: 700;
}
.faq-toggle[aria-expanded="true"]::after{
  content: "−";
}

/* Answer container */
.faq-a{
  margin-top: 12px;
  color: #333;
  line-height: 1.8;

  /* slide */
  overflow: hidden;
  height: 0;                    /* JSが開いているものはheightを設定 */
  transition: height .28s ease;
  will-change: height;
}

/* 回答の先頭に A. */
.faq-a::before{
  content: "A. ";
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}

/* テキスト/リスト */
.faq-a p{ margin: 0 0 10px; }

.faq-a ul{
  list-style: disc;
  list-style-position: outside;
  padding-left: 1.4em;
  margin: 0 0 10px;
}

.faq-a li{
  display: list-item;
  margin: 4px 0;
}

/* Reduce Motion */
@media (prefers-reduced-motion: reduce){
  .faq-a{ transition: none; }
}

/* --- Responsive --- */
@media (max-width: 768px){
  .tabs__panels{ padding: 0; }

  .tabs__btn{
    padding: 11px 12px;
    font-size: .95rem;
  }

  .tabs__title{ font-size: 1.2rem; }

  .faq-q{ font-size: 1rem; }
  .faq-item{ padding: 12px; }
  .faq-toggle{ font-size: 1rem; }
}


/* =========================================================
   Global Navigation (Black / JP+EN 2-line / SP hamburger)
   - PC: ロゴ + ナビ 横並び（同じ高さ）
   - SP: ロゴ + バーガーのみ表示 → クリックでメニュー展開
   - 現在ページ: 英字だけ青
   - Contact: 罫線なし
   - 黒帯上下に余白
========================================================= */

.global-nav{
  background: #000;
  color: #fff;
  margin: 0;      /* 黒帯の上下余白 */
}

/* PCで「inner(ロゴ/バーガー領域)」と「menu(ナビ)」を同じ段に */
@media (min-width: 769px){
  .global-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding:2em 4em;
  }

  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    padding: 0;
  }

  .global-nav__menu{
    display: block;
  }
}

/* ロゴ */
.global-nav__logo{
  display: flex;
  align-items: center;
  line-height: 1;
}
.global-nav__logo img{
  height: 28px;   /* ロゴを小さめに */
  width: auto;
  display: block;
}

/* ナビ */
.global-nav__list{
  display: flex;
  align-items: center;
  gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.global-nav__list li a{
  text-decoration: none;
  color: #fff;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  height: 64px;      /* ヘッダー高さと揃える */
  padding: 0 6px;
  transition: opacity .2s ease, transform .15s ease;
}

.global-nav__list li a:hover{
  opacity: .7;
  transform: translateY(-2px);
}

.global-nav .jp{
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}

.global-nav .en{
  font-size: .75rem;
  letter-spacing: .1em;
  margin-top: 4px;
  opacity: .6;
}

/* 現在ページ：英字だけ青 */
.global-nav__list li.current .en{
  color: #0078b7;
  opacity: 1;
  font-weight: 600;
}

/* お問合わせ：罫線なし（通常リンクと同じ） */
.global-nav__list li.contact a{
  border: none;
  border-radius: 0;
}
/* ---------------------------------
プルダウン
------------------------------------ */
/* dropdown parent */
.global-nav__list li.has-dropdown{
  position:relative;
  z-index: 9999; /*最前面に */
}
  /* メニュー本体をさらに前面へ */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: absolute;
    z-index: 10000;
  }


/* SP：ドロップダウンは必ず押し出す（被り防止） */
@media (max-width: 768px){

  /* PC用の absolute を強制的に無効化 */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
  }

  /* 念のため：li側で潰している overflow があれば解除 */
  .global-nav__list li.has-dropdown{
    overflow: visible !important;
  }

}


/* dropdown menu */
.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:10px 0;
  list-style:none;
  min-width:180px;
  box-shadow:0 10px 20px rgba(0,0,0,0.1);

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:all .25s ease;
}

/* dropdown item */
.dropdown-menu li a{
  display:block;
  padding:10px 20px;
  font-size:0.9rem;
  color:#333;
  text-decoration:none;
}

.dropdown-menu li a:hover{
  background:#f5f5f5;
}

/* hover show */
.has-dropdown:hover .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
/* ▼を右端に固定する */
.has-dropdown > a{
  position: relative;
  padding-right: 28px; /* ▼の分の余白 */
}

.has-dropdown > a::after{
  content: "▼";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.65em;
  line-height: 1;
  opacity: .8;
}
/* PCでもクリック(open)で開く */
@media (min-width: 769px){
  .has-dropdown.open .dropdown-menu{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}
@media (max-width:768px){
  .has-dropdown > a{
    position:relative;
    padding-right:28px;
  }

  .has-dropdown > a::after{
    content:"▼";
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    font-size:0.65em;
  }

}
@media (max-width: 768px){
  .has-dropdown.open > a::after{
    content: "▲";
  }
}

@media (max-width:768px){

  .dropdown-menu{
    position:static;
    box-shadow:none;
    padding-left:20px;
    transform:none;
    background:#000;
    /* display / opacity / visibility はここでは触らない */
  }
  .dropdown-menu a{
    color: #fff!important;
  }

  /* サブメニュー：アニメーション */
  .has-dropdown .dropdown-menu{
    display:block;          /* ←必須 */
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-4px);
    transition: max-height .28s ease, opacity .22s ease, transform .22s ease;
    padding-top:0;
    padding-bottom:0;
  }

  .has-dropdown.open .dropdown-menu{
    opacity:1;
    transform: translateY(0);
    padding-top:8px;
    padding-bottom:8px;
  }

}

/* ハンバーガー（PCでは非表示） */
.nav-toggle{
  display: none;
  appearance: none;
  border: none;
  background: transparent;
  color: #fff;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  align-items: center;
  gap: 10px;
}

.nav-toggle__bars{
  width: 22px;
  height: 14px;
  position: relative;
  display: inline-block;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: #fff;
}
.nav-toggle__bars::before{ top: 2px; }
.nav-toggle__bars::after{ bottom: 2px; }

.nav-toggle__text{
  font-size: .8rem;
  letter-spacing: .08em;
  opacity: .85;
}


/* ===== SP ===== */
@media (max-width: 768px){

  /* SPは nav を通常ブロックに */
  .global-nav{
    display: block;
    padding: 0;
  }

  /* 上段：ロゴ + バーガーのみ */
  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    padding: 0 16px;
  }

  .global-nav__logo img{
    height: 24px; /* SPはさらに少し小さく */
  }

  .nav-toggle{
    display: inline-flex;
    align-items: center;
  }

  /* メニューは初期非表示、開いたら表示 */
  .global-nav__menu{
    display: none;
    border-top: 1px solid rgba(255,255,255,.15);
  }
  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* SPメニューは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }

  .global-nav__list li a{
    height: auto;
    align-items: flex-start;
    padding: 14px 16px;
    transform: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  .global-nav .jp{ font-size: 1rem; }
  .global-nav .en{ font-size: .72rem; }
}
/* ================================
   SP：メニューをページに被せる（押し出さない）
================================ */
@media (max-width: 768px){

  /* navを基準にして、メニューを絶対配置で重ねる */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* 押し出しの原因になる余白がある場合に備えて */
  .global-nav__menu{
    display: none;
    position: absolute;
    left: 0;
    top: 100%;              /* ヘッダーの直下 */
    width: 100%;
    background: #000;
    border-top: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 10px 24px rgba(0,0,0,.25);
  }

  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* メニュー内は縦並び（既存のままでOKですが念のため） */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }
}

/* ================================
   SP：フルスクリーン + スライドメニュー
   - 押し出さない
   - 画面いっぱい背景
================================ */
@media (max-width: 768px){

  /* 画面全体の暗い背景（オーバーレイ） */
  .global-nav::before{
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.72);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 9998; /* メニューより背面 */
  }

  .global-nav.is-open::before{
    opacity: 1;
    pointer-events: auto; /* 背景タップを拾える状態 */
  }

  /* メニュー本体をフルスクリーンパネルに */
  .global-nav__menu{
    display: block;           /* ← display切替ではなく常時配置 */
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;            /* 画面いっぱい */
    background: #000;         /* 背景色（ご希望） */
    z-index: 9999;

    /* スライド（上から） */
    transform: translateY(-100%);
    transition: transform .28s ease;
    will-change: transform;

    /* 中身スクロール */
    overflow: auto;
    -webkit-overflow-scrolling: touch;

    /* ヘッダー行（ロゴ+バーガー）分だけ上を空けたい場合は後述 */
  }

  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
  }

  /* SPメニュー内レイアウト */
  .global-nav__list{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 72px 0 16px;  /* ← 上部に余白（ロゴ行の高さ相当） */
  }

  .global-nav__list li a{
    align-items: flex-start;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    transform: none;
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  /* ハンバーガー（上に乗るように） */
  .global-nav__inner{
    position: relative;
    z-index: 10000; /* メニューより手前（閉じボタンとして機能） */
  }

  /* reduce motion */
  @media (prefers-reduced-motion: reduce){
    .global-nav::before,
    .global-nav__menu{
      transition: none;
    }
  }
}
/* ================================
   SP：黒帯の下からスライド表示
================================ */
@media (max-width: 768px){

  /* 黒帯を基準にする */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* メニューを黒帯の直下に配置 */
  .global-nav__menu{
    position: absolute;
    left: 0;
    top: 100%;              /* ← 黒帯の下から */
    width: 100%;
    background: #000;

    transform: translateY(-10px);
    opacity: 0;
    pointer-events: none;

    transition: transform .25s ease, opacity .25s ease;
    box-shadow: 0 12px 24px rgba(0,0,0,.25);
  }

  /* 開いたとき */
  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  /* SPは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    padding: 10px 0;
  }

}


/* =========================================================
  ページのタイトル周り

========================================================= */
.main h1 {
  line-height: 1.2em;
}

.page-subtitle{
  font-size: 1.25em;
  padding-bottom:2em;
    padding-left: 0em;
  margin-top: -2em;
}
.page-contact h1{ /*お問い合わせページのマージン対策*/
  margin: 0 0 48px;
}
@media screen and (max-width: 768px) {
  .main h1 {
    margin: 0 0 20px;
  }
  .page-subtitle{
    font-size: 1.0em;
    padding-bottom:1em;
    margin-top: -1.25em;
  }

}

/* =========================================================
   Works
   タイトル下のサブ見出し
   横タイル型から、縦一列型に。
   ※スマートフォンレイアウトは変更しない。
   一旦削除
========================================================= */


/* =========================================================
   Contact
========================================================= */


/* ラジオ項目の補助リンク　パートナー対策 */
.mwform-radio-help{
  display:inline-block;
  margin-left:8px;
}

@media (max-width:768px){

  .mwform-radio-help{
    display:block;
    margin-left:20px;
    margin-top:4px;
  }

}

/*パートナー*/
/* Partner Modal */
.partner-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* 表示状態 */
.partner-modal.is-open{
  opacity: 1;
  visibility: visible;
}

.partner-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.partner-modal__dialog{
  position: relative;
  width: min(920px, 92vw);
  max-height: 86vh;
  overflow: auto;
  background: #fff;
  padding: 28px 26px 26px;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
  transform: translateY(20px);
  transition: transform .35s ease;
}
.partner-modal__dialog{
  transform: translateY(20px) scale(.97);
}
.partner-modal.is-open .partner-modal__dialog{
  transform: translateY(0) scale(1);
}

.partner-modal__close{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 44px;
  cursor: pointer;
}

.partner-modal__title{
  font-size: 2.4rem;
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: .08em;
}

.partner-modal__sub{
  margin: 0 0 18px;
  font-size: 1.5em;
  color: #333;
  font-weight: bold;
}

.partner-modal__body p{
  margin: 0 0 18px;
  line-height: 1.9;
}

.partner-modal__list{
  margin: 0;
  padding-left: 1.2em;
  line-height: 1.9;
}
/* カードリスト */
.partner-modal__list{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:16px;
  margin-top:20px;
  padding:0;
  list-style:none;
}

/* カード */
.partner-modal__list li{
  background:#f7f7f7;
  border:1px solid #e5e5e5;
  border-radius:10px;
  padding:14px 16px;
  font-size:0.95rem;
  line-height:1.6;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
  transition:transform .2s ease, box-shadow .2s ease;
}

/* hover */
.partner-modal__list li:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}

@media (max-width: 768px){
  .partner-modal__dialog{
    margin-top: 2vh;
    padding: 22px 18px 18px;
    width:85vw;
  }
  .partner-modal__title{ font-size: 2.0rem; }
  .partner-modal__list{
    grid-template-columns: 1fr;
  }
  .partner-modal__sub{
    font-size: 1.2em;
  }

}

/* --------------------------------
PROFILE
---------------------------------- */
.page-about h1 {
    margin: 0 0 48px;
}

.dropdown-menu .current a{color:#0078b7;}
.page-sitemap h1 {
    margin: 0 0 48px;
}
.page-faq h1 {
    margin: 0 0 48px;
}
.body-index .page-front .front-topics{margin-top:5em;}
.page-faq .main{max-width:880px;}
.page-contact dl dt,
.page-contact dl dd{font-size:1.142857rem;}
.realm-heading{
  text-align: center;
  margin: 0 0 30px;
}

.realm-heading h2{
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 600;
  margin: 0;
}

.realm-heading .en{
  display: block;
  margin-top: 8px;
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  color: #aaa;
}
.front-topics-title .en-sub{
  margin: 0;
  font-size: 1.2rem;
  color: #aaa;
  letter-spacing: 0.08em;
}

/* ================================
   お知らせ
================================ */
.body-index .page-front .front-news{margin-top:0;}
.front-news .front-topics-title{
  margin-bottom: 12px!important;
}

.news-single{
   margin-top: 8px;
  border-bottom: 1px dotted #ccc;
}

.news-single a{
  display: flex;
  gap: 20px;
  padding: 12px 0;
  text-decoration: none;
  color: #333;
}

.news-date{
  font-size: 0.9rem;
  color: #888;
  min-width: 100px;
}

.news-title{
  flex: 1;
}
@media (max-width:768px){
  .news-single a{
    flex-direction: column;
    gap: 4px;
  }
}

.front-news-title{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
}

.front-news-title .title-left{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.front-news-title h2{
  margin: 0;
}

.front-news-title .en-sub{
  margin: 0;
  font-size: 1.2rem;
  color: #aaa;
  letter-spacing: 0.08em;
}

.front-news-title .title-right a{
  font-size: 1.2rem;
  text-decoration: none;
}
/* ================================
   lead
================================ */
.lead-section__maintext{
  font-size: clamp(15px, 1.5vw, 17px);
  max-width: 920px;
  margin: 0 auto 3em;
  text-align: center;
  background: #f4f4f4;
  padding: 17px;
  box-sizing: border-box;
  line-height: 2;
  color: #333;
  box-shadow: 8px 7px 0 #bfbfbf;
}
/* ================================
   Base
================================ */
*{ box-sizing: border-box; }

body{
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
  color: #111;
  background: #fff;
}


/* ================================
   Hero (Full width)
================================ */
.hero-wide{
  position: relative;
  width: 100%;
  margin-left:0;
  margin-right:0;
  overflow: hidden;
  background: #000;

  height: 95svh;
  min-height: 600px;
  max-height: 980px;
}

.hero-wide__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center center; /* 必要に応じて center top に変更 */
  transform: none;
/*
object-position: center top;

*/
  /*
  object-fit: cover;
  object-position: center;
*/
  transform: scale(1.01);
}

.hero-wide::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(0,0,0,.62),
    rgba(0,0,0,.22) 55%,
    rgba(0,0,0,.08)
  );
}

/* センター配置 */
.hero-wide__overlay{
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  place-items: center;
  padding: clamp(20px, 4vw, 56px);
  text-align: center;
}

/* ================================
   SP：画像を全部見せる
================================ */
@media (max-width: 768px){
  .hero-wide{
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .hero-wide__img{
    position: relative !important;   /* ← absolute解除 */
    inset: auto !important;          /* ← 念のため解除 */
    width: 100%;
    height: auto !important;
    display: block;
    object-fit: contain !important;
    transform: none !important;      /* ← 拡大を解除 */
  }

  .hero-wide::after{
    inset: 0;
  }

  .hero-wide__overlay{
    position: absolute;
    inset: 0;
    z-index: 1;
    height: auto;
    display: grid;
    place-items: center;
    padding: 20px;
  }
}

/* ================================
   Catch: 1文字ずつ “つながる” → 全体が “ひろがる＋少し拡大”
================================ */
.hero-wide__catch{
  margin: 0;
  color: #fff;
  font-weight: 800;
  line-height: 1.12;
  font-size: clamp(34px, 5.6vw, 64px);
  text-shadow: 0 10px 28px rgba(0,0,0,.35);

  display: inline-block;
  position: relative;

  letter-spacing: -0.08em;  /* つながる */
  transform: scale(0.96);   /* 最初少し小さく */
}

.hero-wide__catch .char{
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
  animation: charIn .55s cubic-bezier(.2,.9,.2,1) forwards;
  animation-delay: calc(var(--i) * 0.06s + 0.12s);
}

.hero-wide__catch.is-typed{
  animation: spacingOut .75s ease 1.05s forwards;
}

/* “ひろがる”下線 */
.hero-wide__catch::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -12px;
  height: 3px;
  width: 72%;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  opacity: 0;
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  animation: underlineGrow .7s ease 1.2s forwards;
}

@keyframes charIn{
  to{ opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes spacingOut{
  to{
    letter-spacing: 0.03em;
    transform: scale(1.08);
  }
}

@keyframes underlineGrow{
  to{
    transform: translateX(-50%) scaleX(1);
    opacity: 1;
  }
}
/* 動きが苦手な人向け */
.hero-wide__sub{
  display: block;
  margin-top: 12px;
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.95);
  text-transform: uppercase;
  display: block;

  /* ↓追加 フェードで入れる */
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .8s ease, transform .8s ease;
}
/* 表示状態　フェードで入れる */
.hero-wide__sub.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* ================================
   Lead section (outside hero)
================================ */
.lead-section{
  padding: clamp(26px, 4vw, 52px) 0;
  background: #fff;
}

.lead-section__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.lead-section__text{
  margin: 0 auto;
  max-width: 76ch;
  font-size: clamp(15px, 1.55vw, 17px);
  line-height: 2.1;
  color: #222;
  text-align: center;
}

/* ================================
   Infinity section
================================ */
.infinity-section{
  padding: clamp(28px, 5vw, 60px) 0;
  background: #fff;
}

.infinity-wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.infinity-svg{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .25s ease, filter .25s ease;
}

.infinity-wrap:hover .infinity-svg{
  filter: drop-shadow(0 14px 26px rgba(0,0,0,.12));
  transform: translateY(-2px);
}

/* 初期：∞セクション自体は非表示（スクロールでふわっと出す） */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}

.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常は見える（JS不発でも表示を担保） */
.infinity-svg .ribbon,
.infinity-svg .highlight{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

.infinity-svg .center-card,
.infinity-svg .side-card{
  opacity: 1;
  transform: none;
}

/* is-inviewになった瞬間だけ描画アニメ */
.js-infinity.is-inview .infinity-svg .ribbon{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation:
    draw 1.7s ease .25s forwards,
    breathe 5.8s ease-in-out 2.25s infinite;
  transform-origin: 600px 260px;
}

.js-infinity.is-inview .infinity-svg .highlight{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.9s ease .40s forwards;
  opacity: .55;
}

.js-infinity.is-inview .infinity-svg .center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease .70s forwards;
}

.js-infinity.is-inview .infinity-svg .side-card{
  opacity: 0;
  transform: translateY(12px);
  animation: pop .95s ease .90s forwards;
}

@keyframes draw{ to{ stroke-dashoffset: 0; } }
@keyframes pop{ to{ opacity: 1; transform: translateY(0); } }
@keyframes breathe{ 0%,100%{opacity:.96;} 50%{opacity:.88;} }

/* ================================
   Reduced motion
================================ */
@media (prefers-reduced-motion: reduce){
  .hero-wide__catch{ transform: none !important; letter-spacing: 0.03em !important; }
  .hero-wide__catch .char{ animation: none !important; opacity: 1 !important; transform:none !important; filter:none !important; }
  .hero-wide__catch.is-typed{ animation: none !important; }

  .js-infinity{ opacity: 1 !important; transform: none !important; transition: none !important; }
  .js-infinity.is-inview .infinity-svg .ribbon,
  .js-infinity.is-inview .infinity-svg .highlight,
  .js-infinity.is-inview .infinity-svg .center-card,
  .js-infinity.is-inview .infinity-svg .side-card{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
}


/* =========================================
   Neo Infinity (C案)
========================================= */

/* 初期：スクロール前は消す */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常時は表示（JS失敗でも見える） */
.infinity-svg--neo .neo-ribbon{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

/* is-inviewで“描画” */
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--main{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.8s ease .25s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--sub{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.0s ease .40s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--glow{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.1s ease .15s forwards, breathe 5.8s ease-in-out 2.6s infinite;
}

/* 中央カードも少し遅れて出現 */
.infinity-svg--neo .neo-center-card{
  opacity: 1;
  transform: none;
}
.js-infinity.is-inview .infinity-svg--neo .neo-center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease 1.0s forwards;
}

/* keyframes（既にあるなら不要） */
@keyframes draw{
  to{ stroke-dashoffset: 0; }
}
@keyframes pop{
  to{ opacity: 1; transform: translateY(0); }
}
@keyframes breathe{
  0%,100%{ opacity: .40; }
  50%{ opacity: .22; }
}

/* 青矢印（左三角）を左からスッと出す */
.js-infinity.is-inview .cone-left{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(-80px);
  animation: coneInLeft .75s cubic-bezier(.2,.9,.2,1) .15s forwards;
}

@keyframes coneInLeft{
  to{
    opacity: 0.95;
    transform: translateX(0);
  }
}

/* オレンジ矢印（右三角）を右からスッと出す */
.js-infinity.is-inview .cone-right{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(80px);
  animation: coneInRight .75s cubic-bezier(.2,.9,.2,1) .22s forwards;
}

@keyframes coneInRight{
  0%{ opacity: 0; transform: translateX(80px); }
  80%{ opacity: 0.95; transform: translateX(-6px); } /* 少し行き過ぎ→戻る */
  100%{ opacity: 0.95; transform: translateX(0); }
}
.infinity-wrap{
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* 背景画像を背面に敷く */
.infinity-wrap .bg-image{
  position: absolute;
  left: 50%;
  top: 110%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 1100px;
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
  max-height: fit-content;
}


/* SVGを前面に */
.infinity-wrap svg{
  position: relative;
  z-index: 2;
}


/* =========================
   Tabs + FAQ (scoped)
   File: css/tabs-faq.css
========================= */

/* 共通：安全策（既存CSSの影響を受けにくくする） */
.tabs, .tabs * { box-sizing: border-box; }

/* --- Tabs Nav --- */
.tabs__nav{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.tabs__btn{
  appearance: none;
  border: 1px solid #ddd;
  background: #fff;
  color: #333;
  padding: 12px 14px;
  cursor: pointer;
  line-height: 1.2;
  font-weight: 600;
  transition: transform .05s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.tabs__btn:hover{ border-color: #bbb; }
.tabs__btn:active{ transform: translateY(1px); }

.tabs__btn.is-active{
  border-color: #0078b7;
  background: #0078b7;
  color: #fff;
}

/* フォーカス可視化（A11y） */
.tabs__btn:focus-visible{
  outline: 3px solid rgba(0,120,183,.35);
  outline-offset: 2px;
}

/* --- Panels --- */
.tabs__panels{
  padding: 18px 0;
  background: #fff;
}

.tabs__panel[hidden]{ display: none !important; }

/* セクションタイトル強化 */
.tabs__title{
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0 0 20px;
  padding-bottom: 10px;
  position: relative;
  line-height: 1.4;
}

.tabs__title::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 60px;
  height: 3px;
  background: #0078b7;
  border-radius: 2px;
}

/* --- FAQ --- */
.faq{
  display: grid;
  gap: 14px;
}

/* Q + A を1枚カードにする */
.faq-item{
  border: none;
  border-radius: 14px;
  background: #fff;
  padding: 14px 16px;
  margin: 0; /* grid gapで間隔管理 */
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, transform .1s ease;
}
.faq-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

.faq-q{
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
}

/* Accordion button */
.faq-toggle{
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 0;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  position: relative;
}

.faq-toggle::after{
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  font-weight: 700;
}
.faq-toggle[aria-expanded="true"]::after{
  content: "−";
}

/* Answer container */
.faq-a{
  margin-top: 12px;
  color: #333;
  line-height: 1.8;

  /* slide */
  overflow: hidden;
  height: 0;                    /* JSが開いているものはheightを設定 */
  transition: height .28s ease;
  will-change: height;
}

/* 回答の先頭に A. */
.faq-a::before{
  content: "A. ";
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}

/* テキスト/リスト */
.faq-a p{ margin: 0 0 10px; }

.faq-a ul{
  list-style: disc;
  list-style-position: outside;
  padding-left: 1.4em;
  margin: 0 0 10px;
}

.faq-a li{
  display: list-item;
  margin: 4px 0;
}

/* Reduce Motion */
@media (prefers-reduced-motion: reduce){
  .faq-a{ transition: none; }
}

/* --- Responsive --- */
@media (max-width: 768px){
  .tabs__panels{ padding: 0; }

  .tabs__btn{
    padding: 11px 12px;
    font-size: .95rem;
  }

  .tabs__title{ font-size: 1.2rem; }

  .faq-q{ font-size: 1rem; }
  .faq-item{ padding: 12px; }
  .faq-toggle{ font-size: 1rem; }
}


/* =========================================================
   Global Navigation (Black / JP+EN 2-line / SP hamburger)
   - PC: ロゴ + ナビ 横並び（同じ高さ）
   - SP: ロゴ + バーガーのみ表示 → クリックでメニュー展開
   - 現在ページ: 英字だけ青
   - Contact: 罫線なし
   - 黒帯上下に余白
========================================================= */

.global-nav{
  background: #000;
  color: #fff;
  margin: 0;      /* 黒帯の上下余白 */
}

/* PCで「inner(ロゴ/バーガー領域)」と「menu(ナビ)」を同じ段に */
@media (min-width: 769px){
  .global-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding:2em 4em;
  }

  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    padding: 0;
  }

  .global-nav__menu{
    display: block;
  }
}

/* ロゴ */
.global-nav__logo{
  display: flex;
  align-items: center;
  line-height: 1;
}
.global-nav__logo img{
  height: 28px;   /* ロゴを小さめに */
  width: auto;
  display: block;
}

/* ナビ */
.global-nav__list{
  display: flex;
  align-items: center;
  gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.global-nav__list li a{
  text-decoration: none;
  color: #fff;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  height: 64px;      /* ヘッダー高さと揃える */
  padding: 0 6px;
  transition: opacity .2s ease, transform .15s ease;
}

.global-nav__list li a:hover{
  opacity: .7;
  transform: translateY(-2px);
}

.global-nav .jp{
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}

.global-nav .en{
  font-size: .75rem;
  letter-spacing: .1em;
  margin-top: 4px;
  opacity: .6;
}

/* 現在ページ：英字だけ青 */
.global-nav__list li.current .en{
  color: #0078b7;
  opacity: 1;
  font-weight: 600;
}

/* お問合わせ：罫線なし（通常リンクと同じ） */
.global-nav__list li.contact a{
  border: none;
  border-radius: 0;
}
/* ---------------------------------
プルダウン
------------------------------------ */
/* dropdown parent */
.global-nav__list li.has-dropdown{
  position:relative;
  z-index: 9999; /*最前面に */
}
  /* メニュー本体をさらに前面へ */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: absolute;
    z-index: 10000;
  }


/* SP：ドロップダウンは必ず押し出す（被り防止） */
@media (max-width: 768px){

  /* PC用の absolute を強制的に無効化 */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
  }

  /* 念のため：li側で潰している overflow があれば解除 */
  .global-nav__list li.has-dropdown{
    overflow: visible !important;
  }

}


/* dropdown menu */
.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:10px 0;
  list-style:none;
  min-width:180px;
  box-shadow:0 10px 20px rgba(0,0,0,0.1);

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:all .25s ease;
}

/* dropdown item */
.dropdown-menu li a{
  display:block;
  padding:10px 20px;
  font-size:0.9rem;
  color:#333;
  text-decoration:none;
}

.dropdown-menu li a:hover{
  background:#f5f5f5;
}

/* hover show */
.has-dropdown:hover .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
/* ▼を右端に固定する */
.has-dropdown > a{
  position: relative;
  padding-right: 28px; /* ▼の分の余白 */
}

.has-dropdown > a::after{
  content: "▼";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.65em;
  line-height: 1;
  opacity: .8;
}
/* PCでもクリック(open)で開く */
@media (min-width: 769px){
  .has-dropdown.open .dropdown-menu{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}
@media (max-width:768px){
  .has-dropdown > a{
    position:relative;
    padding-right:28px;
  }

  .has-dropdown > a::after{
    content:"▼";
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    font-size:0.65em;
  }

}
@media (max-width: 768px){
  .has-dropdown.open > a::after{
    content: "▲";
  }
}

@media (max-width:768px){

  .dropdown-menu{
    position:static;
    box-shadow:none;
    padding-left:20px;
    transform:none;
    background:#000;
    /* display / opacity / visibility はここでは触らない */
  }
  .dropdown-menu a{
    color: #fff!important;
  }

  /* サブメニュー：アニメーション */
  .has-dropdown .dropdown-menu{
    display:block;          /* ←必須 */
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-4px);
    transition: max-height .28s ease, opacity .22s ease, transform .22s ease;
    padding-top:0;
    padding-bottom:0;
  }

  .has-dropdown.open .dropdown-menu{
    opacity:1;
    transform: translateY(0);
    padding-top:8px;
    padding-bottom:8px;
  }

}

/* ハンバーガー（PCでは非表示） */
.nav-toggle{
  display: none;
  appearance: none;
  border: none;
  background: transparent;
  color: #fff;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  align-items: center;
  gap: 10px;
}

.nav-toggle__bars{
  width: 22px;
  height: 14px;
  position: relative;
  display: inline-block;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: #fff;
}
.nav-toggle__bars::before{ top: 2px; }
.nav-toggle__bars::after{ bottom: 2px; }

.nav-toggle__text{
  font-size: .8rem;
  letter-spacing: .08em;
  opacity: .85;
}


/* ===== SP ===== */
@media (max-width: 768px){

  /* SPは nav を通常ブロックに */
  .global-nav{
    display: block;
    padding: 0;
  }

  /* 上段：ロゴ + バーガーのみ */
  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    padding: 0 16px;
  }

  .global-nav__logo img{
    height: 24px; /* SPはさらに少し小さく */
  }

  .nav-toggle{
    display: inline-flex;
    align-items: center;
  }

  /* メニューは初期非表示、開いたら表示 */
  .global-nav__menu{
    display: none;
    border-top: 1px solid rgba(255,255,255,.15);
  }
  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* SPメニューは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }

  .global-nav__list li a{
    height: auto;
    align-items: flex-start;
    padding: 14px 16px;
    transform: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  .global-nav .jp{ font-size: 1rem; }
  .global-nav .en{ font-size: .72rem; }
}
/* ================================
   SP：メニューをページに被せる（押し出さない）
================================ */
@media (max-width: 768px){

  /* navを基準にして、メニューを絶対配置で重ねる */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* 押し出しの原因になる余白がある場合に備えて */
  .global-nav__menu{
    display: none;
    position: absolute;
    left: 0;
    top: 100%;              /* ヘッダーの直下 */
    width: 100%;
    background: #000;
    border-top: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 10px 24px rgba(0,0,0,.25);
  }

  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* メニュー内は縦並び（既存のままでOKですが念のため） */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }
}

/* ================================
   SP：フルスクリーン + スライドメニュー
   - 押し出さない
   - 画面いっぱい背景
================================ */
@media (max-width: 768px){

  /* 画面全体の暗い背景（オーバーレイ） */
  .global-nav::before{
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.72);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 9998; /* メニューより背面 */
  }

  .global-nav.is-open::before{
    opacity: 1;
    pointer-events: auto; /* 背景タップを拾える状態 */
  }

  /* メニュー本体をフルスクリーンパネルに */
  .global-nav__menu{
    display: block;           /* ← display切替ではなく常時配置 */
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;            /* 画面いっぱい */
    background: #000;         /* 背景色（ご希望） */
    z-index: 9999;

    /* スライド（上から） */
    transform: translateY(-100%);
    transition: transform .28s ease;
    will-change: transform;

    /* 中身スクロール */
    overflow: auto;
    -webkit-overflow-scrolling: touch;

    /* ヘッダー行（ロゴ+バーガー）分だけ上を空けたい場合は後述 */
  }

  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
  }

  /* SPメニュー内レイアウト */
  .global-nav__list{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 72px 0 16px;  /* ← 上部に余白（ロゴ行の高さ相当） */
  }

  .global-nav__list li a{
    align-items: flex-start;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    transform: none;
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  /* ハンバーガー（上に乗るように） */
  .global-nav__inner{
    position: relative;
    z-index: 10000; /* メニューより手前（閉じボタンとして機能） */
  }

  /* reduce motion */
  @media (prefers-reduced-motion: reduce){
    .global-nav::before,
    .global-nav__menu{
      transition: none;
    }
  }
}
/* ================================
   SP：黒帯の下からスライド表示
================================ */
@media (max-width: 768px){

  /* 黒帯を基準にする */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* メニューを黒帯の直下に配置 */
  .global-nav__menu{
    position: absolute;
    left: 0;
    top: 100%;              /* ← 黒帯の下から */
    width: 100%;
    background: #000;

    transform: translateY(-10px);
    opacity: 0;
    pointer-events: none;

    transition: transform .25s ease, opacity .25s ease;
    box-shadow: 0 12px 24px rgba(0,0,0,.25);
  }

  /* 開いたとき */
  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  /* SPは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    padding: 10px 0;
  }

}


/* =========================================================
  ページのタイトル周り

========================================================= */
.main h1 {
  line-height: 1.2em;
}

.page-subtitle{
  font-size: 1.25em;
  padding-bottom:2em;
    padding-left: 0em;
  margin-top: -2em;
}
.page-contact h1{ /*お問い合わせページのマージン対策*/
  margin: 0 0 48px;
}
@media screen and (max-width: 768px) {
  .main h1 {
    margin: 0 0 20px;
  }
  .page-subtitle{
    font-size: 1.0em;
    padding-bottom:1em;
    margin-top: -1.25em;
  }

}

/* =========================================================
   Works
   タイトル下のサブ見出し
   横タイル型から、縦一列型に。
   ※スマートフォンレイアウトは変更しない。
   一旦削除
========================================================= */


/* =========================================================
   Contact
========================================================= */


/* ラジオ項目の補助リンク　パートナー対策 */
.mwform-radio-help{
  display:inline-block;
  margin-left:8px;
}

@media (max-width:768px){

  .mwform-radio-help{
    display:block;
    margin-left:20px;
    margin-top:4px;
  }

}

/*パートナー*/
/* Partner Modal */
.partner-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* 表示状態 */
.partner-modal.is-open{
  opacity: 1;
  visibility: visible;
}

.partner-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.partner-modal__dialog{
  position: relative;
  width: min(920px, 92vw);
  max-height: 86vh;
  overflow: auto;
  background: #fff;
  padding: 28px 26px 26px;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
  transform: translateY(20px);
  transition: transform .35s ease;
}
.partner-modal__dialog{
  transform: translateY(20px) scale(.97);
}
.partner-modal.is-open .partner-modal__dialog{
  transform: translateY(0) scale(1);
}

.partner-modal__close{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 44px;
  cursor: pointer;
}

.partner-modal__title{
  font-size: 2.4rem;
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: .08em;
}

.partner-modal__sub{
  margin: 0 0 18px;
  font-size: 1.5em;
  color: #333;
  font-weight: bold;
}

.partner-modal__body p{
  margin: 0 0 18px;
  line-height: 1.9;
}

.partner-modal__list{
  margin: 0;
  padding-left: 1.2em;
  line-height: 1.9;
}
/* カードリスト */
.partner-modal__list{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:16px;
  margin-top:20px;
  padding:0;
  list-style:none;
}

/* カード */
.partner-modal__list li{
  background:#f7f7f7;
  border:1px solid #e5e5e5;
  border-radius:10px;
  padding:14px 16px;
  font-size:0.95rem;
  line-height:1.6;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
  transition:transform .2s ease, box-shadow .2s ease;
}

/* hover */
.partner-modal__list li:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}

@media (max-width: 768px){
  .partner-modal__dialog{
    margin-top: 2vh;
    padding: 22px 18px 18px;
    width:85vw;
  }
  .partner-modal__title{ font-size: 2.0rem; }
  .partner-modal__list{
    grid-template-columns: 1fr;
  }
  .partner-modal__sub{
    font-size: 1.2em;
  }

}

/* --------------------------------
PROFILE
---------------------------------- */
.page-about h1 {
    margin: 0 0 48px;
}

/* --------------------------------
事業内容　メディアプランニング
---------------------------------- */


.realm-heading{
  text-align:center;
  margin:80px 0 40px;
}

.realm-heading h2{
  font-size:2.2rem;
  font-weight:600;
}

.realm-heading .en{
  display:block;
  font-size:0.85rem;
  letter-spacing:.2em;
  opacity:.6;
  margin-top:6px;
}


/*消すかも medeia2.html側 */
.realm-heading{
  text-align: center;
  margin: 0 0 30px;
}

.realm-heading h2{
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 600;
  margin: 0;
}

.realm-heading .en{
  display: block;
  margin-top: 8px;
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  color: #777;
}
/* ================================
   Base
================================ */
*{ box-sizing: border-box; }

body{
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
  color: #111;
  background: #fff;
}


/* ================================
   Hero (Full width)
================================ */
.hero-wide{
  position: relative;
  width: 100%;
  margin-left: 0;
  margin-right:0;
  overflow: hidden;
  background: #000;

  height: 95svh;
  min-height: 600px;
  max-height: 980px;
}

.hero-wide__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center center; /* 必要に応じて center top に変更 */
  transform: none;
/*
object-position: center top;

*/
  /*
  object-fit: cover;
  object-position: center;
*/
  transform: scale(1.01);
}

.hero-wide::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(0,0,0,.62),
    rgba(0,0,0,.22) 55%,
    rgba(0,0,0,.08)
  );
}

/* センター配置 */
.hero-wide__overlay{
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  place-items: center;
  padding: clamp(20px, 4vw, 56px);
  text-align: center;
}

/* ================================
   SP：画像を全部見せる
================================ */
@media (max-width: 768px){
  .hero-wide{
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .hero-wide__img{
    position: relative !important;   /* ← absolute解除 */
    inset: auto !important;          /* ← 念のため解除 */
    width: 100%;
    height: auto !important;
    display: block;
    object-fit: contain !important;
    transform: none !important;      /* ← 拡大を解除 */
  }

  .hero-wide::after{
    inset: 0;
  }

  .hero-wide__overlay{
    position: absolute;
    inset: 0;
    z-index: 1;
    height: auto;
    display: grid;
    place-items: center;
    padding: 20px;
  }
}

/* ================================
   Catch: 1文字ずつ “つながる” → 全体が “ひろがる＋少し拡大”
================================ */
.hero-wide__catch{
  margin: 0;
  color: #fff;
  font-weight: 800;
  line-height: 1.12;
  font-size: clamp(34px, 5.6vw, 64px);
  text-shadow: 0 10px 28px rgba(0,0,0,.35);

  display: inline-block;
  position: relative;

  letter-spacing: -0.08em;  /* つながる */
  transform: scale(0.96);   /* 最初少し小さく */
}

.hero-wide__catch .char{
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
  animation: charIn .55s cubic-bezier(.2,.9,.2,1) forwards;
  animation-delay: calc(var(--i) * 0.06s + 0.12s);
}

.hero-wide__catch.is-typed{
  animation: spacingOut .75s ease 1.05s forwards;
}

/* “ひろがる”下線 */
.hero-wide__catch::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -12px;
  height: 3px;
  width: 72%;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  opacity: 0;
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  animation: underlineGrow .7s ease 1.2s forwards;
}

@keyframes charIn{
  to{ opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes spacingOut{
  to{
    letter-spacing: 0.03em;
    transform: scale(1.08);
  }
}

@keyframes underlineGrow{
  to{
    transform: translateX(-50%) scaleX(1);
    opacity: 1;
  }
}
/* 動きが苦手な人向け */
.hero-wide__sub{
  display: block;
  margin-top: 12px;
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.95);
  text-transform: uppercase;
  display: block;

  /* ↓追加 フェードで入れる */
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .8s ease, transform .8s ease;
}
/* 表示状態　フェードで入れる */
.hero-wide__sub.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* ================================
   Lead section (outside hero)
================================ */
.lead-section{
  padding: clamp(26px, 4vw, 52px) 0;
  background: #fff;
}

.lead-section__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.lead-section__text{
  margin: 0 auto;
  max-width: 76ch;
  font-size: clamp(15px, 1.55vw, 17px);
  line-height: 2.1;
  color: #222;
  text-align: center;
}

/* ================================
   Infinity section
================================ */
.infinity-section{
  padding: clamp(28px, 5vw, 60px) 0;
  background: #fff;
}

.infinity-wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

.infinity-svg{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .25s ease, filter .25s ease;
}

.infinity-wrap:hover .infinity-svg{
  filter: drop-shadow(0 14px 26px rgba(0,0,0,.12));
  transform: translateY(-2px);
}

/* 初期：∞セクション自体は非表示（スクロールでふわっと出す） */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}

.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常は見える（JS不発でも表示を担保） */
.infinity-svg .ribbon,
.infinity-svg .highlight{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

.infinity-svg .center-card,
.infinity-svg .side-card{
  opacity: 1;
  transform: none;
}

/* is-inviewになった瞬間だけ描画アニメ */
.js-infinity.is-inview .infinity-svg .ribbon{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation:
    draw 1.7s ease .25s forwards,
    breathe 5.8s ease-in-out 2.25s infinite;
  transform-origin: 600px 260px;
}

.js-infinity.is-inview .infinity-svg .highlight{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.9s ease .40s forwards;
  opacity: .55;
}

.js-infinity.is-inview .infinity-svg .center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease .70s forwards;
}

.js-infinity.is-inview .infinity-svg .side-card{
  opacity: 0;
  transform: translateY(12px);
  animation: pop .95s ease .90s forwards;
}

@keyframes draw{ to{ stroke-dashoffset: 0; } }
@keyframes pop{ to{ opacity: 1; transform: translateY(0); } }
@keyframes breathe{ 0%,100%{opacity:.96;} 50%{opacity:.88;} }

/* ================================
   Reduced motion
================================ */
@media (prefers-reduced-motion: reduce){
  .hero-wide__catch{ transform: none !important; letter-spacing: 0.03em !important; }
  .hero-wide__catch .char{ animation: none !important; opacity: 1 !important; transform:none !important; filter:none !important; }
  .hero-wide__catch.is-typed{ animation: none !important; }

  .js-infinity{ opacity: 1 !important; transform: none !important; transition: none !important; }
  .js-infinity.is-inview .infinity-svg .ribbon,
  .js-infinity.is-inview .infinity-svg .highlight,
  .js-infinity.is-inview .infinity-svg .center-card,
  .js-infinity.is-inview .infinity-svg .side-card{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
}


/* =========================================
   Neo Infinity (C案)
========================================= */

/* 初期：スクロール前は消す */
.js-infinity{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.js-infinity.is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* 通常時は表示（JS失敗でも見える） */
.infinity-svg--neo .neo-ribbon{
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}

/* is-inviewで“描画” */
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--main{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 1.8s ease .25s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--sub{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.0s ease .40s forwards;
}
.js-infinity.is-inview .infinity-svg--neo .neo-ribbon--glow{
  stroke-dasharray: 2600;
  stroke-dashoffset: 2600;
  animation: draw 2.1s ease .15s forwards, breathe 5.8s ease-in-out 2.6s infinite;
}

/* 中央カードも少し遅れて出現 */
.infinity-svg--neo .neo-center-card{
  opacity: 1;
  transform: none;
}
.js-infinity.is-inview .infinity-svg--neo .neo-center-card{
  opacity: 0;
  transform: translateY(10px);
  animation: pop .85s ease 1.0s forwards;
}

/* keyframes（既にあるなら不要） */
@keyframes draw{
  to{ stroke-dashoffset: 0; }
}
@keyframes pop{
  to{ opacity: 1; transform: translateY(0); }
}
@keyframes breathe{
  0%,100%{ opacity: .40; }
  50%{ opacity: .22; }
}

/* 青矢印（左三角）を左からスッと出す */
.js-infinity.is-inview .cone-left{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(-80px);
  animation: coneInLeft .75s cubic-bezier(.2,.9,.2,1) .15s forwards;
}

@keyframes coneInLeft{
  to{
    opacity: 0.95;
    transform: translateX(0);
  }
}

/* オレンジ矢印（右三角）を右からスッと出す */
.js-infinity.is-inview .cone-right{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  transform: translateX(80px);
  animation: coneInRight .75s cubic-bezier(.2,.9,.2,1) .22s forwards;
}

@keyframes coneInRight{
  0%{ opacity: 0; transform: translateX(80px); }
  80%{ opacity: 0.95; transform: translateX(-6px); } /* 少し行き過ぎ→戻る */
  100%{ opacity: 0.95; transform: translateX(0); }
}
.infinity-wrap{
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* 背景画像を背面に敷く */
.infinity-wrap .bg-image{
  position: absolute;
  left: 50%;
  top: 110%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 1100px;
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
  max-height: fit-content;
}


/* SVGを前面に */
.infinity-wrap svg{
  position: relative;
  z-index: 2;
}


/* =========================
   Tabs + FAQ (scoped)
   File: css/tabs-faq.css
========================= */

/* 共通：安全策（既存CSSの影響を受けにくくする） */
.tabs, .tabs * { box-sizing: border-box; }

/* --- Tabs Nav --- */
.tabs__nav{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.tabs__btn{
  appearance: none;
  border: 1px solid #ddd;
  background: #fff;
  color: #333;
  padding: 12px 14px;
  cursor: pointer;
  line-height: 1.2;
  font-weight: 600;
  transition: transform .05s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.tabs__btn:hover{ border-color: #bbb; }
.tabs__btn:active{ transform: translateY(1px); }

.tabs__btn.is-active{
  border-color: #0078b7;
  background: #0078b7;
  color: #fff;
}

/* フォーカス可視化（A11y） */
.tabs__btn:focus-visible{
  outline: 3px solid rgba(0,120,183,.35);
  outline-offset: 2px;
}

/* --- Panels --- */
.tabs__panels{
  padding: 18px 0;
  background: #fff;
}

.tabs__panel[hidden]{ display: none !important; }

/* セクションタイトル強化 */
.tabs__title{
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0 0 20px;
  padding-bottom: 10px;
  position: relative;
  line-height: 1.4;
}

.tabs__title::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 60px;
  height: 3px;
  background: #0078b7;
  border-radius: 2px;
}

/* --- FAQ --- */
.faq{
  display: grid;
  gap: 14px;
}

/* Q + A を1枚カードにする */
.faq-item{
  border: none;
  border-radius: 14px;
  background: #fff;
  padding: 14px 16px;
  margin: 0; /* grid gapで間隔管理 */
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, transform .1s ease;
}
.faq-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

.faq-q{
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
}

/* Accordion button */
.faq-toggle{
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 0;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  position: relative;
}

.faq-toggle::after{
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  font-weight: 700;
}
.faq-toggle[aria-expanded="true"]::after{
  content: "−";
}

/* Answer container */
.faq-a{
  margin-top: 12px;
  color: #333;
  line-height: 1.8;

  /* slide */
  overflow: hidden;
  height: 0;                    /* JSが開いているものはheightを設定 */
  transition: height .28s ease;
  will-change: height;
}

/* 回答の先頭に A. */
.faq-a::before{
  content: "A. ";
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}

/* テキスト/リスト */
.faq-a p{ margin: 0 0 10px; }

.faq-a ul{
  list-style: disc;
  list-style-position: outside;
  padding-left: 1.4em;
  margin: 0 0 10px;
}

.faq-a li{
  display: list-item;
  margin: 4px 0;
}

/* Reduce Motion */
@media (prefers-reduced-motion: reduce){
  .faq-a{ transition: none; }
}

/* --- Responsive --- */
@media (max-width: 768px){
  .tabs__panels{ padding: 0; }

  .tabs__btn{
    padding: 11px 12px;
    font-size: .95rem;
  }

  .tabs__title{ font-size: 1.2rem; }

  .faq-q{ font-size: 1rem; }
  .faq-item{ padding: 12px; }
  .faq-toggle{ font-size: 1rem; }
}


/* =========================================================
   Global Navigation (Black / JP+EN 2-line / SP hamburger)
   - PC: ロゴ + ナビ 横並び（同じ高さ）
   - SP: ロゴ + バーガーのみ表示 → クリックでメニュー展開
   - 現在ページ: 英字だけ青
   - Contact: 罫線なし
   - 黒帯上下に余白
========================================================= */

.global-nav{
  background: #000;
  color: #fff;
  margin: 0;      /* 黒帯の上下余白 */
}

/* PCで「inner(ロゴ/バーガー領域)」と「menu(ナビ)」を同じ段に */
@media (min-width: 769px){
  .global-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding:2em 4em;
  }

  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    padding: 0;
  }

  .global-nav__menu{
    display: block;
  }
}

/* ロゴ */
.global-nav__logo{
  display: flex;
  align-items: center;
  line-height: 1;
}
.global-nav__logo img{
  height: 28px;   /* ロゴを小さめに */
  width: auto;
  display: block;
}

/* ナビ */
.global-nav__list{
  display: flex;
  align-items: center;
  gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.global-nav__list li a{
  text-decoration: none;
  color: #fff;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  height: 64px;      /* ヘッダー高さと揃える */
  padding: 0 6px;
  transition: opacity .2s ease, transform .15s ease;
}

.global-nav__list li a:hover{
  opacity: .7;
  transform: translateY(-2px);
}

.global-nav .jp{
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}

.global-nav .en{
  font-size: .75rem;
  letter-spacing: .1em;
  margin-top: 4px;
  opacity: .6;
}

/* 現在ページ：英字だけ青 */
.global-nav__list li.current .en{
  color: #0078b7;
  opacity: 1;
  font-weight: 600;
}

/* お問合わせ：罫線なし（通常リンクと同じ） */
.global-nav__list li.contact a{
  border: none;
  border-radius: 0;
}
/* ---------------------------------
プルダウン
------------------------------------ */
/* dropdown parent */
.global-nav__list li.has-dropdown{
  position:relative;
  z-index: 9999; /*最前面に */
}
  /* メニュー本体をさらに前面へ */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: absolute;
    z-index: 10000;
  }


/* SP：ドロップダウンは必ず押し出す（被り防止） */
@media (max-width: 768px){

  /* PC用の absolute を強制的に無効化 */
  .global-nav__list li.has-dropdown > .dropdown-menu{
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
  }

  /* 念のため：li側で潰している overflow があれば解除 */
  .global-nav__list li.has-dropdown{
    overflow: visible !important;
  }

}


/* dropdown menu */
.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:10px 0;
  list-style:none;
  min-width:180px;
  box-shadow:0 10px 20px rgba(0,0,0,0.1);

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:all .25s ease;
}

/* dropdown item */
.dropdown-menu li a{
  display:block;
  padding:10px 20px;
  font-size:0.9rem;
  color:#333;
  text-decoration:none;
}

.dropdown-menu li a:hover{
  background:#f5f5f5;
}

/* hover show */
.has-dropdown:hover .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
/* ▼を右端に固定する */
.has-dropdown > a{
  position: relative;
  padding-right: 28px; /* ▼の分の余白 */
}

.has-dropdown > a::after{
  content: "▼";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.65em;
  line-height: 1;
  opacity: .8;
}
/* PCでもクリック(open)で開く */
@media (min-width: 769px){
  .has-dropdown.open .dropdown-menu{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}
@media (max-width:768px){
  .has-dropdown > a{
    position:relative;
    padding-right:28px;
  }

  .has-dropdown > a::after{
    content:"▼";
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    font-size:0.65em;
  }

}
@media (max-width: 768px){
  .has-dropdown.open > a::after{
    content: "▲";
  }
}

@media (max-width:768px){

  .dropdown-menu{
    position:static;
    box-shadow:none;
    padding-left:20px;
    transform:none;
    background:#000;
    /* display / opacity / visibility はここでは触らない */
  }
  .dropdown-menu a{
    color: #fff!important;
  }

  /* サブメニュー：アニメーション */
  .has-dropdown .dropdown-menu{
    display:block;          /* ←必須 */
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-4px);
    transition: max-height .28s ease, opacity .22s ease, transform .22s ease;
    padding-top:0;
    padding-bottom:0;
  }

  .has-dropdown.open .dropdown-menu{
    opacity:1;
    transform: translateY(0);
    padding-top:8px;
    padding-bottom:8px;
  }

}

/* ハンバーガー（PCでは非表示） */
.nav-toggle{
  display: none;
  appearance: none;
  border: none;
  background: transparent;
  color: #fff;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  align-items: center;
  gap: 10px;
}

.nav-toggle__bars{
  width: 22px;
  height: 14px;
  position: relative;
  display: inline-block;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: #fff;
}
.nav-toggle__bars::before{ top: 2px; }
.nav-toggle__bars::after{ bottom: 2px; }

.nav-toggle__text{
  font-size: .8rem;
  letter-spacing: .08em;
  opacity: .85;
}


/* ===== SP ===== */
@media (max-width: 768px){

  /* SPは nav を通常ブロックに */
  .global-nav{
    display: block;
    padding: 0;
  }

  /* 上段：ロゴ + バーガーのみ */
  .global-nav__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    padding: 0 16px;
  }

  .global-nav__logo img{
    height: 24px; /* SPはさらに少し小さく */
  }

  .nav-toggle{
    display: inline-flex;
    align-items: center;
  }

  /* メニューは初期非表示、開いたら表示 */
  .global-nav__menu{
    display: none;
    border-top: 1px solid rgba(255,255,255,.15);
  }
  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* SPメニューは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }

  .global-nav__list li a{
    height: auto;
    align-items: flex-start;
    padding: 14px 16px;
    transform: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  .global-nav .jp{ font-size: 1rem; }
  .global-nav .en{ font-size: .72rem; }
}
/* ================================
   SP：メニューをページに被せる（押し出さない）
================================ */
@media (max-width: 768px){

  /* navを基準にして、メニューを絶対配置で重ねる */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* 押し出しの原因になる余白がある場合に備えて */
  .global-nav__menu{
    display: none;
    position: absolute;
    left: 0;
    top: 100%;              /* ヘッダーの直下 */
    width: 100%;
    background: #000;
    border-top: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 10px 24px rgba(0,0,0,.25);
  }

  .global-nav.is-open .global-nav__menu{
    display: block;
  }

  /* メニュー内は縦並び（既存のままでOKですが念のため） */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px 0;
  }
}

/* ================================
   SP：フルスクリーン + スライドメニュー
   - 押し出さない
   - 画面いっぱい背景
================================ */
@media (max-width: 768px){

  /* 画面全体の暗い背景（オーバーレイ） */
  .global-nav::before{
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.72);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 9998; /* メニューより背面 */
  }

  .global-nav.is-open::before{
    opacity: 1;
    pointer-events: auto; /* 背景タップを拾える状態 */
  }

  /* メニュー本体をフルスクリーンパネルに */
  .global-nav__menu{
    display: block;           /* ← display切替ではなく常時配置 */
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;            /* 画面いっぱい */
    background: #000;         /* 背景色（ご希望） */
    z-index: 9999;

    /* スライド（上から） */
    transform: translateY(-100%);
    transition: transform .28s ease;
    will-change: transform;

    /* 中身スクロール */
    overflow: auto;
    -webkit-overflow-scrolling: touch;

    /* ヘッダー行（ロゴ+バーガー）分だけ上を空けたい場合は後述 */
  }

  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
  }

  /* SPメニュー内レイアウト */
  .global-nav__list{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 72px 0 16px;  /* ← 上部に余白（ロゴ行の高さ相当） */
  }

  .global-nav__list li a{
    align-items: flex-start;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    transform: none;
  }

  .global-nav__list li:last-child a{
    border-bottom: none;
  }

  /* ハンバーガー（上に乗るように） */
  .global-nav__inner{
    position: relative;
    z-index: 10000; /* メニューより手前（閉じボタンとして機能） */
  }

  /* reduce motion */
  @media (prefers-reduced-motion: reduce){
    .global-nav::before,
    .global-nav__menu{
      transition: none;
    }
  }
}
/* ================================
   SP：黒帯の下からスライド表示
================================ */
@media (max-width: 768px){

  /* 黒帯を基準にする */
  .global-nav{
    position: relative;
    z-index: 1000;
  }

  /* メニューを黒帯の直下に配置 */
  .global-nav__menu{
    position: absolute;
    left: 0;
    top: 100%;              /* ← 黒帯の下から */
    width: 100%;
    background: #000;

    transform: translateY(-10px);
    opacity: 0;
    pointer-events: none;

    transition: transform .25s ease, opacity .25s ease;
    box-shadow: 0 12px 24px rgba(0,0,0,.25);
  }

  /* 開いたとき */
  .global-nav.is-open .global-nav__menu{
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  /* SPは縦並び */
  .global-nav__list{
    flex-direction: column;
    align-items: stretch;
    padding: 10px 0;
  }

}


/* =========================================================
  ページのタイトル周り

========================================================= */
.main h1 {
  line-height: 1.2em;
}

.page-subtitle{
  font-size: 1.25em;
  padding-bottom:2em;
    padding-left: 0em;
  margin-top: -2em;
}
.page-contact h1{ /*お問い合わせページのマージン対策*/
  margin: 0 0 48px;
}
@media screen and (max-width: 768px) {
  .main h1 {
    margin: 0 0 20px;
  }
  .page-subtitle{
    font-size: 1.0em;
    padding-bottom:1em;
    margin-top: -1.25em;
  }

}

/* =========================================================
   Works
   タイトル下のサブ見出し
   横タイル型から、縦一列型に。
   ※スマートフォンレイアウトは変更しない。
   一旦削除
========================================================= */


/* =========================================================
   Contact
========================================================= */


/* ラジオ項目の補助リンク　パートナー対策 */
.mwform-radio-help{
  display:inline-block;
  margin-left:8px;
}

@media (max-width:768px){

  .mwform-radio-help{
    display:block;
    margin-left:20px;
    margin-top:4px;
  }

}

/*パートナー*/
/* Partner Modal */
.partner-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* 表示状態 */
.partner-modal.is-open{
  opacity: 1;
  visibility: visible;
}

.partner-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.partner-modal__dialog{
  position: relative;
  width: min(920px, 92vw);
  max-height: 86vh;
  overflow: auto;
  background: #fff;
  padding: 28px 26px 26px;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
  transform: translateY(20px);
  transition: transform .35s ease;
}
.partner-modal__dialog{
  transform: translateY(20px) scale(.97);
}
.partner-modal.is-open .partner-modal__dialog{
  transform: translateY(0) scale(1);
}

.partner-modal__close{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 44px;
  cursor: pointer;
}

.partner-modal__title{
  font-size: 2.4rem;
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: .08em;
}

.partner-modal__sub{
  margin: 0 0 18px;
  font-size: 1.5em;
  color: #333;
  font-weight: bold;
}

.partner-modal__body p{
  margin: 0 0 18px;
  line-height: 1.9;
}

.partner-modal__list{
  margin: 0;
  padding-left: 1.2em;
  line-height: 1.9;
}
/* カードリスト */
.partner-modal__list{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:16px;
  margin-top:20px;
  padding:0;
  list-style:none;
}

/* カード */
.partner-modal__list li{
  background:#f7f7f7;
  border:1px solid #e5e5e5;
  border-radius:10px;
  padding:14px 16px;
  font-size:0.95rem;
  line-height:1.6;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
  transition:transform .2s ease, box-shadow .2s ease;
}

/* hover */
.partner-modal__list li:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}

@media (max-width: 768px){
  .partner-modal__dialog{
    margin-top: 2vh;
    padding: 22px 18px 18px;
    width:85vw;
  }
  .partner-modal__title{ font-size: 2.0rem; }
  .partner-modal__list{
    grid-template-columns: 1fr;
  }
  .partner-modal__sub{
    font-size: 1.2em;
  }

}

/* --------------------------------
PROFILE
---------------------------------- */
.page-about h1 {
    margin: 0 0 48px;
}

/* --------------------------------
事業内容　メディアプランニング
---------------------------------- */


.realm-heading{
  text-align:center;
  margin:80px 0 40px;
}

.realm-heading h2{
  font-size:2.2rem;
  font-weight:600;
}

.realm-heading .en{
  display:block;
  font-size:0.85rem;
  letter-spacing:.2em;
  opacity:.6;
  margin-top:6px;
}


/*消すかも medeia2.html側 */
.realm-heading{
  text-align: center;
  margin: 0 0 30px;
}

.realm-heading h2{
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 600;
  margin: 0;
}

.realm-heading .en{
  display: block;
  margin-top: 8px;
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  color: #777;
}
/* .home header.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color:transparent;
}
.home .global-nav{background-color:transparent;} */
.body-index .site-header .global-nav.is-open{background:#000;}

.remark{background:#fff;padding:2em;max-width:800px;margin:2em auto 0;}
.remark p+p{margin-top:1em;}
.page-vision .main .content .text{padding:0 20px;}
@media (max-width: 768px){
  .remark{margin:2em 3.125% 0;}
  .page-vision .main .content .text{padding:0;}
}
:root{
  --wp--preset--font-size--large:28px;
}
@media (max-width: 768px){
  :root{
    --wp--preset--font-size--large:1.7142rem;
  }
}
