.special-page{max-width:1000px;margin:auto;padding:24px;color:var(--ink,#233e49)}.special-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.special-actions{display:flex;gap:8px;flex:none}.special-actions .share-button{width:40px;height:40px;padding:0;justify-content:center}.special-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:calc(14px * var(--font-scale,1));margin:0 0 16px}.special-page a{color:#07866e}.special-page a:focus-visible,.special-page button:focus-visible,.special-page summary:focus-visible,.special-page select:focus-visible{outline:3px solid #20bc98;outline-offset:3px}.special-hero{border:1px solid #d9ebe3;background:linear-gradient(120deg,#eaf7f1,#f8faf4);border-radius:20px;padding:28px;margin-bottom:24px}.special-kicker{font-size:calc(13px * var(--font-scale,1));color:var(--special-color,#008970);font-weight:700;letter-spacing:1px}.special-hero h1{font-size:calc(26px * var(--font-scale,1));margin:10px 0;line-height:1.4}.special-hero p{margin:0;color:#627983;line-height:1.8}.special-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.special-tile{display:flex;flex-direction:column;align-items:flex-start;min-width:0;border:1px solid #dce8e3;border-radius:16px;background:#fff;padding:22px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.special-tile:hover{border-color:#91c7b8;box-shadow:0 4px 16px #19313b12}.special-tile-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:#f1f7f4;color:var(--special-color)}.special-tile-icon svg{width:44px;height:44px}.special-tag{margin:18px 0 6px;font-size:calc(12px * var(--font-scale,1));color:var(--special-color);font-weight:700}.special-tile h2{font-size:calc(19px * var(--font-scale,1));color:#233e49;margin:0 0 8px;line-height:1.5}.special-tile p{font-size:calc(14px * var(--font-scale,1));color:#697e88;line-height:1.8;margin:0 0 18px}.special-tile-action{margin-top:auto;font-size:calc(14px * var(--font-scale,1));font-weight:700;display:flex;align-items:center;justify-content:space-between;width:100%}.special-note{border:1px solid #dce8e3;background:#fff;border-radius:14px;padding:20px;margin:24px 0;line-height:1.9}.special-note h2{font-size:calc(18px * var(--font-scale,1));margin:0 0 8px}.special-note p{font-size:calc(14px * var(--font-scale,1));color:#637b86;margin:8px 0}.special-note a{font-size:calc(14px * var(--font-scale,1))}.special-picker{margin:0 0 12px}.special-picker label{display:block;font-weight:700;margin-bottom:10px}.special-picker>div{display:flex;gap:10px}.special-picker select{flex:1;min-width:0;padding:12px;border:1px solid #b9d8cd;border-radius:10px;color:#233e49;background:#fff;font:inherit;min-height:48px}.special-picker noscript button{font:inherit;border:0;border-radius:10px;background:#078d70;color:#fff;padding:10px 20px;min-height:48px;cursor:pointer}.special-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.special-shortcuts a{border:1px solid #d9e7e1;background:#fff;padding:10px 14px;border-radius:10px;font-size:calc(14px * var(--font-scale,1));text-decoration:none;min-height:44px;box-sizing:border-box}.special-shortcuts a[aria-current]{background:#e5f6ee;border-color:#7fd1b6}.special-results-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.special-results-head h2{font-size:calc(20px * var(--font-scale,1));margin:0}.special-results-head>span,.special-status{font-size:calc(12px * var(--font-scale,1));color:#71858d}.special-empty{padding:24px;background:#fff;border:1px dashed #c7dcd3;border-radius:14px;color:#627c87;line-height:1.8}.special-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.special-service{background:#fff;border:1px solid #dce8e3;border-radius:16px;padding:20px;min-width:0}.special-service-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(14px * var(--font-scale,1))}.special-service-head strong span{white-space:nowrap}.special-service h3{font-size:calc(21px * var(--font-scale,1));margin:22px 0;line-height:1.6}.special-service h3 span{color:#0b9d7d;margin:0 5px}.special-times{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;background:#f3f8f5;border-radius:10px}.special-times small{display:block;color:#73858d;font-size:calc(12px * var(--font-scale,1));margin-bottom:8px}.special-times time{font-size:calc(28px * var(--font-scale,1));font-weight:700}.special-service-note{font-size:calc(13px * var(--font-scale,1));line-height:1.8;color:#6b818a}.special-page .special-primary{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 14px;border-radius:9px;color:#fff;background:#078d70;text-decoration:none;font-size:calc(14px * var(--font-scale,1));min-height:44px;box-sizing:border-box}.special-page .footer{margin-top:32px}@media(max-width:900px){.special-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.special-page{padding:16px 14px}.special-hero{padding:22px 18px}.special-hero h1{font-size:calc(23px * var(--font-scale,1))}.special-service-grid{grid-template-columns:1fr}.special-tile{padding:18px}}@media(max-width:480px){.special-grid{grid-template-columns:1fr}.special-tile{position:relative;padding-left:92px;min-height:145px}.special-tile-icon{position:absolute;left:16px;top:20px;width:56px;height:56px}.special-tag{margin-top:0}.special-tile p{margin-bottom:12px}.special-service-head{align-items:flex-start}.special-picker button{padding-inline:16px}}

/* Match the Pokemon calendar without altering Pokemon assets. */
.special-date-field{display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #bddacf;border-radius:12px;background:#fff;min-width:0;box-shadow:0 2px 6px #16372905}.special-date-field svg{width:20px;height:20px;flex:none;color:#098a68}.special-date-field input{border:0;background:transparent;padding:12px 0;color:#254338;font-weight:600;font-variant-numeric:tabular-nums;min-height:46px;box-sizing:border-box}.special-date-field:focus-within{border-color:#098a68;box-shadow:0 0 0 3px #098a681a}.special-date-field input:focus-visible{outline:none}.special-date-field input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;padding:4px}.special-date-custom{position:relative;width:280px;max-width:100%;box-sizing:border-box}.special-date-field .special-calendar-trigger{font:inherit;border:0;border-radius:10px;cursor:pointer;background:transparent;color:#254338;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;font-weight:600;min-height:46px}.special-calendar-trigger svg{width:18px;height:18px}.special-calendar{position:absolute;z-index:30;top:calc(100% + 10px);left:0;width:320px;max-width:calc(100vw - 28px);box-sizing:border-box;padding:14px;background:#fff;border:1px solid #cce3d6;border-radius:16px;box-shadow:0 12px 36px #16372920;color:#254338}.special-calendar[hidden]{display:none}.special-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.special-calendar-head strong{font-size:calc(16px * var(--font-scale,1))}.special-calendar-week,.special-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.special-calendar-week{color:#7b9085;font-size:calc(12px * var(--font-scale,1));text-align:center;margin-bottom:5px}.special-picker .special-calendar button{font:inherit;cursor:pointer;border:0;border-radius:9px;background:transparent;color:#254338;padding:0;min-width:0}.special-picker .special-calendar .special-calendar-nav{width:36px;height:36px;font-size:calc(25px * var(--font-scale,1));background:#f2f8f4}.special-calendar-day{min-height:40px;font-size:calc(14px * var(--font-scale,1))}.special-picker .special-calendar button:hover:not(:disabled){background:#e7f5ed}.special-picker .special-calendar .selected{background:#098a68;color:#fff;font-weight:700}.special-picker .special-calendar .selected:hover{background:#087a5b}.special-calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1px #81bda6}.special-picker .special-calendar button:disabled{color:#bec9c2;cursor:default}.special-calendar-footer{border-top:1px solid #edf2ee;margin-top:12px;padding-top:10px;display:flex;justify-content:space-between}.special-picker .special-calendar-footer button{color:#098a68;font-size:calc(14px * var(--font-scale,1));padding:8px 12px}.special-calendar button:focus-visible{outline:3px solid #73c5a9;outline-offset:1px}

.special-picker{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0 16px}.special-picker label{font-weight:600;font-size:calc(15px * var(--font-scale,1));margin:0}.special-picker input{font:inherit;font-weight:600;color:#254338;font-variant-numeric:tabular-nums}.special-picker>div{gap:10px}.special-picker .special-date-field{padding:0 14px;min-width:0}.special-picker input[hidden]{display:none}.special-date-hint{color:#73847a;font-size:calc(13px * var(--font-scale,1));line-height:1.7;margin:0 0 12px}.special-calendar-day{position:relative}.special-picker .special-calendar .special-calendar-day.unconfirmed:not(.selected):not(:disabled){color:#82948b}.special-calendar-day.confirmed::after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#098a68;bottom:4px;left:50%;transform:translateX(-50%)}.special-calendar-day.confirmed.selected::after{background:#fff}.special-calendar-day.confirmed:disabled::after{display:none}.special-calendar-footer{flex-wrap:wrap;gap:4px}.special-calendar-legend{display:flex;align-items:center;gap:6px;color:#73847a;font-size:calc(12px * var(--font-scale,1));margin:12px 0 0}.special-calendar-legend::before{content:'';display:block;width:5px;height:5px;flex:none;border-radius:50%;background:#098a68}.special-calendar button:focus-visible{outline:3px solid #73c5a9;outline-offset:1px}
@media(max-width:600px){.special-picker label{width:100%}.special-picker .special-date-field{width:100%;box-sizing:border-box}.special-picker .special-date-field input{flex:1;width:100%}.special-calendar{width:100%;max-width:none}.special-picker{gap:9px}.special-picker button{padding:11px 14px}}
html[data-font-size="small"] .special-calendar-day,html[data-font-size="large"] .special-calendar-day{min-height:44px}

/* Keep the inner content width aligned with /stations, allowing for 24px padding. */
@media(min-width:1024px){.special-page{width:min(calc(92% + 48px),1148px);max-width:none}}

/* Collection header matches the Pokemon page; detail headers keep their existing layout. */
.special-page>.special-header{position:sticky;top:0;z-index:40;align-items:center;background:#fff;border-bottom:1px solid var(--line,#e6ebee);margin:-24px -24px 24px;padding:16px 30px;min-height:78px}
@media(max-width:600px){.special-page>.special-header{margin:-16px -14px 24px;padding:14px 10px;min-height:66px}}
@media(min-width:601px) and (max-width:700px){.special-page>.special-header{margin:-16px -14px 24px;padding:14px 10px;min-height:66px}}
@media(max-width:1024px){.special-header .special-actions{gap:6px}.special-header .special-actions>.share-button,.special-header .special-actions>.header-menu-button{width:36px;height:36px;min-height:36px;padding:0}}

.special-collection-back{display:none}
.special-service-head{gap:8px;align-items:center}
.special-train-identity{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;max-width:100%}
.special-train-type{font-size:calc(16px * var(--font-scale,1));line-height:1.25;color:#54736a}
.special-train-number{display:inline-flex;align-items:center;gap:8px;font-size:calc(27px * var(--font-scale,1));line-height:1.25;font-weight:700;font-variant-numeric:tabular-nums}
.special-train-number small{font-size:calc(16px * var(--font-scale,1));font-weight:500}
.special-train-tag{margin-left:auto;padding:5px 8px;border-radius:6px;background:#fff4c7;color:#8a6822;font-size:calc(12px * var(--font-scale,1));line-height:1.5}
html[data-font-size="large"] .special-train-identity{flex-wrap:wrap}
@media(max-width:700px){
 .special-detail-header>.brand,.special-page:has(>.special-detail-header)>.special-breadcrumb{display:none}
 .special-collection-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;color:#07866e;text-decoration:none;font-size:calc(16px * var(--font-scale,1));font-weight:600;line-height:1.4;white-space:nowrap}
 .special-collection-back svg{display:block;width:20px;height:20px;flex:none}
}

/* Match the detail banner and train-name capsule to each collection theme. */
.special-page[style*="--special-color"]>.special-hero{
 background:color-mix(in srgb,var(--special-color) 7%,white);
 border-color:color-mix(in srgb,var(--special-color) 24%,white)
}
.special-page[style*="--special-color"] .special-train-tag{
 color:var(--special-color);background:color-mix(in srgb,var(--special-color) 13%,white)
}

/* Compact boarding and data notes match the Pokemon page. */
.special-notice{margin-top:32px;padding:18px 20px;border-radius:12px;background:#edf3ee;color:#61736b;font-size:calc(13px * var(--font-scale,1));line-height:1.85}
.special-notice p{margin:0}

/* Apply the saved text size to the selected date as well. */
.special-date-field .special-calendar-trigger{font-size:calc(16px * var(--font-scale,1))}

/* Match the Pokemon install entry; the same install controller handles the dialog. */
.special-install-button{position:fixed;right:20px;bottom:calc(28px + env(safe-area-inset-bottom));z-index:30;width:calc(60px * var(--font-scale,1) + 65px);height:64px;cursor:pointer;font-family:inherit;gap:6px;box-shadow:0 4px 16px #19313b24}
.special-install-button span{font-size:calc(12px * var(--font-scale,1))}
.special-page:has(.special-calendar:not([hidden]))+.special-install-button{visibility:hidden;pointer-events:none}
.special-install-guide{max-width:min(420px,calc(100vw - 32px));box-sizing:border-box}
.special-install-guide h2{font-size:calc(20px * var(--font-scale,1))}
.special-install-guide p{line-height:1.8;font-size:calc(15px * var(--font-scale,1))}
.special-install-guide>a{font-size:calc(15px * var(--font-scale,1))}
.special-install-guide button{font-size:calc(17px * var(--font-scale,1))}
html[data-font-size="large"] .special-install-button{height:calc(64px * var(--font-scale,1))}
@media(max-width:700px){.special-install-button{right:14px;bottom:calc(22px + env(safe-area-inset-bottom));width:calc(65px * var(--font-scale,1) + 10px);height:65px}html[data-font-size="large"] .special-install-button{height:calc(65px * var(--font-scale,1))}}
@media(min-width:1024px){.special-install-button{display:none}}

/* Boarding notes use the same soft, solid theme as the train introduction. */
.special-page[style*="--special-color"]>.special-notice{background:color-mix(in srgb,var(--special-color) 7%,white);color:color-mix(in srgb,var(--special-color) 35%,#43535b)}
