/*
Theme Name: basara_tcd100-child
Template: basara_tcd100
Theme URI: 
Description: 子テーマ
Author: Your Name
Author URI: 
Version: 1.7
*/

/* フッターのベーススタイル */
.l-footer {
   background-color: #242424;
   color: #fff;
   padding: 0;
   margin: 0;
}

/* フッターコンテンツ全体のグリッド */
.footer-content {
   max-width: 1200px;
   margin: 0 auto;
   padding: 50px 50px;
   display: grid;
   grid-template-columns: 2fr 1fr 1fr;
   gap: 20px;
   align-items: flex-start;
}

/* ブランドエリアとロゴ */
.footer-brand {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   margin: 0;
   padding: 0;
   padding-left: 20px;
}

.footer-logo {
   margin: 0;
   padding: 0;
   width: 100%;
   display: block;
}

.footer-logo img {
   max-width: 265px;
   width: 100%;
   height: auto;
   display: block;
   margin: 0;
   padding: 0;
}

.footer-brand h2 {
   font-size: 24px;
   font-weight: 700;
   line-height: 1.3;
   margin: 0;
   letter-spacing: 0.05em;
   color: #fff;
}

.subtitle {
   font-size: 12px;
   margin-top: 10px;
   color: rgba(255, 255, 255, 0.7);
}

/* リンクエリア */
.footer-links {
   margin: 20px 0;
   padding: 0;
   display: flex;
   gap: 15px;
   width: 100%;
}

.footer-link {
   color: rgba(255, 255, 255, 0.7);
   text-decoration: none;
   font-size: 12px;
   transition: color 0.3s ease;
   padding: 0;
}

.footer-link:hover {
   color: #fff;
}

/* サイトマップエリア */
.footer-nav h3,
.footer-social h3 {
   font-size: 16px;
   font-weight: 700;
   margin: 0 0 20px;
   padding: 0;
   color: #fff;
}

.footer-nav ul {
   list-style: none;
   padding: 0 0 0 20px;
   margin: 0;
}

.footer-nav ul li {
   margin-bottom: 15px;
}

.footer-nav ul li a {
   color: rgba(255, 255, 255, 0.8);
   text-decoration: none;
   font-size: 14px;
   transition: color 0.3s ease;
   position: relative;
   display: inline-block;
   padding: 5px 0;
}

.footer-nav ul li a:hover {
   color: #fff;
}

/* SNSエリア */
.social-links {
   display: flex;
   flex-direction: column !important;
   gap: 15px;
   width: 100%;
}

.footer-social a.footer-sns-link {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    padding: 12px 20px;
    text-align: left;
    font-size: 14px;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-social a.footer-sns-link:hover {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
}

.business-title {
   font-size: 16px;
   font-weight: 700;
   margin: 30px 0 20px;
   padding: 0;
   color: #fff;
}

/* コピーライト */
.p-copyright {
   width: 100%;
   padding: 15px 0;
   background-color: #242424;
   text-align: center;
}

.p-copyright .l-inner {
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 20px;
   color: rgba(255, 255, 255, 0.5);
   font-size: 11px;
   text-align: center;
   display: flex;
   justify-content: center;
   align-items: center;
   font-weight: 300;
   letter-spacing: 0.02em;
}
/* iOS Safari向けの明示的な指定 */
@supports (-webkit-touch-callout: none) {
    .l-footer .footer-social a.footer-sns-link {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        align-items: center;
        color: rgba(255, 255, 255, 0.8);
        gap: 10px;
        width: 100%;
    }

    .l-footer .footer-social .sns-icon {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        align-items: center;
        color: rgba(255, 255, 255, 0.8);
    }
}

/* モバイル（768px以下） */
@media screen and (max-width: 768px) {
    .l-footer .footer-content {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 40px 20px;
    }
    
    .l-footer .footer-social a.footer-sns-link {
        justify-content: center;
        text-align: center;
    }
}


/* セレクタの詳細度を上げる */
.l-footer .footer-social [class*="footer-sns-link"] {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    color: rgba(255, 255, 255, 0.8);
}

/* フレックスボックスの子要素に対する明示的な制御 */
.l-footer .footer-social [class*="footer-sns-link"] > * {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
}