子連れマガジン Hub

@import url(‘https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700;900&family=M+PLUS+Rounded+1c:wght@400;500;700;800&family=DM+Sans:wght@400;500;700&display=swap’); /* === Tokens === */ .kdo-hub{ –ink:#2b2230; –ink-soft:#5d4d5e; –ink-mute:#9c8c9c; –cream:#fdf6f1; –cream-2:#faeae0; –cream-3:#f6dccd; –milk:#ffffff; –coral:#ef7a6a; –coral-2:#f29f8b; –coral-soft:#fdd9cf; –berry:#c0577d; –berry-soft:#f3c9d6; –honey:#e8a958; –honey-soft:#f6d8a8; –leaf:#6f9e7c; –leaf-soft:#cfe1d3; –r-sm:12px; –r-md:18px; –r-lg:24px; –r-xl:32px; –shadow-sm:0 4px 14px -8px rgba(189,90,100,.25); –shadow-md:0 14px 30px -18px rgba(189,90,100,.35); –shadow-lg:0 30px 60px -28px rgba(189,90,100,.35); font-family:”M PLUS Rounded 1c”,”Zen Maru Gothic”,system-ui,sans-serif; background: radial-gradient(900px 600px at 10% 0%, color-mix(in oklab, var(–coral-soft) 60%, transparent), transparent 60%), radial-gradient(800px 700px at 100% 100%, color-mix(in oklab, var(–berry-soft) 50%, transparent), transparent 60%), var(–cream); color:var(–ink); min-height:100vh; -webkit-font-smoothing:antialiased; max-width:480px; margin:0 auto; padding:0 0 60px; position:relative; } .kdo-hub *{ box-sizing:border-box; } .kdo-hub button{ border:0; background:none; cursor:pointer; font-family:inherit; color:inherit; } .kdo-hub a{ color:inherit; text-decoration:none; } .kdo-hub img{ display:block; max-width:100%; } /* fonts utility */ .kdo-hub .maru{ font-family:”Zen Maru Gothic”,”M PLUS Rounded 1c”,sans-serif; letter-spacing:.005em; } .kdo-hub .dm{ font-family:”DM Sans”,system-ui,sans-serif; letter-spacing:.02em; } @media (min-width: 481px){ .kdo-hub{ border-radius:32px; margin:24px auto 60px; box-shadow:0 50px 90px -30px rgba(120,50,70,.18); overflow:hidden; } } /* === Header === */ .kdo-hub .app-header{ position:sticky; top:0; z-index:30; padding:12px 16px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; background:color-mix(in oklab, var(–cream) 88%, transparent); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%); border-bottom:1px solid color-mix(in oklab, var(–ink) 6%, transparent); } .kdo-hub .brand{ display:flex; align-items:center; gap:8px; } .kdo-hub .brand .logo{ width:30px; height:30px; border-radius:10px; background:linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); color:#fff; display:flex; align-items:center; justify-content:center; font-family:”Zen Maru Gothic”,sans-serif; font-weight:900; font-size:14px; box-shadow:0 6px 12px -8px rgba(192,87,125,.5); } .kdo-hub .brand .name{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:15px; color:var(–ink); } .kdo-hub .brand .area{ font-size:10px; color:var(–berry); background:var(–cream-2); padding:2px 8px; border-radius:999px; margin-left:4px; font-weight:700; } .kdo-hub .head-actions{ display:flex; gap:6px; align-items:center; } .kdo-hub .icon-btn, .kdo-hub .menu-btn{ width:36px; height:36px; border-radius:50%; background:var(–milk); display:flex; align-items:center; justify-content:center; box-shadow:var(–shadow-sm); color:var(–ink-soft); } .kdo-hub .menu-btn{ border-radius:12px; } .kdo-hub .head-actions{ position:relative; } .kdo-hub .menu-panel{ position:absolute; top:48px; right:0; min-width:200px; background:var(–milk); border-radius:14px; box-shadow:0 12px 30px -8px rgba(0,0,0,.18), 0 4px 8px rgba(0,0,0,.06); padding:6px; z-index:200; opacity:0; visibility:hidden; transform:translateY(-8px); transition:all .18s ease; } .kdo-hub .menu-panel.open{ opacity:1; visibility:visible; transform:translateY(0); } .kdo-hub .menu-panel a{ display:flex; align-items:center; gap:10px; padding:10px 12px; color:var(–ink); font-family:”Zen Maru Gothic”,sans-serif; font-size:13px; font-weight:700; border-radius:10px; text-decoration:none; transition:background .12s; } .kdo-hub .menu-panel a:hover{ background:var(–cream-2); } .kdo-hub .menu-panel a .ico{ width:18px; height:18px; flex-shrink:0; color:var(–coral); } .kdo-hub .menu-panel a .ico svg{ width:100%; height:100%; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; } /* === Big 3 Tabs === */ .kdo-hub .bigtabs-wrap{ position:sticky; top:60px; z-index:25; padding:10px 16px 6px; background:linear-gradient(180deg, var(–cream) 80%, transparent); } .kdo-hub .today-toggle{ background:var(–milk); color:var(–ink-soft); border:1.5px solid var(–coral-soft); border-radius:999px; padding:6px 14px; font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:11.5px; cursor:pointer; transition:all .15s; box-shadow:var(–shadow-sm); } .kdo-hub .today-toggle:hover{ background:var(–cream-2); } .kdo-hub .today-toggle.active{ background:var(–coral); color:#fff; border-color:var(–coral); box-shadow:0 4px 10px -2px rgba(239,122,106,.4); } .kdo-hub .today-hidden{ display:none !important; } .kdo-hub .expired-hidden{ display:none !important; } .kdo-hub .page-intro{ padding:18px 18px 8px; } .kdo-hub .page-intro .page-title{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:900; font-size:22px; line-height:1.4; color:var(–ink); margin:0 0 8px; } .kdo-hub .page-intro .page-sub{ font-size:12.5px; line-height:1.7; color:var(–ink-soft); margin:0; } .kdo-hub .bigtabs-label{ font-family:”DM Sans”,sans-serif; font-size:10px; font-weight:700; color:var(–berry); letter-spacing:.14em; text-align:center; margin-bottom:8px; } .kdo-hub .bigtabs{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; background:var(–milk); padding:6px; border-radius:22px; box-shadow:var(–shadow-md), inset 0 0 0 1px color-mix(in oklab, var(–ink) 4%, transparent); } .kdo-hub .bigtab{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:14px 6px; border-radius:18px; background:transparent; color:var(–ink-mute); transition:.2s; position:relative; } .kdo-hub .bigtab .ico{ font-size:22px; line-height:1; } .kdo-hub .bigtab .lbl{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:12px; line-height:1.2; text-align:center; } .kdo-hub .bigtab .sub{ font-size:9px; opacity:.65; font-family:”DM Sans”,sans-serif; letter-spacing:.04em; } .kdo-hub .bigtab.active{ background:linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); color:#fff; box-shadow:0 12px 24px -12px rgba(192,87,125,.55); transform:translateY(-1px); } .kdo-hub .bigtab.active .sub{ opacity:.85; color:#fff; } .kdo-hub .bigtab .badge{ position:absolute; top:8px; right:8px; background:var(–honey); color:#fff; font-size:9px; font-weight:700; font-family:”DM Sans”,sans-serif; padding:1px 5px; border-radius:999px; min-width:16px; text-align:center; } .kdo-hub .bigtab.active .badge{ background:rgba(255,255,255,.25); } .kdo-hub .tabpanel{ display:none; padding-top:6px; } .kdo-hub .tabpanel.active{ display:block; } /* === HERO 3 === */ .kdo-hub .hero3{ margin:6px 16px 0; padding:18px 18px 16px; background: radial-gradient(280px 200px at 100% 0%, color-mix(in oklab, var(–honey-soft) 80%, transparent), transparent 60%), radial-gradient(220px 200px at 0% 110%, color-mix(in oklab, var(–berry-soft) 70%, transparent), transparent 60%), linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); color:#fff; border-radius:var(–r-xl); box-shadow:var(–shadow-md); position:relative; overflow:hidden; } .kdo-hub .hero3 .h3-meta{ display:flex; align-items:center; gap:8px; font-size:11px; opacity:.92; font-family:”DM Sans”,sans-serif; letter-spacing:.04em; } .kdo-hub .hero3 .h3-meta .pulse{ width:6px; height:6px; border-radius:50%; background:#fff; box-shadow:0 0 0 0 rgba(255,255,255,.6); animation:kdo-pulse 2.4s infinite; } @keyframes kdo-pulse{ 0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)} 70%{box-shadow:0 0 0 8px rgba(255,255,255,0)} 100%{box-shadow:0 0 0 0 rgba(255,255,255,0)} } .kdo-hub .hero3 h1{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:900; font-size:22px; line-height:1.4; margin:8px 0 14px; letter-spacing:.005em; } .kdo-hub .hero3 h1 small{ display:block; font-size:11.5px; font-weight:500; opacity:.85; margin-top:4px; letter-spacing:.02em; } .kdo-hub .h3-list{ display:flex; flex-direction:column; gap:8px; } .kdo-hub .h3-item{ display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:10px; padding:12px; border-radius:var(–r-md); background:rgba(255,255,255,.14); backdrop-filter:blur(10px); } .kdo-hub .h3-item .num{ font-family:”DM Sans”,sans-serif; font-weight:700; font-size:16px; color:#fff; opacity:.9; text-align:center; } .kdo-hub .h3-item .body{ display:flex; flex-direction:column; gap:2px; min-width:0; } .kdo-hub .h3-item .tag{ display:inline-flex; align-items:center; gap:4px; font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:999px; background:rgba(255,255,255,.22); color:#fff; align-self:flex-start; letter-spacing:.04em; } .kdo-hub .h3-item h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:13.5px; margin:2px 0 0; line-height:1.4; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .kdo-hub .h3-item .lim{ font-size:10.5px; color:rgba(255,255,255,.85); margin-top:1px; font-family:”DM Sans”,sans-serif; letter-spacing:.02em; } .kdo-hub .h3-item .arr{ color:rgba(255,255,255,.7); display:flex; align-items:center; } /* === Area Bubbles === */ .kdo-hub .area-row{ display:flex; gap:10px; padding:18px 16px 6px; overflow-x:auto; scrollbar-width:none; } .kdo-hub .area-row::-webkit-scrollbar{ display:none; } .kdo-hub .area-bubble{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:6px; width:64px; } .kdo-hub .area-bubble .circle{ width:56px; height:56px; border-radius:50%; background:var(–milk); display:flex; align-items:center; justify-content:center; font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:16px; color:var(–berry); box-shadow:var(–shadow-sm); transition:.15s; } .kdo-hub .area-bubble.active .circle{ background:linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); color:#fff; transform:scale(1.05); box-shadow:0 14px 28px -14px rgba(192,87,125,.6); } .kdo-hub .area-bubble .lbl{ font-size:10px; color:var(–ink-soft); } .kdo-hub .area-bubble.active .lbl{ color:var(–berry); font-weight:700; } .kdo-hub .area-bubble .all .circle{ background:var(–cream-2); color:var(–ink-soft); border:1px dashed var(–coral-2); } /* === Filter Chips === */ .kdo-hub .chip-row{ display:flex; gap:8px; padding:8px 16px 18px; overflow-x:auto; scrollbar-width:none; } .kdo-hub .chip-row::-webkit-scrollbar{ display:none; } .kdo-hub .chip{ flex:0 0 auto; padding:9px 14px; border-radius:999px; font-size:12px; font-weight:500; background:var(–milk); color:var(–ink-soft); box-shadow:var(–shadow-sm); display:inline-flex; align-items:center; gap:5px; } .kdo-hub .chip.active{ background:var(–ink); color:var(–cream); box-shadow:0 8px 18px -10px rgba(43,34,48,.4); } /* === Section Head === */ .kdo-hub .shead{ display:flex; align-items:flex-end; justify-content:space-between; padding:20px 20px 12px; } .kdo-hub .shead h2{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:17px; margin:0; color:var(–ink); letter-spacing:.005em; } .kdo-hub .shead h2 .icon{ display:inline-block; margin-right:6px; } .kdo-hub .shead .more{ font-size:11.5px; color:var(–berry); font-weight:700; } /* === SALE light === */ .kdo-hub .sale-section{ padding:0 16px; } .kdo-hub .sale-hero{ background:linear-gradient(135deg, var(–ink) 0%, #4a334d 100%); color:var(–cream); border-radius:var(–r-xl); padding:18px 20px; display:grid; grid-template-columns:1fr 80px; gap:14px; align-items:center; box-shadow:var(–shadow-md); margin-bottom:12px; position:relative; overflow:hidden; } .kdo-hub .sale-hero .kdo-ribbon{ display:inline-flex; align-items:center; gap:5px; background:var(–coral); color:#fff; padding:4px 10px; border-radius:999px; font-weight:700; font-size:10.5px; font-family:”DM Sans”,sans-serif; } .kdo-hub .sale-hero h3{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:16px; margin:8px 0 4px; line-height:1.45; } .kdo-hub .sale-hero .price{ display:flex; gap:8px; align-items:baseline; font-family:”DM Sans”,sans-serif; } .kdo-hub .sale-hero .now{ font-size:22px; font-weight:700; color:var(–coral); } .kdo-hub .sale-hero .was{ font-size:11px; color:rgba(255,255,255,.5); text-decoration:line-through; } .kdo-hub .sale-hero .meta{ font-size:10.5px; color:rgba(255,255,255,.6); margin-top:4px; font-family:”DM Sans”,sans-serif; } .kdo-hub .sale-hero .ph{ aspect-ratio:1; border-radius:var(–r-md); background:linear-gradient(135deg, var(–coral-soft), var(–berry-soft)); } .kdo-hub .sale-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; } .kdo-hub .sale-card{ background:var(–milk); border-radius:var(–r-md); padding:12px; box-shadow:var(–shadow-sm); display:flex; flex-direction:column; gap:6px; } .kdo-hub .sale-card .ph{ aspect-ratio:16/10; border-radius:var(–r-sm); background:linear-gradient(135deg, var(–cream-3), var(–coral-soft)); position:relative; } .kdo-hub .sale-card .ph .ribbon-mini{ position:absolute; top:6px; left:6px; background:var(–berry); color:#fff; padding:2px 7px; border-radius:999px; font-size:9.5px; font-weight:700; font-family:”DM Sans”,sans-serif; } .kdo-hub .sale-card h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:12.5px; margin:0; color:var(–ink); line-height:1.4; } .kdo-hub .sale-card .price{ display:flex; gap:5px; align-items:baseline; font-family:”DM Sans”,sans-serif; } .kdo-hub .sale-card .now{ font-size:14px; font-weight:700; color:var(–berry); } .kdo-hub .sale-card .was{ font-size:10px; color:var(–ink-mute); text-decoration:line-through; } /* === Feature Card === */ .kdo-hub .feature-card{ margin:0 16px; border-radius:var(–r-xl); background:var(–milk); overflow:hidden; box-shadow:var(–shadow-md); } .kdo-hub .feature-card .ph{ aspect-ratio:16/10; background:radial-gradient(200px 160px at 80% 80%, color-mix(in oklab, var(–honey-soft) 80%, transparent), transparent 60%), linear-gradient(135deg, var(–leaf-soft), var(–cream-3)); position:relative; display:flex; align-items:flex-end; padding:14px; } .kdo-hub .feature-card .ph .num{ background:rgba(255,255,255,.92); color:var(–berry); padding:5px 10px; border-radius:999px; font-weight:700; font-size:11px; font-family:”DM Sans”,sans-serif; } .kdo-hub .feature-card .ph .save{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.95); color:var(–berry); display:flex; align-items:center; justify-content:center; font-size:17px; box-shadow:var(–shadow-sm); } .kdo-hub .feature-card .body{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:8px; } .kdo-hub .feature-card h3{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:17px; margin:0; color:var(–ink); line-height:1.45; } .kdo-hub .feature-card p{ margin:0; font-size:12.5px; color:var(–ink-soft); line-height:1.7; } .kdo-hub .feature-card .stats{ display:flex; gap:14px; padding-top:8px; border-top:1px dashed var(–cream-3); } .kdo-hub .feature-card .stats .s{ display:flex; flex-direction:column; gap:1px; } .kdo-hub .feature-card .stats .v{ font-family:”DM Sans”,sans-serif; font-weight:700; font-size:13px; color:var(–berry); } .kdo-hub .feature-card .stats .l{ font-size:9.5px; color:var(–ink-mute); letter-spacing:.04em; } .kdo-hub .feature-card .review-row{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(–ink-soft); } .kdo-hub .feature-card .stars{ color:var(–honey); } /* === Weekend / Events === */ .kdo-hub .weekend-section{ margin:12px 16px; padding:18px 18px 22px; background:linear-gradient(180deg, var(–cream-2) 0%, var(–cream) 100%); border-radius:var(–r-xl); } .kdo-hub .weekend-bar{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding-bottom:12px; } .kdo-hub .weekend-bar::-webkit-scrollbar{ display:none; } .kdo-hub .day{ flex:0 0 auto; padding:10px 12px; border-radius:18px; background:var(–milk); display:flex; flex-direction:column; align-items:center; gap:1px; min-width:60px; box-shadow:var(–shadow-sm); } .kdo-hub .day .d{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:17px; color:var(–ink); } .kdo-hub .day .w{ font-size:9px; color:var(–ink-mute); letter-spacing:.08em; font-family:”DM Sans”,sans-serif; } .kdo-hub .day .c{ font-size:9.5px; color:var(–coral); font-weight:700; margin-top:2px; } .kdo-hub .day.active{ background:linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); } .kdo-hub .day.active .d, .kdo-hub .day.active .w{ color:#fff; } .kdo-hub .day.active .c{ color:rgba(255,255,255,.85); } .kdo-hub .wknd-list{ display:flex; flex-direction:column; gap:10px; } .kdo-hub .wknd{ display:grid; grid-template-columns:70px 1fr auto; gap:12px; align-items:center; background:var(–milk); border-radius:var(–r-md); padding:10px 14px 10px 10px; box-shadow:var(–shadow-sm); } .kdo-hub .wknd .ph{ aspect-ratio:1; border-radius:var(–r-sm); background:radial-gradient(60px 50px at 70% 30%, color-mix(in oklab, var(–honey-soft) 80%, transparent), transparent 60%), linear-gradient(135deg, var(–coral-soft), var(–berry-soft)); } .kdo-hub .wknd .body{ display:flex; flex-direction:column; gap:2px; min-width:0; } .kdo-hub .wknd .when{ font-size:10px; color:var(–coral); font-weight:700; } .kdo-hub .wknd h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:13px; margin:1px 0 2px; color:var(–ink); line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .kdo-hub .wknd .where{ font-size:10.5px; color:var(–ink-soft); } .kdo-hub .wknd .save{ width:32px; height:32px; border-radius:50%; background:var(–cream-2); color:var(–berry); display:flex; align-items:center; justify-content:center; font-size:14px; } /* === Area Tiles === */ .kdo-hub .area-tiles{ display:flex; gap:10px; padding:0 16px 8px; overflow-x:auto; scrollbar-width:none; } .kdo-hub .area-tiles::-webkit-scrollbar{ display:none; } .kdo-hub .area-tile{ flex:0 0 180px; border-radius:var(–r-lg); padding:16px; background:var(–milk); box-shadow:var(–shadow-sm); display:flex; flex-direction:column; gap:8px; } .kdo-hub .area-tile.east{ background:linear-gradient(135deg, color-mix(in oklab, var(–leaf-soft) 80%, var(–milk)), var(–milk)); } .kdo-hub .area-tile.south{ background:linear-gradient(135deg, color-mix(in oklab, var(–coral-soft) 60%, var(–milk)), var(–milk)); } .kdo-hub .area-tile.north{ background:linear-gradient(135deg, color-mix(in oklab, var(–honey-soft) 60%, var(–milk)), var(–milk)); } .kdo-hub .area-tile.west{ background:linear-gradient(135deg, color-mix(in oklab, var(–berry-soft) 50%, var(–milk)), var(–milk)); } .kdo-hub .area-tile.center{ background:linear-gradient(135deg, color-mix(in oklab, var(–cream-3) 80%, var(–milk)), var(–milk)); } .kdo-hub .area-tile .name{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:17px; color:var(–ink); } .kdo-hub .area-tile .name small{ display:block; font-family:”DM Sans”,sans-serif; font-size:9.5px; color:var(–ink-mute); letter-spacing:.08em; font-weight:500; margin-top:2px; } .kdo-hub .area-tile .top{ font-size:11.5px; color:var(–ink-soft); display:flex; flex-direction:column; gap:3px; } .kdo-hub .area-tile .top .item{ display:flex; gap:6px; align-items:baseline; } .kdo-hub .area-tile .top .rk{ color:var(–coral); font-family:”DM Sans”,sans-serif; font-weight:700; font-size:10px; } .kdo-hub .area-tile .stats{ font-family:”DM Sans”,sans-serif; font-size:10.5px; color:var(–ink-mute); padding-top:8px; border-top:1px dashed var(–cream-3); display:flex; gap:10px; } .kdo-hub .area-tile .stats b{ color:var(–berry); font-weight:700; } /* === Store Sale === */ .kdo-hub .store-row{ display:flex; gap:10px; padding:14px 16px 6px; overflow-x:auto; scrollbar-width:none; } .kdo-hub .store-row::-webkit-scrollbar{ display:none; } .kdo-hub .store-chip{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:6px; width:68px; padding-top:2px; } .kdo-hub .store-chip .ph{ width:56px; height:56px; border-radius:18px; background:var(–milk); display:flex; align-items:center; justify-content:center; font-family:”Zen Maru Gothic”,sans-serif; font-weight:800; font-size:11px; color:var(–ink); box-shadow:var(–shadow-sm); position:relative; text-align:center; line-height:1.1; padding:4px; } .kdo-hub .store-chip .ph .dot{ position:absolute; top:-3px; right:-3px; background:var(–coral); color:#fff; font-family:”DM Sans”,sans-serif; font-weight:700; font-size:9px; padding:2px 6px; border-radius:999px; border:2px solid var(–cream); } .kdo-hub .store-chip.active .ph{ background:linear-gradient(135deg, var(–ink) 0%, #4a334d 100%); color:#fff; transform:scale(1.05); } .kdo-hub .store-chip .lbl{ font-size:10px; color:var(–ink-soft); white-space:nowrap; } .kdo-hub .store-chip.active .lbl{ color:var(–berry); font-weight:700; } .kdo-hub .store-sale-card{ margin:0 16px 10px; border-radius:var(–r-lg); background:var(–milk); box-shadow:var(–shadow-sm); overflow:hidden; display:flex; flex-direction:column; } .kdo-hub .store-sale-card .top{ display:grid; grid-template-columns:56px 1fr auto; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px dashed var(–cream-3); } .kdo-hub .store-sale-card .logo{ width:56px; height:56px; border-radius:16px; background:var(–cream-2); display:flex; align-items:center; justify-content:center; font-family:”Zen Maru Gothic”,sans-serif; font-weight:800; font-size:12px; color:var(–berry); text-align:center; line-height:1.15; padding:4px; } .kdo-hub .store-sale-card .who{ display:flex; flex-direction:column; gap:2px; min-width:0; } .kdo-hub .store-sale-card .name{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:14px; color:var(–ink); } .kdo-hub .store-sale-card .sub{ font-size:10.5px; color:var(–ink-mute); font-family:”DM Sans”,sans-serif; letter-spacing:.03em; } .kdo-hub .store-sale-card .kdo-ribbon{ background:var(–coral); color:#fff; padding:4px 10px; border-radius:999px; font-family:”DM Sans”,sans-serif; font-weight:700; font-size:10.5px; letter-spacing:.04em; } .kdo-hub .store-sale-card .body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:8px; } .kdo-hub .store-sale-card .body h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:14px; margin:0; color:var(–ink); line-height:1.5; } .kdo-hub .store-sale-card .body .lim{ font-size:11px; color:var(–berry); font-weight:700; display:flex; align-items:center; gap:4px; } .kdo-hub .store-sale-card .items{ display:flex; flex-direction:column; gap:6px; font-size:12px; color:var(–ink-soft); line-height:1.5; } .kdo-hub .store-sale-card .items .it{ display:grid; grid-template-columns:1fr auto; gap:8px; padding:6px 10px; border-radius:10px; background:var(–cream); } .kdo-hub .store-sale-card .items .it .pr{ font-family:”DM Sans”,sans-serif; font-weight:700; color:var(–berry); white-space:nowrap; } .kdo-hub .store-sale-card .items .it .pr s{ color:var(–ink-mute); font-weight:400; margin-right:4px; font-size:10.5px; } /* === EC === */ .kdo-hub .ec-switch{ display:flex; gap:6px; padding:14px 16px 6px; overflow-x:auto; scrollbar-width:none; } .kdo-hub .ec-switch::-webkit-scrollbar{ display:none; } .kdo-hub .ec-pill{ flex:0 0 auto; padding:9px 16px; border-radius:999px; background:var(–milk); color:var(–ink-soft); font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:12px; box-shadow:var(–shadow-sm); display:inline-flex; align-items:center; gap:6px; } .kdo-hub .ec-pill .dot{ display:inline-block; width:8px; height:8px; border-radius:50%; } .kdo-hub .ec-pill.am .dot{ background:#ff9900; } .kdo-hub .ec-pill.ra .dot{ background:#bf0000; } .kdo-hub .ec-pill.ya .dot{ background:#ff0033; } .kdo-hub .ec-pill.pp .dot{ background:#ee2737; } .kdo-hub .ec-pill.active{ background:var(–ink); color:#fff; } .kdo-hub .ec-hot{ margin:0 16px 10px; background:linear-gradient(135deg, #1a0e22 0%, #3a1c33 100%); color:#fff; border-radius:var(–r-lg); padding:16px 16px 18px; position:relative; overflow:hidden; } .kdo-hub .ec-hot::before{ content:””; position:absolute; top:-40px; right:-40px; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, color-mix(in oklab, var(–coral) 50%, transparent), transparent 70%); } .kdo-hub .ec-hot .badge{ display:inline-flex; align-items:center; gap:4px; background:var(–coral); color:#fff; font-family:”DM Sans”,sans-serif; font-weight:700; font-size:10px; padding:4px 10px; border-radius:999px; letter-spacing:.06em; } .kdo-hub .ec-hot .timer{ font-family:”DM Sans”,sans-serif; font-size:11px; color:var(–honey-soft); margin-top:6px; letter-spacing:.04em; } .kdo-hub .ec-hot h3{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:16px; margin:8px 0 10px; line-height:1.5; max-width:80%; } .kdo-hub .ec-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:0 16px; } .kdo-hub .ec-card{ background:var(–milk); border-radius:var(–r-md); overflow:hidden; box-shadow:var(–shadow-sm); display:flex; flex-direction:column; } .kdo-hub .ec-card .ph{ aspect-ratio:1.1/1; background:linear-gradient(135deg, var(–cream-3), var(–coral-soft)); position:relative; display:flex; align-items:flex-end; padding:8px; } .kdo-hub .ec-card .ph .pf{ background:rgba(255,255,255,.95); padding:3px 8px; border-radius:999px; font-family:”DM Sans”,sans-serif; font-weight:700; font-size:9.5px; display:inline-flex; align-items:center; gap:4px; } .kdo-hub .ec-card .ph .pf .dot{ width:6px; height:6px; border-radius:50%; } .kdo-hub .ec-card .ph .off{ position:absolute; top:8px; right:8px; background:var(–berry); color:#fff; font-family:”DM Sans”,sans-serif; font-weight:700; font-size:11px; padding:4px 8px; border-radius:10px; } .kdo-hub .ec-card .body{ padding:10px 12px 12px; display:flex; flex-direction:column; gap:5px; } .kdo-hub .ec-card h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:12.5px; margin:0; color:var(–ink); line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .kdo-hub .ec-card .price{ display:flex; gap:5px; align-items:baseline; font-family:”DM Sans”,sans-serif; } .kdo-hub .ec-card .now{ font-size:14px; font-weight:700; color:var(–berry); } .kdo-hub .ec-card .was{ font-size:10px; color:var(–ink-mute); text-decoration:line-through; } .kdo-hub .ec-card .stars{ font-size:10px; color:var(–honey); } .kdo-hub .ec-card .stars .cnt{ color:var(–ink-mute); font-family:”DM Sans”,sans-serif; margin-left:2px; } /* === Reviews === */ .kdo-hub .reviews-section{ padding:0 16px; } .kdo-hub .review-card{ background:var(–milk); border-radius:var(–r-lg); padding:16px; box-shadow:var(–shadow-sm); margin-bottom:10px; display:flex; flex-direction:column; gap:10px; } .kdo-hub .review-card .top{ display:flex; align-items:center; justify-content:space-between; } .kdo-hub .review-card .who{ display:flex; align-items:center; gap:8px; } .kdo-hub .review-card .av{ width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg, var(–coral-soft), var(–berry-soft)); display:flex; align-items:center; justify-content:center; color:var(–berry); font-weight:700; font-size:13px; } .kdo-hub .review-card .name{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:13px; color:var(–ink); } .kdo-hub .review-card .meta{ font-size:10px; color:var(–ink-mute); margin-top:1px; } .kdo-hub .review-card .stars{ color:var(–honey); font-size:13px; } .kdo-hub .review-card blockquote{ font-family:”Zen Maru Gothic”,sans-serif; font-size:14px; line-height:1.75; margin:0; color:var(–ink); font-weight:500; } .kdo-hub .review-card .place-tag{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(–berry); font-weight:700; background:var(–cream-2); padding:6px 10px; border-radius:999px; align-self:flex-start; } .kdo-hub .review-cta{ background:linear-gradient(135deg, var(–cream-2), var(–cream)); border:2px dashed var(–coral-2); border-radius:var(–r-lg); padding:16px; text-align:center; margin-top:4px; } .kdo-hub .review-cta h4{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:14px; margin:0 0 6px; color:var(–ink); } .kdo-hub .review-cta p{ font-size:11.5px; color:var(–ink-soft); margin:0 0 10px; line-height:1.6; } .kdo-hub .review-cta .btn{ background:linear-gradient(135deg, var(–coral) 0%, var(–berry) 100%); color:#fff; padding:10px 18px; border-radius:999px; font-weight:700; font-size:12px; border:0; box-shadow:0 8px 20px -10px rgba(192,87,125,.6); } /* === About === */ .kdo-hub .about-section{ margin:24px 16px; padding:22px 18px 24px; background:var(–milk); border-radius:var(–r-xl); box-shadow:var(–shadow-sm); text-align:center; } .kdo-hub .about-section .av{ width:76px; height:76px; border-radius:50%; margin:0 auto 12px; background:linear-gradient(135deg, var(–coral-soft), var(–berry-soft)); display:flex; align-items:center; justify-content:center; color:var(–berry); font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:12px; } .kdo-hub .about-section .role{ display:inline-block; font-family:”DM Sans”,sans-serif; font-size:9.5px; color:var(–berry); letter-spacing:.14em; font-weight:700; background:var(–cream-2); padding:3px 10px; border-radius:999px; margin-bottom:8px; } .kdo-hub .about-section .role.research{ background:var(–ink); color:var(–cream); } .kdo-hub .about-section h3{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:17px; color:var(–ink); margin:0 0 8px; } .kdo-hub .about-section p{ text-align:left; font-size:12.5px; color:var(–ink-soft); margin:0 0 8px; line-height:1.8; } .kdo-hub .about-section .sites{ display:flex; gap:6px; justify-content:center; margin-top:12px; flex-wrap:wrap; } .kdo-hub .about-section .sites a{ padding:7px 12px; border-radius:999px; background:var(–cream-2); color:var(–berry); font-size:11px; font-weight:700; } /* === Footer === */ .kdo-hub .site-foot{ background:var(–ink); color:var(–cream); margin:16px 16px 0; padding:22px 18px 20px; border-radius:var(–r-xl); } .kdo-hub .site-foot .logo-row{ display:flex; align-items:center; gap:8px; margin-bottom:12px; } .kdo-hub .site-foot .logo{ width:28px; height:28px; border-radius:10px; background:linear-gradient(135deg, var(–coral), var(–berry)); display:flex; align-items:center; justify-content:center; color:#fff; font-family:”Zen Maru Gothic”,sans-serif; font-weight:900; font-size:13px; } .kdo-hub .site-foot .lname{ font-family:”Zen Maru Gothic”,sans-serif; font-weight:700; font-size:14px; } .kdo-hub .site-foot p{ font-size:11px; line-height:1.7; margin:0 0 14px; color:rgba(253,246,241,.7); } .kdo-hub .site-foot .links{ display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; font-size:11px; margin-bottom:14px; } .kdo-hub .site-foot .links a{ color:rgba(253,246,241,.85); padding:4px 0; } .kdo-hub .site-foot .copy{ font-family:”DM Sans”,sans-serif; font-size:9px; color:rgba(253,246,241,.45); letter-spacing:.08em; padding-top:12px; border-top:1px solid rgba(253,246,241,.12); display:flex; justify-content:space-between; } .kdo-hub .h3-item { grid-template-columns: 28px 56px 1fr auto; gap: 10px; } .kdo-hub .h3-item .thumb { width:56px; height:56px; border-radius:12px; object-fit:cover; box-shadow:0 4px 10px -4px rgba(0,0,0,.3); } @media (max-width: 360px){ .kdo-hub .h3-item { grid-template-columns: 24px 48px 1fr auto; gap:8px; padding:10px; } .kdo-hub .h3-item .thumb { width:48px; height:48px; border-radius:10px; } } .kdo-hub .h3-summary { grid-template-columns: 36px 1fr !important; gap: 12px !important; } .kdo-hub .h3-summary h4 { white-space: normal !important; overflow: visible !important; } body.page-id-188 #header, body.page-id-188 .header-container, body.page-id-188 .tagline, body.page-id-188 .site-name-text, body.page-id-188 .article-header, body.page-id-188 .date-tags, body.page-id-188 .post-date, body.page-id-188 .post-update, body.page-id-188 .breadcrumb, body.page-id-188 .article-meta-info, body.page-id-188 .entry-author, body.page-id-188 .toc, body.page-id-188 .toc-content, body.page-id-188 .sns-share, body.page-id-188 .sns-share-buttons, body.page-id-188 .sns-buttons, body.page-id-188 .sns-share-message, body.page-id-188 .related-entries, body.page-id-188 .author-box, body.page-id-188 .pager-post-navi, body.page-id-188 .comment-area { display: none !important; } body.page-id-188 .author-info, body.page-id-188 .author-info-box, body.page-id-188 .author-name, body.page-id-188 .article-footer, body.page-id-188 .entry-footer, body.page-id-188 .footer, body.page-id-188 .footer-bottom, body.page-id-188 .footer-meta, body.page-id-188 .navi-footer, body.page-id-188 .copyright { display: none !important; } .entry-content .toc, .entry-content .toc-content, .entry-content .sns-share, .entry-content .related-entries, .entry-content .author-box, .entry-content .pager-post-navi, .entry-content .comment-area { display: none !important; } body.page-id-188 .entry-title { position: absolute !important; width: 1px !important; height: 1px !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; overflow: hidden !important; white-space: nowrap !important; margin: -1px !important; padding: 0 !important; border: 0 !important; } body.page-id-188 #main, body.page-id-188 .main { padding-top: 0 !important; } body.page-id-188 .article { padding: 0 !important; margin: 0 !important; } body.page-id-188 .entry-content { padding: 0 !important; } body.page-id-188 #wpadminbar { display: none !important; } body.page-id-188.admin-bar { margin-top: 0 !important; } body.page-id-188 { padding-top: 0 !important; } html.wp-toolbar { padding-top: 0 !important; } .kdo-hub .area-bubble, .kdo-hub .store-chip, .kdo-hub .chip, .kdo-hub .ec-pill { cursor: pointer; } .kdo-hub .filter-empty { padding: 24px 16px; text-align: center; color: var(–ink-mute); font-size: 13px; } .kdo-hub .filter-empty.show { display: block; } .kdo-hub [data-platform], .kdo-hub [data-store], .kdo-hub [data-area] { transition: opacity .15s; } .kdo-hub .filter-hidden { display: none !important; } .kdo-hub .area-bubble .circle { font-size: 13px !important; line-height: 1.2 !important; padding: 4px !important; text-align: center !important; } .kdo-hub .area-bubble .all .circle { font-size: 12px !important; } .kdo-hub .store-sale-card{ position:relative; overflow:visible !important; } .kdo-hub .rank-badge{ position:absolute; top:-10px; left:-10px; z-index:10; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:”DM Sans”,sans-serif; font-weight:900; font-size:14px; box-shadow:0 6px 18px -4px rgba(0,0,0,.45); border:3px solid var(–milk); } .kdo-hub .rank-badge.rank-1{ background:linear-gradient(135deg, #ffd700, #ff9500); color:#3a2400; } .kdo-hub .rank-badge.rank-2{ background:linear-gradient(135deg, #d8d8d8, #888); color:#222; } .kdo-hub .rank-badge.rank-3{ background:linear-gradient(135deg, #cd7f32, #8b5a2b); color:#fff; } .kdo-hub { padding-bottom: 100px !important; } .kdo-hub .bnav { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; background: rgba(253,246,241,.95); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(43,34,48,.08); z-index: 100; box-shadow: 0 -4px 18px -4px rgba(0,0,0,.1); padding: 14px 0 calc(10px + env(safe-area-inset-bottom)); } .kdo-hub .bnav::before { content: ”; position: absolute; top: 6px; bottom: calc(4px + env(safe-area-inset-bottom)); left: 25%; right: 25%; background: linear-gradient(180deg, rgba(255,107,90,.06), rgba(255,107,90,.12)); border-radius: 14px; z-index: 0; pointer-events: none; } .kdo-hub .bnav::after { content: ‘お得情報’; position: absolute; top: -18px; left: 25%; right: 25%; background: var(–coral); color: #fff; font-family: “Zen Maru Gothic”,sans-serif; font-size: 10px; font-weight: 800; letter-spacing: .08em; padding: 3px 0; text-align: center; border-radius: 999px; box-shadow: 0 2px 6px -1px rgba(255,107,90,.4); z-index: 2; } .kdo-hub .bnav a { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 6px 2px; color: var(–ink-mute); font-size: 10px; font-weight: 700; text-decoration: none; transition: all .18s ease; border-radius: 12px; margin: 0 3px; } .kdo-hub .bnav a:nth-child(2), .kdo-hub .bnav a:nth-child(3) { color: var(–coral); } .kdo-hub .bnav a .ico { width: 22px; height: 22px; display: block; transition: transform .18s ease; } .kdo-hub .bnav a .ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } .kdo-hub .bnav a.active { color: var(–coral); background: var(–milk); box-shadow: 0 0 0 1.5px var(–coral), 0 6px 14px -4px rgba(239,122,106,.45), 0 2px 4px -1px rgba(43,34,48,.08); transform: translateY(-4px); } .kdo-hub .bnav a.active .ico { transform: scale(1.08); } .mobile-footer-menu-buttons, .mobile-menu-buttons { display: none !important; }

今週・今月の
子連れイベント

熊本県全域で開催される、親子で楽しめる催し・ワークショップ・季節行事をまとめてお届け。

〜5/31(日) ・ 開催中

こどもスタジオ NHKキッズキャラクター大集合!

荒尾市 ・ 0-2歳〜 ・ 入園料金別途
〜5/31(日) ・ 開催中

グリーンランド 春催事

荒尾市 ・ 4-6歳〜 ・ 入園料金別途
5/6〜7/17 ・ 開催中

初夏限定!家族で満喫わくわくプラン

阿蘇市 ・ 0-2歳〜 ・ プラン料金(要問合せ)
5/24(日) ・ 今月開催

矢部新茶まつり

上益城郡(山都町) ・ 4-6歳〜 ・ 入場無料
5/24(日) ・ 今月開催

ふる郷愛鏡祭

八代市 ・ 2-3歳〜 ・ 入場無料
5/30(土)〜31(日) ・ 今月開催

第71回 恋龍祭

水俣市 ・ 2-3歳〜 ・ 入場無料
毎週木曜 11:00〜11:30 ・ 毎週定例

県立図書館 おはなし会(定例)

熊本市 ・ 0-2歳〜 ・ 無料
毎月開催 ・ 月例

合志マンガミュージアム 月例ワークショップ

合志市 ・ 4-6歳〜 ・ ワークショップ料金別途
夏休み期間 ・ 夏期予告

熊本市動植物園 夏の夜間開園(夏期)

熊本市 ・ 2-3歳〜 ・ 入園料別途
〜5/31(日) ・ 開催中

かぐや姫の光る庭 第三章

熊本市 ・ 2-3歳〜 ・ 中学生以下は大人同伴で無料
7/1〜9/30 ・ 夏期予告

夏目友人帳 in Kumamoto

熊本市 ・ 4-6歳〜 ・ 入場無料
6月開催(公式情報あり) ・ 来月開催

第61回 天草ほんどハイヤ祭り

天草市 ・ 2-3歳〜 ・ 観覧無料
7/28(火) ・ 夏予定

阿蘇神社 御田祭(御田植神幸式)

阿蘇市 ・ 4-6歳〜 ・ 観覧無料
8/15(土)〜17(月) ・ 夏予定

山鹿灯籠まつり

山鹿市 ・ 2-3歳〜 ・ 観覧無料
8月中旬開催(例年8/15) ・ 夏予定

第71回 人吉花火大会

人吉市 ・ 2-3歳〜 ・ 観覧無料
5/30(土)〜31(日) ・ 今月開催

防災キャンプ体験『アミュキャン!』

熊本市 ・ 4-6歳〜 ・ 要事前確認
RESEARCHED IN KUMAMOTO

「ガチで調べた」を、3つのインデックスに。

熊本県在住で、子どもと出かける前/買う前に「ちゃんと調べる」のって地味に時間がかかります。だから子連れイベント・常設の遊び場・お得情報を1か所にまとめました。

体験談はあえて前面に出していません。最終的に決めるのは、利用者のみなさんのレビューと、現場の情報そのものだと思っているからです。

画像の一部は Wikimedia Commons より引用(CC BY-SA 等のライセンスに基づく)

(function(){ // today-toggle function isExpiredCard(c){ var e = c.dataset.periodEnd || ”; if(!e) return false; var today = new Date(); today.setHours(0,0,0,0); var end = new Date(e + ‘T23:59:59’); return end = s; if (hit) hit = today = 0; } // wknd events + sale-hero + sale-card panel.querySelectorAll(‘.wknd, .sale-hero, .sale-card’).forEach(function(card){ var area = card.getAttribute(‘data-area’) || ”; var age = card.getAttribute(‘data-age’) || ”; var place = card.getAttribute(‘data-place’) || ”; var ok = match(area, st.area); if (ok) ok = match(age, st.age); if (ok) ok = match(place, st.place); card.classList.toggle(‘filter-hidden’, !ok); card.classList.toggle(‘expired-hidden’, isExpiredCard(card)); }); // area-tile panel.querySelectorAll(‘.area-tile’).forEach(function(card){ var area = card.getAttribute(‘data-area’) || ”; var ok = (st.area === ‘all’ || st.area === area); card.classList.toggle(‘filter-hidden’, !ok); }); } else if(panelName === ‘store’){ panel.querySelectorAll(‘.store-sale-card’).forEach(function(card){ var s = card.getAttribute(‘data-store’) || ”; var cats = (card.getAttribute(‘data-cat’) || ”).split(‘,’); var ok = (st.store === ‘all’ || st.store === s) && (st.cat === ‘all’ || cats.indexOf(st.cat) >= 0); card.classList.toggle(‘filter-hidden’, !ok); }); } else if(panelName === ‘ec’){ panel.querySelectorAll(‘.store-sale-card’).forEach(function(card){ var p = card.getAttribute(‘data-platform’) || ”; var ok = (st.platform === ‘all’ || st.platform === p); card.classList.toggle(‘filter-hidden’, !ok); }); } // Empty state hint var visibleCards = panel.querySelectorAll(‘.store-sale-card:not(.filter-hidden):not(.expired-hidden), .wknd:not(.filter-hidden):not(.expired-hidden), .sale-hero:not(.filter-hidden):not(.expired-hidden), .sale-card:not(.filter-hidden):not(.expired-hidden)’).length; var emptyEl = panel.querySelector(‘.filter-empty’); if(!emptyEl){ emptyEl = document.createElement(‘div’); emptyEl.className = ‘filter-empty’; emptyEl.textContent = ‘😢 該当する情報がありません。フィルタを変更してみてください。’; panel.appendChild(emptyEl); } emptyEl.style.display = (visibleCards === 0) ? ‘block’ : ‘none’; } // Filter buttons document.querySelectorAll(‘.kdo-hub [data-filter-group]’).forEach(function(group){ var groupName = group.getAttribute(‘data-filter-group’); var target = group.getAttribute(‘data-target’); group.querySelectorAll(‘button[data-filter-value]’).forEach(function(btn){ btn.addEventListener(‘click’, function(e){ if(btn.disabled) return; e.preventDefault(); var val = btn.getAttribute(‘data-filter-value’); var key = btn.getAttribute(‘data-filter-key’) || groupName; // Update active state if(groupName === ‘age-place’ && val === ‘all’){ // reset both age + place group.querySelectorAll(‘button’).forEach(function(b){ b.classList.remove(‘active’); }); btn.classList.add(‘active’); state[target].age = ‘all’; state[target].place = ‘all’; } else if(groupName === ‘age-place’){ // toggle: same key/value → reset if(state[target][key] === val){ btn.classList.remove(‘active’); state[target][key] = ‘all’; // If both reset, mark “all” active if(state[target].age === ‘all’ && state[target].place === ‘all’){ var resetBtn = group.querySelector(‘button[data-filter-value=”all”]’); if(resetBtn) resetBtn.classList.add(‘active’); } } else { // Deactivate sibling with same key, then activate group.querySelectorAll(‘button[data-filter-key=”‘ + key + ‘”]’).forEach(function(b){ b.classList.remove(‘active’); }); group.querySelector(‘button[data-filter-value=”all”]’).classList.remove(‘active’); btn.classList.add(‘active’); state[target][key] = val; } } else { // simple single-select group.querySelectorAll(‘button’).forEach(function(b){ b.classList.remove(‘active’); }); btn.classList.add(‘active’); state[target][groupName] = val; } applyFilters(target); }); }); }); })();
タイトルとURLをコピーしました