/* Current CONTACT / NEWS presentation, retained from approved styles. */
:root { --u: calc(min(100vw, 1920px) / 1440); --header-h: calc(130 * var(--u)); --body-font: "WEC Japanese", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", sans-serif; --display-font: "WEC Display", "Arial Narrow", "Liberation Sans Narrow", Arial, sans-serif; --english-font: "sofia-pro", "Sofia Pro", "Gill Sans", Arial, sans-serif; --ink: #231815; --content: calc(1200 * var(--u)); color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 20px); }
body { margin: 0px; color: var(--ink); font-family: var(--body-font); text-size-adjust: 100%; }
html:lang(en) body { font-family: var(--english-font); }
a { color: inherit; text-decoration: none; }
button { color: inherit; cursor: pointer; }
button, input, select, textarea { font: inherit; }
button { border: 0px; border-radius: 0px; }
button:disabled { cursor: default; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; height: auto; }
button:focus-visible, a:focus-visible, [tabindex="0"]:focus-visible { outline: rgb(22, 79, 190) solid 3px; outline-offset: 5px; }
[hidden] { display: none !important; }
h1, h2, h3, p { margin: 0px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0px !important; margin: -1px !important; border: 0px !important; overflow: hidden !important; clip: rect(0px, 0px, 0px, 0px) !important; white-space: nowrap !important; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 2000; padding: 12px 20px; background: white; border: 2px solid rgb(22, 79, 190); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.paper-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 38px; padding: 0.25em 1.1em; background: url("../images/paper-magenta.webp") 50% 50% / 110% auto rgb(184, 0, 102); color: rgb(255, 255, 255); font-size: max(14px, calc(28 * var(--u))); font-weight: 700; line-height: 1.3; clip-path: polygon(1% 5%, 8% 0px, 23% 3%, 62% 0px, 92% 2%, 99% 7%, 100% 87%, 97% 99%, 72% 96%, 38% 100%, 2% 92%, 0px 81%); }
.site-footer { margin-top: auto; background: rgb(35, 24, 21); color: white; text-align: center; display: grid; place-items: center; min-height: calc(78 * var(--u)); padding: 10px; }
@media (max-width: 767px) {
:root { --u: calc(100vw / 377); --header-h: calc(72 * var(--u)); --content: calc(345 * var(--u)); }
.paper-button { min-height: 28px; font-size: max(12px, calc(14 * var(--u))); padding: 0.25em 1.2em; }
.site-footer { min-height: calc(31 * var(--u)); padding: 7px; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, ::before, ::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; animation-iteration-count: 1 !important; }
}
@media print {
.reveal { opacity: 1 !important; transform: none !important; }
}
.reveal { opacity: 1; --reveal-distance: 100px; }
.motion-ready .reveal[data-reveal="waiting"] { opacity: 0; translate: 0 var(--reveal-distance); }
.motion-ready .reveal[data-reveal="visible"] { animation: 1s cubic-bezier(0.25, 0.1, 0.25, 1) 0s 1 normal both running wec-reveal-in; }
@keyframes wec-reveal-in { 
  0% { opacity: 0; translate: 0 var(--reveal-distance); }
  100% { opacity: 1; translate: none; }
}
.header-inner.reveal, .hero-media.reveal, .floating-ticket.reveal, .about-caterpillar.reveal, .goods-caterpillar.reveal, .author-signature.reveal, .copyright.reveal { --reveal-distance: 0px; }
.motion-ready .mobile-menu:not([hidden]) > * { --reveal-distance: 24px; animation: 0.8s ease 0s 1 normal both running wec-reveal-in; }
.paper-button, .social-link, .vendor { transition: filter 0.22s, outline-color 0.22s; }
@media (hover: hover) {
a.paper-button[href]:hover { filter: brightness(1.09); }
.calendar-arrow:not(:disabled):hover, .sns-arrow:hover { filter: drop-shadow(rgba(255, 255, 255, 0.4) 0px 0px 3px); }
}
@media (max-width: 767px) {
.reveal { --reveal-distance: 60px; }
}
html[data-motion="off"] { scroll-behavior: auto; }
html[data-motion="off"] .reveal { opacity: 1 !important; translate: none !important; animation: auto ease 0s 1 normal none running none !important; }
html[data-motion="off"] *, html[data-motion="off"] ::before, html[data-motion="off"] ::after { animation: auto ease 0s 1 normal none running none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
.reveal, .mobile-menu:not([hidden]) > * { opacity: 1 !important; translate: none !important; animation: auto ease 0s 1 normal none running none !important; }
}
@media print {
.reveal { opacity: 1 !important; translate: none !important; animation: auto ease 0s 1 normal none running none !important; }
}
:root { --body-font: "WEC Japanese", "Hiragino Kaku Gothic ProN", sans-serif; --english-font: "sofia-pro-variable", "WEC Japanese", Arial, sans-serif; --display-font: "WEC Display", "Arial Narrow", sans-serif; }
body { font-synthesis: none; }
[tabindex="-1"]:focus { outline: none; }
summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: rgb(22, 79, 190) solid 3px; outline-offset: 4px; }
.copyright { width: min(390px, 62vw); height: auto; }
.accordion.is-expanded .accordion-icon::after, .accordion[open]:not(.is-closing) .accordion-icon::after { transform: rotate(0deg); }
.paper-button, .secondary-button, .calendar-arrow, .sns-arrow, .price-zoom, .menu-trigger, .menu-close, .social-link, .header-social { transition: transform 0.22s, filter 0.22s, box-shadow 0.22s; }
@media (hover: hover) {
.paper-button:hover, .paper-button:focus-visible { transform: translateY(-3px); filter: brightness(1.1); }
.calendar-arrow:not(:disabled):hover, .sns-arrow:hover, .price-zoom:hover, .social-link:hover, .header-social:hover { transform: translateY(-3px); }
}
.paper-button:active, .vendor:active, .floating-ticket:active, .secondary-button:active, .price-zoom:active, .calendar-arrow:not(:disabled):active, .sns-arrow:active { transform: translateY(1px) scale(0.98); }
.notice-dialog { width: min(480px, -36px + 100vw); border: 0px; padding: 36px; color: rgb(35, 24, 21); box-shadow: rgba(0, 0, 0, 0.333) 0px 20px 80px; }
.notice-dialog::backdrop { background: rgba(0, 0, 0, 0.6); }
.notice-dialog h2 { font-size: 24px; line-height: 1.5; margin-bottom: 16px; }
.notice-dialog p { font-size: 16px; line-height: 1.8; }
.notice-dialog .paper-button { margin-top: 24px; font-size: 18px; min-height: 44px; }
.subpage { min-height: 100svh; display: flex; flex-direction: column; }
.subpage-main { width: min(960px, 100% - 40px); padding: 50px 56px 65px; margin: 30px auto 90px; background: white; box-shadow: rgba(72, 41, 18, 0.05) 0px 8px 32px; }
.subpage-main > h1 { color: rgb(8, 113, 186); font: 400 68px/1 var(--display-font); }
.page-lead { margin-top: 22px; line-height: 1.8; }
.subpage .paper-button { font-size: 19px; min-height: 46px; }
.subpage .site-footer { min-height: 65px; width: 100%; }
.mock-notice { margin: 22px 0px 32px; padding: 14px 18px; background: rgb(255, 243, 212); border-left: 4px solid rgb(240, 152, 9); font-size: 14px; line-height: 1.7; }
#contact-fields { border: 0px; padding: 0px; margin: 0px; min-width: 0px; }
.form-field { display: grid; gap: 9px; margin: 0px 0px 25px; }
.form-field > span { font-weight: 700; }
.form-field small { display: inline-block; color: rgb(175, 7, 81); font-size: 11px; margin-left: 9px; }
.form-field input, .form-field select, .form-field textarea { background: rgb(255, 255, 255); border: 1px solid rgb(171, 167, 159); padding: 12px 14px; width: 100%; min-width: 0px; font-size: 16px; color: rgb(35, 24, 21); border-radius: 2px; }
.form-field textarea { resize: vertical; min-height: 160px; }
.form-stage h2 { font-size: 24px; margin: 30px 0px 20px; }
.form-stage p { line-height: 1.8; margin-bottom: 30px; }
#review-values { margin: 0px; }
#review-values dt { font-weight: 700; margin: 22px 0px 8px; }
#review-values dd { margin: 0px; white-space: pre-wrap; overflow-wrap: anywhere; padding-bottom: 18px; border-bottom: 1px solid rgb(221, 221, 221); line-height: 1.7; }
.form-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; }
.secondary-button { background: rgb(238, 234, 224); padding: 12px 22px; font-size: 16px; }
@media (max-width: 767px) {
.copyright { width: min(260px, 70vw); }
.subpage-main { width: calc(100% - 24px); padding: 30px 20px 38px; margin: 20px auto 45px; }
.subpage-main > h1 { font-size: 50px; }
.page-lead { font-size: 14px; margin-top: 18px; }
.subpage .paper-button { font-size: 16px; }
.form-field { font-size: 14px; }
.form-actions { flex-direction: column-reverse; }
.mock-notice { padding: 12px; }
}
html { scrollbar-gutter: stable; }
dialog.content-dialog::backdrop, dialog.notice-dialog::backdrop, dialog.price-dialog::backdrop { background: rgba(0, 0, 0, 0.6); }
@keyframes wec-dialog-in { 
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes wec-dialog-out { 
  0% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes wec-backdrop-in { 
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes wec-backdrop-out { 
  0% { opacity: 1; }
  100% { opacity: 0; }
}
@media (min-width: 768px) and (pointer: fine) {
}
.workshop[data-refine23-tickets] .calendar-arrow:not(:disabled):hover, .workshop[data-refine23-tickets] .calendar-arrow:not(:disabled):active { filter: none; transform: translateY(-50%); box-shadow: none; }
.workshop[data-refine23-tickets] .calendar-arrow:not(:disabled):hover { opacity: 0.7; }
.workshop[data-refine23-tickets] .calendar-arrow:not(:disabled):active { opacity: 0.5; }
.subpage[data-lower23] {  }
@media (max-width: 767px) {
.motion-ready .mobile-menu:not([hidden]) > * { animation: auto ease 0s 1 normal none running none; opacity: 1; translate: none; }
}
.contact-page .contact-rainbow25 { display: inline-flex; gap: 0px; font-family: var(--display-font); font-weight: 400; line-height: 1.05; }
.contact-page .contact-rainbow25 > span { color: var(--letter-color); }
details.faq-qa[open]:not(.is-closing) > .faq-question > .faq-question-icon { transform: rotate(225deg); }
.subpage[data-lower23][data-tissue251] {  }
html[data-subpage253] { --header-h: max(88px,calc(126 * var(--u))); scroll-padding-top: calc(var(--header-h) + 20px); }
@media (max-width: 767px) {
html[data-subpage253] { --header-h: max(88px,calc(88 * var(--u))); }
}
.privacy-notice253 { margin: 32px 0px 26px; padding-top: 24px; border-top: 1px solid rgb(213, 207, 196); }
.privacy-notice253 h2 { font-family: var(--body-font); font-size: 20px; font-weight: 700; line-height: 1.6; margin: 0px 0px 14px; }
.privacy-notice253 p { font-size: 15px; line-height: 1.85; margin: 0px 0px 14px; overflow-wrap: anywhere; }
.privacy-notice253 a { color: rgb(18, 102, 77); text-decoration: underline; text-underline-offset: 3px; }
.privacy-confirm253 { display: flex; align-items: flex-start; gap: 12px; min-height: 48px; margin-top: 18px; padding: 12px 0px; font-size: 16px; line-height: 1.7; cursor: pointer; }
.privacy-confirm253 input { flex: 0 0 22px; width: 22px; height: 22px; margin: 2px 0px 0px; accent-color: rgb(222, 91, 7); cursor: pointer; }
.privacy-confirm253 > span { min-width: 0px; }
.privacy-required253 { display: inline-block; margin-left: 10px; color: rgb(165, 8, 69); font-size: 12px; font-weight: 700; }
.privacy-confirm253 input:focus-visible { outline: rgb(22, 95, 189) solid 3px; outline-offset: 4px; }
html:lang(en) .privacy-notice253 h2 { font-family: var(--english-font); }
@media (max-width: 767px) {
.privacy-notice253 { margin-top: 28px; padding-top: 20px; }
.privacy-notice253 h2 { font-size: 18px; }
.privacy-notice253 p { font-size: 14px; }
.privacy-confirm253 { gap: 10px; font-size: 14px; }
}
@media (max-width: 767px) {
html[data-subpage253] { --header-h: calc(64 * var(--u)); }
}
