/* Tokyo pre-school Navi — 施設詳細ページ（トンマナ: 遊び心×信頼のバランス型） */
:root{
  --cream:#FAF6EF; --ink:#2B2B2B; --orange:#F5853F; --sky:#3FA9D6;
  --yellow:#F7C948; --coral:#E8543E; --green:#5FB87A; --pink:#F2A6C2;
  --line:#ECE3D4; --muted:#8C8475; --card:#fff; --shadow:0 3px 14px rgba(120,90,40,.08);
}
*{box-sizing:border-box}
body.tpn-fac-body{margin:0;background:var(--cream);color:var(--ink);
  font-family:-apple-system,"Hiragino Maru Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.75;-webkit-font-smoothing:antialiased}
.tpn-wrap{max-width:560px;margin:0 auto;background:var(--cream);min-height:100dvh;position:relative;padding-bottom:88px}

/* トップバー */
.tpn-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;
  padding:10px 14px;background:rgba(250,246,239,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tpn-top .back{width:38px;height:38px;border:none;border-radius:50%;background:#fff;box-shadow:var(--shadow);
  font-size:1.1rem;cursor:pointer;flex:none}
.tpn-top .brand{font-weight:800;font-size:.95rem;color:var(--orange)}
.tpn-top .brand small{color:var(--muted);font-weight:700}

/* ヒーロー（ギャラリー） */
.tpn-hero{position:relative}
.gallery{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}
.gallery::-webkit-scrollbar{display:none}
.gallery img{width:100%;min-width:100%;height:260px;object-fit:cover;scroll-snap-align:center}
.gallery .noimg{width:100%;min-width:100%;height:220px;
  background:radial-gradient(120% 120% at 30% 20%,#FFE9D6 0%,#FCEFD9 55%,#EAF6FF 100%);
  display:flex;align-items:center;justify-content:center;font-size:4rem}
.gallery .ph-illust{width:100%;min-width:100%;height:230px;object-fit:cover;background:#FBF3E6}

/* 見出しカード（ヒーローに重なる角丸） */
.headcard{position:relative;margin:-26px 16px 0;background:var(--card);border-radius:22px;
  box-shadow:var(--shadow);padding:18px 18px 16px}
.headcard h1{font-size:1.5rem;font-weight:800;line-height:1.35;margin:0}
.headcard .en{color:var(--muted);font-weight:700;font-size:.9rem;margin-top:2px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag{font-size:.76rem;font-weight:800;border-radius:999px;padding:4px 11px;background:#F2EDE3;color:var(--ink)}
.tag.area{background:#FFF0E6;color:var(--orange)}
.tag.en{background:#E9F6EE;color:#3A9D63}
.tag.cert{background:#EAF4FB;color:#2A8BBF}

/* 本文 */
.body{padding:0 16px}
.summary{position:relative;background:#fff;border-radius:18px;box-shadow:var(--shadow);
  padding:16px 16px 16px 18px;margin:16px 0;font-size:1rem}
.summary:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:5px;border-radius:3px;
  background:linear-gradient(var(--orange),var(--yellow))}
.summary .doodle{position:absolute;right:10px;top:-14px;font-size:1.4rem;transform:rotate(8deg)}

h2.sec{display:flex;align-items:center;gap:8px;font-size:1.18rem;font-weight:800;margin:26px 2px 12px}
h2.sec .dot{width:14px;height:14px;border-radius:50%;display:inline-block}
h2.sec .dot.o{background:var(--orange)} h2.sec .dot.b{background:var(--sky)}
h2.sec .dot.g{background:var(--green)} h2.sec .dot.p{background:var(--pink)} h2.sec .dot.y{background:var(--yellow)}

.panel{background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:6px 16px;overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 4px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.95rem}
tr:last-child th,tr:last-child td{border-bottom:none}
th{width:32%;color:var(--muted);font-weight:800;white-space:nowrap}
.panel.price td.amt{font-weight:800;color:var(--orange);text-align:right;white-space:nowrap;font-size:1.02rem}
.panel.price tr.adm th,.panel.price tr.adm td{color:var(--muted)}
.panel.price tr.adm td.amt{color:var(--coral)}

/* イベント告知（学校詳細上部） */
.tpn-ev-callout{background:linear-gradient(135deg,#FFF3E0,#FFE7CF);border:1.5px solid #F8D9B8;
  border-radius:16px;padding:12px 14px;margin:14px 0}
.tpn-ev-callout .lab{font-weight:800;font-size:.9rem;color:#C9690E;margin-bottom:4px}
.tpn-ev-callout .ev{display:flex;align-items:center;gap:8px;background:#fff;border-radius:11px;
  padding:11px 12px;margin-top:8px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}
.tpn-ev-callout .ev .tag{flex:none;font-size:.7rem;font-weight:800;background:var(--orange);color:#fff;border-radius:6px;padding:2px 7px}
.tpn-ev-callout .ev .ttl{flex:1;font-weight:800;font-size:.92rem;min-width:0}
.tpn-ev-callout .ev .dt{flex:none;font-size:.75rem;color:var(--muted)}
.tpn-ev-callout .ev .arw{flex:none;color:var(--orange);font-weight:800;font-size:1.2rem}

/* 送迎バス（青） */
.bus-panel{background:#F2FAFE;border:1.5px solid #DCEEF8}
.bus-panel .area{font-weight:800;color:#2A8BBF;margin:8px 0}
.bus-list{list-style:none;margin:6px 0 10px;padding:0}
.bus-list li{position:relative;padding:6px 0 6px 26px;border-bottom:1px dashed #D5E8F3;font-size:.94rem}
.bus-list li:last-child{border-bottom:none}
.bus-list li:before{content:"🚏";position:absolute;left:0;top:5px}

#tpn-fac-map{height:240px;border-radius:18px;margin-top:6px;box-shadow:var(--shadow)}

/* FAQ */
.faq{background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:6px 16px}
.faq dt{font-weight:800;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.faq dt:first-of-type{border-top:none}
.faq dt:before{content:"Q";display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;background:var(--orange);color:#fff;font-size:.8rem;margin-right:8px}
.faq dd{margin:6px 0 12px;padding-left:30px;color:#3a3a3a}
.faq dd:before{content:"A";display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;background:var(--sky);color:#fff;font-size:.8rem;margin-left:-30px;margin-right:8px;vertical-align:top}
.note{color:var(--muted);font-size:.88rem;padding:8px 0}

/* 波線ディバイダ（手描き風のちょい足し） */
.wave{height:14px;margin:22px 0 0;background-repeat:repeat-x;background-size:28px 14px;opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='14'><path d='M0 7 Q7 0 14 7 T28 7' fill='none' stroke='%23F5853F' stroke-width='2'/></svg>")}

/* 固定CTA */
.cta{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;max-width:560px;margin:0 auto;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);border-top:1px solid var(--line)}
.cta a{flex:1;text-align:center;text-decoration:none;font-weight:800;border-radius:14px;padding:14px 8px;font-size:.98rem}
.cta .call{background:var(--orange);color:#fff;box-shadow:0 4px 12px rgba(245,133,63,.35)}
.cta .site{background:#fff;color:var(--orange);border:2px solid var(--orange)}
