:root{--fin-blue:#003D82;--fin-blue-dark:#002D61;--fin-blue-deeper:#001A3A;--fin-blue-light:#E6EFF8;--fin-blue-pale:#EBF3FF;--fin-green:#00A862;--fin-green-light:#E6F7EF;--fin-emerald:#10B981;--fin-orange:#FF6600;--fin-orange-light:#FFF0E6;--fin-white:#FFFFFF;--fin-surface:#F5F7FA;--fin-text:#1A1A2E;--fin-text-light:#4A4A5A;--fin-muted:#8A8A9A;--fin-border:#E0E4EA}.fin-cta{background-color:var(--fin-orange);color:var(--fin-white);font-weight:700;box-shadow:0 4px 16px rgba(255,102,0,.3);transition:all .3s ease;position:relative;overflow:hidden}.fin-cta:hover{box-shadow:0 8px 28px rgba(255,102,0,.4);transform:translateY(-2px);background-color:#E65C00}.fin-cta:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.2) 45%,rgba(255,255,255,.2) 55%,transparent 60%);background-size:200% 100%;animation:fin-shimmer 5s ease-in-out infinite}@keyframes fin-shimmer{0%{background-position:-200%}to{background-position:200%}}.fin-cta-outline{border:2px solid var(--fin-blue);color:var(--fin-blue);font-weight:700;transition:all .3s ease}.fin-cta-outline:hover{background-color:var(--fin-blue);color:var(--fin-white);transform:translateY(-1px)}.fin-card{background:var(--fin-white);border:1px solid var(--fin-border);border-radius:12px;transition:all .3s ease}.fin-card:hover{box-shadow:0 8px 32px rgba(0,61,130,.08);transform:translateY(-2px)}.fin-highlight-col{background:linear-gradient(180deg,rgba(0,61,130,.04),rgba(0,61,130,.08));border:2px solid var(--fin-blue);border-radius:12px;position:relative}.fin-highlight-col:before{content:"おすすめ";position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--fin-blue);color:var(--fin-white);font-size:12px;font-weight:700;padding:2px 16px;border-radius:20px;white-space:nowrap}.fin-tab{padding:10px 20px;border-radius:8px;font-weight:500;transition:all .2s ease;color:var(--fin-text-light);cursor:pointer;border:1px solid transparent}.fin-tab:hover{background:var(--fin-blue-light)}.fin-tab-active{background:var(--fin-blue);color:var(--fin-white);border-color:var(--fin-blue)}.fin-tab-active:hover{background:var(--fin-blue-dark)}.fin-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.fin-legal{background:var(--fin-blue-dark);color:rgba(255,255,255,.75);font-size:13px;line-height:1.8}.fin-select{appearance:none;background:var(--fin-white);border:2px solid var(--fin-border);border-radius:8px;padding:12px 40px 12px 16px;font-size:16px;color:var(--fin-text);transition:border-color .2s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234A4A5A' d='M6 8.825L.587 3.412 1.413 2.588 6 7.175 10.587 2.588 11.413 3.412z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}.fin-select:focus{outline:none;border-color:var(--fin-blue);box-shadow:0 0 0 3px rgba(0,61,130,.12)}.fin-number{font-family:var(--font-en),Inter,sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1}.fin-dot-grid{background-image:radial-gradient(circle,rgba(0,61,130,.08) 1px,transparent 0);background-size:24px 24px}.fin-dot-grid-light{background-image:radial-gradient(circle,rgba(255,255,255,.12) 1px,transparent 0);background-size:24px 24px}.fin-en-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-en),Inter,sans-serif;font-weight:900;font-size:8rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;pointer-events:none;user-select:none;color:rgba(0,61,130,.03);line-height:1}.fin-en-bg-light{color:rgba(255,255,255,.04)}@media (min-width:768px){.fin-en-bg{font-size:12rem}}@media (min-width:1024px){.fin-en-bg{font-size:14rem}}.fin-gradient-text{background:linear-gradient(135deg,#60A5FA,#34D399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fin-wave-top{top:-1px}.fin-wave-bottom,.fin-wave-top{position:absolute;left:0;width:100%;overflow:hidden;line-height:0}.fin-wave-bottom{bottom:-1px}