:root {
    --bg-light: #ffffff;
    --main: #2563eb;
    --accent: #f97316;
    --text-dark: #0f172a;
}

body {
    background-color: var(--bg-light);
    color: var(--text-dark);
    font-family: 'Plus Jakarta Sans', 'Noto Sans JP', sans-serif;
    overflow-x: hidden;
    line-height: 1.6;
}

/* Smooth Scroll */
html {
    scroll-behavior: smooth;
}
/* mod */
.md\:text-6xl{
  line-height: 1.6!important;
}
@media (min-width: 768px) {
    .md\:pt-48 {
        padding-top: 10rem;
    }
}
/******************************************************************************
 * MARGIN
*******************************************************************************/

.mt0 { margin-top: 0px !important; }
.mt5 { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt15 { margin-top: 15px !important; }
.mt20 { margin-top: 20px !important; }
.mt25 { margin-top: 25px !important; }
.mt30 { margin-top: 30px !important; }
.mt35 { margin-top: 35px !important; }
.mt40 { margin-top: 40px !important; }
.mt45 { margin-top: 45px !important; }
.mt50 { margin-top: 50px !important; }
.mt55 { margin-top: 55px !important; }
.mt60 { margin-top: 60px !important; }
.mt65 { margin-top: 65px !important; }
.mt70 { margin-top: 70px !important; }
.mt75 { margin-top: 75px !important; }
.mt80 { margin-top: 80px !important; }
.mt85 { margin-top: 85px !important; }
.mt90 { margin-top: 90px !important; }
.mt95 { margin-top: 95px !important; }
.mt100 { margin-top: 100px !important; }
.mb0 { margin-bottom: 0px !important; }
.mb5 { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb25 { margin-bottom: 25px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb35 { margin-bottom: 35px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb45 { margin-bottom: 45px !important; }
.mb50 { margin-bottom: 50px !important; }
.mb55 { margin-bottom: 55px !important; }
.mb60 { margin-bottom: 60px !important; }
.mb65 { margin-bottom: 65px !important; }
.mb70 { margin-bottom: 70px !important; }
.mb75 { margin-bottom: 75px !important; }
.mb80 { margin-bottom: 80px !important; }
.mb85 { margin-bottom: 85px !important; }
.mb90 { margin-bottom: 90px !important; }
.mb95 { margin-bottom: 95px !important; }
.mb100 { margin-bottom: 100px !important; }
.ml0 { margin-left: 0px !important; }
.ml5 { margin-left: 5px !important; }
.ml10 { margin-left: 10px !important; }
.ml15 { margin-left: 15px !important; }
.ml20 { margin-left: 20px !important; }
.ml25 { margin-left: 25px !important; }
.ml30 { margin-left: 30px !important; }
.ml35 { margin-left: 35px !important; }
.ml40 { margin-left: 40px !important; }
.ml45 { margin-left: 45px !important; }
.ml50 { margin-left: 50px !important; }
.ml55 { margin-left: 55px !important; }
.ml60 { margin-left: 60px !important; }
.ml65 { margin-left: 65px !important; }
.ml70 { margin-left: 70px !important; }
.ml75 { margin-left: 75px !important; }
.ml80 { margin-left: 80px !important; }
.ml85 { margin-left: 85px !important; }
.ml90 { margin-left: 90px !important; }
.ml95 { margin-left: 95px !important; }
.ml100 { margin-left: 100px !important; }
.mr0 { margin-right: 0px !important; }
.mr5 { margin-right: 5px !important; }
.mr10 { margin-right: 10px !important; }
.mr15 { margin-right: 15px !important; }
.mr20 { margin-right: 20px !important; }
.mr25 { margin-right: 25px !important; }
.mr30 { margin-right: 30px !important; }
.mr35 { margin-right: 35px !important; }
.mr40 { margin-right: 40px !important; }
.mr45 { margin-right: 45px !important; }
.mr50 { margin-right: 50px !important; }
.mr55 { margin-right: 55px !important; }
.mr60 { margin-right: 60px !important; }
.mr65 { margin-right: 65px !important; }
.mr70 { margin-right: 70px !important; }
.mr75 { margin-right: 75px !important; }
.mr80 { margin-right: 80px !important; }
.mr85 { margin-right: 85px !important; }
.mr90 { margin-right: 90px !important; }
.mr95 { margin-right: 95px !important; }
.mr100 { margin-right: 100px !important; }
.b-r10 {border-radius: 10px;}
.b-r20 {border-radius: 20px;}
.b-r30 {border-radius: 30px;}

.mt-web{padding-top: 9rem!important;
    padding-bottom: 1rem!important;}
/******************************************************************************
 * FONT
*******************************************************************************/
.bold { font-weight: bold!important; }
.normal { font-weight: normal; }
.underline { text-decoration: underline; }
.font_72 { font-size: 72px;}
.font_64 { font-size: 64px;}
.font_56 { font-size: 56px;}
.font_48 { font-size: 48px;}
.font_40 { font-size: 40px;}
.font_32 { font-size: 32px;}
.font_24 { font-size: 24px;}
.font_20 { font-size: 20px;}
.font_18 { font-size: 18px;}
.font_16 { font-size: 16px;}
.font_14 { font-size: 14px!important;}
.font_13 { font-size: 13px;}
.font_12 { font-size: 12px;}
.font_11 { font-size: 11px;}
.font_10 { font-size: 10px;}

.info-font_24 { font-size: 28px; color :#fff;margin-bottom: 15px;}
.info-font_12 { font-size: 12px; color :#fff}

/******************************************************************************
 * COLOR
*******************************************************************************/
.red { color: #dd0000; }
.redpink { color: #ff6699; }
.pink { color: #ff3399; }
.pink2{ color: #d65678;}
.blue { color: #0099ff; }
.blue2 { color: #4790ce; }
.m-blue { color: #0084cf; }

.green { color: #148f2d; }
.green2 { color: #47a38a; }
.egreen { color: #2abfbf; }
.white { color: #ffffff; }
.orange { color: #ff6633; }
.gold { color: #D0A31A; }
.gray { color: #CCCCCC; }
.gray2 { color: #888888; }
.black { color: #000000; }
.blue-g {
    background: linear-gradient(97.61deg, #0a8be9 13.66%, #0ae9ad 101.36%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


.bline {
    font-weight: 700;
    background: linear-gradient(transparent 70%, #ffa5b4 70%);
}
/******************************************************************************
 * bg_color
*******************************************************************************/
.bg_red { background-color: #fff2f2;}
.bg_green { background-color: #229c73; }

.bg_green2 { background-color: #dffaf5; }
.bg_gray { background-color: #fcfcfc; }
.bg_gray2 { background-color: #e9ebf2; }



/******************************************************************************
 * TEXT
*******************************************************************************/
.tx-left { text-align: left!important; }
.tx-center { text-align: center!important; }
.tx-right { text-align: right!important; }
.tx-justify{text-align: justify; text-justify: inter-ideograph;}
.ls-1 { letter-spacing: 1px; }
.ls-2 { letter-spacing: 2px; }
.v-top { vertical-align: top; }
.v-middle { vertical-align: middle; }
.underline { text-decoration:underline;}
.indent-1 {
	padding-left:1em;
	text-indent:-1em;
}
.indent-5 {
	padding-left:.5em;
	text-indent:-.5em;
}
.pc-tx-right { text-align: right!important; }
.pc-tx-center { text-align: center!important; }
@media screen and (max-width: 767px),print {
.pc-tx-center { text-align: left!important; }
.pc-tx-right { text-align: center!important; }
	}

.border-line {
    border-top: 1px solid #e5e5e5;
    padding-top: 40px;
}
.b_bottom {
	border-bottom: 1px solid #eee;
}

.pc-tx-right { text-align: right!important; }
.pc-tx-center { text-align: center!important; }
.pc-tx-ml{ margin-left:20px;}

@media screen and (max-width: 767px),print {
.pc-tx-center { text-align: left!important; }
.pc-tx-right { text-align: center!important; }
.pc-tx-ml{ margin-left:0px;}
	}

/******************************************************************************
 * center
*******************************************************************************/
.cts-center{
	margin: 0 auto;
}

/******************************************************************************
 * responsive
*******************************************************************************/
.img-responsive {
  display: block;
  max-width: 100%;
  margin-left:auto;
  margin-right:auto;
  height: auto;
}
.img-no-responsive {
  display: block;
  max-width: auto;
  height: auto;
}
.br-pc{
display:block
}
.br-sp{
display:none
}
@media only screen and (max-width:1599px){
.br-1200{
display:block
}

}
@media only screen and (max-width:1199px){
.br-1200{
display:none
}
.br-900{
display:block
}

}
@media only screen and (max-width:899px){
.br-900{
display:none
}
.br-pc{
display:none
}
.br-sp{
display:block
}

}


.pc_only{
  display: block;
  margin: 0 auto;
}
.sp_only{
  display: none!important;
}
@media only screen and (max-width: 767px) {
  .pc_only{
    display: none!important;
  }
  .sp_only{
    display: block!important;
  }
}

.no-spam {
    display: none;
}


/* Awwwards Inspired Header */

header .logo_header{
  width: 84px;
}

.glass-header {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    z-index: 100;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

/* Desktop Mega Menu */
.dropdown-panel {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100vw;
    background: white;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);
    transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
    pointer-events: none;
    z-index: 40;
}

@media (min-width: 1024px) {
    .nav-item:hover .dropdown-panel {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
    }
}

/* Mobile Menu Overlay - Center alignment and full-screen cover */
#mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: white;
    z-index: 200;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transform: translateX(100%);
    transition: transform 0.7s cubic-bezier(0.82, 0.01, 0.15, 1);
    pointer-events: none;
}

#mobile-menu-overlay.active {
    transform: translateX(0);
    pointer-events: auto;
}

.mobile-close-btn {
    position: absolute;
    top: 2rem;
    right: 1.5rem;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border-radius: 50%;
    cursor: pointer;
    border: 1px solid #e2e8f0;
}

/* Hero Visuals */
.hero-gradient {
    background: radial-gradient(circle at 70% 30%, rgba(37, 99, 235, 0.1), transparent 50%),
                radial-gradient(circle at 10% 80%, rgba(249, 115, 22, 0.05), transparent 50%);
}

.hero-blob {
    position: absolute;
    width: 600px;
    height: 600px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.15), rgba(96, 165, 250, 0.15));
    filter: blur(100px);
    border-radius: 50%;
    z-index: -1;
    animation: moveAround 25s infinite alternate ease-in-out;
}

@keyframes moveAround {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15%, 10%) scale(1.1); }
    100% { transform: translate(-5%, -15%) scale(0.95); }
}

/* Component Reveals */
.reveal {
    opacity: 0;
    transform: translateY(40px);
}

/* Modern Card Styling */
.premium-card {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.05);
    border-radius: 32px;
    padding: 3rem;
    transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative;
    overflow: hidden;
}

.premium-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.05), transparent);
    opacity: 0;
    transition: opacity 0.6s ease;
}

.premium-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 40px 80px -20px rgba(15, 23, 42, 0.1);
    border-color: rgba(37, 99, 235, 0.2);
}

.premium-card:hover::after {
    opacity: 1;
}

/* Utility classes for text stroke or modern look */
.text-balanced {
    text-wrap: balance;
}
        .service-card {
            background: #ffffff;
            border: 1px solid rgba(15, 23, 42, 0.05);
            box-shadow: 0 4px 30px rgba(0, 0, 0, 0.02);
            transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .service-card:hover {
            border-color: var(--main);
            box-shadow: 0 20px 40px rgba(37, 99, 235, 0.1);
            transform: translateY(-12px);
        }

/* RPA */
:root {
    --primary: #0091ff;
    --primary-light: #e6f4ff;
    --text-dark: #333333;
    --text-muted: #666666;
    --bg-light: #f8fbff;
}


.text-primary { color: var(--primary); }
.bg-primary { background-color: var(--primary); }
.bg-primary-light { background-color: var(--primary-light); }

.btn-primary {
    background-color: var(--primary);
    color: white;
    padding: 0.8rem 2rem;
    border-radius: 9999px;
    font-weight: 700;
    transition: all 0.3s ease;
    display: inline-block;
}

.btn-primary:hover {
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(0, 145, 255, 0.2);
}

.card {
    background: white;
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
}

.section-title {
    position: relative;
    display: inline-block;
    margin-bottom: 2rem;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(97.61deg, #0a8be9 13.66%, #0ae9ad 101.36%);
    border-radius: 2px;
}

/* アニメーション用 */
.fade-in {
    animation: fadeIn 1s ease forwards;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.blob {
    position: absolute;
    z-index: -1;
    filter: blur(40px);
    opacity: 0.4;
}

/* Accordion for FAQ */
.faq-item summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding: 1.5rem;
    background: white;
    border-radius: 12px;
    font-weight: 500;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    right: 1.5rem;
    transition: transform 0.3s;
}
.faq-item[open] summary::after {
    transform: rotate(180deg);
}
.rpa-video {
    max-width: 700px;
    height: auto;
    margin: 0 auto;
    text-align:center;
    border-radius: 10px;
    background-color: #000;
    object-fit: cover;

}
.movie_blk {
    max-width: 700px;
    height: 300px;
    position: relative;
    margin: 0 auto;
}
.movie_blk video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}
/******************************************************************************
 * aio
*******************************************************************************/
.text-brand { color: #0091ff; }
.bg-brand { background-color: #0091ff; }
.border-brand { border-color: #0091ff; }
.section-tag {
    display: inline-block;
    padding: 4px 16px;
    background: #e6f4ff;
    color: #0091ff;
    border-radius: 99px;
    font-weight: 700;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}
/*----------------------------------------------------
  web-std
--------------------------------------------------- */
.web-std{
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  z-index: 1;
  /*padding: 50px 0 50px;*/
  padding: 50px 0 0px;

 }
.web-std-top{
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  z-index: 1;
  margin: 160px 0 0 0;	
 }

.web-std p{
  font-size: 16px;
  line-height: 32px;
  font-weight: 500;
  font-family: "Zen Maru Gothic", serif;	
}

.web-std .h_title {
    padding: 70px 0 65px;
    background: #337ab7;
}
.web-std .h_title .h_inner {
    width: 1080px;
    margin: 0 auto;
    font-size: 34px;
    color: #FFF;
    font-weight: bold;
    text-align: center;
}
.web-std .h_title span {
    font-size: 42px;
}
.web-std .inner{
  width: 900px;
  margin: 0 auto;
  position: relative;
}
.inner_600{
  width: 600px;
  margin: 0 auto;
  position: relative;
}

.inner_900{
  width: 900px;
  margin: 0 auto;
  position: relative;
  padding: 0 15px 0;	
}
.inner_500{
  width: 500px;
  margin: 0 auto;
  position: relative;
  padding: 0 15px 0;	
}

.inner_1200{
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  padding: 0 15px 0;	
}
.inner_1200_c{
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  padding: 0 15px 0;	
}
.inner_96{
  width: 96%;
  margin: 0 auto;
  position: relative;
	
}


@media only screen and (min-width: 768px) and (max-width: 1100px) {
  .web-std .inner{
    width: 760px;
    margin: 0 auto;
    position: relative;
  }
  .inner_900{
    width: 94%;
    margin: 0 auto;
    position: relative;
  }
  .inner_1200{
    /*width: 760px;*/
    margin: 0 auto;
    position: relative;
  }
  .inner_1200_c{
    width: 760px;
    margin: 0 auto;
    position: relative;
  }
	
	
.web-std .h_title .h_inner {
    width: 720px;
}	
}
@media only screen and (max-width: 767px) {
  .web-std{
    padding: 0px 0 5px;
  }
  .web-std-top{
	margin: 60px 0 0 0;  
  }
	
.web-std p{
    font-size: 15px;
    line-height: 24px;
	font-family: "Zen Maru Gothic", serif;
}	
  .web-std .inner{
    width: 96%;
  }
   .inner_600{
	max-width: 600px;   
    width: 96%;
  }
	
  .inner_900{
    width: 96%;
  }
  .inner_1200{
   /* width: 96%;*/
  }
  .inner_1200_c{
    width: 100%;
	padding: 0 0px 0;  
  }
	
.web-std .h_title {
    padding: 20px 0 10px;
}	
.web-std .h_title .h_inner {
    width: auto;
    padding: 0 20px;
    font-size: 28px;
	line-height: 1.8;
}
.web-std .h_title span {
    font-size: 38px;
}
.web-brd{
  display: none;
 }

	
}

@media only screen and (max-width: 520px) {
	
  .inner_500{
    width: 96%;
  }
	
}
.w190{
	width :190px;
	margin: 0 auto;
}
/******************************************************************************
 * .cmn-post
*******************************************************************************/

.cmn-post h2 {
	font-family: "Zen Maru Gothic", serif;
	color : #0091ff;
	font-size: 34px;
	letter-spacing: 0.12em;
	line-height: 1.4;
    padding: 24px 0;
    position: relative;
}

.cmn-post h2:nth-child(n + 2),
.cmn-post h3:nth-child(n + 2),
.cmn-post h4:nth-child(n + 2)
{
	margin-top: 40px
}

.cmn-post  p+p{margin-top:1.4em}


.cmn-post h3 {
	font-family: "Zen Maru Gothic", serif;
    margin-bottom: 20px;
    padding: 10px 15px;
    border-radius: 5px;
    background-color: #fda4bb;
    line-height: 140%;
	font-size: 20px;
	color: #fff;
}

.cmn-post h4 {
    margin-top: 36px;
    padding: 23px 0 40px;
	font-size: 18px;
}

.cmn-post h4:before
{
    /*position: absolute;
    top: 0;*/
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background-image: url(../images/dot-g.svg);
    background-repeat: repeat-x;
	margin-bottom: 20px;
}
.cmn-post h4:after{
	/*position: absolute;
    bottom: 0;*/
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background-image: url(../images/dot-g.svg);
	background-repeat: repeat-x;	
	margin-top: 20px;
	
}

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

.cmn-post h2:nth-child(n + 2),
.cmn-post h3:nth-child(n + 2),
.cmn-post h4:nth-child(n + 2)	{
	margin-top: 30px
}
	
.cmn-post h2 {
    font-size: 22px;
    letter-spacing: 0;
    line-height: 23px;
    padding: 24px 0!important;
}	.cmn-post h3 {
		font-size: 18px
	}	
	.cmn-post h4 {
		font-size: 16px
	}
	.cmn-post h4:before
	{
		margin-bottom: 15px;	
	}
	.cmn-post h4:after{
		margin-top: 15px;	
	}
}

/*----------------------------------------------------
  #COMPANY PROFILE
--------------------------------------------------- */

.com-pro dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    margin-bottom: 20px;
    overflow: hidden;
    -webkit-box-lines: multiple;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    -webkit-align-items: stretch;
    align-items: stretch;
}
.com-pro dl.border-set {
    border-bottom: solid 1px #eaeaea;
}


.com-pro dl.border-set > dt {
    border-top: solid 1px #eaeaea;
    padding: 28px 0;
}


.com-pro dl.border-set > dd {
    border-top: solid 1px #eaeaea;
    padding: 28px 0 28px 30px;
	line-height: 1.6;
}


.com-pro dt {
    width: 180px;
    padding: 0 0 10px;
    font-weight: bold;
    color: #222;
}



.com-pro dt:before {
    content: '';
    display: block;
     width: 4px;
    height: 4px;
    background: #222;
   border-radius: 50%;
    font-size: inherit;
    line-height: inherit;
    position: relative;
    top: 14px;
}

.com-pro dd {
    width: calc(100% - 200px);
    padding: 0 0 10px 30px;
	color: #6c6d6d;


}
@media screen and (max-width: 767px){
.com-pro dl {
    display: block;
    margin-bottom: 15px;
}	
.com-pro dl.border-set {
    border-bottom: 0 none;
    border-top: solid 1px #e5e9e9;
}	
.com-pro dl.border-set > dt {
    padding: 15px 0 5px;
    border-top: 0 none;
    font-size: 14px;
}

	
.com-pro dl.border-set > dd {
    width: auto;
    /*padding: 0 0 15px;*/
    border-top: 0 none;
    border-bottom: solid 1px #e5e9e9;
}	
	
.com-pro dt {
    width: auto !important;
    padding-bottom: 5px !important;
}	
.com-pro dd {
    width: auto !important;
    padding: 0 0 15px;
}
}	
.ggmap {
position: relative;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
.ggmap iframe,
.ggmap object,
.ggmap embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
