
    * { margin: 0; padding: 0; box-sizing: border-box; }
    body {
      font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
      line-height: 1.7;
      color: #333;
      background: #fff;
    }

    /* ========== Header ========== */
    header { background:#fff; border-bottom:3px solid #1abc9c; padding:10px 20px; position:sticky; top:0; z-index:1000; }
    header .header-container { display:flex; align-items:center; gap:14px; max-width:1100px; margin:0 auto; justify-content:flex-start; }
    header .logo { display:flex; }
    .logo-link { display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
    .logo-img { height:40px; width:auto; display:block; }
    .logo-text { display:flex; flex-direction:column; font-size:0.95rem; font-weight:700; color:#333; line-height:1.2; white-space:nowrap; }
    .logo-text-sub { font-size:0.62rem; font-weight:400; color:#666; }
    .header-nav { display:flex; flex-wrap:wrap; align-items:center; gap:2px; }
    .header-nav a { display:inline-block; color:#172033; text-decoration:none; font-weight:700; font-size:0.82rem; padding:6px 9px; border-radius:999px; white-space:nowrap; }
    .header-nav a:hover { background:#f0f0f0; }
    .header-nav a[aria-current="page"] { background:#1abc9c; color:#fff; }
    .header-actions { margin-left:auto; flex-shrink:0; display:flex; align-items:center; gap:8px; }
    .header-actions .header-donate-btn { display:inline-block; padding:6px 14px; background:#8e44ad; color:#fff; border-radius:999px; text-decoration:none; font-size:0.82rem; font-weight:bold; white-space:nowrap; }
    .header-actions .lang-toggle { display:inline-block; padding:6px 12px; background:#1abc9c; color:#fff; border-radius:999px; text-decoration:none; font-size:0.82rem; font-weight:bold; white-space:nowrap; }
    .header-actions .lang-toggle-ja { background:#e90114; }
    @media (max-width:880px){ header .header-container{flex-wrap:wrap;} .header-nav{order:3; width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; background-image:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(255,255,255,0),#fff 70%),radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.22),rgba(0,0,0,0)),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.22),rgba(0,0,0,0)); background-position:0 0,100% 0,0 0,100% 0; background-repeat:no-repeat; background-color:#fff; background-size:40px 100%,40px 100%,14px 100%,14px 100%; background-attachment:local,local,scroll,scroll; } }

    /* ========== Hero ========== */
    .hero {
      background: linear-gradient(135deg, #0f6b5a 0%, #16a085 55%, #1abc9c 100%);
      padding: 60px 20px 56px;
      text-align: center;
      color: #fff;
      position: relative;
      overflow: hidden;
    }
    .hero::before { content:""; position:absolute; top:-70px; right:-70px; width:240px; height:240px; background:rgba(255,255,255,.10); border-radius:50%; }
    .hero::after { content:""; position:absolute; bottom:-90px; left:-50px; width:300px; height:300px; background:rgba(255,255,255,.07); border-radius:50%; }
    .hero > * { position: relative; z-index: 1; }
    .hero-inner { position:relative; z-index:1; max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; text-align:left; }
    .hero-text .hero-tags { justify-content:flex-start; }
    .hero-text .hero-sub { margin-left:0; }
    .hero-img { width:100%; max-width:100%; height:auto; display:block; border-radius:16px; box-shadow:0 14px 40px rgba(0,0,0,.28); }
    @media (max-width:860px) {
      .hero-inner { grid-template-columns:1fr; gap:28px; text-align:center; }
      .hero-text .hero-tags { justify-content:center; }
      .hero-text .hero-sub { margin-left:auto; }
      .hero-img { max-width:560px; margin:0 auto; }
    }
    .hero-badge { display:inline-block; background:rgba(255,255,255,.2); border-radius:20px; padding:6px 20px; font-size:0.9rem; font-weight:bold; letter-spacing:.05em; margin-bottom:18px; }
    .hero h1 { font-size:3rem; line-height:1.2; margin-bottom:14px; font-weight:900; letter-spacing:.04em; text-shadow:1px 2px 8px rgba(0,0,0,.2); }
    .hero-catch { font-size:1.45rem; font-weight:700; line-height:1.6; margin-bottom:22px; }
    .hero-org { display:block; font-size:1.1rem; font-weight:700; letter-spacing:.08em; opacity:.92; margin-bottom:6px; text-shadow:none; }
    .hero-tags { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
    .hero-tag { background:rgba(255,255,255,.2); border:2px solid rgba(255,255,255,.6); border-radius:30px; padding:6px 18px; font-size:0.95rem; font-weight:bold; }
    .hero-sub { font-size:1.02rem; opacity:.95; max-width:640px; margin:0 auto 26px; }
    .hero-status { display:inline-block; background:#fff; color:#0f6b5a; border-radius:12px; padding:14px 22px; font-size:0.95rem; font-weight:bold; line-height:1.6; box-shadow:0 4px 16px rgba(0,0,0,.15); max-width:640px; }
    .hero-cta { display:inline-block; margin-top:22px; padding:14px 36px; background:#fff200; color:#0f6b5a; border-radius:10px; text-decoration:none; font-size:1.05rem; font-weight:900; box-shadow:0 4px 16px rgba(0,0,0,.18); transition:transform .2s ease, opacity .2s ease; }
    .hero-date { display:flex; align-items:stretch; gap:0; background:#fff; color:#0f6b5a; border-radius:14px; overflow:hidden; box-shadow:0 4px 16px rgba(0,0,0,.15); max-width:560px; text-align:left; }
    .hd-day { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px 18px; background:#0f6b5a; color:#fff; line-height:1.1; }
    .hd-m { font-size:0.85rem; font-weight:700; letter-spacing:.05em; }
    .hd-d { font-size:2.4rem; font-weight:900; }
    .hd-w { font-size:0.85rem; font-weight:700; }
    .hd-body { padding:12px 18px; display:flex; flex-direction:column; justify-content:center; gap:2px; font-size:0.9rem; line-height:1.55; }
    .hd-time { font-size:1.15rem; font-weight:900; }
    .hd-note { color:#4d5f5a; font-size:0.85rem; }
    @media (max-width:860px) { .hero-date { margin:0 auto; } }
    .hero-cta:hover { transform:translateY(-2px); opacity:.92; }
    .hero-ctas { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
    .hero-ctas .hero-cta { margin-top:0; }
    .hero-cta-line { background:#06C755; color:#fff; }
    .hero-cta-outline { background:rgba(255,255,255,.14); color:#fff; border:2px solid rgba(255,255,255,.75); box-shadow:none; font-weight:700; }
    .line-block { display:flex; flex-wrap:wrap; align-items:center; gap:16px 20px; margin:18px 0 6px; padding:16px 18px; background:#fff; border:1px solid #d7ece2; border-radius:12px; }
    .line-block img { width:120px; height:120px; display:block; border-radius:8px; }
    .line-block p { margin:0 0 10px; font-size:0.95rem; color:#3f4d4a; }
    .line-btn { display:inline-block; padding:10px 20px; background:#06C755; color:#fff; border-radius:8px; text-decoration:none; font-weight:bold; font-size:0.95rem; }
    .line-btn:hover { opacity:.9; }
    @media (max-width:860px) { .hero-ctas { justify-content:center; } }
    @media (max-width:768px) { .hero h1 { font-size:2.2rem; } .hero-org { font-size:0.95rem; } .hero-catch { font-size:1.15rem; } }

    /* ========== Main ========== */
    main { max-width: 860px; margin: 0 auto; padding: 48px 20px 80px; }
    .back-link { display:inline-block; margin-bottom:32px; color:#117864; text-decoration:none; font-size:0.9rem; font-weight:bold; }
    .back-link:hover { text-decoration: underline; }
    .section { margin-bottom: 60px; }
    .section-title { font-size:1.5rem; font-weight:bold; color:#333; border-left:5px solid #1abc9c; padding-left:14px; margin-bottom:24px; line-height:1.4; }
    .section-lead { color:#4d5966; margin-bottom:20px; }
    .section p { margin-bottom: 14px; }
    .section p:last-child { margin-bottom: 0; }

    /* Kids cards */
    .kids-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    @media (max-width:640px) { .kids-grid { grid-template-columns:1fr; } }
    .kids-card { border-radius:16px; padding:26px 22px; background:#f0fcf9; border:1px solid #bfe9df; opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; }
    .kids-card.visible { opacity:1; transform:translateY(0); }
    .kids-card .kids-icon { width:40px; height:40px; display:block; margin-bottom:12px; color:#0f6b5a; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .kids-card h3 { font-size:1.15rem; font-weight:900; color:#0f6b5a; margin-bottom:10px; line-height:1.4; }
    .kids-card p { font-size:0.95rem; color:#3f4d4a; line-height:1.75; margin:0; }

    /* Info table */
    .info-table { width:100%; border-collapse:collapse; font-size:1rem; }
    .info-table th, .info-table td { padding:14px 16px; border-bottom:1px solid #eee; text-align:left; vertical-align:top; }
    .info-table th { width:130px; white-space:nowrap; color:#117864; font-weight:bold; background:#f0fcf9; }
    .info-table td small { display:block; color:#6b7a77; font-size:0.85rem; margin-top:4px; }
    @media (max-width:600px) { .info-table th, .info-table td { display:block; width:100%; } .info-table th { border-bottom:none; padding-bottom:4px; } .info-table td { padding-top:4px; } }

    /* Parents block */
    .parents-lead { font-size:1.35rem; font-weight:900; color:#0f6b5a; line-height:1.5; margin-bottom:20px; }
    .sub-h3 { font-size:1.12rem; color:#0f6b5a; margin:26px 0 12px; font-weight:900; }
    .reason-list { list-style:none; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin-bottom:16px; }
    @media (max-width:700px) { .reason-list { grid-template-columns:1fr; } }
    .reason-list li { background:#f0fcf9; border:1px solid #bfe9df; border-radius:10px; padding:14px; font-size:0.9rem; color:#4d5966; line-height:1.6; }
    .reason-list li b { display:block; color:#0f6b5a; font-size:0.95rem; margin-bottom:4px; }
    .exam-box { border-left-color:#1abc9c; background:#f7fbfa; margin-top:4px; }
    .sub-h3 + .stance-list { margin-top:0; }
    .stance-list { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; margin-top:24px; counter-reset:stance; }
    @media (max-width:700px) { .stance-list { grid-template-columns:1fr; } }
    .stance-item { background:#fff; border-radius:12px; border-top:5px solid #1abc9c; box-shadow:0 2px 10px rgba(0,0,0,.06); padding:20px 18px; counter-increment:stance; }
    .stance-item::before { content:"0" counter(stance); display:block; margin-bottom:8px; color:#117864; font-size:0.78rem; font-weight:900; letter-spacing:.14em; }
    .stance-item h4 { font-size:1.05rem; font-weight:bold; color:#333; margin-bottom:8px; line-height:1.45; }
    .stance-item p { font-size:0.9rem; color:#555; line-height:1.7; margin:0; }

    /* About box */
    .about-box { display:grid; grid-template-columns:auto 1fr; gap:18px 22px; align-items:start; background:#fff; border:1px solid #e3ecea; border-radius:16px; padding:26px 26px; }
    .about-box img { width:88px; height:auto; display:block; }
    .about-box p { font-size:0.97rem; }
    .about-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin:14px 0 16px; }
    .about-card { display:block; text-decoration:none; background:#f7fbfa; border:1px solid #d7ece2; border-radius:10px; padding:12px 14px; color:#333; transition:border-color .2s ease, transform .2s ease; }
    .about-card:hover { border-color:#1abc9c; transform:translateY(-2px); }
    .about-card b { display:block; color:#0f6b5a; font-size:0.95rem; margin-bottom:3px; }
    .about-card span { display:block; font-size:0.88rem; color:#4d5966; line-height:1.55; }
    .about-links { display:flex; flex-wrap:wrap; gap:10px; }
    .about-links a { display:inline-block; padding:8px 16px; border:2px solid #1abc9c; border-radius:999px; color:#0f6b5a; text-decoration:none; font-weight:bold; font-size:0.9rem; }
    .about-links a:hover { background:#1abc9c; color:#fff; }
    @media (max-width:640px) { .about-box { grid-template-columns:1fr; padding:22px 18px; } .about-grid { grid-template-columns:1fr; } }

    /* Note boxes */
    .note-box { padding:22px 24px; border-radius:12px; background:#f7f9fb; border-left:5px solid #3498db; margin-top:16px; }
    .note-box.warm { background:#fff8f0; border-left-color:#f39c12; }
    .note-box h3 { font-size:1.1rem; color:#333; margin-bottom:10px; }
    .note-box p { font-size:0.95rem; color:#4d5966; line-height:1.8; }
    .note-box ul { margin:8px 0 0 1.2em; font-size:0.95rem; color:#4d5966; line-height:1.8; }
    .check-list { list-style:none; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px 18px; }
    @media (max-width:640px) { .check-list { grid-template-columns:1fr; } }
    .check-list li { position:relative; padding:12px 14px 12px 42px; background:#fff; border:1px solid #e3ecea; border-radius:10px; color:#34413e; line-height:1.6; font-size:0.95rem; }
    .check-list li::before { content:"✓"; position:absolute; top:12px; left:16px; color:#1abc9c; font-weight:900; }


    /* Related */
    .related-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    @media (max-width:640px) { .related-grid { grid-template-columns:1fr; } }
    .related-card { display:block; text-decoration:none; background:#fff; border:1px solid #e3ecea; border-radius:12px; padding:18px 18px; color:#333; transition:box-shadow .2s ease, transform .2s ease; }
    .related-card:hover { box-shadow:0 6px 18px rgba(0,0,0,.08); transform:translateY(-2px); }
    .related-card span { display:block; font-size:0.78rem; color:#117864; font-weight:bold; margin-bottom:6px; letter-spacing:.05em; }
    .related-card strong { display:block; font-size:1rem; line-height:1.5; }
    .related-card em { display:block; font-style:normal; font-size:0.85rem; color:#6b7a77; margin-top:6px; }

    /* Register */
    .register-wrap { background:linear-gradient(135deg, #f0fcf9, #f4f8ff); border:1px solid #bfe9df; border-radius:20px; padding:36px 28px; }
    .register-wrap h2 { font-size:1.6rem; font-weight:900; color:#0f6b5a; margin-bottom:10px; }
    .register-wrap .section-lead { margin-bottom:22px; }
    .register-wrap .dkb-form { margin-top:8px; }
    .form-fallback { margin-top:18px; font-size:0.9rem; color:#4d5966; text-align:center; }
    .form-fallback a { color:#117864; font-weight:bold; }
    @media (max-width:640px) { .register-wrap { padding:26px 18px; } }


    /* ========== Footer ========== */
    footer { background:#222; color:#ddd; text-align:center; padding:20px; font-size:0.9rem; }
    .footer-content { max-width:900px; margin:0 auto; }
    footer a { color:#aaa; text-decoration:none; }
    footer a:hover { text-decoration:underline; }
.venue-photos { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:8px; }
.venue-photos figure { margin:0; }
.venue-photos img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:10px; display:block; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.venue-photos figcaption { font-size:.85rem; color:#555; text-align:center; margin-top:6px; }
@media (max-width:640px){ .venue-photos { grid-template-columns:1fr; } }
.check-list li b{color:#0f6b5a}
.hero-text h1{line-height:1.3}

main.ib{max-width:none;margin:0;padding:0}
header.lp-head{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid #ceded9;padding:0}
.lp-head-in{max-width:1120px;margin:0 auto;padding:10px 32px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.lp-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#0f2545;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;font-weight:700;font-size:20px;line-height:1.3}
.lp-brand img{width:44px;height:auto}
.lp-brand small{display:block;font-size:12px;font-weight:400;font-family:"Noto Sans JP",sans-serif}
.lp-actions{display:flex;align-items:center;gap:14px}
.lp-lang{font-size:14px;color:#117a65;font-weight:700;text-decoration:none}
.lp-cta{display:inline-block;background:#a64c08;color:#fff!important;font-weight:700;font-size:14px;padding:9px 20px;border-radius:100px;text-decoration:none}
.lp-cta:hover{background:#853c06}
.lp-mobile-bar{display:none}
@media(max-width:760px){.lp-head-in{padding:8px 16px}.lp-brand{font-size:17px}.lp-brand img{width:36px}.lp-cta{display:none}
body{padding-bottom:74px}
.lp-mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:1.2fr 1fr;gap:10px;padding:10px 14px;background:#fffdf9;border-top:1px solid #ceded9;box-shadow:0 -2px 10px #0f254512}
.lp-mobile-bar a{display:flex;align-items:center;justify-content:center;min-height:46px;text-decoration:none;font-size:14px;font-weight:700;border:1px solid #117a65;border-radius:100px;color:#117a65;background:#fff}
.lp-mobile-bar a:first-child{color:#fff;background:#a64c08;border-color:#a64c08}}

:root{--navy:#0f2545;--teal:#117a65;--accent:#1abc9c;--orange:#e67e22;--orange-d:#a64c08;--mint:#eef7f4;--apricot:#fdf3ea;--line:#ceded9;--muted:#536474;--wrap:1120px}
.ib{color:var(--navy);font-family:"Noto Sans JP",system-ui,sans-serif;font-size:16px;line-height:1.95;overflow-wrap:anywhere}
.ib img{display:block;max-width:100%;height:auto}
.ib a{color:var(--teal);text-decoration-thickness:2px;text-decoration-color:#117a6580;text-underline-offset:5px}
.ib a:hover{color:var(--orange-d)}
.ib .wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.ib>section{padding:76px 0;background:var(--mint);border-bottom:1px dashed #adc8bf}
.ib>section.bg-white{background:#fff}
.ib>section.bg-apricot{background:var(--apricot)}
.ib h1,.ib h2,.ib h3{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;font-weight:700;line-height:1.55;color:var(--navy)}
.ib h2{font-size:30px;margin:0 0 22px}
.ib h3{font-size:21px;margin:26px 0 8px}
.ib p{margin:0 0 18px}
.ib figure{margin:0}
.ib .section-lead{font-size:18px;max-width:780px}
.ib .note{font-size:14.5px;color:var(--muted);line-height:1.8}
.ib .hand{font-family:"Klee One",cursive;font-weight:600;color:var(--orange-d);font-size:20px;line-height:1.8}
.ib .btn{display:inline-block;background:var(--orange-d);color:#fff;font-size:16px;font-weight:700;padding:14px 26px;border-radius:100px;text-decoration:none;text-align:center;line-height:1.6}
.ib .btn:hover{background:#853c06;color:#fff}
.ib .btn.secondary{color:var(--teal);background:#fff;border:1px solid var(--teal)}
.ib .btn.secondary:hover{background:#e1f0e9}
.ib .btn.line{background:#06C755;color:#fff}
/* hero */
.ib>section.hero2{padding:0 0 44px;border-bottom:0}
.hero2-photo{height:clamp(220px,34vw,440px);overflow:hidden;background:#e8f2ee}
.hero2-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero2-sign{background:#fff;max-width:660px;margin:-60px 0 0;padding:26px 30px 22px;border-radius:4px;box-shadow:0 2px 0 #cfe3dc;position:relative}
.hero2-kind{margin:0;font-size:15px;font-weight:700;color:var(--teal)}
.ib .hero2 h1{font-size:clamp(32px,4.4vw,48px);line-height:1.3;margin:6px 0 12px;letter-spacing:.02em}
.hero2 h1 .h1-org{display:block;font-size:17px;font-weight:700;color:#117a65;letter-spacing:.06em;margin-bottom:2px}
.hero2-text{margin:0!important;font-size:17px;line-height:1.9}
.hero2-sign .hand{margin:12px 0 0;font-size:18px}
.hero2-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;margin:22px 0 0;background:#fff;border:1px solid var(--line);border-radius:6px}
.hero2-info>div{padding:14px 18px;border-right:1px solid #e1ece8;min-width:0}
.hero2-info>div:last-child{border-right:0}
.hero2-info dt{font-size:13px;font-weight:700;color:var(--teal);margin:0 0 2px}
.hero2-info dd{margin:0;font-size:15px;line-height:1.6}
.hero2-info small{font-size:12.5px;color:#55656f;display:block;margin-top:2px}
.hero2-cta{display:flex;flex-direction:column;justify-content:center;gap:6px}
/* concerns */
.concerns{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin:26px 0 30px}
.concerns li{font-family:"Zen Maru Gothic",sans-serif;font-size:19px;padding:18px 0 18px 22px;border-bottom:1px solid var(--line);position:relative}
.concerns li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);position:absolute;left:0;top:32px}
.bridge{font-family:"Klee One",serif;font-weight:600;font-size:24px;color:var(--teal);margin-bottom:10px!important}
/* reason rows */
.reason-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin:30px 0 10px}
.reason-row figure{transform:rotate(-.6deg);margin:0 4px}
.reason-row img{border:6px solid #fff;box-shadow:0 6px 18px #0f254510;border-radius:12px}
.reason-row figcaption{font-size:13.5px;color:var(--muted);margin-top:8px}
.why-list{display:grid;grid-template-columns:1fr;gap:18px}
.why-list h3{margin:0 0 4px;font-size:19px;color:var(--teal)}
.why-list p{margin:0;font-size:15.5px}
/* places (navy) */
.ib>section.places{background:var(--navy);border-bottom:0}
.places h2,.places h3{color:#fff}
.places .section-lead{color:#e6eef3}
.place-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:26px}
.place{background:#fff;color:var(--navy);border-radius:10px;padding:28px 28px 24px;display:flex;flex-direction:column}
.place .kind{display:inline-block;align-self:flex-start;font-size:13px;font-weight:700;color:var(--navy);background:#dfefe9;padding:2px 12px;border-radius:100px}
.ib .place h3{color:var(--navy);font-size:26px;margin:8px 0 4px}
.place .when{font-weight:700;color:var(--teal);font-size:15.5px;line-height:1.7;margin-bottom:12px!important}
.place p{font-size:15px}
.place .btn{margin-top:auto;align-self:flex-start}
.places .note{color:#b9c8d3;margin-top:22px}
/* voices */
.voice-feature{margin:10px 0 34px;max-width:860px;position:relative;background:#fff;padding:34px 36px 24px;transform:rotate(-.4deg);box-shadow:0 3px 10px #0f254512;border:1px solid #e5dfd3}
.voice-feature::before{content:"";position:absolute;top:-12px;left:calc(50% - 44px);width:88px;height:25px;background:#b8dcd3cc;transform:rotate(2.5deg)}
.voice-feature blockquote{margin:0 0 12px;font-family:"Klee One",serif;font-weight:600;font-size:23px;line-height:1.8}
.voice-feature figcaption,.voice figcaption{font-size:13.5px;color:var(--muted);text-align:right}
.voice-group{font-size:17px!important;color:var(--orange-d)!important;margin:34px 0 0!important}
.voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:16px}
.voice{background:#fff;padding:24px 22px 16px;border:1px solid #e5dfd3;border-radius:3px 12px 4px 10px;box-shadow:2px 4px 0 #e8dfd3;display:flex;flex-direction:column;justify-content:space-between}
.voice blockquote{margin:0 0 14px;font-family:"Klee One",serif;font-weight:600;font-size:17px;line-height:1.85}
/* FAQ */
.ib details{border-bottom:1px solid var(--line);padding:18px 0}
.ib summary{cursor:pointer;font-weight:700;font-size:16.5px;color:var(--navy)}
.ib details p{margin:12px 0 4px;font-size:15.5px;max-width:820px}
/* steps */
.visit-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:visit;max-width:960px;margin:28px auto}
.visit-steps li{counter-increment:visit;padding:4px 0 4px 22px;border-left:1px dashed #9cc2b6}
.visit-steps li::before{content:counter(visit);font-family:"Klee One",serif;font-weight:600;font-size:30px;color:var(--orange-d);display:block;line-height:1.1;margin-bottom:2px}
.visit-steps h3{margin:0 0 6px;font-size:18px}
.visit-steps p{font-size:14.5px;margin:0}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}
.section-cta{border-top:1px solid #a9cfc0;margin:36px 0 0;padding:26px 0 0;text-align:center}
.section-cta p{font-family:"Klee One",serif;font-weight:600;font-size:22px;margin-bottom:16px}
/* related */
.related{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.related li{padding:14px 0;border-bottom:1px solid var(--line)}
.related small{display:block;font-size:12.5px;color:var(--muted)}
.rel-groups{display:grid;grid-template-columns:1fr 1fr;gap:10px 40px;margin-top:10px}
.rel-group h3{font-size:18px!important;color:var(--teal)!important;margin:18px 0 4px!important}
.rel-group .related{grid-template-columns:1fr;margin-top:0}
@media(max-width:760px){.rel-groups{grid-template-columns:1fr}}
.why-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 44px;margin-top:22px}
.why-grid h3{margin:0 0 6px;font-size:19px;color:var(--teal)}
.why-grid p{margin:0;font-size:15.5px}
.why-hand{font-family:"Klee One",cursive;font-weight:600;color:var(--orange-d);font-size:21px;line-height:1.8;margin:34px 0 0!important;padding-top:24px;border-top:1px dashed var(--line)}
@media(max-width:760px){.why-grid{grid-template-columns:1fr;gap:22px}}
.unique-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin-top:18px}
.unique{padding:22px 0 20px;border-bottom:1px dashed #adc8bf;display:grid;grid-template-columns:56px 1fr;column-gap:6px;align-items:start}
.unique>*{grid-column:2}
.unique .num{grid-column:1;grid-row:1/span 2}
.unique .num{font-family:"Klee One",serif;font-size:34px;font-weight:600;color:var(--orange-d);line-height:1.1}
.ib .unique h3{margin:2px 0 6px;font-size:20px;color:var(--teal)}
.unique p{margin:0;font-size:15.5px}
.unique a{font-weight:700}
.road{list-style:none;padding:0;margin:26px 0 8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.road li{padding:18px 18px;border-right:1px solid var(--line);font-size:14.5px;line-height:1.75}
.road li:last-child{border-right:0;background:#fff8ef}
.road li b{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:18px;color:var(--navy);margin-bottom:4px}
.road li span{display:block;font-size:12.5px;font-weight:700;color:var(--teal);letter-spacing:.1em}
.road li:not(:last-child) b::after{content:" →";color:var(--teal)}
.profile-note{margin-top:30px!important;padding:18px 22px;background:#fff;border-left:4px solid var(--teal);border-radius:0 6px 6px 0;font-size:15px}
@media(max-width:960px){.road{grid-template-columns:1fr 1fr}.road li{border-bottom:1px solid var(--line)}}
@media(max-width:760px){.unique-grid{grid-template-columns:1fr}.road{grid-template-columns:1fr}}
.pr-video { max-width: 760px; margin: 0 auto; }
.pr-video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; box-shadow: 0 4px 16px rgba(0,0,0,0.12); }
.pr-video-frame button, .pr-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; }
.pr-video-frame button { cursor: pointer; background: #000; }
.pr-video-frame button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pr-video-play { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%; background: rgba(233,1,20,0.92); box-shadow: 0 4px 14px rgba(0,0,0,0.3); }
.pr-video-play::after { content: ""; position: absolute; left: 34px; top: 26px; border-style: solid; border-width: 16px 0 16px 26px; border-color: transparent transparent transparent #fff; }
.pr-video-frame button:hover .pr-video-play, .pr-video-frame button:focus-visible .pr-video-play { background: #e90114; transform: scale(1.06); }
@media (max-width: 600px) { .pr-video-play { width: 60px; height: 60px; margin: -30px 0 0 -30px; } .pr-video-play::after { left: 24px; top: 18px; border-width: 12px 0 12px 19px; } }
.pr-video-caption { text-align: center; font-size: 0.88rem; color: #555; margin-top: 8px; }
.ib>section.video-sec{padding:52px 0;background:#fff}
.ib .hero2-photo{height:clamp(240px,46vw,620px)}
.ib .hero2-photo img{object-position:50% 30%}
.page-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:20px 0 0;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:6px;font-size:14.5px}
.page-nav span{font-weight:700;color:var(--muted);margin-right:6px}
.ib .page-nav a{display:inline-block;padding:4px 12px;border:1px solid #9cc2b6;border-radius:100px;color:var(--teal);text-decoration:none;font-weight:700;background:#fbfdfc}
.ib .page-nav a:hover{background:#e1f0e9;color:var(--orange-d)}
html{scroll-padding-top:80px;scroll-behavior:smooth}
.hero2-kind .motto{display:table;margin-bottom:8px!important;background:#0f2545;color:#fff;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;font-size:14px;letter-spacing:.08em;padding:3px 14px;border-radius:4px;font-size:15px}
.ib .hero2-kind{color:#536474;font-weight:700}
.ib .hero2-kind .motto{color:#fff}
.ib .hero2-lead-wide{display:none}
@media(min-width:900px){
.ib .hero2-photo{height:clamp(440px,40vw,580px)}
.ib .hero2 .wrap{position:relative}
.ib .hero2-sign{position:absolute;left:32px;top:calc(-1 * clamp(440px,40vw,580px) + 36px);max-width:540px;margin:0;background:rgba(255,255,255,.95);box-shadow:0 6px 24px rgba(15,37,69,.14)}
.ib .hero2 h1{font-size:clamp(34px,3.6vw,46px)}
.ib .hero2-info{margin-top:22px}
.ib .hero2-sign{top:calc(-1 * clamp(440px,40vw,580px) + 32px);max-width:500px;padding:22px 28px 18px}
.ib .hero2-sign .hero2-text{display:none}
.ib .hero2-sign .hand{margin-top:6px}
.ib .hero2-lead-wide{display:block;max-width:860px;margin:22px 0 0!important;font-size:17px}
}
.place-btns{margin-top:auto;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ib .place-more{font-size:14px;font-weight:700}
.more-voices{margin:18px 0 0}
.status{display:inline-block;margin-left:8px;font-size:12.5px;font-weight:700;padding:2px 10px;border-radius:100px;vertical-align:2px}
.status.open{background:#a64c08;color:#fff}
.status.wait{background:#e8eef0;color:#536474}
.calm-line{margin:16px 0 0!important;padding:12px 18px;background:#fff;border-left:4px solid #e08a2e;border-radius:0 6px 6px 0;font-weight:700;font-size:15.5px}
.line-note{width:100%;text-align:center;font-size:14px;color:var(--muted);margin:4px 0 0!important}
@media(max-width:960px){.hero2-info{grid-template-columns:1fr 1fr}.hero2-info>div{border-right:0;border-bottom:1px solid #e1ece8}.hero2-cta{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}}
@media(max-width:760px){.ib .wrap{padding-left:20px;padding-right:20px}.ib>section{padding:48px 0}.ib h2{font-size:26px}
.concerns,.reason-row,.place-grid,.voice-grid,.visit-steps,.related{grid-template-columns:1fr;gap:22px}.concerns{gap:0}.related{gap:0}
.hero2-sign{margin:-44px 0 0;padding:20px 18px 18px}.voice-feature{padding:28px 22px 18px}.voice-feature blockquote{font-size:19px}.ib .btn{width:100%}.cta-row{flex-direction:column}}

.ib .feat-no{font-family:"Zen Maru Gothic",sans-serif;font-size:56px;line-height:1;color:#e8d5bf;margin:0 0 4px;letter-spacing:.04em}
.ib .feat h2{margin-top:0}
.ib .feat .reason-row p{margin:0 0 14px}
@media(max-width:760px){.ib .feat-no{font-size:42px}}

/* ===== futoko-guide 追加 ===== */
.toc2{margin:22px 0 0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px 14px}
.ib .toc2-h{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:17px;color:var(--teal);margin:0 0 10px!important}
.toc2 ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ib .toc2 li a{display:flex;align-items:flex-start;gap:10px;text-decoration:none;color:var(--navy);background:#f7faf9;border:1px solid #e1ece8;border-radius:10px;padding:10px 12px;height:100%}
.ib .toc2 li a:hover{background:#e9f4f0;border-color:#9cc2b6}
.toc2 .tn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:8px;background:var(--teal);color:#fff;font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:13px;padding:0 4px}
.toc2 li:first-child .tn{background:#5b7fa8}
.toc2 .tt b{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:15.5px;line-height:1.45;word-break:auto-phrase}
.toc2 .tt small{display:block;font-size:12.5px;color:var(--muted);line-height:1.55;margin-top:2px;word-break:auto-phrase}
.ib .toc2 li.sos a{background:#fdf2f0;border-color:#efc2b9}
.toc2 li.sos .tn{background:#a83a2c}
.toc2 li.sos b{color:#a83a2c}
.ib .toc2-more{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0!important;font-size:14px}
.ib .toc2-more a{font-weight:700}
@media(max-width:900px){.toc2 ol{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.toc2 ol{grid-template-columns:1fr}.toc2{padding:16px 14px 12px}}

.ib p,.ib li,.ib dd,.ib td,.ib blockquote,.ib .kl-sub,.calm-line{word-break:auto-phrase;text-wrap:pretty}
.ib h1,.ib h2,.ib h3,.ib .gm-label,.ib .cb-title{word-break:auto-phrase;text-wrap:balance}
.ib .sm-cell a{word-break:auto-phrase}
.ib .lead-note{display:inline-block;margin-top:4px;font-size:14.5px;color:var(--muted)}

.ib a.book-cover{display:block;align-self:start}.ib a.book-cover img{width:140px;height:auto;border-radius:4px;box-shadow:0 4px 12px rgba(15,37,69,.18)}
@media(max-width:640px){.ib a.book-cover img{width:120px}}
.ib a.kid-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 18px;text-decoration:none;background:#fff;border:2px solid #cfc2e3;border-radius:16px;padding:16px 22px;margin:0 0 22px;color:var(--navy);max-width:880px}
.ib a.kid-link:hover{border-color:#6b55a8;background:#fbf9fe}
.kl-tag{grid-row:1/3;font-size:12.5px;font-weight:700;color:#fff;background:#6b55a8;border-radius:100px;padding:3px 12px;white-space:nowrap}
.kid-link b{font-family:"Zen Maru Gothic",sans-serif;font-size:19px}
.kl-sub{grid-column:2;font-size:14px;color:var(--muted);line-height:1.7}
.kl-go{grid-row:1/3;grid-column:3;font-weight:700;color:#6b55a8;white-space:nowrap}
@media(max-width:640px){.ib a.kid-link{grid-template-columns:1fr}.kl-tag,.kl-go{grid-row:auto;grid-column:auto;justify-self:start}.kl-sub{grid-column:auto}}

.msg{background:#fff;border-radius:10px;padding:26px 30px;max-width:820px;box-shadow:0 2px 0 #f0dcc6}
.ib .msg p{font-size:16px;line-height:2;margin:0 0 14px}
.ib .msg .msg-sign{text-align:right;margin:20px 0 0;font-weight:700;font-size:15px}
@media(max-width:640px){.msg{padding:20px 18px}}

.book{display:grid;grid-template-columns:140px minmax(0,1fr);gap:22px;background:#fff;color:var(--navy);border-radius:10px;padding:26px 28px;margin:26px 0 18px}
.book-mark{width:96px;height:128px;border-radius:4px 10px 10px 4px;background:linear-gradient(135deg,#f3e3d0,#e8cfb3);box-shadow:inset 6px 0 0 #d9b994,0 3px 8px rgba(15,37,69,.12);display:flex;align-items:center;justify-content:center}
.book-mark span{font-family:"Klee One",serif;font-weight:600;font-size:30px;color:#8a5a2b}
.book .kind{display:inline-block;font-size:12.5px;font-weight:700;color:#a64c08;background:#fdf0e0;padding:2px 12px;border-radius:100px}
.ib .book h3{color:var(--navy);font-size:21px;margin:8px 0 4px}
.ib .book .book-meta{font-size:13.5px;color:var(--muted);margin:0 0 10px}
.ib .book p{font-size:15px}
.ib .book .book-voice{font-family:"Klee One",serif;font-weight:600;font-size:17px;color:var(--orange-d);border-left:3px solid #f0c9a4;padding-left:14px}
@media(max-width:640px){.book{grid-template-columns:1fr;padding:22px 18px}.book-mark{width:72px;height:96px}}

.ib>section.kids{background:#f6f3fa}
.kid-note{background:#fff;border:2px dashed #cfc2e3;border-radius:12px;padding:16px 20px;margin:0 0 22px;font-size:16px;line-height:1.9;max-width:820px}
.kid-note b{display:block;font-family:"Zen Maru Gothic",sans-serif;color:#6b4f99;font-size:17px;margin-bottom:2px}
.kids .g-card .kind{background:#ebe4f5}

.g-card.main{position:relative;padding-top:30px}
.ib .g-card .main-tag{position:absolute;top:-13px;left:18px;margin:0;background:var(--teal);color:#fff;font-size:12.5px;font-weight:700;padding:3px 12px;border-radius:100px;line-height:1.6}
.g-cards{padding-top:6px}
.smap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.sm-row{display:grid;grid-template-columns:150px repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.sm-row:first-child{border-top:0}
.sm-head{background:#f3f7f5}
.sm-colh{padding:12px 14px;font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:15.5px;color:var(--teal);border-left:1px solid var(--line)}
.sm-org{padding:14px 14px;font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:16px;color:var(--navy);line-height:1.4;border-left:6px solid}
.sm-org small{display:block;font-family:"Noto Sans JP",sans-serif;font-size:12.5px;color:var(--muted)}
.sm-head .sm-org{border-left-color:transparent}
.sm-cell{padding:12px 12px;border-left:1px solid var(--line);display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px}
.ib .sm-cell a{display:inline-block;font-size:13.5px;line-height:1.45;font-weight:700;color:var(--navy);text-decoration:none;padding:5px 10px;border-radius:6px;border:1px solid}
.ib .sm-cell a:hover{filter:brightness(.96);text-decoration:underline}
.sm-none{color:#c3ccd2;font-size:14px}
.sm-row.school .sm-org{border-left-color:#f0c9a4;background:#fffaf4}.ib .sm-row.school .sm-cell a{background:#fff6ec;border-color:#f0d6bb}
.sm-row.edu .sm-org{border-left-color:#7cc4ae;background:#f3faf7}.ib .sm-row.edu .sm-cell a{background:#ecf7f2;border-color:#bfe2d6}
.sm-row.welfare .sm-org{border-left-color:#a9c3e0;background:#f4f8fc}.ib .sm-row.welfare .sm-cell a{background:#eef4fb;border-color:#cbdaeb}
.sm-row.tokyo .sm-org{border-left-color:#c4b5dc;background:#f8f5fc}.ib .sm-row.tokyo .sm-cell a{background:#f3effa;border-color:#dcd2ea}
.sm-row.local .sm-org{border-left-color:#e2c96f;background:#fdfaef}.ib .sm-row.local .sm-cell a{background:#fbf6e2;border-color:#ece0b0}
@media(max-width:860px){
.sm-head{display:none}
.sm-row{grid-template-columns:1fr;border-top:8px solid #eef3f1}
.sm-org{border-left-width:6px;padding:12px 14px}
.sm-org small{display:inline;margin-left:6px}
.sm-cell{border-left:0;border-top:1px dashed #e1ebe7;padding:10px 14px 12px}
.sm-cell::before{content:attr(data-col);display:block;width:100%;font-size:12.5px;font-weight:700;color:var(--teal);margin-bottom:2px}
.sm-cell.empty{display:none}}

.ib>section#map{padding:64px 0 56px;border-bottom:1px dashed #adc8bf}
.gmap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start;margin-top:6px}
.gm-step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.ib .gm-label{display:flex;align-items:center;gap:10px;font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:19px;margin:0 0 12px;color:var(--navy)}
.gm-label span{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;font-size:16px;flex-shrink:0}
.gm-label small{font-family:"Noto Sans JP",sans-serif;font-size:13px;color:var(--muted);font-weight:700}
.gm-chips{display:flex;flex-wrap:wrap;gap:8px}
.ib .gm-chips a{display:inline-block;background:#fff;border:1px solid #9cc2b6;border-radius:100px;padding:6px 14px;font-size:14.5px;font-weight:700;color:var(--navy);text-decoration:none;line-height:1.5}
.ib .gm-chips a:hover{background:#e1f0e9}
.ib .gm-arrow{position:relative;text-align:center;margin:0!important;padding:30px 0 12px;font-size:14px;font-weight:700;color:var(--teal)}
.gm-arrow::before{content:"";position:absolute;left:50%;top:4px;width:2px;height:20px;background:var(--accent)}
.gm-arrow::after{content:"";position:absolute;left:calc(50% - 6px);top:18px;border:7px solid transparent;border-top-color:var(--accent);border-bottom:0}
.gm-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ib a.gm-col{display:block;text-decoration:none;color:var(--navy);background:#fbfdfc;border-radius:10px;padding:14px 16px;border:1px solid var(--line);border-top:5px solid}
.ib a.gm-col.c1{border-top-color:#b9cde3}.ib a.gm-col.c2{border-top-color:#9fd3c3}.ib a.gm-col.c3{border-top-color:#f0c9a4}
.gm-col b{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:16.5px;margin-bottom:6px}
.gm-col ul{list-style:none;padding:0;margin:0}
.gm-col li{font-size:14px;line-height:1.7;padding:3px 0 3px 14px;position:relative}
.gm-col li::before{content:"";position:absolute;left:2px;top:12px;width:5px;height:5px;border-radius:50%;background:#9cb3ad}
.ib a.gm-col:hover{box-shadow:0 4px 12px rgba(15,37,69,.08)}
.ib .gm-note{font-size:13.5px;color:var(--muted);margin:10px 0 0!important}
.gmap-side{background:var(--apricot);border-radius:12px;padding:18px 18px 10px}
.ib .gm-label.side{font-size:17px}
.ib a.gm-side-item{display:block;text-decoration:none;color:#3c4b5a;font-size:13.5px;line-height:1.65;background:#fff;border-radius:8px;padding:10px 12px;margin:0 0 8px;border:1px solid #efe2d3}
.gm-side-item b{display:block;color:var(--navy);font-size:15px;font-family:"Zen Maru Gothic",sans-serif}
.ib a.gm-side-item.sos{border-color:#e9b4a9}.gm-side-item.sos b{color:#a83a2c}
@media(max-width:960px){.gmap{grid-template-columns:1fr}}
@media(max-width:640px){.gm-cols{grid-template-columns:1fr}.gm-step{padding:16px 14px}}

.g-card.wide{margin-top:26px}.g-card.wide .g-split{margin-top:6px}
.ib>section.hero2.nophoto{padding:64px 0 48px;position:relative;overflow:hidden;isolation:isolate;background:
radial-gradient(ellipse 520px 420px at 88% 18%,#dcebf3 0%,rgba(220,235,243,0) 70%),
radial-gradient(ellipse 600px 460px at 74% 78%,#f8e6d6 0%,rgba(248,230,214,0) 70%),
radial-gradient(ellipse 680px 520px at 8% 0%,#dff0e8 0%,rgba(223,240,232,0) 72%),
linear-gradient(180deg,#f3f8f6 0%,#f7f4ef 100%)}
.ib>section.hero2.nophoto::before,.ib>section.hero2.nophoto::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(2px);pointer-events:none}
.ib>section.hero2.nophoto::before{width:340px;height:340px;right:6%;top:40px;background:radial-gradient(circle at 35% 35%,#e9e3f1 0%,#e9e3f1cc 40%,rgba(233,227,241,0) 72%)}
.ib>section.hero2.nophoto::after{width:220px;height:220px;right:22%;top:210px;background:radial-gradient(circle at 40% 40%,#d6ece4 0%,#d6ece4b3 45%,rgba(214,236,228,0) 72%)}
.ib .hero2.nophoto .hero2-sign{position:static;margin:0;max-width:820px;padding:0;background:transparent;box-shadow:none;border-radius:0}
.ib .hero2.nophoto .hero2-sign .hero2-text{display:block;max-width:760px;margin:16px 0 0!important}
.ib .hero2.nophoto .hero2-lead-wide{display:none}
.ib .hero2.nophoto h1{font-size:clamp(30px,4vw,44px)}
@media(max-width:760px){.ib .hero2.nophoto h1{font-size:clamp(20px,6.2vw,30px);letter-spacing:0;white-space:nowrap}.ib>section.hero2.nophoto{padding:40px 0 36px}.ib>section.hero2.nophoto::before{width:220px;height:220px;right:-60px;top:10px}.ib>section.hero2.nophoto::after{display:none}}

.draftbar{background:#fff4d6;border-bottom:2px solid #f0c040;color:#5c4300;padding:9px 16px;text-align:center;font-size:14px;line-height:1.6;font-family:"Noto Sans JP",sans-serif}
.todo{display:inline-block;background:#fff4d6;color:#7a5600;border:1px solid #f0c040;font-size:12px;border-radius:4px;padding:0 7px;font-weight:700;margin:0 4px;line-height:1.7}
.ib .hero2-photo img{object-position:50% 50%}
.ib .hero2-info dd small a{font-weight:700}
.ib h3.grp{font-size:19px;color:var(--teal);margin:38px 0 14px;padding-bottom:6px;border-bottom:1px dashed var(--line)}
.g-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.g-cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px 22px 18px;display:flex;flex-direction:column}
.bg-white .g-card{background:#fbfdfc}
.g-card.main{border:2px solid var(--teal);box-shadow:0 4px 14px rgba(17,122,101,.10)}
.g-card .kind{display:inline-block;align-self:flex-start;font-size:12.5px;font-weight:700;color:var(--navy);background:#dfefe9;padding:2px 12px;border-radius:100px}
.g-card .kind.ok{background:#117a65;color:#fff}
.g-card .kind.cond{background:#fdf0e0;color:#a64c08}
.ib .g-card h3{margin:10px 0 6px;font-size:20px}
.g-card p{font-size:15px;line-height:1.85;margin:0 0 12px}
.g-card .sub{font-size:13px;color:var(--muted);margin:-4px 0 8px;font-weight:700}
.g-card .tel-line{margin:auto 0 0;padding-top:12px;border-top:1px dashed var(--line);font-size:14.5px;line-height:1.7}
.g-card .tel-line small{display:inline-block;font-size:12.5px;color:var(--muted);line-height:1.6}
.ib a.tel{font-weight:700;font-size:1.08em;white-space:nowrap;color:var(--orange-d);text-decoration-color:#a64c0866}
.g-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.checkbox{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 22px}
.cb-title{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:17px;margin:0 0 8px!important}
.checks{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:7px 0 7px 30px;border-bottom:1px solid #edf3f1;font-size:15px;line-height:1.7}
.checks li:last-child{border-bottom:0}
.checks li::before{content:"";position:absolute;left:4px;top:13px;width:14px;height:8px;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
.checks small{display:block;font-size:12.5px;color:var(--muted)}
.fact-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid #e5d6c4;border-radius:10px;overflow:hidden;margin:6px 0 10px}
.fact-row>div{padding:20px 22px;border-right:1px solid #f0e4d6}
.fact-row>div:last-child{border-right:0}
.fact-row span{display:block;font-size:13px;font-weight:700;color:var(--teal)}
.fact-row b{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:26px;color:var(--orange-d);line-height:1.4;margin:2px 0}
.fact-row small{display:block;font-size:13px;color:var(--muted);line-height:1.6}
.flow{list-style:none;padding:0;margin:0 0 16px;counter-reset:fl;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.flow li{counter-increment:fl;background:#fff;border-radius:10px;padding:16px 16px 14px;font-size:14px;line-height:1.75;position:relative;border:1px solid #efe2d3}
.flow li::before{content:counter(fl);font-family:"Klee One",serif;font-weight:600;font-size:30px;color:var(--orange-d);display:block;line-height:1.1}
.flow li>b:first-child{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:17px;color:var(--navy);margin:2px 0 4px}
.flow li b.in{color:var(--orange-d)}
.contact-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;background:#fff;border-left:4px solid var(--teal);border-radius:0 8px 8px 0;padding:16px 22px;margin:18px 0 0}
.contact-box p{margin:0!important;font-size:15px}
table.mini{width:100%;border-collapse:collapse;font-size:14.5px;margin:0}
table.mini th,table.mini td{padding:8px 6px;border-bottom:1px solid #edf3f1;text-align:left;vertical-align:top}
table.mini th{color:var(--teal);white-space:nowrap;width:5.5em}
.ib .g-split + .why-grid{margin-top:34px}
.ib .src{font-size:12.5px;color:#7b8a96;margin:22px 0 0!important;text-align:right;line-height:1.7}
.ib .src.light{color:#9fb2c0}
.places .place .note{color:#536474}
.places .note .todo{margin-left:0}
.ib>section.sos{background:#fdf2f0;border-bottom:0;padding:56px 0}
.ib .sos h2{color:#a83a2c;font-size:26px}
.sos-row{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:6px 0 14px}
.sos-row>div{background:#fff;border:2px solid #e9b4a9;border-radius:10px;padding:18px 22px}
.sos-row span{display:block;font-size:13.5px;font-weight:700;color:#a83a2c}
.sos-row .big{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:30px;color:#a83a2c;line-height:1.4}
.ib .sos-row a.tel.big{text-decoration:none;font-size:30px}
.sos-row small{display:block;font-size:13px;color:var(--muted)}
.src-list li a{font-weight:700}
@media(max-width:1000px){.g-cards.four{grid-template-columns:1fr 1fr}.flow{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.g-cards,.g-cards.four,.g-split,.fact-row,.sos-row,.flow{grid-template-columns:1fr}.fact-row>div{border-right:0;border-bottom:1px solid #f0e4d6}.ib .why-grid[style]{grid-template-columns:1fr!important}.ib .src{text-align:left}.contact-box .btn{width:100%}
.lp-mobile-bar.one{grid-template-columns:1fr}body{padding-bottom:70px}}

#labo .ibasho-card{display:flex;align-items:center;gap:20px;margin:18px 0 0;background:#fff;border:1px solid #ceded9;border-radius:12px;padding:14px 20px 14px 14px;text-decoration:none;color:#0f2545;box-shadow:0 2px 10px rgba(15,37,69,.06);transition:box-shadow .2s,transform .2s}
#labo .ibasho-card:hover{box-shadow:0 8px 22px rgba(15,37,69,.12);transform:translateY(-2px)}
#labo .ibasho-card img{width:180px;height:120px;object-fit:cover;border-radius:8px;flex:none}
#labo .ic-kind{display:block;font-size:.85rem;font-weight:700;color:#117a65}
#labo .ic-title{display:block;font-size:1.35rem;font-weight:900;line-height:1.4;margin:2px 0 4px}
#labo .ic-text{display:block;font-size:.92rem;color:#536474;line-height:1.7}
#labo .ic-more{margin-left:auto;flex:none;background:#a64c08;color:#fff;font-weight:700;border-radius:999px;padding:10px 18px;font-size:.95rem;white-space:nowrap}
@media(max-width:700px){#labo .ibasho-card{flex-wrap:wrap;padding:12px}#labo .ibasho-card img{width:100%;height:150px}#labo .ic-more{margin-left:0}}
.ib .other-area{max-width:1100px;margin:18px auto 0;padding:12px 16px;background:#fff;border:1px solid #e6d7c3;border-radius:10px;font-size:14px;line-height:1.8;color:#3d4b5c}
.ib .other-area b{display:block;color:#a64c08;font-size:14px}

/* futoko-builder: 地域ページ用の追加スタイル */
.areabar{background:var(--area-soft,#eef6f3);border-bottom:1px solid rgba(0,0,0,.06)}
.areabar-in{max-width:1100px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.5px}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:#536474}
.crumbs a{color:#2c4f7c}
.crumbs b{color:var(--area,#117a65)}
.area-switch{position:relative}
.area-switch summary{cursor:pointer;list-style:none;background:#fff;border:1px solid var(--area,#117a65);color:var(--area,#117a65);border-radius:999px;padding:4px 14px;font-weight:700}
.area-switch summary::-webkit-details-marker{display:none}
.area-switch[open] summary{background:var(--area,#117a65);color:#fff}
.area-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:50;width:min(560px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:#fff;border:1px solid #d9e2ea;border-radius:12px;box-shadow:0 12px 32px rgba(15,37,69,.18);padding:12px 14px}
.am-h{margin:8px 0 4px;font-weight:700;font-size:13px;color:#536474}
.am-list{display:flex;flex-wrap:wrap;gap:4px 6px}
.am-list a{font-size:13px;padding:3px 8px;border-radius:6px;background:#f4f6f8;color:#2c3e50;text-decoration:none}
.am-list a small{margin-left:2px;color:#8a99a8}
.am-list a.own{background:var(--area,#117a65);color:#fff;font-weight:700}
.am-note{font-size:12px;color:#6b7b8c;margin:10px 0 0}
.area-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--area,#117a65);margin-right:6px;vertical-align:1px}
.area-switch[open] .area-dot{background:#fff}
.ib .area-badge{display:inline-flex;align-items:center;gap:4px;margin:6px 0 2px;font-size:22px;font-weight:800;color:var(--area,#117a65);font-family:"Zen Maru Gothic",sans-serif}
.ib .area-badge small{font-size:14px;font-weight:600;color:#536474;margin-left:4px}
.ib .area-hero .h1-org{color:var(--area,#117a65)}
.ib .tokyo-card{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;max-width:1100px;margin:18px auto 0;padding:14px 18px;background:#fff;border:2px solid #2c4f7c;border-radius:12px;text-decoration:none;color:#0f2545}
.ib .tokyo-card .tc-tag{background:#2c4f7c;color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px}
.ib .tokyo-card b{font-size:17px}
.ib .tokyo-card .tc-sub{flex:1 1 360px;font-size:13.5px;color:#536474;line-height:1.7}
.ib .tokyo-card .tc-go{margin-left:auto;font-weight:700;color:#2c4f7c;white-space:nowrap}
.ib .tokyo-jump{margin:16px 0 0;padding:10px 14px;background:#f2f6fb;border-left:4px solid #2c4f7c;border-radius:6px;font-size:14px;line-height:1.8}
.ib .jump-box{padding:14px 16px;background:#fff;border:1px solid #d9e2ea;border-radius:10px}
.ib .jump-box p{margin:0}
.tbl-wrap{overflow-x:auto}
.ib table.area-table td,.ib table.compare td{white-space:normal}
.ib table.compare th a{color:inherit}
.ward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:6px 0 16px}
.ward-grid a{display:block;padding:10px 12px;border:1px solid #d9e2ea;border-radius:10px;background:#fff;text-decoration:none;color:#0f2545;font-weight:700;line-height:1.4}
.ward-grid a small{display:block;font-weight:500;font-size:11.5px;color:#7a8a99;margin-top:2px}
.ward-grid a.own{background:var(--area,#2c4f7c);border-color:var(--area,#2c4f7c);color:#fff}
.ward-grid a.own small{color:rgba(255,255,255,.85)}
.entry-choose{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 0}
.entry-pref{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:12px;background:#fff;border:2px solid #2c4f7c;text-decoration:none;color:#0f2545}
.entry-pref b{font-size:22px}
.entry-pref span{font-size:13.5px;color:#536474}
.entry-pref .ep-tag{align-self:flex-start;background:#2c4f7c;color:#fff;border-radius:999px;padding:1px 10px;font-size:12px;font-weight:700}
.entry-pref .ep-go{margin-top:auto;font-weight:700;color:#2c4f7c}
.entry-pref.quick{border-color:#117a65}.entry-pref.quick .ep-tag{background:#117a65}.entry-pref.quick .ep-go{color:#117a65}
.entry-pref.soon{border-style:dashed;border-color:#b8c4cf;color:#7a8a99}.entry-pref.soon .ep-tag{background:#b8c4cf}
.foot-note{font-size:.85rem;color:#bbb;margin:0 0 10px}
@media(max-width:760px){.entry-choose{grid-template-columns:1fr}.ib .area-badge{font-size:19px}.ib .why-grid[style]{grid-template-columns:1fr!important}}
/* 23区の地図 */
.tmap-wrap{max-width:620px;margin:8px auto 18px}
.tmap{display:block;width:100%;height:auto}
.tmap .tm path{fill:#e8edf2;stroke:#fff;stroke-width:3;stroke-linejoin:round;transition:fill .15s}
.tmap .tm.own path{fill:var(--cs)}
.tmap .tm:hover path,.tmap .tm:focus path{fill:#c9d3dc;fill:color-mix(in srgb,var(--c,#7a8a99) 45%,#fff)}
.tmap .tm:focus{outline:none}.tmap .tm:focus-visible path{stroke:#0f2545;stroke-width:5}
.tmap .tl{font-size:30px;font-weight:700;fill:#0f2545;text-anchor:middle;dominant-baseline:central;pointer-events:none;paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:5px}
.tmap .tl.sm{font-size:24px}
.tmap-note{text-align:center;font-size:13.5px;color:#536474;margin:6px 0 0}
.tmap-note small{font-size:11.5px;color:#7a8a99}
@media(max-width:600px){.tmap-wrap{margin-left:-8px;margin-right:-8px}.tmap .tl{font-size:38px;stroke-width:6px}.tmap .tl.sm{font-size:31px}}
