/**
logo color
赤：#f08690
緑：#05b1aa
オレンジ：#f9b205
黄緑：#afcb09
*/

/* 背景
黄色：#ffe33e 文字：#333（hover）背景：#ffef8e 文字:#000
*/

html {
    scroll-padding-top: 70px;
}

.sp {
    display: none;
}

.ml-auto {
    margin-left: auto;
}

.mr-auto {
    margin-right: auto;
}
.cta {
    text-align: center;
}

h1 {
    margin: 0;
    padding: 0;
    font-size: 1.4rem;
    line-height: 1.6;
}
p {
    margin: 0;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1.6;
}

/*** Header */
header.header {
    position: fixed;
    width: 100%;
    z-index: 10;
}

/*** navbar */
.navbar ul {
   align-items: center;
}
.navbar .logo {
    width: 240px;
    max-width: 100%;
}
.navbar .logo.hcx {
    width: 200px;
    max-width: 100%;
}
.navbar .logo img {
    width: 100%;
}
.navbar .logo.onemall {
    /* margin-right: 15px; */
}

/*** button */
.btn.logo-green {
    background: #05b1aa;
    border: 1px solid #05b1aa;
    color: #fff;
    border-radius: 2rem;
    padding: 6px 18px;
    font-size: 1.2rem;
}
.btn.logo-green:hover {
    background: #f9b205;
    border: 1px solid #f9b205;
    color: #fff !important;
}
.btn.btn-cta {
    background: #f08690;
    border: 1px solid #f08690;
    border-radius: 4rem;
    color: #fff;
    font-size: 2rem;
    padding: 15px 45px;
    width: auto;
    max-width: 100%;
}
.btn.btn-cta:before {
    font-family: "Font Awesome 6 Free";
    font-size: 2rem;
    font-weight: 900;
    content: "\f0a9";
    padding: 0 0.5rem 0 0;
}
.btn.btn-cta:hover {
    background: #f9b205;
    border: 1px solid #f9b205;
    color: #fff !important;
}
.btn.btn-bottom {
    background: #05b1aa;
    border: 1px solid #05b1aa;
    font-size: 1.2rem;
    color: #fff;
    border-radius: 2rem;
    padding: 6px 18px;
    position: fixed;
    right: 30px;
    bottom: 30px;
}
.btn.btn-bottom:before {
    font-family: "Font Awesome 6 Free";
    font-size: 1.2rem;
    font-weight: 900;
    content: "\f0e0";
    padding: 0 0.5rem 0 0;
}
.btn.btn-bottom:hover {
    background: #f9b205;
    border: 1px solid #f9b205;
    color: #fff !important;
}

/*** top */
.top {
    padding: 140px 0 60px;
}
.top-block .top-block-inner {
    display: flex;
    flex-flow: column;
    justify-content: center;
}
.main-img {
    text-align: center;
}
.main-img img {
    width: 500px;
    max-width: 100%;
    text-align: center;
}
.top-block {
    text-align: center;
}
.top-block .catch {
    margin: 30px 0;
    position: relative;
    z-index: 2;
    background: rgba(255, 255, 255, 0.5);
}
.top-block .yorokobi {
    margin-top: -50px;
}
.top-block .yorokobi img {
    width: 500px;
    max-width: 100%;
    text-align: center;
}
.top-block .sub-catch {
    font-size: 1.2rem;
    margin: 30px 0;
}

/*** problems */
.problems {
    padding: 80px 0 80px;
}
.problems .inner {
    text-align: center;
}
.problems h2.problem-catch {
    margin-bottom: 30px;
}
.problems .komatta img {
    width: 500px;
    max-width: 100%;
    text-align: center;
}
.problems .komatta-block {
    margin: 30px 0;
    text-align: center;
    justify-content: center;
}
.problem {
    text-align: center;
    padding: 30px;
}
.problem.col-lg-4 {
    max-width: 400px;
}
.problem-inner {
    border: 2px solid #5e5f62;
    border-radius: 100%;
    aspect-ratio: 1/1;
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    background: #ffe33e;
}
.problem-inner h3 {
    min-height: 3em;
    line-height: 1.4;
    color: #333;
    font-weight: 600;
    font-size: 1.5rem;
}
.problem-inner p {
    line-height: 1.4;
    color: #666;
}

/*** achievements */
.achievements {
    padding: 60px 0;
    /* background: #fff; */
    background: #e4e4e4;
}

.achievements .inner {
    text-align: center;
}

.achievements h2 {
    margin: 30px 0 60px;
    text-align: center;
}

.achievements .achievement-lead {
    padding: 1rem 3rem;
    margin: 0 auto;
    border-radius: 5rem;
    border: 2px solid #f08690;
    background: #fff;
    width: 32rem;
    max-width: 100%;
    color: #f08690;
    font-weight: 600;
}
.achievements .achievement {
    /* padding: 30px 0; */
}
.achievement .achievement-inner {
    padding: 30px;
}
.achievement .achievement-list {
    margin: 30px 0 0;
}
.achievement-list .achievement-list-inner {
    text-align: left;
    border-radius: 15px;
    border: 2px solid #ccc;
    padding: 30px;
    background: #fff;
}
.achievement-list .achievement-title {
    font-size: 1.4rem;
    font-weight: 600;
    border-bottom: 1px solid #ccc;
    text-align: left;
    padding: 0 0 10px;
    line-height: 1.4;
}
.achievement-list .achievement-title span {
    background: #f9b205;
    padding: 0.5rem 1rem;
    margin-right: 1rem;
    color: #fff;
}
.achievement-list .achievement-title span.rank1 {
    background: #fad203;
}
.achievement-list .achievement-title span.rank2 {
    background: #C0C0C0;
}
.achievement-list .achievement-title span.rank3 {
    background: #fbac5e;
}

.achievement-list .achievement-title span:before {
    font-family: "Font Awesome 6 Free";
    font-size: 1.6rem;
    font-weight: 900;
    content: "\e561";
    padding: 0 0.5rem 0 0;
}

.achievement-list .achievement-msg {
    margin: 15px 0;
    display: inline-block;
    background: #afcb09;
    padding: 0.5rem 1rem;
    border-radius: 3rem;
    color: #fff;
    font-size: 1rem;
}

.achievement-list .achievement-service {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    list-style-type: none;
}
.achievement-list .achievement-service li {
    margin: 0 0.5rem 0 0;
    padding: 0.5rem 2rem;
    border: 1px solid #799201;
    color: #799201;
}
.achievement-attend {
    font-size: 1.6rem;
    text-align: center;
    margin: 30px 0;
}

/*** service */
.service {
    padding: 80px 0;
    background: #efefef;
}
.service h2 {
    margin: 30px 0 60px;
}

.service .inner {
    text-align: center;
}

.service .menu-block {
    /* border: 1px solid #ccc; */
    padding: 0 20px 15px;
    background: #fff;
}

.service .menu {
    padding: 15px 7.5px 0;
}
.service .menu a {
    display: flex;
    align-items: center;
    text-align: left;
    border: 2px solid #5e5f62;
    border-radius: 15px;
    background: #ffe33e;
    padding: 15px;
    color: #333;
    text-decoration: none;
}
.service .menu a:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f138";
    padding: 0 1rem 0 0;
}
.service .menu a:hover, .service .menu a:hover:before {
    background: #ffef8e;
    color: #000;
}
.service .menu a p {
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1.2;
}
.service .menu a p span {
    font-weight: 400;
    font-size: 1.0rem;
    color: #666;
}

.service h3.service-headline {
    margin: 60px 0 15px;
    padding: 20px 0 10px;
    text-align: left;
    border-bottom: 1px solid #aaa;
    font-weight: 600;
    font-size: 2.2rem;
    color: #424243;
}
.service h3.service-headline span {
    font-size: 1.4rem;
    font-weight: 600;
    margin: 0 1rem;
    color: #999;
}

/* サービス ICON */
.service h3#movie:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f008";
    padding: 0 0.5rem 0 0;
}
.service h3#web:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f0ac";
    padding: 0 0.5rem 0 0;
}
.service h3#writing:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f044";
    padding: 0 0.5rem 0 0;
}
.service h3#promotion:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f0a1";
    padding: 0 0.5rem 0 0;
}
.service h3#graphic:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f53f";
    padding: 0 0.5rem 0 0;
}
.service h3#support:before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f590";
    padding: 0 0.5rem 0 0;
}


.service .service-list {
    padding: 15px;
}

.service .service-list-inner {
    border: 2px solid #ccc;
    border-radius: 15px;
    padding: 15px;
    background: #f8f8f8;
    text-align: left;
}
.service .service-list h4 {
    font-size: 1.4rem;
    font-weight: 600;
    border-bottom: 1px solid #ccc;
    text-align: center;
    padding: 0 0 10px;
}
.service .service-list .service-subtitle {
    font-size: 1.1rem;
    margin: 0 0 15px;
}
.service .service-list .service-desc{
    padding: 15px;
    background: #fff;
    border-radius: 7.5px;
}
.service .service-list .service-desc a {
    text-decoration: none;
}
.service .service-list .service-desc-headline {
    font-size: 1rem;
    margin-bottom: 10px;
    padding: 0.25rem 0;
    background: #f08690;
    width: auto;
    text-align: center;
    color: #fff;
    border-radius: 3rem;
}
.service .service-list .service-desc-headline:hover {
    background: #f9b205;
    color: #fff;
}

.service .service-list .service-desc-list {
    padding-left: 2rem;
    font-size: 1rem;
    margin: 0;
}

/*** company */
.company {
    padding: 60px 0;
    background: #f9f9f9;
}
.company .inner {
    text-align: center;
}

.company h2 {
    margin: 30px 0 30px;
}

.company .compaany-desc {
    margin: 30px 0;
    padding: 1rem 3rem;
    display: inline-block;
    border-radius: 5rem;
    border: 2px solid #f08690;
    background: #fff;
    color: #f08690;
    font-weight: 600;
}

.company .yorokobi {
    margin-top: -50px;
}
.company .yorokobi img {
    width: 500px;
    max-width: 100%;
    text-align: center;
}

.company .company-block {
    margin: 10px 0 30px;
}

.company .company-block-inner {
    
}

.company .company-col {
    padding: 15px;
}

.company .company-col-inner {
    padding: 15px;
    border: 4px solid #f9b205;
    border-radius: 15px;
    
}


.company .company-col-title {
    font-size: 1.4rem;
    font-weight: 600;
    border-bottom: 1px solid #ccc;
    text-align: center;
    padding: 0 0 10px;
    line-height: 1.4;
    color: #333;
}

.company .company-col-desc {
    text-align: left;
    color: #666;
}

/*** footer */
footer {
    border-top: none !important;
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}
footer .logo {
    text-align: center;
}

footer .logo img {
    width: 240px;
    max-width: 100%;
    margin: 0 0 30px;
}

footer h5 {
    font-size: 1.1rem;
    margin: 0 0 1rem;
}

/*** modal / form */
.contact-form {
    width: 800px;
    max-width: 100%;
    height: calc(100vh - 200px);
}

/*** nav / movie-play */
.movie-play{
    cursor: pointer;
}

/*** movie-pop */
.movie-pop {
    position: fixed;
    width: 280px;
    padding: 8px;
    bottom: 20px;
    right: 20px; 
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.3);
}

@media screen and (min-width: 768px) {
    .movie-pop {
    position: fixed;
    width: 280px;
    padding: 16px;
    bottom: 50px;
    right: 50px; 
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease-in-out;
    }
}

.movie-pop {
    &.hidden{
        opacity: 0;
        visibility: hidden;
    }
}

.movie-pop-close,
.movie-modal-close{
    position: absolute;
    top: 0px;
    right: 0px;
    transform: translate(50%, -50%);
}

.btn-custom-pop {
    background-color: #C8C8C8;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.8);
    padding: 6px 12px;
}

.btn-custom-pop:hover{
    background-color: #737373;
    color: #ffffff;
}

.movie-pop-info{
    text-align: center;
    font-size: 16px;
}

.movie-pop-contents{
    cursor: pointer;
}

.movie-pop-img video{
    width: 100%;
    height: 100%;
    border: 2px solid #f1f1f1;
}

.movie-modal{
    width: 100vw;
    height: 100dvh;
    position: fixed;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
}

.movie-modal-frame{
max-width: 880px;
width: 80%;
aspect-ratio: 16/9;
padding: 16px;
position: fixed;
inset: 0;
margin: auto;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 12px;
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
}

.movie-modal-video{
    max-width: 848px;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
}

.movie-modal {
    &.hidden{
        opacity: 0;
        visibility: hidden;
    }
}