@charset "UTF-8";
/*
Theme Name:origin
Description:origin template
Version:1.0
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  -webkit-padding-start: 0;
  line-height: 1;
  -webkit-text-size-adjust: none;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0; }

ol,
ul {
  list-style: none; }

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

input[type="password"],
input[type="text"],
input[type="submit"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="button"],
button,
textarea,
select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none; }

input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px; }

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

body, html {
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.6;
  font-family: "Noto Sans JP", sans-serif;
  min-height: 100vh; }

a {
  font-size: inherit;
  color: inherit;
  text-decoration: inherit;
  display: inline-block; }

.SpHide {
  display: block; }
  @media (max-width: 768px) {
    .SpHide {
      display: none; } }

@keyframes shake {
  0% {
    transform: translate(0px, 0px) rotateZ(0deg); }
  2% {
    transform: translate(2px, 2px) rotateZ(2deg); }
  4% {
    transform: translate(0px, 2px) rotateZ(0deg); }
  6% {
    transform: translate(2px, 0px) rotateZ(-2deg); }
  8% {
    transform: translate(0px, 0px) rotateZ(0deg); }
  10% {
    transform: translate(2px, 2px) rotateZ(2deg); }
  12% {
    transform: translate(0px, 0px) rotateZ(0deg); }
  14% {
    transform: translate(2px, 0px) rotateZ(-2deg); }
  16% {
    transform: translate(0px, 2px) rotateZ(0deg); }
  18% {
    transform: translate(0px, 0px) rotateZ(0deg); }
  100% {
    transform: translate(0px, 0px) rotateZ(0deg); } }
.header {
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 999999;
  background: rgba(255, 255, 255, 0.8); }
  .header .inner__sp {
    display: none; }
    @media (max-width: 1024px) {
      .header .inner__sp {
        display: grid;
        grid-template-columns: 180px 1fr 60px;
        height: 50px; } }
    .header .inner__sp > div.button {
      grid-column: 3 / 4;
      display: flex;
      align-items: center;
      justify-content: center; }
    .header .inner__sp > a:first-child {
      display: flex;
      justify-content: center;
      align-items: center;
      padding-left: 10px; }
      @media (max-width: 768px) {
        .header .inner__sp > a:first-child {
          padding: 0 55px 0 8px; } }
    .header .inner__sp .menu-trigger, .header .inner__sp .menu-trigger span {
      display: inline-block;
      transition: all .4s;
      box-sizing: border-box; }
    .header .inner__sp .menu-trigger {
      position: relative;
      width: 25px;
      height: 25px;
      background: none;
      border: none;
      appearance: none;
      cursor: pointer; }
      .header .inner__sp .menu-trigger span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 3px;
        background-color: #585858;
        border-radius: 4px; }
        .header .inner__sp .menu-trigger span:nth-of-type(1) {
          top: 2px; }
        .header .inner__sp .menu-trigger span:nth-of-type(2) {
          top: 11px; }
        .header .inner__sp .menu-trigger span:nth-of-type(3) {
          bottom: 2px; }
    .header .inner__sp .menu-trigger.active {
      transform: rotate(360deg); }
      .header .inner__sp .menu-trigger.active span:nth-of-type(1) {
        transform: translateY(9px) rotate(-45deg); }
      .header .inner__sp .menu-trigger.active span:nth-of-type(2) {
        transform: translateY(0) rotate(45deg); }
      .header .inner__sp .menu-trigger.active span:nth-of-type(3) {
        opacity: 0; }
    .header .inner__sp .sp_menu_list {
      opacity: 0;
      transition: 0.5s;
      top: 50px;
      right: 0;
      position: fixed;
      z-index: 9999;
      width: 100%;
      background: rgba(255, 255, 255, 0.8);
      backdrop-filter: blur(4px);
      overflow: auto;
      height: 100%;
      box-sizing: border-box;
      padding: 30px 20px 60px;
      -webkit-overflow-scrolling: touch;
      pointer-events: none; }
      .header .inner__sp .sp_menu_list.active {
        transition: 0.5s;
        opacity: 1;
        pointer-events: auto; }
      .header .inner__sp .sp_menu_list ul {
        width: 100%;
        margin-bottom: 25px;
        color: #FFF; }
        .header .inner__sp .sp_menu_list ul li {
          font-size: 18px;
          letter-spacing: 2px;
          padding: 15px 5%;
          box-sizing: border-box;
          border-bottom: 1px solid #707070;
          margin-bottom: 25px;
          display: flex;
          align-items: center; }
          .header .inner__sp .sp_menu_list ul li a {
            color: #707070; }
  .header .inner__pc {
    width: 100%;
    max-width: 1920px;
    height: 100px;
    margin: auto;
    display: grid;
    grid-template-columns: 240px 1fr 1400px;
    align-items: center; }
    @media (max-width: 1024px) {
      .header .inner__pc {
        display: none; } }
    .header .inner__pc nav {
      grid-column: 3 / 4;
      height: 100%; }
    .header .inner__pc .pc__navi {
      display: flex;
      justify-content: space-between;
      height: 100%; }
      .header .inner__pc .pc__navi li {
        width: calc(70%/6);
        height: 100%;
        display: flex;
        align-items: center; }
        .header .inner__pc .pc__navi li:nth-child(7) {
          width: 15%; }
        .header .inner__pc .pc__navi li:nth-child(8) {
          width: 15%; }
        .header .inner__pc .pc__navi li a {
          display: flex;
          align-items: center;
          width: 100%;
          text-align: center;
          font-size: 1rem;
          font-weight: 400;
          line-height: 2;
          letter-spacing: 4px;
          justify-content: center;
          color: #2E2E2E; }
          .header .inner__pc .pc__navi li a i {
            margin-right: 8px; }
          .header .inner__pc .pc__navi li a.btn_recruit {
            background: #FF9100;
            color: #FFF;
            height: 100%;
            display: flex; }
          .header .inner__pc .pc__navi li a.btn_contact {
            background: #0e002e;
            color: #FFF;
            height: 100%;
            display: flex; }
    .header .inner__pc .header__logo {
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 8px 24px;
      box-sizing: border-box; }

.section, .intro, .solution, .strong, .news, .contact, .about-intro, .strong-intro, .strong-concept, .team-structure, .profile-section, .company-overview, .results-nav, .result-detail, .flow-intro, .flow-steps, .flow-cta, .contact-form-section, .contents-intro, .contents-section, .contents-cta {
  width: 100%;
  margin: auto;
  position: relative;
  *zoom: 1; }
  .section:after, .intro:after, .solution:after, .strong:after, .news:after, .contact:after, .about-intro:after, .strong-intro:after, .strong-concept:after, .team-structure:after, .profile-section:after, .company-overview:after, .results-nav:after, .result-detail:after, .flow-intro:after, .flow-steps:after, .flow-cta:after, .contact-form-section:after, .contents-intro:after, .contents-section:after, .contents-cta:after {
    content: "";
    display: table;
    clear: both; }
  .section > .inner, .intro > .inner, .solution > .inner, .strong > .inner, .news > .inner, .contact > .inner, .about-intro > .inner, .strong-intro > .inner, .strong-concept > .inner, .team-structure > .inner, .profile-section > .inner, .company-overview > .inner, .results-nav > .inner, .result-detail > .inner, .flow-intro > .inner, .flow-steps > .inner, .flow-cta > .inner, .contact-form-section > .inner, .contents-intro > .inner, .contents-section > .inner, .contents-cta > .inner {
    max-width: 1200px;
    margin: auto;
    box-sizing: border-box;
    padding: 64px 20px; }
    @media (max-width: 480px) {
      .section > .inner, .intro > .inner, .solution > .inner, .strong > .inner, .news > .inner, .contact > .inner, .about-intro > .inner, .strong-intro > .inner, .strong-concept > .inner, .team-structure > .inner, .profile-section > .inner, .company-overview > .inner, .results-nav > .inner, .result-detail > .inner, .flow-intro > .inner, .flow-steps > .inner, .flow-cta > .inner, .contact-form-section > .inner, .contents-intro > .inner, .contents-section > .inner, .contents-cta > .inner {
        padding: 32px 16px; } }
    .section > .inner.right, .intro > .inner.right, .solution > .inner.right, .strong > .inner.right, .news > .inner.right, .contact > .inner.right, .about-intro > .inner.right, .strong-intro > .inner.right, .strong-concept > .inner.right, .team-structure > .inner.right, .profile-section > .inner.right, .company-overview > .inner.right, .results-nav > .inner.right, .result-detail > .inner.right, .flow-intro > .inner.right, .flow-steps > .inner.right, .flow-cta > .inner.right, .contact-form-section > .inner.right, .contents-intro > .inner.right, .contents-section > .inner.right, .contents-cta > .inner.right {
      margin: 0;
      float: right; }
    .section > .inner.left, .intro > .inner.left, .solution > .inner.left, .strong > .inner.left, .news > .inner.left, .contact > .inner.left, .about-intro > .inner.left, .strong-intro > .inner.left, .strong-concept > .inner.left, .team-structure > .inner.left, .profile-section > .inner.left, .company-overview > .inner.left, .results-nav > .inner.left, .result-detail > .inner.left, .flow-intro > .inner.left, .flow-steps > .inner.left, .flow-cta > .inner.left, .contact-form-section > .inner.left, .contents-intro > .inner.left, .contents-section > .inner.left, .contents-cta > .inner.left {
      margin: 0;
      float: left; }

.section p, .intro p, .solution p, .strong p, .news p, .contact p, .about-intro p, .strong-intro p, .strong-concept p, .team-structure p, .profile-section p, .company-overview p, .results-nav p, .result-detail p, .flow-intro p, .flow-steps p, .flow-cta p, .contact-form-section p, .contents-intro p, .contents-section p, .contents-cta p {
  font-size: 1rem;
  line-height: 2;
  font-weight: 400; }
  .section p.large, .intro p.large, .solution p.large, .strong p.large, .news p.large, .contact p.large, .about-intro p.large, .strong-intro p.large, .strong-concept p.large, .team-structure p.large, .profile-section p.large, .company-overview p.large, .results-nav p.large, .result-detail p.large, .flow-intro p.large, .flow-steps p.large, .flow-cta p.large, .contact-form-section p.large, .contents-intro p.large, .contents-section p.large, .contents-cta p.large {
    font-size: 1.4rem; }
    @media (max-width: 640px) {
      .section p.large, .intro p.large, .solution p.large, .strong p.large, .news p.large, .contact p.large, .about-intro p.large, .strong-intro p.large, .strong-concept p.large, .team-structure p.large, .profile-section p.large, .company-overview p.large, .results-nav p.large, .result-detail p.large, .flow-intro p.large, .flow-steps p.large, .flow-cta p.large, .contact-form-section p.large, .contents-intro p.large, .contents-section p.large, .contents-cta p.large {
        font-size: 1.1rem; } }
  .section p.maxi, .intro p.maxi, .solution p.maxi, .strong p.maxi, .news p.maxi, .contact p.maxi, .about-intro p.maxi, .strong-intro p.maxi, .strong-concept p.maxi, .team-structure p.maxi, .profile-section p.maxi, .company-overview p.maxi, .results-nav p.maxi, .result-detail p.maxi, .flow-intro p.maxi, .flow-steps p.maxi, .flow-cta p.maxi, .contact-form-section p.maxi, .contents-intro p.maxi, .contents-section p.maxi, .contents-cta p.maxi {
    font-size: 3rem; }
    @media (max-width: 640px) {
      .section p.maxi, .intro p.maxi, .solution p.maxi, .strong p.maxi, .news p.maxi, .contact p.maxi, .about-intro p.maxi, .strong-intro p.maxi, .strong-concept p.maxi, .team-structure p.maxi, .profile-section p.maxi, .company-overview p.maxi, .results-nav p.maxi, .result-detail p.maxi, .flow-intro p.maxi, .flow-steps p.maxi, .flow-cta p.maxi, .contact-form-section p.maxi, .contents-intro p.maxi, .contents-section p.maxi, .contents-cta p.maxi {
        font-size: 2rem; } }

.intro {
  background: #F5F5F5; }
  .intro .inner .floating_contents {
    background: #FFF;
    margin: -120px auto 0;
    box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
    width: fit-content;
    padding: 32px;
    box-sizing: border-box; }
    .intro .inner .floating_contents p {
      font-size: 16px;
      text-align: center;
      margin-bottom: 16px;
      background: #111;
      color: #FFF;
      padding: 4px 8px; }
  .intro .inner ul {
    display: flex;
    margin: 40px auto;
    flex-wrap: wrap;
    justify-content: space-between; }
    .intro .inner ul li {
      width: 30%;
      gap: 2%;
      background: #FFF;
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      flex-direction: column;
      padding: 16px;
      box-sizing: border-box; }
      .intro .inner ul li p {
        font-size: 20px;
        line-height: 1.6; }
        .intro .inner ul li p span {
          color: #0e002e;
          text-decoration: underline; }
  .intro .inner img {
    width: 48px;
    display: block;
    margin: 0 auto 8px;
    filter: invert(49%) sepia(31%) saturate(3859%) hue-rotate(154deg) brightness(92%) contrast(101%);
    animation: shake 2.2s infinite; }
    @media (max-width: 768px) {
      .intro .inner img {
        width: 30px; } }

.solution .inner ul {
  display: flex;
  margin: 40px auto;
  max-width: 1200px;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2%; }
  .solution .inner ul li {
    width: 32%;
    background: #FFF;
    margin-bottom: 16px;
    box-sizing: border-box;
    position: relative; }
    .solution .inner ul li div {
      position: absolute;
      color: #FFF;
      font-size: 28px;
      font-weight: 700;
      left: 16px;
      top: 16px;
      line-height: 1.4;
      background: rgba(14, 0, 46, 0.8);
      padding: 8px;
      box-sizing: border-box; }

.strong {
  background: #F5F5F5; }
  .strong .inner ul {
    display: flex;
    margin: 40px auto;
    max-width: 1200px;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2%; }
    .strong .inner ul li {
      width: 100%;
      background: #FFF;
      margin-bottom: 32px;
      box-sizing: border-box;
      display: flex; }
      .strong .inner ul li img {
        width: 50%; }
      .strong .inner ul li div {
        width: 50%;
        padding: 16px;
        background: #FFF;
        box-sizing: border-box; }
        .strong .inner ul li div p:first-child {
          font-size: 32px;
          line-height: 1.6;
          letter-spacing: 1px;
          border-bottom: 3px solid #0e002e;
          padding-bottom: 16px;
          color: #0e002e; }
          .strong .inner ul li div p:first-child span {
            font-family: "Oswald", serif;
            font-weight: 900;
            font-size: 48px; }
        .strong .inner ul li div p:last-child {
          font-size: 20px;
          margin-top: 24px; }

.news .inner dl {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  font-size: 16px; }
  .news .inner dl dt {
    width: 15%;
    border-bottom: 1px solid;
    padding-bottom: 16px; }
  .news .inner dl dd {
    width: 70%;
    border-bottom: 1px solid;
    padding-bottom: 16px; }

.contact {
  display: flex;
  justify-content: center;
  align-items: center;
  background: url(../img/contact_bg.jpg) no-repeat;
  min-height: 600px;
  background-size: cover;
  background-position: center; }
  .contact .inner {
    max-width: 1000px;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.6);
    width: 100%; }

footer {
  width: 100%;
  padding: 24px 0;
  margin-top: 60px;
  background: #0e002e;
  box-sizing: border-box; }
  footer .inner ul {
    display: flex;
    max-width: 1000px;
    width: 100%;
    margin: 16px auto 48px;
    justify-content: space-between; }
    @media (max-width: 768px) {
      footer .inner ul {
        display: none; } }
    footer .inner ul a {
      color: #FFF; }
  footer .inner p {
    color: #FFF;
    text-align: center; }

.pan, .pan--nomargin {
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
  margin: 0 0 32px 0; }
  @media (max-width: 768px) {
    .pan, .pan--nomargin {
      margin: 0 0 32px 0; } }
  .pan ol, .pan--nomargin ol {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row; }
  .pan a, .pan--nomargin a {
    display: inline-block;
    font-size: 1rem;
    line-height: 1.5;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s; }
    @media (max-width: 480px) {
      .pan a, .pan--nomargin a {
        font-size: 0.8rem; } }
    .pan a:hover, .pan--nomargin a:hover {
      -webkit-transition: all 0.3s;
      -moz-transition: all 0.3s;
      transition: all 0.3s; }
    .pan a:after, .pan--nomargin a:after {
      content: '\f0da';
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      display: inline-block;
      margin: 0 10px; }
  .pan li:last-child a:after, .pan--nomargin li:last-child a:after {
    content: none; }

.pan--nomargin {
  margin: 80px 0 0 0;
  border-bottom: none; }
  @media (max-width: 768px) {
    .pan--nomargin {
      margin: 60px 0 0 0; } }

.card, .card__flex, .card__flex--nowrap, .card__flex--wrap, .card__flex--wrap--fs {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 30px;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  *zoom: 1; }
  @media (max-width: 768px) {
    .card, .card__flex, .card__flex--nowrap, .card__flex--wrap, .card__flex--wrap--fs {
      padding: 15px 0;
      margin-bottom: 0; } }
  .card:after, .card__flex:after, .card__flex--nowrap:after, .card__flex--wrap:after, .card__flex--wrap--fs:after {
    content: "";
    display: table;
    clear: both; }

.card__flex, .card__flex--nowrap, .card__flex--wrap, .card__flex--wrap--fs {
  display: flex;
  overflow: hidden;
  flex-direction: row; }

.card__flex--nowrap {
  flex-flow: row nowrap;
  justify-content: space-around; }

.card__flex--wrap {
  flex-flow: row wrap;
  justify-content: space-around; }

.card__flex--wrap--fs {
  flex-flow: row wrap;
  justify-content: flex-start; }

.price__wrap {
  margin: 0 auto;
  text-align: center; }
  .price__wrap p:first-child {
    font-size: 28px;
    line-height: 1.4;
    margin-bottom: 24px; }
    @media (max-width: 768px) {
      .price__wrap p:first-child {
        font-size: 24px; } }
  .price__wrap p:last-child {
    font-size: 20px; }
    .price__wrap p:last-child span {
      font-family: "Oswald", serif;
      font-weight: 900;
      font-size: 64px; }

.block, .block__div1, .block__div2, .block__div3, .block__div4 {
  width: 100%;
  box-sizing: border-box;
  padding: 15px;
  position: relative; }

.block__div1 {
  width: 100%; }

.block__div2 {
  width: 50%; }
  @media (max-width: 768px) {
    .block__div2 {
      width: 100%; } }

.block__div3 {
  width: 33.3%; }
  @media (max-width: 768px) {
    .block__div3 {
      width: 100%;
      margin-bottom: 10px; } }

.block__div4 {
  width: 25%; }
  @media (max-width: 768px) {
    .block__div4 {
      width: 50%; } }

.title {
  position: relative;
  width: 100%;
  overflow: hidden; }
  @media (max-width: 480px) {
    .title {
      min-height: 100px;
      height: auto; } }

.heading_01 {
  text-align: center;
  font-size: 28px;
  line-height: 1.6;
  font-weight: 500;
  margin: 0 auto 48px;
  color: #373a3c; }
  @media (max-width: 768px) {
    .heading_01 {
      margin: 0 auto 16px; } }

.heading_02 {
  text-align: center;
  font-size: 28px;
  line-height: 1.6;
  font-weight: 500;
  margin: 0 auto 48px;
  color: #373a3c; }
  @media (max-width: 768px) {
    .heading_02 {
      font-size: 5vw; } }

.btn, .btn__more, .btn__submit, .btn__back {
  display: block;
  margin: 15px auto; }

.btn__more {
  border: 1px solid #0e002e;
  padding: 16px;
  box-sizing: border-box;
  border-radius: 50px;
  width: 320px;
  text-align: center;
  font-size: 20px;
  position: relative;
  -webkit-transition: all .3s;
  transition: all .3s; }
  .btn__more::after {
    content: "";
    width: 12px;
    height: 12px;
    mask-image: url(../img/arrow-right-solid.svg);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    background-color: #0e002e;
    display: block;
    position: absolute;
    right: 8px;
    top: 40%; }
  .btn__more:hover {
    color: #fff;
    background: #0e002e;
    -webkit-transition: all .3s;
    transition: all .3s; }
    .btn__more:hover::after {
      background-color: #FFF; }

.list a {
  *zoom: 1;
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  transition: all 0.3s; }
  .list a:after {
    content: "";
    display: table;
    clear: both; }
  .list a:hover {
    opacity: 0.6;
    filter: alpha(opacity=60);
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s; }

/* TOP page responsive styles */
.mv {
  position: relative; }
  .mv .inner {
    padding: 0;
    max-width: none; }
  .mv img {
    width: 100%;
    height: auto;
    display: block; }
    @media (max-width: 768px) {
      .mv img {
        content: url("../img/KV_sp.jpg"); } }

@media (max-width: 768px) {
  .intro .inner .floating_contents {
    margin: -80px auto 0;
    padding: 24px 16px;
    width: 90%; } }
@media (max-width: 480px) {
  .intro .inner .floating_contents {
    margin: -60px auto 0;
    padding: 20px 12px;
    width: 95%; } }
@media (max-width: 768px) {
  .intro .inner .floating_contents h2 {
    font-size: 24px; }
    .intro .inner .floating_contents h2 br {
      display: none; } }
@media (max-width: 480px) {
  .intro .inner .floating_contents h2 {
    font-size: 20px; } }
@media (max-width: 768px) {
  .intro .inner ul {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2%;
    margin: 32px auto; } }
@media (max-width: 968px) {
  .intro .inner ul li {
    width: 48%;
    margin-bottom: 20px; } }
@media (max-width: 768px) {
  .intro .inner ul li {
    width: 48%;
    margin-bottom: 16px;
    padding: 20px 16px; } }
@media (max-width: 480px) {
  .intro .inner ul li {
    padding: 16px 12px; } }
@media (max-width: 768px) {
  .intro .inner ul li p {
    font-size: 18px; }
    .intro .inner ul li p br {
      display: none; } }
@media (max-width: 480px) {
  .intro .inner ul li p {
    font-size: 16px; } }

@media (max-width: 968px) {
  .solution .inner ul {
    gap: 1%; } }
@media (max-width: 768px) {
  .solution .inner ul {
    flex-direction: column;
    gap: 0;
    margin: 32px auto; } }
@media (max-width: 968px) {
  .solution .inner ul li {
    width: 48%;
    margin-bottom: 20px; } }
@media (max-width: 768px) {
  .solution .inner ul li {
    width: 100%;
    margin-bottom: 16px; } }
.solution .inner ul li img {
  width: 100%;
  height: auto;
  display: block; }
@media (max-width: 768px) {
  .solution .inner ul li div {
    font-size: 28px;
    left: 12px;
    top: 12px; }
    .solution .inner ul li div br {
      display: none; } }
@media (max-width: 480px) {
  .solution .inner ul li div {
    font-size: 24px;
    left: 8px;
    top: 8px; } }
.solution .inner .price__wrap {
  text-align: center;
  margin: 40px 0; }
  @media (max-width: 768px) {
    .solution .inner .price__wrap {
      margin: 32px 0; } }
  .solution .inner .price__wrap p:first-child {
    font-size: 18px;
    margin-bottom: 8px; }
    @media (max-width: 768px) {
      .solution .inner .price__wrap p:first-child {
        font-size: 16px; } }
  .solution .inner .price__wrap p:last-child {
    font-size: 36px;
    font-weight: 700;
    color: #0e002e; }
    @media (max-width: 768px) {
      .solution .inner .price__wrap p:last-child {
        font-size: 28px; } }
    @media (max-width: 480px) {
      .solution .inner .price__wrap p:last-child {
        font-size: 24px; } }
    .solution .inner .price__wrap p:last-child span {
      font-size: 48px;
      font-family: "Oswald", serif;
      font-weight: 900; }
      @media (max-width: 768px) {
        .solution .inner .price__wrap p:last-child span {
          font-size: 36px; } }
      @media (max-width: 480px) {
        .solution .inner .price__wrap p:last-child span {
          font-size: 32px; } }

@media (max-width: 768px) {
  .strong .inner ul {
    margin: 32px auto; } }
@media (max-width: 768px) {
  .strong .inner ul li {
    flex-direction: column;
    margin-bottom: 24px; } }
@media (max-width: 768px) {
  .strong .inner ul li img {
    width: 100%; } }
@media (max-width: 768px) {
  .strong .inner ul li div {
    width: 100%;
    padding: 20px 16px; } }
@media (max-width: 480px) {
  .strong .inner ul li div {
    padding: 16px 12px; } }
@media (max-width: 768px) {
  .strong .inner ul li div p:first-child {
    font-size: 24px; }
    .strong .inner ul li div p:first-child br {
      display: none; } }
@media (max-width: 480px) {
  .strong .inner ul li div p:first-child {
    font-size: 20px; } }
@media (max-width: 768px) {
  .strong .inner ul li div p:first-child span {
    font-size: 36px; } }
@media (max-width: 480px) {
  .strong .inner ul li div p:first-child span {
    font-size: 32px; } }
@media (max-width: 768px) {
  .strong .inner ul li div p:last-child {
    font-size: 16px;
    margin-top: 16px; } }
@media (max-width: 480px) {
  .strong .inner ul li div p:last-child {
    font-size: 14px;
    margin-top: 12px; } }

@media (max-width: 768px) {
  .news .inner dl {
    flex-direction: column;
    max-width: 100%;
    font-size: 14px; } }
@media (max-width: 768px) {
  .news .inner dl dt {
    width: 100%;
    margin-bottom: 8px;
    padding-bottom: 8px; } }
@media (max-width: 768px) {
  .news .inner dl dd {
    width: 100%;
    padding-bottom: 16px;
    margin-bottom: 16px; } }

@media (max-width: 480px) {
  .btn__more {
    font-size: 16px;
    padding: 12px 24px; }
    .btn__more span {
      font-size: 16px; } }

/* About page specific styles */
.page-hero {
  background: url(../img/under_bg.jpg) no-repeat center center;
  background-size: cover;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative; }
  .page-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(14, 0, 46, 0.3); }
  .page-hero .inner {
    position: relative;
    z-index: 2; }
  .page-hero h1 {
    color: #FFF;
    font-size: 48px;
    font-weight: 700;
    text-align: center;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); }
    @media (max-width: 768px) {
      .page-hero h1 {
        font-size: 32px; } }

.about-intro .inner .about-intro-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  max-width: 1000px;
  margin: 0 auto; }
  @media (max-width: 768px) {
    .about-intro .inner .about-intro-layout {
      flex-direction: column;
      gap: 20px; } }
  .about-intro .inner .about-intro-layout .about-intro-image {
    width: 40%; }
    @media (max-width: 768px) {
      .about-intro .inner .about-intro-layout .about-intro-image {
        width: 100%; } }
    .about-intro .inner .about-intro-layout .about-intro-image img {
      width: 100%;
      height: auto;
      border-radius: 8px; }
  .about-intro .inner .about-intro-layout .about-intro-content {
    width: 60%; }
    @media (max-width: 768px) {
      .about-intro .inner .about-intro-layout .about-intro-content {
        width: 100%; } }
    .about-intro .inner .about-intro-layout .about-intro-content h2 {
      font-size: 28px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 24px;
      line-height: 1.4; }
    .about-intro .inner .about-intro-layout .about-intro-content p {
      font-size: 16px;
      line-height: 1.8;
      margin-bottom: 16px;
      color: #333; }
      .about-intro .inner .about-intro-layout .about-intro-content p:last-child {
        margin-bottom: 0; }

.merit-item {
  margin-bottom: 50px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto; }
  .merit-item .merit-content:first-child {
    margin-bottom: 20px; }
    .merit-item .merit-content:first-child .problem {
      background: #f8f9fa;
      padding: 12px 16px;
      border-left: 4px solid #6c757d;
      border-radius: 0;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
      .merit-item .merit-content:first-child .problem span {
        background: #6c757d;
        color: #FFF;
        padding: 2px 6px;
        font-size: 16px;
        font-weight: 700;
        border-radius: 3px;
        margin-right: 8px; }
      .merit-item .merit-content:first-child .problem p {
        margin: 0;
        font-size: 18px;
        line-height: 1.6;
        display: inline; }
  .merit-item .merit-layout {
    display: flex;
    gap: 32px;
    align-items: flex-start;
    margin-bottom: 64px; }
    @media (max-width: 768px) {
      .merit-item .merit-layout {
        flex-direction: column;
        gap: 16px; } }
    .merit-item .merit-layout .merit-image {
      width: 50%; }
      @media (max-width: 768px) {
        .merit-item .merit-layout .merit-image {
          width: 100%; } }
      .merit-item .merit-layout .merit-image img {
        width: 100%;
        height: auto;
        border-radius: 8px; }
    .merit-item .merit-layout .merit-content {
      width: 50%; }
      @media (max-width: 768px) {
        .merit-item .merit-layout .merit-content {
          width: 100%; } }
      .merit-item .merit-layout .merit-content h3 {
        font-size: 28px;
        font-weight: 700;
        color: #0e002e;
        margin-bottom: 16px;
        line-height: 1.4; }
      .merit-item .merit-layout .merit-content > p {
        font-size: 16px;
        line-height: 1.8;
        color: #333;
        margin: 0; }
        .merit-item .merit-layout .merit-content > p:first-child {
          border-bottom: 1px solid #0e002e;
          margin-bottom: 8px;
          font-size: 18px;
          font-weight: 600;
          width: fit-content;
          color: #0e002e; }

/* Strong page specific styles */
.strong-intro .inner .strong-intro-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  max-width: 1000px;
  margin: 0 auto; }
  @media (max-width: 768px) {
    .strong-intro .inner .strong-intro-layout {
      flex-direction: column;
      gap: 20px; } }
  .strong-intro .inner .strong-intro-layout .strong-intro-image {
    width: 40%; }
    @media (max-width: 768px) {
      .strong-intro .inner .strong-intro-layout .strong-intro-image {
        width: 100%; } }
    .strong-intro .inner .strong-intro-layout .strong-intro-image img {
      width: 100%;
      height: auto;
      border-radius: 8px; }
  .strong-intro .inner .strong-intro-layout .strong-intro-content {
    width: 60%; }
    @media (max-width: 768px) {
      .strong-intro .inner .strong-intro-layout .strong-intro-content {
        width: 100%; } }
    .strong-intro .inner .strong-intro-layout .strong-intro-content h2 {
      font-size: 28px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 24px;
      line-height: 1.4; }
    .strong-intro .inner .strong-intro-layout .strong-intro-content p {
      font-size: 16px;
      line-height: 1.8;
      color: #333;
      margin: 0; }

.concept-item {
  margin-bottom: 50px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto; }
  .concept-item .concept-layout {
    display: flex;
    gap: 32px;
    align-items: flex-start; }
    @media (max-width: 768px) {
      .concept-item .concept-layout {
        flex-direction: column;
        gap: 16px; } }
    .concept-item .concept-layout .concept-image {
      width: 50%; }
      @media (max-width: 768px) {
        .concept-item .concept-layout .concept-image {
          width: 100%; } }
      .concept-item .concept-layout .concept-image img {
        width: 100%;
        height: auto;
        border-radius: 8px; }
    .concept-item .concept-layout .concept-content {
      width: 50%; }
      @media (max-width: 768px) {
        .concept-item .concept-layout .concept-content {
          width: 100%; } }
      .concept-item .concept-layout .concept-content h3 {
        font-size: 24px;
        font-weight: 700;
        color: #0e002e;
        margin-bottom: 16px;
        line-height: 1.4; }
      .concept-item .concept-layout .concept-content p {
        font-size: 16px;
        line-height: 1.8;
        color: #333;
        margin: 0; }

.team-structure .team-layout {
  display: flex;
  gap: 40px;
  max-width: 800px;
  margin: 0 auto 80px; }
  @media (max-width: 768px) {
    .team-structure .team-layout {
      flex-direction: column;
      gap: 30px; } }
  .team-structure .team-layout .team-group {
    flex: 1;
    background: #FFF;
    padding: 32px 24px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); }
    .team-structure .team-layout .team-group h3 {
      font-size: 18px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 12px;
      text-align: center; }
    .team-structure .team-layout .team-group .team-name {
      font-size: 20px;
      font-weight: 700;
      color: #85C6D8;
      text-align: center;
      margin-bottom: 24px;
      padding: 8px 0;
      background: #f0f8fa;
      border-radius: 4px; }
    .team-structure .team-layout .team-group .team-list {
      list-style: none;
      padding: 0;
      margin: 0; }
      .team-structure .team-layout .team-group .team-list li {
        font-size: 14px;
        line-height: 1.6;
        padding: 8px 0;
        border-bottom: 1px solid #eee; }
        .team-structure .team-layout .team-group .team-list li:last-child {
          border-bottom: none; }
.team-structure .results-link {
  text-align: center; }
  .team-structure .results-link p {
    font-size: 36px;
    font-weight: 700;
    color: #0e002e;
    line-height: 1.4;
    margin-bottom: 40px; }
    @media (max-width: 768px) {
      .team-structure .results-link p {
        font-size: 24px; } }

.profile-section {
  background: #f8f9fa; }
  .profile-section .profile-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    max-width: 1100px;
    margin: 0 auto; }
    @media (max-width: 768px) {
      .profile-section .profile-layout {
        flex-direction: column;
        gap: 20px; } }
    .profile-section .profile-layout .profile-content {
      width: 60%; }
      @media (max-width: 768px) {
        .profile-section .profile-layout .profile-content {
          width: 100%; } }
    .profile-section .profile-layout .profile-image {
      width: 40%; }
      @media (max-width: 768px) {
        .profile-section .profile-layout .profile-image {
          width: 100%;
          text-align: center; } }
      .profile-section .profile-layout .profile-image img {
        width: 100%;
        height: auto;
        border-radius: 8px; }
    .profile-section .profile-layout .profile-content h3 {
      font-size: 24px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 16px; }
    .profile-section .profile-layout .profile-content .profile-titles {
      margin-bottom: 24px; }
      .profile-section .profile-layout .profile-content .profile-titles .title {
        font-size: 18px;
        font-weight: 600;
        color: #6c757d;
        margin: 0;
        line-height: 1.4; }
    .profile-section .profile-layout .profile-content .profile-text .profile-list {
      list-style: none;
      padding: 0;
      margin: 0 0 24px 0; }
      .profile-section .profile-layout .profile-content .profile-text .profile-list li {
        font-size: 15px;
        line-height: 1.7;
        color: #333;
        margin-bottom: 12px;
        position: relative;
        padding-left: 16px; }
        .profile-section .profile-layout .profile-content .profile-text .profile-list li:before {
          content: '•';
          position: absolute;
          left: 0;
          color: #6c757d;
          font-weight: bold; }
        .profile-section .profile-layout .profile-content .profile-text .profile-list li strong {
          color: #0e002e; }
    .profile-section .profile-layout .profile-content .profile-text .profile-books {
      background: #FFF;
      padding: 20px;
      border-radius: 8px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); }
      .profile-section .profile-layout .profile-content .profile-text .profile-books h4 {
        font-size: 18px;
        font-weight: 700;
        color: #0e002e;
        margin: 0 0 12px 0; }
      .profile-section .profile-layout .profile-content .profile-text .profile-books ul {
        list-style: none;
        padding: 0;
        margin: 0; }
        .profile-section .profile-layout .profile-content .profile-text .profile-books ul li {
          font-size: 15px;
          line-height: 1.6;
          color: #333;
          margin-bottom: 8px;
          padding-left: 16px;
          position: relative; }
          .profile-section .profile-layout .profile-content .profile-text .profile-books ul li:before {
            content: '•';
            position: absolute;
            left: 0;
            color: #6c757d;
            font-weight: bold; }
          .profile-section .profile-layout .profile-content .profile-text .profile-books ul li:last-child {
            margin-bottom: 0; }

.company-overview {
  background: #f8f9fa; }
  .company-overview .overview-content {
    max-width: 800px;
    margin: 0 auto; }
    .company-overview .overview-content .overview-table {
      background: #FFF;
      padding: 32px;
      border-radius: 8px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); }
      .company-overview .overview-content .overview-table table {
        width: 100%;
        border-collapse: collapse; }
        .company-overview .overview-content .overview-table table tr {
          border-bottom: 1px solid #eee; }
          .company-overview .overview-content .overview-table table tr:last-child {
            border-bottom: none; }
        .company-overview .overview-content .overview-table table th {
          background: #f8f9fa;
          color: #0e002e;
          font-weight: 700;
          font-size: 16px;
          padding: 16px;
          text-align: left;
          vertical-align: top;
          width: 200px;
          border-right: 1px solid #eee; }
          @media (max-width: 768px) {
            .company-overview .overview-content .overview-table table th {
              width: 100px;
              padding: 12px 8px;
              font-size: 14px; } }
        .company-overview .overview-content .overview-table table td {
          padding: 16px;
          font-size: 15px;
          line-height: 1.7;
          color: #333;
          vertical-align: top; }
          @media (max-width: 768px) {
            .company-overview .overview-content .overview-table table td {
              padding: 12px 8px;
              font-size: 14px; } }

/* Results page specific styles */
.results-nav {
  background: #f8f9fa;
  margin-bottom: 48px; }
  .results-nav .results-nav-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 32px; }
    @media (max-width: 768px) {
      .results-nav .results-nav-grid {
        grid-template-columns: 1fr;
        gap: 16px; } }
    .results-nav .results-nav-grid .results-nav-item {
      background: #FFF;
      padding: 24px;
      border-radius: 8px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
      text-decoration: none;
      display: block;
      transition: transform 0.3s ease, box-shadow 0.3s ease; }
      .results-nav .results-nav-grid .results-nav-item:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); }
      .results-nav .results-nav-grid .results-nav-item .nav-number {
        background: #0e002e;
        color: #FFF;
        padding: 4px 12px;
        font-size: 14px;
        font-weight: 700;
        border-radius: 4px;
        display: inline-block;
        margin-bottom: 12px; }
      .results-nav .results-nav-grid .results-nav-item .nav-title {
        font-size: 16px;
        font-weight: 700;
        color: #333;
        line-height: 1.4;
        margin-bottom: 8px; }
      .results-nav .results-nav-grid .results-nav-item .nav-detail {
        font-size: 14px;
        color: #85C6D8;
        font-weight: 600; }

.result-detail {
  scroll-margin-top: 100px; }
  .result-detail .inner {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 48px; }
  .result-detail .flow__img {
    display: block;
    width: 48px;
    margin: 0 auto;
    filter: invert(51%) sepia(1%) saturate(3141%) hue-rotate(167deg) brightness(88%) contrast(87%); }
  .result-detail .result-header {
    text-align: left;
    margin-bottom: 48px;
    display: flex; }
    @media (max-width: 768px) {
      .result-detail .result-header {
        flex-direction: column; } }
    .result-detail .result-header > div {
      width: 50%;
      padding: 16px;
      box-sizing: border-box; }
      @media (max-width: 768px) {
        .result-detail .result-header > div {
          width: 100%; } }
    .result-detail .result-header .result-number {
      background: #0e002e;
      color: #FFF;
      padding: 8px 16px;
      font-size: 18px;
      font-weight: 700;
      border-radius: 6px;
      display: inline-block;
      margin-bottom: 16px; }
    .result-detail .result-header h3 {
      font-size: 28px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 12px;
      line-height: 1.4; }
      @media (max-width: 768px) {
        .result-detail .result-header h3 {
          font-size: 24px; } }
    .result-detail .result-header .result-subtitle {
      font-size: 18px;
      color: #85C6D8;
      font-weight: 600;
      margin: 0; }
      @media (max-width: 768px) {
        .result-detail .result-header .result-subtitle {
          font-size: 16px; } }
  .result-detail .result-content {
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px; }
    @media (max-width: 768px) {
      .result-detail .result-content {
        gap: 32px; } }
  .result-detail .result-problems img {
    width: 48px;
    display: block;
    margin: 16px auto;
    filter: invert(30%) sepia(0%) saturate(0%) hue-rotate(180deg) brightness(80%) contrast(90%); }
  .result-detail .result-problems h4 {
    font-size: 20px;
    font-weight: 700;
    color: #495057;
    margin-bottom: 24px;
    text-align: center; }
  .result-detail .result-problems .problem-list {
    display: flex;
    gap: 16px;
    justify-content: center; }
    @media (max-width: 768px) {
      .result-detail .result-problems .problem-list {
        flex-direction: column;
        gap: 12px; } }
  .result-detail .result-problems .problem-item {
    background: #f8f9fa;
    padding: 20px;
    border-left: 4px solid #6c757d;
    border-radius: 0;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 32%;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
    @media (max-width: 768px) {
      .result-detail .result-problems .problem-item {
        width: 100%; } }
    .result-detail .result-problems .problem-item .problem-number {
      background: #6c757d;
      color: #FFF;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 2px; }
    .result-detail .result-problems .problem-item p {
      margin: 0;
      font-size: 15px;
      line-height: 1.6;
      color: #333; }
  .result-detail .result-solution img {
    width: 48px;
    display: block;
    margin: 16px auto; }
  .result-detail .result-solution p.open {
    background: #0e002e;
    color: #FFF;
    padding: 8px;
    margin: 16px auto;
    display: block;
    width: fit-content;
    font-size: 20px;
    font-weight: 900; }
  .result-detail .result-solution h4 {
    font-size: 20px;
    font-weight: 700;
    color: #0e002e;
    margin-bottom: 24px;
    text-align: center; }
  .result-detail .result-solution .solution-list {
    display: flex;
    flex-direction: column;
    gap: 16px; }
  .result-detail .result-solution .solution-item {
    background: #FFF;
    padding: 20px;
    border-left: 4px solid #0e002e;
    border-radius: 0;
    box-shadow: 0 4px 12px rgba(14, 0, 46, 0.12);
    display: flex;
    align-items: flex-start;
    gap: 16px; }
    .result-detail .result-solution .solution-item .solution-number {
      background: #0e002e;
      color: #FFF;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 2px; }
    .result-detail .result-solution .solution-item p {
      margin: 0;
      font-size: 15px;
      line-height: 1.6;
      color: #333; }
  .result-detail .result-outcomes h4 {
    font-size: 20px;
    font-weight: 700;
    color: #343a40;
    margin-bottom: 24px;
    text-align: center; }
  .result-detail .result-outcomes .outcome-list {
    display: flex;
    gap: 16px;
    margin-top: 24px; }
    @media (max-width: 768px) {
      .result-detail .result-outcomes .outcome-list {
        flex-direction: column;
        gap: 12px; } }
  .result-detail .result-outcomes .outcome-item {
    background: #ffffff;
    padding: 20px;
    border-left: 4px solid #85C6D8;
    border-radius: 0;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 32%;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(133, 198, 216, 0.15); }
    @media (max-width: 768px) {
      .result-detail .result-outcomes .outcome-item {
        width: 100%; } }
    .result-detail .result-outcomes .outcome-item .outcome-number {
      background: #85C6D8;
      color: #FFF;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 2px; }
    .result-detail .result-outcomes .outcome-item p {
      margin: 0;
      font-size: 15px;
      line-height: 1.6;
      color: #333; }
      .result-detail .result-outcomes .outcome-item p strong {
        color: #495057;
        font-weight: 700; }

/* Flow page specific styles */
.flow-intro {
  background: #f8f9fa;
  text-align: center; }
  .flow-intro .flow-intro-text {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    max-width: 800px;
    margin: 24px auto 0; }

.flow-steps .inner {
  max-width: 800px;
  margin: 0 auto; }

.timeline {
  position: relative; }
  .timeline::before {
    content: '';
    position: absolute;
    left: 30px;
    top: 40px;
    bottom: 0;
    width: 2px;
    background: #85C6D8; }
    @media (max-width: 768px) {
      .timeline::before {
        left: 25px; } }

.timeline-item {
  position: relative;
  padding-left: 80px;
  margin-bottom: 60px; }
  @media (max-width: 768px) {
    .timeline-item {
      padding-left: 70px;
      margin-bottom: 50px; } }
  .timeline-item:last-child {
    margin-bottom: 0; }

.timeline-marker {
  position: absolute;
  left: 0;
  top: 0; }
  .timeline-marker .step-number {
    width: 60px;
    height: 60px;
    background: #0e002e;
    color: #FFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(14, 0, 46, 0.3); }
    @media (max-width: 768px) {
      .timeline-marker .step-number {
        width: 50px;
        height: 50px;
        font-size: 16px; } }

.timeline-content {
  background: #FFF;
  padding: 32px;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  position: relative; }
  @media (max-width: 768px) {
    .timeline-content {
      padding: 24px; } }
  .timeline-content::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
    border-right: 12px solid #FFF; }
    @media (max-width: 768px) {
      .timeline-content::before {
        left: -10px;
        border-right-width: 10px;
        border-top-width: 10px;
        border-bottom-width: 10px; } }
  .timeline-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: #0e002e;
    margin-bottom: 16px;
    line-height: 1.4; }
    @media (max-width: 768px) {
      .timeline-content h3 {
        font-size: 18px; } }
    .timeline-content h3 .sub-text {
      font-size: 14px;
      font-weight: 600;
      color: #85C6D8;
      display: block;
      margin-top: 8px; }
  .timeline-content p {
    font-size: 15px;
    line-height: 1.7;
    color: #333;
    margin: 0; }

.flow-cta {
  background: #f8f9fa;
  text-align: center; }
  .flow-cta p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    margin: 24px auto 40px;
    max-width: 600px; }

.contact-form-section .contact-form-content {
  max-width: 800px;
  margin: 0 auto; }
  .contact-form-section .contact-form-content .wpcf7 .form-group {
    margin-bottom: 32px; }
    .contact-form-section .contact-form-content .wpcf7 .form-group:first-child {
      margin-top: 0; }
    .contact-form-section .contact-form-content .wpcf7 .form-group:last-child {
      margin-bottom: 0; }
    .contact-form-section .contact-form-content .wpcf7 .form-group label {
      display: block;
      font-size: 16px;
      font-weight: 600;
      color: #0e002e;
      margin-bottom: 8px;
      margin-top: 0; }
      .contact-form-section .contact-form-content .wpcf7 .form-group label .hissu {
        background: #0e002e;
        color: #FFF;
        font-size: 12px;
        font-weight: 700;
        padding: 4px 8px;
        border-radius: 4px;
        margin-left: 8px;
        display: inline-block;
        vertical-align: middle; }
  .contact-form-section .contact-form-content .wpcf7 p {
    margin-bottom: 32px; }
    .contact-form-section .contact-form-content .wpcf7 p:first-child {
      margin-top: 0; }
    .contact-form-section .contact-form-content .wpcf7 p:last-child {
      margin-bottom: 0; }
    .contact-form-section .contact-form-content .wpcf7 p > label {
      display: block;
      font-size: 16px;
      font-weight: 600;
      color: #0e002e;
      margin-bottom: 8px;
      margin-top: 0; }
      .contact-form-section .contact-form-content .wpcf7 p > label .hissu {
        background: #0e002e;
        color: #FFF;
        font-size: 12px;
        font-weight: 700;
        padding: 4px 8px;
        border-radius: 4px;
        margin-left: 8px;
        display: inline-block;
        vertical-align: middle; }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control-wrap {
    position: relative;
    display: block; }
  .contact-form-section .contact-form-content .wpcf7 input[type="text"],
  .contact-form-section .contact-form-content .wpcf7 input[type="email"],
  .contact-form-section .contact-form-content .wpcf7 input[type="tel"],
  .contact-form-section .contact-form-content .wpcf7 textarea,
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #e1e5e9;
    border-radius: 6px;
    font-size: 16px;
    line-height: 1.5;
    background: #FFF;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    box-sizing: border-box; }
    .contact-form-section .contact-form-content .wpcf7 input[type="text"]:focus,
    .contact-form-section .contact-form-content .wpcf7 input[type="email"]:focus,
    .contact-form-section .contact-form-content .wpcf7 input[type="tel"]:focus,
    .contact-form-section .contact-form-content .wpcf7 textarea:focus,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control:focus {
      outline: none;
      border-color: #85C6D8;
      box-shadow: 0 0 0 3px rgba(133, 198, 216, 0.1); }
    .contact-form-section .contact-form-content .wpcf7 input[type="text"]::placeholder,
    .contact-form-section .contact-form-content .wpcf7 input[type="email"]::placeholder,
    .contact-form-section .contact-form-content .wpcf7 input[type="tel"]::placeholder,
    .contact-form-section .contact-form-content .wpcf7 textarea::placeholder,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control::placeholder {
      color: #999; }
    .contact-form-section .contact-form-content .wpcf7 input[type="text"].wpcf7-not-valid,
    .contact-form-section .contact-form-content .wpcf7 input[type="email"].wpcf7-not-valid,
    .contact-form-section .contact-form-content .wpcf7 input[type="tel"].wpcf7-not-valid,
    .contact-form-section .contact-form-content .wpcf7 textarea.wpcf7-not-valid,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control.wpcf7-not-valid {
      border-color: #e74c3c;
      background-color: #ffeaea; }
    .contact-form-section .contact-form-content .wpcf7 input[type="text"].wpcf7-checkbox,
    .contact-form-section .contact-form-content .wpcf7 input[type="email"].wpcf7-checkbox,
    .contact-form-section .contact-form-content .wpcf7 input[type="tel"].wpcf7-checkbox,
    .contact-form-section .contact-form-content .wpcf7 textarea.wpcf7-checkbox,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-form-control.wpcf7-checkbox {
      border: none; }
  .contact-form-section .contact-form-content .wpcf7 textarea {
    resize: vertical;
    min-height: 120px; }
  .contact-form-section .contact-form-content .wpcf7 p {
    border: none !important;
    padding: 0 !important;
    margin: 0 0 32px 0 !important; }
    .contact-form-section .contact-form-content .wpcf7 p:has(.wpcf7-list-item) {
      margin-bottom: 24px !important;
      border-bottom: none !important; }
      .contact-form-section .contact-form-content .wpcf7 p:has(.wpcf7-list-item)::after {
        display: none !important; }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-bottom: none !important;
    border-top: none !important;
    outline: none !important;
    box-shadow: none !important;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    position: relative; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item::before, .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item::after {
      display: none !important; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item input[type="checkbox"] {
      width: auto !important;
      margin: 0 !important;
      padding: 0 !important;
      border: 2px solid #e1e5e9 !important;
      border-radius: 4px !important;
      background: #FFF !important;
      transform: scale(1.2);
      flex-shrink: 0;
      margin-top: 2px !important;
      outline: none !important;
      box-shadow: none !important; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item label {
      margin: 0 !important;
      padding: 0 !important;
      font-size: 15px !important;
      line-height: 1.6 !important;
      font-weight: 400 !important;
      color: #333 !important;
      display: inline !important;
      flex: 1;
      border: none !important;
      border-bottom: none !important;
      border-top: none !important;
      background: none !important;
      outline: none !important;
      box-shadow: none !important; }
      .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item label::before, .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item label::after {
        display: none !important; }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-list-item-label {
    border: none !important;
    border-bottom: none !important;
    outline: none !important;
    box-shadow: none !important; }
  .contact-form-section .contact-form-content .wpcf7 input[type="submit"],
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-submit {
    width: auto;
    background: #0e002e;
    color: #FFF;
    border: none;
    padding: 16px 32px;
    font-size: 18px;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 16px;
    display: inline-block; }
    .contact-form-section .contact-form-content .wpcf7 input[type="submit"]:hover,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-submit:hover {
      background: black;
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(14, 0, 46, 0.3); }
    .contact-form-section .contact-form-content .wpcf7 input[type="submit"]:active,
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-submit:active {
      transform: translateY(0); }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-not-valid-tip {
    color: #e74c3c;
    font-size: 14px;
    margin-top: 4px;
    display: block;
    font-weight: 500; }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-response-output {
    padding: 16px;
    margin-top: 24px;
    border-radius: 6px;
    font-weight: 600;
    border: none; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok {
      background: #d4edda;
      color: #155724;
      border: 1px solid #c3e6cb; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-response-output.wpcf7-validation-errors {
      background: #f8d7da;
      color: #721c24;
      border: 1px solid #f5c6cb; }
    .contact-form-section .contact-form-content .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng {
      background: #f8d7da;
      color: #721c24;
      border: 1px solid #f5c6cb; }
  .contact-form-section .contact-form-content .wpcf7 .wpcf7-spinner {
    margin-left: 10px;
    display: inline-block; }
  .contact-form-section .contact-form-content .wpcf7 .privacy-text {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 16px;
    background: #f8f9fa;
    padding: 16px;
    border-radius: 6px;
    border-left: 4px solid #85C6D8; }

/* Contents page specific styles */
.contents-intro {
  background: #f8f9fa;
  text-align: center; }
  .contents-intro .contents-intro-text {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    max-width: 800px;
    margin: 24px auto 0; }

.contents-section .inner {
  max-width: 1200px;
  margin: 0 auto; }

.content-block {
  margin-bottom: 80px; }
  @media (max-width: 768px) {
    .content-block {
      margin-bottom: 60px; } }
  .content-block:last-child {
    margin-bottom: 0; }
  .content-block .content-header {
    text-align: center;
    margin-bottom: 60px; }
    @media (max-width: 768px) {
      .content-block .content-header {
        margin-bottom: 40px; } }
    .content-block .content-header h3 {
      font-size: 28px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 24px;
      line-height: 1.4; }
      @media (max-width: 768px) {
        .content-block .content-header h3 {
          font-size: 24px;
          margin-bottom: 16px; } }
    .content-block .content-header img {
      margin-bottom: 40px; }
    .content-block .content-header .content-description {
      font-size: 16px;
      line-height: 1.7;
      color: #333;
      max-width: 800px;
      margin: 0 auto; }
      @media (max-width: 768px) {
        .content-block .content-header .content-description {
          font-size: 15px; } }

.content-grid {
  display: grid;
  gap: 40px;
  margin: 40px auto; }
  @media (max-width: 768px) {
    .content-grid {
      gap: 30px; } }

.content-item {
  background: #FFF;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease; }
  .content-item .content-image {
    position: relative;
    height: 200px;
    overflow: hidden; }
    @media (max-width: 768px) {
      .content-item .content-image {
        height: 180px; } }
    .content-item .content-image img {
      width: 100%;
      height: 100%;
      object-fit: cover; }
  .content-item .content-info {
    padding: 24px; }
    @media (max-width: 768px) {
      .content-item .content-info {
        padding: 20px; } }
    .content-item .content-info h4 {
      font-size: 18px;
      font-weight: 700;
      color: #0e002e;
      margin-bottom: 12px;
      line-height: 1.4; }
      @media (max-width: 768px) {
        .content-item .content-info h4 {
          font-size: 16px;
          margin-bottom: 8px; } }

.shibuya-college .event-date {
  font-size: 14px;
  font-weight: 600;
  color: #85C6D8;
  margin-bottom: 4px; }
.shibuya-college .event-location {
  font-size: 14px;
  color: #666;
  margin-bottom: 12px; }
.shibuya-college .event-desc {
  font-size: 15px;
  line-height: 1.6;
  color: #333;
  margin: 0; }
.shibuya-college .new-badge {
  display: inline-block;
  background: #e74c3c;
  color: #FFF;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 4px;
  margin-left: 8px;
  vertical-align: middle; }
.shibuya-college .event-contact-btn {
  display: inline-block;
  background: #0e002e;
  color: #FFF;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 6px;
  margin-top: 16px;
  text-decoration: none;
  transition: all 0.3s ease; }
  .shibuya-college .event-contact-btn:hover {
    background: black;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }

.paid-videos .content-grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
  @media (max-width: 768px) {
    .paid-videos .content-grid {
      grid-template-columns: 1fr; } }

.paid_videos_list {
  text-align: center;
  font-size: 24px;
  padding-bottom: 8px;
  border-bottom: 1px solid #0e002e;
  margin-top: 80px; }
  @media (max-width: 768px) {
    .paid_videos_list {
      margin-top: 60px; } }
  .paid_videos_list + p {
    text-align: center;
    font-size: 16px; }

.video-item .video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000; }
  .video-item .video-wrapper video {
    width: 100%;
    height: 100%;
    object-fit: contain; }
.video-item .video-thumbnail {
  position: relative; }
  .video-item .video-thumbnail .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(14, 0, 46, 0.8);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFF;
    font-size: 20px;
    cursor: pointer;
    transition: all 0.3s ease; }
    .video-item .video-thumbnail .play-button:hover {
      background: rgba(14, 0, 46, 0.9);
      transform: translate(-50%, -50%) scale(1.1); }
    .video-item .video-thumbnail .play-button span {
      margin-left: 4px; }
  .video-item .video-thumbnail .video-duration {
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: rgba(0, 0, 0, 0.8);
    color: #FFF;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600; }
.video-item .video-price {
  font-size: 16px;
  font-weight: 700;
  color: #e74c3c;
  margin-bottom: 8px; }
.video-item .video-desc {
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  margin-bottom: 16px; }
.video-item .video-features {
  display: flex;
  flex-wrap: wrap;
  gap: 8px; }
  .video-item .video-features .feature-tag {
    background: #f8f9fa;
    color: #666;
    padding: 4px 12px;
    border-radius: 16px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid #e1e5e9; }

.contents-cta {
  background: #f8f9fa;
  text-align: center; }
  .contents-cta p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    margin: 24px auto 40px;
    max-width: 600px; }

.video-content {
  padding: 60px 0; }
  .video-content .inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px; }

.video-password-form {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 40px;
  text-align: center;
  max-width: 500px;
  margin: 0 auto; }
  @media (max-width: 768px) {
    .video-password-form {
      padding: 30px 20px; } }
  .video-password-form h2 {
    font-size: 1.5rem;
    margin-bottom: 30px;
    color: #333;
    line-height: 1.6; }
    @media (max-width: 768px) {
      .video-password-form h2 {
        font-size: 1.2rem;
        margin-bottom: 20px; } }
  .video-password-form .error-message {
    background: #ffebee;
    color: #c62828;
    padding: 15px;
    border-radius: 4px;
    margin-bottom: 20px;
    font-size: 0.95rem; }
  .video-password-form .form-group {
    margin-bottom: 25px;
    text-align: left; }
    .video-password-form .form-group label {
      display: block;
      margin-bottom: 10px;
      font-weight: 600;
      color: #555;
      font-size: 0.95rem; }
    .video-password-form .form-group input[type="password"] {
      width: 100%;
      padding: 12px 15px;
      border: 2px solid #ddd;
      border-radius: 4px;
      font-size: 1rem;
      transition: border-color 0.3s; }
      .video-password-form .form-group input[type="password"]:focus {
        outline: none;
        border-color: #4CAF50; }
  .video-password-form .btn-primary {
    background: #4CAF50;
    color: #fff;
    border: none;
    padding: 15px 40px;
    font-size: 1rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s;
    font-weight: 600; }
    .video-password-form .btn-primary:hover {
      background: #45a049; }

.video-player-wrapper h2 {
  font-size: 1.8rem;
  margin-bottom: 30px;
  color: #333;
  border-bottom: 3px solid #4CAF50;
  padding-bottom: 10px; }
  @media (max-width: 768px) {
    .video-player-wrapper h2 {
      font-size: 1.4rem;
      margin-bottom: 20px; } }

.video-player {
  margin-bottom: 40px;
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
  .video-player video {
    display: block;
    width: 100%;
    height: auto; }

.video-description {
  background: #f8f9fa;
  padding: 30px;
  border-radius: 8px;
  margin-bottom: 30px; }
  @media (max-width: 768px) {
    .video-description {
      padding: 20px; } }
  .video-description h3 {
    font-size: 1.3rem;
    margin-bottom: 15px;
    color: #333; }
    @media (max-width: 768px) {
      .video-description h3 {
        font-size: 1.1rem; } }
  .video-description p {
    line-height: 1.8;
    color: #555;
    margin-bottom: 15px; }
    .video-description p:last-child {
      margin-bottom: 0; }
  .video-description .video-features {
    margin-top: 20px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap; }
    .video-description .video-features .feature-tag {
      display: inline-block;
      background: #4CAF50;
      color: #fff;
      padding: 6px 14px;
      border-radius: 20px;
      font-size: 0.85rem;
      font-weight: 600; }

.video-actions {
  text-align: center;
  padding: 20px 0; }
  .video-actions .btn-logout {
    display: inline-block;
    padding: 10px 30px;
    background: #fff;
    color: #666;
    border: 2px solid #ddd;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.3s;
    font-size: 0.95rem; }
    .video-actions .btn-logout:hover {
      background: #f5f5f5;
      border-color: #999;
      color: #333; }
