/* PDF artboard: 85.375rem. Dimensions scale with the existing root font size. */
.subpage {background:#fff;color:#080808}
.subpage .site{max-width:120rem}
.subpage .sub-main{padding:0}
.subpage .header{position:fixed;top:3.3125rem;left:4.25rem;right:3.3125rem;margin:0}
.subpage .header.is-scrolled{top:1rem}
.page-heading{height:28.25rem;position:relative;background:url("../img/page-city.webp") center top/100% 100% no-repeat;display:flex;align-items:center;gap:2rem;padding:0 7.5rem;color:#fff}
.page-heading h1{font-family:"M PLUS 1",sans-serif;font-size:4.5rem;font-weight:900;line-height:1.2;letter-spacing:-0.1875rem;margin:0;order:-1;white-space:nowrap}
.page-heading .jp{font-size:1.75rem;font-weight:900;white-space:nowrap}
.page-heading h1{position:relative;top:2.5rem;text-shadow:0 0 0.4375rem #3fa9f5,0 0 0.875rem #3fa9f5}
.page-heading .jp{position:relative;top:3rem;text-shadow:0 0 0.4375rem #3fa9f5,0 0 0.875rem #3fa9f5}
.sub-section{width:72.375rem;margin:0 auto}
.company-message{padding:8rem 0 5.625rem}
.company-message .split{display:grid;grid-template-columns:24.375rem 42.875rem;gap:4rem;margin-left:1.875rem}
.company-message .portrait-frame{margin:0;width:24.375rem}
.company-message .portrait-frame img{width:24.375rem;height:27.375rem}
.company-message .company-copy h2{color:#3fa9f5;font-size:1.5rem;line-height:1.5;font-weight:800;margin:0 0 2.125rem;white-space:nowrap;letter-spacing:-0.03125rem}
.company-message .company-copy p{font-size:1rem;line-height:1.75rem;letter-spacing:0;margin:0 0 1.75rem}
.company-message .company-copy p:last-child{margin:0}
.overview-access{padding:0 0 7.25rem;background:white}
.overview-grid{display:grid;grid-template-columns:38.875rem 31rem;gap:2.5rem}
.overview-column h2,.access-card h2{display:flex;gap:0.625rem;align-items:center;font-size:2.25rem;font-weight:900;line-height:3.375rem;margin:0 0 1.875rem;color:#ff0097}
.overview-column h2:after,.access-card h2:after{content:"";height:0.0625rem;background:currentColor;flex:1;opacity:.7}
.access-card h2{color:#1eaa39}
.company-table{margin:0 1rem}
.company-row{display:grid;grid-template-columns:7.875rem 1fr;font-size:1rem;line-height:1.625rem;padding:0.625rem 0.875rem;border-bottom:0.0625rem solid #ddd}
.company-row dt{font-weight:400}
.company-row dd{margin:0}
.overview-character{width:24.875rem;margin:0.75rem auto 0}
.access-card h3{font-size:1.5rem;line-height:2.25rem;margin:0 0 1.375rem}
.access-card p{font-size:1.125rem;line-height:1.96875rem;margin:0 0 1.875rem}
.access-card .access-map{width:29.75rem;height:25.3125rem;object-fit:cover;margin:2.875rem 0 0 0.625rem}
.company-page .lower-contact .contact-copy{padding-left:10.5625rem}
.privacy-policy {padding: 8rem 0 5.625rem;}
.privacy-policy h2 {
    font-size: 1.25rem;
    color: #009fe8;
    margin-top: 2rem;
    margin-bottom: 1rem;
}
.lower-contact{margin:0;height:18.75rem}
.lower-contact .contact-copy{padding-top:3.125rem}
.lower-contact .contact-mascot{width:25.6875rem;top:-2.125rem;right:-3.8125rem}
.subpage .footer{height:11.3125rem}
.services{width:69.125rem;margin:0 auto;padding-top:5rem}
.service-detail{--service-color:#00a7dc;position:relative;border:0;padding:0 0 8.875rem}
.service-detail:before{content:"";height:0.4375rem;display:block;background:linear-gradient(90deg,var(--service-color),transparent)}
.service-detail:nth-child(2){--service-color:#ff0097}
.service-detail:nth-child(3){--service-color:#1eaa39}
.service-detail:nth-child(4){--service-color:#5f1985;padding-bottom:3.875rem}
.service-heading{display:flex;align-items:center;gap:1rem;margin:0.875rem 0 2.375rem;color:var(--service-color)}
.service-no{font-family:"Roboto Condensed","Arial Narrow",sans-serif;font-stretch:condensed;font-size:6rem;font-weight:900;line-height:1;opacity:.22}
.service-title{font-size:2rem;line-height:3rem;font-weight:800;letter-spacing:-0.0375rem;margin:0}
.service-layout{display:grid;grid-template-columns:29.75rem 35.625rem;gap:3.75rem;align-items:start}
.service-copy{font-size:1rem;line-height:1.875rem}
.service-copy p{margin:0}
.service-copy p+p{margin-top:0}
.service-visual>img{width:100%;height:auto}
.service-link{display:inline-flex;align-items:center;gap:1.625rem;height:3.25rem;border:0.0625rem solid var(--service-color);border-radius:1.75rem;color:var(--service-color);padding:0 1.75rem;font-size:1.1875rem;font-weight:700;line-height:1.3;margin-top:3.625rem;box-shadow:0 0 0.3125rem color-mix(in srgb,var(--service-color) 15%,transparent);text-decoration:none}
.service-link:hover{background:var(--service-color);color:white}
.service-link span{font-size:1.75rem}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1.75rem;margin-top:4.75rem;align-items:end}
.gallery img{width:100%;height:10.625rem;object-fit:cover;border-radius:0}
.gallery img:first-child{height:11.875rem}
#miyaoshi .service-layout,#festa .service-layout{grid-template-columns:35.625rem 29.75rem;gap:3.75rem}
.miyaoshi-logo{width:23.5rem;height:auto;margin:0 auto 2.375rem}
#miyaoshi .service-copy p+p{margin-top:1.875rem}
#miyaoshi .service-link{margin-top:3.375rem}
.gallery.five{grid-template-columns:repeat(5,1fr);gap:2.25rem;margin-top:5.25rem}
.gallery.five img{height:auto;aspect-ratio:1;object-fit:cover}
#fighters .service-heading{margin-bottom:4.5rem}
#fighters .service-visual>img{width:26.9375rem;margin:0 auto}
#fighters .service-copy{padding-top:1.5rem}
#fighters .gallery{margin-top:2.75rem}
#fighters .gallery img{height:11.875rem}
#festa .service-heading{margin-bottom:3.25rem}
.festa-scene{position:relative;width:29.75rem;height:22.125rem}
.festa-scene .building{width:100%;height:100%;object-fit:cover}
.festa-scene .character{position:absolute;width:13.3125rem;height:19.0625rem;object-fit:contain;bottom:0}
.festa-scene .character.left{left:-1.5rem;bottom:0.75rem}
.festa-scene .character.right{right:-1.5rem}
#festa .service-link{margin-top:2.75rem}
.shooter-layout{margin-top:4rem}
.shooter-layout .service-copy p+p{margin-top:1.875rem}
#festa .shooter-layout .service-link{margin-top:2.875rem}
.contact-intro{width:54.5rem;margin:9.125rem auto 5.5rem;font-size:1rem;line-height:1.875rem}
.contact-form{width:54.5rem;margin:0 auto}
.form-row{display:grid;grid-template-columns:14.25rem 1fr;align-items:center;min-height:2.75rem;margin:0 0 2.625rem;font-size:1.125rem}
.form-row label{font-weight:400}
.required{color:#ff0097}
.form-row input,.form-row textarea{font:inherit;background:#f8f8f8;border:0;border-radius:1.5rem;box-shadow:inset 0.0625rem 0.125rem 0.1875rem #0003,0.125rem 0.1875rem 0.5rem #00000006;height:2.75rem;width:22.5rem;padding:0.5rem 1.125rem;min-width:0}
.form-row input:focus-visible,.form-row textarea:focus-visible{outline:0.125rem solid #3fa9f5;outline-offset:0.1875rem}
.form-row:has(#postal){margin-bottom:2.125rem}
.form-row:has(#address){margin-bottom:1.875rem}
#postal{width:13.375rem}
#address{width:40.25rem}
.form-row:has(textarea){align-items:start;margin-bottom:0}
.form-row:has(textarea) label{padding-top:0.4375rem}
.form-row textarea{height:17.5rem;width:40.25rem;resize:vertical;border-radius:1.125rem}
.submit-button{position:relative;display:block;width:15rem;height:3.875rem;border:0.0625rem solid #ff0097;border-radius:2.5rem;background:#fff;color:#ff0097;font-size:1.4375rem;font-weight:800;letter-spacing:0.5rem;margin:2.875rem auto 11.375rem;cursor:pointer}
.submit-button:after{font-family: "Font Awesome 7 Free";content:"\f061";position:absolute;right:1.125rem;letter-spacing:0}
.submit-button:hover{background:#ff0097;color:#fff}
.contact-page+.footer{height:12.875rem}
.subpage .portrait-frame .frame-reveal{animation:none!important}
.service-detail{padding-bottom:6.25rem}
.contact-intro{margin-top:4.875rem;margin-bottom:2.75rem}
.access-card .access-map{object-position:68% center}
@media(max-width:767px){
.services{margin-left:auto;margin-right:auto}
.company-message .company-copy,.service-copy{width:100%;min-width:0}
.company-message .split{align-items:stretch}
.service-layout>*{max-width:100%}
.subpage .header{top:16px;left:16px;right:16px;height:66px}
.subpage .header.is-scrolled{top:8px;height:56px}
.page-heading{height:280px;padding:0 24px;gap:10px;background-size:auto 280px}
.page-heading h1{font-size:38px;letter-spacing:-1.5px}
.page-heading .jp{font-size:16px}
.page-heading h1{top:32px}
.page-heading .jp{top:36px}
.sub-section,.services{width:calc(100% - 40px)}
.company-message{padding:60px 0}
.company-message .split{display:flex;flex-direction:column;gap:42px;margin:0}
.company-message .portrait-frame{width:75%;max-width:320px;margin:auto}
.company-message .portrait-frame img{width:100%;height:auto}
.company-message .company-copy h2{white-space:normal;font-size:20px;line-height:1.7;margin-bottom:24px}
.company-message .company-copy p{font-size:14px;line-height:1.9;margin-bottom:24px}
.overview-grid{grid-template-columns:1fr;gap:45px}
.overview-access{padding:0 0 58px}
.overview-column h2,.access-card h2{font-size:28px;line-height:1.5;margin-bottom:22px}
.company-table{margin:0}
.company-row{grid-template-columns:85px 1fr;font-size:13px;line-height:1.8;padding:10px 0}
.overview-character{width:65%;max-width:270px;margin:12px auto}
.access-card h3{font-size:20px;margin-bottom:12px}
.access-card p{font-size:14px;line-height:1.8;margin-bottom:22px}
.access-card .access-building,.access-card .access-map{width:100%;height:auto;margin:0}
.access-card .access-map{margin-top:24px}
.privacy-policy {padding: 60px 0;}
.lower-contact{height:290px}
.company-page .lower-contact .contact-copy,.lower-contact .contact-copy{padding:30px 24px 0}
.lower-contact .contact-mascot{width:200px;right:-35px;top:122px}
.subpage .footer,.contact-page+.footer{height:auto;min-height:220px}
.services{padding-top:42px}
.service-detail{padding-bottom:65px}
.service-detail:before{height:4px}
.service-heading{gap:10px;margin:16px 0 25px}
.service-no{font-size:60px;align-self:start}
.service-title{font-size:19px;line-height:1.6;letter-spacing:0}
.service-layout,#miyaoshi .service-layout,#festa .service-layout{display:flex;flex-direction:column;gap:26px}
.service-copy{font-size:14px;line-height:1.9}
.service-visual{width:100%}
.service-link{margin-top:24px;height:44px;font-size:14px;padding:0 18px;gap:18px}
.gallery{gap:12px;margin-top:28px;grid-template-columns:repeat(2,1fr)}
.gallery img,.gallery img:first-child,#fighters .gallery img{height:auto;aspect-ratio:4/3}
.gallery.five{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.miyaoshi-logo{width:75%;margin:0 auto 26px}
#miyaoshi .service-visual{height:auto}
#miyaoshi .service-visual>img{height:260px;object-fit:cover}
#miyaoshi .service-link,#festa .service-link,#festa .shooter-layout .service-link{margin-top:24px}
#fighters .service-heading,#festa .service-heading{margin-bottom:28px}
#fighters .service-visual>img{width:80%;max-width:340px}
#fighters .service-copy{padding:0}
#fighters .gallery{margin-top:28px}
.festa-scene{width:100%;height:auto;aspect-ratio:476/354}
.festa-scene .character{width:45%;height:auto}
.festa-scene .character.left{left:-4%;bottom:3%}
.festa-scene .character.right{right:-4%}
.shooter-layout{margin-top:40px}
.contact-intro{width:calc(100% - 48px);margin:48px auto 36px;font-size:14px;line-height:1.9}
.contact-form{width:calc(100% - 48px)}
.form-row{display:block;font-size:15px;margin-bottom:24px}
.form-row label{display:block;margin-bottom:10px}
.form-row input,.form-row textarea,#address,#postal{width:100%;height:44px}
#postal{max-width:210px}
.form-row textarea{height:220px}
.submit-button{width:200px;height:52px;font-size:18px;margin:38px auto 65px}
}

/* Gallery image modal */
.gallery img{cursor:zoom-in;transition:opacity .2s ease}
.gallery img:hover{opacity:.82}
.gallery img:focus-visible{outline:.1875rem solid var(--service-color);outline-offset:.25rem}
.gallery-modal{width:auto;max-width:none;height:auto;max-height:none;margin:auto;padding:0;border:0;background:transparent;overflow:visible}
.gallery-modal::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(.1875rem)}
.gallery-modal-image{display:block;max-width:min(90vw,75rem);max-height:88vh;width:auto;height:auto;object-fit:contain;box-shadow:0 .625rem 2.5rem rgba(0,0,0,.45)}
.gallery-modal-close{position:absolute;z-index:1;top:-1.125rem;right:-1.125rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:.125rem solid #fff;border-radius:50%;background:#111;color:#fff;font:300 2rem/1 Arial,sans-serif;cursor:pointer;box-shadow:0 .25rem 1rem rgba(0,0,0,.35)}
.gallery-modal-close:hover,.gallery-modal-close:focus-visible{background:#fff;color:#111}
@media(max-width:767px){
.gallery-modal-image{max-width:calc(100vw - 32px);max-height:calc(100vh - 64px)}
.gallery-modal-close{top:-14px;right:-8px;width:40px;height:40px;font-size:28px}
}

/* Keep the modal centered after the full-size image finishes loading. */
.gallery-modal[open]{display:block;position:fixed;inset:auto;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}
.gallery-modal-close{top:-.5rem;right:-.5rem}
@media(max-width:767px){.gallery-modal-close{top:8px;right:8px}}

/* Contact confirmation and completion */
.form-status{width:54.5rem;margin:5rem auto 7rem}
.form-status h2{margin:0 0 1.25rem;color:#3fa9f5;font-size:2rem;line-height:1.5}
.form-status-copy{margin:0 0 2.5rem;font-size:1rem;line-height:1.875rem}
.confirm-table{width:100%;border-collapse:collapse;margin-bottom:3rem;font-size:1rem}
.confirm-table th,.confirm-table td{padding:1.25rem 1.5rem;border-bottom:.0625rem solid #ddd;text-align:left;vertical-align:top;line-height:1.75;overflow-wrap:anywhere}
.confirm-table th{width:14.25rem;background:#f8f8f8;font-weight:700}
.form-actions{display:flex;justify-content:center;gap:1.5rem;margin-top:3.5rem}
.form-action{display:inline-flex;align-items:center;justify-content:center;min-width:13rem;height:3.875rem;padding:0 1.75rem;border:.0625rem solid #ff0097;border-radius:2.5rem;background:#fff;color:#ff0097;font:700 1.125rem/1 "M PLUS 1",sans-serif;text-decoration:none;cursor:pointer}
.form-action:hover{background:#ff0097;color:#fff}
.form-action-back{border-color:#777;color:#555}.form-action-back:hover{background:#555;border-color:#555;color:#fff}
.form-errors{margin:0 0 2rem;color:#c40000}.form-status>.form-action{margin-top:.5rem}
@media(max-width:767px){.form-status{width:calc(100% - 48px);margin:48px auto 64px}.form-status h2{font-size:24px}.form-status-copy{font-size:14px;line-height:1.8;margin-bottom:28px}.confirm-table{font-size:14px}.confirm-table th,.confirm-table td{display:block;width:100%;padding:12px 14px}.confirm-table th{border-bottom:0;padding-bottom:6px}.confirm-table td{padding-top:8px}.form-actions{flex-direction:column;align-items:center;gap:14px;margin-top:32px}.form-action{width:200px;height:52px;font-size:16px}}
/* Independent service pages retain each business's original accent color. */
#anime-festa{--service-color:#00a7dc}
#miyaoshi{--service-color:#ff0097}
#fighters{--service-color:#1eaa39}
#festa{--service-color:#5f1985}
.service-overview{padding:4rem 0 6rem}
.service-overview-intro{text-align:center;padding:0 20px}
.service-overview .service-grid{margin-top:2.5rem}
.service-pagination{padding:0 0 5rem}
.service-back{display:inline-flex;align-items:center;gap:2rem;color:#5f1985;font-weight:700;margin-bottom:2rem}
.service-pagination p{font-weight:700;margin-bottom:1rem}
.service-pagination ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.service-pagination li a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;height:100%;padding:1rem;border:1px solid #ded4e4;border-radius:.75rem;font-size:.9375rem}
.service-pagination li a:hover{background:#f8f5fa;color:#5f1985}
@media(max-width:767px){
.page-heading .jp{white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:14px;line-height:1.5}
.service-overview{padding:36px 20px 60px}
.service-overview-intro{font-size:14px;padding:0}
.service-pagination{padding-bottom:50px}
.service-pagination ul{grid-template-columns:1fr}
}
