@charset "utf-8";:root {--bg:#f7fafc;--card:#fff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;--primary:#4f7cff;--primary2:#6ee7ff;--accent:#ff7aa2;--ink:#0f172a;--shadow:0 14px 34px rgba(15,23,42,.10);--shadow2:0 10px 20px rgba(15,23,42,.06);--radius:18px;}* {    box-sizing: border-box;    margin: 0;    padding: 0;}body {    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;    color: var(--text);    line-height: 1.7;    background: radial-gradient(1200px 800px at 20% -10%, rgba(79,124,255,0.18), transparent 60%), radial-gradient(1200px 800px at 90% 0%, rgba(110,231,255,0.18), transparent 55%), radial-gradient(900px 700px at 60% 110%, rgba(255,122,162,0.16), transparent 55%), var(--bg);}a {    text-decoration: none;    color: inherit;    transition: transform .15s ease, opacity .2s ease;    cursor: pointer;}a:hover {    opacity: .92;}ul {    list-style: none;}img {    max-width: 100%;    height: auto;}.container {    max-width: 1100px;    margin: 56px auto;    padding: 0 20px;}.card {    background: rgba(255,255,255,.92);    border: 1px solid rgba(229,231,235,.9);    border-radius: var(--radius);    box-shadow: var(--shadow2);}.muted {    color: var(--muted);}.section-head {    text-align: center;    margin: 0 auto 34px;}.section-title {    font-size: 2rem;    letter-spacing: .5px;    color: var(--ink);}.section-sub {    margin-top: 8px;    font-size: .98rem;    color: var(--muted);}.section-divider {    width: 76px;    height: 6px;    border-radius: 999px;    margin: 18px auto 0;    background: linear-gradient(90deg, var(--primary), var(--primary2));    box-shadow: 0 8px 18px rgba(79,124,255,.18);}/* Header */header {    position: sticky;    top: 0;    z-index: 1000;    background: rgba(255,255,255,.80);    backdrop-filter: blur(10px);    border-bottom: 1px solid rgba(229,231,235,.7);}.header-inner {    display: flex;    align-items: center;    justify-content: space-between;    gap: 14px;    padding: 14px 20px;    max-width: 1100px;    margin: 0 auto;}.logo {    display: flex;    align-items: center;    gap: 10px;    font-weight: 900;    letter-spacing: .4px;    color: var(--ink);    cursor: pointer;    user-select: none;}.logo-badge {    width: 34px;    height: 34px;    border-radius: 12px;    background: linear-gradient(135deg, var(--primary), var(--primary2));    box-shadow: 0 10px 22px rgba(79,124,255,.22);}.logo span {    font-size: 1.05rem;}.nav-menu {    display: flex;    align-items: center;    gap: 6px;}.nav-menu li a {    display: inline-flex;    align-items: center;    padding: 10px 12px;    border-radius: 999px;    font-weight: 800;    font-size: .92rem;    color: #111827;}.nav-menu li a:hover {    background: rgba(79,124,255,.08);    transform: translateY(-1px);}.btn {    display: inline-flex;    align-items: center;    justify-content: center;    gap: 8px;    padding: 11px 16px;    border-radius: 999px;    font-weight: 900;    font-size: .9rem;    border: 1px solid transparent;    box-shadow: 0 10px 22px rgba(15,23,42,.06);}.btn-primary {    background: linear-gradient(135deg, var(--primary), var(--primary2));    color: #fff !important;}.btn-secondary {    background: #fff;    border-color: rgba(79,124,255,.28);    color: var(--primary) !important;}.btn-secondary:hover {    background: rgba(79,124,255,.06);}.btn-ghost {    background: rgba(255,255,255,.16);    border: 1px solid rgba(255,255,255,.28);    color: #fff !important;    box-shadow: none;}.btn-ghost:hover {    background: rgba(255,255,255,.22);    transform: translateY(-1px);}/* Mobile */.hamburger {    display: none;    width: 42px;    height: 42px;    border-radius: 14px;    border: 1px solid rgba(229,231,235,.9);    background: rgba(255,255,255,.75);    box-shadow: 0 10px 18px rgba(15,23,42,.06);    cursor: pointer;}.hamburger span {    display: block;    width: 18px;    height: 2px;    background: #111827;    margin: 5px auto;    border-radius: 99px;}.mobile-nav {    display: none;    padding: 10px 20px 16px;    max-width: 1100px;    margin: 0 auto;}.mobile-nav a {    display: block;    padding: 12px 14px;    border-radius: 14px;    font-weight: 800;    color: #111827;}.mobile-nav a:hover {    background: rgba(79,124,255,.08);}.mobile-nav.open {    display: block;}/* SPA */.page-section.active {    display: block;}@keyframes fadeIn {from {opacity:0;transform:translateY(10px);}to {opacity:1;transform:translateY(0);}}/* TOP: Fullscreen MV */.mv {    position: relative;    min-height: calc(100vh - 74px);    display: flex;    align-items: center;    overflow: hidden;}.mv::before {    content: "";    position: absolute;    inset: 0;    background: linear-gradient(120deg, rgba(15,23,42,.62) 0%, rgba(15,23,42,.30) 45%, rgba(15,23,42,.10) 100%), url("../images/main.jpg") center/cover no-repeat;    transform: scale(1.02);}.mv::after {    content: "";    position: absolute;    inset: 0;    background: radial-gradient(900px 500px at 20% 20%, rgba(255,255,255,.12), transparent 60%);    pointer-events: none;}.mv-inner {    position: relative;    z-index: 2;    max-width: 1100px;    margin: 0 auto;    padding: 0 20px;    width: 100%;    display: grid;grid-template-columns: 1.1fr .9fr;    gap: 28px;    align-items: center;}.mv-badge {    display: inline-flex;    align-items: center;    gap: 10px;    padding: 10px 14px;    border-radius: 999px;    background: rgba(255,255,255,.18);    border: 1px solid rgba(255,255,255,.25);    backdrop-filter: blur(8px);    color: #fff;    font-weight: 800;    font-size: .9rem;    margin-bottom: 18px;}.mv-badge .dot {    width: 10px;    height: 10px;    border-radius: 99px;    background: linear-gradient(135deg, var(--accent), var(--primary2));    box-shadow: 0 10px 20px rgba(255,122,162,.22);}.mv h1 {    color: #fff;    font-size: 2.8rem;    line-height: 1.22;    letter-spacing: 1px;    text-shadow: 0 12px 30px rgba(0,0,0,.28);    margin-bottom: 12px;}.mv p {    color: rgba(255,255,255,.88);    font-size: 1.05rem;    margin-bottom: 18px;}.mv-cta {    display: flex;    gap: 12px;    flex-wrap: wrap;    margin-top: 10px;}.mv-panel {    border-radius: 26px;    border: 1px solid rgba(255,255,255,.24);    background: rgba(255,255,255,.14);    backdrop-filter: blur(10px);    box-shadow: 0 18px 40px rgba(0,0,0,.18);    padding: 18px 18px;}.mv-panel h3 {    color: #fff;    font-size: 1.05rem;    margin-bottom: 10px;    letter-spacing: .4px;}.mv-panel ul {    display: grid;    gap: 10px;}.mv-panel li {    display: flex;    gap: 10px;    align-items: flex-start;    color: rgba(255,255,255,.9);    font-size: .92rem;}.check {    width: 22px;    height: 22px;    border-radius: 10px;    display: flex;    align-items: center;    justify-content: center;    background: rgba(110,231,255,.18);    border: 1px solid rgba(110,231,255,.28);    flex: 0 0 auto;    margin-top: 1px;}/* Subpages shorter MV */.page-hero {    max-width: 1100px;    margin: 18px auto 0;    padding: 0 20px;}.page-hero .wrap {    position: relative;    border-radius: 26px;    overflow: hidden;    min-height: 280px;    display: flex;    align-items: flex-end;    padding: 22px 22px;    border: 1px solid rgba(229,231,235,.85);    box-shadow: var(--shadow2);}.page-hero .wrap::before {    content: "";    position: absolute;    inset: 0;    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&q=80&w=2000") center/cover no-repeat;    transform: scale(1.02);}.page-hero .content {    position: relative;    z-index: 2;    color: #fff;}.page-hero h1 {    font-size: 2.1rem;    letter-spacing: .8px;    margin-bottom: 6px;    text-shadow: 0 12px 30px rgba(0,0,0,.28);}.page-hero span {    display: inline-block;    color: rgba(255,255,255,.86);    font-weight: 700;    font-size: .95rem;}/* per-page hero images */.hero-company .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("../images/company-mv.jpg") center/cover no-repeat;}.hero-business .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("../images/business-mv.jpg") center/cover no-repeat;}.hero-support .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("https://images.unsplash.com/photo-1525182008055-f88b95ff7980?auto=format&fit=crop&q=80&w=2000") center/cover no-repeat;}.hero-recruit .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("../images/recruit-mv.jpg") center/cover no-repeat;}.hero-contact .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("../images/contact-mv.jpg") center/cover no-repeat;}.hero-partner .wrap::before {    background: linear-gradient(120deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.22) 55%, rgba(15,23,42,.10) 100%), url("../images/partner-mv.jpg") center/cover no-repeat;}/* TOP components */.features {    display: grid;    grid-template-columns: repeat(3, 1fr);    gap: 18px;    margin-top: 24px;}.feature {    padding: 22px 20px;    border-radius: var(--radius);    background: rgba(255,255,255,.92);    border: 1px solid rgba(229,231,235,.9);    box-shadow: var(--shadow2);    transition: transform .18s ease, box-shadow .18s ease;}.feature:hover {    transform: translateY(-3px);    box-shadow: var(--shadow);}.feature .icon {    width: 44px;    height: 44px;    border-radius: 16px;    display: flex;    align-items: center;    justify-content: center;    background: linear-gradient(135deg, rgba(79,124,255,.18), rgba(110,231,255,.18));    border: 1px solid rgba(79,124,255,.18);    margin-bottom: 12px;    font-size: 20px;}.feature h3 {    font-size: 1.1rem;    color: #111827;    margin-bottom: 8px;}.feature p {    font-size: .95rem;    color: var(--muted);}.tiles {    display: grid;    grid-template-columns: repeat(4, 1fr);    gap: 14px;    margin-top: 22px;}.tile {    padding: 18px 16px;    border-radius: var(--radius);    background: rgba(255,255,255,.92);    border: 1px solid rgba(229,231,235,.9);    box-shadow: var(--shadow2);    transition: transform .18s ease, box-shadow .18s ease;}.tile:hover {    transform: translateY(-3px);    box-shadow: var(--shadow);}.tile-top {    display: flex;    align-items: center;    gap: 10px;    margin-bottom: 10px;}.pill {    display: inline-flex;    align-items: center;    padding: 7px 10px;    border-radius: 999px;    background: rgba(79,124,255,.10);    border: 1px solid rgba(79,124,255,.18);    color: #1f3b9b;    font-weight: 900;    font-size: .78rem;}.tile h4 {    font-size: 1.02rem;    color: #111827;}.tile p {    margin-top: 8px;    font-size: .92rem;    color: var(--muted);}.news {    margin-top: 24px;    padding: 18px 18px;}.news-item {    display: flex;    gap: 14px;    padding: 14px 6px;    border-bottom: 1px solid rgba(229,231,235,.8);    align-items: flex-start;}.news-item:last-child {    border-bottom: none;}.news-date {    font-size: .86rem;    color: var(--muted);    min-width: 92px;    padding-top: 2px;}.news-title {    font-size: .96rem;    color: #111827;    font-weight: 800;}/* Company */.message-box {    padding: 26px 22px;}.message-box h3 {    font-size: 1.35rem;    color: var(--ink);    margin-bottom: 12px;    display: flex;    align-items: center;    gap: 10px;}.message-box h3::before {    content: "";    width: 10px;    height: 10px;    border-radius: 99px;    background: linear-gradient(135deg, var(--primary), var(--accent));    box-shadow: 0 10px 20px rgba(79,124,255,.22);}.message-box p {    color: var(--muted);    margin-bottom: 14px;}.company-table {    width: 100%;    border-collapse: separate;    border-spacing: 0;    overflow: hidden;    border-radius: var(--radius);    border: 1px solid rgba(229,231,235,.9);    background: rgba(255,255,255,.92);    box-shadow: var(--shadow2);}.company-table th, .company-table td {    padding: 16px 18px;    border-bottom: 1px solid rgba(229,231,235,.8);    text-align: left;    vertical-align: top;    font-size: .95rem;}.company-table th {    width: 26%;    background: rgba(79,124,255,.06);    color: #111827;    font-weight: 900;}.company-table tr:last-child th, .company-table tr:last-child td {    border-bottom: none;}/* Business */.biz-grid {    display: grid;    grid-template-columns: repeat(2, 1fr);    gap: 18px;    margin-top: 22px;}.biz-card {    padding: 22px 20px;}.biz-card h3 {    font-size: 1.15rem;    color: #111827;    margin-bottom: 10px;    display: flex;    align-items: center;    gap: 10px;}.biz-card .badge {    display: inline-flex;    align-items: center;    justify-content: center;    width: 34px;    height: 34px;    border-radius: 14px;    background: linear-gradient(135deg, rgba(79,124,255,.18), rgba(110,231,255,.18));    border: 1px solid rgba(79,124,255,.18);}.biz-card p {    color: var(--muted);    font-size: .95rem;}.flow {    margin-top: 18px;    padding: 22px 20px;}.flow-steps {    display: grid;    grid-template-columns: repeat(4, 1fr);    gap: 12px;    margin-top: 14px;}.step {    padding: 14px 14px;    border-radius: 16px;    border: 1px solid rgba(229,231,235,.9);    background: rgba(255,255,255,.92);}.step strong {    display: block;    font-size: .9rem;    color: #111827;    margin-bottom: 6px;    font-weight: 900;}.step span {    font-size: .86rem;    color: var(--muted);}/* Support */.support-grid {    display: grid;    grid-template-columns: repeat(3, 1fr);    gap: 16px;    margin-top: 22px;}.support-card {    padding: 22px 20px;    border-radius: var(--radius);    background: rgba(255,255,255,.92);    border: 1px solid rgba(229,231,235,.9);    box-shadow: var(--shadow2);    transition: transform .18s ease, box-shadow .18s ease;}.support-card:hover {    transform: translateY(-3px);    box-shadow: var(--shadow);}.support-card h3 {    font-size: 1.05rem;    margin-bottom: 8px;    color: #111827;    font-weight: 900;}.support-card p {    color: var(--muted);    font-size: .94rem;}.tel-number {    margin: 14px 0 6px;    font-weight: 900;    font-size: 1.35rem;    color: #ef4444;    letter-spacing: 1px;}.support-time {    font-size: .85rem;    color: var(--muted);}.btn-outline {    display: inline-flex;    align-items: center;    justify-content: center;    margin-top: 14px;    padding: 10px 14px;    border-radius: 999px;    border: 1px solid rgba(79,124,255,.35);    color: var(--primary);    font-weight: 900;    font-size: .9rem;    background: rgba(79,124,255,.06);}.btn-outline:hover {    background: rgba(79,124,255,.10);    transform: translateY(-1px);}/* Recruit */.recruit-hero {    padding: 26px 22px;    border-radius: 26px;    background: radial-gradient(900px 360px at 20% 0%, rgba(255,122,162,0.22), transparent 55%), radial-gradient(900px 360px at 90% 0%, rgba(79,124,255,0.18), transparent 55%), rgba(255,255,255,.88);    border: 1px solid rgba(229,231,235,.9);    box-shadow: var(--shadow2);}.recruit-hero h2 {    font-size: 1.9rem;    color: var(--ink);    margin-bottom: 8px;}.recruit-hero p {    color: var(--muted);}.job-list {    margin-top: 22px;    display: flex;    flex-direction: column;    gap: 14px;}.job-card {    padding: 20px 18px;    border-left: 6px solid rgba(79,124,255,.55);}.job-card h3 {    font-size: 1.12rem;    color: #111827;    margin-bottom: 10px;    font-weight: 900;}.job-card p {    color: var(--muted);    font-size: .95rem;}.job-tags {    margin-bottom: 10px;}.job-tags span {    display: inline-block;    padding: 6px 10px;    border-radius: 999px;    border: 1px solid rgba(229,231,235,.9);    background: rgba(255,255,255,.92);    font-size: .78rem;    font-weight: 900;    color: #111827;    margin-right: 8px;    margin-bottom: 8px;}/* Forms (Contact / Partner) */.form-wrap {    padding: 22px 20px;}.form-grid {    display: grid;    grid-template-columns: 1fr 1fr;    gap: 14px;    margin-top: 14px;}.field {    display: flex;    flex-direction: column;    gap: 8px;}label {    font-weight: 900;    color: #111827;    font-size: .92rem;}.req {    display: inline-flex;    margin-left: 8px;    padding: 2px 8px;    border-radius: 999px;    background: rgba(239,68,68,.10);    border: 1px solid rgba(239,68,68,.22);    color: #ef4444;    font-size: .72rem;    font-weight: 900;}input, select, textarea {    width: 100%;    padding: 12px 12px;    border-radius: 14px;    border: 1px solid rgba(229,231,235,.95);    background: rgba(255,255,255,.92);    outline: none;    font-size: .95rem;    transition: box-shadow .15s ease, border-color .15s ease;}input:focus, select:focus, textarea:focus {    border-color: rgba(79,124,255,.55);    box-shadow: 0 0 0 4px rgba(79,124,255,.12);}textarea {    min-height: 140px;    resize: vertical;}.help {    font-size: .84rem;    color: var(--muted);}.full {    grid-column: 1 / -1;}.form-actions {    display: flex;    gap: 12px;    flex-wrap: wrap;    margin-top: 14px;}.notice {    margin-top: 12px;    padding: 14px 14px;    border-radius: 16px;    border: 1px solid rgba(79,124,255,.18);    background: rgba(79,124,255,.06);    color: var(--muted);    font-size: .9rem;}.success-modal {    position: fixed;    inset: 0;    align-items: center;    justify-content: center;    padding: 20px;    background: rgba(15,23,42,.55);    z-index: 9999;}.success-modal.open {    display: flex;}.success-box {    width: min(560px, 100%);    border-radius: 22px;    background: rgba(255,255,255,.96);    border: 1px solid rgba(229,231,235,.95);    box-shadow: var(--shadow);    padding: 22px 20px;}.success-box h3 {    font-size: 1.2rem;    color: var(--ink);    margin-bottom: 8px;}.success-box p {    color: var(--muted);}.success-box .actions {    margin-top: 14px;    display: flex;    gap: 10px;    flex-wrap: wrap;}/* Partner page blocks */.perk-grid {    display: grid;    grid-template-columns: repeat(3, 1fr);    gap: 14px;    margin-top: 18px;}.perk {    padding: 18px 16px;}.perk h4 {    color: #111827;    font-weight: 900;    margin-bottom: 6px;}.perk p {    color: var(--muted);    font-size: .92rem;}/* CTA / Footer */.partner-cta {    max-width: 1100px;    margin: 60px auto 0;    padding: 0 20px;}.partner-cta .wrap {    padding: 26px 22px;    border-radius: 26px;    background: radial-gradient(900px 360px at 20% 0%, rgba(110,231,255,0.22), transparent 55%), radial-gradient(900px 360px at 90% 0%, rgba(79,124,255,0.18), transparent 55%), rgba(255,255,255,.90);    border: 1px solid rgba(229,231,235,.9);    box-shadow: var(--shadow2);    text-align: center;}.partner-cta h2 {    font-size: 1.55rem;    color: var(--ink);    margin-bottom: 10px;}.partner-cta p {    color: var(--muted);}.partner-btn {    margin-top: 16px;    display: inline-flex;    align-items: center;    justify-content: center;    padding: 14px 22px;    border-radius: 999px;    background: linear-gradient(135deg, var(--primary), var(--primary2));    color: #fff;    font-weight: 900;    box-shadow: 0 14px 26px rgba(79,124,255,.24);}.partner-btn:hover {    transform: translateY(-1px);}footer {    margin-top: 56px;    padding: 44px 20px 18px;    background: rgba(15,23,42,.92);    color: rgba(255,255,255,.78);}.footer-inner {    max-width: 1100px;    margin: 0 auto;    display: flex;    flex-wrap: wrap;    gap: 24px;    justify-content: space-between;    border-bottom: 1px solid rgba(255,255,255,0.12);    padding-bottom: 22px;    margin-bottom: 14px;}.footer-info h2 {    color: #fff;    font-size: 1.15rem;    margin-bottom: 10px;}.footer-links a {    color: rgba(255,255,255,.78);}.copyright {    text-align: center;    font-size: .85rem;    color: rgba(255,255,255,.52);}/* Responsive */@media (max-width:980px) {.mv-inner {    grid-template-columns: 1fr;}.features {    grid-template-columns: 1fr;}.tiles {    grid-template-columns: 1fr 1fr;}.support-grid {    grid-template-columns: 1fr;}.biz-grid {    grid-template-columns: 1fr;}.flow-steps {    grid-template-columns: 1fr 1fr;}.perk-grid {    grid-template-columns: 1fr;}.form-grid {    grid-template-columns: 1fr;}.mv h1 {    font-size: 2.2rem;}}@media (max-width:900px) {.nav-menu {    display: none;}.hamburger {    display: block;}.company-table th, .company-table td {    display: block;    width: 100%;}.company-table th {    border-bottom: none;    padding-bottom: 6px;}}@media (max-width:520px) {.tiles {    grid-template-columns: 1fr;}.flow-steps {    grid-template-columns: 1fr;}}/* ===============================confirm page=============================== */.confirm-wrap{max-width: 900px;margin: 60px auto;}.confirm-table{width: 100%;border-collapse: collapse;background: #fff;border-radius: 8px;overflow: hidden;box-shadow: 0 4px 16px rgba(0,0,0,0.05);}.confirm-table th{width: 240px;background: #f5f7fa;padding: 16px 20px;text-align: left;font-weight: 700;font-size: 14px;border-bottom: 1px solid #e6e6e6;}.confirm-table td{padding: 16px 20px;font-size: 14px;border-bottom: 1px solid #e6e6e6;line-height: 1.7;}.confirm-table tr:last-child th,.confirm-table tr:last-child td{border-bottom: none;}/* ボタン */.confirm-actions{display:flex;justify-content:center;gap:20px;margin-top:40px;flex-wrap:wrap;}.confirm-actions button{min-width:200px;padding:14px 20px;border-radius:6px;font-size:16px;font-weight:700;cursor:pointer;border:none;}.confirm-submit {    background: #003890;    color: #fff;    padding: 10px;    text-align: center;    margin: 0 auto;    display: block;    margin-top: 30px;    border-radius: 10px;    border: none;}.confirm-back{background:#626262;    color: #fff;    padding: 10px;    text-align: center;    margin: 0 auto;    display: block;    margin-top: 30px;    border-radius: 10px;    border: none;}/* SP */@media (max-width:768px){.confirm-table th,.confirm-table td{display:block;width:100%;}.confirm-table th{border-bottom:none;padding-bottom:6px;}.confirm-table td{padding-top:0;}.confirm-actions{flex-direction:column;}.confirm-actions button{width:100%;}}