/*
Template:ystandard
Theme Name:renew_shakehands
*/

/* ==========================================================================
   Reset & Base
   ========================================================================== */
:root {
    --ystd-content-default-width: 960px;
}
body{
width:100%;
height:100%;
margin:0 auto;
padding:0;
font-size:16px;line-height:1.8em;
background:#fff;
}

a{text-decoration:none;}

ol, ul {
    margin: 0;
    padding:0;
}
ul {list-style:none;}

h1, h2, h3, h4, h5, h6 {
    margin: 0em;
    padding: 0;
    line-height: 1.5;
    letter-spacing: .05em;
}

h1+h2, h2+h3, h3+h4, h4+h5, h5+h6 {
    margin-top: 0;
}

.entry-content h1+h2, .entry-content h2+h3, .entry-content h3+h4, .entry-content h4+h5, .entry-content h5+h6 {
    margin-top: 0em;
}

td, th {
    border-right:none;
    border-bottom:none;
}

tr {
    border-left:none;
}

amp-img, img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

p {
    margin-block-start: 0em;
    margin-block-end: 0em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
}

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
    margin: 0em;}


.footer-poweredby{display:none;}
.grecaptcha-badge { 
   visibility: hidden; 
}
.container {
    width: 100%;
    padding: 0;
    margin: 0 auto;
    max-width: var(--width-max);
}
.global-nav__toggle .ys-icon, .global-nav__toggle svg {
    width: 40px;
    height: 40px;
}

/* 全幅 */
.full-width {
	width: calc(100vw - var(--scrollbar-width));
	margin-left: calc(50% - 50vw + var(--scrollbar-width) / 2);
	max-width: none;
}


.monly{display:block;}
.ponly{display:none;}

.monly.mc{margin-bottom:28px;    text-align: center;}

.back-to-top__content {
    display: block;
    padding: 0em;
    box-shadow: none;
    line-height: 1;
    white-space: nowrap;
    background: none;
    border-radius: 100px;
    width: 100%;
    max-width: 60px;
    color: #ffffff;
}

#back-to-top {
    bottom: 3vh;
    right: 3vh;
    width: 60px!important;
}
/* ====================================
   Variables & Base
   ==================================== */
:root {
    --c-primary: #4abebb; /* 緑系 */
    --c-accent: #f2e065;  /* 黄色系 */
    --c-text: #564a40;
    --c-bg-light: #f9fdfd;
    --c-white: #fff;
    --font-base: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: var(--font-base);
    color: var(--c-text);
    line-height: 1.8;
    background: linear-gradient(180deg, #eef9f9 0%, #fff 100%); /* 全体の背景グラデ */
}
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { text-decoration: none; color: inherit; transition: opacity 0.3s; }
a:hover { opacity: 0.7; }
ul { list-style: none; padding: 0; margin: 0; }

/* 共通クラス */
.l-inner { width: 90%; max-width: 1200px; margin: 0 auto; }
.l-inner.-sm { max-width: 800px; }
.l-sec { padding: 60px 0; }
.u-center { text-align: center; }

.site-header button {
    background: #2AA439;
    border-bottom-left-radius: 10px;
    padding: 0.5em 1em 0.5em;
}

/* タイトル・ボタン */
.c-sec-tit {
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 40px;
    color: var(--c-primary);
    position: relative;
    display: inline-block;
    width: 100%;
}
.c-sec-tit.-left { text-align: left; }

.c-btn {
  display: inline-block;
    background: #1ba1a0;
    color: #ffffff;
    width: 280px;
    padding: 16px 40px;
    border-radius: 16px 0 16px 0;
    font-weight: 600;
    margin: 32px auto 0px;
	font-size:1.1rem;
}
.c-btn.-line {
    background: transparent;
    border: 2px solid var(--c-primary);
    color: var(--c-primary);
}

.c-btn:hover{color:#ffffff;}

.arrowbtn{display: inline-block;
    padding: 0.75em 2em 0.75em 0.5em;
    color: #ffffff;
    text-decoration: none;
    text-align: center;
    position: relative;
    transition: all ease .3s;}
.arrowbtn::before { display: block; position: absolute; right: 16%; top: 50%; transform: translateY(-50%); width: 1.5em; height: 1.5em;border-radius: 50%; content: "";    border: 2px solid #ffffff;}
.arrowbtn::after {    display: block;
    position: absolute;
    top: 50%;
    right: 20.5%;
    transform: translateY(-50%) rotate(45deg);
    width: 0.3em;
    height: 0.3em;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    content: "";
    animation: move-arrow 1.5s linear infinite;
}


.no-title .content__main {
background:transparent;
}
.content__main {
  background:transparent;
}
.breadcrumbs__list {
	margin: 0 0 0px 2rem;}


.fa-brands, .fa-classic.fa-brands, .fab {
    font-size: 1.5em;
}

.global-nav__menu>.menu-item-505.current-menu-item>a:after {
    width: auto;
	transition: width .3s;
}

.global-nav__menu>.menu-item-505>a:hover:after {
    width: 100%;
	transition: width .3s;
}

.global-nav__menu>.menu-item-505>a:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--header-text);
    content: "";
    transition: width .3s;
}


/* ====================================
   Header
   ==================================== */

.site-branding .site-title {
    margin-left: 0.75em;
}


.l-head {
    position: fixed;
    top: 0; width: 100%;
    background: rgba(255,255,255,0.95);
    z-index: 100;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.l-head__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
}
.l-head__logo { font-size: 1.5rem; margin: 0; color: var(--c-primary); }

/* SP用ハンバーガー */
.l-head__btn {
    display: block;
    width: 30px; height: 25px;
    position: relative;
    background: none; border: none;
    cursor: pointer;
    z-index: 101;
}
.l-head__btn span {
    position: absolute; left: 0; width: 100%; height: 2px;
    background: var(--c-primary); transition: 0.3s;
}
.l-head__btn span:nth-child(1) { top: 0; }
.l-head__btn span:nth-child(2) { top: 11px; }
.l-head__btn span:nth-child(3) { bottom: 0; }
.l-head__btn.is-active span:nth-child(1) { transform: rotate(45deg); top: 11px; }
.l-head__btn.is-active span:nth-child(2) { opacity: 0; }
.l-head__btn.is-active span:nth-child(3) { transform: rotate(-45deg); bottom: 11px; }

/* WP Nav (SP Default) */
.l-head__nav {
    position: fixed;
    top: 0; right: -100%;
    width: 80%; height: 100vh;
    background: var(--c-primary);
    padding-top: 80px;
    transition: 0.3s;
}
.l-head__nav.is-open { right: 0; }
.l-head__nav ul { display: block; }
.l-head__nav li a {
    display: block;
    padding: 15px 20px;
    color: var(--c-white);
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

/* ====================================
   Hero
   ==================================== */

.swiper-button-prev,.swiper-button-next { background: #3D62AC;height:60px;width:60px;color:#ffffff;border-radius:50%;}
.swiper-button-prev svg,.swiper-button-next svg{width:16px;height:16px;stroke-width: 4;}

.swiper-button-prev{margin-left:1.5%!important;}
.swiper-button-next{margin-right:1.5%!important;}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: 20px;      /* サイズ */
  font-weight: 900;     /* 太さ */
}

.mySwiper {
   width: 100vw;          /* 画面幅基準 */
  max-width: 2480px;    /* 上限 */
  margin: 0 auto;
}

.mySwiper .swiper-slide {
  transition: 0.4s ease;
  transform: scale(1)!important;
}

.mySwiper .swiper-slide-active {
  transform: scale(1);
}

.mySwiper img {
  width: 100%;
  display: block;
  border-radius: 30px;
}



/* ====================================
   Sections
   ==================================== */
/* Intro */

h2.percent {
    background: #ffffff;
    font-size: 1.25rem;
    width: 100%;
    max-width: 960px;
    padding: 8px 0;
    margin: 40px auto 8px;
    text-align: center;
	border-radius: 0.25em;
}

.intro_title{font-size:3rem; background: linear-gradient(transparent 60%, #ffff7d 60%);text-align:center;}

.message-container {
            text-align: center;
            max-width: 900px;
    margin: 0 auto 60px;
        }

   .highlight {
    background: linear-gradient(transparent 10%,transparent 45%, #ffff66 45%, #ffff66 90%, transparent 90%);
    display: inline;
    padding: 16px 8px;
    line-height: 1.8;
    font-weight: 600;
    font-size: 1.2rem;
}

        .line {
            margin: 4px 0;
        }

.c-txt{font-size:0.9rem;font-weight:600;margin-top:-24px;}

h3.tsec_title{display: flex;
    text-align: center;
    align-items: center;
    font-size: 1.4em;
    margin: auto auto 40px;
    justify-content: center;}
.sect_img{margin-right:0.5em;}


h3.tsec_title2 {
    font-size: 1.25em;
    color: #3d62ac;
    text-align: center;
    font-weight: 600;
    margin-bottom: 16px;
	margin-top:28px;
}


h3.tsec_title3{display: flex;
    text-align: left;
    align-items: center;
    font-size: 1.45em;
    margin: auto auto 0.5em;}
.sect_img{margin-right:0.25em;width:100%;max-width:30px;}


h3.tsec_title.tsec_left {    text-align: left;
    margin: 0 1em 0 0;}
.title-flex{    display: flex;
    align-items: center;
    margin-bottom:24px;
	justify-content:space-between;
}


h3.tsec_title4{display: flex;
    text-align: center;
    align-items: center;
    font-size: 1.45em;
    margin: auto auto 40px;
    justify-content: center;}
.sect_img{margin-right:0.5em;}

.tonews{font-weight:600;font-size: 1.1em;}

.sec-intro {
  background: radial-gradient( ellipse 80% 60% at 0% 55%, rgba(72, 193, 194, 0.5) 0%, transparent 100% ), radial-gradient( ellipse 40% 40% at 100% 60%, rgba(220, 230, 115, 0.5) 0%, transparent 100% ), radial-gradient( ellipse 60% 40% at 20% 100%, rgba(66, 145, 201, 0.7) 0%, transparent 100% ), radial-gradient( ellipse 50% 40% at 90% 100%, rgba(72, 193, 194, 0.6) 0%, transparent 100% ), linear-gradient( to bottom, #ffffff 0%, #ffffff 30%, #d0eef8 55%, #7ec8d8 100% );
}

.wrap_ip{position:relative;}

.wrap_ip::after {
  content: "";
    position: absolute;
    width: 80px;
    height: 80px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1-2.svg) no-repeat center/contain;
    top: 53%;
    right: 2%;
    z-index: 3;
}
.wrap_ip::before {
content: "";
    position: absolute;
    width: 24px;
    height: 28px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1.svg) no-repeat center/contain;
    bottom: 48%;
    right: 15%;
    z-index: 3;
}

.wrap_ip2{position:relative;}

.wrap_ip2::after {
  content: "";
    position: absolute;
    width: 80px;
    height: 80px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1-2.svg) no-repeat center/contain;
    top: 66%;
    right: 2%;
    z-index: 3;
}
.wrap_ip2::before {
content: "";
    position: absolute;
    width: 24px;
    height: 28px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1.svg) no-repeat center/contain;
    bottom: 35%;
    right: 15%;
    z-index: 3;
}
.wrap_ip3{position:relative;}

.wrap_ip3::after {
  content: "";
    position: absolute;
    width: 80px;
    height: 80px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1-2.svg) no-repeat center/contain;
    top: 72%;
    right: 2%;
    z-index: 3;
}
.wrap_ip3::before {
content: "";
    position: absolute;
    width: 24px;
    height: 28px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star1.svg) no-repeat center/contain;
    bottom: 28.5%;
    right: 15%;
    z-index: 3;
}


.decoration1{
  position: absolute;
  inset: 0;
  pointer-events: none;z-index: 3
}

.decoration1::before { content: "";
    position: absolute;width: 24px;
    height: 28px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star2.svg) no-repeat center/contain; 
 bottom: 2%;
    left: 20%;}
.decoration1::after { content: "";
    position: absolute;width: 80px;
    height: 80px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star2-2.svg) no-repeat center/contain; 
 bottom: -2%;
    left: 1%;}


.decoration2{
  position: absolute;
  inset: 0;
  pointer-events: none;z-index: 3
}

.decoration2::before { content: "";
    position: absolute;width: 24px;
    height: 28px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star2.svg) no-repeat center/contain; 
 bottom: 5%;
    left: 15%;}
.decoration2::after { content: "";
    position: absolute;width: 80px;
    height: 80px;
    background: url(http://test-shakehands.mathgraphics.space/wp-content/uploads/2026/02/star2-2.svg) no-repeat center/contain; 
 bottom: -3%;
    left: 2%;}



.sec-point{background-image: linear-gradient(45deg, #defff1, #91ffd5 100%);}

.sec-svc{background-image: linear-gradient(45deg, #f8ffa3, #80f5ff 100%);}

.sec-check{background-image: linear-gradient(45deg, #ffffa4, #bbcaff 100%);}

.sec-flow{background-image: linear-gradient(45deg, #fffa89, #fce4ab 50%, #ffadad 100%);}

.sec-voice{ background-image: linear-gradient(45deg, rgba(235, 255, 255, 1), rgba(203, 244, 255, 0.5));}

.sec-event{background-image: linear-gradient(45deg,rgba(255, 252, 209, 1) 0%, rgba(255, 246, 130, 1) 90%);}

.sec-news{background:#ffffff;}

.sec-faq{background-image: linear-gradient(45deg,rgba(203, 224, 240, 1) 0%, rgba(216, 242, 242, 1) 58%, rgba(245, 248, 217, 1) 98%);}

 a.att{color:#ff0000;}

.entry-content>* {
    margin-top: 0;
}

.white-card {
  background: var(--c-white);
    border-radius: 1.4rem;
    padding: 48px 28px;
    text-align: center;
	margin: 0px auto 0;
	width: 100%;
    max-width: 960px;
	position:relative;
}

.ill-1{position:absolute;bottom: -24px;
    right: 32px;}
.ill-2{position:absolute;bottom: -24px;
    right: 32px;}
.ill-3{position: absolute;
    top: -130px;
    left: 160px;}
.ill-4{position:absolute;top: -2rem;
    right: -2rem;}
.ill-5{position:absolute;bottom: -25px;
    left: 15%;}
.ill-5-2{position:absolute;top: -93px;
    left: 15%;}
.ill-6{position:absolute;bottom: -75px;
	right:17%;}
.ill-6-2{position:absolute;top: -58px;
	right:17%;}
.ill-7{ position: absolute;
    top: -75px;
    right: 0;
    text-align: right;}

.ill-7 img{width:80%;}

.rstar-s{position: absolute;
    bottom: 80px;
    right: 10%;}
.rstar-l{position:absolute;    top: 50px;
    right: 3%;}

.lstar-s{position:absolute;    bottom: 50px;
    left: 10%;}
.lstar-l{position:absolute;   top: 50px;
    left: 3%;}


.intro-img { margin-top: 20px; border-radius: 10px; overflow: hidden; }

/* Points */
.point-grid { display: grid; gap: 20px; margin-bottom: 30px; }
.point-item {
    background: #eefbfb;
    padding: 20px;
    border-radius: 10px;
    position: relative;
    border: 2px solid var(--c-primary);
}
.point-num {
    background: var(--c-accent);
    color: var(--c-primary);
    width: 40px; height: 40px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: bold;
    position: absolute; top: -15px; left: -15px;
}
.point-tit { margin: 10px 0; color: var(--c-primary); }


 .feature-container {
            display: flex;
            flex-direction: column;
            gap: 8px;
            max-width: 1200px;
                margin:0px auto 0;
        }

        .feature-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 20px;
            border-radius: 50px;
            background-image: linear-gradient(45deg, rgba(128, 245, 255, 1), rgba(248, 255, 163, 1));
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }

        .feature-card:nth-child(2) {
             background-image: linear-gradient(45deg, rgba(128, 245, 255, 1), rgba(248, 255, 163, 1));
        }

        .number-image {
            flex-shrink: 0;
            width: 50px;
            height: 50px;
        }

        .number-image img {
            width: 100%;
            height: 100%;
            display: block;
        }

        .feature-text {
            flex: 1;
            font-size: 16px;
            font-weight: bold;
            color: #333;
            line-height: 1.4;
			    text-align: justify;
        }

/* Service */
.svc-list {display: flex;
    text-align: center;
    justify-content: center;
    margin-bottom: 60px;
    gap: 64px;
    flex-wrap: wrap;}
.svc-item { width:100%;}
.svc-item h3{color:#564a40;margin: 1em auto 0.25em;font-size: 1.4em;}
.svc-item h4{background: #eef7f9;
    padding: 0.5em;
    color: #1ba1a0;
    font-weight: 600;
	border-radius:0.5em;
    font-size: 1rem;}
.svc-icon {
}
.svc-icon img { width: 80%; height: 80%; object-fit: cover; }


/* 共通設定 */
.target-box {
  position: relative;
  max-width: 900px;
  margin: 40px auto 0;
  padding: 32px 20px 24px;
  border: 2px solid #17a9a1;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
}


.target-title {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 24px;
  background: #fff;
  color: #17a9a1;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
  white-space: nowrap;
}


.ys-posts.is-simple .ys-posts__list {
   flex-direction:column;
}


/* リスト */
.target-list {
     margin: 0 auto;
    padding: 0;
    list-style: none;
    text-align: center;
    max-width: fit-content;
}

.target-list li {
  position: relative;
    padding-left: 1em;
    color: #17a9a1;
    line-height: 1.5;
    font-weight: 600;
    text-align: justify;
}

/* 丸アイコン */
.target-list li::before {
  content: "";
    position: absolute;
        top: 0.35em;
    left: 0;
    width: 10px;
    height: 10px;
    background: #17a9a1;
    border-radius: 50%;
}

/* 注釈文 */
.target-note {
  margin-top: 18px;
  font-size: 13px;
  line-height: 1.7;
  color: #333;
}


/* Check */
.sec-check .check-box {
 text-align: justify;
    width: fit-content;
        margin: 0 auto 0;
}
.check-list li {
position: relative;
    padding-left: 32px;
    margin-bottom: 0px;
    font-weight: bold;
    font-size: 1.2rem;
	    text-decoration: underline;
	text-underline-offset: 4px;
}
.check-list li::before {
    content: "\f14a";
    position: absolute; left: 0; top: 0;
    color: #564a40;
	font-family: "Font Awesome 7 Free";
	font-weight:400;
}

.worriestxt{margin:24px auto 0;text-align:justify;}


/*flow*/

  .flow-section {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    padding: 40px 0;
  }

  /* --- SP Layout (Mobile First) --- */
  .flow-list {
    display: flex;
    flex-direction: column;
    gap: 40px; /* カード間の余白 */
    position: relative;
    z-index: 2; /* 背景線より上に表示 */
	  margin-top: 0px;
	  position: relative;
  }


/* 中央に縦線を引く */
.flow-list::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:10px;                 /* 線の太さ */
  background:#C5E7E7;        /* 線色 */
  border-radius:10px;
  z-index:1;
}

  /* --- Card Style --- */
  .flow-item {
    background: var(--c-white);
    border: 2px solid var(--c-primary);
    border-radius: 24px;
    padding: 60px 16px 32px;
    position: relative;
    text-align: center;
    width: 100%;
	  z-index:2;
	  
  }

.flow-item.chosei_fl{ padding: 60px 16px 32px;}

  /* Step Badge (STEP 01 etc.) */
  .step-badge {
    position: absolute;
    top: -35px;
    left: 20%;
    transform: translateX(-50%);
    background: #FA8C6E;
    color: var(--c-white);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    line-height: 1.1;
    z-index: 3;
  }

.tf_image{margin-top:24px;}
.tf_image img{max-width:150px;}
  
  .step-badge span:first-child { font-size: 12px; }
  .step-badge span:last-child { font-size: 28px; }

  /* Badge Tail (吹き出しのしっぽ) */
  .step-badge::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-top: 10px solid #FA8C6E;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
  }

  /* Card Content */
  .flow-title {
   color: #1BA1A0;
    font-size: 1.3rem;
    font-weight: 600;
  }
  
  .flow-desc {
	      font-size: 16px;
	  font-weight:600;
  }

  /* Helper Classes */
  .u-bold { font-weight: 600; }
  .u-large { color:#564A40; }
  
  /* Button Style (Step 1) */
  .btn-contact {
    display: inline-block;
    background-color: #1BA1A0;
    color: var(--c-white);
    padding: 10px 30px;
    border-radius: 50px;
    text-decoration: none;
    margin-top: 10px;
    font-weight: 600;
    transition: opacity 0.3s;
  }
  .btn-contact:hover {
    opacity: 0.8;
  }
  .icon-mail {
    margin-right: 5px;
  }

  /* --- PC Background Line (Hidden on Mobile) --- */
  .flow-bg-line {
    display: none; /* スマホでは非表示 */
  }

/*voice*/
.ys-posts__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px; /* カード間の余白 */
  list-style: none;
  padding: 0;
  margin: 0;
}

.voice-card {
  width: 100%; /* モバイルは1列 */
	position: relative;
	border-radius: 30px;
  overflow: hidden;
  background: #fff;
}


/* リンク全体 */
.voice-card__inner {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* 画像エリア */
.voice-card__image {
	position: relative;
	overflow: hidden;
}

.voice-card__image img {
	width: 100%;
	display: block;
	object-fit: cover;
}

/* カテゴリー */
.voice-card__cat {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #f7941d;
    color: #fff;
    padding: 6px 18px;
    border-radius: 50px;
    font-weight: bold;
    font-size: 16px;
}

.voice-card__cat.label-graduate {
  background: #3a91de;
}


/* 本文エリア */
.voice-card__body {
	padding: 16px 24px;
	position: relative;
}

/* 概要 */
.voice-card__excerpt {
    color: #564A40;
    line-height: 1.8;
    margin-bottom: 20px;
    font-weight: 600;
    text-align: justify;
}

/* タイトル（右下） */
.voice-card__title {
	text-align: center;
    font-weight: bold;
    font-size: 18px;
    color: #4a4038;
    line-height: 1.5;
}


.label-user {
  background: #F7941D;
}
.panel-group{margin-top:0px;}

.jobs{font-size: 0.9rem;
    text-align: left;
    border: 1px solid #000000;
    padding: 2px 8px;
    margin-top: 8px;
    display: inline-block;}

.jobs.return{background:#c3e0fa;}

/*event*/
/* スライド全体 */

.event-swiper{padding-right:12px;
padding-left:20px;}

.event-slide {
  background: #f3f3f3;
  border-radius: 24px;
  overflow: hidden;
  transition: transform 0.3s ease;
}

/* リンク全体 */
.event-slide a {
  display: block;
  text-decoration: none;
  color: #cccccc;
}

/* 画像 */
.event-slide img {
  width: 100%;
  object-fit: cover;
  display: block;
}

/* 下部コンテンツエリア */
.event-slide-content {
  padding: 16px;
  background: #ffffff;
}

/* 日付＋カテゴリー横並び */
.event-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-size: 16px;
  color: #6b625a;
}

/* カテゴリーバッジ */
.event-category {
  background: #3fa7a3;
  color: #fff;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  font-weight: 400;
}

/* タイトル */
.event-slide h3 {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  margin: 0;
}

.ys-posts.is-card .ys-posts__text {
    padding: 24px;
    border-radius: 0 0 24px 24px;
	background:#ffffff;
}

.eventwrap .ys-posts.is-card .ys-posts__thumbnail {margin-bottom:0;}

/* News (WordPress Loop) */

.ys-posts.is-simple .ys-posts__title {
    margin-top: 0;
    text-align: left;
	font-weight:600;
	font-size: 18px;
}
.news-list-wp {
    display: grid; gap: 20px; margin-bottom: 30px;
}
.post-item {
    background: var(--c-white);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 5px 10px rgba(0,0,0,0.05);
}
.post-thumb img { width: 100%; height: 200px; object-fit: cover; }
.post-body { padding: 15px; }
.post-body time { display: block; font-size: 0.8rem; color: #888; margin-bottom: 5px; }
.post-body h3 { margin: 0; font-size: 1rem; }

.news-slide img {
  width: 100%;
  height: auto;
  display: block;
}

.news-slide {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  padding: 15px;
}


/* Gallery */
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }

/* Info (DL Table) */
.info-list { background: var(--c-white); padding: 20px; border-radius: 10px; }
.info-row { border-bottom: 1px solid #eee; padding: 15px 0; }
.info-row:last-child { border: none; }
.info-row dt { font-weight: bold; color: var(--c-primary); margin-bottom: 5px; }
.info-row dd { margin: 0; }


.info-wrap {
  background: #f4f7f0;
    border-radius: 2.5rem;
    padding: 24px;
    text-align: center;
	width: 100%;
    max-width: 960px;
}

.newsbox{background: #ffffff;
    padding: 1em 2em;
    border-radius: 24px;}

/* FAQ */
.faq-item { margin-bottom: 10px; background: var(--c-white); border-radius: 5px; }
.faq-q {
    padding: 16px; margin: 0;
    cursor: pointer;
    position: relative;
    padding-right: 40px;
}
.faq-q::after {
    content: "+";
    position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
    font-size: 1.5rem; color: var(--c-primary);
}
.faq-a {
    display: none; /* JSで開閉 */
    padding: 0 16px 16px;
    color: #666;
    border-top: 1px solid #eee;
}
.faq-item.is-active .faq-a { display: block; }
.faq-item.is-active .faq-q::after { content: "-"; }

.faq-wrap {
  max-width: 960px;
  margin: 24px auto 0px;
  padding: 24px;
  background: #f4f7f0;
  border-radius: 24px;
	position:relative;}
}

.faq-item {
  background: #fff;
  border-radius: 16px;
  margin-bottom: 16px;
  overflow: hidden;
}


.faq-question {
    width: 100%;
    padding: 20px 16px 20px 20px;
    background: none;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    color: #17a9a1;
    position: relative;
    text-align: justify;
    text-indent: -22px;
    padding-left: 36px;
}


.faq-question::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20px;
  right: 20px;
  height: 1px;
  background: #e5e5e5;
}

.plusicon {
  width: 22px;
  height: 22px;
  border: 2px solid #17a9a1;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}

.plusicon::before,
.plusicon::after {
  content: "";
  position: absolute;
  background: #17a9a1;
  transition: transform 0.3s ease;
}

.plusicon::before {
  width: 10px;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.plusicon::after {
  width: 2px;
  height: 10px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 開いた状態 */
.faq-item.active .icon::after {
  transform: translate(-50%, -50%) scaleY(0);
}

.faq-answer {
    display: none;
    padding: 16px 24px 16px 36px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.7;
    text-indent: -21px;
    color: #564A40;
}

/* Footer */
.l-foot { background: var(--c-primary); color: var(--c-white); }
.l-foot__cta { padding: 40px 0; text-align: center; background: #3aa8a8; }
.cta-btns { display: flex; flex-direction: column; gap: 15px; margin-top: 20px; align-items: center; }
.c-btn.-tel { background: var(--c-white); color: var(--c-primary); }
.c-btn.-mail { background: var(--c-accent); color: var(--c-text); }
.l-foot__copy { text-align: center; padding: 20px; font-size: 0.8rem; }


.contact-section {
        background-color: #1ba1a0;
        color: #ffffff;
        width: 100%;
        padding: 40px 20px; /* 上下左右に最低限の余白 */
    }

    .contact-container {
        width: 100%;
        margin: 0 auto;
        display: flex;
        flex-direction: column; /* 縦並び */
        align-items: center;    /* 中央揃え */
        gap: 30px;
    }

    /* 左側エリア (Mobile) */
    .contact-left {
        width: 100%;
        text-align: center;
    }

    .contact-title {
        font-size: 2rem; /* スマホ用に少し小さめ */
        font-weight: 600;
        margin-bottom: 16px;
    }

    .contact-desc {
        font-size: 0.9rem;
        line-height: 1.8;
    }

    .contact-sns a {
        color: var(--text-white);
        font-size: 2.2rem;
        text-decoration: none;
        transition: opacity 0.3s;
    }
    
    .contact-sns a:hover { opacity: 0.8; }

    /* 右側エリア (Mobile) */
    .contact-right {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .tel-wrapper {
        text-align: center;
        margin-bottom: 32px;
    }

    .tel-number {
        font-size: 2.25rem; /* 画面幅が狭くても改行しないサイズ */
        font-weight: 600;
        line-height: 1.2;
    }
    
    .tel-label {
        font-size: 2.25rem;
        margin-right: 8px;
    }

    .tel-hours {
        font-size: 1.25rem;
        display: block;
    }

    /* ボタン (Mobile) */
    .contact-btn {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        max-width: 400px;
        padding: 12px 48px;
        border: 2px solid var(--text-white);
      border-radius: 24px;
    color: var(--text-white);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    border: 1px solid #ffffff;
    }

    .contact-btn:hover {
        background-color: var(--text-white);
        color: var(--bg-teal);
    }
    
    .contact-btn:hover .btn-arrow-circle {
        background-color: var(--bg-teal);
        color: var(--text-white);
    }

    .btn-icon-mail { font-size: 1.4rem; margin-right: 0px; }
    .btn-text { flex-grow: 1; text-align: center; }
    .btn-arrow-circle {
        background-color: #ffffff;
        color: #1BA1A0;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.9rem;
        margin-left: 10px;
        transition: all 0.3s ease;
    }

.footer-c-wrap {
    display: flex;
    justify-content: space-between;
    padding: 0 1em;
    flex-direction: column-reverse;
    text-align: center;
    font-size: 14px;
}

.footer-main {
	padding-top: 1em;}

/* ====================================
   Decoration (あしらい・装飾)
   ==================================== */

/* 親要素（セクション）に基準点を作る */
.l-sec {
    position: relative;
    /* はみ出した装飾を表示したい場合は visible、隠すなら hidden */
    overflow: hidden; 
}

.sec-intro.l-sec{padding:40px 0 60px;}



/* 装飾の基本スタイル */
.c-deco {
    display: block;
    position: absolute;
    width: 40px;  /* 装飾のサイズ */
    height: 40px; /* 装飾のサイズ */
    z-index: 0;   /* 文字の下に配置 */
    opacity: 0.8;
}


/* --- 色のバリエーション --- */
.c-deco.-color-main { background-color: var(--c-primary); }
.c-deco.-color-accent { background-color: var(--c-accent); }


/* --- 配置の定義 (スマホ初期位置) --- */

/* 左上 */
.c-deco.-pos-tl {
    top: 20px;
    left: -10px;
    transform: rotate(-15deg);
}

/* 右上 */
.c-deco.-pos-tr {
    top: 40px;
    right: -10px;
    transform: rotate(15deg);
}

/* 左下 */
.c-deco.-pos-bl {
    bottom: 20px;
    left: 10px;
    transform: scale(0.8);
}

/* 右下 */
.c-deco.-pos-br {
    bottom: 30px;
    right: 5px;
    transform: rotate(10deg);
}


/* --- コンテンツが装飾の上にくるように調整 --- */
.l-inner, .c-sec-tit {
    position: relative;
    z-index: 2; /* 装飾(z-index:0)より上にする */
}


/*アーカイブ*/
.has-sidebar .content__wrap {
    max-width: 1280px;
    margin: 0 auto;
}

.archive__item.is-list {
    padding: 1em;
}

.archive__item.is-card .archive__text {
    padding: 0.5em 1em 1em;
    background: #eeeeee;
}

/*固定ページ*/

body:not(.has-sidebar) .site-content {
    position: relative;
}
.pageaccesary1{position:absolute;top:5%;right:5%;}
.pageaccesary2{position:absolute;bottom:5%;left:5%;}
.p-contents{margin:80px auto;padding: 0 1em;position:relative;}
.p-contents.first{margin:80px auto 80px;padding: 0 1em;}


body.page{
background-image: linear-gradient(45deg,rgba(203, 224, 240, 1) 0%, rgba(216, 242, 242, 1) 58%, rgba(245, 248, 217, 1) 98%);
}

body.home.page{background:#ffffff;}

h2.p_title{
display: flex;
    text-align: left;
    align-items: center;
    font-size: 2em;
    margin: 40px auto;
    justify-content: center;
}
.psect_img{
    margin-right: 0.5em;
    max-width:50px;
}

  .pcont-section {
  margin: 0 auto;
    padding: 40px 0;
    text-align: center;
  }

h3.psectitle { border-left: 5px solid #564A40;padding-left: 0.5em;
    padding-bottom: 0.1em;
    margin-bottom: 1em;
}


/* ─────────────────────────────────────
    会社概要
  ───────────────────────────────────── */
table.outline{background:#ffffff;border-top:none;}
table.outline th{background:#1ba1a0;color:#ffffff;border-bottom:1px solid #d1e3e2;}
table.outline td{border-bottom:1px solid #9cb8b7;}
table.outline tr.last th,table.outline tr.last td{border-bottom:none;}
.pname{margin-top:1em;text-align:right;}
.profile-card {
  margin: 24px 0 0;
    padding: 16px 18px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    border: 2px solid #4abebb;
}

.profile-card-title {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 10px;
	color: #17a9a1;
}

.profile-card-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}

.profile-card-table th,
.profile-card-table td {
  padding: 6px 0;
  vertical-align: top;
	color: #564a40;
}

.profile-card-table th {
  width: 130px;
  text-align: left;
  font-weight: 600;
	background: none;
}

.profile-card-table td {
  line-height: 1.6;
}
/* ─────────────────────────────────────
    ご利用までの流れ
  ───────────────────────────────────── */
 .pflow-list {
    display: flex;
    flex-direction: column;
    gap: 40px; /* カード間の余白 */
    position: relative;
    z-index: 2; /* 背景線より上に表示 */
	  margin-top: 60px;
	  position: relative;
  }

.pflow-list::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:10px;                 /* 線の太さ */
  background:#C5E7E7;        /* 線色 */
  border-radius:10px;
  z-index:1;
}

  .pflow-item {
    background: var(--c-white);
    border: 2px solid var(--c-primary);
    border-radius: 24px;
    padding: 40px 24px;
    position: relative;
    text-align: center;
    width: 100%;
	  z-index:2;
	  display:flex;
	  flex-direction: column;
	      gap: 24px;
  }

.pflow-item.chosei_fl{ padding: 60px 16px 40px;}

	.flowcontent{width:100%;}	


  .pflow-title {
   color: #1BA1A0;
    font-size: 1.5rem;
    font-weight: 600;
  }
  
  .pflow-desc {
	      font-size: 14px;
  }

/* ─────────────────────────────────────
    シェイクハンズの強み
  ───────────────────────────────────── */

.about_sup{padding:40px 0 ;text-align:center;background:#ffffff;border-radius:24px;margin:1em auto;}
.about_sup h4{margin-bottom:1em;color:#1ba1a0;font-size:1.75em;}
     .pfeature-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 20px;
            border-radius: 50px;
            background: linear-gradient(135deg, #7FDBDA 0%, #A8E6C5 50%, #E8F5A0 100%);
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		 position:relative;
        }

        .pfeature-card:nth-child(2) {
            background: linear-gradient(135deg, #7FDBDA 0%, #A8E6C5 30%, #E8F5A0 100%);
        }


        .pfeature-text {
            flex: 1;
            font-size: 22px;
            font-weight: bold;
            line-height: 1.5;
			    text-align: justify;
        }

.pftextbox{border: 2px solid #4abebb;
    border-radius: 24px;
	    margin: 24px auto 40px;
    padding: 24px;display:flex;gap:16px;background: #ffffff;    flex-direction: column;}
.pfimg{width:100%;}
.pftxt{width: 100%;}

  .pstep-badge {
    position: absolute;
    top: -35px;
    left: 15%;
    transform: translateX(-50%);
    background: #FA8C6E;
    color: var(--c-white);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    line-height: 1.1;
    z-index: 3;
  }
  
  .pstep-badge span:first-child { font-size: 12px; }
  .pstep-badge span:last-child { font-size: 28px; }

  .pstep-badge::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-top: 10px solid #FA8C6E;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
  }

.accentimg{    position: absolute;
    right: 40px;
    top: -78px;z-index:2;}

.accentimg2{position: absolute;
    right: 50px;
    top: -50px;
	z-index: 5;}

table.jobtable{width:100%;border-top:none;}
table.jobtable th{width:20%;background:#17a9a1;color:#ffffff;font-weight:600;border-bottom:1px dotted #ffffff;}
table.jobtable td{background:#ffffff;border-bottom:1px dotted #17a9a1;}
table.jobtable th.last table.jobtable td.last{border-bottom:none;}

/* ─────────────────────────────────────
    会社概要
  ───────────────────────────────────── */

.pretxt{margin:1em auto 0;}
.exterior{margin:0 auto 1em;}

/* ─────────────────────────────────────
    お問い合わせ
  ───────────────────────────────────── */

.formbox{padding: 40px 0;
    background: #ffffff;
    border-radius: 24px;}

.formtxt{text-align:center;margin:0 auto;}
.formtxt h4{margin-top:1em;}
.formtxt ul{margin:2em auto;text-align:center;}
.btn-copy {
  font-size: 1rem;
  font-weight: bold;
color:#1ba1a0;
  position: relative;
    margin-top: 2em;
  margin-bottom: .2em;
  text-align: center;
}

.btn-copy:before {
  margin-right: 1rem;

  content: '＼';
}

.btn-copy:after {
  margin-left: 1rem;

  content: '／';
}
.formtel h3{background: #1ba1a0;
    border: 2px solid #1ba1a0;
    border-radius: 24px;
    padding: 0.5em 2em;
    text-align: center;
    color: #ffffff;
    font-size: 2em;
    width: fit-content;
    margin: auto;}

.formtel h3 span{display:block;font-size:0.5em;}
table.CF7_table{
margin: 0 auto;
    border: 2px solid #dfdfdf;
}



table.CF7_table tr{
	border-top: 1px solid #e5e5e5;
}

.single .entry-content table.CF7_table,
.page .entry-content table.CF7_table{
	display:table;    background: #ffffff;
}

.CF7_table input, .CF7_table textarea {
	border: 1px solid #d8d8d8;
}

.CF7_table ::placeholder {
	color:#797979;
}

.CF7_req{
	font-size:.9em;
	padding: 5px;
	background: #3D62AC;
	color: #fff;
	border-radius: 3px;
	margin-right:1em;
}

.CF7_unreq{
	font-size:.9em;
	padding: 5px;
	background: #bdbdbd;/*グレー*/
	color: #fff;
	border-radius: 3px;
	margin-right:1em;
}

	table.CF7_table{
	width:100%;
	}
	.CF7_table tr, .CF7_table td, .CF7_table th{
	display: block;
	width: 100%;
	line-height:2.5em;
	}
	.CF7_table th{
	background-color:#ebedf5;
	}

.wpcf7 input.wpcf7-submit {
	background-color:#3D62AC;
	border:0;
	color:#fff;
	font-size:1.2em;
	font-weight:bold;
	margin:0 auto;
}

.CF7_btn{
	text-align:center;
	margin-top:20px;
}

.wpcf7-spinner{
	width:0;
	margin:0;
}


  /* ─────────────────────────────────────
    1日の流れ
  ───────────────────────────────────── */

  /* Timeline wrapper */
  .timeline {
    padding: 28px 12px 0;
  }

  /* Each row */
  .row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
    position: relative;
  }

  /* Connector spine */
  .row:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 20px;
    top: 48px;
    bottom: -20px;
    width: 2px;
    background: linear-gradient(to bottom, #666666, #666666);
    opacity: .22;
  }


  /* Time column */
  .time-col {
    flex: 0 0 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 12px;
  }
  .dot {
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 3px solid #fff;
    flex-shrink: 0;
    z-index: 1;
  }
  .time-label {
    font-size: 10px;
    font-weight: 600;
    color: #666666;
    letter-spacing: .02em;
    margin-top: 5px;
    text-align: center;
    line-height: 1.35;
    white-space: nowrap;
  }

  /* Card — mobile: text only, no illustration */
  .daycard {
    flex: 1;
    background: #ffffff;;
    border-radius: 14px;
    padding: 16px 16px 16px 18px;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    display: flex;
    gap: 16px;
    align-items: center;
    border-left: 4px solid #17a9a1;
    min-width: 0;
  }
  .daycard.blue    { border-color: #3D62AF;}
  .daycard.gray   { border-color: #888780; }

  /* Card text */
  .daycard-text { flex: 1; min-width: 0; }
  .daycard-tag {
      display: inline-block;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .06em;
    padding: 2px 24px;
    border-radius: 16px;
    margin-bottom: 8px;
  }
  .tag-green  { background: #e3f5f4;  color: #17a9a1; }
  .tag-sky    { background: #e8f5ff;   color: #3D62AF; }
  .tag-gray   { background: #f5f5f4;   color: #5f5e5a; }

  .daycard h2 {
    font-size: 16px;
    font-weight: 600;
    color: #564a40;
    margin-bottom: 6px;
    line-height: 1.4;
  }
  .daycard p {
    font-size: 14px;
    color:#564a40;
    line-height: 1.75;
  }
  .daycard p strong {
   color: #17a9a1;
    font-weight: 600;
  }

  /* Illustration — hidden on mobile */
  .daycardillust { display: none; }

  /* Break badge */
  .break-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0 18px 22px;
    opacity: .7;
  }
  .break-line { flex: 1; height: 1px; background: #aaaaaa; }
  .break-badge {
    font-size: 14px;
    color: #888780;
    font-weight: 600;
    letter-spacing: .04em;
    white-space: nowrap;
  }
    .time-col { flex: 0 0 50px; padding-top: 13px; }
    .dot      { width: 16px; height: 16px;background:#17a9a1;box-shadow:0 0 0 2px #17a9a1; }
.dot.blue     { width: 16px; height: 16px;background:#3D62AF;box-shadow:0 0 0 2px #3D62AF; }

    .time-label { font-size: 12px; margin-top: 6px; }

    .dayillust {
      display: flex;
      flex: 0 0 80px;
      width: 80px; height: 80px;
      border-radius: 12px;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      overflow: hidden;
    }
    .dayillust svg { width: 56px; height: 56px; }
    .dayillust.green-bg  { background: #e3f5f4; }
    .dayillust.sky-bg    { background: #e8f5ff;}
    .dayillust.gray-bg   { background: #f5f5f4;}
    .break-row { margin-left: 28px; gap: 12px; }
    .break-badge { font-size: 18px; }

.cari{margin:80px auto 40px;width:100%;}
.cari h3{margin-bottom: 24px;
    border-bottom: 2px dotted;
    display: inline-block;
    padding-bottom: 8px;
    font-size: 24px;}

 /* ─────────────────────────────────────
   就職までの流れ
  ───────────────────────────────────── */
.employment-page {
  font-family: 'Noto Sans JP', sans-serif;
  color: #333;
  line-height: 1.8;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 16px 60px;
}

/* ===== ページタイトル ===== */
.ep-hero {
  text-align: center;
  padding: 48px 0 32px;
}
.ep-hero__label {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.12em;
  color: #1ba1a0;
  background: #e8f7f7;
  padding: 4px 16px;
  border-radius: 20px;
  margin-bottom: 12px;
  font-weight: 600;
}
.ep-hero__title {
  font-size: clamp(22px, 5vw, 32px);
  font-weight: 600;
  color: #148a87;
  margin: 0 0 10px;
}
.ep-hero__sub {
  font-size: 16px;
  margin: 0;
}
.ep-hero__line {
  width: 48px;
  height: 4px;
  background: linear-gradient(90deg, #1ba1a0, #f4a261);
  border-radius: 2px;
  margin: 14px auto 0;
}

/* ===== タイムライン全体 ===== */
.ep-timeline {
  position: relative;
  padding-top: 8px;
}
.ep-timeline::before {
  content: '';
  position: absolute;
  left: 28px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #1ba1a0 0%, #d0ecea 100%);
  border-radius: 2px;
  z-index: 0;
}

/* ===== フェーズブロック ===== */
.ep-phase {
  position: relative;
  margin-bottom: 40px;
  padding-left: 64px;
}

/* ===== フェーズヘッダー ===== */
.ep-phase__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
  position: relative;
}
.ep-phase__icon {
  position: absolute;
  left: -58px;
  top: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #1ba1a0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(27,161,157,0.3);
  z-index: 1;
}
.ep-phase__icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ep-phase__title-wrap {
  flex: 1;
}
.ep-phase__period {
  display: inline-block;
  font-size: 14px;
  color: #1ba1a0;
  background: #e8f7f7;
  padding: 2px 10px;
  border-radius: 10px;
  font-weight: 600;
  margin-bottom: 4px;
}
.ep-phase__title {
  font-size: 1.5em;
  font-weight: 600;
  color: #1ba1a0;
  margin: 0;
  line-height: 1.4;
}

/* ===== フェーズカード ===== */
.ep-phase__card {
  background: #fff;
  border: 1.5px solid #d0ecea;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 4px 20px rgba(27,161,157,0.10);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.ep-phase__card:hover {
  box-shadow: 0 8px 32px rgba(27,161,157,0.18);
  transform: translateY(-2px);
}

/* ===== Flexレイアウト（テキスト＋イラスト） ===== */
.ep-flex {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-direction: row;
}
.ep-flex--reverse {
  flex-direction: row-reverse;
}
.ep-flex__text {
  flex: 1;
  min-width: 0;
}
.ep-flex__illust {
  flex-shrink: 0;
  width: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
	    margin:0 auto;
}
.ep-flex__illust svg {
  width: 100%;
  height: auto;
  max-height: 110px;
}

/* ===== 本文テキスト ===== */
.ep-phase__desc {
  font-size: 16px;
  line-height: 1.85;
  margin: 0 0 4px;
}

/* ===== サブアイテム ===== */
.ep-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ep-item {
     display: flex;
    gap: 12px;
    align-items: flex-start;
    background: #f0fafa;
    border-radius: 10px;
    padding: 12px 14px;
    border: 2px solid #1ba1a0;
}
.ep-item__num {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: #1ba1a0;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.ep-item__body {
  flex: 1;
  min-width: 0;
}
.ep-item__label {
  font-size: 16px;
  font-weight: 600;
  color: #148a87;
  margin: 0 0 4px;
}
.ep-item__desc {
  font-size: 16px;
  line-height: 1.75;
  margin: 0;
}

/* ===== 注釈（定着支援） ===== */
.ep-note {
  margin-top: 24px;
  background: linear-gradient(135deg, #fffbf5, #fff8ee);
  border: 1.5px solid #f4c99b;
  border-radius: 10px;
  padding: 16px 18px;
}
.ep-note__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 600;
  color: #f4a261;
  background: #fff3e5;
  padding: 3px 12px;
  border-radius: 10px;
  margin-bottom: 8px;
}
.entry-content h4.ep-note__title {
  font-size: 20px;
  font-weight: 600;
  color: #c97b2a;
  margin: 0 0 8px;
}
.ep-note__text {
  font-size: 16px;
  line-height: 1.8;
  margin: 0;
}

/* ===== 注意書き ===== */
.ep-caution {
  font-size: 14px;
  margin: 10px 0 0;
  padding-left: 1em;
  text-indent: -1em;
}

 /* ─────────────────────────────────────
   3つのキーワード
  ───────────────────────────────────── */

.keyword-page {
  font-size: 16px;
    line-height: 1.8;
    max-width: 900px;
    margin: 80px auto 0;
    padding: 0 16px 60px;
}

/* ===== ページタイトル ===== */
.kw-hero {
  text-align: center;
  padding: 48px 0 36px;
}
.kw-hero__label {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: #1ba1a0;
  background: #e8f7f7;
  padding: 4px 18px;
  border-radius: 20px;
  margin-bottom: 12px;
  font-weight: 600;
}
.kw-hero__title {
  font-size: clamp(24px, 6vw, 34px);
  font-weight: 600;
  color: #148a87;
  margin: 0 0 10px;
}
.kw-hero__line {
  width: 48px;
  height: 4px;
  background: linear-gradient(90deg, #1ba1a0, #f4a261);
  border-radius: 2px;
  margin: 14px auto 0;
}

/* ===== キーワードナビ ===== */
.kw-nav {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.kw-nav__item {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #1ba1a0;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius:32px;
  text-decoration: none;
  transition: background 0.25s, transform 0.2s;
  box-shadow: 0 3px 12px rgba(27,161,157,0.22);
}
.kw-nav__item:hover {
  background: #148a87;
  transform: translateY(-2px);
}
.kw-nav__num {
  font-size: 11px;
  background: rgba(255,255,255,0.25);
  border-radius: 50%;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ===== セクション共通 ===== */
.kw-section {
  margin-bottom: 56px;
}

/* ===== セクションヘッダー ===== */
.kw-section__head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 2.5px solid #ffffff;
  position: relative;
}
.kw-section__head::after {
  content: '';
  position: absolute;
  bottom: -2.5px;
  left: 0;
  width: 64px;
  height: 2.5px;
  background: #1ba1a0;
  border-radius: 2px;
}
.kw-section__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #1ba1a0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 3px 14px rgba(27,161,157,0.28);
}
.kw-section__icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kw-section__title-wrap {
  flex: 1;
}
.kw-section__en {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #1ba1a0;
  font-weight: 600;
  margin-bottom: 3px;
}
.kw-section__title {
  font-size: clamp(20px, 5vw, 26px);
  font-weight: 600;
  color: #148a87;
  margin: 0;
  line-height: 1.3;
}

/* ===== アイテムカード ===== */
.kw-items {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.kw-item {
  background: #fff;
  border: 1.5px solid #d0ecea;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 3px 16px rgba(27,161,157,0.08);
  transition: box-shadow 0.3s, transform 0.3s;
}
.kw-item:hover {
  box-shadow: 0 7px 28px rgba(27,161,157,0.16);
  transform: translateY(-2px);
}

/* ===== カード内ヘッダー ===== */
.kw-item__header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px 0;
  margin-bottom: 14px;
}
.kw-item__num {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  background: #1ba1a0;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.entry-content h4.kw-item__label {
  font-size: 20px;
  font-weight: 600;
  color: #148a87;
  margin: 0;
}

/* ===== Flexレイアウト（テキスト＋写真） ===== */
.kw-flex {
  display: flex;
  align-items: stretch;
}
.kw-flex--reverse {
  flex-direction: row-reverse;
}
.kw-flex__body {
  flex: 1;
  min-width: 0;
  padding: 0 20px 20px;
}
.kw-flex__photo {
 flex-shrink: 0;
    max-width: 320px;
    padding: 6px 20px 38px 24px;
}
.kw-flex__photo img {
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  display: block;
}

/* ===== 本文テキスト ===== */
.kw-item__desc {
  font-size: 16px;
  color: #444;
  line-height: 1.85;
  margin: 0 0 12px;
}
.kw-item__desc:last-child {
  margin-bottom: 0;
}

/* ===== リスト ===== */
.kw-item__list {
  margin: 6px 0 12px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kw-item__list li {
  font-size: 15px;
  color: #444;
  line-height: 1.7;
  padding-left: 18px;
  position: relative;
}
.kw-item__list li::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 10px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1ba1a0;
  opacity: 0.65;
}

/* ===== スキル4分割グリッド ===== */
.kw-skill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 10px 0 14px;
}
.kw-skill-grid__item {
  background: #f0fafa;
  border-radius: 10px;
  padding: 12px 14px;
}
.kw-skill-grid__item strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 3px;
}
.kw-skill-grid__item span {
  font-size: 16px;
  line-height: 1.6;
}

/* ===== セクション区切り ===== */
.kw-divider {
  height: 2px;
  background: linear-gradient(90deg, #1ba1a0 0%, #d0ecea 60%, transparent 100%);
  border: none;
  margin: 0 0 52px;
  border-radius: 1px;
}


 /* ─────────────────────────────────────
    スタッフ紹介
  ───────────────────────────────────── */	
.staff-page {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px 60px;
}
 
/* ===== ページタイトル ===== */
.st-hero {
  text-align: center;
  padding: 48px 0 0px;
}
.st-hero__label {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: #1ba1a0;
  background: #e8f7f7;
  padding: 4px 18px;
  border-radius: 20px;
  margin-bottom: 4px;
  font-weight: 600;
}
.entry-content h2.st-hero__title {
  font-size: clamp(24px, 6vw, 34px);
  font-weight: 600;
  color: #1ba1a0;
  margin: 0 0 10px;
}
.st-hero__line {
  width: 48px;
  height: 4px;
  background: linear-gradient(90deg, #1ba1a0, #FA8C6E);
  border-radius: 2px;
  margin: 14px auto 0;
}
 
/* ===== カードラッパー（flex・モバイルファースト：1列） ===== */
.st-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
 
/* ===== カード（モバイル：100%） ===== */
.st-card {
  background: #fff;
  border: 1.5px solid #d0ecea;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(27,161,157,0.09);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  display: flex;
  flex-direction: column;
  flex: 1 1 100%;
  min-width: 0;
}
.st-card:hover {
  box-shadow: 0 10px 36px rgba(27,161,157,0.18);
  transform: translateY(-3px);
}
 
/* ===== カード上部（イラスト＋基本情報） ===== */
.st-card__top {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  padding: 24px 24px 16px;
  border-bottom: 1.5px solid #e8f7f7;
}
 
/* ===== イラストエリア ===== */
.st-card__avatar {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: #e8f7f7;
  overflow: hidden;
  border: 3px solid  #1ba1a0;
  box-shadow: 0 2px 10px rgba(27,161,157,0.2);
}
.st-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
 
/* ===== 名前・役職 ===== */
.st-card__info {
  flex: 1;
  min-width: 0;
}
.st-card__role {
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  color: #1ba1a0;
  background: #e8f7f7;
  padding: 3px 16px;
  border-radius: 16px;
  margin-bottom: 6px;
  letter-spacing: 0.05em;
}
.st-card__name {
  font-weight:600;
  color: #148a87;
  margin: 0;
  line-height: 1.2;
}
 
/* ===== カード下部（詳細情報） ===== */
.st-card__body {
  padding: 18px 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}
 
/* ===== 資格・趣味などの行 ===== */
.st-card__row {
  display: flex;
  flex-direction: row;
  gap: 10px;
  align-items: flex-start;
}
.st-card__row-label {
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: #1ba1a0;
  padding: 2px 10px;
  border-radius: 10px;
  white-space: nowrap;
  margin-top: 3px;
  letter-spacing: 0.04em;
	    width: 104px;
    text-align: center;
}
.st-card__row-val {
  flex: 1;
  color: #444;
  font-size: 16px;
  line-height: 1.75;
}
 
/* ===== メッセージ ===== */
.st-card__msg {
  background: #f0fafa;
  border-left: 4px solid #1ba1a0;
  border-radius: 0 10px 10px 0;
  padding: 14px 16px;
  font-size: 15px;
  color: #333;
  line-height: 1.85;
}
.st-card__msg-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #1ba1a0;
  margin-bottom: 6px;
  letter-spacing: 0.05em;
}


/* ─────────────────────────────────────
    卒業生・利用者の声
  ───────────────────────────────────── */
.ratio .ratio__item {
    border-radius: 24px 24px 0 0;
}
.ys-posts.is-card .ys-posts__thumbnail {margin-bottom:0;}


.voice-single__title{margin-top:1em;}
.ivwrap{margin-bottom:1em;}





/* ─────────────────────────────────────
    プライバシーポリシー
  ───────────────────────────────────── */
.policy-section{padding:40px 1em;}
.policy{margin:40px auto;}
.policy h3{color:#404040;  padding-bottom: 8px;
  position: relative;
  border-bottom: 3px solid #FA8C6E;
  z-index: 0;}

.policy h3::before {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 0;
  background: #1ba1a0;
  width: 50px;
  height: 3px;
  display: block;
  z-index: 1;
}
.mod-text{padding-top:8px;}

.policyintro{font-size:1.1em;}



/* ====================================
   Media Queries
   ==================================== */

 /* ─────────────────────────────────────
   就職までの流れ
  ───────────────────────────────────── */

@media (max-width: 600px) {
  .ep-timeline::before {
    left: 20px;
  }
  .ep-phase {
    padding-left: 50px;
  }
  .ep-phase__icon {
    left: -50px;
    width: 36px;
    height: 36px;
  }
  .ep-phase__icon svg {
    width: 18px;
    height: 18px;
  }
  .ep-flex,
  .ep-flex--reverse {
    flex-direction: column !important;
    align-items: stretch;
  }
	
	
 /* ─────────────────────────────────────
   3つのキーワード
  ───────────────────────────────────── */	
	
 .kw-flex,
  .kw-flex--reverse {
    flex-direction: column !important;
  }
  .kw-flex__photo {
    width: 100%;
    height: 200px;
    order: -1;
  }
  .kw-flex__photo img {
    height: 200px;
    min-height: 200px;
  }
  .kw-flex__body {
    padding: 0 16px 16px;
  }
  .kw-skill-grid {
    grid-template-columns: 1fr;
  }
  .kw-section__icon {
    width: 46px;
    height: 46px;
  }
  .kw-section__icon svg {
    width: 22px;
    height: 22px;
  }
  .kw-nav__item {
    font-size: 14px;
    padding: 9px 16px;
  }
  .kw-item__label {
    font-size: 16px;
  }
	
	
	
}
@media (min-width: 601px) and (max-width: 768px) {
	
/* ─────────────────────────────────────
   就職までの流れ
  ───────────────────────────────────── */
	
	
  .ep-flex__illust {
    width: 90px;
  }
	
 /* ─────────────────────────────────────
   3つのキーワード
  ───────────────────────────────────── */
	
	
.kw-flex__photo {
    width: 160px;
  }	
	
}





/* Tablet (768px ~) */
@media screen and (min-width: 768px) {

	.monly{display:none;}
.ponly{display:block;}
	
.sec-intro.l-sec{padding:60px 0 100px;}	
	
.decoration1::before,
  .decoration1::after {
    display: none;
  }
	.wrap_ip::before,
	.wrap_ip::after,
	.wrap_ip2::before,
	.wrap_ip2::after,
	.wrap_ip3::before,
	.wrap_ip3::after{display: none;}
	
	
.ill-1{position:absolute;bottom: -24px;
    right: 32px;}
.ill-2{position:absolute;bottom: -24px;
    right: 160px;}
.ill-3{position: absolute;
    top: -130px;
    left: 100px;}
.ill-4{position:absolute;top: -2rem;
    right: -2rem;}
.ill-5{position:absolute;bottom: -25px;
    left: 15%;}
.ill-5-2{position:absolute;top: -93px;
    left: 15%;}
.ill-6{position:absolute;bottom: -75px;
	right:17%;}
.ill-6-2{position:absolute;top: -60px;
	right:17%;}
.ill-7{    position: absolute;
    top: -94px;
    right: 0;}
	
.ill-7 img {
    width: 100%;
}	

.rstar-s{position:absolute;    bottom: 50px;
    right: 10%;}
.rstar-l{position:absolute;    top: 50px;
    right: 3%;}

.lstar-s{position:absolute;    bottom: 50px;
    left: 10%;}
.lstar-l{position:absolute;   top: 50px;
    left: 3%;}
	
	
	.c-txt{font-size:1.2rem;margin-top:-40px;}
	
/* ====================================
   Hero
   ==================================== */

.swiper-button-prev,.swiper-button-next { background: #3D62AC;height:80px;width:80px;color:#ffffff;border-radius:50%;}


.swiper-button-prev{margin-left:8.5%!important;}
.swiper-button-next{margin-right:8.5%!important;}

.mySwiper {
   width: 100vw;          /* 画面幅基準 */
  max-width: 2480px;    /* 上限 */
  margin: 0 auto;
}

.mySwiper .swiper-slide {
  transition: 0.4s ease;
  transform: scale(1)!important;
}

.mySwiper .swiper-slide-active {
  transform: scale(1);
}

.mySwiper img {
  width: 100%;
  display: block;
  border-radius: 60px;
}
	
	
	
	.header-type--row1 .global-nav {
    align-items: center;
    margin-left: auto;
    margin-right: 5%;
}
	
	.site-branding .site-title {
    margin-left: 3rem;
}
	
	.l-inner { width: 100%; }
	
    .l-head__btn { display: none; } /* ハンバーガー非表示 */
	
	
/* Intro */
h2.percent{background:#ffffff;font-size:2rem;width:100%;max-width:880px;padding:8px 0;margin:80px auto 32px;text-align:center;}
	
	
	
 .highlight {
    font-size: 3.25rem;line-height: 1.5; padding: 16px 24px;}
	
   .line {
            margin: 10px 0;
        }

	
.message-container {
    margin: 0 auto 100px;
        }	
	
	
.white-card {
	border-radius:2.5em;
    padding: 60px;
}	

h3.tsec_title{
    font-size: 2.5em;margin: auto auto 60px;}
	
.sect_img{margin-right:0.5em;max-width:50px;}
	
	
h3.tsec_title2{
  font-size: 2.5em;
    color: #3d62ac;
    text-align: center;
	margin-bottom: 40px;}	
	

h3.tsec_title3{
	font-size: 2.5em;}
	
h3.tsec_title4{
    font-size: 2.5em;margin: auto auto 60px;}		
	
	
.c-btn {
    width: 340px;
    margin: 60px auto 0px;
}
	
	
.arrowbtn {
    padding: 0.75em 4em 0.75em 2em;
}	
	
.c-btn {
  display: inline-block;
    background: #1ba1a0;
    color: #ffffff;
    width: 280px;
    padding: 16px 48px 16px 16px;
    border-radius: 32px 0 32px 0;
    margin: 48px auto 0px;
	font-size:1.1rem;
}	
	
	
.arrowbtn::before {right:17.5%;}
.arrowbtn::after {
    right: 22%;
}
	
.worriestxt{margin:40px auto 0;text-align:center;font-size:1.1rem;}	
	
 .voice-card {
    width: calc(32% - 12px);
	     flex: auto;
  }	
	
/* カテゴリー */
.voice-card__cat {
    position: absolute;
    top: 24px;
    left: 24px;
    background: #f7941d;
    color: #fff;
    padding: 6px 18px;
    border-radius: 50px;
    font-weight: bold;
    font-size: 18px;
}	
	
	
	.voice-card__body {
    padding: 32px;
}
	
.flow-title {
    font-size: 1.5rem;
}	
	
	
/* Service */
.svc-list { display: flex;text-align: center; 
    justify-content: space-between;margin-bottom: 80px;flex-wrap:wrap;    gap: 32px;}	
	
.svc-item { width: 30%; }	
.svc-icon img { width: 100%; height: 100%;  }	
    
/*flow*/
	
 /* Step Badge (STEP 01 etc.) */
  .step-badge {
    position: absolute;
    top: -25px; /* カードの上に飛び出させる */
    left: 50%;
    transform: translateX(-50%);
    background: #FA8C6E;
    color: var(--c-white);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    line-height: 1.1;
    z-index: 3;
  }
  
  .step-badge span:first-child { font-size: 12px; }
  .step-badge span:last-child { font-size: 28px; }

  /* Badge Tail (吹き出しのしっぽ) */
  .step-badge::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-top: 10px solid #FA8C6E;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
  }	
	
	
	
.check-list li {
  position: relative;
    padding-left: 32px;
    margin-bottom: 8px;
    font-weight: bold;
	font-size:1.5rem;
}	
	
	
    /* WP Nav PC Style */

.global-nav__menu>.-cta.menu-item>a	
	{
      background: #2AA439;
    color: #ffffff;
    padding: 10px 24px;
    border-radius: 2em;
    flex-direction: row;
    align-items: center;
    }

	
.global-nav__menu>.-cta.menu-item>a:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: none;
    content: "";
    transition: width .3s;
}	
	
	
.global-nav__menu>.-cta.menu-item>a	:hover:after {
    width: 0;
}	
	
	
    .slider__item img { height: 500px; }

    .point-grid { grid-template-columns: repeat(3, 1fr); }
    .svc-list { flex-direction:row; }
    
.flow {
    padding: 80px 20px;
  }
	
	

  .step {
    padding: 56px 28px 36px;
    border-width: 3px;
  }

  .step h3 {
    font-size: 22px;
  }
	
    .news-list-wp { grid-template-columns: repeat(2, 1fr); }

    .info-row { display: flex; }
    .info-row dt { width: 30%; margin-bottom: 0; }
    .info-row dd { width: 70%; }
    
    .cta-btns { flex-direction: row; justify-content: center; }
	
	
	.c-deco {
        width: 60px;  /* PCでは少し大きく */
        height: 60px;
    }

    /* PCでの配置微調整（必要に応じて） */
    .c-deco.-pos-tl { left: 5%; top: 40px; }
    .c-deco.-pos-tr { right: 5%; top: 40px; }
    .c-deco.-pos-bl { left: 10%; bottom: 40px; }
    .c-deco.-pos-br { right: 10%; bottom: 40px; }
	
.feature-container {
                flex-direction: row;
                flex-wrap: wrap;
    justify-content: center;
                gap: 16px;
            }

            .feature-card {
                padding: 16px 20px;
                gap: 16px;
				width:48%;
            }

            .number-image {
                width: 60px;
                height: 60px;
            }

            .feature-text {
                font-size: 18px;
            }
	.target-box {
    padding: 40px 48px 32px;
  }

  .target-title {
    font-size: 28px;
	  top: -26px;
  }

  .target-list li {
    font-size: 18px;
  }

  .target-note {
    font-size: 16px;
  }
	
	
	/*FAQ*/
	 .faq-question {
    font-size: 18px;
    padding: 24px 56px 24px 56px;
  }

.faq-answer {
    display: none;
    padding: 16px 24px 16px 56px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.7;
    color: #564A40;
}	
	
	.contact-section {
            padding: 50px 30px;
        }

        .contact-container {
            flex-direction: row; /* 横並び開始 */
            justify-content: space-between;
            align-items: flex-start;
            text-align: left;
            gap: 20px; /* 少し狭めに */
        }

        /* 左側エリア調整 */
        .contact-left {
            width: auto;
            flex: 1;
            text-align: left;
        }

        .contact-title {
            font-size: 1.8rem;
        }

        /* 右側エリア調整 */
        .contact-right {
            width: auto;
            flex: 1; /* 比率調整 */
            align-items: center; 
        }

        .tel-wrapper {
            text-align: center;
        }

        .tel-number {
            font-size: 2rem;
        }

        /* ボタン調整 */
        .contact-btn {
            max-width: 380px; /* タブレットでは少し小さめに */
        }
	
 /* flow*/
    
    .flow-section {
      /* 比率を維持しながら縮小させるためのコンテナ設定 */
      width: 100%;
      /* 縦横比をある程度維持したい場合（必要に応じて調整） */
    }

    /* Grid Layout 
      上段2つ、下段3つを表現するために、
      6カラムのグリッドを作成します。
      上段：3カラム + 3カラム
      下段：2カラム + 2カラム + 2カラム
    */
    .flow-list {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      row-gap: 100px; /* 上下のカードの隙間（ここに曲線が入る） */
      column-gap: 3%; /* 横の隙間 */
    }
	
	.flow-list::before{
    display:none;
  }


    /* 上段の配置 */
    .flow-item:nth-child(1) { grid-column: 1 / 4; }
    .flow-item:nth-child(2) { grid-column: 4 / 7; }

    /* 下段の配置 */
    .flow-item:nth-child(3) { grid-column: 1 / 3; }
    .flow-item:nth-child(4) { grid-column: 3 / 5; }
    .flow-item:nth-child(5) { grid-column: 5 / 7; }

    /* カードの高さ調整 */
    .flow-item {
      height: 100%; /* Flex等で高さを揃える */
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }

    /* 背景の曲線 (The Neck)
      CSS Gridの裏に絶対配置で描画します。
      SVGを使わずCSS borderだけで「S字」を表現します。
    */
    .flow-bg-line {
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1; /* カードの下 */
      pointer-events: none; /* クリックを邪魔しない */
    }

    /* 線1：上段の横棒 */
    .line-top {
      position: absolute;
      /* STEP1の真ん中あたりからSTEP2まで */
      top: 360px; /* カードの高さに合わせて調整 */
      left: 20%;  /* STEP1の中央 */
      width: 60%; /* STEP2の中央まで伸びる */
      height: 10px;
      background-color: #C5E7E7;
      border-radius: 10px;
    }

    /* 線2：下段の横棒 */
    .line-bottom {
      position: absolute;
      /* 下段カードの中央位置 */
      bottom: 270px; /* 下から位置調整 */
      left: 16%; /* STEP3の中央 */
      width: 68%; /* STEP5の中央まで */
      height: 10px;
      background-color: #C5E7E7;
      border-radius: 10px;
    }

    /* 線3：つなぎのS字カーブ 
       解説: 
       STEP2(右上)からSTEP3(左下)へ繋ぐ曲線。
       CSSの border-radius を使ったボックスを2つ組み合わせてS字を作ります。
    */
    .line-curve {
      position: absolute;
      /* 上段の線の高さから開始 */
      top: 130px; 
      /* STEP2の中央より少し右からスタートして折り返すイメージだと位置調整が難しいので、
         「STEP2とSTEP3の間」に配置するボックスと考えます */
      right: 20%; /* STEP2の中央位置 */
      
      /* 下段の線の高さまでの距離 */
      height: calc(100% - 130px - 120px + var(--line-thickness)); 
      
      /* STEP2からSTEP3への横幅の移動距離 */
      width: 64%; /* 右20%地点から左16%地点までの距離 */
      
      /* デバッグ用に色をつけると分かりやすいですが、
         ここでは透明な背景に「右枠」と「下枠」をつけて角丸にします...
         いや、S字なので2段階のカーブが必要です。
      */
    }

    /* S字の上半分（STEP2から下へ降りるカーブ） */
    .curve-upper {
      position: absolute;
      top: 130px;
      right: 20%; /* STEP2 center */
      width: 100px; /* カーブの緩やかさ */
      height: 50%;  /* 中間地点まで */
      border-top: 10px solid #C5E7E7;
      border-right: 10px solid #C5E7E7;
      border-top-right-radius: 40px;
      box-sizing: content-box; /* border幅を含めない */
      /* 隠すハック: 上の線と重なる部分の微調整 */
      margin-top: -15px; 
    }

    /* これだと「Γ」型になるだけです。
       画像のような「STEP2から出て、STEP3へ潜り込む」S字（逆S字）を作るには、
       大きなボックスのborderを使うのが一番きれいに縮小します。
    */

    /* 再構築：S字コネクター */
    .s-connector {
      position: absolute;
      z-index: 1;
      
      /* 上段の線(top:130px)から、下段の線(bottom:120px)の間を埋める */
      top: 196px; /* 線の太さ半分調整 */
      bottom: 107px;
      
      /* STEP2の中心からSTEP3の中心まで */
      right: 20%; 
      left: 16.6%; /* STEP3の中心(Gridの1/6) */
      
      /* ここで背景色などは指定せず、疑似要素でカーブを描画 */
    }

    /* 右側のカーブ（STEP2から降りる） */
    .s-connector::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      width: 50%; /* 全幅の半分 */
      height: 50%; /* 全高の半分 */
      border-right: 10px solid #C5E7E7;
      border-bottom: 10px solid #C5E7E7;
      border-bottom-right-radius: 60px; /* 丸み */
      box-sizing: border-box;
    }

    /* 左側のカーブ（STEP3へ繋がる） */
    .s-connector::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 40px;
      width: 50%;
      height: 51%; /* 1px重ねる */
      border-left: 10px solid #C5E7E7;
      border-top: 10px solid #C5E7E7;
      border-top-left-radius: 60px; /* 丸み */
      box-sizing: border-box;
      
      /* 位置合わせ: 上のボックスのborder-bottomと繋げるため */
      transform: translateY(var(--line-thickness)); 
      /* いや、border-boxなので枠線は内側。
         論理的に、右下カーブの「底辺」と、左上カーブの「上辺」を接続する必要があります。
      */
      
      /* シンプル修正： */
      top: 50%;
      bottom: auto;
      border-top: 10px solid #C5E7E7;
      border-left: 10px solid #C5E7E7;
      border-top-left-radius: 60px;
      transform: translateX(1px);
		 transform: translateY(-10px);
		/* 線の太さ分重ねる */
	  }
	.btn-text {
    flex-grow: 1;
    text-align:left;
}
	
	
.footer-c-wrap {
    display: flex;
    justify-content: space-between;
    padding: 0 1em;
    flex-direction: row;
    text-align: center;
    font-size: 14px;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
}	
	
.title-flex {
    margin-bottom: 40px;
	justify-content:flex-start;
}
	
.panel-group {
    margin-top:0px;
}	
	
.faq-wrap {
	margin: 40px auto 0px;	}
	
	
.btn-icon-mail {margin-right: 10px; }	
	
/*固定ページ*/
 /* ─────────────────────────────────────
    シェイクハンズの強み
  ───────────────────────────────────── */	
	
.pftextbox{gap:40px;flex-direction: row;}
.pfimg{width:35%;}
.pftxt{width: 60%;    align-self: center;}	
	
 /* ─────────────────────────────────────
    サービスご利用までの流れ
  ───────────────────────────────────── */	
	
	.pflow-item {
    padding: 40px;
    text-align: justify;
		flex-direction:row;
gap:70px
}
	
	.flowcontent{width:45%;    align-self: center;}	
	.pflowimg{width:45%;}	
	
  .pstep-badge {
    position: absolute;
    top: -35px;
    left:15%;
    transform: translateX(-50%);
    background: #FA8C6E;
    color: var(--c-white);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    line-height: 1.1;
    z-index: 3;
  }
	
/*お問い合わせ*/
	.CF7_table th{
	width:30%;
	background-color:#ebedf5;
	}
	.CF7_table tr, .CF7_table td, .CF7_table th {
   display: -webkit-box;
}
	
	
 /* ─────────────────────────────────────
    1日の流れ
  ───────────────────────────────────── */

    .timeline {
      max-width: 860px;
      margin: 0 auto;
      padding: 0 24px 0;
    }

    .row { gap: 20px; margin-bottom: 28px; }
    .row:not(:last-child)::after { left: 27px; top: 108px; bottom: -28px; }

    .time-col { flex: 0 0 56px; }
    .time-label { font-size: 16px; }

    .daycard {
     padding: 32px 24px 32px 24px;
    gap: 16px;
    transition: transform .18s, box-shadow .18s;
    }
    .daycard:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }
    .daycard h2 { font-size:24px; margin-bottom: 6px; }
    .daycard p  {     font-size: 16px;
    text-align: justify; }

    .dayillust {
      flex: 0 0 100px;
      width: 100px; height: 100px;
      border-radius: 14px;
    }
    .dayillust svg { width: 88px; height: 88px; }

    .break-row { margin-left: 32px; }

	
	  .entry-content h3.pflow-title {
   color: #1BA1A0;
    font-size: 1.75rem;
    font-weight: 600;
		  margin-bottom:0.5em;
  }
 
	
 /* ─────────────────────────────────────
   スタッフ紹介
  ───────────────────────────────────── */	
	
	 .st-wrap {
        gap: 32px 16px;
  }
  .st-card {
      flex: 1 1 calc(50% - 32px);
    max-width: 48%;
  }
  .st-card__avatar {
    width: 100px;
    height: 100px;
  }
	

}
	
 /* 画面幅がかなり狭いPCでの調整 */
  @media (min-width: 768px) and (max-width: 1024px) {
    .flow-title { font-size: 1.1rem; }
	  
	  
	  	
 /* ─────────────────────────────────────
   スタッフ紹介
  ───────────────────────────────────── */	
	 .st-wrap {
    gap: 24px;
  }
  .st-card {
    flex: 1 1 calc(50% - 12px);
    max-width: calc(50% - 12px);
  }
  .st-card__top {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 28px 20px 16px;
  }
  .st-card__info {
    text-align: center;
  }
  .st-card__avatar {
    width: 110px;
    height: 110px;
  }
	  
	  
  }
	
	

/* Small PC (1024px ~) */
@media screen and (min-width: 1024px) {
	.site-branding .site-title {
    margin-left: 5rem;
}
    .l-inner { max-width:960px; }
		.l-inner.-sm {
    max-width: 960px;
}
    .sec-intro .intro-card { display: flex; align-items: center; text-align: left; gap: 40px; }
    .intro-img { margin-top: 0; flex: 1; }
    .intro-card > *:not(.intro-img) { flex: 1; }
	
            .feature-card {
                flex: 1;
                min-width: 280px;
            }
	
	.contact-section {
            padding: 60px 40px;
        }
	
		.contact-container{
            max-width: 960px;
            margin: 0 auto;
        }

        .contact-title {
            font-size: 2.25rem; /* フルサイズ */
        }

        .contact-desc {
        font-size: 1.3rem;
    margin-bottom: 12px;
        }

        .tel-number {
            font-size: 3.25rem; /* インパクト大 */
        }

        .tel-label {
            font-size: 3rem;
        }

        .contact-btn {
            max-width: 440px;
            padding: 16px 24px;
            font-size: 1.25rem;
        }

        .btn-arrow-circle {
            width: 40px;
            height: 40px;
            font-size: 1.3rem;
        }
        
        .btn-icon-mail {
            font-size: 2rem;
        }
	
	
	 /* ─────────────────────────────────────
   スタッフ紹介
  ───────────────────────────────────── */	
 .st-wrap {
      gap: 32px 16px;
  }
  .st-card__top {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 32px 24px 18px;
  }
  .st-card__info {
    text-align: center;
  }
  .st-card__avatar {
    width: 120px;
    height: 120px;
  }
  .st-card__name {
    font-size: 22px;
  }
	
}

/* Large PC (1280px ~) */
@media screen and (min-width: 1280px) {
    .l-inner { max-width: 1200px; }
    /* 大きな画面での余白調整など */
    .l-sec { padding: 100px 0; }

        /* 余白に余裕があるので、要素間の距離を少し広げて優雅に */
        .contact-container {
            gap: 50px; 
        }
        
        /* 画面がかなり広いので、視認性を高める微調整 */
        .contact-title {
            font-size: 2.5rem;
        }
	
	
		 /* ─────────────────────────────────────
   スタッフ紹介
  ───────────────────────────────────── */	
	 .staff-page {
    padding: 0 32px 80px;
  }
  .st-wrap {
       gap: 32px 16px;
  }
 
  .st-card__top {
    padding: 36px 28px 20px;
  }
  .st-card__body {
    padding: 20px 28px 26px;
  }
  .st-card__avatar {
    width: 130px;
    height: 130px;
  }
	
}