/* Generated 390px mobile baseline; rebuild with build-mobile-rem.py. */
.hero .fair-slide{background: url("/cimg/gbabc/renew/hero-12-terminal-v1.webp") center center / cover no-repeat, rgb(231, 241, 247); color: rgb(18, 44, 101); isolation: isolate;}
.fair-slide::before{content: none;}
.fair-slide::after{content: none;}
.hero .fair-slide > .wrap{width: 100%; max-width: none; padding: 3.5rem 8.125rem 7.125rem 5rem; justify-content: center;}
.fair-ticket{display: grid; grid-template-columns: minmax(0, 1fr) 13.4375rem; width: min(73.125rem, 100%); position: relative; border: 1px solid rgba(255, 255, 255, 0.85); border-radius: 1.375rem; background: rgb(255, 255, 255); box-shadow: rgba(23, 79, 137, 0.19) 0 1.625rem 3.75rem, rgba(23, 79, 137, 0.09) 0 0.25rem 0.625rem; isolation: isolate;}
.fair-main{min-width: 0; padding: 1.4375rem 2.375rem 1.5625rem; background: linear-gradient(140deg, rgb(255, 255, 255), rgb(245, 251, 255)); border-radius: 1.3125rem 0 0 1.3125rem;}
.fair-ticket-head{display: flex; align-items: center; justify-content: space-between; gap: 0.9375rem; padding-bottom: 1rem; border-bottom: 1px solid rgb(217, 230, 240);}
.fair-brand{margin: 0; font-size: 1.5625rem; font-weight: 800; letter-spacing: -0.05em; white-space: nowrap;}
.fair-english{font-size: 0.625rem; letter-spacing: 0.1em; font-weight: 700; color: rgb(71, 105, 137); text-align: right; line-height: 1.7;}
.fair-heading{position: relative; padding: 1.3125rem 0 1.125rem; text-align: center;}
.fair-year{font-size: 1.8125rem; line-height: 1.25; margin: 0 0 0.3125rem; color: rgb(35, 71, 115); letter-spacing: -0.045em; font-weight: 650;}
.hero .fair-slide h2{margin: 0; font-size: 4.875rem; line-height: 1.1; color: rgb(18, 54, 123); font-weight: 850; letter-spacing: -0.06em; word-break: keep-all;}
.fair-participation{display: inline-flex; align-items: center; gap: 0.5rem; margin: 1.0625rem 0 0; padding: 0.5rem 0.875rem; border: 1px solid rgb(192, 226, 232); border-radius: 0.3125rem; background: rgb(234, 248, 250); color: rgb(7, 99, 120); font-size: max(13px,1.1875rem); font-weight: 750; letter-spacing: -0.035em; line-height: 1.25;}
.fair-participation svg{width: 1.1875rem; height: 1.1875rem; fill: none; stroke: currentcolor; stroke-width: 2;}
.fair-route{position: absolute; right: 0; top: 2.25rem; width: 9.0625rem; height: 9.0625rem; color: rgb(51, 118, 187); opacity: 0.9;}
.fair-route .route-line{fill: none; stroke: rgb(120, 184, 219); stroke-width: 1.5; stroke-dasharray: 4, 6;}
.fair-route .plane{fill: currentcolor;}
.fair-facts{display: grid; grid-template-columns: 1fr 1.15fr 1fr; margin: 0; border-top: 1px solid rgb(217, 230, 240); border-bottom: 1px solid rgb(217, 230, 240); padding: 0.9375rem 0; gap: 0;}
.fair-facts > div{padding: 0 1rem; border-left: 1px solid rgb(217, 230, 240); min-width: 0; text-align: center;}
.fair-facts > div:first-child{padding-left: 0; border-left: 0;}
.fair-facts > div:last-child{padding-right: 0;}
.fair-facts dt{font-size: 0.625rem; letter-spacing: 0.11em; color: rgb(104, 128, 151); font-weight: 750; margin-bottom: 0.5rem;}
.fair-facts dd{margin: 0; font-size: max(13px,1.1875rem); font-weight: 750; line-height: 1.45; letter-spacing: -0.035em; color: rgb(28, 59, 96); white-space: nowrap;}
.fair-facts dd span{display: block;}
.fair-facts dd strong{font-size: 1.4375rem; color: rgb(22, 77, 156); font-weight: 800;}
.fair-open{display: flex; align-items: center; justify-content: center; gap: 1.5625rem; width: fit-content; min-height: 2.875rem; margin: 1.125rem auto 0; padding: 0 1.4375rem; border: 1px solid rgb(32, 77, 149); border-radius: 6.25rem; background: linear-gradient(120deg, rgb(24, 60, 125), rgb(37, 90, 171)); box-shadow: rgba(255, 255, 255, 0.19) 0 1px 0 inset, rgba(29, 75, 133, 0.12) 0 0.3125rem 0.8125rem; color: rgb(255, 255, 255); font-family: inherit; font-size: max(13px,0.9375rem); font-weight: 750; cursor: pointer; transition: background 0.2s, transform 0.2s;}
.fair-open svg{width: 1.25rem; height: 1.25rem; fill: none; stroke: currentcolor; stroke-width: 2;}
.fair-open:focus-visible, .fair-dialog-close:focus-visible{outline: rgb(19, 133, 155) solid 0.1875rem; outline-offset: 0.25rem;}
.fair-stub{position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; padding: 1.875rem 1.0625rem; color: rgb(255, 255, 255); background: radial-gradient(at 100% 0%, rgba(75, 130, 199, 0.36), transparent 60%), linear-gradient(155deg, rgb(18, 61, 133), rgb(11, 35, 85)); border-radius: 0 1.3125rem 1.3125rem 0; border-left: 0.125rem dashed rgba(255, 255, 255, 0.5); text-align: center;}
.fair-stub::before, .fair-stub::after{content: ""; position: absolute; width: 1.5rem; height: 1.5rem; border-radius: 50%; left: -0.8125rem; background: rgb(172, 219, 238); z-index: 1;}
.fair-stub::before{top: -0.8125rem;}
.fair-stub::after{bottom: -0.8125rem; background: rgb(145, 199, 231);}
.fair-stub-label{font-size: max(10px,0.6875rem); letter-spacing: 0.16em; color: rgb(191, 218, 245); margin: 0 0 1rem; font-weight: 700;}
.fair-stub strong{font-size: 2.6875rem; letter-spacing: -0.05em; line-height: 1.2; font-weight: 800; color: rgb(255, 255, 255);}
.fair-stub-brand{font-size: max(13px,0.9375rem); letter-spacing: -0.045em; margin-top: 0.75rem; color: rgb(220, 234, 251); font-weight: 650; white-space: nowrap;}
.fair-stub-line{width: 2.375rem; height: 0.125rem; background: rgb(142, 228, 235); margin: 1.8125rem 0;}
.fair-stub-year{font-size: 2.8125rem; font-weight: 400; letter-spacing: -0.045em; line-height: 1; color: rgb(173, 219, 239);}
.fair-stub-bottom{font-size: 0.625rem; letter-spacing: 0.13em; line-height: 1.8; color: rgb(195, 216, 239); margin: 0.8125rem 0 0;}
@media (hover: hover){.fair-open:hover{background: rgb(18, 53, 113); transform: translateY(-0.125rem);}}
.hero .fair-slide > .wrap{padding: 3.4375rem 7.5rem 6.875rem 1.875rem;}
.fair-ticket{grid-template-columns: minmax(0, 1fr) 10.9375rem;}
.fair-main{padding: 1.4375rem 1.6875rem 1.5625rem;}
.fair-brand{font-size: 1.375rem;}
.fair-english{font-size: 0.5625rem;}
.fair-year{font-size: 1.5625rem;}
.hero .fair-slide h2{font-size: 4.0625rem;}
.fair-route{width: 4.375rem; height: 4.375rem; top: 2.9375rem; right: -0.625rem; opacity: 0.5;}
.fair-participation{font-size: max(13px,1.0625rem);}
.fair-facts > div{padding: 0 0.6875rem;}
.fair-facts dd{font-size: max(13px,1rem);}
.fair-facts dd strong{font-size: max(13px,1.25rem);}
.fair-stub strong{font-size: 2.25rem;}
.fair-stub-brand{font-size: max(10px,0.8125rem);}

.hero .fair-slide > .wrap{padding: 1.5625rem 1.5rem 5.625rem; align-items: flex-start;}
.fair-ticket{grid-template-columns: minmax(0, 1fr); width: min(35rem, 100%); border-radius: 1rem;}
.fair-main{padding: 1.25rem 1.5625rem 1.375rem; border-radius: 0.9375rem 0.9375rem 0 0;}
.fair-brand{font-size: 1.4375rem;}
.fair-english{font-size: 0.5625rem;}
.fair-ticket-head{padding-bottom: 0.8125rem;}
.fair-heading{padding: 1.25rem 0 1.0625rem;}
.fair-year{font-size: 1.4375rem;}
.hero .fair-slide h2{font-size: 3.625rem;}
.fair-route{width: 4.0625rem; height: 4.0625rem; top: 1.9375rem; right: 0; opacity: 0.4;}
.fair-participation{font-size: max(13px,1rem); margin-top: 0.75rem; padding: 0.4375rem 0.6875rem;}
.fair-facts{padding: 0.875rem 0;}
.fair-facts dd{font-size: max(13px,1rem);}
.fair-facts dd strong{font-size: max(13px,1.25rem);}
.fair-open{margin-top: 1.0625rem; min-height: 2.6875rem; font-size: max(13px,0.875rem);}
.fair-stub{border-left: 0; border-top: 0.125rem dashed rgba(255, 255, 255, 0.5); border-radius: 0 0 0.9375rem 0.9375rem; flex-direction: row; justify-content: center; gap: 0.8125rem; padding: 1rem 0.875rem;}
.fair-stub-label{margin: 0; font-size: 0.625rem;}
.fair-stub strong{font-size: 1.5625rem;}
.fair-stub-brand{margin: 0; font-size: max(10px,0.8125rem);}
.fair-stub-line, .fair-stub-year, .fair-stub-bottom{display: none;}
.fair-stub::before, .fair-stub::after{width: 1.25rem; height: 1.25rem; top: -0.6875rem; bottom: auto; left: -0.6875rem; background: rgb(182, 223, 238);}
.fair-stub::after{left: auto; right: -0.6875rem;}
body:has(.fair-slide.is-active) .fab{top: auto; bottom: calc(0.5rem + env(safe-area-inset-bottom,0)); left: 0.75rem; right: 0.75rem; transform: none; display: flex; border-radius: 0.875rem;}
body:has(.fair-slide.is-active) .fab a{width: 20%; min-width: 0; flex: 1 1 0%; gap: 0.1875rem; padding: 0.4375rem 0.125rem; border-top: 0; border-left: 1px solid var(--line); font-size: 0.625rem;}
body:has(.fair-slide.is-active) .fab a:first-child{border-left: 0;}
body:has(.fair-slide.is-active) .fab .ic{width: 1.75rem; height: 1.75rem;}
body:has(.fair-slide.is-active) .fab .ico{width: 0.9375rem; height: 0.9375rem;}
.hero .fair-slide > .wrap{padding: 1.6875rem 1.25rem 5.3125rem;}
.fair-main{padding: 1.25rem 1.125rem;}
.fair-brand{font-size: max(13px,1.25rem);}
.fair-english{font-size: 0.5rem; letter-spacing: 0.03em;}
.fair-year{font-size: 1.3125rem;}
.hero .fair-slide h2{font-size: 3.0625rem;}
.fair-heading{padding-top: 1.3125rem;}
.fair-route{display: none;}
.fair-facts{grid-template-columns: 0.95fr 1.15fr 1fr;}
.fair-facts > div{padding: 0 0.5rem;}
.fair-facts dt{font-size: 0.5rem; letter-spacing: 0.06em;}
.fair-facts dd{font-size: max(10px,0.8125rem);}
.fair-facts dd strong{font-size: max(13px,1.0625rem);}
.fair-stub{gap: 0.5625rem;}
.fair-stub strong{font-size: 1.4375rem;}
.fair-stub-brand{font-size: max(10px,0.75rem);}

.fair-dialog{width: min(48.75rem, 100% - 2rem); max-height: 85vh; padding: 2rem; margin: auto; border: 1px solid rgb(214, 230, 242); border-radius: 1.25rem; background: rgb(246, 251, 255); color: rgb(25, 52, 81); box-shadow: rgba(4, 17, 39, 0.4) 0 1.5625rem 6.25rem; overflow: auto;}
.fair-dialog::backdrop{background: rgba(9, 25, 50, 0.72); backdrop-filter: blur(0.25rem);}
.fair-dialog-header{display: flex; align-items: flex-start; justify-content: space-between; gap: 0.9375rem;}
.fair-dialog h2{font-size: 1.75rem; line-height: 1.3; margin: 0; letter-spacing: -0.045em;}
.fair-dialog-close{flex-shrink: 0; width: 2.25rem; height: 2.25rem; border: 1px solid rgb(209, 222, 235); border-radius: 50%; background: white; color: rgb(20, 49, 92); cursor: pointer; display: grid; place-items: center;}
.fair-dialog-close svg{width: 1.25rem; height: 1.25rem; stroke: currentcolor; stroke-width: 2; fill: none;}
.fair-dialog-summary{font-size: max(13px,1rem); line-height: 1.7; color: rgb(50, 94, 137); margin: 0.875rem 0 1.25rem;}
.fair-dialog dl{margin: 0; padding: 1.125rem 1.25rem; background: rgb(255, 255, 255); border: 1px solid rgb(220, 231, 241); border-radius: 0.625rem;}
.fair-dialog dl > div{display: grid; grid-template-columns: 2.8125rem 1fr; gap: 0.75rem; padding: 0.4375rem 0;}
.fair-dialog dt{font-weight: 750; color: rgb(21, 70, 141);}
.fair-dialog dd{margin: 0; line-height: 1.6;}
.fair-dialog h3{font-size: max(13px,1.25rem); margin: 1.5625rem 0 0.75rem; color: rgb(20, 61, 117);}
.fair-dialog ul{display: grid; grid-template-columns: 1fr 1fr; gap: 0.625rem; list-style: none; padding: 0; margin: 0;}
.fair-dialog li{padding: 0.9375rem; background: rgb(234, 243, 250); border-radius: 0.5rem; font-size: max(13px,0.9375rem); line-height: 1.6;}
.fair-dialog li strong{display: block; color: rgb(18, 69, 138); margin-bottom: 0.25rem;}
.fair-dialog-note{font-size: max(13px,0.875rem); line-height: 1.8; margin: 1.125rem 0 0; color: rgb(74, 99, 124);}
.fair-dialog{padding: 1.5rem 1.125rem;}
.fair-dialog h2{font-size: 1.4375rem;}
.fair-dialog ul{grid-template-columns: 1fr;}
.fair-dialog dl{padding: 0.75rem;}
.fair-dialog dd{font-size: max(13px,0.875rem);}
.fair-dialog-summary{font-size: max(13px,0.9375rem);}
@media (prefers-reduced-motion: reduce){.fair-open{transition: none;}
.fair-open:hover{transform: none;}}
.fair-ticket-shell{width: min(73.125rem, 100%); filter: drop-shadow(rgba(20, 69, 119, 0.17) 0 1.5rem 1.5625rem) drop-shadow(rgba(20, 69, 119, 0.07) 0 0.1875rem 0.3125rem);}
.fair-ticket{--fair-stub-width: 13.4375rem; width: 100%; box-shadow: none; border-color: rgb(255, 255, 255); mask-image: radial-gradient(circle 0.75rem at calc(100% - var(--fair-stub-width)) 0,transparent 98%,#000 100%),radial-gradient(circle 0.75rem at calc(100% - var(--fair-stub-width)) 100%,transparent 98%,#000 100%); mask-composite: intersect;}
.fair-main{background: radial-gradient(at 50% 0%, rgb(255, 255, 255) 20%, transparent 72%), linear-gradient(135deg, rgb(255, 255, 255), rgb(243, 249, 255));}
.fair-ticket-head{border-image: linear-gradient(90deg, rgb(136, 184, 227), rgb(217, 230, 240) 45%, rgb(217, 230, 240)) 1 / 1 / 0 stretch;}
.hero .fair-slide h2{background: linear-gradient(115deg, rgb(18, 48, 108) 20%, rgb(36, 95, 174) 55%, rgb(19, 61, 131) 80%) text; color: transparent; letter-spacing: -0.045em; padding: 0 0.06em; filter: drop-shadow(rgb(255, 255, 255) 0 0.125rem 0);}
.fair-participation{border: 0; border-radius: 0; padding: 0; margin-top: 0.875rem; background: transparent; color: rgb(30, 71, 121); gap: 0.8125rem; min-height: 2.8125rem;}
.fair-emblems{display: flex; align-items: center; gap: 0.3125rem; flex-shrink: 0;}
.fair-emblems img{display: block; width: 2.625rem; height: 2.625rem; object-fit: contain; padding: 0.1875rem; border: 1px solid rgb(217, 230, 240); border-radius: 50%; background: rgb(255, 255, 255); box-shadow: rgba(33, 60, 89, 0.063) 0 0.125rem 0.3125rem;}
.fair-stub{background: radial-gradient(at 80% -10%, rgba(112, 169, 242, 0.5), transparent 55%), linear-gradient(155deg, rgb(26, 74, 148), rgb(12, 37, 88) 85%); border-left: 0.125rem dashed rgba(156, 187, 224, 0.5);}
.fair-stub::before, .fair-stub::after{content: none;}
.fair-stub-location{display: flex; flex-direction: column; align-items: center;}
.fair-stub-line{margin: 1.5625rem 0; width: 4.0625rem; background: linear-gradient(90deg, transparent, rgb(169, 228, 236), transparent);}
.fair-count{display: flex; flex-direction: column; align-items: center; gap: 0.5625rem;}
.fair-count b{font-size: 4.375rem; line-height: 1.1; font-weight: 750; letter-spacing: 0; padding: 0 0.03em; background: linear-gradient(125deg, rgb(238, 252, 255), rgb(148, 221, 236)) text; color: transparent; filter: drop-shadow(rgba(3, 19, 51, 0.25) 0 0.1875rem 0.5rem);}
.fair-count span{font-size: max(13px,0.875rem); line-height: 1.5; font-weight: 650; letter-spacing: -0.02em; color: rgb(224, 239, 255);}
.fair-facts{background: linear-gradient(90deg, transparent, rgba(234, 243, 252, 0.44), transparent);}
.fair-open{box-shadow: rgba(255, 255, 255, 0.376) 0 1px 0 inset, rgba(10, 36, 86, 0.3) 0 -1px 0 inset, rgba(29, 75, 133, 0.19) 0 0.375rem 0.9375rem;}
.fair-ticket{--fair-stub-width: 10.9375rem;}
.fair-count b{font-size: 3.8125rem;}
.fair-emblems img{width: 2.375rem; height: 2.375rem;}
.fair-participation{min-height: 2.5rem; gap: 0.625rem;}

.fair-ticket-shell{width: min(35rem, 100%);}
.fair-ticket{mask-image: radial-gradient(0.625rem at 0 calc(100% - 4.875rem), transparent 98%, rgb(0, 0, 0) 100%), radial-gradient(0.625rem at 100% calc(100% - 4.875rem), transparent 98%, rgb(0, 0, 0) 100%);}
.fair-stub{height: 4.875rem; min-height: 4.875rem; box-sizing: border-box; padding: 0.6875rem 1.5625rem; justify-content: center; gap: 1.875rem; border-left: 0; border-top: 0.125rem dashed rgba(156, 187, 224, 0.5);}
.fair-stub-location{align-items: flex-start;}
.fair-stub-label{display: none;}
.fair-stub-brand{font-size: 0.625rem; margin-top: 0.1875rem;}
.fair-stub strong{font-size: 1.4375rem;}
.fair-count{flex-direction: row; gap: 0.5rem;}
.fair-count b{font-size: 2.3125rem;}
.fair-count span{font-size: max(10px,0.6875rem); max-width: 3.875rem; text-align: left; line-height: 1.4;}
.fair-participation{min-height: 2.25rem; gap: 0.6875rem;}
.fair-emblems img{width: 2.125rem; height: 2.125rem; padding: 0.125rem;}
.fair-emblems{gap: 0.25rem;}
.fair-participation{font-size: max(13px,0.9375rem); gap: 0.5625rem;}
.fair-emblems img{width: 1.875rem; height: 1.875rem;}
.fair-emblems{gap: 0.1875rem;}
.fair-stub{gap: 1.5625rem;}

.fair-count-number{display: flex; align-items: baseline; gap: 0.125rem; white-space: nowrap;}
.fair-count-number small{font-size: max(13px,1.25rem); font-weight: 650; line-height: 1; color: rgb(215, 242, 251);}

.fair-count-number small{font-size: max(10px,0.8125rem);}
