/*==========================================================
 TK BASE Design
 style2.css

 01 Reset
 02 Root
 03 Common
 04 Header

==========================================================*/


/*==========================================================
 01 Reset
==========================================================*/

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:
    "Noto Sans JP",
    sans-serif;

    color:#222;
    background:#FFF2E9;
    line-height:1.7;
    overflow-x:hidden;
}

img{
    display:block;
    max-width:100%;
    height:auto;
}

a{
    color:inherit;
    text-decoration:none;
}

ul{
    list-style:none;
}


/*==========================================================
 02 Root
==========================================================*/

:root{

    /* Brand Color */

    --color-main:#E96319;
    --color-bg:#FFF2E9;
    --color-white:#fcfbf9;
    --color-black:#242524;
    --color-gray:#5f594e;

    /* Layout */

    --container:1100px;

    /* Space */

    --space-xs:8px;
    --space-s:16px;
    --space-m:32px;
    --space-l:64px;
    --space-xl:120px;

    /* Radius */

    --radius:12px;

    /* Shadow */

    --shadow:0 10px 30px rgba(0,0,0,.08);

}


/*==========================================================
 03 Common
==========================================================*/

/* 共通横幅 */

.container{

    width:min(var(--container),90%);
    margin-inline:auto;

}


/* セクション共通余白 */

.section{

    padding:90px 0;

}


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

.site-header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    background:#fff;

    border-bottom:1px solid rgba(0,0,0,.06);

    z-index:999;

}

.mobile-nav{

    display:none;

}

/*==========================================================
 Hamburger
==========================================================*/

.hamburger{

    display:none;

    width:48px;

    height:48px;

    background:none;

    border:none;

    cursor:pointer;

    padding:0;

}

.hamburger span{

    display:block;

    width:28px;

    height:2px;

    margin:6px auto;

    background:var(--color-main);

}


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

.site-header .container{

    display:flex;

    align-items:center;

    justify-content:space-between;

    height:90px;

}


/*==========================================================
 Logo
==========================================================*/

.site-logo{

    display:flex;

    align-items:center;

    gap:12px;

    flex-shrink:0;

}


/* ▼マサムネロゴ */

.site-logo img{

    width:58px;

    height:auto;

}


/*==========================================================
 Logo Text
==========================================================*/

.site-logo__text{

    display:flex;

    flex-direction:column;

    line-height:1;

}


/* TK BASE */

.site-logo__title{

    font-family:"Anton",sans-serif;

    font-size:2rem;

    letter-spacing:.02em;

}



/*==========================================================
 Navigation
==========================================================*/

.site-nav{

    margin-left:auto;

    margin-right:40px;

}


.site-nav__list{

    display:flex;

    align-items:center;

    gap:34px;

}


.site-nav__list a{

    font-weight:700;

    transition:.3s;

}


.site-nav__list a:hover{

    color:var(--color-main);

}


/*==========================================================
 Contact Button
==========================================================*/

.header-contact-btn{

    display:flex;

    align-items:center;

    justify-content:center;

    height:90px;

    padding:0 28px;

    background:#222;

    color:#fff;

    font-weight:700;

    transition:.3s;

}


.header-contact-btn:hover{

    background:var(--color-main);

}








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

.hero{

    min-height:85vh;

     padding:120px 0 70px;

    display:flex;
    align-items:center;

    background:var(--color-bg);

    overflow:hidden;

    

}


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

.hero__container{

    display:grid;

    grid-template-columns:60% 40%;

    align-items:center;

    gap:40px;

}


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

.hero__content{

    position:relative;

    z-index:2;

}


/* メインコピー */

.hero__title{

    font-size:clamp(3rem,4.8vw,4.8rem);

    font-weight:900;

    line-height:1.15;

    letter-spacing:-0.03em;

    margin-bottom:32px;

    max-width:600px;
}


/* サブコピー */

.hero__text{

    font-size:1.15rem;

    color:#555;

    line-height:2;

    margin-bottom:48px;

}

.hero__line{
    display:inline-block;
}

.hero__line--1{
    white-space:nowrap;
}

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

.hero__buttons{

    display:flex;

    gap:20px;

}


/* 共通 */

.btn{

    display:inline-flex;

    justify-content:center;
    align-items:center;

    padding:18px 34px;

    border-radius:12px;

    font-weight:700;

    transition:.35s;

}


/* メイン */

.btn-primary{

    background:var(--color-main);

    color:#fff;

}


/* サブ */

.btn-secondary{

    border:2px solid var(--color-black);

}


/* Hover */

.btn:hover{

    transform:translateY(-4px);

    box-shadow:var(--shadow);

}


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

.hero__image{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

}


/* ▼マサムネ */

.hero__logo{

    width:min(520px,100%);

    position:relative;

    z-index:2;

}


/*==========================================================
 Background Text
==========================================================*/

.hero__background-text{

    position:absolute;

    right:0;

    bottom:20px;

    font-family:"Anton";

    font-size:clamp(6rem,11vw,10rem);

    color:#000;

    opacity:.05;

    line-height:1;

    white-space:nowrap;

    pointer-events:none;

}


/*==========================================================
 First Guide
==========================================================*/

.first-guide{

    background:#ffffff;

}


/*==========================================================
 First Guide - Section Title
==========================================================*/

.first-guide__title{

    text-align:center;

    margin-bottom:60px;

}

.first-guide__en{

    display:block;

    margin-bottom:12px;

    font-size:0.95rem;

    font-weight:700;

    letter-spacing:.18em;

    color:var(--color-main);

}

.first-guide__jp{

    margin-bottom:24px;

    font-size:clamp(2rem,3vw,2.8rem);

    font-weight:700;

    line-height:1.4;

}

.first-guide__text{

    font-size:1rem;

    line-height:2;

    color:#666;

}


/*==========================================================
 First Guide - Guide Slider
==========================================================*/

.guide-slider{

    margin:60px auto;
    overflow:visible;

}

.guide-slider .swiper-wrapper{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:28px;

}

/*==========================================================
 First Guide - Guide Card
==========================================================*/

.guide-card.swiper-slide{

    display:flex ;
    flex-direction:column;
    align-items:center;

    text-align:center;

    padding:36px 24px;

    background:#f8f3ef;

    border-radius:16px;

    text-decoration:none;
    color:inherit;

    transition:.35s ease;

}

.guide-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 36px rgba(0,0,0,.08);

}


/*==========================================================
 Guide Card - Icon
==========================================================*/

.guide-card__icon{

    width:82px;
    height:82px;

    display:block;

    margin-bottom:24px;

    object-fit:contain;

}


/*==========================================================
 Guide Card - Title
==========================================================*/

.guide-card__title{

    display:flex;

    align-items:center;
    justify-content:center;

    min-height:72px;

    margin-bottom:20px;

    font-size:1.5rem;

    font-weight:700;

    line-height:1.55;

    color:#222;

}


/*==========================================================
 Guide Card - Text
==========================================================*/

.guide-card__text{

    font-size:.7rem;

    line-height:1.9;

     min-height:5.4em;

    color:#666;

}

/*==========================================================
 First Guide - Button
==========================================================*/

.guide-button{

    text-align:center;

}


.guide-button .btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:16px;

    min-width:320px;

    height:60px;

    border:2px solid var(--color-main);

    color:var(--color-main);

    font-weight:700;

    border-radius:8px;

    transition:.3s;

}

.guide-button .btn:hover{

    background:var(--color-main);

    color:#fff;

}










/*==========================================================
 CONCEPT
==========================================================*/

.concept{

    background:#c6bab1;

}


/*==========================================================
 Concept Layout
==========================================================*/

.concept__inner{

    display:grid;

    grid-template-columns:0.9fr 1.1fr;

    align-items:center;

    gap:90px;

}


/*==========================================================
 Section Common
==========================================================*/

.section-label{

    display:inline-block;

    margin-bottom:16px;

    font-size:.95rem;

    font-weight:700;

    letter-spacing:.15em;

    color:var(--color-main);

    text-transform:uppercase;

}


.section-title{

    margin-bottom:32px;

    font-size:clamp(2rem,3vw,3rem);

    font-weight:700;

    line-height:1.45;

    color:#222;

}


/*==========================================================
 Concept Text
==========================================================*/

.concept__text{

    display:flex;

    flex-direction:column;

    gap:28px;

}


.concept__text p{

    font-size:1rem;

    line-height:2;

    color:#444;

}


/* ▼キーワード3行だけ少し強調 */

.concept__keywords{

    font-weight:700;

    color:#222;

}


/*==========================================================
 Concept Image
==========================================================*/

.concept__image{

    justify-self:end;

}

.concept__image img{

    width:100%;


    box-shadow:0 20px 50px rgba(0,0,0,.12);
}







/*==========================================================
 SERVICE
==========================================================*/

.service{

    background:var(--color-white);

}


/*==========================================================
 Service Heading
==========================================================*/

.section-heading{

    margin-bottom:70px;

}


/*==========================================================
 Service Grid
==========================================================*/

.service-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:70px 50px;

    margin-bottom:70px;

}


/*==========================================================
 Service Card
==========================================================*/

.service-card{

    display:flex;

    flex-direction:column;

    align-items:center;

    text-align:center;

    text-decoration:none;

    color:inherit;

    transition:.35s ease;

}


.service-card:hover{

    transform:translateY(-6px);

}


.service-card:hover .service-card__icon{

    transform:scale(1.08);

}


/*==========================================================
 Service Icon
==========================================================*/

.service-card__icon{

    width:100px;
    height:100px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:24px;

}

.service-card__icon img{

    max-width:80px;
    max-height:80px;

    width:auto;
    height:auto;

    object-fit:contain;

    transition:.35s ease;

}

.service-card:hover .service-card__icon img{

    transform:scale(1.08);

}

/*==========================================================
 Service Title
==========================================================*/

.service-card__title{

    margin-bottom:14px;

    font-size:1.6rem;

    font-weight:700;

    line-height:1.5;

    color:#222;

}


/*==========================================================
 Service Text
==========================================================*/

.service-card__text{

    font-size:.95rem;

    line-height:1.8;

    color:#555;

}


/*==========================================================
 Service CTA
==========================================================*/

.service-button{

    text-align:center;

}


.service-button .btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:16px;

    min-width:340px;

    height:64px;

    border:2px solid var(--color-main);

    color:var(--color-main);

    background:#fff;

    border-radius:8px;

    font-weight:700;

    transition:.3s;

}


.service-button .btn span{

    transition:.3s;

}


.service-button .btn:hover{

    background:var(--color-main);

    color:#fff;

}


.service-button .btn:hover span{

    transform:translateX(4px);

}







/*==========================================================
 WORKS
==========================================================*/

.works{

    background:#0d0d0d;

    color:#fff;

}


/*==========================================================
 Works Layout
==========================================================*/

.works__container{

    display:grid;

    grid-template-columns:320px 1fr;

    gap:80px;

    align-items:center;

}

.works__container > *{

    min-width:0;

}

/*==========================================================
 Left Content
==========================================================*/

.works .section-label{

    color:var(--color-main);

}


.works .section-title{

    color:#fff;

    margin-bottom:28px;

}


.works__text{

    color:#d6d6d6;

    line-height:1.9;

    margin-bottom:48px;

}


/*==========================================================
 Works Button
==========================================================*/

.works-button .btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:16px;

    min-width:260px;

    height:60px;

    border:2px solid var(--color-main);

    color:var(--color-main);

    border-radius:8px;

    transition:.35s;

}


.works-button .btn:hover{

    background:var(--color-main);

    color:#fff;

}


/*==========================================================
 Slider
==========================================================*/

.works-slider{

    width:100%;

    min-width:0;

    max-width:100%;

    overflow:hidden;

}

/* 追加 */
.swiper{

    max-width:100%;

}


/*==========================================================
 Card
==========================================================*/

.works-card{

    display:block;

    text-decoration:none;

    color:#fff;

     overflow:hidden;

}


.works-card__image{

    width:100%;

    aspect-ratio:16 / 10;

    object-fit:contain;

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    transition:.35s;

}


.works-card:hover .works-card__image{

    transform:scale(1.03);

}


.works-card__body{

    margin-top:20px;

}


/*==========================================================
 Category
==========================================================*/

.works-card__category{

    display:inline-block;

    color:var(--color-main);

    font-size:.9rem;

    font-weight:700;

    margin-bottom:10px;

}


/*==========================================================
 Title
==========================================================*/

.works-card__title{

    font-size:1.2rem;

    font-weight:700;

    line-height:1.6;

}


/*==========================================================
 Swiper Arrow
==========================================================*/

.swiper-button-prev,
.swiper-button-next{

    color:#fff;

}


.swiper-button-prev::after,
.swiper-button-next::after{

    font-size:22px;

}








/*==========================================================
 PROCESS
==========================================================*/

.process{

    background:#fff;

}


/*==========================================================
 Process Heading
==========================================================*/

.process .section-description{

    max-width:520px;

    line-height:1.9;

    color:#555;

    margin-bottom:70px;

}


/*==========================================================
 Process List
==========================================================*/

.process-list{

    max-width:760px;

    margin:0 auto;

}


/*==========================================================
 Process Item
==========================================================*/

.process-item{

    position:relative;

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding-bottom:48px;

}


/* 縦ライン */

.process-item:not(:last-child)::after{

    content:"";

    position:absolute;

    left:20px;

    top:44px;

    width:2px;

    height:calc(100% - 8px);

    background:#ddd;

}


/*==========================================================
 Number
==========================================================*/

.process-item__number{

    flex-shrink:0;

    width:40px;

    height:40px;

    border-radius:50%;

    background:var(--color-main);

    color:#fff;

    font-size:1rem;

    font-weight:700;

    display:flex;

    align-items:center;

    justify-content:center;

}


/*==========================================================
 Content
==========================================================*/

.process-item__content{

    padding-top:2px;

}


/*==========================================================
 Title
==========================================================*/

.process-item__title{

    margin-bottom:10px;

    font-size:1.8rem;

    font-weight:700;

    color:#222;

}


/*==========================================================
 Text
==========================================================*/

.process-item__text{

    font-size:1rem;

    line-height:1.9;

    color:#555;

}






/*==========================================================
 FAQ
==========================================================*/

.faq{

    background:var(--color-bg);

}

/*==========================================================
 Section English Title
==========================================================*/

.section-en{

    margin-bottom:16px;

    color:var(--color-main);

    font-size:.95rem;

    font-weight:700;

    letter-spacing:.15em;

    text-transform:uppercase;

}

.faq .section-description{

    max-width:620px;

    line-height:1.9;

    color:#555;

    margin-bottom:60px;

}


/*==========================================================
 FAQ List
==========================================================*/

.faq-list{

    margin-top:60px;

}


.faq-item{

    background:#fff;

    border-radius:12px;

    margin-bottom:20px;

    overflow:hidden;

    box-shadow:0 8px 20px rgba(0,0,0,.04);

}


/*==========================================================
 Summary
==========================================================*/

.faq-item summary{

    display:flex;

    align-items:center;

    justify-content:space-between;

    padding:24px 32px;

    cursor:pointer;

    list-style:none;

    font-size:1.15rem;

    font-weight:700;

}


.faq-item summary::-webkit-details-marker{

    display:none;

}


/*==========================================================
 Q
==========================================================*/

.faq-q{

    color:var(--color-main);

    margin-right:12px;

}


/*==========================================================
 ＋マーク
==========================================================*/

.faq-item summary::after{

    content:"+";

    font-size:2rem;

    color:var(--color-main);

    transition:.3s;

}


.faq-item[open] summary::after{

    transform:rotate(45deg);

}


/*==========================================================
 Answer
==========================================================*/

.faq-item p{

    padding:0 32px 28px;

    line-height:2;

    color:#555;

}


/*==========================================================
 FAQ Link
==========================================================*/

.faq-link{

    display:inline-block;

    margin-top:12px;

    color:var(--color-main);

    font-weight:700;

}


.faq-link:hover{

    text-decoration:underline;

}


/*==========================================================
 FAQ CTA
==========================================================*/

.faq-cta{

    margin-top:80px;

    padding:64px 40px;

    text-align:center;

    background:#fff;

    border-radius:20px;

}


.faq-cta__title{

    margin-bottom:20px;

    font-size:2rem;

    font-weight:700;

}


.faq-cta__text{

    max-width:620px;

    margin:0 auto 40px;

    line-height:2;

    color:#666;

}

.faq-cta__buttons{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:16px;

}

/*==========================================================
FAQ CTA
==========================================================*/

.faq-cta{

    margin-top:80px;

    padding:56px 40px;

    background:#fafafa;

    border:1px solid #eeeeee;

    border-radius:12px;

    text-align:center;

}

.faq-cta__title{

    margin-bottom:20px;

    font-size:1.8rem;

    font-weight:700;

}

.faq-cta__text{

    margin-bottom:32px;

    color:var(--color-gray);

    line-height:2;

}






/*==========================================================
 Profile
==========================================================*/

.profile{

    background:#c6bab1;

}

.profile__container{

    display:grid;
    grid-template-columns:1fr 420px;
    gap:80px;
    align-items:center;

}

.profile__content{

    max-width:560px;

}

.profile__lead{

    margin:24px 0;
    font-size:1.4rem;
    font-weight:700;
    line-height:1.8;

}

.profile__text{

    margin-top:24px;
    color:#555;
    line-height:2;

}

.profile-button{

    margin-top:48px;

}

/* ←これを追加 */

.profile__image{

    display:flex;
    justify-content:center;
    align-items:center;

}

/* 写真 */

.profile__photo{

    position:relative;
    display:inline-block;

}

.profile__photo img{

    display:block;
    width:360px;

    border-radius:16px;

    box-shadow:0 18px 40px rgba(0,0,0,.08);

    position:relative;
    z-index:2;

}

.profile__photo::after{

    content:"";

    position:absolute;

    top:12px;
    left:12px;

    width:100%;
    height:100%;

    border:2px solid var(--color-main);

    border-radius:16px;

    z-index:1;

}










/*==========================================================
 Footer
==========================================================*/

.footer{

    background:#242424;

    padding:80px 0 40px;

}


.footer__main{

    display:grid;

    grid-template-columns:160px 1fr 240px;

    gap:64px;

    align-items:center;

}


/*==========================================================
 Brand
==========================================================*/

.footer__brand{

    display:flex;

    justify-content:center;

}

.footer__logo{

    width:130px;

}


/*==========================================================
 CTA
==========================================================*/

.footer__cta{

    text-align:center;

}

.footer__title{

    margin-bottom:20px;

    font-size:2rem;

    font-weight:700;

    color:#fff;

}

.footer__text{

    margin-bottom:36px;

    line-height:2;

    color:#d8d8d8;

}

.footer__button{

    display:flex;

    justify-content:center;

}


/*==========================================================
 Aside
==========================================================*/

.footer__aside{

    display:flex;

    flex-direction:column;

    gap:24px;

}


/*==========================================================
 Reform Banner
==========================================================*/

.footer-banner{

    display:block;

    transition:.3s;

}

.footer-banner img{

    width:100%;

    display:block;

    border-radius:14px;

}

.footer-banner:hover{

    transform:translateY(-4px);

}


/*==========================================================
 SNS
==========================================================*/

.footer__sns{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:16px;

}

.footer-sns{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    padding:18px;

    border:1px solid rgba(255,255,255,.12);

    border-radius:14px;

    text-decoration:none;

    color:#fff;

    background:#2d2d2d;

    transition:.3s;

}

.footer-sns:hover{

    transform:translateY(-4px);

    border-color:var(--color-main);

}

.footer-sns img{

    width:42px;

    margin-bottom:10px;

}

.footer-sns span{

    font-size:.9rem;

    font-weight:700;

}


/*==========================================================
 Bottom
==========================================================*/

.footer__bottom{

    margin-top:64px;

    padding-top:32px;

    border-top:1px solid rgba(255,255,255,.08);

    text-align:center;

}

.footer__copy{

    display:block;

    color:#b8b8b8;

    margin-bottom:8px;

}

.footer__credit{

    display:block;

    color:#777;

    font-size:.85rem;

}



/*==========================================================
 Fade Animation
==========================================================*/

.fade-up,
.fade-left,
.fade-right{

    opacity:0;

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.fade-up{

    transform:translateY(30px);

}

.fade-left{

    transform:translateX(-15px);

}

.fade-right{

    transform:translateX(15px);

}


.fade-up.is-active,
.fade-left.is-active,
.fade-right.is-active{

    opacity:1;

    transform:none;

}



.delay-1{

    transition-delay:.08s;

}

.delay-2{

    transition-delay:.16s;

}

.delay-3{

    transition-delay:.24s;

}

.delay-4{

    transition-delay:.32s;

}

.delay-5{

    transition-delay:.40s;

}

.delay-6{

    transition-delay:.48s;

}









/*==========================================================
 Back To Top
==========================================================*/

.back-to-top{

    position:fixed;

    right:32px;

    bottom:32px;

    width:56px;

    height:56px;

    border:none;

    border-radius:50%;

    background:var(--color-main);

    color:#fff;

    font-size:1.4rem;

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transform:translateY(20px);

    transition:.35s;

    z-index:999;

    box-shadow:0 8px 20px rgba(0,0,0,.18);

}

.back-to-top:hover{

    transform:translateY(-4px);

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}










/*==========================================================
 Responsive
==========================================================*/


/* Tablet
==========================================================*/

@media (max-width:1024px){

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

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

@media (max-width:1024px){

.site-nav{
    display:none;
}

    /* ハンバーガー表示 */
    .hamburger{
        display:block;
        z-index:1001;
    }



.mobile-nav{

    display:flex;

    position:fixed;

    top:0;
    right:-320px;

    width:320px;
    height:100vh;

    margin:0;
    padding:100px 40px;

    background:#fff;

    justify-content:flex-start;
    align-items:flex-start;

    transition:right .35s ease;

       overflow-y:auto;

    z-index:1000;

}

.mobile-nav.is-open{

    right:0;

}

.mobile-nav__list{

    display:flex;

    flex-direction:column;

    align-items:flex-start;

    width:100%;

    gap:0;

}

.mobile-nav__list li{

    width:100%;

}

.mobile-nav__list a{

    display:flex;

    align-items:center;

    gap:16px;

    width:100%;

    padding:18px 0;

    border-bottom:1px solid #eee;

    font-size:1.2rem;

    font-weight:700;

}

.mobile-nav__list span{

    min-width:28px;

    color:var(--color-main);

    font-family:"Anton",sans-serif;

}

    /* お問い合わせボタンも隠す */
    .header-contact-btn{
        display:none;
    }

    /* ロゴとハンバーガーだけ左右配置 */
    .site-header .container{
        justify-content:space-between;
    }

}

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

    .hero{

        min-height:auto;

        padding:140px 0 80px;

    }

    .hero__container{

        grid-template-columns:1fr;

        text-align:center;

        gap:56px;

    }

    .hero__content{

        max-width:700px;

        margin:0 auto;

    }

    .hero__title{

        margin-inline:auto;

    }

    .hero__text{

        max-width:640px;

        margin:0 auto 48px;

    }

    .hero__buttons{

        justify-content:center;

    }

    .hero__logo{

        width:min(420px,70%);

    }



/*==========================================================
 First Guide
==========================================================*/

.guide-slider{
    overflow: visible;
}

.guide-slider::-webkit-scrollbar{
    display:none;
}

.guide-slider .swiper-wrapper{

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;

}

.guide-slider .swiper-slide{

    width:auto;
    flex:none;

}

.guide-card{

    padding:32px 20px;

}

.guide-card__icon{

    width:72px;
    height:72px;

}

.guide-card__title{

    font-size:1.3rem;
    min-height:64px;

}



/*==========================================================
 Concept
==========================================================*/

.concept__inner{

    display:flex;

    flex-direction:column;

    gap:56px;

}

.concept__content{

    width:100%;

}

.concept__image{

    width:100%;

}

.concept__image img{

    width:100%;

    height:auto;

    border-radius:20px;

}




/*==========================================================
 WORKS
==========================================================*/

.works__container{

    display:flex;

    flex-direction:column;

    gap:48px;

}

.works__content{

    width:100%;

}

.works-slider{

    width:100%;

}

.works-button{

    margin-top:32px;

}




/*==========================================================
 Process
==========================================================*/

.process-list{

    margin-top:56px;

}

.process-item{

    gap:28px;

}

.process-item:not(:last-child)::after{

    left:24px;
    top:52px;

}

.process-item__title{

    font-size:2rem;

}

.process-item__text{

    line-height:2;

}





/*==========================================================
 FAQ
==========================================================*/

.faq .section-description{

    margin-bottom:48px;

}

.faq-item summary{

    padding:20px 24px;

    font-size:1.05rem;

}

.faq-item p{

    padding:0 24px 24px;

}

.faq-cta{

    margin-top:64px;

    padding:48px 32px;

}




/*==========================================================
 Profile
==========================================================*/

.profile__container{

    display:flex;

    flex-direction:column;

    gap:56px;

}

.profile__content{

    max-width:100%;

}

.profile__image{

    width:100%;

}

.profile__photo img{

    width:320px;

}




/*==========================================================
 Footer
==========================================================*/

.footer__main{

    display:flex;

    flex-direction:column;

    gap:48px;

    text-align:center;

}

.footer__brand{

    justify-content:center;

}

.footer__aside{

    width:100%;
    max-width:420px;

}

.footer__banner{

    width:100%;

}

.footer__sns{

    grid-template-columns:repeat(2,1fr);

}


}







/* Smartphone
==========================================================*/

@media (max-width:768px){


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

    .site-header .container{

        display:flex;

        justify-content:space-between;

        align-items:center;

    }



    /* お問い合わせボタンを隠す */

    .header-contact-btn{

        display:none;

    }

    /* ハンバーガー表示 */

    .hamburger{

        display:block;

    }

    /* ロゴ */

    .site-logo img{

        width:48px;

    }

    .site-logo__title{

        font-size:1.25rem;

    }



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

    .hero{

        position:relative;

        min-height:auto;

        padding:120px 0 72px;

        overflow:hidden;

    }


    .hero__container{

        display:block;

        position:relative;

    }


    .hero__content{

        position:relative;

        z-index:2;

        text-align:left;

    }


    .hero__title{

        max-width:none;

        font-size:clamp(2.3rem,9vw,3.1rem);

        line-height:1.2;

        margin-bottom:24px;

    }


    .hero__text{

        font-size:1rem;

        line-height:1.9;

        margin-bottom:40px;

    }


    .hero__buttons{

        display:flex;

        flex-direction:column;

        gap:16px;

    }


    .hero__buttons .btn{

        width:100%;

        max-width:320px;

    }


    .hero__image{

        position:absolute;

        right:-50px;

        bottom:-80px;

        pointer-events:none;

        z-index:1;

    }


    .hero__logo{

        width:240px;

        opacity:.06;

    }


/*==========================================================
 First Guide
==========================================================*/

.guide-slider{

    overflow-x:auto;

    overflow-y:hidden;

    -webkit-overflow-scrolling:touch;

}

.guide-slider::-webkit-scrollbar{

    display:none;

}

.guide-slider .swiper-wrapper{

    display:flex !important;

    width:max-content;

    gap:20px;

}

.guide-slider .swiper-slide{
    flex:0 0 240px;
    width:240px;
}

.guide-card{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:flex-start;

    width:100%;   

}



/*==========================================================
 Concept
==========================================================*/

.concept{

    padding:80px 0;

}

.concept__inner{

    gap:40px;

}

.concept__content{

    text-align:left;

}

.section-title{

    font-size:2.2rem;

    line-height:1.4;

}

.concept__text{

    font-size:.95rem;

    line-height:2;

}

.concept__image img{

    width:100%;

    border-radius:16px;

}




/*==========================================================
 Service
==========================================================*/

.service-grid{

    grid-template-columns:repeat(2,1fr);

    gap:32px 20px;

}

.service-card{

    padding:24px 16px;

}

.service-card__icon{

    width:72px;

    height:72px;

    margin-bottom:20px;

}

.service-card__title{

    font-size:1.6rem;

    line-height:1.4;

    margin-bottom:16px;

}

.service-card__text{

    font-size:.9rem;

    line-height:1.8;

}

/*==================================================
Responsive
SERVICE CTA
==================================================*/

.service-button .btn{

    width:100%;

    min-width:0;

    max-width:340px;

}


/*==========================================================
 Process
==========================================================*/

.process-list{

    margin-top:48px;

}

.process-item{

    gap:20px;

}

.process-item:not(:last-child)::after{

    left:24px;
    top:52px;

}

.process-item__number{

    width:48px;

    height:48px;

    font-size:1.2rem;

}

.process-item__title{

    font-size:1.5rem;

    line-height:1.4;

}

.process-item__text{

    font-size:.95rem;

    line-height:1.9;

}





/*==========================================================
 FAQ
==========================================================*/

.faq .section-description{

    margin-bottom:40px;

}

.faq-list{

    margin-top:40px;

}

.faq-item{

    border-radius:10px;

}

.faq-item summary{

    padding:18px 20px;

    font-size:1rem;

    line-height:1.6;

}

.faq-item summary::after{

    font-size:1.5rem;

}

.faq-item p{

    padding:0 20px 20px;

    font-size:.95rem;

    line-height:1.9;

}

.faq-cta{

    margin-top:56px;

    padding:40px 24px;

}

.faq-cta__title{

    font-size:1.7rem;

}

.faq-cta__text{

    font-size:.95rem;

    line-height:1.9;

}

/*==========================================================
FAQ CTA
==========================================================*/

.faq-cta{

    margin-top:56px;

    padding:40px 24px;

}

.faq-cta__title{

    font-size:1.5rem;

}

.faq-cta__text{

    margin-bottom:28px;

}


/*==========================================================
 Profile
==========================================================*/

.profile{

    padding:80px 0;

}

.profile__container{

    gap:40px;

}

.profile__lead{

    font-size:1.2rem;

    line-height:1.7;

}

.profile__text{

    font-size:.95rem;

    line-height:1.9;

}

.profile__photo img{

    width:100%;

    max-width:280px;

}

.profile__photo::after{

    top:8px;

    left:8px;

}






/*==========================================================
 Footer
==========================================================*/

.footer{

    padding:64px 0 32px;

}

.footer__main{

    gap:40px;

}

.footer__logo{

    width:110px;

}

.footer__title{

    font-size:1.8rem;

    line-height:1.5;

}

.footer__text{

    font-size:.95rem;

    line-height:1.9;

}

.footer__button .btn{

    width:100%;

}

.footer__aside{

    max-width:100%;

}

.footer__sns{

    gap:12px;

}

.footer-sns{

    padding:16px;

}

.footer-sns img{

    width:36px;

}

.footer__bottom{

    margin-top:48px;

}


}










/*======================================
THANKS
======================================*/
.thanks{

    min-height:70vh;

    padding:160px 0 120px;

}

.thanks-box{

    max-width:720px;

    margin:0 auto;

    padding:48px;

    text-align:center;

    background:#fff;

    border:1px solid #e7e7e7;

    border-radius:16px;

    box-shadow:0 8px 20px rgba(0,0,0,.05);

}

.thanks-box p{

    line-height:2;

}

.thanks-btn{

    display:flex;

    justify-content:center;

    gap:20px;

    margin-top:40px;

}

@media(max-width:768px){

.thanks{

    min-height:auto;

    padding:120px 0 80px;

}

.thanks-box{

    margin:0 20px;

    padding:32px 24px;

}

.thanks-btn{

    flex-direction:column;

}

.thanks-btn .btn{

    width:100%;

}

}