:root{
    --primary:#0b5fff;
    --accent:#00b894;
    --muted:#6b7280;
    --bg:#f6f7fb;
    --surface:#ffffff;
}
*{box-sizing:border-box}
body{
    margin:0;
    font-family: Inter, "Segoe UI", 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
    background:var(--bg);
    color:#111827;
    -webkit-font-smoothing:antialiased;
}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.site-header{background:var(--surface);box-shadow:0 1px 0 rgba(16,24,40,0.04);position:sticky;top:0;z-index:40}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.logo{font-weight:700;color:var(--primary);text-decoration:none;font-size:1.1rem}
.logo span{color:#0f1724}
.site-nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.site-nav a{color:#111827;text-decoration:none;font-weight:600}
.nav-toggle{display:none;background:none;border:0;cursor:pointer}
.nav-toggle span{display:block;width:20px;height:2px;background:#111;margin:4px 0}

.hero{padding:72px 0 56px;background:linear-gradient(180deg, #ffffff 0%, #f3f6ff 100%)}
.hero-inner{display:flex;gap:40px;align-items:center;align-items:stretch}
.hero{position:relative;overflow:hidden}
.hero .hero-inner{position:relative;z-index:2}
/* ビューポートに固定してスクロール中も漂い続ける */
.bg-objects{position:fixed;top:0;left:0;right:0;height:48vh;z-index:1;pointer-events:none;overflow:visible;display:flex;align-items:flex-start;justify-content:space-between;padding:10px 6%}
.bg-objects .bubble{position:relative;border-radius:50%;width:var(--size);height:var(--size);background:var(--color);transform:translate3d(0,0,0);animation:float var(--duration) ease-in-out infinite;animation-delay:var(--delay);margin-top:var(--top)}
.bg-objects .bubble::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 20px 20px 40px rgba(255,255,255,0.06)}

@keyframes float{
 0%{transform:translate3d(0,0,0) scale(1)}
 50%{transform:translate3d(10px,-40px,0) scale(1.03)}
 100%{transform:translate3d(0,0,0) scale(1)}
}

.hero-copy h1{font-size:2.4rem;line-height:1.05;margin:0 0 12px;letter-spacing:-0.02em}
.lead{color:var(--muted);margin:8px 0 20px;max-width:60ch}
.hero-cta{display:flex;gap:12px;margin-top:14px}
.btn{display:inline-block;padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:700}
.btn.primary{background:var(--primary);color:#fff}
.btn.ghost{background:transparent;border:1px solid rgba(15,23,36,0.08);color:#111}
.hero-visual{flex:1;display:flex;align-items:center;justify-content:center}
.card-visual{background:linear-gradient(135deg,var(--primary),#7c3aed);height:260px;border-radius:14px;color:white;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 20px 50px rgba(11,95,255,0.10)}

.services{padding:48px 0}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.service-card{background:var(--surface);padding:22px;border-radius:12px;box-shadow:0 8px 24px rgba(2,6,23,0.06);transition:transform .18s ease,box-shadow .18s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(2,6,23,0.10)}
.service-card h3{margin-top:0}
.service-card p{color:var(--muted);margin:8px 0 0}

.values{padding:40px 0}
.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.value{background:linear-gradient(180deg,#fff,#fbfcff);padding:18px;border-radius:10px}

.cases{padding:40px 0}
.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.case img{width:100%;border-radius:8px}

.process{padding:36px 0;background:linear-gradient(180deg,#fff,#f7fafc)}
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.step{background:var(--surface);padding:18px;border-radius:8px;text-align:center}

.team{padding:40px 0}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}
.team-grid .member{text-align:center;padding:12px}
.team-grid img{width:100px;height:100px;border-radius:12px;object-fit:cover}

.testimonials{padding:30px 0}
.testimonial{background:linear-gradient(90deg,#fff,#f3f6ff);padding:20px;border-radius:8px;font-style:italic}

.newsletter{padding:28px 0}
.newsletter-form{display:flex;gap:12px;max-width:520px}
.newsletter-form input{flex:1;padding:10px;border-radius:8px;border:1px solid #e6e9ee}
.newsletter-form button{border-radius:8px}

.company-profile table{width:100%;border-collapse:collapse;background:var(--surface);padding:12px;border-radius:8px}
.company-profile th{width:160px;text-align:left;padding:12px;background:#f8fafc}
.company-profile td{padding:12px}

.contact-note{background:#0f1724;color:#fff;padding:14px;text-align:center}
.contact-note a{color:var(--accent);text-decoration:underline}

.site-footer{background:var(--surface);padding:20px 0;margin-top:30px}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}

@media (max-width:800px){
    .hero-inner{flex-direction:column}
    .site-nav{display:none}
    .site-nav.open{display:block;background:var(--surface);position:absolute;top:64px;left:0;right:0;padding:12px 20px;box-shadow:0 8px 24px rgba(2,6,23,0.08)}
    .nav-toggle{display:block}
    .footer-inner{flex-direction:column;align-items:flex-start}
    /* モバイルでは装飾を抑える */
    .bg-objects{display:none}
}

/* Services page improvements */
.services-section{padding:48px 0;background:var(--bg)}
.services-section h2{text-align:center;margin-bottom:32px}
.service-icon{font-size:2.5rem;margin-bottom:12px}
.service-features{list-style:none;padding:0;margin:16px 0 0}
.service-features li{padding:4px 0 4px 20px;position:relative;color:var(--muted);font-size:0.9rem}
.service-features li::before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:700}
.step-number{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;margin:0 auto 8px}

@media (max-width:520px){
  .service-icon{font-size:2rem}
  .step-number{width:32px;height:32px;font-size:0.9rem}
}/* Pricing page styles */
.pricing-section{padding:40px 0;background:var(--bg)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}
.pricing-grid .card{background:var(--surface);padding:24px;border-radius:12px;box-shadow:0 8px 24px rgba(2,6,23,0.06);text-align:center}
.pricing-grid .card h3{margin:0 0 8px;font-size:1.1rem}
.pricing-grid .price{font-size:1.6rem;font-weight:800;color:var(--primary);margin:8px 0}
.pricing-grid .price span{font-size:0.8rem;font-weight:600;color:var(--muted)}
.pricing-grid .card ul{list-style:none;padding:0;margin:12px 0 18px;color:var(--muted)}
.pricing-grid .card .btn{width:100%;display:inline-block;padding:12px 16px;border-radius:10px}
.pricing-grid .card.featured{transform:scale(1.03);border:2px solid rgba(11,95,255,0.08)}
.pricing-compare{margin-top:40px}
.pricing-compare table{width:100%;border-collapse:collapse;margin-top:18px}
.pricing-compare th,.pricing-compare td{border:1px solid #eef2ff;padding:10px;text-align:center}
.pricing-compare th{background:#fbfdff;text-align:left;padding-left:14px}
.pricing-compare .note{color:var(--muted);font-size:0.9rem;margin-top:8px}

@media (max-width:900px){
    .pricing-grid{grid-template-columns:repeat(1,1fr)}
    .pricing-grid .card{margin-bottom:12px}
}

/* UI improvements */
.plan-badge{position:absolute;transform:translateY(-16px);background:linear-gradient(90deg,var(--accent),#0b84ff);color:#fff;padding:6px 10px;border-radius:999px;font-weight:700;font-size:0.85rem}
.pricing-grid .card{position:relative;transition:transform .18s ease,box-shadow .18s ease}
.pricing-grid .card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,6,23,0.12)}
.pricing-grid .card ul li{padding:8px 0;position:relative;padding-left:28px;text-align:left}
.pricing-grid .card ul li::before{content:"\2713";position:absolute;left:6px;top:8px;color:var(--accent);font-weight:700}
.btn.primary{background:var(--primary);color:#fff}
.btn.ghost{background:transparent;border:1px solid rgba(15,23,36,0.08);color:#111}
.btn:hover{opacity:0.95;transform:translateY(-1px)}

@media (max-width:520px){
    .plan-badge{right:18px}
}

/* Related service block */
.related-service{padding:40px 0;background:linear-gradient(180deg,#fff,#f9fbff);border-bottom:1px solid #eef6ff}
.related-service .lead{max-width:70ch;margin-bottom:20px}
.related-service .cta-buttons .btn{margin-right:12px;margin-bottom:8px}

/* FAQ section */
.faq{padding:40px 0;background:var(--surface)}
.faq-list{max-width:700px}
.faq-list dt{font-weight:700;margin:16px 0 6px;color:#111827}
.faq-list dd{margin:0 0 12px;color:var(--muted);line-height:1.5}

