/*
Theme Name: Twenty Twenty-Two Child
Theme URI: https://wordpress.org/themes/twentytwentytwo/
Template: twentytwentytwo
Author: the WordPress team
Author URI: https://wordpress.org/
Description: Child theme for Twenty Twenty-Two.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentytwo-child
*/

/* フォント定義 */
:root {
    --font-melvinsans: 'Melvinsans', sans-serif;
    --font-montserrat: 'Montserrat', sans-serif;
    --font-noto-sans-jp: 'Noto Sans JP', sans-serif;
    --primary-color: #000000;
    --secondary-color: #333333;
    --accent-color: #FFF68D;
    --text-color: #333333;
    --header-height: 80px;
    --announcement-height: 31px;
    --content-width: 1200px;
    --padding-section: 5rem;
}

/* パフォーマンス最適化のための設定 */
* {
    text-rendering: optimizeSpeed;
    -webkit-font-smoothing: antialiased;
}

/* 基本フォント設定 */
body {
    font-family: var(--font-noto-sans-jp);
    color: var(--text-color);
    margin: 0;
    padding: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
    position: relative;
    z-index: 1;
}

body.fade-in {
    opacity: 1;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
}
p,a{
	font-size:14px;
}

.container {
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 15px;
}

/* アニメーション最適化 */
.fade-in-element {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
    will-change: opacity, transform;
}

.fade-in-element.visible {
    opacity: 1;
    transform: translateY(0);
}

/* アナウンスバー */
.announcement-bar {
    background-color: var(--accent-color);
    height: var(--announcement-height);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 49;
    transition: transform 0.3s ease;
    will-change: transform;
}

.announcement-bar.hidden {
    transform: translateY(-100%);
}

.announcement-content {
    max-width: var(--content-width);
    margin: 0 auto;
    width: 100%;
    text-align: center;
    padding: 0 15px;
    font-size: 13px;
    font-weight: 500;
    box-sizing: border-box;
}

.announcement-content p {
    margin: 0;
    display: inline;
    font-size: 13px;
    letter-spacing: 0.5px;
}

.announcement-content a {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 600;
    margin-left: 10px;
    font-size: 12px;
    position: relative;
    display: inherit;
}

.announcement-content a:hover {
    text-decoration: underline;
}

/* モバイル対応 */
@media screen and (max-width: 767px) {
    .announcement-content {
        font-size: 10px;
    }
    
    .announcement-content p {
        font-size: 10px;
    }
    
    .announcement-content a {
        font-size: 10px;
    }
}
.text-center{
	text-align: center;
}
/* ヘッダー */
.site-header {
    position: fixed;
    top: 31px;
    left: 0;
    width: 100%;
    z-index: 50;
    transition: background-color 0.3s ease, top 0.3s ease;
    background-color: transparent;
    will-change: background-color, top;
}
.site-header.scrolled {
    background-color: #fff;
    top: 0;
    position: sticky !important;
    padding: 10px 0;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 15px;
}

.site-logo {
    max-width: 172px;
}

.site-logo img {
    max-width: 100%;
    height: auto;
}

/* デスクトップナビゲーション */
.main-navigation {
    display: none;
}

.main-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-menu li {
    margin-left: 30px;
    position: relative;
}

.main-menu li a {
    color: var(--primary-color);
    text-decoration: none;
    display: block;
    padding: 5px 0;
    font-family: var(--font-montserrat);
    font-weight: 600;
    text-transform: none;
    position: relative;
	font-size: 14.4px;
    text-align: center;
}

.main-menu li .menu-description {
    display: block;
    font-size: 9.6px;
    color: var(--secondary-color);
    font-family: var(--font-noto-sans-jp);
    font-weight: 400;
}

/* モバイルメニュー */
.mobile-menu {
}

.hamburger-toggle {
    display: none;
}

.hamburger-label {
    position: relative;
    z-index: 51;
    width: 40px;
    height: 40px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hamburger-label.scrolled {
    position: sticky;
    top: 10px;
    right: 15px;
}

.hamburger-label::before {
    content: "MENU";
    display: block;
    font-size: 9px;
    font-family: var(--font-montserrat);
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 5px;
    width: 100%;
    text-align: center;
}

.hamburger-label span {
    display: block;
    width: 25px;
    height: 2px;
    background-color: #333;
    margin: 3px 0;
    transition: all 0.3s ease;
}

/* メニューが開いている時のハンバーガーラベル - CLOSEデザイン */
#hamburger-menu:checked ~ .hamburger-label {
    z-index: 54;
}

/* CLOSEテキスト */
#hamburger-menu:checked ~ .hamburger-label::before {
    content: "CLOSE";
}

/* メニューが開いている時のハンバーガーアイコン - バツ印 */
#hamburger-menu:checked ~ .hamburger-label span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
}

#hamburger-menu:checked ~ .hamburger-label span:nth-child(2) {
    transform: translateY(-5px) rotate(-45deg);
}

/* モバイルメニューオーバーレイ */
.mobile-menu-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100vw;
    height: 100vh;
    background-color: #fff;
    z-index: 52;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding-top: 50%;
}
.mobile-menu-overlay.active{
	opacity: 1;
    visibility: visible;
}
.mobile-menu-container {
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.mobile-menu-logo {
    display: block;
    max-width: 150px;
    margin: 0 auto 40px;
}

.mobile-menu-logo img {
    width: 100%;
    height: auto;
}

.mobile-menu-logo-img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 20px;
}

.mobile-menu-nav {
    margin: 0;
    width: 100%;
    max-width: 200px;
}

.mobile-menu-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.mobile-menu-nav li {
    margin: 0 0 15px;
    width: 100%;
    text-align: center;
}

.mobile-menu-nav a {
    font-size: 15px;
    color: #333;
    text-decoration: none;
    font-weight: normal;
    display: block;
    padding: 5px 0;
    position: relative;
    text-align: center;
}

/* デスクトップ対応 */
@media screen and (min-width: 768px) {
    .main-navigation {
        display: block;
    }

    .mobile-menu {
        display: none;
    }
}

/* アニメーションコンテナのz-index調整 */
#animation-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: white;
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
    transition: opacity 0.4s ease;
}

#animation-container.hidden {
    opacity: 0;
}

/* オーバーレイのz-index調整 */
#animation-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: white;
    z-index: 1999;
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

#animation-overlay.slide-in {
    transform: translateX(0);
}

#animation-overlay.slide-out {
    transform: translateX(-100%);
}

/* アニメーション中のヘッダー制御 */
body.animating #hamburger-menu,
body.animating .hamburger-label {
    z-index: 1;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.3s ease;
}

body:not(.animating) .hamburger-label {
    visibility: visible;
    opacity: 1;
    transition: visibility 0s, opacity 0.3s ease;
}

/* ファーストビュー（スライダー） */
.home-slider {
    position: relative;
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    overflow: hidden;
}

/* スライダーコンテナのスタイル */
.slider-container {
    width: 100%;
    height: 100%;
    position: relative;
}
/* スライダーアイテムのスタイル */
.slider-item {
    position: relative;
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* スライダー背景画像 */
.slider-item picture {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.slider-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* スライダーコンテンツのスタイル - 中央揃え */
.slider-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    text-align: center;
    z-index: 10;
    padding: 0 15px;
}

.slider-content h2 {
    font-size: 56px;
    line-height: 1.2;
    margin-bottom: 20px;
    font-weight: 100;
    letter-spacing: 0.05em;
    color: #333;
}

.slider-content .subheading {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.1em;
    color: #666;
}

/* スライダーコンテンツのスタイル */
.slider-content {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    z-index: 10;
    position: relative;
}

.slider-title-image {
    margin-bottom: 20px;
    max-width: 100%;
}

.slider-title-image .title-image {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}
.slider-item img.pc{
display: block;
}
.slider-item img.sp{
display: none;
}
/* レスポンシブ対応 */
@media (max-width: 767px) {
    .slider-title-image {
        max-width: 90%;
        margin: 0 auto 15px;
    }
    .home .announcement-bar{
    	display: flex;
    }
    .slider-title-image .title-image {
        max-height: 100px; 
        
    max-width: 270px;
    margin-right: 0;/* モバイルでの最大高さ */
    }
    .slider-item img.sp{
    display: block;
    }
    .slider-item img.pc{
    display: none;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .slider-title-image .title-image {
        max-height: 150px; /* タブレットでの最大高さ */
    }
}

.slider-title-image .title-image {
    max-width: 480px;
    margin-right: 0;
}

@media (min-width: 1200px) {
    .slider-title-image .title-image {
        max-height: 200px; /* デスクトップでの最大高さ */
    }
}

/* セクション全般 */
.section {
    padding: var(--padding-section);
}

/* セクション1 */
.section-1 {
    padding: var(--padding-section);
    background-color: white !important;
    position: relative;
    overflow: hidden;
}

/* デスクトップ版セクション1 */
.section-1 .desktop-section {
    display: block;
}

.section-1 .desktop-section .section-bg {
    background-position: center right 70px;
    background-size: auto;
    background-repeat: no-repeat;
}

.section-1 .desktop-section .section-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 119px;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 15px;
}

.section-1 .desktop-section .image-container {
    max-width: 692px;
    width: 100%;
}

.section-1 .desktop-section .text-container {
    max-width: 419px;
    width: 100%;
}

.section-1 .desktop-section .text-container p {
    font-size: 14px;
    line-height: 32px;
    letter-spacing: 0.04em;
}

.section-1 .desktop-section .content-top {
    margin-bottom: 2rem;
}

.section-1 .desktop-section .content-bottom {
    margin-top: 2rem;
}

.section-1 .desktop-section img {
    max-width: 100%;
    height: auto;
}

/* モバイル版セクション1 */
.section-1 .mobile-section {
    display: none;
}

@media screen and (max-width: 767px) {
    .section-1 {
        padding: 0;
        max-height: none;
    }

    .section-1 .desktop-section {
        display: none;
    }

    .section-1 .mobile-section {
        display: block;
    }

    .section-1 .mobile-container {
        padding: 0px 20px;
    }

    .section-1 .mobile-container .section-content {
        margin-bottom: 30px;
    }

    .section-1 .mobile-container .section-content.bottom {
        margin-top: 30px;
        margin-bottom: 0;
    }

    .section-1 .mobile-container .section-content p {
        font-size: 12px;
        line-height: 32px;
        letter-spacing: 0.04em;
        margin: 0;
    }

    .section-1 .mobile-container .image-container {
        margin: 0 auto;
    }

    .section-1 .mobile-container .image-container img {
        width: 100%;
        height: auto;
        display: block;
    }
}

/* セクション2 (セクションタイトル) */
.section-title-container {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    padding: 0 0 50px;
}

.section-title {
    font-family: 'Melvinsans Thin Regular', sans-serif;
    font-size: 36px;
    font-weight: 500;
    margin-bottom: 5.2px;
}

.section-description {
    font-size: 16px;
    line-height: 1.6;
}
.section-description p {
    margin-top: 0;
}

/* イメージ・テキストセクション共通 */
.image-text-section {
    padding: var(--padding-section);
}

.image-text-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 121px;
    max-width: var(--content-width);
    margin: 0 auto;
}

.image-text-section .image-container {
    max-width: 629px;
    width: 100%;
}

.image-text-section .text-container {
    max-width: 414px;
    width: 100%;
}

.image-text-section.image-right .image-text-container {
    flex-direction: inherit;
}
/*
section.image-text-section.fade-in-element.image-right.visible {
    padding-top: 0;
}
*/
.image-text-section img {
    max-width: 100%;
    height: auto;
}

.image-text-section .subheading {
    font-size: 12px;
    margin-bottom: 10px;
    letter-spacing: 0.065em;
    line-height: 14.4px;
}

.image-text-section .section-title {
    font-size: 26px;
    margin-bottom: 15px;
    margin-top: 0rem;
    border-bottom: 1px solid #3E3E3E;
    padding-bottom: 1rem;
}

.image-text-section .section-content {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 30px;
}

section-content p {
    letter-spacing: 0.04em;
    line-height: 32px;
}

.image-text-section .btn {
	display: inline-block;
    max-width: 115px;
    width: 100%;
    font-size: 13px;
    letter-spacing: 0.065em;
    line-height: 15.95px;
    padding: 10px 15px;
    background-color: white;
    color: var(--primary-color);
    text-decoration: none;
    text-align: center;
    border: 1px solid var(--primary-color);
    transition: all 0.3s ease;
}

.image-text-section .btn:hover {
    background-color: var(--primary-color);
    color: white;
}

/* イメージバナー */
.image-banner {
    width: 100%;
    min-height: 579px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.banner-content {
    max-width: 800px;
    width: 100%;
    padding: 50px;
    text-align: center;
}

.banner-title {
    font-size: 36px;
    margin-bottom: 0px;
    font-weight: 500;
}

.banner-text {
    font-size: 12px;
    margin-bottom: 30px;
}

.banner-content .btn {
    display: inline-block;
    max-width: 231px;
    width: 100%;
    font-size: 13px;
    letter-spacing: 0.065em;
    line-height: 15.95px;
    padding: 10px 15px;
    background-color: black;
    color: white;
    text-decoration: none;
    text-align: center;
    border: 1px solid black;
    transition: all 0.3s ease;
}

.banner-content .btn:hover {
    background-color: white;
    color: black;
}


/* セクション6: 投稿カラム */
.latest-posts {
    padding: var(--padding-section);
    padding-top: 4rem;
    position: relative;
    background: linear-gradient(to bottom, white 50%, rgba(255, 246, 141, 0.7) 50%);
}

.latest-posts .section-title-container {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    padding-bottom: 3rem;
}

.latest-posts .section-title-image {
    margin-bottom: 0px;
}

.latest-posts .section-title-image img {
    max-width: 170px;
    height: auto;
}

.latest-posts .section-description {
    max-width: 600px;
    margin: 0 auto;
    color: #666;
}

.latest-posts .posts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 45px;
    max-width: var(--content-width);
    margin: 0 auto;
}

.latest-posts .post-item {
    max-width: 559px;
    width: 100%;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.latest-posts .post-item:hover {
    transform: translateY(-5px);
}

.latest-posts .post-thumbnail {
    margin-bottom: 15px;
    position: relative;
    padding-top: 60%;
    overflow: hidden;
}

.latest-posts .post-thumbnail img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}


.latest-posts .post-meta {
    padding: 0px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.latest-posts .post-date {
    font-size: 14px;
    margin-bottom: 5px;
    padding-bottom: 10px;
    border-bottom: 1px solid #231815;
}

.latest-posts .post-title {
    font-size: 14px;
    margin: 0;
    line-height: 32px;
}

.latest-posts .post-title a {
    color: var(--primary-color);
    text-decoration: none;    
    font-weight: 500;
    letter-spacing: 0.025em;
    line-height: 32px;
}

.latest-posts .post-title a:hover {
    color: #007bff;
}

/* モバイル対応 */
@media screen and (max-width: 767px) {
    .latest-posts {
        padding: 40px 15px;
    }

    .latest-posts .posts-grid {
        display: flex;
        overflow-x: auto;
        gap: 15px;
        padding: 30px;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE and Edge */
    }

    .latest-posts .posts-grid::-webkit-scrollbar {
        display: none; /* Chrome, Safari, Opera */
    }

    .latest-posts .post-item {
        flex: 0 0 85%;
        scroll-snap-align: start;
        margin-right: 15px;
        max-width: none;
        width: auto;
    }

    .latest-posts .post-item:last-child {
        margin-right: 0;
    }

    .latest-posts .post-meta {
        padding: 0px;
        margin-bottom: 1rem;
    }

    .latest-posts .post-title {
        font-size: 14px;
        line-height: 32px;
    }
}

/* タブレット対応 */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .latest-posts .posts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/* デスクトップ対応 */
@media screen and (min-width: 1025px) {
    .latest-posts .posts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 45px;
    }
}

/* フッター */
.site-footer {
    background-color: #FFF;
    color: white;
    padding: 6rem 0;
    text-align: center;
}

.footer-navigation {
    margin-bottom: 1.8rem;
}
.footer-menu {
	display: flex;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu ul {
	list-style: none;
	display: flex;
    justify-content: center;
}

.footer-menu li {
    margin: 0 15px 0px 0;
	display: flex;
	align-items: center;
}

.footer-menu li a {
	color: #000;
	text-decoration: none;
    font-size: 12px;
    letter-spacing: 0.065em;
    line-height: 14.4px;
}

/* Additional CSS for vertical separators */
.footer-menu li:not(:last-child)::after {
	content: "|";
	margin-left: 15px;
	color: #000;
}
@media screen and (max-width: 580px) {
.footer-menu li:nth-child(3){
    margin-right: 0;
}
.footer-menu li:nth-child(3)::after{
	content: none;
}
}
.footer-logo {
    max-width: 82px;
    margin: 0 auto 2rem;
}

.footer-logo img {
    max-width: 100%;
    height: auto;
}

.copyright {
    font-size: 9px;
    color: #000;
    letter-spacing: 0.05em;
    line-height: 37px;
}

/* レスポンシブ設定 */
@media (max-width: 992px) {
    .image-text-container,
    .section-1 .container {
        flex-direction: column;
        gap: 50px;
    }
    
    .image-text-section.image-right .image-text-container {
        flex-direction: column;
    }
    
    .posts-grid {
        grid-template-columns: 1fr;
    }
    
    .slider-content {
        width: 80%;
        left: 45%;
        right: auto;
        text-align: center;
    }
    
    .slider-content h2 {
		font-family: 'Melvinsans Thin Regular', sans-serif;
        font-size: 50px;
    }
    
    .slider-content .subheading {
        text-align: center;
    }
}

@media (max-width: 768px) {
    :root {
        --padding-section: 3rem;
    }
    .announcement-content{
        max-width: var(--content-width);
    margin: 0 auto;
    width: 100%;
    text-align: center;
    padding: 0 15px;
    font-size: 10px;
    }
    
    .home-slider, 
    .slider-item {
        height: calc(var(--vh, 1vh) * 100); /* JavaScript で計算した可変ビューポート高さ */
    }
    
    .slider-container {
        height: 100%;
        margin-bottom: 0px;
    }
    
    /* スライダーコンテンツを中央揃え */
    .slider-content {
        width: 90%;
        padding: 0 15px;
        left: 45%;
        right: auto;
        text-align: center;
    }
    
    .slider-content h2 {
        font-size: 46px;
        line-height: 1.2;
        text-align: center;
    }
    
    .slider-content .subheading {
        font-size: 14px;
        text-align: center;
    }
    
    /* モバイルでのスクロールインジケーター位置調整 */
    .scroll_down {
        bottom: 20px;
        right: auto !important;
        left: 50%;
        transform: none !important;
        margin-left: 20px;
    }
    
    .scroll_down a {
        padding: 10px 10px 70px;
        font-size: 10px;
        right: 0 !important;
    }
    
    .scroll_down a:before {
        height: 60px;
    }
    
    .scroll_down a:after {
        height: 50px;
    }
}
.slick-dots{
display: none !important;
}
.home .slider-item .slider-img{
	height: calc(var(--vh, 1vh) * 100);
}
@media (max-width: 576px) {
    .home-slider {
        min-height: 620px;
    }
    .slick-slider .slick-list{
        height: calc(var(--vh, 1vh) * 100);
    }
    
    .slider-item {
        height: calc(var(--vh, 1vh) * 100);
    }
    .home-slider .scroll_down {
        bottom: 20px!important;
        right: 30%!important;
        position: absolute;
    }
    .slider-content h2 {
        font-size: 46px;
    }
    
    .slider-content .subheading {
        font-size: 12px;
    }
}

/* iOS Safariの100vh問題対策 */
@supports (-webkit-touch-callout: none) {
    .home-slider,
    .slider-item {
        height: -webkit-fill-available;
    }
}

/* ヘッダーメニューフォント設定 */
.primary-navigation a,
.site-header .wp-block-navigation .wp-block-navigation-item__content,
.main-menu li a {
    font-family: var(--font-montserrat);
    font-weight: 600;
}

/* スライダーやトップページの項目タイトル */
.home-slider h2,
.section-title,
    .slider-content h2 {
    font-family: var(--font-melvinsans);
    font-weight: 100;
    margin: 0;
}

/* 日本語テキスト指定 */
.jp-text,
.site-content p,
.entry-content p,
.entry-content li,
.wp-block-paragraph {
    font-family: var(--font-noto-sans-jp);
}

/* フォントユーティリティクラス */
.font-melvinsans {
    font-family: var(--font-melvinsans);
}

.font-montserrat {
    font-family: var(--font-montserrat);
}

.font-noto-sans-jp {
    font-family: var(--font-noto-sans-jp);
}

/* ウェイトユーティリティクラス */
.font-thin {
    font-weight: 100;
}

.font-light {
    font-weight: 300;
}

.font-regular {
    font-weight: 400;
}

.font-medium {
    font-weight: 500;
}

.font-bold {
    font-weight: 700;
}

.font-black {
    font-weight: 900;
}

/* ハンバーガーメニュー */
#hamburger-menu {
    display: none !important; /* チェックボックスを完全に非表示 */
}

@media screen and (max-width: 767px) {
    .site-header {
        position: fixed;
        z-index: 50;
        height: 60px;
        transition: all 0.3s ease;
    }
    
    .site-header.scrolled {
        position: sticky;
        top: 0;
        padding: 0 !important;
    }

    .header-container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 100%;
        margin: 0;
        padding: 0 20px;
    }

    .site-logo {
        height: 40px;
        width: auto;
        margin: 0;
    }
    
    .site-logo img {
        height: 100%;
        width: auto;
        display: block;
    }

    /* メインナビゲーションを非表示（モバイル） */
    .main-navigation {
        display: none;
    }

    /* CSS Onlyハンバーガーメニュー用のチェックボックス */
    #hamburger-menu {
        display: none;
    }

    /* ハンバーガーメニューラベル - 新デザイン */
    .hamburger-label {
        position: relative;
        z-index: 51;
        width: 40px;
        height: 40px;
        cursor: pointer;
        text-align: center;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .hamburger-label.scrolled {
        position: sticky;
        top: 10px;
        right: 15px;
    }

    /* MENUテキスト */
    .hamburger-label::before {
        content: "MENU";
        display: block;
        font-size: 9px;
        font-family: var(--font-montserrat);
        font-weight: 500;
        letter-spacing: 0.05em;
        margin-bottom: 5px;
        width: 100%;
        text-align: center;
    }

    /* ハンバーガーアイコンの線 - 2本線デザイン */
    .hamburger-label span {
        display: block;
        width: 25px;
        height: 2px;
        background-color: #333;
        margin: 3px 0;
        transition: all 0.3s ease;
    }

    /* メニューが開いている時のハンバーガーラベル - CLOSEデザイン */
    #hamburger-menu:checked ~ .hamburger-label {
        z-index: 54;
    }

    /* CLOSEテキスト */
    #hamburger-menu:checked ~ .hamburger-label::before {
        content: "CLOSE";
    }

    /* メニューが開いている時のハンバーガーアイコン - バツ印 */
    #hamburger-menu:checked ~ .hamburger-label span:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    #hamburger-menu:checked ~ .hamburger-label span:nth-child(2) {
        transform: translateY(-4px) rotate(-45deg);
    }

    /* モバイルメニューオーバーレイ */
    .mobile-menu-overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        width: 100vw;
        height: 100vh;
        background-color: #fff;
        z-index: 52;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        padding-top: 80px;
    }
    .mobile-menu-overlay.active{
        opacity: 1;
        visibility: visible;
    }

    /* メニューが開いた時のオーバーレイ表示 */
    #hamburger-menu:checked ~ .mobile-menu-overlay {
        opacity: 1;
        visibility: visible;
        z-index: 52;
    }

    /* モバイルメニューコンテナ - 中央寄せ */
    .mobile-menu-container {
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* モバイルメニュー内のロゴ */
    .mobile-menu-logo {
        display: block;
        max-width: 150px;
        margin: 0 auto 40px;
    }

    .mobile-menu-logo img {
        width: 100%;
        height: auto;
    }

    /* モバイルメニュー内のナビゲーション - 中央寄せ */
    .mobile-menu-nav {
        margin: 0;
        width: 100%;
        max-width: 200px;
    }

    .mobile-menu-nav ul {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .mobile-menu-nav li {
        margin: 0 0 15px;
        width: 100%;
        text-align: center;
    }

    .mobile-menu-nav a {
        font-size: 15px;
        color: #333;
        text-decoration: none;
        font-weight: normal;
        display: block;
        padding: 5px 0;
        position: relative;
        text-align: center;
    }
}

/* デスクトップ向けスタイル - スマホ専用スタイルを上書き */
@media screen and (min-width: 768px) {
    /* デスクトップヘッダー - すべてのページで統一 */
    .site-header {
        position: fixed;
        top: 31px;
        left: 0;
        width: 100%;
        z-index: 998;
        padding: 35px 0 10px;
        transition: background-color 0.3s ease, top 0.3s ease;
        background-color: transparent;
    }

    .site-header.scrolled {
    top: 0!important;
    }
    

    body.home .announcement-bar {
        display: flex;
    }

    .site-header.scrolled {
        top: 0;
    }

    .header-container {
        max-width: var(--content-width);
        margin: 0 auto;
        padding: 0 15px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .site-logo {
        height: auto;
    }

    .site-logo img {
        height: 100%;
        width: auto;
    }

    /* メインナビゲーション（デスクトップ） */
    .main-navigation {
        display: block;
    }

    .main-menu {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
    }

    .main-menu li {
        margin: 0 15px;
    }

    .main-menu li a {
        text-decoration: none;
        color: #333;
        font-size: 16px;
        font-weight: 500;
        position: relative;
        padding: 10px 0;
        transition: color 0.3s ease;
    }

    .main-menu li a:hover {
        color: var(--primary-color);
    }

    /* モバイル専用要素を非表示 */
    .hamburger-label {
        display: none;
    }

    .mobile-menu-overlay {
        display: none;
    }

    .slider-item .pc-image {
        display: block;
    }

    .slider-item .mobile-image {
        display: none;
    }

    /* デスクトップ用スクロールインジケーター位置調整 */
    .scroll_down {
        bottom: 40px;
        right: 30px;
        left: auto;
        transform: none;
    }

    /* スライダーコンテンツのデスクトップレイアウト */
    .slider-content {
        position: absolute;
        top: 50%;
        left: auto;
        right: calc((100% - 1140px)/2);
        transform: translateY(-50%);
        width: auto;
        max-width: 50%;
        text-align: left;
        padding: 0;
        z-index: 10;
    }
    
    /* コンテナサイズに合わせた調整 */
    @media (max-width: 1200px) {
        .slider-content {
            right: 5%;
        }
    }
    
    /* スライダーコンテンツの見出しとサブ見出しのスタイル */
    .slider-content h2 {
        text-align: left;
        margin-bottom: 1.5rem;
    }
    
    .slider-content .subheading {
        text-align: right;
    }
}

/* スクロール禁止用のクラス */
body.menu-open {
    overflow: hidden;
}

/* スクロールインジケーター共通スタイル - 基本スタイル */
.scroll_down {
    position: absolute;
    z-index: 100;
    bottom: 40px;
    right: 30px;
}

/* スライダー内のスクロールインジケーター */
.home-slider .scroll_down {
    bottom: 0px;
    right: 30px;
    position: absolute;
}

.scroll_down a {
    display: inline-block;
    padding: 10px 10px 80px;
    color: #000;
    font-size: 12px;
    font-family: 'Josefin Sans', sans-serif;
    line-height: 1;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-decoration: none;
    writing-mode: vertical-lr;
    transition: .2s;
    text-align: center;
    position: relative;
}

.scroll_down a:before {
    content: none !important;
    position: absolute;
    top: auto !important;
    bottom: 0 !important;
    left: 50%;
    width: 2px;
    height: 70px;
    background: #ddd;
}

.scroll_down a:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 2px;
    height: 61px;
    background: #000;
    animation: sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
    will-change: transform;
}

/* 768px以上のデスクトップ表示でのスクロールインジケーター位置 */
@media screen and (min-width: 768px) {
    .scroll_down {
        bottom: 40px;
        right: 30px;
        left: auto;
        transform: none;
    }
}

/* モバイル表示でのスクロールインジケーター位置調整 */
@media screen and (max-width: 767px) {
    .scroll_down {
        bottom: 20px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }
}

@keyframes sdl01 {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }
    50% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }
    50.1% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }
    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}

/* ハンバーガーメニューが開いている時はスクロールインジケーターを非表示 */
body.menu-open .scroll_down {
    display: none;
}

/* モバイル対応 */
@media screen and (max-width: 767px) {
    .section-1 {
        max-height: none;
        padding: 3rem 0;
    }

    .section-1 .container {
        flex-direction: column;
        gap: 2rem;
        padding: 0 20px;
    }

    .section-1 .image-container,
    .section-1 .text-container {
        max-width: 100%;
    }

    .section-1 .content-top,
    .section-1 .content-bottom {
        margin: 1rem 0;
    }
}

/* セクション1のデスクトップ/モバイル表示制御 */
.section-1 .desktop-section {
    display: block;
}

.section-1 .mobile-section {
    display: none;
}

@media screen and (max-width: 767px) {
    .section-1 .desktop-section {
        display: none;
    }

    .section-1 .mobile-section {
        display: block;
    }

    .section-1 .mobile-container {
        padding: 0px 20px;      
        background-image: url(http://mimosa-career.com/wp/wp-content/uploads/2025/03/index-sp-bg-1.png);
        background-repeat: no-repeat;
        background-color: white;
        background-position: center;
        background-size: contain;
    }

    .section-1 .mobile-container .section-content {
        margin-bottom: 30px;
    }

    .section-1 .mobile-container .section-content.bottom {
        margin-top: 30px;
        margin-bottom: 0;
    }

    .section-1 .mobile-container .image-container {
        margin: 0 auto;
    }

    .section-1 .mobile-container .image-container img {
        width: 100%;
        height: auto;
        display: block;
    }
    /*
    section.section-1.fade-in-element.visible {
        margin-bottom: -110px;
        padding-top:0;
    }
    */
    
}

/* モバイル対応：セクション3と4 */
@media screen and (max-width: 767px) {
    .image-text-section {
        padding: 0;
    }

    .image-text-container {
        flex-direction: column;
        gap: 0;
    }

    .image-text-section.image-right .image-text-container {
       
        flex-direction: column-reverse;
        margin: 3rem 0;
    }

    .image-text-section .image-container {
        max-width: 100%;
        width: 100%;
        margin: 0;
    }

    .image-text-section .image-container img {
        width: 100%;
        height: auto;
        display: block;
    }

    .image-text-section .text-container {
        max-width: 100%;
        width: 85%;
        padding: 40px 20px;
    }

    .image-text-section .section-title {
        font-size: 22px;
        margin-bottom: 12px;
    }

    .image-text-section .section-content {
        font-size: 12px;
        line-height: 1.8;
        margin-bottom: 20px;
    }
    .image-text-section .section-content p {
        font-size: 12px;
    }
    .image-text-section .subheading {
        font-size: 11px;
        margin-bottom: 8px;
    }
    /*
    section.image-text-section.fade-in-element.image-left.visible {
        margin-top: 2rem;
    }
    section.image-text-section.fade-in-element.image-right.visible {
        padding-top: 0;
        margin-top: 0;
    }
    */
    .site-footer {
        background-color: #FFF;
        color: white;
        padding: 3rem 0;
        text-align: center;
    }
}

@media screen and (max-width: 767px) {



    /*BANNER*/

    .banner-content{
        max-width: 100%;
        padding: 0px;
        text-align: center;
    }
    .banner-title {
        font-size: 32px;
        margin: 0;
        font-weight: 500;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
    }
    .banner-button {
        display: inline-block;
        max-width: 201px;
        width: 100%;
        font-size: 12px;
        letter-spacing: 0.065em;
        line-height: 15.95px;
        padding: 10px 10px;
        background-color: white;
        color: var(--primary-color);
        text-decoration: none;
        text-align: center;
        border: 1px solid var(--primary-color);
        transition: all 0.3s ease;
    }
    .latest-posts .section-title-container {
        text-align: center;
        max-width: 800px;
        margin: 0 auto;
        padding-bottom: 0rem;
    }
    /*
    section.latest-posts.fade-in-element.visible {
        padding: 60px 0 0 20px;
    }
    */
    /* 全体のコンテナ */
    .posts-grid {
      display: flex;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 16px;
      padding: 16px;
      background-color: transparent;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    
    .posts-grid::-webkit-scrollbar {
      display: none;
    }
    
    /* 各カードアイテム */
    .post-item {
      flex: 0 0 85%;
      min-width: 85%;
      scroll-snap-align: start;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background-color: transparent;
      position: relative;
    }
    
    /* サムネイル画像コンテナ */
    .post-thumbnail {
      width: 100%;
      position: relative;
      background-color: #fff;
      margin-bottom: 5px;
    }
    
    /* サムネイル画像 */
    .post-thumbnail img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: cover;
    }
    
    /* メタ情報エリア */
    .post-meta {
        padding: 10px 0;
      display: flex;
      flex-direction: column;
      gap: 0px;
    }
    
    /* 日付スタイル */
    .post-date {
      font-size: 12px;
      position: relative;
      padding-bottom: 5px;
      margin-bottom: 5px;
      color: #000;
    }
    
    
    /* タイトルスタイル */
    .post-title {
      font-size: 12px;
      line-height: 1.4;
      margin: 0;
    }
    
    .post-title a {
      color: #000;
      text-decoration: none;
      display: block;
    }
}

/* メディアの読み込み最適化 */
.image-container img,
.slider-bg,
.post-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}
/*
section.about-section-4.fade-in-element.visible {
    background: white;
}
*/
/* レイヤー設定の最適化 */
@media screen and (max-width: 767px) {
    .site-header {
        z-index: 50;
        background-color: transparent;
        box-shadow: none;
    }
    
    body:not(.home) .site-header {
        box-shadow: none;
    }
    
    .mobile-menu-overlay {
        z-index: 52;
    }
    
    .hamburger-label {
        z-index: 51;
    }
    
    #hamburger-menu:checked ~ .hamburger-label {
        z-index: 54;
    }
    
    .fade-in-element {
        z-index: auto;
    }
    
    .fade-in-element.visible {
        z-index: auto;
    }
    /*
    section.section-2.fade-in-element.visible {
        margin-top: 5rem;
    }
    */
    .section-title-image {
        max-width: 40%!important;
    }
    .banner-title-image .title-image{   
    max-width: 30%!important;
}
    .section-title-container {
        text-align: center;
        max-width: 800px;
        margin: 0 auto;
        padding: 0 0 10px;
    }
}

/* アニメーションロゴ関連 */
#animation-logo {
    max-width: 200px;
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

#animation-logo.visible {
    opacity: 1;
    transform: scale(1);
}

/* アニメーションコンテナのz-index調整 */
#animation-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: white;
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
    transition: opacity 0.4s ease;
}

#animation-container.hidden {
    opacity: 0;
}

/* オーバーレイのz-index調整 */
#animation-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: white;
    z-index: 1999;
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

#animation-overlay.slide-in {
    transform: translateX(0);
}

#animation-overlay.slide-out {
    transform: translateX(-100%);
}

/* z-index階層の整理 */
@media screen and (max-width: 767px) {
    .site-header {
        z-index: 50;
    }
    
    .hamburger-label {
        z-index: 51;
    }
    
    .mobile-menu-overlay {
        z-index: 52;
    }
    
    #hamburger-menu:checked ~ .hamburger-label {
        z-index: 54;
    }
    
    #hamburger-menu:checked ~ .mobile-menu-overlay {
        z-index: 53;
    }
    
    /* ハンバーガーメニューとアニメーションの関係を調整 */
    body.animating #hamburger-menu,
    body.animating .hamburger-label {
        z-index: 1;
        visibility: hidden;
        opacity: 0;
        transition: visibility 0s, opacity 0.3s ease;
    }
    
    /* アニメーション終了後にメニューを表示 */
    body:not(.animating) .hamburger-label {
        visibility: visible;
        opacity: 1;
        transition: visibility 0s, opacity 0.3s ease;
    }
}

.scroll_down a:hover {
    opacity: .5;
}

/* スワイプインジケーターを非表示 */
.slick-slider .slick-track {
    cursor: default !important;
}

/* モバイルスワイプインジケーターを非表示 */
.posts-grid::-webkit-scrollbar {
    display: none;
}

.posts-grid {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

/* スライダーの矢印ナビゲーションを非表示 */
.slick-arrow, 
.slick-prev, 
.slick-next {
    display: none !important;
}

/* すべてのSwiper関連要素を非表示 */
.swiper-button-next,
.swiper-button-prev,
.swiper-pagination,
.swiper-scrollbar,
.swiper-notification,
[class^="swiper-button-"] {
    display: none !important;
}

/* タッチスワイプインジケーターを非表示 */
.swipe-indicator,
.touch-indicator,
.slider-indicator,
.touch-hint,
[class*="swipe"],
[class*="slider-nav"] {
    display: none !important;
}

/* ミドルサイズデスクトップ用スタイル（769px～1023px） */
@media screen and (min-width: 769px) and (max-width: 1023px) {
    .home-slider, 
    .slider-item {
        height: calc(var(--vh, 1vh) * 100);
    }
    
    .slider-bg {
        object-position: center center;
    }

    .slider-content {
        right: 5%;
        left: auto;
        width: 50%;
        max-width: 500px;
        text-align: right;
        padding-right: 0;
    }
    
    .slider-content h2 {
        font-size: 50px;
        line-height: 1.2;
        text-align: right;
    }
    
    .slider-content .subheading {
        font-size: 11px;
        margin-left: 45px;
    }
    
    .scroll_down {
        bottom: 30px;
        right: 20px;
    }
    
    .scroll_down a {
        padding: 10px 10px 70px;
    }
    
    .scroll_down a:before {
        height: 60px;
    }

    .scroll_down a:after {
        height: 51px;
    }
}

/* ミドルサイズデスクトップ用スタイル（1024px～1199px） */
@media screen and (min-width: 1024px) and (max-width: 1199px) {
    .home-slider, 
    .slider-item {
        height: calc(var(--vh, 1vh) * 100);
        min-height: 650px;
    }
    
    .slider-content {
        right: calc((100% - 960px)/2);
        width: 50%;
        max-width: 550px;
    }
    
    .slider-content h2 {
        font-size: 56px;
        line-height: 1.25;
    }
    
    .slider-content .subheading {
        font-size: 15px;
    }
    
    .scroll_down {
        bottom: 35px;
        right: 25px;
    }
}

/* ミドルサイズデスクトップ用スタイル（1200px～1439px） */
@media screen and (min-width: 1200px) and (max-width: 1439px) {
    .home-slider, 
    .slider-item {
        height: calc(var(--vh, 1vh) * 100);
        min-height: 700px;
    }
    
    .slider-content {
        right: calc((100% - 1140px)/2);
        width: 50%;
        max-width: 580px;
    }
    
    .slider-content h2 {
        font-size: 60px;
        line-height: 1.3;
    }
    
    .slider-content .subheading {
        font-size: 16px;
        text-align: right;
    }
    
    .scroll_down {
        bottom: 40px;
        right: 30px;
    }
}

.section-title-image .title-image, .banner-title-image .title-image {
    max-width: 183px;
}

/* 大画面デスクトップ用スタイル（1440px以上） */
@media screen and (min-width: 1440px) {
    .home-slider, 
    .slider-item {
        height: calc(var(--vh, 1vh) * 100);
        min-height: 700px;
    }
    
    .slider-content {
        right: calc((100% - 1200px)/2);
        width: 50%;
        max-width: 600px;
    }
    
    .slider-content h2 {
        font-size: 76px;
        line-height: 1.1;
    }
    
    .slider-content .subheading {
        font-size: 16px;
    }
    
    .scroll_down {
        bottom: 40px;
        right: 40px;
    }
}

/* タイトル画像のスタイル */
.section-title-image,
.banner-title-image {
    margin-bottom: 10px;
    max-width: 100%;
    text-align: center;
}

.section-title-image .title-image,
.banner-title-image .title-image {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .section-title-image,
    .banner-title-image {
        max-width: 90%;
        margin: 0 auto 15px;
    }
    
    .section-title-image .title-image,
    .banner-title-image .title-image {
        max-height: 70px; /* モバイルでの最大高さ */
    }

    .footer-menu {
        display: flex;
        flex-flow: wrap;
        justify-content: center;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .footer-navigation {
        margin-bottom: 3rem;
    }
    section.image-banner {
        min-height: 350px;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .section-title-image .title-image,
    .banner-title-image .title-image {
        max-width: 183px; /* デスクトップでの最大高さ */
    }

    .banner-title-image .title-image {
        max-width: 93px;
    }
    .scroll_down a {
        display: inline-block;
        position: absolute;
        right: 40%;
        bottom: 0px;
        z-index: 2;
        width: 13px;
        padding: 10px 10px 80px;
        color: #000;
        font-size: 11px;
        font-family: 'Josefin Sans', sans-serif;
        line-height: 1;
        letter-spacing: .2em;
        text-transform: uppercase;
        text-decoration: none;
        writing-mode: vertical-lr;
        transition: .2s;
        overflow: hidden;
    }
}

@media (min-width: 1200px) {
    .section-title-image .title-image,
    .banner-title-image .title-image {
        max-width: 183px; /* デスクトップでの最大高さ */
    }

    .banner-title-image .title-image {
        max-width: 93px;
    }
}

/* 404 Page Styles */
.error-404 {
    padding: 100px 0;
    text-align: center;
}

.error-404-content {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 20px;
}

.error-404 .page-title {
    font-size: 120px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #3e3e3e;
    line-height: 1;
}

.error-404 .page-content p {
    font-size: 18px;
    margin-bottom: 20px;
    color: #666;
}

.error-404-search {
    margin: 30px 0;
}

.error-404-search .search-form {
    max-width: 400px;
    margin: 0 auto;
    display: flex;
}

.error-404-search .search-field {
    flex-grow: 1;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-right: none;
        font-size: 14px;
}

.error-404-search .search-submit {
    padding: 10px 20px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    cursor: pointer;
}

.error-404-buttons {
    margin-top: 30px;
}

.error-404 .btn {
    display: inline-block;
    padding: 12px 30px;
    background-color: var(--primary-color);
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid var(--primary-color);
}

.error-404 .btn:hover {
    background-color: transparent;
    color: var(--primary-color);
}
.sp{
display: none;
}
@media (max-width: 767px) {
    .error-404 {
        padding: 60px 0;
    }
    
    .error-404 .page-title {
        font-size: 80px;
    }
    
    .error-404 .page-content p {
        font-size: 16px;
    }
    .sp{
    display: block;
    }
    .slick-dotted.slick-slider{
    margin-bottom: 0 !important;
    }
}