* { margin: 0; }
html { font-size: calc(100vw / 192 ); } /* remの基準値 */
body {
    margin: 0 auto;
    padding: 0;
    font-family: 'Frank Ruhl Libre' , 'Noto Sans JP0', sans-serif;
    color: #26272A;
}
/* セクションタイトル */
h3 { 
    color: #EB5C01;
    font-size: 3.8rem;
    font-weight: 400;
 }
 h4 {
    font-size: 2.2rem;
    font-weight: bold;
    color: #EB5C01;
 }
p {
    font-size: 1.8rem;
    font-weight: normal;
}
.wrapper { margin: 0 auto; }
.small { font-size: 0.7em; }
/*******************************/
/**********全ページ共通**********/
/*******************************/
.sp-only { display: none; }
.pc-only.inline { display: inline; }
.pc-only.block { display: block; }

/******* メニュー *******/
/* ヘッダーメニュー */
.header .nav {
    display: block;
    width: calc((100vw - 50rem) / 2);
    margin: 0 auto;
}
/* バーガーメニュー用 */
.header .nav.mobile {
    display: flex;
    align-items: center;
    justify-items: center;
    position: fixed;
    top: -100%;    /* 画面外へ */
    width: 100vw;
    transition: 0.7s linear;
}
.header .nav ul { 
    margin: 0 auto; 
    margin-top: 7vh;
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    gap: 10px;
    font-size: 20px;
    color: #EB5C01;
}
.header .nav li { 
    width: 150px;
    height: 32px;
    list-style: none; 
}
.header .nav a {
    position: relative;
    color: #EB5C01;
    text-decoration: none;
    transition: 0.3s;
}
.header .nav a::after { background-color: #EB5C01; }
/* バーガーメニュー */
.header .nav .header-mobile-nav { display: none; }
.header .mobile-menu-btn-wrapper { 
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease-in;
    display: block;
    position: fixed;
    top: 10vh ;
    right: 5rem;
    z-index: 100;
}
/* 一定の位置に来たら表示(PC) */
.header .mobile-menu-btn-wrapper.show {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.7s ease-ou;
}
/* バーガーメニューボタン */
.header .mobile-menu-btn {
    position: relative;
    display: inline-block;
    width: 5.25rem;
    height: 3.3rem;
    z-index: 100;
    cursor: pointer;
}
/* バーガーメニューボタンを作る　*/
.header .mobile-menu-btn span::before, 
.header .mobile-menu-btn span::after {
    content: '';
    display: block;
    height: 0.75rem;
    width: 5.25rem;
    border-radius: 5.25px;
    background: #EB5C01;
    transition: 0.5s;
    position: absolute; 
}
.header .mobile-menu-btn span::before { top: 0; }
.header .mobile-menu-btn span::after { bottom: 0; }
/* バーガーメニューボタンが押されたら✕に */
.header #chk_menu:checked ~ .mobile-menu-btn-wrapper .mobile-menu-btn span::before {
   top: 50%;
   transform: rotate(135deg);
}
.header #chk_menu:checked ~ .mobile-menu-btn-wrapper .mobile-menu-btn span::after {
    top:50%;
    transform: rotate(45deg);
}
/* バーガーメニューボタンが押されたらメニューを表示 */
.header #chk_menu:checked ~ .nav {   
    top: 0;
    position: fixed;
    width: 100vw;
    height: 100vh;
    background-color: #F1EFDF;
    z-index: 99;
    transition: 0.5s ease-out;
}
/****** フッター ******/
.footter {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    width: 100%;
    max-height: 65px;
    aspect-ratio: 29.5;
    padding-left: 20rem;
    padding-right: 10rem;
    background-color: #EB5C01;
    color: #26272A;
}
/*** フッターナビ ***/
.footter .nav {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    font-size: 2.0rem;
}
.footter .nav a {
    font-size: 1.8rem;
    font-weight: bold;
    color: #26272A;
    text-decoration: none;
    text-wrap: nowrap;
}
.footter .nav a::after { background-color: #26272A; } /* 下線 */
.footter .nav li {
    list-style: none;
    display: flex;
    justify-items: center;
    align-items: center ;
}
.footter .nav li::after {
    content: '/';
    font-size: 1.8rem;
    margin-left: 1.0rem;
    margin-right: 1.0rem;
}
.footter .nav li:last-child::after {
    content: '';
}
/* 特商法、プライバシーポリシー */
.footter .footter-law {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    max-width: 290px;
    margin-left: auto;
    margin-right: 0;
}
.footter .footter-law li {
    list-style: none;
    display: flex;
    justify-items: center;
    align-items: center ;
}
.footter .footter-law li::after {
    content: '|';
    font-size: 1.4rem;
    color: #585A61;
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}
.footter .footter-law li:last-child::after {
    content: '';
}
.footter .footter-law a {
    font-size: 1.4rem;
    color: #585A61;
    text-decoration: none;
}
/* コピーライト */
.footter .copyright {
    margin-left: auto;
    margin-right: 0;
    font-size: 1.4rem;
    text-wrap: nowrap;
}
/* ヘッダー／フッター共通 */
.nav a { position: relative ; }
.nav a::after { /* 下線 */
    content: '';
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 100%;
    height: 1px;
    transform: scale(0,1);  /* 線の長さを0にして表示させない */
    transform-origin: left top;
    transition: transform 0.3s;
}
.nav a:hover::after { 
    transform: scale(1,1); /* ホバー時に下線を表示 */
} 
.me { opacity: 0.5; }
/*******************************/
/**********トップページ**********/
/*******************************/
/***** ヘッダー *****/
.header {
    width: 100vw;
    height: 100dvh;
    margin: 0 auto;
}
.header .wrapper {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0;
}
/*** タイトル ***/
.header .title {
    width: calc((100vw - 50rem) / 2);
    margin: 0 auto;
    margin-top: 28vh;
    text-align: center;
    font-family: "Zen Maru Gothic", serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
    font-size: 20px;
    line-height: 2;
}
/*** ソースコード ***/
.eye-chatch {
    max-width: 500px;
    width: 50rem;
    height: 84vh;
    margin: 0%;
    padding: 2.8rem;
    background-color: #EB5C01;
    overflow: hidden;
}
.eye-chatch pre {
    font-family: "pf-videotext", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.8rem;
    color:  #F1EFDF;
    /* 文字を折り返す */
    white-space: pre-wrap;
    word-wrap: break-word;
}
/*** モックアップ ***/
.header .image {
    position: absolute;
    top: calc(100dvh + 6px);
    left: 50%;
    transform: translateY(-100%);
}
.header .image img { width: 35vw; }

/**** コンテンツ *****/
#top-page {
    width: 100vw;
    margin: 0 auto;
}
/*** 共通 ***/
/** セクション **/
#top-page section { 
    padding-top: 6.25%;
    padding-bottom: 6.25%;
}
#top-page section:nth-child(odd) { background-color: #F1EFDF; }
#top-page .section-wrapper { 
    max-width: 1420px;
    width: 74vw; 
    margin: 0 auto;
}
/** 小見出し **/
#top-page .content-title {
    margin-left: -13%;
    margin-bottom: 13%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
#top-page .content-title::before {
    border-top: #EB5C01 3px solid ;
    content: '';
    width: 14.5%;
    margin-right: 4.6rem;
}
/** Moreボタン **/
#top-page .btn_more {
display: none;  /* 当面非表示 */
    width: 100%;
    /* 配置:右寄せ */
    text-align: left;
    margin-top: 8rem;
    margin-left: calc((74vw - 112rem)/2);
}
#top-page .btn_more a { 
    color: #EB5C01; 
    font-size: 1.6rem;
    text-decoration: none;
    line-height: 1.5;
    position: relative;
    display: inline-block;
    border-bottom: #EB5C01 1px solid;
    padding-right: 3.5rem;
}
/* before:横線／after:斜め線 */
#top-page .btn_more a::before,
#top-page .btn_more a::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 1px;
    background-color: #EB5C01;
    transition: 0.2s all;
}
#top-page .btn_more a::before { 
    right: 0.5rem;
    width: 1.6rem; 
}
#top-page .btn_more a::after {
    width: 0.6rem;
    transform-origin: right center;
    transform: translate(2.4rem, 0px) rotate(45deg);
}
/* ホバー時、矢印が動く */
#top-page .btn_more a:hover:before { right: -0.8rem; }
#top-page .btn_more a:hover:after { transform: translate(3.7rem, 0px) rotate(45deg); }
/******* CTAボタン *******/
#top-page .btn_cta {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 30rem;
    height: 8.7rem;
    margin: 0 auto;
    border: #19BE4E 2px solid;
    border-radius: 20rem;
    color: #19BE4E;
    text-decoration: none;
}
#top-page .btn_cta .text {
    position: relative;
    margin: 0;
    text-align: center;
    font-weight: 900;
    text-shadow: 5rem 5rem 5rem 5rem rgba(59, 60, 63, 1);
}
#top-page .btn_cta .text::after {
    content: '>';
    position: absolute;
    top: 50%;
    right: -4.5rem;
    transform: translateY(-50%);
    font-size: 3rem;
    font-weight: 400;
    transition: 0.3s;
}
#top-page .btn_cta:hover > .text:after {
    right: -5.5rem;
}
/******* Works *******/
#top-works .flex-wrapper{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
/* 個々のWork */
#top-works .work-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 450px;
    width: 33.6%;
    padding-top: 3%;
    padding-bottom: 3%;
}
/* サムネイル */
#top-works .work-wrapper .image {
    width: 88.9%;
    aspect-ratio: 1;
    margin-bottom: 0;
    box-shadow: 0 0 0 1px rgba(88, 90, 73, 0.3);
    overflow: hidden;
}
#top-works .work-wrapper .image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease, border 0.3s ease;
    transform-origin: center center; /* 拡大の起点 */
}
/*** 各案件の情報 ***/
#top-works .work-wrapper .supplement {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10%;
    height: 5%;
    width: 88.9%;
    margin-top: 3%;
    margin-bottom: 21%;
}
/* 左: LP / Website */
#top-works .work-wrapper .label {
    padding:1% 5%;
    background-color: #26272A;
    border-radius: 50px;
    font-family: "pf-videotext", sans-serif;    
    color: #F1EFDF;
    font-size: 1.4rem;
    font-weight: 200;
}
#top-works .work-wrapper .label::before { 
    content: '#';
    font-family: 'Frank Ruhl Libre' , 'Noto Sans JP0', sans-serif;
    font-size: 1.4rem;
    margin-right: 0.2rem; 
}
/* 中: 担当(coding、designなど） */
#top-works .work-wrapper p {
    font-size: 1.4rem;
    color: rgba(38, 39, 46,  0.7);
    line-height: 1.2; 
    flex: 1;
    margin: 0;
    word-break: break-word;
} 
/* 右: 拡大用ルーペ */
#top-works .work-wrapper .supplement .loupe {
    width: 7%;
    flex-shrink: 0; /* サイズを変更させない */
}
#top-works .work-wrapper .supplement .loupe a, 
#top-works .work-wrapper .supplement .loupe img { 
    display: block;
    width: 100%;
    height: auto;
    overflow: hidden;
}
/***　モーダル画面 ***/
#top-works .modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	text-align: center;
    vertical-align: middle;
	background: rgba(38,39,42,0.7);
	overflow: auto;
	opacity: 0;
	visibility: hidden;         /* jQueryでactiveクラスがつくまで非表示 */
	transition: 0.3s;
    z-index: 999;
}
/*モーダル本体に「active」クラスが付与 --> モーダルを表示*/
#top-works .modal-overlay.active {
	opacity: 1;
	visibility: visible;
}
/* 表示する画像 */
.modal-content img {
    max-width: 100%;
    width: 70vw;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
}
/*モーダルを閉じるボタンの指定*/
.btn_close {
    display: block;
	position: fixed;
    top: 3rem;
    left: 94vw;
    width: 5.5rem;
    height: auto;
	cursor: pointer;
}
/* 案件名 */
#top-works .work-wrapper h4 {
    font-size: 2.2rem;
    font-weight: bold;
    color: #EB5C01;
} 
#top-works .work-wrapper a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #EB5C01;
    width: 100%;
}
#top-works .work-wrapper a:hover { text-decoration: underline;  }

/******* Service *******/
#top_service .service-wrapper { padding-left: 5rem; }
/*** CTA ***/
#top_service .btn_cta { margin-top: 8rem; }
/*** サービス名 ***/
#top_service .service-wrapper h4 { 
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 3.6rem;
}
#top_service .service-wrapper h4 img {
    background-color: #F1EFDF;
    border: #fff 1px solid; 
    height: 8rem;
    width: 8rem;
    border-radius: 50%;
    padding: 0.5rem;
}
/* サービス説明 */
#top_service p { 
    margin-left: 3.2rem; 
} 
/* Figma、Photoshop、illustratorのアイコン */
#top_service p .icon {
    height: 2.5rem;
    width: auto;
    vertical-align: middle;
    margin-right: 0.3rem;
}
/* 個々のサービス */
#top_service ul {
    display: flex;
    flex-direction: row;
}
#top_service li {
    list-style: none;
    font-size: 1.8rem;
}
#top_service li .strong { 
    font-size: 2.4rem;
    font-weight: bold;
}
/* サービスの大枠 */
#top_service .main-ul { 
    flex-wrap: wrap;
    margin-top: 3.6rem; 
    margin-left: 2.8rem;
}
#top_service .main-ul .title { 
    margin-right: 6rem;
    font-size: 2.2rem;
    font-weight: bold;
    width: 10%;
}
#top_service .main-ul .description {
    width: 81%;
}
/* ・・・ */
#top_service .main-ul .description .dot {
    display: inline;
    margin-right: 2.2rem;
}
#top_service .main-ul .title::before {
    content: '●';
    font-size: 2rem;
    color: #EB5C01;
    margin-right: 0.7rem;
}
/*** サービス概要 ***/
#top_service .detail { 
    margin-top: 1.8rem ; 
    margin-left: 2rem;
}
#top_service .detail .service-name {    /* サービス名 */
    display: inline-block;
    width: 34rem;
}
#top_service .detail .service-name::before {
    content: '●';
    font-size: 1.2rem;
    margin-right: 0.5rem;
}
#top_service .detail .value {   /* 価格 */
    margin-left: 9.5rem;
}
#top_service .detail .value::after {
    content: '/';
    font-size: 2rem;
    margin: 0 2rem;
}
#top_service .detail .deadline { 
    margin-left: 0; 
    margin-bottom: 0;
}
#top_service .detail .deadline::before { content: ''; }
#top_service .detail .deadline::after { content: ''; }
/*** 納品までの流れ ***/
#service-flow { 
    margin-top: 10rem; 
}
#top_service .flow-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-items: center;
    align-items: center;
    gap: 7.5rem;
    width: 115rem;
    margin: 0 auto;
    margin-top: 7rem;
}
/* 順番 */
#top_service .flow  .number {
    position: absolute;
    top: 0;
    left: calc( 50% - 8rem / 2 );
    top: calc( -4.5rem / 2 );
    z-index: 10;
    width: 8rem;
    height: 4.5rem;
    border-radius: 50%;
    background-color: #EB5C01;
    font-size: 2.6rem;
    color: #26272A;
    text-align: center;
    line-height: 4.5rem;
    transform: rotate(-15deg);
}
/*** 本体 ***/
#top_service .flow { position: relative;}
/* 矢印 */
#top_service .arrow {
    width: 3rem;
    height: 3rem;
    border-right: #EB5C01 1px solid;
    border-top: #EB5C01 1px solid;
    transform-origin: center 0 ;
    transform: rotate(45deg);
}
#top_service .flow .flow-detail {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 26rem;
    aspect-ratio: 1 / 1.2; 
    border-radius: 5.5rem;
    background-color: #3B3C3F;
    color: #fff;
    padding-top: 5.5rem;
}
#top_service .flow .flow-detail div { width: 80%; }
#top_service .flow .flow-detail .flow-title { height: 10rem; }
#top_service .flow .flow-detail h6 {
    text-align: center;
    font-size: 2.6rem;
}
#top_service .flow .flow-detail p { font-size: 1.8rem; }
#top_service .flow .flow-detail p a { 
    color: #06C755;
    text-decoration: none; 
}
/******* アニメーション *******/
#top_animation .animation_list ul {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 2.1rem;  
}
#top_animation .animation_list li {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
}
#top_animation .animation_list .anime_thumbnail {
    width: 25rem;
    height: 17.5rem;
    background-color: #fff;
    box-shadow: 0.5em 0.5em 1.5em 1.0em rgba(37, 37, 35, 0.1);
}
#top_animation .animation_list .anime_tag {
    color: #96969A;
    font-size: 12px;
}
/******* 私について *******/
/*** 名刺 ***/
#top_about-me .card {
    position: relative;
    margin: 0 auto;
    width: 112rem;
    aspect-ratio: 1.67;
    padding: 8rem 0 6.4rem 14rem;
    background-color: #FCFCF9;
    box-shadow: 0 0 0.7rem 0.7rem rgba(12, 12, 10, 0.05); 
}
/* 名前 */
#top_about-me .card .name {
    font-size: 2.6rem; 
    letter-spacing: 0.3em;
}
#top_about-me .card .family-name {    
    position: relative; 
}
#top_about-me .card .personal-name { 
    position: relative;
    margin-left: 2rem; 
}
/* ルビ */
#top_about-me .card .family-name::after, .personal-name::after {
    position: absolute;
    top: -3.1rem;
    left: 45%;
    transform: translateX(-50%);
    font-size: 0.8em;
    letter-spacing: 0.15rem;
}
#top_about-me .card .family-name::after { content: 'Ikeda'; }
#top_about-me .card .personal-name::after { content: 'Miki'; }
/* 自己紹介 */
#top_about-me .card .introduction {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    margin-top: 6rem;
    font-size: 1.8rem;
}
#top_about-me .card .introduction p {
    font-size: 1.8rem;
}
/* こだわり */
#top_about-me .card .introduction .pride p { margin: 1.6rem 0; }
#top_about-me .card .introduction .pride li {
    display: flex;
    align-items: center; 
    list-style: none; 
    margin-bottom: 0.3rem;
    line-height: 1.5;
}
#top_about-me .card .introduction .pride ul li::before { 
    content: '';
    background-image: url("../img/check_final.svg");
    display: inline-block;
    width: 2rem;
    height: 2rem; 
    background-size: contain;
    background-repeat: no-repeat;
    margin-right: 1rem;
}
/* お問い合わせ */
#top_about-me .card .introduction .contact {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-items: center;
    justify-content: start;
    gap: 4.5%;
}
/* CTA */
#top_about-me .card .introduction .message {
    margin-top: 1.6rem;
    margin-right: 1.8%;
    font-weight: bold;
}
/* LINE＆SNS */
#top_about-me .card .introduction .contact .contact-bottom {
    display: flex;
    gap: 3.5rem;
}
#top_about-me .card .introduction .contact .title {
    width: 100%;
    padding: 0.1rem 0;
    margin-bottom: 1rem;
    text-align: center;
    background-color: #26272A;
    border-radius: 5px;
    color: #FCFCF9;
}
#top_about-me .card .introduction .contact img { 
    width: 8rem;
    height: 8rem;
    transition: transform 0.3s;
}
#top_about-me .card .introduction .contact .line_qr { display: block; }    /* LINE QRコード：PC&tb */
#top_about-me .card .introduction .contact .line_logo { display: none; }   /* LINEへのリンク：sqのみ */
#top_about-me .card .introduction .contact .sns ul {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}
#top_about-me .card .introduction .contact .sns ul li { list-style: none; }
#top_about-me .card .introduction .contact .contact-bottom a img:hover {
    transform: scale(1.2);
}
/* 写真 */
#top_about-me .card .self-portrait {   
    position: absolute;
    top: 7rem;
    right: 10.5rem;
}
#top_about-me .card .self-portrait img {
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
}
/*** コンタクト ***/
#top_about-me .contact_wrapper {
    width: 112rem;
    margin: 0 auto;
}
#top_about-me .contact_wrapper h4 { 
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-top: 9.5rem;
    margin-bottom: 3.6rem; 
    text-align: left;
}
#top_about-me .contact_wrapper h4::before {
    content: '＃';
}
#top_about-me .contact_wrapper h5 {
    margin-bottom: 3.5rem;
    font-size: 2rem;
    text-align: center;
}
#top-page .contact_wrapper { display: block; }