/* ===== footer.css — cleaned (dup removed) ===== */

/* 共通は非表示にしない */
br.pc-only,
br.sp-only { display: none; }

/* PC用 */
@media (min-width: 768px){
  br.pc-only { display: inline; }
}

/* SP用 */
@media (max-width: 767.98px){
  br.sp-only { display: inline; }
}

#footer{
  padding-top:60px;
  padding-bottom:40px;
  width:100%;
  overflow:hidden;
  position:relative;
  color:#fff;
  font-weight:400;
  line-height:1;
  font-size:15px;
}
@media (max-width:1023px){
  #footer{ text-align:center; font-size:18px; }
}

#footer a{ color:#fff; }

/* 弧（上のカーブ） */
#footer::after{
  content:"";
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%);
  width:160vw;
  height:max(80vw,820px);
  background-color:#0b2b57;
  border-radius:100% 100% 20% 20%;
  z-index:-1;
}
@media (max-width:1023px){
  #footer::after{ width:180vw; height:120vw; }
}

/* ===== parts ===== */
@media (max-width:768px){
#footer .bl-contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    line-height: 1;
    transform: translateY(-30px);
    margin: 25px 0 10px 0;
}}



@media (min-width:767.9px){
#footer .bl-contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    line-height: 1;
    transform: translateY(-30px);
    margin: 25px 0 50px 0;
}}

@media (min-width:767.9px){
#footer .bl-contact p {
    font-size: 24px;
    line-height: 1.5;
}}

@media (max-width:768px){
#footer .bl-contact p {
    font-size: 18px;
    line-height: 1.5;
}}

#footer .bl-contact a{ color:#fff; font-size:44px; font-family:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif; font-weight:700; }
#footer .bl-contact small{ font-size:18px; }

#footer nav{ display:flex; gap:54px; }
#footer nav ul{ display:flex; flex-direction:column; gap:37px; }
#footer nav img{ width:117px; height:auto; }
#footer nav a{ font-size:20px; }

#footer .bnr{ width:474px; display:block; margin-top:54px; }

#footer .info{ margin-top:80px; }
#footer .info .logo{ font-size:18px; }
#footer .info .logo img{ width:72px; margin-right:10px; height:auto; }
#footer .info .address{ font-size:18px; line-height:2; margin-top:13px; }

/* 2カラム */
#footer .ly_df .left{ width:50%; }
#footer .ly_df .right{ width:50%; display:flex; flex-direction:column; align-items:flex-end; }
#footer .ly_df .right a{ width:474px; display:block; margin-top:50px; }

#footer iframe{ max-width:580px; height:282px; margin-top:50px; border:0; }

/* 下段 */
#footer .footer_btm{ display:flex; flex-direction:column; align-items:center; margin-top:50px; gap:10px; }
#footer .footer_btm .inst{ width:57px; display:block; }
#footer .footer_btm .youtube{ width:57px; display:block; }
#footer .footer_btm .logo{ font-family:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif; margin-top:10px; font-size:26px; }

/* ==================== SP ≤768px ==================== */
@media (max-width:1023px){
  /* 弧の形を少しふくらませる */
  #footer::after{ height:140vw; border-radius:100% 100% 28% 28%; }

  /* 弧の下を濃紺で埋める下地 */
  #footer::before{
    content:"";
    position:absolute;
    left:0; right:0; top:44vw; bottom:0;
    background:#0b2b57;
    z-index:-2;
  }


  /* 余白 */
  #footer{ padding-top:100px; padding-bottom:96px; }

  /* 2カラム→縦並び（← こちらはSPブロックの中に統合） */
  #footer .ly_df{ display:flex; flex-direction:column; gap:16px; align-items:center; }
  
   
  #footer .ly_df .left,
  #footer .ly_df .right{ width:100%; align-items:stretch; }

@media (max-width:768px){
#footer .ly_df .left,
  #footer .ly_df .right{ width:100%; align-items:stretch; }}

@media (min-width:767.9px){
#footer .ly_df .left,
  #footer .ly_df .right{ width:100%; align-items:stretch; }}



@media (max-width:768px){
    #footer .ly_df {
        display: flex;
        flex-direction: column;
        gap: 16px;
        align-items: center;
    }
}


  /* フッターナビ */
  #footer nav{ flex-wrap:wrap; justify-content:center; gap:16px 28px; }
  #footer nav ul{ flex-direction:column; align-items:center; gap:8px; }

  /* バナー */
  #footer .bnr,
  #footer .ly_df .right a{ width:100%; max-width:420px; margin:20px auto 0; }

  /* マップを16:9で全幅 */
  #footer iframe{
    width:100% !important; max-width:none;
    height:56.25vw; min-height:220px; margin:16px auto 0; display:block;
  }

  /* 下段の間隔 */
  #footer .footer_btm{ margin-top:24px; gap:8px; }
}

@media (max-width: 768px) {
    #footer nav ul{
        font-size: 16px;
        flex-direction: column;
        /* align-items: center; */
        gap: 12px;
    }
 }

@media (max-width: 768px) {
    #footer nav li{
        font-size: 16px;
    }
 }
 
 @media (max-width: 768px) {
    #footer nav a{
        font-size: 16px;
    }
 }


/* ============ Tablet 769–1200px（重複を統合） ============ */
@media (min-width:769px) and (max-width:1200px){
  /* 調整用パラメータ */
  #footer{
    --arc-h:110vw;
    --ground-top:56vw;
    padding-bottom:140px;
  }
  /* 弧と下地 */
  #footer::after{ height:var(--arc-h); border-radius:100% 100% 20% 20%; }
  #footer::before{
    content:""; position:absolute; left:0; right:0; top:var(--ground-top); bottom:0;
    background:#0b2b57; z-index:-2;
  }

  /* レイアウト微調整 */
  #footer .ly_df{ display:flex; gap:32px; align-items:flex-start; }
  #footer .ly_df .left{ width:55%; }
  #footer .ly_df .right{ width:45%; align-items:flex-start; }

  #footer .bnr,
  #footer .ly_df .right a{ width:100%; max-width:420px; margin-top:0; }

  #footer iframe{ width:100%; max-width:none; height:min(45vw,340px); }
  #footer nav{ gap:32px; margin: 0 0 47px 0;}
  #footer nav ul{ gap:18px; }
  #footer .footer_btm{ margin-top:40px; }
}

/* 共通の横幅管理 */
#footer .footer-inner{ max-width:1280px; margin:0 auto; padding:0 40px; }
@media (max-width:1023px){ #footer .footer-inner{ padding:0 20px; }}

/* ============ Desktop ≥1201px ============ */
@media (min-width:1201px){
  #footer{ --arc-h: max(80vw,900px); padding-bottom:140px; }
  #footer::after{ height:var(--arc-h); }
  #footer::before{
    content:""; position:absolute; left:0; right:0; top:calc(var(--arc-h) * .55); bottom:0;
    background:#0b2b57; z-index:-2;
  }
}


@media (max-width: 768px) {
    #footer nav {
        flex-wrap: wrap;
        justify-content: left;
        gap: 16px 20px;
        font-size: clamp(16px, 2.5vw, 24px);
    }
}

 @media (max-width: 768px) {
    #footer .bl-contact a{
        font-size: 28px;
    }
 }
 
@media (max-width: 768px) {
 #footer .info .address {
    font-size: clamp(16px, 2.5vw, 24px);
    line-height: 2;
    margin-top: 14px;
    line-height: 1.5;
}
 }
 
 
@media (max-width: 768px) {
 #footer .footer_btm .logo {
    font-family: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    margin-top: 10px;
    font-size: 18px;
}
 }
 
 @media (max-width: 768px) {
 #footer .footer_btm .copy {
    font-family: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    margin-top: 10px;
    font-size: 14px;
}
 }

 @media (max-width: 768px) { 
 #footer .info .logo{ 
 font-size:18px;
 margin-top: 40px;
 }
}

@media (max-width: 768px) {
    #footer .bnr, #footer .ly_df .right a {
        width: 100%;
        max-width: 420px;
        margin: 20px auto 0;
    }
}


/* SNSアイコンを中央に */
#footer .footer_btm nav.sns-right{
  width: 100%;
  display: flex;              /* nav自体を横幅いっぱいに */
  justify-content: center;    /* nav内のブロックを中央へ */
}

#footer .footer_btm nav.sns-right ul{
  display: flex;
  flex-direction: row;        /* 横並びに上書き */
  justify-content: center;    /* 並び全体を中央へ */
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#footer .footer_btm nav.sns-right a{
  display: inline-flex;
  width: 28px;
  height: 28px;
}

#footer .footer_btm nav.sns-right img{
  width: 100%;
  height: auto;
  display: block;
}

#footer .footer .nav>ul>li {
    margin-bottom: 35px;
}