﻿.trainpass{--cream:   #fffbf2;--green:   #00b96b;--green-l: #d4f5e5;--green-d: #007a47;--pink:    #ff4d8d;--pink-l:  #ffe0ec;--yellow:  #ffe34d;--ink:     #1a1a1a;--mid:     #555}.trainpass .sec{padding:80px 0}.trainpass .sec-label{font-size:.85em;letter-spacing:.3em;color:var(--green-d);margin-bottom:4px}.trainpass .sec-title{font-size:clamp(1.8em, 4vw, 2.8em);font-weight:800;line-height:1.25;color:var(--ink)}.trainpass .sec-rule{width:48px;height:3px;border-radius:2px;background:linear-gradient(90deg, var(--green), var(--green-l));margin:14px 0 36px}.trainpass .hero{background:var(--cream);min-height:calc(100vh - 44px);position:relative;overflow:hidden;display:flex;align-items:center}.trainpass .hero-bg-text{font-weight:900;position:absolute;left:-2%;top:50%;transform:translateY(-50%);font-size:clamp(180px, 26vw, 340px);line-height:1;color:var(--green-l);pointer-events:none;user-select:none;white-space:nowrap;letter-spacing:.04em;animation:bgTextFloat 6s ease-in-out infinite}@keyframes bgTextFloat{0%,100%{transform:translateY(-50%) translateX(0)}50%{transform:translateY(-50%) translateX(10px)}}.trainpass .hero-stripe{position:absolute;right:-60px;top:-60px;width:380px;height:380px;background:linear-gradient(135deg, var(--pink-l) 0%, var(--pink-l) 50%, transparent 50%);border-radius:50%;opacity:.7}.trainpass .hero-stripe-2{position:absolute;right:60px;bottom:-80px;width:240px;height:240px;border:3px solid var(--green-l);border-radius:50%;opacity:.8}.trainpass .hero-inner{position:relative;z-index:2;padding:80px 0 60px;width:100%}.trainpass .hero-h1{font-weight:800;font-size:clamp(2.6em, 6vw, 5em);line-height:1.18;color:var(--ink);opacity:0;animation:slideRight 0.6s 0.2s forwards cubic-bezier(0.25, 0.46, 0.45, 0.94)}.trainpass .hero-h1 .green{color:var(--green)}.trainpass .hero-h1 .pink{color:var(--pink)}.trainpass .hero-desc{margin-top:20px;font-size:.98em;line-height:1.95;color:var(--mid);max-width:480px;opacity:0;animation:slideRight .6s .35s forwards}.trainpass .stamp{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:300px;height:300px;border-radius:50%;background:var(--pink);color:#fff;box-shadow:0 0 0 8px rgba(255,77,141,0.15),0 0 0 16px rgba(255,77,141,0.07);opacity:0;animation:popIn 0.7s 0.5s forwards cubic-bezier(0.34, 1.56, 0.64, 1)}.trainpass .stamp-top{font-size:2em;font-weight:700;letter-spacing:.06em;opacity:.85}.trainpass .stamp-num{font-size:5.5em;line-height:1.2;letter-spacing:-.01em;font-weight:900}.trainpass .stamp-bot{font-size:4em;font-weight:900;letter-spacing:.04em;margin-top:0.2em;opacity:0.7}.trainpass .stamp::after{content:'';position:absolute;inset:-10px;border-radius:50%;border:2px dashed rgba(255,255,255,0.4)}.trainpass .hero-cta-row{margin-top:32px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;opacity:0;animation:slideRight .5s .55s forwards}.trainpass .btn-primary-custom{display:inline-flex;align-items:center;gap:0.5em;background:var(--green);color:#fff;font-size:2em;font-weight:700;padding:0.75em 2em;line-height:normal;border-radius:50px;text-decoration:none;border:none;box-shadow:0 6px 20px rgba(0,185,107,0.35);transition:transform .2s, box-shadow .2s;letter-spacing:.04em}.trainpass .btn-primary-custom:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,185,107,0.45);color:#fff;text-decoration:none}.trainpass .btn-primary-custom::after{content:'↓'}.trainpass .period-badge{font-size:1.78em;color:var(--mid);border-left:2px solid var(--green-l);padding-left:14px;line-height:1.6}@keyframes popIn{from{opacity:0;transform:scale(0.7)}to{opacity:1;transform:scale(1)}}@keyframes slideRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.trainpass .features-sec{background:var(--green-l)}.trainpass .feat-card{border-radius:20px;padding:36px 30px;height:100%;position:relative;overflow:hidden;transition:transform .25s, box-shadow .25s}.trainpass .feat-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,0.1)}.trainpass .feat-card-green{background:var(--green);color:#fff}.trainpass .feat-card-pink{background:var(--pink);color:#fff}.trainpass .feat-card-light{background:#fff;border:2px solid var(--green-l)}.trainpass .feat-card .card-num{font-size:10em;line-height:1;opacity:.12;position:absolute;bottom:-0.25em;right:12px;color:currentColor;font-weight:900}.trainpass .feat-card .card-icon{font-size:2em;margin-bottom:16px;display:block}.trainpass .feat-card h3{font-size:1.7em;font-weight:700;margin-bottom:10px}.trainpass .feat-card p{font-size:1.1em;line-height:1.6;opacity:.85;margin:0;z-index:1;position:relative}.trainpass .feat-card-light h3{color:var(--ink)}.trainpass .feat-card-light p{color:var(--mid);opacity:1}.trainpass .stores-sec{background:var(--cream)}.trainpass .store-ticket{border-radius:24px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.09);transition:transform .25s, box-shadow .25s;background:#fff;height:100%}.trainpass .store-ticket:hover{transform:translateY(-5px) rotate(0.3deg);box-shadow:0 18px 48px rgba(0,0,0,0.13)}.trainpass .store-ticket-head{padding:25px;position:relative;overflow:hidden}.trainpass .store-ticket-head a{position:absolute;top:20px;right:20px}.trainpass .store-ticket-head.g{background:linear-gradient(135deg, var(--green-d), var(--green))}.trainpass .store-ticket-head.p{background:linear-gradient(135deg, #cc1a5c, var(--pink))}.trainpass .store-ticket-head::after{content:'';position:absolute;right:-5em;bottom:-5em;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,0.1)}.trainpass .store-ic-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.22);border:1px solid rgba(255,255,255,0.4);color:#fff;font-size:.65em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:50px;margin-bottom:14px;backdrop-filter:blur(4px)}.trainpass .store-name{font-size:1.5em;font-weight:800;color:#fff;line-height:1}.trainpass .store-access{font-size:.82em;color:rgba(255,255,255,0.75);line-height:1;margin-top:0.75em}.trainpass .store-ticket-body{padding:25px}.trainpass .store-info-row{display:flex;gap:12px;border-bottom:1px solid #f0f0f0;font-size:1em}.trainpass .store-info-row:last-child{border-bottom:none}.trainpass .store-info-row dt{color:#aaa;flex-shrink:0;width:64px;font-weight:400}.trainpass .store-info-row dd{color:var(--ink);margin:0}.trainpass .zigzag{height:20px;background:linear-gradient(135deg, var(--cream) 25%, transparent 25%) -20px 0,linear-gradient(225deg, var(--cream) 25%, transparent 25%) -20px 0,linear-gradient(315deg, var(--cream) 25%, transparent 25%),linear-gradient(45deg, var(--cream) 25%, transparent 25%);background-size:40px 40px;background-color:var(--green-l)}.trainpass .zigzag-bottom{height:20px;background:linear-gradient(135deg, var(--green-l) 25%, transparent 25%) -20px 0,linear-gradient(225deg, var(--green-l) 25%, transparent 25%) -20px 0,linear-gradient(315deg, var(--green-l) 25%, transparent 25%),linear-gradient(45deg, var(--green-l) 25%, transparent 25%);background-size:40px 40px;background-color:var(--cream)}.trainpass .notice-sec{background:#fff}.trainpass .notice-card{background:var(--cream);border-radius:20px;padding:36px 40px}.trainpass .notice-list{list-style:none}.trainpass .notice-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px dashed rgba(0,0,0,0.1);font-size:1.2em;line-height:1.8;color:var(--mid);opacity:0;transform:translateY(10px);transition:opacity .45s, transform .45s}.trainpass .notice-list li.visible{opacity:1;transform:translateY(0)}.trainpass .notice-list li:last-child{border-bottom:none}.trainpass .notice-list li::before{content:'※';flex-shrink:0;color:var(--pink);font-weight:900;font-size:.8em;margin-top:2px}.trainpass .cta-banner{background:linear-gradient(135deg, var(--green-d) 0%, var(--green) 60%, #66d4a5 100%);padding:80px 0;text-align:center;position:relative;overflow:hidden}.trainpass .cta-banner::before{content:'';position:absolute;top:-60px;right:-60px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,0.07)}.trainpass .cta-banner::after{content:'';position:absolute;bottom:-80px;left:-40px;width:240px;height:240px;border-radius:50%;background:rgba(0,0,0,0.06)}.trainpass .cta-banner-inner{position:relative;z-index:1}.trainpass .cta-banner h2{font-weight:800;font-size:clamp(1.8em, 5vw, 3.2em);color:#fff;line-height:1.3;margin-bottom:10px}.trainpass .cta-banner p{color:rgba(255,255,255,0.8);font-size:.95em;margin-bottom:32px}.trainpass .period-box{display:inline-block;background:rgba(255,255,255,0.18);border:1.5px solid rgba(255,255,255,0.4);border-radius:50px;padding:12px 36px;font-size:.9em;font-weight:700;color:#fff;letter-spacing:.05em;backdrop-filter:blur(8px)}
