.portal{min-height:100vh;display:flex;flex-direction:column}.portal__main{flex:1 0 auto;width:100%;max-width:880px;margin-inline:auto;padding:40px 20px 72px}.portal__bar{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.portal__bar-inner{max-width:880px;margin-inline:auto;padding:16px 20px;display:flex;align-items:center;gap:10px}.portal__brand{font-weight:800;font-size:.98rem;letter-spacing:.02em}.portal__brand-mark{color:var(--color-brand)}.portal__home-link{margin-left:auto;font-size:.875rem;color:var(--color-text-muted);text-decoration:none}.portal__home-link:hover{color:var(--color-brand);text-decoration:underline}.portal__heading{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem);font-weight:800;line-height:1.5;letter-spacing:.01em}.portal__lead{margin-top:16px;color:var(--color-text-muted);font-size:1rem}.portal__section-title{font-size:1.1rem;font-weight:800;margin-top:40px;padding-left:12px;border-left:4px solid var(--color-brand)}.portal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:22px}.portal__panel{margin-top:18px;padding:22px;background:var(--color-background-subtle);border:1px solid var(--color-border);border-radius:var(--radius-card)}.portal__pack{margin-top:20px;padding:22px;border:1px solid var(--color-border);border-left:5px solid var(--color-brand);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.portal__pack-label{font-size:.875rem;font-weight:700;color:var(--color-brand);letter-spacing:.06em}.portal__pack-title{font-size:1.25rem;font-weight:800;margin-top:4px}.portal__pack-meta{margin-top:8px;font-size:.875rem;color:var(--color-text-muted)}.portal__pack-firststep{margin-top:12px;font-size:.95rem}.portal__steps{margin-top:18px;display:grid;gap:12px;counter-reset:pstep}.portal__step{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.portal__step:before{counter-increment:pstep;content:counter(pstep);flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--color-brand);color:#fff;font-weight:800;font-size:.9rem;display:flex;align-items:center;justify-content:center}.portal__step p{padding-top:2px}.portal__menu{margin-top:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.portal__menu-group{grid-column:1 / -1}.menu-item{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}a.menu-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--color-brand)}.menu-item__title{font-weight:800;font-size:1.02rem}.menu-item__desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.7}.menu-item--pending{opacity:.62;cursor:not-allowed}.menu-item__badge{align-self:flex-start;margin-top:2px;font-size:.875rem;font-weight:700;padding:2px 10px;border-radius:999px}.menu-item__badge--ready{color:var(--color-brand);background:#fdecec}.menu-item__badge--pending{color:var(--color-text-muted);background:#efe6e5}.menu-item__sublist{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.menu-item__subtag{font-size:.875rem;color:var(--color-text-muted);background:var(--color-background-subtle);border:1px solid var(--color-border);border-radius:6px;padding:3px 8px}.portal__actions{margin-top:18px;display:flex;flex-wrap:wrap;gap:12px}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:13px 24px;border-radius:var(--radius-button);font-weight:700;text-decoration:none;border:1.5px solid var(--color-brand);transition:background-color .2s ease,color .2s ease}.portal-btn--primary{background:var(--color-brand);color:#fff}.portal-btn--primary:hover{background:var(--color-brand-dark);border-color:var(--color-brand-dark)}.portal-btn--ghost{background:transparent;color:var(--color-brand)}.portal-btn--ghost:hover{background:#fdecec}.portal__terms{margin-top:20px;font-size:.88rem;color:var(--color-text-muted);line-height:1.9}.portal__terms li{position:relative;padding-left:16px}.portal__terms li:before{content:"・";position:absolute;left:0}.portal__notice{margin-top:18px;padding:16px 18px;border-radius:var(--radius-card);background:#fdf4dc;border:1px solid #ecd9a6;font-size:.9rem;color:#6b5410;line-height:1.8}.portal__footer{flex-shrink:0;border-top:1px solid var(--color-border);padding:24px 20px;text-align:center;font-size:.875rem;color:var(--color-text-muted)}.portal__footer-nav{margin-bottom:12px}.portal__footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px}.portal__footer-links a{color:var(--color-text-muted);text-decoration:underline}.portal__footer-links a:hover{color:var(--color-brand)}.legal-dl{margin-top:24px;border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden;background:var(--color-surface)}.legal-dl__row{display:grid;grid-template-columns:minmax(180px,30%) 1fr}.legal-dl__row+.legal-dl__row{border-top:1px solid var(--color-border)}.legal-dl__term{padding:16px 18px;font-weight:700;font-size:.9rem;background:#faf6f6;overflow-wrap:break-word}.legal-dl__desc{padding:16px 18px;font-size:.9rem;line-height:1.85;color:var(--color-text-muted);overflow-wrap:break-word}.legal-dl__desc p+p{margin-top:8px}.legal-section{margin-top:28px}.legal-section__title{font-size:1.02rem;font-weight:800;padding-bottom:8px;border-bottom:2px solid var(--color-border)}.legal-section__body{margin-top:12px;font-size:.9rem;line-height:1.9;color:var(--color-text-muted);overflow-wrap:break-word}.legal-section__body p+p{margin-top:10px}.legal-list{margin-top:10px;display:grid;gap:8px}.legal-list li{position:relative;padding-left:18px;font-size:.9rem;line-height:1.85;color:var(--color-text-muted);overflow-wrap:break-word}.legal-list li:before{content:"・";position:absolute;left:0;color:var(--color-brand)}.legal-revised{margin-top:24px;font-size:.875rem;color:var(--color-text-muted);text-align:right}@media(max-width:720px){.portal__menu{grid-template-columns:1fr}.portal__main{padding:28px 18px 56px}.portal-btn{width:100%}.legal-dl__row{grid-template-columns:1fr}.legal-dl__term{padding-bottom:8px}.legal-dl__desc{padding-top:8px}}
