:root { color-scheme:light; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; color:#1d1d1f; background:#f5f5f7; font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; -webkit-text-size-adjust:100%; }
.topbar { min-height:90px; padding:18px max(24px,calc((100vw - 1080px)/2)); display:flex; gap:20px; align-items:center; justify-content:space-between; background:white; border-bottom:1px solid #e8e8ed; }
.brand { display:flex; align-items:center; gap:16px; flex-shrink:0; }
.brand-mark { width:44px; height:44px; object-fit:contain; }
.brand-logo { width:142px; height:auto; object-fit:contain; }
.header-status { background:#eaf3ff; color:#0759b5; border:1px solid #d0e5ff; padding:7px 14px; border-radius:999px; font-size:.875rem; font-weight:600; white-space:nowrap; }
main { max-width:1080px; margin:auto; padding:0 24px; }
.hero { text-align:center; padding:70px 0 52px; }
.eyebrow { color:#0066cc; font-size:.875rem; font-weight:650; letter-spacing:.16em; margin:0 0 20px; }
h1 { margin:0; font-size:clamp(2.125rem,5.3vw,4.125rem); line-height:1.25; font-weight:700; letter-spacing:-.035em; }
.intro { margin:23px 0 30px; color:#515156; font-size:1.125rem; line-height:1.85; }
.availability { max-width:620px; margin:auto; background:#fff; border:1px solid #e3e3e8; border-radius:26px; padding:27px 28px 23px; box-shadow:0 12px 40px #1c295509; }
.status-line { display:flex; align-items:center; justify-content:center; gap:10px; }
.status-symbol { flex-shrink:0; width:11px; height:11px; border-radius:50%; background:#0066cc; }
.availability h2 { font-size:1.25rem; line-height:1.5; margin:0; }
.availability p { font-size:1rem; line-height:1.75; margin:14px 0 20px; }
.actions { display:flex; justify-content:center; gap:12px; }
button { font:inherit; display:flex; align-items:center; justify-content:center; gap:15px; padding:14px 20px; border:1px solid #e3e3e8; border-radius:14px; background:#f5f5f7; color:#4e4e54; min-height:52px; font-size:1rem; font-weight:600; opacity:1; cursor:not-allowed; flex:1; }
button span { color:#66666e; font-weight:400; font-size:.875rem; }
.availability .availability-note { margin:16px 0 0; color:#66666e; font-size:.875rem; }
.mobile-break { display:none; }
.next-service { padding:8px 0 52px; }
.section-title { display:flex; gap:12px; justify-content:space-between; align-items:center; margin-bottom:18px; }
.section-title h2 { margin:0; font-size:1.375rem; line-height:1.5; letter-spacing:-.02em; }
.section-title span { font-size:.875rem; color:#5b5b62; }
.features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.feature { background:white; border:1px solid #e5e5ea; border-radius:22px; padding:24px; }
.feature-number { color:#0066cc; font-size:.875rem; letter-spacing:.1em; font-weight:600; }
.feature h3 { margin:16px 0 10px; font-size:1.125rem; line-height:1.65; }
.feature p { color:#5b5b62; font-size:1rem; margin:0; line-height:1.8; }
.future-note { color:#5b5b62; font-size:.875rem; line-height:1.75; margin:16px 0 0; }
footer { max-width:1080px; margin:auto; padding:24px 24px max(24px,env(safe-area-inset-bottom)); border-top:1px solid #dedee4; display:flex; gap:16px; justify-content:space-between; font-size:.875rem; color:#66666e; }
@media(max-width:640px) {
  .topbar { min-height:74px; padding:14px 20px; gap:12px; }
  .brand { gap:10px; }
  .brand-mark { width:35px; height:35px; }
  .brand-logo { width:118px; }
  .header-status { padding:6px 10px; }
  main { padding:0 20px; }
  .hero { padding:40px 0 38px; }
  .eyebrow { margin-bottom:15px; }
  h1 { font-size:clamp(1.875rem,8.3vw,2.5rem); letter-spacing:-.025em; line-height:1.4; }
  .intro { font-size:1rem; margin:18px 0 24px; }
  .availability { padding:24px 18px 20px; border-radius:22px; }
  .availability h2 { font-size:1.125rem; }
  .mobile-break { display:initial; }
  .actions { flex-direction:column; gap:10px; }
  button { flex:auto; gap:22px; }
  .section-title { align-items:flex-start; flex-direction:column; gap:6px; }
  .section-title h2 { font-size:1.25rem; }
  .features { grid-template-columns:1fr; gap:12px; }
  .feature { padding:22px; }
  .feature h3 { margin-top:10px; }
  footer { margin:0 20px; padding-left:0; padding-right:0; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
