/* Header Slider Styles */

/* Header menu positioning: center within menu area (excluding logo area) */
#global_menu {
    margin-left: 200px;
    /* Approximate logo area width */
}

@media screen and (max-width:1180px) {
    #global_menu {
        margin-left: 0;
    }
}

/* Header menu visibility overlay */
#header_slider_wrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 120px;
    background: linear-gradient(to bottom, rgba(0, 58, 95, 0.8) 0%, rgba(0, 58, 95, 0.6) 60%, rgba(0, 58, 95, 0) 100%);
    z-index: 50;
    pointer-events: none;
}

@media screen and (max-width:750px) {
    #header_slider_wrap::before {
        height: 80px;
        background: linear-gradient(to bottom, rgba(0, 58, 95, 0.9) 0%, rgba(0, 58, 95, 0.7) 70%, rgba(0, 58, 95, 0) 100%);
    }
}

/* Slider Navigation Text Center Alignment */
#header_slider_nav .nav_catch {
    text-align: center !important;
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Reduce line spacing for <br> tags in free space content */
.cb_free_space .index_free_design_content p {
    line-height: 1.4 !important;
}

.cb_free_space .index_free_design_content h3 {
    line-height: 1.3 !important;
    margin-bottom: 25px !important;
}

/* Reduce margin between text and image in about section */
@media screen and (min-width:769px) {
    .cb_free_space .index_free_design_content img {
        margin: 20px auto 0 !important;
    }
}

/* Change theme color to darker blue */
#header_slider .item2 .design_button.type1 a,
#header_slider .item4 .design_button.type1 a,
#site_loader_overlay,
.sns_button_list.color_type2 li.contact a:before,
.sns_button_list.color_type2 li.user_url a:before,
.widget_headline,
.widget_block .wp-block-heading,
.styled_post_list1_widget .widget_headline,
#global_menu ul ul a,
#return_top a,
.design_button.type1 a,
.cat_id406,
.cat_id407,
.cat_id408,
.cat_id409,
.qt_google_map .pb_googlemap_custom-overlay-inner {
    background-color: #003a5f !important;
    color: #fff !important;
}

/* Darker blue for hover states */
#header_slider .item2 .design_button.type1 a:hover,
#header_slider .item4 .design_button.type1 a:hover,
#global_menu ul ul a:hover,
#drawer_menu a:hover,
#return_top a:hover,
.design_button.type1 a:hover,
.cat_id406:hover,
.cat_id407:hover,
.cat_id408:hover,
.cat_id409:hover {
    background-color: #002a4a !important;
    color: #fff !important;
}

/* Text colors */
.widget_headline,
.widget_block .wp-block-heading,
.sns_button_list.color_type2 li.contact a:before,
.sns_button_list.color_type2 li.user_url a:before,
.author_profile .author_link li.contact a:before,
.author_profile .author_link li.user_url a:before,
body.hide_header_image #global_menu>ul>li.current-menu-item>a,
body.no_index_header_content #global_menu>ul>li.current-menu-item>a {
    color: #003a5f !important;
}

/* Border colors */
.project_list .category,
#project_title_area .category {
    border-color: #003a5f !important;
}

.qt_google_map .pb_googlemap_custom-overlay-inner:after {
    border-color: #003a5f transparent transparent !important;
}

/* News ticker theme color background with white text */
#index_news_ticker_wrap {
    background-color: #003a5f !important;
}

#index_news_ticker .item .title {
    color: #fff !important;
    text-align: center !important;
}

/* Header logo background color */
#header_logo a {
    background: #003a5f !important;
}

/* Profile catchcopy styling */
.cb_tab_content .content hgroup p:not(.title) {
    font-size: 12px !important;
    color: #999 !important;
    margin: 5px 0 !important;
}

/* Profile description line height */
.cb_tab_content .content p {
    line-height: 1.8 !important;
    margin-bottom: 15px !important;
}

.cb_tab_content .content p.desc {
    line-height: 1.6 !important;
}

/* Responsive line breaks */
.mobile-break {
    display: none;
}

.pc-break {
    display: inline;
}

@media screen and (max-width: 750px) {
    .mobile-break {
        display: inline;
    }

    .pc-break {
        display: none;
    }

    .title {
        font-size: 18px !important;
    }
}

#header_slider .item1 .catch {
    font-size: 38px
}

#header_slider .item1 .desc {
    font-size: 18px
}

/* Design Header Styles */
.cb_design_header {
    text-align: center;
    margin-bottom: 60px;
}

.cb_design_header .catch {
    font-size: 32px;
    font-weight: 600;
    color: #003a5f;
    margin-bottom: 30px;
    line-height: 1.3;
}

/* Image Carousel Styles - Based on TCD105 */
.cb_design_carousel {
    padding: 0 0 80px 0;
    position: relative;
    background: #ffffff;
}

.cb_design_carousel .design_header {
    text-align: center;
    margin-bottom: 60px;
}

.cb_design_carousel .catch {
    font-size: 32px;
    font-weight: 600;
    color: #003a5f;
    margin-bottom: 30px;
    line-height: 1.3;
}

.cb_design_carousel .desc p {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
}

.cb_design_carousel .desc .mobile {
    display: none;
}

/* カルーセルを任意の場所で使用可能にする */
.cb_image_slider_wrap {
    overflow: hidden;
    height: 570px;
    position: relative;
}

.cb_image_slider {
    white-space: nowrap;
    font-size: 0;
    transform: translate3d(0, 0, 0);
    animation-name: carousel_slide;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-fill-mode: forwards;
}

.cb_image_slider .item {
    display: inline-block;
    width: 310px;
    height: 570px;
    position: relative;
    overflow: hidden;
    margin: 0 50px 0 0;
    vertical-align: top;
    font-size: 16px;
    white-space: normal;
}

.cb_image_slider .image {
    width: 100%;
    height: 440px;
    border-radius: 15px;
    overflow: hidden;
    display: block;
    position: relative;
}

.cb_image_slider .item:nth-child(even) .image {
    margin-top: 110px;
}

.cb_image_slider .image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}

.cb_image_slider .title {
    position: absolute;
    top: 475px;
    width: 100%;
    text-align: center;
    font-size: 18px;
    line-height: 1.8;
    max-height: 3.6em;
    overflow: hidden;
    visibility: visible;
    display: block;
}

.cb_image_slider .title span {
    display: -webkit-inline-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cb_image_slider .item:nth-child(even) .title {
    top: 20px;
    bottom: auto;
}

@keyframes carousel_slide {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(-100%, 0, 0);
    }
}

@media screen and (max-width: 750px) {
    .cb_design_carousel {
        padding: 0 0 60px 0;
    }

    .cb_design_header .catch {
        font-size: 28px;
    }

    .cb_design_carousel .desc .pc {
        display: none;
    }

    .cb_design_carousel .desc .mobile {
        display: block;
    }

    .cb_image_slider_wrap {
        height: 400px;
    }

    .cb_image_slider .item {
        width: 250px;
        margin: 0 30px 0 0;
    }

    .cb_image_slider .image {
        height: 300px;
    }

    .cb_image_slider .title {
        top: 330px;
        font-size: 16px;
    }

    .cb_image_slider .item:nth-child(even) .title {
        top: 20px;
        bottom: auto;
    }

    .cb_image_slider .item:nth-child(even) .image {
        margin-top: 80px;
    }

    .cb_image_slider .item {
        width: 250px;
        flex: 0 0 250px;
        margin: 0 30px 0 0;
    }

    .cb_image_slider .image {
        height: 300px;
    }

    .cb_image_slider .title {
        top: 330px;
        font-size: 16px;
    }

    .cb_image_slider .item:nth-child(even) .title {
        bottom: 330px;
    }
}

@media screen and (max-width:750px) {
    #header_slider .item1 .catch {
        font-size: 20px
    }

    #header_slider .item1 .desc {
        font-size: 15px
    }
}

#header_slider .item1 .overlay {
    background-color: rgba(10, 108, 132, .3)
}

#header_slider .item2 .catch {
    font-size: 38px
}

#header_slider .item2 .desc {
    font-size: 18px
}

@media screen and (max-width:750px) {
    #header_slider .item2 .catch {
        font-size: 20px
    }

    #header_slider .item2 .desc {
        font-size: 15px
    }
}

#header_slider .item2 .design_button.type1 a {
    color: #fff !important;
    background: #00729f
}

#header_slider .item2 .design_button.type1 a:hover {
    color: #fff !important;
    background: #004968
}

#header_slider .item2 .overlay {
    background-color: rgba(99, 44, 0, .3)
}

#header_slider .item3 .catch {
    font-size: 38px
}

#header_slider .item3 .desc {
    font-size: 18px
}

@media screen and (max-width:750px) {
    #header_slider .item3 .catch {
        font-size: 20px
    }

    #header_slider .item3 .desc {
        font-size: 15px
    }
}

#header_slider .item3 .overlay {
    background-color: rgba(12, 97, 130, .3)
}

#header_slider .item4 .catch {
    font-size: 38px
}

#header_slider .item4 .desc {
    font-size: 18px
}

@media screen and (max-width:750px) {
    #header_slider .item4 .catch {
        font-size: 20px
    }

    #header_slider .item4 .desc {
        font-size: 15px
    }
}

#header_slider .item4 .design_button.type1 a {
    color: #fff !important;
    background: #00729f
}

#header_slider .item4 .design_button.type1 a:hover {
    color: #fff !important;
    background: #004968
}

#header_slider .item4 .overlay {
    background-color: rgba(11, 92, 96, .2)
}

/* Content Block Styles */
.cb_free_space.num1 .post_content {
    padding-top: 90px;
    padding-bottom: 100px
}

@media screen and (max-width:750px) {
    .cb_free_space.num1 .post_content {
        padding-top: 30px;
        padding-bottom: 40px
    }
}

.cb_tab_content.num2 .tab_content_top .tab .item {
    font-size: 16px
}

.cb_tab_content.num2 .tab_content_bottom .title {
    font-size: 26px
}

.cb_tab_content.num2 .tab_content_bottom .catch {
    font-size: 24px
}

@media screen and (max-width:750px) {
    .cb_tab_content.num2 .tab_content_top .tab .item {
        font-size: 12px
    }

    .cb_tab_content.num2 .tab_content_bottom .title {
        font-size: 20px
    }

    .cb_tab_content.num2 .tab_content_bottom .catch {
        font-size: 18px
    }
}

.cb_tab_content.num2 .overlay {
    background-color: rgba(0, 83, 119, .4)
}

.cb_service_list.num3 .cb_service_item_list .title .main_title {
    font-size: 26px
}

@media screen and (max-width:750px) {
    .cb_service_list.num3 .cb_service_item_list .title .main_title {
        font-size: 20px
    }
}

.cb_service_list.num3 .cb_service_item_list .item a:after {
    background-color: rgba(0, 73, 104, .7)
}

.cb_news_list.num4 .news_list .title {
    font-size: 16px
}

@media screen and (max-width:750px) {
    .cb_news_list.num4 .news_list .title {
        font-size: 14px
    }
}

.cb_project_list.num5 .project_list .title {
    font-size: 20px
}

@media screen and (max-width:750px) {
    .cb_project_list.num5 .project_list .title {
        font-size: 16px
    }
}

/* Test Class */
.test {
    color: red
}

/* Site Loader Styles */
#site_wrap {
    display: none
}

#site_loader_overlay {
    background: #00729f;
    opacity: 1;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    width: 100%;
    height: 100vh;
    z-index: 99999
}

#site_loader_overlay.slide_up {
    top: -100vh;
    opacity: 0;
    -webkit-transition: transition:top .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s;
    transition: top .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s
}

#site_loader_overlay.slide_down {
    top: 100vh;
    opacity: 0;
    -webkit-transition: transition:top .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s;
    transition: top .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s
}

#site_loader_overlay.slide_left {
    left: -100%;
    opactiy: 0;
    -webkit-transition: transition:left .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s;
    transition: left .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s
}

#site_loader_overlay.slide_right {
    left: 100%;
    opactiy: 0;
    -webkit-transition: transition:left .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s;
    transition: left .7s cubic-bezier(.83, 0, .17, 1) .4s, opacity 0s cubic-bezier(.83, 0, .17, 1) 1.5s
}

#site_loader_logo {
    position: relative;
    width: 100%;
    height: 100%
}

#site_loader_logo_inner {
    position: absolute;
    text-align: center;
    width: 100%;
    top: 50%;
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

#site_loader_overlay.active #site_loader_logo_inner {
    opacity: 0;
    -webkit-transition: all 1s cubic-bezier(.22, 1, .36, 1) 0s;
    transition: all 1s cubic-bezier(.22, 1, .36, 1) 0s
}

#site_loader_logo img.mobile {
    display: none
}

#site_loader_logo .catch {
    line-height: 1.6;
    padding: 0 50px;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

#site_loader_logo_inner .message {
    text-align: left;
    margin: 30px auto 0;
    display: table
}

#site_loader_logo.no_logo .message {
    margin-top: 0 !important
}

#site_loader_logo_inner .message.type2 {
    text-align: center
}

#site_loader_logo_inner .message.type3 {
    text-align: right
}

#site_loader_logo_inner .message_inner {
    display: inline;
    line-height: 1.5;
    margin: 0
}

@media screen and (max-width:750px) {
    #site_loader_logo.has_mobile_logo img.pc {
        display: none
    }

    #site_loader_logo.has_mobile_logo img.mobile {
        display: inline
    }

    #site_loader_logo .message {
        margin: 23px auto 0
    }

    #site_loader_logo .catch {
        padding: 0 20px
    }
}

#site_loader_logo .logo_image {
    opacity: 0
}

#site_loader_logo.use_normal_animation .catch {
    opacity: 0
}

#site_loader_logo.use_text_animation .catch span {
    opacity: 0;
    position: relative
}

#site_loader_logo .message {
    opacity: 0
}

#site_loader_logo.active .logo_image {
    -webkit-animation: opacityAnimation 1.4s ease forwards .5s;
    animation: opacityAnimation 1.4s ease forwards .5s
}

#site_loader_logo img.use_logo_animation {
    position: relative;
    -webkit-animation: slideUpDown 1.5s ease-in-out infinite 0s;
    animation: slideUpDown 1.5s ease-in-out infinite 0s
}

#site_loader_logo.use_normal_animation.active .catch {
    -webkit-animation: opacityAnimation 1.4s ease forwards .5s;
    animation: opacityAnimation 1.4s ease forwards .5s
}

#site_loader_logo.use_text_animation .catch span.animate {
    -webkit-animation: text_animation .5s ease forwards 0s;
    animation: text_animation .5s ease forwards 0s
}

#site_loader_logo.use_normal_animation.active .message {
    -webkit-animation: opacityAnimation 1.4s ease forwards 1.5s;
    animation: opacityAnimation 1.4s ease forwards 1.5s
}

#site_loader_logo.use_text_animation.active .message {
    -webkit-animation: opacityAnimation 1.4s ease forwards 2s;
    animation: opacityAnimation 1.4s ease forwards 2s
}

#site_loader_logo_inner .text {
    display: inline
}

#site_loader_logo_inner .dot_animation_wrap {
    display: inline;
    margin: 0 0 0 4px;
    position: absolute
}

#site_loader_logo_inner .dot_animation {
    display: inline
}

#site_loader_logo_inner i {
    width: 2px;
    height: 2px;
    margin: 0 4px 0 0;
    border-radius: 100%;
    display: inline-block;
    background: #000;
    -webkit-animation: loading-dots-middle-dots .5s linear infinite;
    -ms-animation: loading-dots-middle-dots .5s linear infinite;
    animation: loading-dots-middle-dots .5s linear infinite
}

#site_loader_logo_inner i:first-child {
    opacity: 0;
    -webkit-animation: loading-dots-first-dot .5s infinite;
    -ms-animation: loading-dots-first-dot .5s linear infinite;
    animation: loading-dots-first-dot .5s linear infinite;
    -webkit-transform: translate(-4px);
    -ms-transform: translate(-4px);
    transform: translate(-4px)
}

#site_loader_logo_inner i:last-child {
    -webkit-animation: loading-dots-last-dot .5s linear infinite;
    -ms-animation: loading-dots-last-dot .5s linear infinite;
    animation: loading-dots-last-dot .5s linear infinite
}

/* Keyframe Animations */
@-webkit-keyframes loading-dots-fadein {
    100% {
        opacity: 1
    }
}

@keyframes loading-dots-fadein {
    100% {
        opacity: 1
    }
}

@-webkit-keyframes loading-dots-first-dot {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px);
        opacity: 1
    }
}

@keyframes loading-dots-first-dot {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px);
        opacity: 1
    }
}

@-webkit-keyframes loading-dots-middle-dots {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px)
    }
}

@keyframes loading-dots-middle-dots {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px)
    }
}

@-webkit-keyframes loading-dots-last-dot {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px);
        opacity: 0
    }
}

@keyframes loading-dots-last-dot {
    100% {
        -webkit-transform: translate(6px);
        -ms-transform: translate(6px);
        transform: translate(6px);
        opacity: 0
    }
}

#site_loader_overlay.active #site_loader_animation {
    opacity: 0;
    -webkit-transition: all 1s cubic-bezier(.22, 1, .36, 1) 0s;
    transition: all 1s cubic-bezier(.22, 1, .36, 1) 0s
}

#site_loader_logo_inner .message {
    font-size: 16px;
    color: #fff
}

#site_loader_logo_inner i {
    background: #fff
}

#site_loader_logo_inner .catch {
    font-size: 40px;
    color: #fff
}

@media screen and (max-width:1100px) {
    #site_loader_logo_inner .catch {
        font-size: 31px
    }
}

@media screen and (max-width:750px) {
    #site_loader_logo_inner .message {
        font-size: 14px
    }

    #site_loader_logo_inner .catch {
        font-size: 21px
    }
}