@charset "UTF-8";
/*
    Template: swell
    Theme Name: nichi
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/


@import url("./css/page.css");
@import url("./css/animation.css");
@import url("./css/blob.css");


.smp{display: none!important;} 
.tablet{display: none!important;}

@media screen and (max-width:641px){
	.pc{display: none!important;}
	.tablet{display: none!important;} 
}
@media screen and (min-width:641px) and (max-width:1024px){
	.pc{display: none!important;} 
	.smp{display: none!important;}
}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}

.cf:before,.cf:after{content:"";display:block;overflow:hidden;}
.cf:after{clear:both;}
.cf{zoom:1;}

.wrap{max-width: 1200px; margin: 0 auto;}

body{
    font-family: "Zen Kaku Gothic New", sans-serif!important;
    font-weight: 400;
    font-style: normal;
    display: flex; /* Flexコンテナにする */
    flex-direction: column; /* 要素を縦に並べる */
    min-height: 100vh; /* 画面の高さ全体を最低限の高さとする */
    margin: 0;
}
#body_wrap{
    flex-grow: 1;
}

/*    header
------------------------------------*/
.l-header__bar{display: none;}
#gnav{display: none;}



/*headerを左側、コンテンツを右側に設定*/

.l-header{
    box-shadow: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 249px;
    background-color: #fff;
    z-index: 100;
    padding: 30px 0 0 20px;
    display: inline-block;
}
.l-header{
    height: 100vh;
}
.l-header.fixed {
  position: fixed;
  top: 0;
  left: 0;
}

.l-header.absolute {
  position: absolute;
  bottom: 0;
  left: 0;
} 

.l-header__inner {
  position: relative;
  height: 100%;
  display: block !important;
}
.l-header__logo{width: 200px;}
.c-headLogo {height: auto;}
.c-headLogo__img {height: auto;}
.catch{font-size: 11px; padding-top: 5px;}

.headerContact {
    margin-top: 250px;
}


#content {background: #f9f9f9; display: inline-block; width: calc(100% - 249px); float: right;}
.top #content{padding: 0 5%!important;}
.top .l-content {margin: 0 auto 0; float: right;}
.l-content {margin: 0 auto;}




header .insta-icon img{width: 70px;}
header .telNum{margin: 30px 0 10px;}
header .telNum a{font-size: 18px; font-weight: 700; letter-spacing: 1px; }
header .telNum img{width: 16px; margin-right: 6px; vertical-align: text-bottom;}
header .conBtn a{font-weight: 700; color: #fff; background: #1a2c44; border-radius: 30px; width: 160px; display: block; text-align: center; padding: 5px 0; letter-spacing: 2px;}
header .conBtn img{width: 18px; margin-right: 6px; vertical-align: baseline;}

.header_logo_smp{display: none;}



@media screen and (min-width:641px) and (max-width:960px){
    .top #content {padding: 0 !important;width: 100%;}
    .l-header {
        width: 100%;
        height: 80px;
        padding: 10px 0;
        display: block;
    }
    .l-header__menuBtn{display: none;}
    .l-header__logo{display: none!important;}
    .header_logo_smp {
        display: flex;
        position: absolute;
        left: 5px;
        top: 12px;
    }
    .header_logo_smp .c-name{margin-left: 5px;}
    .header_logo_smp .catch-sp{
        position: absolute; 
        top: -5px;
        right: -11px;
        font-size: 10px;
    }
    
    .headerContact {}
    header .insta-icon{position: absolute; top:10px; right:110px;}
    header .insta-icon img {width: 40px;}
    header .telNum {display: none;}
    header .conBtn{display: none;}
    
    
    #content{margin-left: 0; }
    .top #content {padding: 0;}
}

@media screen and (max-width:641px){
    .top #content {padding: 0 !important;}
    .l-header {
        width: 100%;
        height: 70px;
        padding: 10px 0;
    }
    .l-header__menuBtn{display: none;}
    .l-header__logo{display: none;}
    .header_logo_smp {
        display: flex;
        position: absolute;
        left: 5px;
        top: 12px;
    }
    .header_logo_smp .c-name{margin-left: 5px;}
    .header_logo_smp .catch-sp{
        position: absolute; 
        top: -5px;
        right: -11px;
        font-size: 10px;
    }
    
    .headerContact {
        position: absolute;
        bottom: auto;
        left: auto;
        right: 80px;
        top: 7px;
        margin-top: 0;
    }
    header .insta-icon{}
    header .insta-icon img {width: 35px;}
    header .telNum {display: none;}
    header .conBtn{display: none;}
    
    
    #content{margin-left: 0;width: 100%;}
    .top #content {padding: 0;}
}


/*    footer
------------------------------------*/
.l-footer{z-index: 200; height: 350px;}
footer .f-content{display: flex;}
footer .leftBox{min-width: 350px; background: #1a2c44; padding: 3em 3em;}
footer .rightBox{width: 100%; background: #666666; padding: 2em 0; position: relative;}

footer .logo{font-family: "Jost", sans-serif; color: #fff;}
footer .logo img{width: 100px;}
footer .name{padding: 4em 0 2.5em;}
footer .f-catch{color: #fff; font-size: 12px;}
footer .copy{font-size: 12px; color: #fff;}
footer ul{display: flex; float: right; padding: 75px 10% 0 0;}
footer ul li:first-child{border-right: 1px solid #fff;}
footer ul li a{font-size: 14px; color: #fff!important; margin: 0 20px;}
footer .move-txt{
    font-family: "Jost", sans-serif; 
    font-size: clamp(50px,5.0vw,77px)!important; 
    color: #8c8c8c; 
    position: absolute; 
    display: inline-block;
    bottom: 0;
    animation: move-txt 20s linear infinite;
}

@keyframes move-txt {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}

  /* テキストが流れる範囲を指定するコンテナ */
    .marquee {
      position: absolute; 
        bottom: 40px;
      overflow: hidden;  /* はみ出しを隠す */
      width: 100%;
    }

    .marquee__track {
        display: flex;             /* 2つの同一内容を横に並べる */
        width: max-content;        /* 中身の幅に合わせる */
        will-change: transform;
        animation: marquee 15s linear infinite;
    }

    .marquee__chunk {
        display: inline-block;
        white-space: nowrap;       /* 折り返しなしで一行に */
        padding-right: 2rem;
        font-family:  "Jost", sans-serif;
        color: #8c8c8c;    
        font-size: 5rem;
        line-height: 1.4;
    }

    /* スクロールのキーフレーム
       同じ内容を2回並べているので、全体幅の50%分だけ左に動かせば継ぎ目なくループします。 */
    @keyframes marquee {
      0%   { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }


@media screen and (min-width:641px) and (max-width:1024px){
    .l-footer{height: auto;}
    footer .f-content {display: block;}
    footer .leftBox {min-width: auto;}
    footer .leftBox .logo{display: inline-block;}
    footer .leftBox .name{display: inline-block; padding: 0 0 0 50px; vertical-align: middle;}
    footer .rightBox {padding: 4em 0;}
    .marquee {bottom: 38px;}
    .marquee__chunk{font-size: 3rem;}
    footer .fmenu{
        position: absolute; 
        bottom: 0; 
        left: 50%;
    transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
    }
    footer .fmenu a{color: #fff; font-size: 12px;}
    
    footer .pc_only{display: none;}
    
    footer .sp_only{display: block!important;}
    #fix_bottom_menu{display: none;}
}


@media screen and (max-width:641px){
    .l-footer{height: auto;}
    footer .f-content{height: 120px;}
    footer .leftBox{display: none;}
    footer .rightBox{width: 100%;}
    footer ul{display: none;}
    footer .marquee{bottom: 48px;}
    footer .marquee__chunk {font-size: 30px !important; bottom: 10px; right: 3px;}
    footer .fmenu{text-align: center; padding-top: 40px;}
    footer .fmenu a{color: #fff; font-size: 12px;}
    
    #fix_bottom_menu{background: #1a2c44; color: #fff; z-index: 200;}
    #fix_bottom_menu::before {opacity: 0;}
    #fix_bottom_menu .menu_list {padding: 0;}
    #fix_bottom_menu .menu-item{border-right: 1px solid #fff; height: 100%;}
    #fix_bottom_menu .menu-item:last-child{border-right: none;}
    #fix_bottom_menu .menu-item a{display: flex; padding: 1.1em 2em 1.5em;}
    #fix_bottom_menu span {font-size: 17px; letter-spacing: 1px; margin-top: 0;}
}


/*    contants
------------------------------------*/
.l-container{max-width: none!important;}


/*----------------------------
    バーガーメニュー
-----------------------------*/

/*アクティブになったエリア*/
#g-nav.panelactive{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
	top: 0;
	width:100%;
    height: 100vh;
}

/*丸の拡大*/
.circle-bg{
    position: fixed;
	z-index:3;
    /*丸の形*/
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(102,102,102,1.0);
    /*丸のスタート位置と形状*/
	transform: scale(0);/*scaleをはじめは0に*/
	right:-50px;
    top:-50px;
    transition: all 0.8s;/*1.0秒かけてアニメーション*/
}

.circle-bg.circleactive{
	transform: scale(50);/*クラスが付与されたらscaleを拡大*/
}

/*ナビゲーションの縦スクロール*/
#g-nav-list{
    display: none;/*はじめは表示なし*/
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#g-nav.panelactive #g-nav-list{
     display: block; /*クラスが付与されたら出現*/
}

/*ナビゲーション*/
#g-nav ul {
	opacity: 0;/*はじめは透過0*/
    /*ナビゲーション天地中央揃え※レイアウトによって調整してください。不必要なら削除*/
    position: absolute;
    top:35%;
    left:50%;
    transform: translate(-50%,-50%);
}

/*背景が出現後にナビゲーションを表示*/
#g-nav.panelactive ul {
    opacity:1;
}

/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/
#g-nav.panelactive ul li{
animation-name:gnaviAnime;
animation-duration:1s;
animation-delay:.2s;/*0.2 秒遅らせて出現*/
animation-fill-mode:forwards;
opacity:0;
}
@keyframes gnaviAnime{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}


/*リストのレイアウト設定*/
#g-nav li{
	text-align: center; 
	list-style: none;
}

#g-nav li a{
	color: #fff;
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

#g-nav li.Insta{margin-top: 30px;}
#g-nav li.Insta img{width: 50px;}


/*========= ボタンのためのCSS ===============*/
.openbtnBox{}
.openbtn{
	position:fixed;
	top: 20px;
	right: 30px;
	z-index: 9999;/*ボタンを最前面に*/
	cursor: pointer;
    width: 50px;
    height:50px;
}
	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 10%;
    height: 4px;
    border-radius: 2px;
	background-color: #000;
  	width: 80%;
  }

.openbtn span:nth-of-type(1) {
	top:11px;	
}

.openbtn span:nth-of-type(2) {
	top:23px;
}

.openbtn span:nth-of-type(3) {
	top:35px;
}

.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 10px;
    transform: translateY(6px) rotate(-45deg);
    width: 60%;
    background: #fff;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 10px;
    transform: translateY(-6px) rotate(45deg);
    width: 60%;
    background: #fff;
}
.openbtn .menu{
    display: block; /* デフォルトで表示 */
    visibility: visible;
    top: 39px;
    left: 6px;
    color: #000;
    background: none;
}

.openbtn.active .menu{
    display: none;
    visibility: hidden;
}
.openbtn.active {
  position: fixed; /* 疑似要素の基準位置 */
    right: 30px;
}
.openbtn.active::after {
  content: "close"; /* 表示するテキスト */
    color: #fff;
  position: absolute;
  /* .menuクラスの要素の位置に合わせるための調整 */
  bottom: -19px;
    left: 2px;
  right: 0;
  text-align: center;
  /* (必要に応じてフォントサイズ、色などを指定) */
    width: 100%;
}


@media screen and (min-width:641px) and (max-width:1024px){
    .openbtn {top: 9px;}
}


@media screen and (max-width:641px){
.openbtn {
        top: 9px;
        right: 20px;
        width: 38px;
        height: 38px;
    }
    .openbtn span {width: 87%;}
    .openbtn span:nth-of-type(2) {top: 21px;}
    .openbtn span:nth-of-type(3) {top: 31px;}
    .openbtn .menu{font-size: 13px; top: 34px;}
}



/*メイン画像*/

#mainimg{position: relative;}
#mainimg img{width: 100%; height: auto;}
.mainTxt{
    font-family: "Jost", sans-serif;
    font-size: 40px; 
    font-weight: 500; 
    letter-spacing: 1px;

}

.main-sp{display: none;}


/*スライダーのページネーション*/
.mv01 .swiper-pagination-bullets{bottom: -27px!important;}
.mv01 .swiper-pagination-bullet{background: #1a2c44!important;}


/*========= 流れるテキスト ===============*/

/*全共通*/

.slide-in {
	overflow: hidden;
    display: inline-block;
    position: absolute; 
    bottom: 150px; 
    right: 100px; 
    z-index: 2;
}

.slide-in_inner {
	display: inline-block;

}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration:1.5s;
	animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration:1.5s;
	animation-fill-mode:forwards;
    opacity: 0;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}


@media screen and (min-width:641px) and (max-width:1024px){
    #mainimg{margin-top: 80px;}
    .mainTxt {font-size: 30px;}
    .slide-in {bottom: 125px; right: 53px;}
}

@media screen and (max-width:641px){
    #mainimg{margin-top: 70px;}
    .main-pc{display: none;}
    .main-sp{display: block;}
    .mainTxt {
        font-size: 25px;
        bottom: 92px;
        right: 162px;
    }
    
    
    .slide-in {
        bottom: 91px;
        right: 30px;
    }
}


/*TOPIC*/

.topic-box{
    display: flex;
    background: #fff;
    width: 500px;
    position: absolute;
  bottom: 5.5px;
  right: 0;
  z-index: 2;
}
.topic{
    font-family: "Road Rage", sans-serif;
    font-weight: 500;
    font-size: 30px;
    text-align: center;
    color: #fff;
    background: #1a2c44;
    line-height: 0.6em;
    padding: 30px 24px;
    
}
.topic a{
    color: #fff;
}

/* 1. TOPICリンク内の矢印画像に初期設定 */
.topic-box .topic a img {
    /* 動きを滑らかにするための設定 */
    transition: transform 0.3s ease-in-out; 
    /* 初期位置（動かさない）*/
    transform: translateX(0);
    /* リンク内のテキストと画像を縦方向に揃える調整（任意） */
    vertical-align: middle; 
}

/* 2. TOPICリンク全体（<a>）にホバーしたときの動作 */
.topic-box .topic a:hover img {
    /* マウスオーバー時に右に5ピクセル移動 */
    transform: translateX(10px); 
}

.latest-news{
    font-weight: 600;
    padding: 20px 20px;
    width: 100%;
}
.latest-news a{display: block;}


@media screen and (max-width:641px){
    .topic-box {
        width: 100%;
        bottom: 0;
    }
    .topic {
        font-size: 23px;
        padding: 24px 16px 10px;
    }
    .topic img{width: 50px!important;}
    .latest-news {padding: 13px 13px;}
    
}

/*WORKS*/

.top-works{padding: 0 1%; margin-bottom: 13em !important;}
.h2-eg{
    font-family: "Road Rage", sans-serif;
    font-size: clamp(50px,5.0vw,80px)!important;
    color: #1a2c44!important;
    margin: 4em 0 0!important;
    letter-spacing: 2px !important;
}
.ttl-jp{
    color: #1a2c44;
    position: relative;
    display: inline-block;
    padding: 0 0 0 55px;
    letter-spacing: 3px;
}
.ttl-jp:before{
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 45px;
  height: 1px;
  background-color: #1a2c44;
}
.ttl-jp:before {left:0;}

.ttl-txt{
    font-size: 14px; 
    padding-top: 3.4em;
    font-weight: 500;
}

.btn01{padding-top: 2.5em;}
.btn01 a{letter-spacing: 2px;}


@media screen and (min-width:641px) and (max-width:1024px){
    .top-works {padding: 0 5% 3%;}
    .ttl-txt {padding-top: 2em;}
    .block02{padding-left: 5%;}
    .block03{flex-basis: 37%!important;}
    .btn01 a{width: 200px!important;}
}

@media screen and (max-width:641px){
    .top-works {padding: 0 5%;  margin-bottom: 5em !important;}
    .works-ttlblock{display: block;}
    .h2-eg {line-height: 1.0 !important;}
    .block01{display: inline-block; width: 100%; vertical-align: middle;}
    .block02{display: inline-block; width: 100%; vertical-align: sub; padding: 30px 0 20px;}
    .block03{display: none;}
    .ttl-jp {padding: 0 0 0 44px; font-size: 14px;}
    .ttl-jp:before {width: 30px;}
    .ttl-txt {padding-top: 0; margin-left: 0; font-size: 16px; }
    
    .btn01 a{width: 200px; padding: 7px;}
}


/*スライダー用css*/

.works-slider-container{position: relative; margin-bottom: 5em;}

.slider-item{
    margin-right: 20px; 
    position: relative;
}
.slider-item:nth-child(even){
    margin-top: 70px;
}

.slider-item .post-image {
    /* 例として、縦横比16:9の横長画像を想定し、高さを固定します。 */
    width: 100%; 
    height: 210px; /* ★ この高さを表示したい枠の高さに固定してください */
    overflow: hidden; /* 枠からはみ出した部分を隠す（重要） */
    position: relative; /* imgを絶対配置する場合に必要 */
    margin-bottom: 13px;
}
.slider-item .post-image img {
    width: 100%;
    height: 100%;
    
    /* object-fit: cover; の適用 */
    /* これにより、画像の縦横比を維持したまま、親要素（post-image）全体を覆うように拡大・縮小されます。 */
    /* 枠内に収まりきらない部分は切り取られます（トリミングされます）。 */
    object-fit: cover; 
    border-radius: 10px;
    object-position: center center; /* 画像の中心を枠の中心に合わせる */
}


.post-info{
    width: 100%;
}
.post-info .category-name{
    border: 1px solid #1a2c44;
    border-radius: 30px;
    text-align: center;
    width: 130px;
    font-size: 14px;
    margin: 10px 0 5px;
}
.post-info .post-title{
    font-weight: 500;
}

.slider-item:nth-child(even) .post-info{
    position: absolute;
    top: -70px;
    left: 0;
}

/* ====================================
   Slick Carousel ドットナビゲーションの調整
   ==================================== */

/* ドットのコンテナを中央寄せにする */
.works-slider-container .slick-dots {
    text-align: center; /* ドットリスト全体を中央に配置 */
    padding: 0;
    margin-top: 20px; /* スライダーとドットの間隔 */
    list-style: none; /* リストの黒丸を非表示 */
}

/* ドット一つ一つを横並びにする */
.works-slider-container .slick-dots li {
    display: inline-block; /* インラインブロックで横並びに */
    margin: 0 5px; /* ドット同士の間隔を調整 */
}

/* ドットの横に表示される数字を非表示にする */
.works-slider-container .slick-dots button {
    font-size: 0; /* ★ ボタン内のテキスト（数字）を非表示にする */
    line-height: 0;
    display: block;
    width: 10px; /* ドットのサイズ調整（任意） */
    height: 10px; /* ドットのサイズ調整（任意） */
    padding: 5px;
    cursor: pointer;
    color: transparent; /* テキストの色を透明に */
    border: 0;
    outline: none;
    background: #ccc; /* 通常時のドットの色 */
    border-radius: 50%; /* ドットを丸くする */
}

/* アクティブ（現在表示中のスライド）なドットの色 */
.works-slider-container .slick-dots li.slick-active button {
    background: #333; /* アクティブ時のドットの色 */
}

/* ====================================
   カスタム矢印の設定
   ==================================== */

.works-arrows-wrapper{
    position: absolute;
    bottom: 0;
    right: 0;
}

/* 左右の矢印共通の基本設定 */
.works-slider-container .slick-prev,
.works-slider-container .slick-next {
    position: absolute;
    z-index: 1;
    width: 40px; /* 矢印画像の幅に合わせて調整 */
    height: 40px; /* 矢印画像の高さに合わせて調整 */
    font-size: 0; /* 元のボタンの文字を非表示 */
    line-height: 0;
    cursor: pointer;
    border: none;
    background-color: transparent; /* 背景色を透明に */
    
    /* ドットの数字を非表示にしたCSS設定と競合しないように、念のため以下を設定 */
    color: transparent; 
}

/* 前へボタンの設定 */
.works-slider-container .slick-prev {
    background-image: url("img/arrow-prev.png");
    background-size: contain; /* 画像のサイズをコンテナに合わせる */
    background-repeat: no-repeat;
    background-position: center;
    left: -106px;
}

/* 次へボタンの設定 */
.works-slider-container .slick-next {
    background-image: url("img/arrow-next.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    left: -17px;
}


/* --- ドットのCSS（前回設定済み、横並びと数字非表示） --- */

/* ドットの横に表示される数字を非表示にする */
.works-slider-container .slick-dots button {
    font-size: 0; 
    /* ... 続くCSSコード ... */
}


@media screen and (min-width:641px) and (max-width:1024px){
    .slick-slide{}
    .slider-item{margin: 0 10px;}
    .slider-item .post-image{height: auto;}
    .works-slider-container .slick-prev, .works-slider-container .slick-next{bottom: -16px;}
    
}


@media screen and (max-width:641px){
    .slider-item{width: 100%; margin: 0 5px;}
    .slider-item img{width: 100%;}
    .post-info{text-align: center;}
    .post-info .category-name {margin: 10px auto 5px;}
    
    .works-arrows-wrapper{
        bottom: -8px;
        left: 50%;
        right: auto;
        transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);

    }
    .works-slider-container .slick-prev, .works-slider-container .slick-next {
       
      }      
    .works-slider-container .slick-prev{left: -53px;}
    .works-slider-container .slick-next{left: 15px;}
}


/*訪ねてみよう*/

.top-visit{
    background: #fff;
    border-radius: 20px;
    padding: 2em 4em 3em;
    margin: 7em 0;
    position: relative;
}
.speech-bubble {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
  padding: 10px 20px;
  width: 245px;
  border: 2px solid #1a2c44; 
  border-radius: 30px;
  color: #1a2c44;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  background-color: white; 
    letter-spacing: 1px;
}

/* --- しっぽ（枠線） --- */
.speech-bubble::after {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 44px;
  width: 8px;
  height: 25px;
  background: white;
  border: 2px solid #1a2c44;
    border-top-color: rgb(26, 44, 68);
    border-bottom-color: rgb(26, 44, 68);
    border-left-color: rgb(26, 44, 68);
  transform: rotate(45deg);
  border-top-color: transparent;
  border-left-color: transparent;
  border-bottom-color: transparent;
}

/* --- しっぽ（隙間埋め/塗りつぶし） --- */
/* ::afterの枠線が途切れている部分の隙間を埋めるため */
.speech-bubble::before { 
    content: "";
    position: absolute;
    bottom: -13px; /* 縦方向の調整 */
    left: 44px;   /* 横方向の調整 */
    width: 16px; 
    height: 16px; 
    background: white; /* 本体と同じ背景色 */
    transform: rotate(45deg);
}

.h2-visit{
    font-family: "Road Rage", sans-serif;
    font-size: clamp(50px,5.0vw,100px)!important;
    color: rgba(26,44,68,0.50)!important;
    margin: 0!important;
    letter-spacing: 2px !important;
}
.visit-catch{
    font-size: 30px;
    font-weight: 600;
    line-height: 1.7em;
}
.visit-txt{
    padding: 30px 0 0;
}
.visit-ltxt{
    font-size: 20px;
    font-weight: 600;
    padding: 30px 0;
}

.btn02 a{
    padding: 1.0em 1.5em;
    letter-spacing: 2px;
}

.illust-house{
    position: absolute;
    top: 10%;
    left: 70px;
    width: 170px;
}
.illust-stick{
    position: absolute;
    top: -58px;
    right: -149px;

}
.illust-stick img{
     animation: tilt-return-pause 5s ease-in-out infinite;
    /* transformの基準点を設定 (中心を基準に回転) */
    transform-origin: center;
}
@keyframes tilt-return-pause {
    /* 0%から33%までを動作時間とする (6秒の約1/3、つまり2秒間) */
    0% {
        transform: rotate(0deg); /* 傾きなし */
    }
    16.5% { /* 中間点（6秒の約1/6、つまり1秒後） */
        transform: rotate(10deg); /* 右に10度傾ける */
    }
    33% {
        transform: rotate(0deg); /* 元に戻る */
    }
    
    /* 33%から100%までを停止時間とする (6秒の約2/3、つまり4秒間) */
    /* この間、transformの値は0degで静止したままになる */
    100% {
        transform: rotate(0deg); /* 静止状態を維持 */
    }
}


@media screen and (min-width:641px) and (max-width:1024px){
    .top-visit {margin: 8em 5% 5em; padding: 2em 2em 3em;}
    .illust-stick {right: 0;}
    .illust-stick img{width: 200px;}
    .illust-house {top: 12%; left: 25px;}
    .visit-catch {text-align: left; padding-left: 186px;}
}


@media screen and (max-width:641px){
    .top-visit {
        padding: 2em 20px 2em;
        margin: 9em 5% 5em;
        
    }
    .h2-visit {font-size: 35px !important;}
    .speech-bubble {padding: 6px 20px; width: 193px; font-size: 16px;}
    .illust-house {
        left: 20px;
    width: 92px;
    top: 91px;
    }
    .visit-catch {
        font-size: 16px;
        text-align: left;
        margin-left: 99px;
        margin-top: 14px;
    }
    .illust-stick {display: none;}
    .visit-ltxt {
    font-size: 15px;
    padding: 30px 0;
    text-align: left;
}
    .btn02 a {
    padding: 12px 5px;
    letter-spacing: 2px;
    width: 239px;
}
}



/*COMPANY*/

.top-company{position: relative;}
.top-company .telbox a{border-bottom: 1px dashed #1a2c44;}
.open-pdf a{border-bottom: 1px dashed #1a2c44;}

.c-bannerLink__text{top: 28px;}
.c-bannerLink__description{
    border: 1px solid #fff;
    border-radius: 30px;
    width: 250px;
    padding: 9px 0;
    margin-top: 24px;
}
.top-company .gmap iframe{
    -webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
    filter: grayscale(100%); /* 標準の記述 */
    }

@media screen and (min-width:641px) and (max-width:1024px){
    .top-company{padding: 0 5%;}
    .top-company .ttlblock{display: block!important;}
    .top-company .block-left{display: inline-block; width: 35%; vertical-align: top;}
    .top-company .block-right{display: inline-block; width: 64%;}
    .illust_stick03{display: none;}
}


@media screen and (max-width:641px){
    .top-company .block-left{padding: 0 7% 5%;}
    .c-bannerLink__title {font-size: 1.2em;}
    .c-bannerLink__description {width: 200px; padding: 5px 0;}
    .top-company .gmap iframe{height: 300px!important;}
    
    /* === .illust-stick03 のスタイル（スマホ専用） === */
    .illust_stick03{
        position: absolute;
       bottom: 80%;
    right: 15px;
    }
    
    .illust_stick03 img{
        animation: tilt-return-pause 5s ease-in-out infinite;
        /* transformの基準点を設定 (中心を基準に回転) */
        transform-origin: center;
    }
    
    /* アニメーションの動作と停止時間を定義 (これもスマホ専用とする) */
    @keyframes tilt-return-pause {
        /* 0%から33%までを動作時間とする (5秒の約1/3、つまり1.65秒間) */
        0% {
            transform: rotate(0deg); /* 傾きなし */
        }
        16.5% { /* 中間点（5秒の約1/6、つまり0.825秒後） */
            transform: rotate(10deg); /* 右に10度傾ける */
        }
        33% {
            transform: rotate(0deg); /* 元に戻る */
        }
        
        /* 33%から100%までを停止時間とする (5秒の約2/3、つまり3.3秒間) */
        100% {
            transform: rotate(0deg); /* 静止状態を維持 */
        }
    }
/* メディアクエリの閉じ括弧（`}`）はここで終わり */
}


/*RECRUIT*/

.top-recruit{
    padding: 4em 5%;
    position: relative;
}
.rec-outer{
    margin-bottom: 24px;
}
.link-bnr{
   width: 65%;
  margin: 0 auto;
}
.illust-stick02{
    position: absolute;
    top: -3px;
  left: -326px;
  width: 313px;
}
.illust-stick02 img{
     animation: tilt-return-pause 5s ease-in-out infinite;
    /* transformの基準点を設定 (中心を基準に回転) */
    transform-origin: center;
}
@keyframes tilt-return-pause {
    /* 0%から33%までを動作時間とする (6秒の約1/3、つまり2秒間) */
    0% {
        transform: rotate(0deg); /* 傾きなし */
    }
    16.5% { /* 中間点（6秒の約1/6、つまり1秒後） */
        transform: rotate(10deg); /* 右に10度傾ける */
    }
    33% {
        transform: rotate(0deg); /* 元に戻る */
    }
    
    /* 33%から100%までを停止時間とする (6秒の約2/3、つまり4秒間) */
    /* この間、transformの値は0degで静止したままになる */
    100% {
        transform: rotate(0deg); /* 静止状態を維持 */
    }
}

.mgn-30{
    margin: 43px 0 55px;
}



@media screen and (min-width:641px) and (max-width:1024px){
    .top-recruit { width: 100%;}
    .illust-stick02{display: block!important; left: -292px;}
    .illust-stick02 img{width: 200px;}
    .top-recruit .illustRight{position: absolute; top: 21px; right: 322px;}
    .top-recruit .illustRight img{width: 30vw;}
    .top-recruit .btn02{text-align: left;}
    .link-bnr {width: 60%; margin: 0;}
}



@media screen and (max-width:641px){
   .top-recruit {
       width: 100%;
       margin-left: 0;
       padding: 2em 5%;
    } 
    .top-recruit .rec-outer{display: block; position: relative;}
    .top-recruit .txtLeft{width: 100%;}
    .top-recruit .illustRight{position: absolute; top: 0; right: 12px;}
    .top-recruit .illustRight img{width: 140px;}

    
    .link-bnr{width: 100%;}
}






