/* ========================================
   あゆみの森 むろらん 共有スタイル
   （制作サンプル・鈴木Web製作所）
======================================== */
:root{
  --bg:#FFFDF6;
  --bg-card:#FFFFFF;
  --ink:#4A3F35;
  --main:#FFD34D;
  --main-soft:#FFF3C4;
  --accent:#5FBF7E;
  --accent-deep:#3FA463;
  --pop-pink:#FFADBF;
  --pop-blue:#8ED4E8;
  --line-green:#06C755;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:clip}
body{font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:var(--bg);line-height:1.8;font-size:16px}
h1,h2,h3{font-family:'Zen Maru Gothic',sans-serif;font-weight:700;letter-spacing:.04em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ===== 上部固定ブロック（サンプル帯＋ヘッダー） ===== */
.site-top{position:sticky;top:0;z-index:200}
.sample-bar{background:#4A3F35;color:#FDF9F0;text-align:center;font-size:12px;line-height:1.35;padding:6px 10px;letter-spacing:.05em}

.sample-banner {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--accent-deep);
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
  text-align: center;
  padding: 8px 16px;
  font-size: .88rem;
  font-weight: 800;
  letter-spacing: .04em;
}

/* ===== ヘッダー ===== */
header{background:var(--bg-card);position:relative;box-shadow:0 2px 12px rgba(74,63,53,.08)}
.header-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:14px}
.logo{font-family:'Zen Maru Gothic',sans-serif;font-weight:700;font-size:19px;line-height:1.3;white-space:nowrap}
.logo small{display:block;font-size:11px;font-weight:500;color:var(--accent-deep);letter-spacing:.08em}
nav.gnav{display:flex;gap:16px;font-size:13px;font-weight:500}
nav.gnav a{white-space:nowrap}
@media (max-width:1100px) and (min-width:821px){
  nav.gnav{gap:12px;font-size:12px}
  .head-cta .btn{padding:9px 14px;font-size:12px}
}
nav.gnav a:hover{color:var(--accent-deep)}
nav.gnav a.current{color:var(--accent-deep);font-weight:700}
.head-cta{display:flex;gap:10px}
.btn{display:inline-block;border-radius:999px;font-weight:700;text-align:center;transition:opacity .2s;white-space:nowrap}
.btn:hover{opacity:.85}
.btn-line{background:var(--line-green);color:#fff;padding:10px 20px;font-size:14px}
.btn-visit{background:var(--accent);color:#fff;padding:10px 20px;font-size:14px}

/* ===== ハンバーガー ===== */
.menu-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:var(--main-soft);border:none;border-radius:12px;cursor:pointer;flex-shrink:0}
.menu-btn span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===== ヒーロー（トップ・フルスクリーン×3枚スライド＋ズーム） ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-start;overflow:hidden}
@media (min-width:821px){ .hero-inner{padding-top:70px;max-width:1240px} }
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1);animation:heroKen 24s linear infinite}
.hero-slide:nth-child(1){animation-delay:0s}
.hero-slide:nth-child(2){animation-delay:8s}
.hero-slide:nth-child(3){animation-delay:16s}
@keyframes heroKen{0%{opacity:0;transform:scale(1)}4%{opacity:1}33%{opacity:1;transform:scale(1.08)}41%{opacity:0;transform:scale(1.1)}100%{opacity:0}}
@media (prefers-reduced-motion: reduce){.hero-slide{animation:none;opacity:0}.hero-slide:nth-child(1){opacity:1}}
.hero-slide.s1{background-image:url('images/hero-1.jpg')}
.hero-slide.s2{background-image:url('images/hero-2.jpg')}
.hero-slide.s3{background-image:url('images/hero-3.jpg')}
@media (max-width:820px){
  .hero-slide.s1{background-image:url('images/hero-sp-1.jpg')}
  .hero-slide.s2{background-image:url('images/hero-sp-2.jpg')}
  .hero-slide.s3{background-image:url('images/hero-sp-3.jpg')}
}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(43,36,28,.55) 0%,rgba(43,36,28,.25) 55%,rgba(43,36,28,.1) 100%)}
.hero-inner{position:relative;z-index:2;max-width:1040px;margin:0 auto;width:100%;padding:80px 20px}
.hero .copy{background:none;padding:0;max-width:640px;color:#fff}
.hero-catch{font-size:clamp(32px,5vw,52px);line-height:1.45;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.hero-catch .em{color:var(--main)}
.hero-sub{margin-top:16px;font-size:15px;text-shadow:0 1px 8px rgba(0,0,0,.3)}
.hero-cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.hero-cta .btn{padding:15px 30px;font-size:16px}
.hero-note{margin-top:10px;font-size:12px;color:rgba(255,255,255,.85)}
.ph{background:repeating-linear-gradient(45deg,var(--main-soft),var(--main-soft) 12px,#F6EBCB 12px,#F6EBCB 24px);border:2px dashed var(--main);border-radius:20px;display:flex;align-items:center;justify-content:center;text-align:center;color:#8a7d6c;font-size:13px;line-height:1.6;padding:14px}
.hero-img{aspect-ratio:4/3}

/* ===== 下層ページヒーロー（写真背景の帯） ===== */
.page-hero{position:relative;height:40vh;min-height:250px;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;text-align:center;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:rgba(43,36,28,.5)}
.page-hero-inner{position:relative;z-index:2;color:#fff;padding:0 20px}
.page-hero-inner .sec-en{color:var(--main)}
.page-hero h1{font-size:clamp(26px,4vw,40px);text-shadow:0 2px 12px rgba(0,0,0,.3)}
.breadcrumb{margin-top:12px;font-size:12px;color:rgba(255,255,255,.9)}
.breadcrumb a{text-decoration:underline}

/* ===== 3秒理解バー ===== */
.quick{background:var(--bg-card)}
.quick-inner{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:22px 20px}
.quick-item{display:flex;align-items:center;gap:12px;justify-content:center;font-size:14px}
.quick-item b{font-size:16px}
.quick-ico{width:44px;height:44px;border-radius:50%;background:var(--main-soft);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.quick-item:nth-child(2) .quick-ico{background:#DFF3E4}
.quick-item:nth-child(3) .quick-ico{background:#FFE3E9}

/* ===== 共通セクション ===== */
section{padding:5rem 0}
.inner{max-width:1040px;margin:0 auto;padding:0 20px}
.sec-head{text-align:center;margin-bottom:44px}
.sec-en{display:inline-block;font-size:12px;letter-spacing:.2em;color:var(--accent-deep);font-weight:700;margin-bottom:8px}
.sec-title{font-size:clamp(24px,3.4vw,32px)}
.sec-lead{margin-top:14px;font-size:15px}
.more-btn-wrap{text-align:center;margin-top:36px}
.btn-more{background:var(--bg-card);border:2px solid var(--accent);color:var(--accent-deep);padding:13px 34px;font-size:15px}

/* ===== 特徴 ===== */
.features{background:var(--bg)}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.feature-card{background:var(--bg-card);border-radius:20px;padding:0 0 26px;box-shadow:0 4px 18px rgba(74,63,53,.07);overflow:hidden;border-top:6px solid var(--main)}
.feature-card:nth-child(2){border-top-color:var(--accent)}
.feature-card:nth-child(3){border-top-color:var(--pop-pink)}
.feature-card .ph{aspect-ratio:16/10;border-radius:0;border-left:none;border-right:none;border-top:none}
.feature-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.feature-card h3{font-size:19px;margin:20px 22px 8px;color:var(--accent-deep)}
.feature-card p{font-size:14px;margin:0 22px}

/* ===== 療育プログラム（about） ===== */
.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.program-card{background:var(--bg-card);border-radius:18px;overflow:hidden;box-shadow:0 4px 18px rgba(74,63,53,.07)}
.program-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.program-card h3{font-size:17px;margin:16px 18px 6px;color:var(--accent-deep)}
.program-card p{font-size:13px;margin:0 18px 18px}

/* ===== 送迎（about） ===== */
.sougei-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;max-width:880px;margin:0 auto}
.sougei-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px}
.sougei-text{font-size:14px}
.sougei-text h3{font-size:19px;color:var(--accent-deep);margin-bottom:10px}

/* ===== 1日の流れ ===== */
.day{background:var(--bg-card)}
.day-tabs{display:flex;justify-content:center;gap:10px;margin-bottom:34px;flex-wrap:wrap}
.day-tab{border:2px solid var(--accent);border-radius:999px;padding:8px 22px;font-size:14px;font-weight:700;color:var(--accent-deep);background:none;cursor:pointer;font-family:inherit}
.day-tab.active{background:var(--accent);color:#fff}
.timeline{max-width:640px;margin:0 auto;display:none}
.timeline.active{display:block}
.tl-item{display:grid;grid-template-columns:74px 24px 1fr;gap:0 14px;align-items:start}
.tl-time{font-weight:700;color:var(--accent-deep);font-size:15px;text-align:right;padding-top:2px}
.tl-dot{position:relative;display:flex;justify-content:center}
.tl-dot::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--main);border:3px solid var(--accent);margin-top:6px}
.tl-item:not(:last-child) .tl-dot::after{content:"";position:absolute;top:22px;bottom:-6px;width:2px;background:var(--main-soft)}
.tl-body{padding-bottom:26px}
.tl-body b{font-size:16px}
.tl-body p{font-size:14px;margin-top:2px}

/* ===== ギャラリー ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px;display:block}
.gallery-grid .ph{aspect-ratio:1/1;border-radius:16px}
.gallery-cap{font-size:12px;text-align:center;margin-top:6px;color:#7d7267}

/* ===== ご利用までの流れ ===== */
.flow{background:var(--bg-card)}
.flow-list{max-width:680px;margin:0 auto;counter-reset:step}
.flow-item{background:var(--bg);border-radius:18px;padding:22px 24px 22px 74px;position:relative;margin-bottom:16px}
.flow-item::before{counter-increment:step;content:counter(step);position:absolute;left:22px;top:22px;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:'Zen Maru Gothic',sans-serif}
.flow-item b{font-size:16px}
.flow-item p{font-size:14px;margin-top:4px}
.flow-item .support{display:inline-block;background:var(--main-soft);border-radius:8px;padding:6px 12px;font-size:13px;margin-top:10px;font-weight:500}

/* ===== 流れの要約（トップ用） ===== */
.flow-digest{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:880px;margin:0 auto}
.fd-item{background:var(--bg);border-radius:16px;text-align:center;padding:20px 10px 18px;position:relative}
.fd-item .fd-num{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-family:'Zen Maru Gothic',sans-serif;font-size:15px}
.fd-item b{font-size:13.5px;line-height:1.5;display:block}

/* ===== 料金 ===== */
.price-box{max-width:680px;margin:0 auto;background:var(--bg-card);border-radius:20px;padding:34px 30px;box-shadow:0 4px 18px rgba(74,63,53,.07)}
.price-box p{font-size:14px;margin-bottom:14px}
.price-table{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0 16px}
.price-table th,.price-table td{border-bottom:1px solid var(--main-soft);padding:12px 8px;text-align:left}
.price-table th{width:60%;font-weight:500}
.price-table td{font-weight:700;color:var(--accent-deep);white-space:nowrap}
.price-free{background:var(--main-soft);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.8}
/* 黄色地（--main-soft）の上に載るため、白地用の色を流用せずコントラストAA(4.5:1)を満たす濃さにする */
.price-free b{color:#276B42}
.price-free-sub{display:block;margin-top:8px;font-size:12px;color:#6B6157;line-height:1.7}
.price-note{font-size:12px;color:#7d7267}
.price-note li{margin-left:1.2em;margin-bottom:4px}

/* ===== スタッフ ===== */
.staff{background:var(--bg-card)}
.staff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;max-width:820px;margin:0 auto}
.staff-card{text-align:center}
.staff-card .ph{width:130px;height:130px;border-radius:50%;margin:0 auto 14px;aspect-ratio:1/1}
.staff-card img{width:130px;height:130px;border-radius:50%;object-fit:cover;object-position:center top;margin:0 auto 14px;display:block;box-shadow:0 4px 14px rgba(74,63,53,.12)}
.quick-ico img{width:30px;height:30px;object-fit:contain;display:block}
.staff-card b{font-size:16px}
.staff-card .role{display:block;font-size:12px;color:var(--accent-deep);font-weight:700;margin:2px 0 8px}
.staff-card p{font-size:13px}

/* ===== お知らせ・活動記録（blog） ===== */
.news-list{max-width:680px;margin:0 auto}
.news-item{background:var(--bg-card);border-radius:14px;padding:16px 20px;margin-bottom:12px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.news-item time{font-size:13px;font-weight:700;color:var(--accent-deep);white-space:nowrap;font-family:'Zen Maru Gothic',sans-serif}
.news-item .news-tag{font-size:11px;background:var(--main-soft);border-radius:999px;padding:2px 12px;font-weight:700;white-space:nowrap}
.news-item p{font-size:14px;flex:1;min-width:200px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.post-card{background:var(--bg-card);border-radius:18px;overflow:hidden;box-shadow:0 4px 18px rgba(74,63,53,.07)}
.post-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.post-card .post-body{padding:16px 18px 18px}
.post-card time{font-size:12px;color:var(--accent-deep);font-weight:700;font-family:'Zen Maru Gothic',sans-serif}
.post-card h3{font-size:16px;margin:4px 0 6px}
.post-card p{font-size:13px}
.blog-note{max-width:680px;margin:30px auto 0;background:var(--main-soft);border-radius:14px;padding:16px 20px;font-size:13px;text-align:center}

/* ===== FAQ ===== */
.faq-list{max-width:680px;margin:0 auto}
.faq-item{background:var(--bg-card);border-radius:14px;margin-bottom:12px;overflow:hidden;border:1px solid var(--border,rgba(74,63,53,.08));transition:box-shadow .2s}
.faq-item summary{padding:18px 52px 18px 20px;font-weight:700;font-size:15px;cursor:pointer;list-style:none;display:flex;gap:10px;align-items:baseline;position:relative}
.faq-item summary::before{content:"Q";color:var(--accent-deep);font-family:'Zen Maru Gothic',sans-serif;font-weight:700}
.faq-item summary::after{
  content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;background:var(--main-soft);color:var(--accent-deep);
  display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;line-height:1;
  transition:transform .25s ease;flex-shrink:0;
}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(135deg)}
.faq-item[open]{box-shadow:0 4px 18px rgba(74,63,53,.09)}
.faq-item summary:hover::after{background:var(--accent-deep);color:#fff}
.faq-item div{padding:0 20px 18px 44px;font-size:14px}

/* ===== アクセス・CTA ===== */
.access{background:var(--bg-card)}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.access-map{aspect-ratio:4/3}
.map-wrap{border-radius:20px;overflow:hidden;box-shadow:0 4px 18px rgba(74,63,53,.07)}
.map-wrap iframe{width:100%;height:100%;border:0;display:block}
.access-info{font-size:14px}
.access-info dt{font-weight:700;color:var(--accent-deep);margin-top:14px}
.cta-band{background:linear-gradient(160deg,var(--main-soft),var(--main));text-align:center}
.cta-band h2{font-size:clamp(22px,3vw,28px)}
.cta-band p{margin-top:10px;font-size:14px}
.cta-band .hero-cta{justify-content:center}
.cta-band .hero-note{color:var(--ink)}

/* ===== フッター ===== */
footer{background:#4A3F35;color:#EFE8DC;font-size:12px;text-align:center;padding:30px 20px 90px}
footer .fnote{max-width:680px;margin:0 auto 14px;line-height:1.9}
footer a{text-decoration:underline}
.fnav{display:flex;justify-content:center;gap:8px 20px;flex-wrap:wrap;margin-bottom:18px;font-size:13px}
.fnav a{text-decoration:none}
.fnav a:hover{text-decoration:underline}

/* ===== スマホ固定バー ===== */
.fixed-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:300;display:none;grid-template-columns:1fr 1fr;gap:10px;
  padding:8px 14px max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.98);
  border-top:1px solid rgba(74,63,53,.1);box-shadow:0 -10px 24px rgba(74,63,53,.1);
}
.fixed-bar a{padding:13px 8px;text-align:center;font-weight:700;font-size:14px;color:#fff;border-radius:999px;min-height:48px;display:flex;align-items:center;justify-content:center}
.fixed-bar .fb-line{background:var(--line-green)}
.fixed-bar .fb-visit{background:var(--accent-deep)}

/* ===== アニメーション ===== */
.fade{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.fade.show{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.fade{opacity:1;transform:none;transition:none}}

/* ===== レスポンシブ ===== */
@media (max-width:820px){
  .header-inner{padding:10px 16px}
  .btn-visit{padding:9px 16px;font-size:13px}
  .menu-btn{display:flex}
  nav.gnav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg-card);flex-direction:column;gap:0;padding:6px 0 12px;box-shadow:0 12px 22px rgba(74,63,53,.14);font-size:15px}
  nav.gnav.open{display:flex}
  nav.gnav a{padding:13px 26px;border-bottom:1px dashed var(--main-soft)}
  nav.gnav a:last-child{border-bottom:none}
  .head-cta{display:none}
  /* スマホのヒーローは画像＋最小テキストに絞り上寄せ（design-rules §2.4・2026-07-07）。
     CTA大ボタン・注意書きはヒーローに重ねず常時表示の固定バーに委譲。 */
  .hero{align-items:flex-start}
  .hero-inner{grid-template-columns:1fr;padding:32px 20px 40px}
  /* PC用の左右グラデーションはスマホの上寄せ全幅テキストに合わないため、上からの暗幕に差し替え（2026-07-17） */
  .hero-overlay{background:linear-gradient(to bottom,rgba(43,36,28,.58) 0%,rgba(43,36,28,.20) 40%,transparent 62%)}
  .hero .hero-cta{display:none}
  .hero .hero-note{display:none}
  .hero-sub{font-size:14px}
  .page-hero{height:36vh;min-height:210px}
  .quick-inner{grid-template-columns:1fr;gap:8px;padding:16px 20px}
  .quick-item{justify-content:flex-start}
  section{padding:3.5rem 0}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .flow-digest{grid-template-columns:1fr;max-width:420px}
  .fd-item{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px}
  .fd-item .fd-num{margin:0;flex-shrink:0}
  .sougei-grid{grid-template-columns:1fr}
  .access-grid{grid-template-columns:1fr}
  .fixed-bar{display:grid}
}

/* 施設ギャラリー（figureキャプション付き） */
.gallery-grid figure{margin:0}
.gallery-grid figcaption{text-align:center;font-size:13px;margin-top:8px;color:var(--accent-deep);font-weight:700}


/* ===== ヒーローを最初の画面に収める（2026-08-11 実測にもとづく修正） =====
   min-height:100svh のままだと、上に載るサンプルバー＋ヘッダーの分だけ画面からはみ出す。
   このサンプルは height でなく min-height でヒーローの高さを決めているため、
   引き算も min-height 側に入れる（height に入れても効かない）。
   引く値は幅の帯ごとに実測：1101px以上=111 ／ 603〜1100px=105 ／ 602px以下=131。 */
@media(min-width:1101px){.hero{min-height:calc(100svh - 111px)}}
@media(min-width:603px) and (max-width:1100px){.hero{min-height:calc(100svh - 105px)}}
@media(max-width:602px){.hero{min-height:calc(100svh - 131px)}}
