
:root{
  --kinomi:#99cc00;--kinomi-bright:#b5df27;--kinomi-deep:#486f00;--kinomi-dark:#294400;
  --leaf:#6fa600;--paper:#fbfff4;--paper2:#f3f9e8;--ink:#26301e;--muted:#647052;
  --line:rgba(72,111,0,.17);--glass:rgba(255,255,255,.88);--shadow:0 18px 50px rgba(44,74,0,.12);
  --radius:28px;--header-h:92px;--max:1120px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9;background:
radial-gradient(circle at 0 0,rgba(153,204,0,.13),transparent 24rem),
radial-gradient(circle at 100% 25%,rgba(181,223,39,.11),transparent 26rem),var(--paper);overflow-x:hidden}
a{color:var(--kinomi-deep);text-underline-offset:.18em}img{max-width:100%;height:auto;vertical-align:middle}button{font:inherit}.skip-link{position:fixed;left:12px;top:-60px;z-index:2000;background:#fff;color:#111;padding:10px 14px;border-radius:8px}.skip-link:focus{top:12px}.scroll-progress{position:fixed;z-index:1200;left:0;top:0;width:100%;height:3px;pointer-events:none}.scroll-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--kinomi-deep),var(--kinomi-bright));box-shadow:0 0 12px rgba(153,204,0,.7)}
.site-header{position:sticky;z-index:1000;top:0;padding:10px 18px;transition:.28s ease}.site-header.is-scrolled{padding-top:6px;padding-bottom:6px}.header-inner{max-width:var(--max);min-height:72px;margin:auto;display:flex;align-items:center;gap:24px;padding:8px 12px 8px 18px;border:1px solid transparent;border-radius:22px;transition:.28s ease}.is-scrolled .header-inner{background:var(--glass);border-color:rgba(255,255,255,.8);box-shadow:0 10px 35px rgba(42,67,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.brand{display:block;flex:0 1 430px;min-width:210px}.brand img{display:block;width:min(100%,430px)}.global-nav{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.global-nav a{position:relative;padding:8px 10px;border-radius:999px;color:#435032;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;transition:.2s}.global-nav a:hover{background:rgba(153,204,0,.12);transform:translateY(-1px)}.global-nav a[aria-current="page"]{background:var(--kinomi);color:#1e3300;box-shadow:0 6px 18px rgba(99,137,0,.18)}.menu-toggle{display:none;border:0;background:transparent;width:50px;height:50px;padding:7px;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--kinomi-dark);font-size:8px;font-weight:800}.menu-toggle span{display:block;width:25px;height:2px;background:currentColor;border-radius:3px;transition:.25s}.menu-toggle b{font-size:8px;letter-spacing:.08em}
main{min-height:60vh}.section-shell{width:min(calc(100% - 32px),var(--max));margin:0 auto 32px}.page-heading{position:relative;width:min(calc(100% - 32px),var(--max));min-height:150px;margin:20px auto 34px;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius);background:linear-gradient(135deg,rgba(153,204,0,.18),rgba(255,255,255,.96) 45%,rgba(181,223,39,.14));border:1px solid rgba(153,204,0,.18);box-shadow:var(--shadow)}.page-heading::before{content:"";position:absolute;width:320px;height:320px;left:-140px;top:-170px;border:60px solid rgba(153,204,0,.09);border-radius:50%}.page-heading::after{content:"";position:absolute;width:210px;height:210px;right:-90px;bottom:-130px;background:rgba(153,204,0,.09);border-radius:48% 52% 65% 35%}.legacy-title{position:relative;z-index:2;width:min(72vw,560px);filter:drop-shadow(0 7px 14px rgba(59,86,0,.08))}.heading-mascots{position:absolute;z-index:1;right:28px;bottom:13px;width:190px;opacity:.18;transform:rotate(-3deg)}
.home-hero{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:center;gap:46px;padding:38px 0 34px}.hero-copy{padding:8px}.welcome-mark{width:min(100%,330px);margin:0 auto 24px;display:block}.hero-copy h1{margin:0 0 22px;color:var(--kinomi-dark);font-size:clamp(27px,3.4vw,48px);line-height:1.35;letter-spacing:.02em}.hero-copy p,.prose{font-size:clamp(15px,1.6vw,17px);line-height:2.05}.hero-copy p{margin:0}.hero-visual{position:relative}.hero-image,.photo-card{appearance:none;border:0;padding:0;background:none;cursor:zoom-in}.hero-image{display:block;width:100%;overflow:hidden;border-radius:42px 42px 42px 12px;box-shadow:0 26px 80px rgba(40,70,0,.19);transform:translateZ(0)}.hero-image img{display:block;width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.hero-image:hover img{transform:scale(1.018)}.hero-mascots{position:absolute;width:min(48%,276px);right:-18px;bottom:-25px;padding:10px 14px;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 14px 36px rgba(49,77,0,.16);transition:transform .15s linear}.compact-section{padding-bottom:40px}.content-flow{display:grid;gap:28px}.wide-photo{width:min(100%,920px);margin:0 auto}.wide-photo .photo-card{display:block;width:100%}.wide-photo img{display:block;width:100%;height:auto}.prose{max-width:900px;margin:0 auto;padding:clamp(22px,3vw,36px);border-radius:24px;background:rgba(255,255,255,.74);border:1px solid var(--line);box-shadow:0 12px 40px rgba(54,82,0,.06)}.prose p{margin:0}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(100%,920px);margin:0 auto}.photo-card{position:relative;overflow:hidden;border-radius:24px;background:#e6efd3;box-shadow:0 12px 30px rgba(45,72,0,.09);isolation:isolate}.photo-card::after{content:"＋";position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.88);color:var(--kinomi-deep);font-size:22px;font-weight:300;box-shadow:0 8px 20px rgba(0,0,0,.12);opacity:0;transform:translateY(8px);transition:.25s}.photo-card:hover::after,.photo-card:focus-visible::after{opacity:1;transform:none}.photo-card img{display:block;width:100%;height:auto;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .3s}.photo-card:hover img{transform:scale(1.02)}.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}
.info-section{padding:clamp(22px,4vw,46px);border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.83);box-shadow:var(--shadow)}.info-section>h1{position:relative;margin:0 0 26px;padding:0 0 14px;color:var(--kinomi-dark);font-size:clamp(22px,2.6vw,31px);line-height:1.5}.info-section>h1::after{content:"";position:absolute;left:0;bottom:0;width:86px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--kinomi),var(--kinomi-bright))}.schedule{display:grid;border:1px solid var(--line);border-radius:20px;overflow:hidden}.schedule>div{display:grid;grid-template-columns:130px 1fr;min-height:64px;background:#fff;border-bottom:1px solid var(--line)}.schedule>div:last-child{border-bottom:0}.schedule time{padding:16px 20px;background:var(--paper2);color:var(--kinomi-deep);font-weight:800}.schedule p{padding:16px 20px;margin:0}.activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.activity-list article{padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,var(--paper2))}.activity-list strong{color:var(--kinomi-deep);font-size:1.05em}.activity-list p{margin:.7em 0 0}.photo-purchase{text-align:center;margin:4px 0 0}.photo-purchase img{max-width:230px;transition:transform .2s,filter .2s}.photo-purchase a:hover img{transform:translateY(-3px);filter:drop-shadow(0 8px 10px rgba(50,80,0,.12))}
.lead-center{text-align:center;font-weight:700;font-size:1.05rem}.admission-table-wrap{overflow-x:auto;border-radius:20px;border:1px solid var(--line);background:#fff}.admission-table{width:100%;border-collapse:collapse;min-width:760px}.admission-table th,.admission-table td{padding:18px 18px;text-align:left;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.admission-table tr:last-child>*{border-bottom:0}.admission-table tr>*:last-child{border-right:0}.admission-table th{width:17%;background:var(--paper2);color:var(--kinomi-deep);font-weight:800}.admission-table td{background:#fff}.admission-table ol{margin:0;padding-left:1.4em}.admission-table li+li{margin-top:14px}.notice-text{margin-top:24px}.contact-card{display:block;max-width:720px;margin:24px auto 0;padding:24px 26px;border-radius:20px;background:linear-gradient(135deg,var(--kinomi-deep),#6f9d14);color:#fff;font-style:normal;box-shadow:0 14px 32px rgba(61,98,0,.19)}.contact-card strong{font-size:1.1em}.qr-link{text-align:center;margin:26px 0 0}.qr-link img{width:260px;max-width:75vw;border-radius:20px;box-shadow:0 12px 34px rgba(54,82,0,.12)}.map-image{width:min(100%,650px);margin:0 auto 24px}.map-photo{width:100%}.wide-static-image{max-width:800px;margin:0 auto 24px;border-radius:22px;overflow:hidden}.wide-static-image img{width:100%;display:block}.document-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.document-list article{padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,var(--paper2))}.document-list h2{font-size:18px;margin:0 0 8px;color:var(--kinomi-deep)}.document-list p{margin:0}.document-list a{font-weight:700;word-break:break-word}
.site-footer{margin-top:64px;padding:48px 20px calc(42px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#6c9900,#426900);color:#fff}.footer-inner{max-width:var(--max);margin:auto;text-align:center}.footer-mascots{width:min(276px,70vw);padding:8px 14px;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.12)}.footer-nav{margin-top:28px;display:flex;justify-content:center;gap:8px 18px;flex-wrap:wrap}.footer-nav a{color:#fff;text-decoration:none;font-weight:700;font-size:14px}.footer-nav a:hover{text-decoration:underline}.to-top{position:fixed;z-index:800;right:20px;bottom:20px;width:48px;height:48px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(67,107,0,.9);color:#fff;box-shadow:0 10px 24px rgba(31,54,0,.22);backdrop-filter:blur(8px);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s}.to-top.is-show{opacity:1;transform:none;pointer-events:auto}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}.lightbox{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:70px 74px;background:rgba(9,18,0,.88);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}.lightbox.is-open{opacity:1;visibility:visible}.lightbox figure{margin:0;max-width:min(1200px,92vw);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:10px}.lightbox figure img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:12px;box-shadow:0 20px 80px rgba(0,0,0,.5);background:white}.lightbox figcaption{color:white}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;backdrop-filter:blur(10px)}.lightbox-close{right:22px;top:18px;width:50px;height:50px;border-radius:50%;font-size:34px}.lightbox-prev,.lightbox-next{top:50%;width:54px;height:72px;border-radius:18px;transform:translateY(-50%);font-size:44px;line-height:1}.lightbox-prev{left:18px}.lightbox-next{right:18px}
@view-transition{navigation:auto}::view-transition-old(root){animation:.18s ease both fade-out}::view-transition-new(root){animation:.5s ease both fade-in}@keyframes fade-out{to{opacity:0}}@keyframes fade-in{from{opacity:0;transform:translateY(6px)}}
@media(max-width:900px){:root{--header-h:78px}.site-header{padding:6px 10px}.header-inner{min-height:64px;padding:4px 6px 4px 12px}.brand{flex:1;max-width:420px}.menu-toggle{display:flex;margin-left:auto}.global-nav{position:absolute;left:12px;right:12px;top:76px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px;border:1px solid rgba(153,204,0,.18);border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 20px 50px rgba(40,70,0,.18);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.23s}.global-nav.is-open{opacity:1;visibility:visible;transform:none}.global-nav a{padding:11px;text-align:center}.home-hero{grid-template-columns:1fr;gap:28px;padding-top:18px}.hero-copy{order:1}.hero-visual{order:0}.hero-copy h1{text-align:center}.welcome-mark{margin-bottom:18px}.hero-mascots{right:6px;bottom:-18px;width:180px}.activity-list,.document-list{grid-template-columns:1fr}.page-heading{min-height:130px}.heading-mascots{width:150px;right:12px}.lightbox{padding:64px 14px 82px}.lightbox-prev,.lightbox-next{top:auto;bottom:15px;height:50px}.lightbox-prev{left:calc(50% - 66px)}.lightbox-next{right:calc(50% - 66px)}}
@media(max-width:620px){.section-shell,.page-heading{width:min(calc(100% - 20px),var(--max))}.page-heading{margin-top:8px;margin-bottom:20px;border-radius:22px;min-height:110px}.legacy-title{width:min(86vw,500px)}.heading-mascots{display:none}.hero-image{border-radius:28px 28px 28px 10px}.hero-copy{padding:0 4px}.hero-copy p,.prose{font-size:15px;line-height:1.9}.prose{padding:20px 18px;border-radius:20px}.photo-grid,.two-up{grid-template-columns:1fr;gap:12px}.photo-card{border-radius:18px}.info-section{padding:20px 16px;border-radius:22px}.info-section>h1{font-size:21px}.schedule>div{grid-template-columns:95px 1fr}.schedule time,.schedule p{padding:14px 12px}.activity-list article{padding:17px}.admission-table-wrap{border:0;overflow:visible;background:transparent}.admission-table{min-width:0;display:block}.admission-table tbody{display:grid;gap:12px}.admission-table tr{display:grid;grid-template-columns:1fr;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.admission-table th,.admission-table td{display:block;width:auto!important;border:0;border-bottom:1px solid var(--line);padding:14px 16px}.admission-table tr>*:last-child{border-bottom:0}.admission-table th{background:var(--paper2)}.contact-card{padding:20px 18px}.footer-nav{gap:8px 14px}.to-top{right:12px;bottom:12px}.hero-mascots{width:150px}.home-hero{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* ===== 2026 interactive layer / original assets preserved ===== */
:root{
  --pointer-x:50vw;--pointer-y:30vh;--hero-progress:0%;
  --green-glow:rgba(153,204,0,.28);--green-veil:rgba(72,111,0,.72);
}
body::before{content:"";position:fixed;z-index:-3;inset:0;pointer-events:none;background:
 radial-gradient(520px circle at var(--pointer-x) var(--pointer-y),rgba(181,223,39,.13),transparent 70%)}
.ambient-layer{position:fixed;z-index:-2;inset:0;overflow:hidden;pointer-events:none;filter:blur(1px)}
.ambient-layer span{position:absolute;display:block;border-radius:48% 52% 63% 37%/48% 37% 63% 52%;background:linear-gradient(145deg,rgba(153,204,0,.10),rgba(72,111,0,.035));will-change:transform}
.ambient-layer span:nth-child(1){width:38vw;height:38vw;min-width:330px;min-height:330px;left:-14vw;top:16vh}
.ambient-layer span:nth-child(2){width:30vw;height:30vw;min-width:280px;min-height:280px;right:-10vw;top:58vh}
.ambient-layer span:nth-child(3){width:20vw;height:20vw;min-width:220px;min-height:220px;left:48vw;top:132vh}

/* Home hero */
.hero-showcase{position:relative;height:min(72vh,760px);min-height:520px;margin-top:14px;margin-bottom:0;overflow:hidden;border-radius:clamp(28px,4vw,54px);isolation:isolate;box-shadow:0 34px 100px rgba(40,70,0,.24);background:var(--kinomi-dark)}
.hero-slides{position:absolute;inset:0}
.hero-slide{appearance:none;position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#203600;opacity:0;visibility:hidden;cursor:zoom-in;transform:scale(1.03);transition:opacity .9s ease,visibility .9s ease,transform 7.5s cubic-bezier(.16,.64,.26,1);overflow:hidden}
.hero-slide.is-active{opacity:1;visibility:visible;transform:scale(1.09);z-index:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.95) contrast(1.02);transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.04);transition:filter .4s ease;will-change:transform}
.hero-slide:hover img{filter:saturate(1.05) contrast(1.03)}
.hero-shade{position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,rgba(22,45,0,.46),rgba(22,45,0,.08) 56%,rgba(22,45,0,.18)),linear-gradient(0deg,rgba(18,37,0,.45),transparent 50%);pointer-events:none}
.hero-branding{position:absolute;z-index:4;left:clamp(24px,5vw,72px);top:clamp(32px,7vh,82px);width:min(42%,390px);padding:18px 22px;border:1px solid rgba(255,255,255,.58);border-radius:24px;background:rgba(255,255,255,.88);box-shadow:0 18px 56px rgba(17,38,0,.17);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hero-branding .welcome-mark{display:block;width:100%;margin:0}
.hero-showcase .hero-mascots{position:absolute;z-index:5;right:clamp(20px,4vw,58px);bottom:clamp(42px,7vh,72px);width:min(28vw,260px);padding:8px 12px;border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 18px 55px rgba(19,42,0,.23);transform-origin:50% 100%;will-change:transform}
.hero-controls{position:absolute;z-index:6;left:50%;bottom:22px;display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(24,47,0,.48);box-shadow:0 12px 35px rgba(0,0,0,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateX(-50%);overflow:hidden}
.hero-controls::before{content:"";position:absolute;left:0;bottom:0;width:var(--hero-progress);height:2px;background:var(--kinomi-bright);transition:width .08s linear}
.hero-arrow{width:34px;height:34px;border:0;border-radius:50%;display:grid;place-items:center;padding:0;background:rgba(255,255,255,.12);color:white;font-size:25px;line-height:1;cursor:pointer;transition:.2s ease}
.hero-arrow:hover{background:white;color:var(--kinomi-deep);transform:scale(1.06)}
.hero-dots{display:flex;gap:7px;align-items:center}
.hero-dots button{width:8px;height:8px;border:0;border-radius:999px;padding:0;background:rgba(255,255,255,.48);cursor:pointer;transition:width .3s ease,background .3s ease}
.hero-dots button.is-active{width:29px;background:#fff}
.home-intro{position:relative;z-index:10;width:min(calc(100% - 96px),960px);margin:-54px auto 76px;padding:0}
.home-intro .hero-copy{position:relative;padding:clamp(28px,4vw,50px);border:1px solid rgba(255,255,255,.75);border-radius:32px;background:rgba(255,255,255,.92);box-shadow:0 26px 80px rgba(40,70,0,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.home-intro .hero-copy::before{content:"";position:absolute;left:0;top:34px;bottom:34px;width:5px;border-radius:99px;background:linear-gradient(var(--kinomi-bright),var(--kinomi-deep))}
.home-intro .hero-copy h1{text-align:left;font-size:clamp(28px,4.1vw,52px);max-width:820px;letter-spacing:.035em}
.home-intro .hero-copy p{font-size:clamp(15px,1.7vw,17px)}

/* Deeper motion across inner pages */
.page-heading,.info-section,.prose,.photo-card,.wide-photo,.wide-static-image{transform-style:preserve-3d}
.page-heading{transition:box-shadow .4s ease,transform .4s ease}.page-heading.is-inview{box-shadow:0 28px 74px rgba(44,74,0,.16)}
.photo-card{will-change:transform;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,filter .22s ease}
.photo-card.is-tilting{z-index:4;box-shadow:0 24px 64px rgba(37,69,0,.22);filter:saturate(1.04)}
.photo-card img{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.photo-card:hover img{transform:scale(1.025)}
.info-section{transition:box-shadow .45s ease,border-color .45s ease,transform .45s ease}
.info-section.is-section-active{border-color:rgba(153,204,0,.38);box-shadow:0 25px 62px rgba(44,74,0,.13);transform:translateY(-2px)}
img{transition:opacity .35s ease}
.js-loaded main img:not(.is-loaded),.js-loaded footer img:not(.is-loaded){opacity:.15}
.js-loaded main img.is-loaded,.js-loaded footer img.is-loaded{opacity:1}

/* Header gets a more app-like state while navigating */
.site-header.is-scrolled .header-inner{box-shadow:0 14px 46px rgba(42,67,0,.14)}
.global-nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:3px;height:2px;border-radius:2px;background:currentColor;opacity:.28;transition:left .22s ease,right .22s ease}
.global-nav a:hover::after,.global-nav a[aria-current="page"]::after{left:20%;right:20%}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:900px){
  .hero-showcase{height:min(68vh,640px);min-height:480px;border-radius:32px}
  .hero-branding{width:min(55%,360px);left:20px;top:22px;padding:13px 15px;border-radius:20px}
  .hero-showcase .hero-mascots{width:min(34vw,220px);right:18px;bottom:55px}
  .home-intro{width:min(calc(100% - 42px),900px);margin-top:-36px}
}
@media(max-width:620px){
  .hero-showcase{width:calc(100% - 12px);height:62vh;min-height:430px;margin-top:2px;border-radius:24px}
  .hero-slide img{object-position:center center}
  .hero-shade{background:linear-gradient(180deg,rgba(15,34,0,.13),rgba(15,34,0,.08) 45%,rgba(15,34,0,.55))}
  .hero-branding{width:calc(100% - 40px);max-width:320px;left:20px;top:18px;padding:11px 13px;border-radius:17px}
  .hero-showcase .hero-mascots{width:min(47vw,190px);right:14px;bottom:58px;padding:6px 8px;border-radius:17px}
  .hero-controls{bottom:14px;padding:6px 9px;gap:9px}.hero-arrow{width:31px;height:31px;font-size:22px}
  .home-intro{width:calc(100% - 20px);margin:-18px auto 46px}
  .home-intro .hero-copy{padding:26px 21px;border-radius:24px}.home-intro .hero-copy::before{top:28px;bottom:28px;width:4px}
  .home-intro .hero-copy h1{font-size:clamp(25px,8vw,35px);padding-left:5px}
  .ambient-layer span{opacity:.65}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide,.hero-slide.is-active,.hero-slide img,.photo-card,.photo-card img,.info-section{transform:none!important;transition:none!important}
  .hero-controls::before{display:none}
}

/* ===== Mobile-first interaction layer v3 ===== */
.mobile-dock{display:none}
.mobile-nav-backdrop{display:none}
@media(max-width:700px){
  :root{--mobile-dock-h:72px;--mobile-gutter:14px;--radius:22px}
  html{scroll-padding-top:78px}
  body{padding-bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom));background:linear-gradient(180deg,#fbfff4 0%,#f7fbea 100%)}
  body.nav-open{overflow:hidden;touch-action:none}
  .ambient-layer{display:none}
  body::before{display:none}

  /* Compact mobile header */
  .site-header{position:sticky;top:0;padding:7px 8px 3px;background:linear-gradient(180deg,rgba(251,255,244,.98),rgba(251,255,244,.82) 78%,transparent);z-index:1100}
  .site-header.is-scrolled{padding:5px 8px 2px}
  .header-inner,.is-scrolled .header-inner{min-height:58px;padding:5px 7px 5px 12px;gap:8px;border-radius:18px;background:rgba(255,255,255,.94);border:1px solid rgba(72,111,0,.12);box-shadow:0 8px 26px rgba(42,67,0,.10);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .brand{min-width:0;max-width:none;flex:1}
  .brand img{width:min(100%,310px);max-height:44px;object-fit:contain;object-position:left center}
  .menu-toggle{display:flex;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:rgba(153,204,0,.12)}

  /* App-like full-height mobile menu */
  .mobile-nav-backdrop{display:block;position:fixed;z-index:1170;inset:0;background:rgba(18,37,0,.34);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
  body.nav-open .mobile-nav-backdrop{opacity:1;visibility:visible}
  .global-nav{position:fixed;z-index:1180;left:10px;right:10px;top:auto;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;align-content:end;gap:8px;padding:18px 12px calc(18px + var(--mobile-dock-h));max-height:min(78vh,660px);overflow:auto;border:1px solid rgba(153,204,0,.20);border-radius:28px;background:rgba(255,255,255,.98);box-shadow:0 26px 80px rgba(24,47,0,.28);opacity:0;visibility:hidden;transform:translateY(30px) scale(.98);transform-origin:50% 100%;transition:opacity .25s ease,visibility .25s ease,transform .28s cubic-bezier(.2,.8,.2,1);-webkit-overflow-scrolling:touch}
  .global-nav::before{content:"メニュー";grid-column:1/-1;padding:0 8px 8px;color:var(--kinomi-dark);font-size:20px;font-weight:800;letter-spacing:.04em}
  .global-nav.is-open{opacity:1;visibility:visible;transform:none}
  .global-nav a{min-height:52px;display:flex;align-items:center;justify-content:center;padding:11px 8px;border:1px solid rgba(72,111,0,.11);border-radius:16px;background:var(--paper2);font-size:14px;line-height:1.3;text-align:center}
  .global-nav a[aria-current="page"]{background:var(--kinomi);border-color:transparent;box-shadow:none}
  .global-nav a::after{display:none}

  /* Mobile bottom navigation generated by app.js */
  .mobile-dock{position:fixed;z-index:1160;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));height:var(--mobile-dock-h);display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;padding:6px;border:1px solid rgba(255,255,255,.78);border-radius:23px;background:rgba(255,255,255,.92);box-shadow:0 18px 50px rgba(30,57,0,.20);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .mobile-dock a,.mobile-dock button{appearance:none;border:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 2px;border-radius:16px;background:transparent;color:#445330;text-decoration:none;font-size:10px;font-weight:800;line-height:1;letter-spacing:0;touch-action:manipulation}
  .mobile-dock a::before,.mobile-dock button::before{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:rgba(153,204,0,.10);color:var(--kinomi-deep);font-size:17px;font-weight:700;line-height:1}
  .mobile-dock a[data-page="home"]::before{content:"⌂"}
  .mobile-dock a[data-page="forest"]::before{content:"♧"}
  .mobile-dock a[data-page="daily"]::before{content:"☀"}
  .mobile-dock a[data-page="admission"]::before{content:"✓"}
  .mobile-dock button::before{content:"☰"}
  .mobile-dock a[aria-current="page"]{color:var(--kinomi-dark);background:rgba(153,204,0,.16)}
  .mobile-dock a[aria-current="page"]::before{background:var(--kinomi);color:#203700}
  body.nav-open .mobile-dock{z-index:1190}

  .scroll-progress{height:2px;z-index:1300}
  .section-shell,.page-heading{width:calc(100% - 20px)}

  /* Hero becomes an intentional portrait mobile canvas */
  .hero-showcase{width:calc(100% - 12px);height:min(68svh,610px);min-height:470px;max-height:650px;margin:3px auto 0;border-radius:26px;box-shadow:0 20px 55px rgba(40,70,0,.22)}
  .hero-slide{touch-action:pan-y;user-select:none;-webkit-user-select:none}
  .hero-slide img{object-position:center center;transform:scale(1.025)}
  .hero-slide.is-active{transform:scale(1.055)}
  .hero-branding{left:14px;right:14px;top:14px;width:auto;max-width:310px;padding:10px 12px;border-radius:16px}
  .hero-showcase .hero-mascots{right:12px;bottom:54px;width:min(47vw,176px);padding:6px 8px;border-radius:16px}
  .hero-controls{bottom:13px;min-height:42px;padding:5px 8px;gap:8px}
  .hero-arrow{width:32px;height:32px;font-size:23px}
  .hero-dots button{width:7px;height:7px}.hero-dots button.is-active{width:24px}
  .home-intro{width:calc(100% - 18px);margin:-15px auto 40px}
  .home-intro .hero-copy{padding:25px 19px 24px;border-radius:24px;box-shadow:0 18px 48px rgba(40,70,0,.13)}
  .home-intro .hero-copy::before{left:0;top:27px;bottom:27px;width:4px}
  .home-intro .hero-copy h1{margin-bottom:18px;padding-left:4px;font-size:clamp(25px,7.4vw,34px);line-height:1.42}
  .home-intro .hero-copy p{font-size:15px;line-height:1.95}

  /* Inner page header is smaller and readable without wasting screen height */
  .page-heading{min-height:98px;margin:5px auto 18px;border-radius:21px;box-shadow:0 10px 28px rgba(44,74,0,.10)}
  .legacy-title{width:min(82vw,430px);max-height:66px;object-fit:contain}
  .heading-mascots{display:none}

  /* Text and cards tuned for a 360-430px viewport */
  .content-flow{gap:18px}
  .prose,.info-section{border-radius:20px}
  .prose{padding:19px 16px;font-size:15px;line-height:1.95}
  .info-section{padding:20px 15px}
  .info-section>h1{margin-bottom:20px;font-size:21px;line-height:1.45}
  .info-section>h1::after{height:4px;width:68px}
  .lead-center{font-size:1rem;text-align:left}

  /* Photograph sets become swipe rails on mobile. Original files stay untouched. */
  .photo-grid,.photo-grid.two-up{display:flex;grid-template-columns:none;width:calc(100% + 20px);margin-left:-10px;gap:10px;padding:2px 10px 12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:10px;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:none}
  .photo-grid::-webkit-scrollbar{display:none}
  .photo-grid .photo-card{flex:0 0 min(86vw,390px);scroll-snap-align:center;border-radius:19px;box-shadow:0 9px 24px rgba(45,72,0,.10)}
  .photo-card::after{opacity:.92;transform:none;width:34px;height:34px;font-size:20px}
  .wide-photo,.wide-static-image,.map-image{border-radius:19px;overflow:hidden}

  .schedule{border-radius:17px}
  .schedule>div{grid-template-columns:82px 1fr;min-height:58px}
  .schedule time,.schedule p{padding:12px 10px;font-size:14px}
  .activity-list{grid-template-columns:1fr;gap:10px}.activity-list article{padding:16px;border-radius:16px}
  .document-list{grid-template-columns:1fr;gap:10px}.document-list article{padding:17px;border-radius:16px}
  .contact-card{margin-top:18px;padding:18px 16px;border-radius:17px}
  .qr-link img{max-width:min(70vw,250px)}

  /* Tables already convert to cards; tighten them further for phones. */
  .admission-table-wrap{border:0;overflow:visible;background:transparent}
  .admission-table{min-width:0;display:block}
  .admission-table tbody{display:grid;gap:10px}
  .admission-table tr{display:grid;grid-template-columns:1fr;background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden}
  .admission-table th,.admission-table td{display:block;width:auto!important;border:0;border-bottom:1px solid var(--line);padding:13px 14px;font-size:14px}
  .admission-table tr>*:last-child{border-bottom:0}

  /* Full-screen touch-friendly lightbox */
  .lightbox{padding:58px 8px calc(92px + env(safe-area-inset-bottom));background:rgba(13,25,0,.96)}
  .lightbox figure{width:100%;max-width:none;margin:0;display:grid;place-items:center}
  .lightbox figure img{max-width:100%;max-height:calc(100svh - 170px);border-radius:12px;object-fit:contain}
  .lightbox-close{top:10px;right:10px;width:44px;height:44px}
  .lightbox-prev,.lightbox-next{bottom:calc(22px + env(safe-area-inset-bottom));width:52px;height:52px}
  .lightbox-prev{left:calc(50% - 64px)}.lightbox-next{right:calc(50% - 64px)}

  .site-footer{margin-top:38px;padding:34px 14px calc(34px + var(--mobile-dock-h) + env(safe-area-inset-bottom))}
  .footer-mascots{width:min(230px,66vw)}
  .footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;margin-top:22px}
  .footer-nav a{padding:7px 3px;font-size:13px}
  .to-top{display:none}
}
@media(max-width:380px){
  .brand img{max-height:39px}.menu-toggle{width:43px;height:43px;flex-basis:43px}
  .hero-showcase{height:64svh;min-height:430px}.hero-showcase .hero-mascots{width:min(44vw,158px)}
  .home-intro .hero-copy{padding:22px 16px}.home-intro .hero-copy h1{font-size:24px}
  .mobile-dock a,.mobile-dock button{font-size:9px}
  .global-nav a{font-size:13px}
}

/* ===== synchronized inner-page theme / v4 ===== */
.site-header{padding:0 16px 12px;background:linear-gradient(180deg,rgba(247,244,236,.98),rgba(247,244,236,.84) 72%,transparent)}
.site-header.is-scrolled{padding-top:0;padding-bottom:8px}
.header-card{max-width:var(--max);margin:auto;background:rgba(255,255,255,.93);border:1px solid rgba(153,204,0,.14);border-top:none;border-radius:0 0 34px 34px;box-shadow:0 8px 22px rgba(118,126,83,.08)}
.header-inner,.is-scrolled .header-inner{max-width:none;min-height:auto;margin:0;display:flex;align-items:center;gap:18px;padding:16px 18px 14px;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.brand{flex:0 1 360px;min-width:220px}.brand img{width:min(100%,360px)}
.header-meta{display:flex;align-items:center;gap:18px;margin-left:auto}.header-mascots{width:210px;border-radius:14px}.header-quick-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:.96rem;font-weight:800;color:var(--kinomi-deep)}.header-quick-links a{position:relative;display:flex;align-items:center;gap:8px;text-decoration:none}.header-quick-links a::before{content:"";width:11px;height:11px;border-radius:50%;background:linear-gradient(180deg,var(--kinomi-bright),var(--kinomi));box-shadow:0 0 0 4px rgba(153,204,0,.12)}
.global-nav{margin:0;padding:0 18px 18px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.global-nav a{display:flex;align-items:center;justify-content:center;min-height:54px;padding:10px 12px;border-radius:999px;border:1px solid rgba(72,111,0,.15);background:#f5f2ea;color:var(--kinomi-deep);font-size:1rem;font-weight:800;text-decoration:none;box-shadow:none}.global-nav a:hover{background:#fff;transform:none}.global-nav a::after{display:none}.global-nav a[aria-current="page"]{background:linear-gradient(180deg,#a8d400,#87b700);color:#fff;box-shadow:0 10px 18px rgba(125,168,12,.18)}
.page-heading{background:linear-gradient(180deg,#fffef9,#f6f2e7);border-color:#e3dbc3;box-shadow:0 14px 30px rgba(103,112,57,.10)}.page-heading::before{border-color:rgba(153,204,0,.07)}.page-heading::after{background:rgba(153,204,0,.07)}
.prose,.info-section,.activity-list article,.document-list article,.admission-table-wrap,.contact-card,.wide-static-image,.wide-photo .photo-card{background:#fffef9;border-color:#e3dbc3}
.photo-card::after{opacity:1;transform:none;background:rgba(255,255,255,.94)}
.photo-card::before{content:"拡大";position:absolute;left:12px;top:12px;padding:6px 10px;border-radius:999px;background:rgba(86,115,31,.82);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em;z-index:2}
.lightbox figcaption{font-size:.95rem;line-height:1.6}
@media(max-width:900px){
  .site-header{padding:0 10px 8px}.header-card{border-radius:0 0 24px 24px}.header-inner,.is-scrolled .header-inner{padding:12px 14px 10px;gap:10px}.header-meta{display:none}.menu-toggle{display:flex;margin-left:auto;border-radius:14px;background:rgba(153,204,0,.12)}.global-nav{position:absolute;left:10px;right:10px;top:76px;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;border:1px solid rgba(153,204,0,.18);border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 20px 50px rgba(40,70,0,.18);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.23s;z-index:20}.global-nav.is-open{opacity:1;visibility:visible;transform:none}.global-nav a{min-height:46px;font-size:.95rem}
}
@media(max-width:620px){
  .global-nav{grid-template-columns:1fr}.photo-card::before{font-size:11px;padding:5px 9px}
}
/* ===== v5 requested fixes ===== */
.page-shell{overflow-x:clip;overflow-y:visible}
.header-quick-links a{padding:6px 8px;border-radius:999px}
body[data-page="map"] .header-quick-links a[href="kinomi06.htm"],
body[data-page="news"] .header-quick-links a[href="kinomi07.htm"]{background:rgba(153,204,0,.18);box-shadow:inset 0 0 0 1px rgba(72,111,0,.12)}
.global-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
.footer-nav a[aria-current="page"]{text-decoration:underline}

.theme-heading{min-height:auto;padding:14px 0;background:transparent;border:0;box-shadow:none}
.theme-heading::before,.theme-heading::after,.theme-heading .legacy-title,.theme-heading .heading-mascots{display:none!important}
.theme-banner{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;max-width:760px;margin:0 auto;padding:8px 14px;background:#f6f5ef;border-radius:24px}
.theme-banner h1{margin:0;flex:1;text-align:center;padding:18px 24px;background:linear-gradient(180deg,#a8d400,#88b800);border-radius:18px;color:#111;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.35;font-weight:900;letter-spacing:.01em;box-shadow:0 6px 16px rgba(125,168,12,.12)}
.theme-banner.daily h1{font-size:clamp(1.25rem,2.4vw,2rem)}
.theme-mascot{display:block;width:58px;height:58px;background-image:url('../imgs/character.gif');background-repeat:no-repeat;background-size:276px 61px;flex:0 0 58px}
.theme-mascot.m0{background-position:0 0}
.theme-mascot.m1{background-position:-55px 0}
.theme-mascot.m2{background-position:-110px 0}
.theme-mascot.m3{background-position:-165px 0}
.theme-mascot.m4{background-position:-220px 0}
@media(max-width:900px){
  .global-nav{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .theme-banner{padding:6px 10px;border-radius:18px;gap:10px}
  .theme-banner h1{padding:14px 14px;font-size:clamp(1.2rem,5vw,1.7rem);border-radius:14px}
  .theme-banner.daily h1{font-size:clamp(1rem,4.2vw,1.45rem)}
  .theme-mascot{width:46px;height:46px;flex-basis:46px;background-size:207px 46px}
  .theme-mascot.m0{background-position:0 0}
  .theme-mascot.m1{background-position:-41px 0}
  .theme-mascot.m2{background-position:-82px 0}
  .theme-mascot.m3{background-position:-124px 0}
  .theme-mascot.m4{background-position:-165px 0}
}

/* ===== v6 unified header ===== */
.site-header{position:sticky!important;top:0;z-index:1200;padding:0 0 10px;background:rgba(251,248,238,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.site-header .header-card{width:min(1180px,calc(100vw - 32px));max-width:none;margin:0 auto;padding:15px 30px 16px;background:rgba(255,255,255,.96);border:1px solid rgba(153,204,0,.12);border-top:0;border-radius:0 0 38px 38px;box-shadow:0 8px 26px rgba(84,91,53,.10)}
.site-header .topbar{min-height:74px;display:flex;align-items:center;gap:24px}
.site-header .header-brand{display:block;flex:0 1 520px;min-width:300px}
.site-header .header-brand img{display:block;width:min(520px,100%);height:auto}
.site-header .utility-links{margin-left:auto;display:flex;justify-content:flex-end;align-items:center;gap:28px;color:#557514;font-weight:800;font-size:.94rem}
.site-header .utility-link{display:flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;color:#557514}
.site-header .utility-link svg{width:22px;height:22px;fill:#79a600;flex:0 0 auto}
.site-header .menu-toggle{display:none;width:48px;height:48px;border:0;border-radius:14px;background:linear-gradient(180deg,#a6d31f,#7eab00);box-shadow:0 8px 18px rgba(103,144,0,.23);padding:12px;flex:0 0 48px}
.site-header .menu-toggle span{display:block;height:2px;background:#fff;border-radius:2px;margin:5px 0}
.site-header .global-nav{position:static;opacity:1;visibility:visible;transform:none;margin:0;border-top:2px solid rgba(126,171,0,.55);padding:16px 0 0;background:transparent;box-shadow:none;backdrop-filter:none;display:block}
.site-header .nav-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.site-header .nav-pill{min-height:0;height:48px;border:1px solid rgba(112,139,50,.17);border-radius:999px;display:grid;place-items:center;background:#fffdf9;color:#557514;font-size:1rem;font-weight:800;box-shadow:0 4px 13px rgba(0,0,0,.035);transition:.2s ease;text-decoration:none;padding:0}
.site-header .nav-pill:hover{transform:translateY(-2px);border-color:rgba(126,171,0,.4);background:#fffdf9}
.site-header .nav-pill::after{display:none!important}
body[data-page="home"] .site-header .nav-pill[data-page="home"],
body[data-page="forest"] .site-header .nav-pill[data-page="forest"],
body[data-page="food"] .site-header .nav-pill[data-page="food"],
body[data-page="daily"] .site-header .nav-pill[data-page="daily"],
body[data-page="admission"] .site-header .nav-pill[data-page="admission"]{background:linear-gradient(180deg,#a9d520,#83b300);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(103,144,0,.18)}
.site-header.is-scrolled .header-card{box-shadow:0 14px 32px rgba(84,91,53,.15)}
.theme-banner h1{line-height:1.35}
.theme-banner h1 .title-line{white-space:nowrap;display:inline-block}
.theme-banner.daily{max-width:900px}
.theme-banner.daily h1{font-size:clamp(1.35rem,2.35vw,2rem)}
@media(max-width:980px){
  .site-header .header-card{padding:12px 18px 14px}.site-header .header-brand{flex-basis:470px;min-width:250px}.site-header .header-brand img{width:min(470px,100%)}.site-header .utility-links{gap:16px;font-size:.85rem}.site-header .nav-track{gap:12px}
}
@media(max-width:760px){
  .site-header{padding-bottom:6px}.site-header .header-card{width:min(100% - 14px,720px);padding:10px 12px 12px;border-radius:0 0 25px 25px}.site-header .topbar{min-height:58px;gap:10px}.site-header .header-brand{flex:1;min-width:0}.site-header .header-brand img{width:min(100%,430px)}.site-header .utility-links{display:none}.site-header .menu-toggle{display:block;margin-left:auto}.site-header .global-nav{display:none;border-top:1px solid rgba(126,171,0,.3);padding:12px 0 0;margin-top:8px}.site-header .global-nav.is-open{display:block;position:static;opacity:1;visibility:visible;transform:none}.site-header .nav-track{grid-template-columns:1fr;gap:8px}.site-header .nav-pill{height:43px}
  .theme-banner h1 .title-line{white-space:normal}.theme-banner h1{line-height:1.3}
}


/* ===== V8: V6 baseline, requested fixes only ===== */
/* Preserve the V6 common header exactly; only refine title banner sizing and text contrast. */
.theme-banner{width:fit-content;max-width:min(calc(100% - 8px),980px)}
.theme-banner h1{flex:0 1 auto;width:auto;min-width:0;max-width:820px}
.theme-banner:not(.daily) h1 .title-line{white-space:nowrap}
.theme-banner.daily{max-width:min(calc(100% - 8px),920px)}
/* Fix the white-on-white contact boxes introduced by the V6 cascade. */
.contact-card{color:var(--ink)!important;background:#fffef9!important;border:1px solid #e3dbc3!important;box-shadow:0 12px 34px rgba(54,82,0,.08)!important}
.contact-card strong{color:var(--kinomi-deep)!important}
.map-link-row{text-align:center;margin:16px 0 8px}
.map-link-button{display:inline-flex;align-items:center;justify-content:center;padding:11px 20px;border-radius:999px;background:linear-gradient(180deg,#a8d400,#87b700);color:#fff!important;text-decoration:none!important;font-weight:800;box-shadow:0 8px 18px rgba(125,168,12,.18)}
.map-link-button::after{content:"↗";margin-left:8px}
@media(max-width:700px){
  .theme-banner{width:100%;max-width:100%}
  .theme-banner h1{max-width:none}
  .theme-banner:not(.daily) h1 .title-line{white-space:normal}
}


/* ===== V24 mobile menu additions ===== */
.mobile-nav-extra{display:none}
@media(max-width:700px){
  .site-header .nav-track{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .site-header .nav-pill{min-height:50px!important;height:auto!important;border-radius:16px!important;padding:9px 6px!important}
  .mobile-nav-extra{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  .mobile-nav-extra-link{min-height:48px!important;display:flex!important;align-items:center;justify-content:center;padding:10px 8px!important;border:1px solid rgba(72,111,0,.13)!important;border-radius:16px!important;background:#f8f7f1!important;color:#557514!important;font-size:14px!important;font-weight:800!important}
  .mobile-nav-extra-link:last-child{grid-column:1/-1}
}


/* ===== V32: page-enter fade 0.5s ===== */
@keyframes kinomi-page-fade-in{
  from{opacity:0}
  to{opacity:1}
}
body{animation:kinomi-page-fade-in .5s ease-out both}
@media (prefers-reduced-motion:reduce){
  body{animation:none!important}
}


/* ===== V40: mobile multi-photo gallery discoverability =====
   Mobile only: show the next photo edge, dots/count, a temporary swipe hint,
   and one subtle nudge animation. Desktop layout is unchanged.
*/
.mobile-gallery-shell{display:contents}
.mobile-gallery-controls,.mobile-gallery-swipe-hint{display:none}

@media(max-width:760px){
  .mobile-gallery-shell{
    position:relative;
    display:block;
    width:100%;
    margin:0;
  }

  /* Make it obvious that another image exists to the right from the first frame. */
  .mobile-gallery-shell>.photo-grid,
  .mobile-gallery-shell>.photo-grid.two-up{
    width:calc(100% + 20px);
    margin-left:-10px;
    margin-right:-10px;
    gap:10px;
    padding:2px 10px 10px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:10px;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
  }
  .mobile-gallery-shell>.photo-grid::-webkit-scrollbar{display:none}

  /* Roughly 50-65px of the following card remains visible on common phone widths. */
  .mobile-gallery-shell>.photo-grid>.photo-card{
    flex:0 0 calc(100% - 64px);
    max-width:none;
    scroll-snap-align:start;
    scroll-snap-stop:normal;
  }

  .mobile-gallery-controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:28px;
    margin:0 auto 2px;
    color:#637052;
    font-size:12px;
    line-height:1;
    user-select:none;
  }
  .mobile-gallery-dots{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
  }
  .mobile-gallery-dot{
    appearance:none;
    width:7px;
    height:7px;
    margin:0;
    padding:0;
    border:0;
    border-radius:999px;
    background:rgba(72,111,0,.23);
    cursor:pointer;
    transition:width .22s ease,background .22s ease,transform .22s ease;
  }
  .mobile-gallery-dot.is-active{
    width:20px;
    background:#7ea900;
  }
  .mobile-gallery-count{
    min-width:34px;
    color:#647052;
    font-weight:800;
    letter-spacing:.02em;
  }

  .mobile-gallery-swipe-hint{
    position:absolute;
    z-index:8;
    top:12px;
    right:8px;
    display:flex;
    align-items:center;
    gap:5px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:999px;
    background:rgba(55,84,0,.72);
    box-shadow:0 6px 18px rgba(35,55,0,.16);
    color:#fff;
    font-size:11px;
    font-weight:800;
    line-height:1;
    letter-spacing:.02em;
    pointer-events:none;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    opacity:1;
    transform:translateY(0);
    transition:opacity .35s ease,transform .35s ease;
  }
  .mobile-gallery-swipe-hint::after{
    content:"→";
    font-size:15px;
    line-height:.8;
  }
  .mobile-gallery-swipe-hint.is-hidden{
    opacity:0;
    transform:translateY(-4px);
  }

  /* One short invitation motion: content moves, the page itself does not scroll. */
  .photo-grid.is-swipe-hinting>.photo-card{
    animation:kinomiGallerySwipeNudge .8s cubic-bezier(.2,.75,.2,1) 1;
  }
  @keyframes kinomiGallerySwipeNudge{
    0%,100%{transform:translateX(0)}
    45%{transform:translateX(-25px)}
    68%{transform:translateX(-21px)}
  }
}

@media(prefers-reduced-motion:reduce){
  .photo-grid.is-swipe-hinting>.photo-card{animation:none!important}
  .mobile-gallery-dot,.mobile-gallery-swipe-hint{transition:none!important}
}

/* ===== V46 persistent header route transition ===== */
main.kinomi-route-enter{animation:kinomiRouteEnter .5s ease both}
@keyframes kinomiRouteEnter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){main.kinomi-route-enter{animation:none!important}}


/* ===== V60: routed-content load mask / fade ONLY =====
   Header is intentionally excluded. New page content remains invisible until
   the destination stylesheet is confirmed loaded and layout has settled.
*/
body.kinomi-spa-routing{animation:none!important}
body.kinomi-spa-stable{animation:none!important}
main.kinomi-route-preparing{
  opacity:0!important;
  animation:none!important;
}
footer.site-footer.kinomi-route-preparing{
  opacity:0!important;
}
main.kinomi-route-enter{
  animation:kinomiRouteEnter .5s ease both!important;
}
@keyframes kinomiRouteEnter{
  from{opacity:0}
  to{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  main.kinomi-route-enter{animation:none!important}
}

/* ===== V61: admission mobile category clarity =====
   Mobile only. Desktop table and source wording remain unchanged.
*/
@media(max-width:700px){
  body[data-page="admission"] .admission-table tbody{
    gap:12px;
  }
  body[data-page="admission"] .admission-table tr{
    border-radius:17px;
    box-shadow:0 6px 18px rgba(54,82,0,.045);
  }
  body[data-page="admission"] .admission-table th{
    padding:11px 14px;
    background:linear-gradient(180deg,#f1f7e5,#e9f2d8);
    color:var(--kinomi-deep);
    border-bottom:1px solid var(--line);
  }
  body[data-page="admission"] .admission-table td{
    position:relative;
    padding:13px 14px;
    background:#fff;
  }

  /* On rows 2-4, repeat the two PC column meanings before each stacked value. */
  body[data-page="admission"] .admission-table tr:nth-child(n+2):nth-child(-n+4) td:not([colspan])::before{
    display:block;
    width:max-content;
    max-width:100%;
    margin:0 0 7px;
    padding:3px 9px;
    border-radius:999px;
    background:rgba(153,204,0,.14);
    color:var(--kinomi-deep);
  }
  body[data-page="admission"] .admission-table tr:nth-child(n+2):nth-child(-n+4) td:nth-of-type(1):not([colspan])::before{
    content:"保育園児";
  }
  body[data-page="admission"] .admission-table tr:nth-child(n+2):nth-child(-n+4) td:nth-of-type(2):not([colspan])::before{
    content:"幼稚園児";
  }

  /* The following shared note belongs to the same opening-hours item. */
  body[data-page="admission"] .admission-table tr:nth-child(4){
    border-radius:17px 17px 0 0;
    border-bottom-color:transparent;
  }
  body[data-page="admission"] .admission-table tr:nth-child(4) td:last-child{
    border-bottom:0;
  }
  body[data-page="admission"] .admission-table tr:nth-child(5){
    margin-top:-12px;
    border-top:0;
    border-radius:0 0 17px 17px;
    box-shadow:0 8px 18px rgba(54,82,0,.045);
  }
  body[data-page="admission"] .admission-table tr:nth-child(5) td{
    border-top:1px dashed rgba(72,111,0,.22);
  }
}

/* ===== V62: admission mobile shared-category labels =====
   Mobile only. Clarifies rows that genuinely apply to both nursery and kindergarten children.
*/
@media(max-width:700px){
  body[data-page="admission"] .admission-table tr:nth-child(5) td[colspan="2"]::before,
  body[data-page="admission"] .admission-table tr:nth-child(6) td[colspan="2"]::before,
  body[data-page="admission"] .admission-table tr:nth-child(7) td[colspan="2"]::before,
  body[data-page="admission"] .admission-table tr:nth-child(8) td[colspan="2"]::before,
  body[data-page="admission"] .admission-table tr:nth-child(10) td[colspan="2"]::before{
    content:"保育園児幼稚園児共通";
    display:block;
    width:max-content;
    max-width:100%;
    margin:0 0 7px;
    padding:3px 9px;
    border-radius:999px;
    background:rgba(153,204,0,.14);
    color:var(--kinomi-deep);
  }
}


/* ===== V63: admission mobile explicit labels ===== */
@media(max-width:700px){
  body[data-page="admission"] .admission-table td[data-mobile-label]::before{
    content:attr(data-mobile-label);
    display:block;
    width:max-content;
    max-width:100%;
    margin:0 0 7px;
    padding:3px 9px;
    border-radius:999px;
    background:rgba(153,204,0,.14);
    color:var(--kinomi-deep);
  }
}
