@charset "UTF-8";
/* 珠の音そろばん教室（架空）スポットサンプル
   配色＝藍(#2f4a5e) × 生成り(#f7f3ea) × そろばんの木(#a6763f)
   見出し＝Shippori Mincho B1 / 本文＝Zen Kaku Gothic New */

:root{
  --bg:#f7f3ea;
  --bg-soft:#efe7d8;
  --bg-deep:#e7ddca;
  --ink:#242220;
  --ink-soft:#5f594e;
  --main:#2f4a5e;
  --main-deep:#1d3140;
  --accent:#a6763f;
  --line-green:#06C755;
  --line-green-d:#05a948;
  --accent-deep:#8a5f2f;
  --line:rgba(47,74,94,.16);
  --serif:"Shippori Mincho B1",serif;
  --sans:"Zen Kaku Gothic New",sans-serif;
  --header-h:96px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.9;
  overflow-x:hidden;-webkit-text-size-adjust:100%;
}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ============ サンプルバナー（追従させない） ============ */
.sample-banner{
  background:var(--main);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);
  text-align:center;padding:8px 14px;font-size:.88rem;font-weight:800;letter-spacing:.04em;
  line-height:1.6;text-wrap:balance;
}
@media (max-width:520px){
  .sample-banner{font-size:.72rem;letter-spacing:0;padding:8px 10px;}
}

/* ============ ヘッダー（sticky） ============ */
header.site{
  position:sticky;top:0;z-index:100;
  background:rgba(247,243,234,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1160px;margin:0 auto;padding:12px 22px;
  display:flex;align-items:center;gap:14px;
}
.logo-wrap{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}
.logo-mark{
  width:44px;height:44px;border-radius:50%;background:var(--main);color:#fff;
  font-family:var(--serif);font-size:1.3rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.logo-text{display:flex;flex-direction:column;}
.logo-text .big-jp{font-family:var(--serif);font-weight:700;font-size:1.12rem;color:var(--main-deep);line-height:1.3;letter-spacing:.02em;}
.logo-text .small-jp{font-size:.62rem;letter-spacing:.16em;color:var(--ink-soft);line-height:1.4;}
.main-nav{margin-left:auto;}
.main-nav ul{display:flex;gap:14px;list-style:none;margin:0;padding:0;}
.main-nav a{
  text-decoration:none;font-size:.87rem;font-weight:500;color:var(--main-deep);white-space:nowrap;
  padding-bottom:3px;border-bottom:2px solid transparent;transition:border-color .2s,color .2s;
}
.main-nav a:hover{border-bottom-color:var(--accent);color:var(--accent-deep);}
.header-cta{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.header-tel .num{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--main-deep);line-height:1.2;letter-spacing:.02em;}
.header-tel .hours{font-size:.62rem;color:var(--ink-soft);}
.header-line{
  background:var(--line-green);color:#fff;text-decoration:none;font-weight:700;font-size:.85rem;
  padding:10px 18px;border-radius:999px;white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
}
.header-line:hover{background:var(--line-green-d);}
.nav-toggle{display:none;}

/* ============ ヒーロー ============ */
.hero{
  position:relative;height:var(--hero-h, calc(100svh - 114px));min-height:460px;max-height:880px;
  display:flex;align-items:flex-end;overflow:hidden;
}
.hero-image{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;animation:heroCycle 21s infinite;
}
.hero-image.slide-1{background-image:url('images/hero-1.jpg');animation-delay:0s;}
.hero-image.slide-2{background-image:url('images/hero-2.jpg');animation-delay:7s;}
.hero-image.slide-3{background-image:url('images/hero-3.jpg');animation-delay:14s;}
@keyframes heroCycle{
  0%{opacity:0;transform:scale(1.0);}
  4%{opacity:1;}
  33%{opacity:1;transform:scale(1.07);}
  38%{opacity:0;transform:scale(1.075);}
  100%{opacity:0;transform:scale(1.0);}
}
@media (prefers-reduced-motion:reduce){
  .hero-image{animation:none;}
  .hero-image.slide-1{opacity:1;}
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,30,38,0) 0%,rgba(20,30,38,.04) 34%,rgba(18,26,33,.30) 62%,rgba(16,24,30,.44) 82%,rgba(14,21,27,.50) 100%);
}
.hero-inner{
  position:relative;z-index:2;width:100%;max-width:1160px;margin:0 auto;
  padding:0 24px 44px;color:#fff;
}
.hero-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.hero-chips span{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.55);
  border-radius:999px;padding:6px 16px;font-size:.82rem;font-weight:700;
  text-shadow:0 1px 4px rgba(0,0,0,.4);backdrop-filter:blur(2px);
}
.hero h1{margin:0 0 12px;font-family:var(--serif);font-weight:700;line-height:1.45;}
.hero h1 .line{display:block;font-size:clamp(1.9rem,4.6vw,3.5rem);text-shadow:0 2px 14px rgba(0,0,0,.5);letter-spacing:.02em;}
.hero .sub{
  display:block;font-family:var(--sans);font-size:clamp(.92rem,1.5vw,1.05rem);
  font-weight:500;line-height:1.85;margin-top:14px;max-width:34em;
  text-shadow:0 1px 8px rgba(0,0,0,.55);
}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;
  padding:15px 28px;border-radius:999px;font-size:1rem;line-height:1.3;
}
.btn-line{background:var(--line-green);color:#fff;box-shadow:0 5px 18px rgba(6,199,85,.34);}
.btn-line:hover{background:var(--line-green-d);}
.btn .ico{font-size:1.05em;}
.btn-tel{background:#fff;color:var(--main-deep);box-shadow:0 4px 16px rgba(0,0,0,.22);}
.btn-tel small{display:block;font-size:.62rem;font-weight:500;color:var(--ink-soft);}

/* ============ セクション共通 ============ */
.section{padding:88px 22px;}
.section-inner{max-width:1080px;margin:0 auto;}
.section-head{text-align:center;margin-bottom:48px;}
.section-head .script{
  display:block;font-family:var(--serif);font-size:.82rem;letter-spacing:.28em;
  color:var(--accent-deep);text-transform:uppercase;margin-bottom:10px;
}
.section-head h2{
  margin:0;font-family:var(--serif);font-weight:700;
  font-size:clamp(1.55rem,3.2vw,2.1rem);color:var(--main-deep);line-height:1.5;letter-spacing:.03em;
}
.section-head h2::after{
  content:"";display:block;width:46px;height:2px;background:var(--accent);
  margin:18px auto 0;
}
.section-head .intro{max-width:36em;margin:20px auto 0;font-size:1.02rem;color:#57513f;}

/* ============ 身につく力 ============ */
.merit-section{background:var(--bg-soft);}
.merit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.merit-card{
  background:#fff;border-radius:6px;padding:32px 22px;text-align:center;
  border-top:3px solid var(--main);box-shadow:0 2px 12px rgba(47,74,94,.06);
}
.merit-card .ic{display:block;margin:0 auto 16px;width:62px;height:62px;}
.merit-card .ic img,.kentei-step .ic img{width:100%;height:100%;object-fit:contain;display:block;}
.line-icon{opacity:1;}
.merit-card .num{
  font-family:var(--serif);font-size:.78rem;letter-spacing:.2em;color:var(--accent-deep);
  display:block;margin-bottom:12px;
}
.merit-card h3{margin:0 0 12px;font-family:var(--serif);font-size:1.12rem;color:var(--main-deep);line-height:1.6;}
.merit-card p{margin:0;font-size:.95rem;color:#57513f;line-height:1.85;text-align:left;}

/* ============ コース・月謝 ============ */
.price-section{background:var(--bg);}
.timetable{
  width:100%;border-collapse:collapse;background:#fff;margin-bottom:34px;
  box-shadow:0 2px 12px rgba(47,74,94,.06);
}
.timetable th,.timetable td{border:1px solid var(--line);padding:15px 12px;text-align:center;font-size:.97rem;}
.timetable thead th{background:var(--main);color:#fff;font-weight:700;letter-spacing:.04em;}
.timetable tbody th{background:var(--bg-soft);color:var(--main-deep);font-weight:700;white-space:nowrap;}
.timetable td .mark{color:var(--accent-deep);font-weight:700;font-size:1.05rem;}
.timetable td .none{color:#b6b0a4;}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}

.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.price-card{
  background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px 24px;
}
.price-card h3{
  margin:0 0 6px;font-family:var(--serif);font-size:1.16rem;color:var(--main-deep);
}
.price-card .target{font-size:.8rem;color:var(--accent-deep);font-weight:700;margin:0 0 18px;}
.price-card .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line);}
.price-card .row:last-child{border-bottom:none;}
.price-card .label{font-size:.93rem;color:#57513f;}
.price-card .amount{font-family:var(--serif);font-weight:700;font-size:1.18rem;color:var(--main-deep);white-space:nowrap;}
.price-card .row.total .amount{color:var(--accent-deep);}
.price-note{
  margin:26px 0 0;padding:16px 20px;background:var(--bg-soft);border-left:3px solid var(--accent);
  font-size:.97rem;color:#46423a;line-height:1.9;
}

/* ============ 教室のようす ============ */
.gallery-section{background:var(--bg-soft);}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.gallery-grid figure{margin:0;}
.gallery-img{
  width:100%;aspect-ratio:4/3;background-size:cover;background-position:center;
  border-radius:6px;box-shadow:0 3px 14px rgba(47,74,94,.1);
}
.gallery-grid figcaption{margin-top:10px;font-size:.92rem;color:#57513f;text-align:center;}

/* ============ 先生の紹介 ============ */
.profile-section{background:var(--bg);}
.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:46px;align-items:start;}
.profile-photo{
  width:100%;aspect-ratio:3/4;background-size:cover;background-position:center top;
  border-radius:6px;box-shadow:0 4px 18px rgba(47,74,94,.14);
}
.profile-content h3{margin:0 0 4px;font-family:var(--serif);font-size:1.5rem;color:var(--main-deep);}
.profile-content .role{margin:0 0 22px;font-size:.84rem;color:var(--accent-deep);font-weight:700;letter-spacing:.06em;}
.profile-content p{margin:0 0 16px;font-size:.95rem;line-height:1.95;}
.profile-content .note{font-size:.92rem;color:#46423a;}

/* ============ 検定・目標 ============ */
.kentei-section{background:var(--main);color:#fff;}
.kentei-section .section-head .script{color:#d5b98d;}
.kentei-section .section-head h2{color:#fff;}
.kentei-section .section-head h2::after{background:#d5b98d;}
.kentei-section .section-head .intro{color:rgba(255,255,255,.82);}
.kentei-photo{
  width:100%;aspect-ratio:16/7;background-size:cover;background-position:center 40%;
  border-radius:6px;margin-bottom:32px;box-shadow:0 4px 18px rgba(0,0,0,.2);
}
.kentei-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.kentei-step{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.24);
  border-radius:6px;padding:28px 24px;
}
.kentei-step .ic{display:block;width:54px;height:54px;margin-bottom:14px;}
.kentei-step .ic img{filter:brightness(0) invert(1);opacity:1;}
.kentei-step .lv{font-family:var(--serif);font-size:.76rem;letter-spacing:.2em;color:#d5b98d;display:block;margin-bottom:10px;}
.kentei-step h3{margin:0 0 12px;font-family:var(--serif);font-size:1.2rem;line-height:1.5;}
.kentei-step p{margin:0;font-size:.95rem;line-height:1.85;color:rgba(255,255,255,.92);}
.kentei-note{margin:26px 0 0;font-size:.88rem;color:rgba(255,255,255,.86);text-align:center;}

/* ============ FAQ ============ */
.faq-section{background:var(--bg-soft);}
.faq-photo{
  max-width:820px;margin:0 auto 32px;width:100%;aspect-ratio:16/7;
  background-size:cover;background-position:center 55%;
  border-radius:6px;box-shadow:0 3px 14px rgba(47,74,94,.12);
}
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{background:#fff;border-radius:6px;margin-bottom:14px;box-shadow:0 2px 10px rgba(47,74,94,.06);overflow:hidden;}
.faq-item summary{
  cursor:pointer;list-style:none;padding:20px 54px 20px 22px;position:relative;
  font-weight:700;font-size:.98rem;color:var(--main-deep);line-height:1.7;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{content:"Q.";font-family:var(--serif);color:var(--accent-deep);margin-right:10px;font-weight:700;}
.faq-item summary::after{
  content:"";position:absolute;right:24px;top:50%;width:10px;height:10px;
  border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:translateY(-70%) rotate(45deg);transition:transform .25s;
}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(225deg);}
.faq-item .a{padding:0 22px 22px;font-size:.97rem;color:#4d4739;line-height:1.95;}
.faq-item .a::before{content:"A.";font-family:var(--serif);color:var(--main);margin-right:10px;font-weight:700;}

/* ============ アクセス ============ */
.access-section{background:var(--bg-deep);}
.access-block{display:grid;grid-template-columns:1fr 1.15fr;gap:36px;align-items:start;}
.access-block dl{margin:0;background:#fff;border-radius:6px;padding:26px 28px;}
.access-block dt{font-family:var(--serif);font-size:.89rem;color:var(--accent-deep);font-weight:700;letter-spacing:.06em;margin-top:16px;display:flex;align-items:center;gap:7px;}
.dt-icon{width:20px;height:20px;object-fit:contain;opacity:.95;flex-shrink:0;}
.access-block dt:first-child{margin-top:0;}
.access-block dd{margin:4px 0 0;font-size:.95rem;line-height:1.8;}
.map-wrap{width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden;box-shadow:0 3px 14px rgba(47,74,94,.12);}
.map-wrap iframe{width:100%;height:100%;border:0;display:block;}
.note-row{grid-column:1/-1;margin:0;font-size:.95rem;color:#46423a;}

/* ============ CTA ============ */
.cta-strip{
  background:var(--accent);color:#fff;text-align:center;padding:72px 22px;
}
.cta-icon{width:40px;height:40px;object-fit:contain;margin:0 auto 12px;display:block;filter:brightness(0) invert(1);opacity:.85;}
.cta-strip .script{display:block;font-family:var(--serif);font-size:.8rem;letter-spacing:.28em;margin-bottom:10px;opacity:.85;}
.cta-strip h2{margin:0 0 14px;font-family:var(--serif);font-size:clamp(1.5rem,3vw,2rem);line-height:1.5;}
.cta-strip p{margin:0 auto 28px;max-width:34em;font-size:.95rem;line-height:1.9;opacity:.95;}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-strip .btn-tel{background:#fff;color:var(--accent-deep);}
.cta-strip .btn-line{background:var(--line-green);color:#fff;box-shadow:0 5px 18px rgba(0,0,0,.22);}

/* ============ フッター ============ */
footer.site{background:var(--main-deep);color:rgba(255,255,255,.86);padding:56px 22px 0;}
.footer-inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px;}
.footer-brand .small-jp{font-size:.76rem;letter-spacing:.1em;opacity:.7;}
.footer-brand .big-jp{font-family:var(--serif);font-size:1.3rem;margin:4px 0 14px;color:#fff;}
.footer-info{font-size:.95rem;line-height:1.95;opacity:.96;}
.footer-col h4{margin:0 0 12px;font-family:var(--serif);font-size:.95rem;color:#fff;}
.footer-col ul{list-style:none;margin:0;padding:0;font-size:.92rem;line-height:2.1;}
.footer-col a{text-decoration:none;opacity:.92;}
.footer-col a:hover{opacity:1;text-decoration:underline;}
.footer-bottom{max-width:1080px;margin:44px auto 0;border-top:1px solid rgba(255,255,255,.18);padding:24px 0 34px;}
.disclaimer-block{font-size:.95rem;line-height:1.95;opacity:.95;}
.disclaimer-block p{margin:0 0 8px;}
.copyright{text-align:center;font-size:.87rem;opacity:.85;margin:16px 0 0;}

/* ============ スマホ固定バー ============ */
.mobile-bar{display:none;}

/* ============ レスポンシブ ============ */
@media (max-width:1200px){
  .header-line{display:none;}
  .main-nav ul{gap:12px;}
  .main-nav a{font-size:.85rem;}
}

@media (max-width:1080px){
  .header-cta{display:none;}
}

@media (max-width:1000px){
  .merit-grid{grid-template-columns:repeat(2,1fr);}
  .price-grid{grid-template-columns:1fr;}
  .kentei-steps{grid-template-columns:1fr;}
  .profile-grid{grid-template-columns:1fr;gap:26px;}
  .profile-photo{max-width:320px;margin:0 auto;}
  .access-block{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;gap:28px;}
}

@media (max-width:860px){
  :root{--header-h:70px;}
  /* 2026-09-09 修正：header の backdrop-filter が position:fixed の「基準の箱」になり、
     スマホのメニューがヘッダーの中（高さ128px）に閉じ込められて、6本のリンクのうち
     1本しか見えていなかった。スマホ幅ではぼかしを外して基準を画面に戻す。
     ヘッダー背景は rgba(247,243,234,.94) とほぼ不透明なので見た目はほぼ変わらない。 */
  /* 2026-09-09 重大：メニューの黒い幕(.nav-overlay z-index:150)がヘッダー(z-index:100)より上に
     描かれ、メニュー内のリンクが押せなくなっていた（押しても移動せず、幕をタップした扱いで閉じるだけ）。
     ヘッダーを幕より上に上げる。 */
  header.site{backdrop-filter:none;-webkit-backdrop-filter:none;z-index:210;}
  .main-nav{
    display:none;
    position:fixed;inset:0 0 0 auto;width:min(78vw,320px);background:var(--bg);
    transform:translateX(100%);transition:transform .3s ease,visibility .3s;z-index:160;
    padding:88px 28px 40px;overflow-y:auto;box-shadow:-8px 0 24px rgba(0,0,0,.16);
    visibility:hidden;
  }
  .main-nav.is-visible{display:block;}
  .main-nav.open{transform:translateX(0);visibility:visible;}
  .main-nav ul{flex-direction:column;gap:0;}
  .main-nav li{border-bottom:1px solid var(--line);}
  .main-nav a{display:block;padding:16px 2px;font-size:1rem;border-bottom:none;white-space:normal;}
  .header-cta{display:none;}
  .nav-toggle{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    margin-left:auto;width:44px;height:44px;background:none;border:none;
    cursor:pointer;z-index:180;position:relative;
  }
  .nav-toggle span{display:block;width:26px;height:2px;background:var(--main-deep);transition:transform .3s,opacity .3s;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .nav-overlay{
    position:fixed;inset:0;background:rgba(20,26,32,.45);z-index:150;
    opacity:0;pointer-events:none;transition:opacity .3s;
  }
  .nav-overlay.show{opacity:1;pointer-events:auto;}

  .hero-image.slide-1{background-image:url('images/hero-1-sp.jpg');}
  .hero-image.slide-2{background-image:url('images/hero-2-sp.jpg');}
  .hero-image.slide-3{background-image:url('images/hero-3-sp.jpg');}
  .hero{height:var(--hero-h, calc(100svh - 106px));min-height:460px;}
  .hero-inner{padding-bottom:104px;}
  .hero-btns{display:none;}

  .section{padding:62px 20px;}
  .merit-card p,.price-card .label,.gallery-grid figcaption,.faq-item .a{font-size:.95rem;}
  .access-block dd,.profile-content p{font-size:1rem;}
  .timetable th,.timetable td{font-size:.95rem;padding:12px 10px;}
  .price-card .amount{font-size:1.24rem;}
  .section-head .intro{font-size:1rem;}
  .section-head{margin-bottom:36px;}
  .merit-grid{grid-template-columns:1fr;gap:16px;}
  .gallery-grid{grid-template-columns:1fr;gap:18px;}
  .logo-text{display:flex;flex-direction:column;}
.logo-text .big-jp{font-size:1rem;}
  .logo-mark{width:38px;height:38px;font-size:1.1rem;}

  .mobile-bar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:200;height:62px;
    box-shadow:0 -3px 14px rgba(0,0,0,.18);
  }
  .mobile-bar a{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-decoration:none;font-weight:700;font-size:.84rem;line-height:1.3;
  }
  .mobile-bar .m-tel{background:var(--main-deep);color:#fff;}
  .mobile-bar .m-line{background:var(--line-green);color:#fff;}
  .mobile-bar small{font-size:.6rem;font-weight:500;opacity:.85;}
  footer.site{padding-bottom:70px;}
  .cta-strip{padding-bottom:96px;}
}
