/* Shared mappings: section-eyebrow/eyebrow, archive-back/exchange-back,
   about-button/contact-cta/exchange-primary, work/people/archive/folktale cards,
   about/people/dolls/activity/exchange facts, and folktale/story prose. */
.skip-link { position:absolute; top:0; left:1rem; transform:translateY(-150%); z-index:100; background:var(--card); padding:8px 16px; }
.skip-link:focus { transform:none; }
.site-header { background:var(--paper); border-bottom:1px solid var(--line); z-index:50; }
.header-inner { max-width:1400px; margin:auto; padding:16px var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; flex-shrink:0; }
.brand-text { display:grid; line-height:1.3; }.brand small { font-size:14px; }.brand strong { font-family:var(--font-serif); font-size:24px; }
.seal { display:grid; place-items:center; background:var(--shu); color:white; border-radius:50%; width:36px; height:36px; }
.site-menu { display:grid; justify-items:end; gap:4px; }.site-menu ul { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; }
.main-nav a { display:inline-flex; align-items:center; min-height:48px; color:var(--ink); text-decoration:none; font-size:16px; line-height:1.5; }
.main-nav a[aria-current=page] { color:var(--green); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:8px; }
.main-nav .nav-contact { background:var(--green); color:#fff; border-radius:999px; padding:8px 18px; }
.language-switcher a,.footer-languages a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; color:var(--muted); }
.menu-toggle { display:none; }
.section-label,.section-eyebrow,.eyebrow { color:var(--lake); font-weight:700; font-size:15px; letter-spacing:.05em; }
.archive-back,.exchange-back,.back-link { display:inline-block; margin-bottom:24px; }
.button,.about-button,.contact-cta,.exchange-primary { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:10px 24px; border:1px solid var(--green); border-radius:999px; background:var(--green); color:white; font-weight:700; text-decoration:none; }
.about-button.secondary,.button-secondary { background:transparent; color:var(--green); }
.work-card,.people-profile-card,.person-card,.archive-card,.upcoming-card,.folktale-card,.routine-card,.exchange-video-card { background:var(--card); border-radius:22px; box-shadow:var(--shadow); padding:24px; min-width:0; }
.folktale-text,.story-panel,.about-overview-body,.people-intro-body,.photo-book-source { max-width:40em; font-size:18px; line-height:2; }
main img,main video { border-radius:16px; } main video { display:block; width:100%; }
main figcaption { margin-top:8px; }
@media(max-width:1100px) { .js .site-header { position:sticky; top:0; } .header-inner { flex-wrap:wrap; padding-block:10px; }.site-menu { width:100%; justify-items:start; }.js .menu-toggle { display:inline-flex; min-height:48px; align-items:center; padding:8px 20px; border:1px solid var(--green); border-radius:999px; background:var(--card); color:var(--green); font-weight:700; }.js .site-menu { display:none; max-height:calc(100vh - 75px); overflow:auto; }.js .site-menu.is-open { display:block; }.js .main-nav ul { display:grid; gap:0; }.js .main-nav a { width:100%; border-bottom:1px solid var(--line); padding:8px; }.js .language-switcher ul { margin-top:12px; } }
@media(max-width:700px) { .folktale-text,.story-panel,.about-overview-body,.people-intro-body,.photo-book-source { font-size:17px; } main img { max-height:70vh; object-fit:contain; } }
.wrap { width:min(1120px,calc(100% - var(--gutter)*2)); margin-inline:auto; }
.legacy-anchor,.anchor-target { display:block; }
.badge,.card-icon,.work-mark { display:inline-grid; place-items:center; width:48px; height:48px; background:var(--cream); color:var(--wood); border-radius:50%; }
.is-focus-storyteller { object-position:50% 22%; }.is-focus-jonenbo { object-position:50% 53%; }.is-focus-library-stage { object-position:50% 30%; }.is-focus-alps-storytelling { object-position:62% 28%; }.is-focus-library-0719-child { object-position:50% 28%; }.is-focus-resort-kotaro { object-position:50% 34%; }

/* Layout shared by interior page families. */
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) { width:min(1120px,calc(100% - var(--gutter)*2)); margin-inline:auto; padding:40px 0 96px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) > section { padding-block:56px; border-bottom:1px solid var(--line); }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) > section:first-child { padding-top:0; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) h1 { margin:12px 0 24px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) h1 span { display:block; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) h2 { margin:0 0 24px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) h3 { margin:0 0 12px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) img { width:100%; object-fit:cover; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) a { overflow-wrap:anywhere; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-hero"]:is(section) { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-hero"]:is(section) > :first-child { min-width:0; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-facts"], :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-grid"], :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .join-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-facts"] > div { padding:20px; background:var(--cream); border-radius:16px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-facts"] dd { margin:0; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-actions"], :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .about-next-links, :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .archive-next { display:flex; flex-wrap:wrap; gap:16px; margin-top:24px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-actions"] a, :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .about-next-links a, :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .archive-next a { display:inline-flex; align-items:center; min-height:48px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] > :first-child { grid-column:1 / -1; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] img { height:220px; object-fit:cover; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] > img:first-child { height:380px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-photo-label"] { grid-column:1 / -1; color:var(--muted); font-size:15px; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-grid"] > * { min-width:0; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-card"] img { aspect-ratio:3/2; object-fit:cover; }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .is-document { object-fit:contain; background:var(--cream); }
:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) ul { padding-left:1.4em; }
@media(max-width:700px) { :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) { padding:24px 0 60px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) > section { padding-block:40px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-hero"]:is(section) { grid-template-columns:1fr; gap:24px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-facts"],:is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-grid"], :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) .join-list { grid-template-columns:1fr; gap:14px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] img { height:160px; } :is(.about-main,.people-main,.dolls-main,.archive-main,.activity-page-main,.exchange-main,.folktale-main,.photo-book-main) [class*="-visual"] > img:first-child { height:280px; } }

/* Storybook accents shared by the site navigation and primary actions. */
.site-header { font-family:var(--font-serif); }
.main-nav .nav-contact { background:var(--shu); }
.button,.about-button,.contact-cta,.exchange-primary { border-color:var(--shu); background:var(--shu); }
.button-secondary,.about-button.secondary { background:transparent; color:var(--shu); }

/* The footer borrows its rhythm from a paper scroll, with the real clay work alongside. */
.site-footer { background:var(--cream); padding:56px 0 0; border-top:1px solid var(--line); font-family:var(--font-serif); font-weight:500; }
.site-footer .footer-inner { width:min(1200px,calc(100% - var(--gutter)*2)); margin-inline:auto; }
.site-footer :is(h2,p,figure) { margin:0; }
.site-footer h2 { font-size:21px; line-height:1.6; margin-bottom:18px; }
.site-footer a { color:var(--ink); text-decoration:none; }
.site-footer a:focus-visible { outline:3px solid var(--shu); outline-offset:4px; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.site-footer .footer-opening { display:grid; grid-template-columns:minmax(220px,.85fr) minmax(0,2fr); align-items:start; gap:56px; }
.site-footer .footer-brand-name { display:inline-grid; min-height:44px; line-height:1.5; }
.site-footer .footer-brand-name small { color:var(--ink); font-size:15px; }
.site-footer .footer-brand-name strong { font-size:26px; font-weight:600; }
.site-footer:lang(ja) .footer-brand-name strong { word-break:keep-all; overflow-wrap:anywhere; }
.site-footer .footer-brand p { margin-top:16px; font-size:16px; max-width:30em; }
.site-footer .footer-figure { margin-top:24px; width:220px; max-width:100%; }
.site-footer .footer-figure img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:3px; }
.site-footer .footer-figure figcaption { margin-top:8px; font-size:14px; }
.site-footer .footer-stories { position:relative; padding:26px 22px 30px; margin-top:6px; border-block:2px solid #bfa67b; border-inline:8px solid #c1a16d; background:var(--paper); box-shadow:0 5px 0 rgb(122 90 64 / .08); }
.site-footer .footer-stories::before,.site-footer .footer-stories::after { content:""; position:absolute; width:14px; inset-block:-12px; border:1px solid #a88b5f; background:linear-gradient(90deg,#b99b6c,#e6d1a8,#b99b6c); border-radius:4px; }
.site-footer .footer-stories::before { left:-11px; }.site-footer .footer-stories::after { right:-11px; }
.site-footer .footer-stories h2 { text-align:center; margin-bottom:24px; }
.site-footer .footer-story-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.site-footer .footer-story { display:flex; flex-direction:column; align-items:start; min-width:0; padding:4px 18px 0; border-inline-start:1px solid var(--line); }
.site-footer .footer-story:first-child { border-inline-start:0; }
.site-footer .footer-story strong { font-size:21px; line-height:1.6; font-weight:600; }
.site-footer .footer-story-summary { margin-top:12px; margin-bottom:18px; font-size:15px; line-height:1.9; }
.site-footer .footer-arrow { display:grid; place-items:center; margin-top:auto; margin-left:auto; width:32px; height:32px; border-radius:50%; background:var(--shu); color:var(--card); font-family:var(--font-sans); font-size:24px; line-height:1; }
.site-footer .footer-story[aria-current=page] strong { color:var(--shu); text-decoration:underline; text-underline-offset:6px; }
.site-footer .footer-utilities { display:grid; grid-template-columns:1.2fr .85fr 1fr; gap:32px; margin-top:40px; padding-top:32px; border-top:1px solid #cdbb9e; }
.site-footer .footer-utilities > * { min-width:0; }
.site-footer .footer-language-group,.site-footer .footer-contact { border-inline-start:1px solid #cdbb9e; padding-inline-start:32px; }
.site-footer .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 20px; }
.site-footer .footer-links a { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; font-size:16px; line-height:1.6; padding-block:6px; }
.site-footer .footer-links a > [aria-hidden] { color:var(--shu); }
.site-footer .footer-languages { display:flex; flex-wrap:wrap; gap:8px; }
.site-footer .footer-languages a { display:inline-flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; padding:6px 12px; border:1px solid #cdbb9e; border-radius:3px; color:var(--text); font-size:15px; line-height:1.5; }
.site-footer .footer-languages a[aria-current=true] { background:var(--shu); color:var(--card); border-color:var(--shu); text-decoration:underline; }
.site-footer .footer-contact p { font-size:15px; line-height:1.9; }
.site-footer .footer-contact-link { display:flex; justify-content:space-between; align-items:center; gap:14px; min-height:48px; margin-top:18px; padding:8px 18px; border:1px solid var(--shu); border-radius:999px; color:var(--shu); font-size:16px; line-height:1.6; }
.site-footer .footer-panorama { height:170px; margin-top:16px; background-image:linear-gradient(var(--cream),transparent 45%),url('/assets/footer/mountain-panorama.webp'); background-position:center bottom; background-repeat:no-repeat; background-size:100% 100%,cover; }
.site-footer .footer-copy { display:block; padding:18px var(--gutter) 24px; text-align:center; color:var(--muted); font-size:14px; line-height:1.8; }
.site-footer .footer-opening-translated { display:block; }
.site-footer .footer-opening-translated .footer-brand { display:grid; grid-template-columns:minmax(0,1fr) 220px; column-gap:40px; align-items:center; }
.site-footer .footer-opening-translated .footer-figure { grid-column:2; grid-row:1 / 3; margin:0; }
@media(max-width:1023px) {
 .site-footer .footer-opening { grid-template-columns:1fr; gap:32px; }
 .site-footer .footer-brand { display:grid; grid-template-columns:minmax(0,1fr) 180px; column-gap:32px; align-items:center; }
 .site-footer .footer-figure { grid-column:2; grid-row:1 / 3; margin:0; }
 .site-footer .footer-utilities { grid-template-columns:1fr 1fr; gap:28px; }
 .site-footer .footer-language-group { grid-column:1 / -1; grid-row:2; border:0; border-top:1px solid #cdbb9e; padding:24px 0 0; }
 .site-footer .footer-panorama { height:140px; }
}
@media(max-width:639px) {
 .site-footer { padding-top:32px; }
 .site-footer .footer-brand,.site-footer .footer-opening-translated .footer-brand { grid-template-columns:minmax(0,1fr) 100px; gap:8px 16px; align-items:start; }
 .site-footer .footer-brand-name { grid-column:1 / -1; }
 .site-footer .footer-brand p { grid-column:1; grid-row:2; }
 .site-footer .footer-figure,.site-footer .footer-opening-translated .footer-figure { grid-column:2; grid-row:2; }
 .site-footer .footer-brand-name strong { font-size:26px; word-break:auto-phrase; }
 .site-footer .footer-brand-name small { font-size:14px; }
 .site-footer .footer-brand p { margin-top:6px; font-size:15px; }
 .site-footer .footer-figure figcaption { font-size:12px; }
 .site-footer .footer-stories { padding:24px 0; border-inline:0; border-block:1px solid #cdbb9e; box-shadow:none; }
 .site-footer .footer-stories::before,.site-footer .footer-stories::after { display:none; }
 .site-footer .footer-story-list { grid-template-columns:1fr; }
 .site-footer .footer-story { position:relative; padding:16px 44px 16px 0; border:0; border-top:1px solid var(--line); }
 .site-footer .footer-story:first-child { border-top:0; padding-top:0; }
 .site-footer .footer-story-summary { margin-top:4px; margin-bottom:0; }
 .site-footer .footer-arrow { position:absolute; right:0; top:50%; transform:translateY(-50%); margin:0; }
 .site-footer .footer-utilities { grid-template-columns:1fr; margin-top:28px; padding-top:26px; }
 .site-footer .footer-contact { grid-row:2; border:0; border-top:1px solid #cdbb9e; padding:24px 0 0; }
 .site-footer .footer-language-group { grid-row:3; }
 .site-footer .footer-panorama { height:80px; background-size:100% 100%,auto 160px; }
}
@media print { .site-footer .footer-panorama { display:none; } }
