  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif; color:#191919; background:#fff; }
  .wrap { max-width:1180px; margin:0 auto; padding:0 40px; }
  .accent { color:#cf2e2e; }
  .badge { display:inline-block; font-size:11px; letter-spacing:.12em; color:#b3261e; border:1px solid #b3261e; border-radius:3px; padding:2px 8px; margin-left:10px; vertical-align:middle; }
  a { color:inherit; text-decoration:none; }

  .topbar { display:flex; align-items:center; justify-content:space-between; padding:22px 0; border-bottom:1px solid #e8e8e8; }
  .lockup { display:flex; align-items:center; }
  .lockup .full { height:52px; }
  .hero .lockup .full { height:86px; }
  .footer .lockup .full { height:46px; }
  .nav { display:flex; align-items:center; }
  .nav a { font-size:15px; margin-left:32px; letter-spacing:.08em; }
  .nav a.cta { border:1.5px solid #191919; border-radius:999px; padding:9px 22px; }

  .hero { text-align:center; padding:74px 0 0 0; }
  .hero .lockup { justify-content:center; margin-bottom:48px; }
  .eyebrow { font-size:15px; letter-spacing:.42em; color:#8a8a8a; margin-bottom:28px; }
  h1 { font-size:76px; font-weight:700; letter-spacing:.04em; line-height:1.28; margin-bottom:32px; }
  .lead { font-size:20px; line-height:2.0; color:#444; max-width:860px; margin:0 auto 44px auto; }
  .buttons { display:flex; justify-content:center; margin-bottom:66px; }
  .btn { display:inline-block; font-size:17px; padding:16px 40px; border-radius:999px; margin:0 10px; letter-spacing:.06em; cursor:pointer; }
  .btn.dark { background:#191919; color:#fff; }
  .btn.light { border:1.5px solid #191919; }
  .heroimg { width:100%; height:540px; object-fit:cover; border-radius:6px; }

  .pagehead { padding:72px 0 8px 0; }
  .pagehead h1 { font-size:52px; margin-bottom:18px; }
  .pagehead .lead { margin:0; max-width:820px; }

  .section { padding:104px 0 0 0; }
  .section.first { padding-top:56px; }
  .sec-eyebrow { font-size:14px; letter-spacing:.42em; color:#8a8a8a; margin-bottom:16px; }
  h2 { font-size:42px; font-weight:700; letter-spacing:.03em; margin-bottom:14px; }
  .sec-lead { font-size:18px; color:#555; margin-bottom:48px; }
  .cards { display:flex; flex-wrap:wrap; justify-content:space-between; }
  .card { width:48.5%; margin-bottom:52px; }
  .card img { width:100%; height:300px; object-fit:cover; border-radius:6px; margin-bottom:20px; }
  .card .no { font-size:13px; letter-spacing:.3em; color:#cf2e2e; margin-bottom:8px; }
  .card h3 { font-size:26px; font-weight:700; margin-bottom:10px; }
  .card p { font-size:16.5px; line-height:1.95; color:#555; }
  .card .more { font-size:15px; margin-top:12px; letter-spacing:.06em; }

  .detail { border-top:1px solid #e8e8e8; padding:44px 0; display:flex; justify-content:space-between; }
  .detail .head { width:31%; }
  .detail .head .no { font-size:13px; letter-spacing:.3em; color:#cf2e2e; margin-bottom:8px; }
  .detail .head h3 { font-size:27px; font-weight:700; line-height:1.5; }
  .detail .head img { width:100%; height:190px; object-fit:cover; border-radius:6px; margin-top:18px; }
  .detail .body { width:64%; }
  .detail dl { display:flex; flex-wrap:wrap; }
  .detail dt { width:110px; font-size:14px; color:#8a8a8a; letter-spacing:.14em; padding:9px 0; }
  .detail dd { width:calc(100% - 110px); font-size:16.5px; line-height:1.9; color:#333; padding:9px 0; }
  .pending { color:#999; }

  .band { margin-top:90px; background:#191919; color:#fff; padding:80px 0; }
  .band .inner { display:flex; align-items:center; justify-content:space-between; }
  .band h2 { color:#fff; }
  .band p { font-size:17.5px; line-height:2.0; color:#cfcfcf; max-width:640px; }
  .band .en { height:96px; }
  .band .jp { height:60px; }

  table { border-collapse:collapse; width:100%; font-size:16.5px; }
  td { padding:14px 8px; border-bottom:1px solid #e8e8e8; vertical-align:top; line-height:1.8; }
  td.k { width:150px; color:#8a8a8a; letter-spacing:.1em; }
  .maplink { color:#cf2e2e; font-size:14px; margin-left:12px; }

  .contact { margin-top:100px; background:#f6f6f6; border-radius:10px; padding:56px; text-align:center; }
  .contact h2 { margin-bottom:12px; }
  .contact p { font-size:17px; color:#555; line-height:2.0; margin-bottom:28px; }

  form.inquiry { max-width:820px; }
  .frow { margin-bottom:26px; }
  .frow label { display:block; font-size:14px; letter-spacing:.1em; color:#555; margin-bottom:8px; }
  .frow label .req { color:#b3261e; font-size:12px; margin-left:8px; }
  .frow input[type=text], .frow input[type=email], .frow input[type=tel], .frow select, .frow textarea {
    width:100%; font-size:16.5px; padding:13px 14px; border:1px solid #ccc; border-radius:6px; font-family:inherit; background:#fff; }
  .frow textarea { min-height:170px; line-height:1.8; }
  .agree { display:flex; align-items:flex-start; font-size:15px; line-height:1.8; color:#333; }
  .agree input { margin:5px 10px 0 0; transform:scale(1.2); }
  .formnote { font-size:13.5px; color:#999; margin-top:18px; line-height:1.9; }
  .alt-contact { display:flex; flex-wrap:wrap; gap:20px; margin-top:8px; }
  .alt-box { flex:1; min-width:260px; background:#f6f6f6; border-radius:10px; padding:28px; }
  .alt-box .t { font-size:13px; letter-spacing:.3em; color:#8a8a8a; margin-bottom:10px; }
  .alt-box .v { font-size:24px; font-weight:700; letter-spacing:.03em; }
  .alt-box p { font-size:14.5px; color:#555; line-height:1.9; margin-top:8px; }

  .policy h3 { font-size:20px; font-weight:700; margin:38px 0 10px 0; }
  .policy p, .policy li { font-size:16px; line-height:2.0; color:#333; }
  .policy ul { margin-left:22px; }

  .footer { margin-top:110px; border-top:1px solid #e8e8e8; padding:52px 0 60px 0; }
  .footer .row { display:flex; justify-content:space-between; align-items:flex-end; }
  .footer .addr { font-size:14.5px; color:#777; line-height:1.9; text-align:right; }
  .footnav { margin-top:34px; padding-top:22px; border-top:1px solid #f0f0f0; display:flex; flex-wrap:wrap; gap:8px 28px; font-size:14px; color:#555; }
  .copy { font-size:13px; color:#999; margin-left:auto; }

  @media (max-width: 700px) {
    .wrap { padding:0 20px; }
    .nav a { display:none; }
    .nav a.cta { display:block; margin-left:0; white-space:nowrap; padding:8px 16px; font-size:14px; }
    .topbar .lockup .full { height:30px; }
    .lockup .full { height:38px; }
    .hero { padding-top:52px; }
    .hero .lockup .full { height:38px; }
    .pagehead { padding-top:44px; }
    .pagehead h1 { font-size:34px; }
    .buttons { flex-direction:column; align-items:center; }
    .btn { margin:6px 0; }
    td.k { width:96px; }
    .band .jp { height:40px; }
    .band .en { height:64px; margin-top:28px; }
    h1 { font-size:42px; }
    .lead { font-size:16.5px; }
    .heroimg { height:260px; }
    h2 { font-size:30px; }
    .card { width:100%; }
    .card img { height:210px; }
    .detail { display:block; }
    .detail .head, .detail .body { width:100%; }
    .detail .head { margin-bottom:14px; }
    .band .inner { display:block; }
    .contact { padding:36px 22px; }
    .footer .row { display:block; }
    .footer .addr { text-align:left; margin-top:20px; }
    .copy { margin-left:0; width:100%; margin-top:10px; }
  }
