/* ============================================================
こども秘密基地BASE ホームページ スタイルシート
============================================================ */
:root{
--bg:#FFFDF6;
--bg-soft:#FFF6E4;
--panel:#FFFFFF;
--leaf:#8CC63F;
--leaf-dark:#69A62A;
--sun:#FFC93C;
--sun-dark:#F0A800;
--coral:#FF7A66;
--coral-dark:#E85A45;
--sky:#48B4E0;
--ink:#2A2620;
--ink-soft:#6B6055;
--line:#F0E6CC;
/* そっとゾーン用の落ち着いたトーン */
--quiet-bg:#F3EFE4;
--quiet-panel:#FFFFFF;
--quiet-accent:#8CA37E;
--quiet-ink:#4A4238;
}

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

html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--ink); font-family:'Noto Sans JP', sans-serif; line-height:1.85;}
h1,h2,h3,h4{font-family:'Zen Maru Gothic', sans-serif; font-weight:900; line-height:1.5;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul,ol{list-style:none;}
.wrap{max-width:1100px; margin:0 auto; padding:0 32px;}
.wrap2{max-width:1100px; margin:0 left; padding:0 120px;}

@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}}
a:focus-visible, button:focus-visible, summary:focus-visible{outline:3px solid var(--sky); outline-offset:3px; border-radius:6px;}
.skip-link{position:absolute; left:-9999px; top:0; z-index:999; background:var(--leaf-dark); color:#fff; padding:12px 20px; border-radius:0 0 10px 0; font-weight:700;}
.skip-link:focus{left:0;}

header{position:sticky; top:0; z-index:100; background:rgba(255,253,246,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; max-width:1100px; margin:0 auto; gap:12px;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Zen Maru Gothic', sans-serif; font-weight:900; font-size:1.05rem;}
.logo-mark{width:42px; height:42px; border-radius:50%; background:var(--sun); display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0;}
.logo-sub{display:block; font-size:0.6rem; font-weight:500; color:var(--ink-soft);}
.nav-links{display:flex; gap:22px; font-weight:700; font-size:0.85rem; flex-wrap:wrap;}
.nav-links a{color:var(--ink-soft);}
.nav-links a:hover{color:var(--coral-dark);}
.nav-cta{background:var(--coral); color:#fff; padding:11px 20px; border-radius:100px; font-weight:700; font-size:0.83rem; box-shadow:0 6px 16px rgba(255,122,102,0.35); transition:transform 0.15s ease;}
.nav-cta:hover{transform:translateY(-2px);}
@media (max-width:1000px){.nav-links{display:none;} .nav-cta{padding:9px 14px; font-size:0.76rem;}}


/* ===== HERO:明るく前向きに ===== */
/* .hero{position:relative; padding:66px 24px 88px; overflow:hidden; background:linear-gradient(180deg,var(--bg-soft) 0%, var(--bg) 100%);}
.hero-blob{position:absolute; border-radius:50%; z-index:0;}
.blob1{width:340px; height:340px; background:#FFF1C4; top:-140px; right:-100px;}
.blob2{width:220px; height:220px; background:#DDF0C4; bottom:-100px; left:-80px;}
.blob3{width:140px; height:140px; background:#CDEBF7; top:55%; right:6%;}
.hero-inner{position:relative; z-index:1; max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:center;}
.eyebrow{display:inline-flex; gap:8px; background:#fff; border:1px solid var(--line); padding:7px 18px; border-radius:100px; font-size:0.82rem; font-weight:700; margin-bottom:22px; color:var(--coral-dark); box-shadow:0 4px 14px rgba(0,0,0,0.05);}
.hero h1{font-size:clamp(2rem,4.4vw,3.1rem); margin-bottom:20px;}
.hero .hl{color:var(--leaf-dark);}
.hero p{font-size:1.02rem; color:var(--ink-soft); max-width:48ch; margin-bottom:30px;}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:15px 28px; border-radius:100px; font-weight:700; font-size:0.98rem; transition:transform 0.15s ease, box-shadow 0.15s ease; cursor:pointer;}
.btn-primary{background:var(--sun); color:var(--ink); box-shadow:0 10px 24px rgba(255,201,60,0.5);}
.btn-primary:hover{transform:translateY(-3px);}
.btn-ghost{background:#fff; color:var(--ink); border:1px solid var(--line); box-shadow:0 6px 18px rgba(0,0,0,0.05);}
.btn-ghost:hover{transform:translateY(-3px);}
.hero-art{position:relative; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;}
.hero-sun{width:80%; aspect-ratio:1/1; border-radius:50%; background:radial-gradient(circle at 32% 28%, #FFF3CC, var(--sun) 72%); display:flex; align-items:center; justify-content:center; font-size:4.4rem; box-shadow:0 30px 60px rgba(255,201,60,0.35); position:relative; overflow:hidden;}
.hero-card{position:absolute; background:#fff; border-radius:20px; box-shadow:0 14px 34px rgba(0,0,0,0.1); padding:16px 20px; font-weight:700; font-size:0.86rem;}
.card-a{top:2%; left:-6%;} .card-b{bottom:4%; right:-6%;}

/* トップページ */

.rep-bubble{
position:absolute; top:-14px; right:8%; background:#fff; border-radius:20px;
box-shadow:0 12px 30px rgba(0,0,0,0.12); padding:12px 16px; display:flex; align-items:center; gap:10px;
max-width:190px; font-size:0.74rem; font-weight:700; color:var(--ink-soft);
}

.rep-bubble .rep-icon{width:32px; height:32px; border-radius:50%; background:var(--green-pale,var(--leaf)); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1rem;}
.why-link{
  display:inline-flex; align-items:center; gap:6px; font-size:0.86rem; font-weight:700; color:var(--coral-dark);
  margin-bottom:26px; text-decoration:underline; text-underline-offset:4px;
}

.why-link:hover{color:var(--coral);}
@media (max-width:820px){.hero-inner{grid-template-columns:1fr;} .hero-art{order:-1; max-width:260px; margin:0 auto 16px;}}


.logo img {
    width: 60px;
    height: auto;
}

section{padding:80px 0;}
.section-head{max-width:660px; margin:0 auto 44px; text-align:center;}
.tag{display:inline-block; background:var(--bg-soft); color:var(--coral-dark); padding:16px 18px; border-radius:100px; font-weight:700; font-size:0.78rem; margin-bottom:14px;}
.section-head h2{font-size:clamp(1.5rem,2.8vw,2.1rem);1}
.section-head p{color:var(--ink-soft); margin-top:12px;}

.block{
 position: relative;
 min-height: 700px;

 background-size: cover;
 background-position: center;

 display: flex;
 align-items: center;
}

.block-1 {
  background-image: url("../image/basetp.png");
}

/*@media (max-width: 768px) {
  .block-1 {
    background-size: 120% auto;
  }
}*/

/* ===== お知らせ ===== */
.news-list {
  max-width: 800px;
  margin: 0 auto;
}

.news-item {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

/*.news-item time {
  flex-shrink: 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
  width: 100px;
}
*/
/*.news-item a {
  margin: 0;
  line-height: 1.7;
}*/


/*.news-item a:hover {
 color: #6F9F70;
}*/


/* スマートフォン */
@media (max-width: 600px) {

 .news-item {
   display: block;
   padding: 16px 0;
 }

 /*.news-item time {
   display: block;
   width: auto;
   margin-bottom: 5px;
   }*/

}

@media (max-width: 768px) {

  /* セクション全体 */
  .block-1 {
    background-image: url("../image/basesm.png");
    background-size: 100% auto;
    background-repeat: no-repeat;
    padding: 30px 0px;
  }

  /* 中身の横幅 */
  .block-1 .wrap2 {
    width: 100%;
    max-width: 120%;
    margin: 0 auto;
  }

  /* 見出し */
  .wrap2 h1 {
    font-size: 1.0rem;
    line-height: 1.6;
    text-align: center;
  }

  /* 本文 */
  .wrap2 p {
    font-size: 0.6rem;
    line-height: 1.9;
    text-align: center;
  }

}

```css
/* =========================
   お知らせ
========================= */

.news {
  padding: 70px 20px;
  background: #E8DCC8;
}

.news .section-inner {
  max-width: 900px;
  margin: 0 auto;
}

.news h2 {
  text-align: center;
  margin-bottom: 35px;
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  color: #4f6f52;
}

/* お知らせ本体 */
#google-news {
  background: #ffffff;
  border-radius: 20px;
  padding: 25px 30px;
  box-shadow: 0 6px 18px rgba(80, 100, 70, 0.12);
}

/* お知らせ1件 */
.news-item {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

/* 日付 */
.news-date {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 20px;
  background: #A8E8B8;
  color: #36543a;
  font-size: 0.9rem;
  font-weight: bold;
  white-space: nowrap;
}

/* お知らせタイトル */
.news-title {
  font-weight: bold;
  color: #333;
}

/* PDFなどへのリンク */
.news-item a {
  color: #4f7f58;
  font-weight: bold;
  text-decoration: none;
  transition: 0.3s;
}

/* マウスを乗せたとき */
.news-item a:hover {
  color: #e58a9b;
  text-decoration: underline;
}

/* 読み込み中・お知らせなし */
#google-news > p {
  margin: 0;
  text-align: center;
  color: #666;
}


/* =========================
   スマートフォン
========================= */

@media (max-width: 600px) {

  .news {
    padding: 50px 15px;
  }

  #google-news {
    padding: 20px;
    border-radius: 16px;
  }

  .news-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .news-date {
    font-size: 0.85rem;
  }

  .news-title {
    font-size: 0.95rem;
  }

  .news-item a {
    font-size: 0.95rem;
    word-break: break-word;
  }
}


/* ===== 理念フロー ===== */
.about{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
/*.flow-row{display:flex; justify-content:center; align-items:center; gap:8px; margin-bottom:44px; flex-wrap:wrap;}*/
/*.flow-item{color:#fff; font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:0.96rem; padding:12px 26px; border-radius:100px; min-width:104px; text-align:center;}*/
/*.flow-arrow{color:var(--ink-soft); font-size:1.05rem;}*/
/*.f1{background:var(--leaf);} .f2{background:var(--sun); color:var(--ink);} .f3{background:var(--coral);} .f4{background:var(--sky);}*/
/*@media (max-width:700px){.flow-row{flex-direction:column;} .flow-arrow{transform:rotate(90deg);}}*/
.about-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.about-card{background:var(--bg-soft); border-radius:22px; padding:30px 24px;}
.about-icon{width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:16px;}
.about-card h3{font-size:1.02rem; margin-bottom:10px;}
.about-card p{font-size:0.88rem; color:var(--ink-soft);}
.i-leaf{background:#E4F2D9;} .i-sun{background:#FFEBCC;} .i-coral{background:#FFE1DB;}
@media (max-width:820px){.about-grid{grid-template-columns:1fr;}}

/* ===== 活動レポート ===== */
.reports-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.report-card{background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.05); transition:transform 0.2s ease;}
.report-card:hover{transform:translateY(-5px);}
.report-thumb{height:110px; display:flex; align-items:center; justify-content:center; font-size:2.2rem;}
.rt1{background:linear-gradient(135deg,#DDF0C4,#8CC63F);}
.rt2{background:linear-gradient(135deg,#FFE3B0,#FFC93C);}
.rt3{background:linear-gradient(135deg,#FFD2C8,#FF7A66);}
.rt4{background:linear-gradient(135deg,#C9EAF7,#48B4E0);}
.report-body{padding:18px 18px 22px;}
.report-cat{display:inline-block; font-size:0.7rem; font-weight:700; color:var(--leaf-dark); background:var(--bg-soft); padding:3px 10px; border-radius:100px; margin-bottom:10px;}
.report-date{font-size:0.72rem; color:var(--ink-soft); margin-bottom:6px;}
.report-title{font-size:0.9rem; font-weight:700;}
@media (max-width:900px){.reports-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.reports-grid{grid-template-columns:1fr;}}
.reports-more{text-align:center; margin-top:34px;}

/* ===== 活動内容 ===== */
.activities{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.activities-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.activity-card{background:var(--bg-soft); border-radius:22px; overflow:hidden;}
.activity-photo{height:120px; display:flex; align-items:center; justify-content:center; font-size:2.1rem;}
.ap-1{background:linear-gradient(135deg,#E4F2D9,#8CC63F);} .ap-2{background:linear-gradient(135deg,#FFEBCC,#FFC93C);}
.ap-3{background:linear-gradient(135deg,#FFE1DB,#FF7A66);} .ap-4{background:linear-gradient(135deg,#C9EAF7,#48B4E0);}
.activity-body{padding:22px;}
.activity-body h3{font-size:1.02rem; margin-bottom:8px;}
.activity-when{font-size:0.8rem; color:var(--leaf-dark); font-weight:700; margin-bottom:8px;}
.activity-body p{font-size:0.87rem; color:var(--ink-soft);}
@media (max-width:760px){.activities-grid{grid-template-columns:1fr;}}

/* ===== 料金 ===== */
.price{background:var(--bg-soft);}
.price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch;}
.price-card{background:#fff; border-radius:22px; padding:30px 24px; text-align:center; display:flex; flex-direction:column; position:relative; box-shadow:0 10px 26px rgba(0,0,0,0.04);}
.price-card.featured{background:linear-gradient(160deg,var(--leaf),var(--leaf-dark)); color:#fff;}
.price-badge{position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--coral); color:#fff; font-size:0.72rem; font-weight:700; padding:5px 16px; border-radius:100px;}
.price-name{font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:0.98rem; margin-bottom:10px;}
.price-amount{font-family:'Zen Maru Gothic',sans-serif; font-weight:900; font-size:2rem;}
.price-amount span{font-size:0.88rem; font-weight:700;}
.price-note{font-size:0.82rem; color:var(--ink-soft); margin-top:10px;}
.price-card.featured .price-note{color:#EAF6E2;}
.price-entry{max-width:760px; margin:30px auto 0; text-align:center; font-size:0.85rem; color:var(--ink-soft); background:#fff; border-radius:16px; padding:16px;}
@media (max-width:900px){.price-grid{grid-template-columns:1fr;}}

/* ===== 対象者===== */
/* 利用対象者 */
.target {
 padding: 80px 0;
}

.target-grid {
 max-width: 900px;
 margin: 0 auto;
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 24px;
}

.target-card {
 background: var(--bg-soft);
 text-align: left;
 padding: 30px 28px;
 border-radius: 22px;
}

.target-card-wide {
 grid-column: 1 / -1;
}

.target-label {
 display: inline-block;
 margin-bottom: 10px;
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 color: var(--ink-soft);
}

.target-card h3 {
 margin: 0 0 12px;
 font-size: 1.2rem;
}

.target-main {
 margin: 0 0 14px;
 font-size: 1.5rem;
 font-weight: 700;
 color: var(--coral-dark);
}

.target-card p {
 margin: 0;
 line-height: 1.9;
 color: var(--ink-soft);
}

.target-list {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 10px 24px;
 color: var(--ink-soft);
 /*margin: 10px 0 0;
 padding-left: 1.4em;
 line-height: 2;
 color: var(--ink-soft);*/
}

.target-message {
 max-width: 800px;
 margin: 40px auto 0;
 padding: 26px;
 text-align: center;
 line-height: 1.9;
 background: rgba(168, 232, 184, 0.25);
 border-radius: 18px;
}

.target-message p {
 margin: 0;
}

/* スマートフォン */
@media (max-width: 600px) {

 .target {
   padding: 60px 20px;
  }

 .target-grid {
   grid-template-columns: 1fr;
   gap: 18px;
  }

  .target-card-wide {
   grid-column: auto;
  }

  .target-card {
   padding: 24px 22px;
  }

  .target-message {
   margin-top: 28px;
   padding: 22px 18px;
  }
}

/* ===== クイックリンク(はじめての方へ) ===== */
.quicklinks{background:var(--panel); border-bottom:1px solid var(--line);}
.quicklinks-inner{display:flex; align-items:center; gap:24px; flex-wrap:wrap; padding:26px 24px;}
.quicklinks-label{font-weight:700; font-size:0.85rem; color:var(--ink-soft); flex-shrink:0;}
.quicklinks-list{display:flex; gap:22px; flex-wrap:wrap; font-size:0.86rem; font-weight:700;}
.quicklinks-list a{color:var(--coral-dark);}
.quicklinks-list a:hover{text-decoration:underline;}

/* ===== 保護者の声 ===== */
.voices-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.voice-card{background:var(--bg-soft); border-radius:22px; padding:26px;}
.voice-quote{font-size:0.9rem; margin-bottom:16px;}
.voice-who{font-weight:700; font-size:0.85rem; color:var(--coral-dark);}
.voice-sub{font-size:0.76rem; color:var(--ink-soft);}
@media (max-width:820px){.voices-grid{grid-template-columns:1fr;}}

/* ===== 私たちの想い ===== */
/* 私たちの想い */
.thoughts {
 padding: 80px 0;
}

/* 想いの本文 */
.thoughts-story {
 max-width: 760px;
 margin: 0 auto;
}

.thoughts-story p {
 margin: 0 0 24px;
 line-height: 2;
 color: var(--ink-soft);
}

.thoughts-story p:last-child {
 margin-bottom: 0;
}

/* 最後のメッセージ */
.thoughts-message {
 max-width: 800px;
 margin: 60px auto 0;
 padding: 40px 36px;
 text-align: center;
 background: var(--bg-soft);
 border-radius: 24px;
}

.thoughts-message h3 {
 margin: 0 0 24px;
 font-size: 1.5rem;
 color: var(--ink);
}

.thoughts-message p {
 margin: 0 0 20px;
 line-height: 2;
 color: var(--ink-soft);
}

.thoughts-message p:last-child {
 margin-bottom: 0;
}

/* スマートフォン */
@media (max-width: 400px) {

 .thoughts {
   padding: 60px 20px;
  }

 .thoughts-story p {
   margin-bottom: 20px;
   line-height: 1.9;
  }

 .thoughts-message {
   margin-top: 40px;
   padding: 30px 22px;
   border-radius: 20px;
  }

 .thoughts-message h3 {
   font-size: 1.3rem;
  }
}

/* ===== 応援 ===== */
.join{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.join-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.join-card{background:var(--bg-soft); border-radius:22px; padding:26px 22px; display:flex; flex-direction:column; gap:10px;}
.join-icon{width:50px; height:50px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.3rem;}
.join-card h3{font-size:0.98rem;}
.join-card p{font-size:0.84rem; color:var(--ink-soft); flex-grow:1;}
.join-link{font-size:0.82rem; font-weight:700; color:var(--coral-dark);}
.join-link:hover{text-decoration:underline;}
@media (max-width:900px){.join-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.join-grid{grid-template-columns:1fr;}}

/* ============================================================
サイト全体は明るいトーンだが、ここだけ意図的に彩度と
コントラストを落とし、静かで安心できる空気に切り替える。
見た目の切り替え自体が「ここは違う場所ですよ」という
心理的なサインになる。
============================================================ */
.quiet-corner{background:var(--quiet-bg); padding:90px 0;}
.quiet-box{
  max-width:680px; margin:0 auto; background:var(--quiet-panel);
  border-radius:28px; padding:48px 40px; text-align:center;
  box-shadow:0 16px 40px rgba(74,66,56,0.08);
}

.quiet-box .quiet-tag{
  display:inline-block; font-size:0.76rem; font-weight:700; color:var(--quiet-accent);
  background:#EEF1E9; padding:6px 16px; border-radius:100px; margin-bottom:20px;
}
  
.quiet-box h2{color:var(--quiet-ink); font-size:clamp(1.25rem,2.4vw,1.6rem); margin-bottom:18px; font-weight:700;}
.quiet-box p{color:#7A7266; font-size:0.94rem; margin-bottom:28px; line-height:2;}
.quiet-box .btn{background:var(--quiet-accent); color:#fff; box-shadow:none; font-size:0.9rem; padding:13px 26px;}
.quiet-box .btn:hover{transform:translateY(-2px); background:#7C9270;}

/* ===== FAQ ===== */
.faq{background:var(--bg-soft);}
.faq-list{max-width:760px; margin:0 auto; display:grid; gap:12px;}
.faq-item{background:#fff; border-radius:16px; padding:6px 22px; box-shadow:0 6px 18px rgba(0,0,0,0.04);}
.faq-item summary{cursor:pointer; list-style:none; padding:16px 0; font-weight:700; font-size:0.92rem; display:flex; justify-content:space-between; align-items:center; gap:12px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:1.3rem; color:var(--coral); flex-shrink:0; transition:transform 0.2s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{padding:0 0 18px; font-size:0.87rem; color:var(--ink-soft);}

/* ===== お問い合わせ(全体向け) ===== */
.contact{position:relative;}
.contact-inner{background:linear-gradient(135deg,var(--sun),var(--coral)); border-radius:32px; padding:56px 40px; text-align:center; color:#fff; box-shadow:0 24px 50px rgba(255,122,102,0.3);}
.contact h2{font-size:clamp(1.4rem,2.8vw,2rem); margin-bottom:14px; color:#fff;}
.contact p{max-width:54ch; margin:0 auto 28px; opacity:0.96; font-size:0.95rem;}
.contact .btn-row{justify-content:center;}
.contact .btn-ghost{background:#fff; color:var(--coral-dark); border:none;}
.contact .btn-outline{background:transparent; color:#fff; border:2px solid rgba(255,255,255,0.7); box-shadow:none;}
.contact .btn-outline:hover{background:rgba(255,255,255,0.15); transform:translateY(-3px);}

footer{background:var(--ink); color:#EFEAE2; padding:56px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:36px;}
.footer-logo{display:flex; align-items:center; gap:10px; font-family:'Zen Maru Gothic', sans-serif; font-weight:900; font-size:1.05rem; margin-bottom:12px;}
.footer-logo .logo-mark{background:var(--sun);}
footer p{color:#B9AE9E; font-size:0.87rem; max-width:34ch;}
footer h3{font-size:0.87rem; margin-bottom:12px; color:#D9CFC2; font-weight:700;}
footer li{margin-bottom:9px; font-size:0.87rem;}
footer a:hover{color:var(--sun);}
.footer-bottom{border-top:1px solid #4A4136; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.77rem; color:#8C8070;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr; gap:26px;}}

.fade-up{opacity:0; transform:translateY(20px); transition:opacity 0.6s ease, transform 0.6s ease;}
.fade-up.in{opacity:1; transform:translateY(0);}

.btn-shadow {
    display: inline-block;
    padding: 13px 30px;
    background: #F6D96B;
    color: #5C5130;
    border: none;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;}





/*応援*/

.logo3 img {
    width: 200px;
    height: auto;
}


/*フッターの内容*/

.footer-column {
    text-align: left;
}


.sponsors {
  text-align: center;
}

.sponsor-list {
  margin-top: 10px;
  font-size: 14px;
}

.sns-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sns-links a {
  text-decoration: none;
  color: #6F9F70;
}

.logo2 img {
    width: 60px;
    height: auto;
}

.logo4 img {
    width: 100px;
    height: auto;
}

.logo5 img {
    width: 120px;
    height: auto;
}


/* ===== スマホ用 下部固定CTA ===== */
.mobile-cta{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:200;
  background:#fff; border-top:1px solid var(--line); padding:10px 16px;
  box-shadow:0 -8px 24px rgba(0,0,0,0.08);
}

.mobile-cta a{
  display:block; text-align:center; background:var(--coral); color:#fff;
  padding:13px; border-radius:100px; font-weight:700; font-size:0.9rem;
}

@media (max-width:640px){
 .mobile-cta{display:block;}
 body{padding-bottom:64px;}
}