html,body{margin:0;background:#fff}

.ctB{
  --acc:#635bff; --ink:#0a2540; --body:#374151; --sub:#4b5563; --line:#e6e9ee;
  font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  display:grid;grid-template-columns:1fr 1fr;background:#fff;
}
.ctB__map{
  position:relative;min-height:clamp(320px,42vw,540px);
  background:
    linear-gradient(0deg, rgba(255,255,255,.55) 0 100%),
    repeating-linear-gradient(0deg,#e6ebf0 0 1px,transparent 1px 42px),
    repeating-linear-gradient(90deg,#e6ebf0 0 1px,transparent 1px 42px),
    #f2f5f8;
}
.ctB__map::before{
  content:"";position:absolute;left:-10%;top:38%;width:130%;height:26px;background:#dde4ea;transform:rotate(-8deg);
}
.ctB__pin{
  position:absolute;left:46%;top:44%;width:18px;height:18px;border-radius:50% 50% 50% 0;background:#c0392b;
  transform:rotate(-45deg);box-shadow:0 6px 14px rgba(192,57,43,.5);
}
.ctB__pin::after{content:"";position:absolute;inset:5px;background:#fff;border-radius:50%}
.ctB__card{
  position:absolute;left:24px;bottom:24px;background:#fff;border-radius:10px;padding:18px 20px;max-width:260px;
  box-shadow:0 0 0 1px var(--line),0 14px 30px -16px rgba(10,37,64,.5);
}
.ctB__card b{font-size:14px;font-weight:800;color:var(--ink)}
.ctB__card p{margin:8px 0 0;font-size:12px;line-height:1.8;color:var(--body)}
.ctB__card a{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:var(--acc);text-decoration:none}
.ctB__form{padding:clamp(36px,5vw,64px) clamp(24px,4vw,56px);display:grid;align-content:center}
.ctB__form h2{margin:0;font-size:clamp(20px,2.7vw,28px);font-weight:800;color:var(--ink);letter-spacing:-.01em}
.ctB__lead{margin:12px 0 26px;font-size:13.5px;color:var(--body)}
.ctB__form form{display:grid;gap:16px}
.ctB__form label{display:grid;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink)}
.ctB__two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ctB__form input,.ctB__form textarea{
  font:inherit;font-size:14px;color:var(--ink);background:#f6f9fc;border:0;border-radius:8px;padding:12px 14px;
  outline:none;box-shadow:inset 0 0 0 1px var(--line);width:100%;
}
.ctB__form textarea{resize:vertical;line-height:1.8}
.ctB__form input:focus,.ctB__form textarea:focus{background:#fff;box-shadow:inset 0 0 0 1px var(--acc),0 0 0 3px rgba(99,91,255,.16)}
.ctB__form button{
  border:0;border-radius:8px;height:52px;background:#0e7c5a;color:#fff;font:inherit;font-size:15px;font-weight:800;
  cursor:pointer;box-shadow:0 4px 14px -4px rgba(14,124,90,.5);
}
.ctB__note{margin:0;font-size:11px;line-height:1.8;color:var(--sub)}
@media (max-width:800px){ .ctB{grid-template-columns:1fr} .ctB__two{grid-template-columns:1fr} }

/* スマホで横にはみ出していた（幅100%＋内側の余白）。中の要素を枠の内側で測る（2026-10-05 パーツギャラリーに出すときに直した） */
.ctB, .ctB *, .ctB *::before, .ctB *::after{box-sizing:border-box}
/* 地図の斜めの道（幅130%）が枠の外へ出て、スマホで横にはみ出していた。地図の枠で切る（2026-10-05） */
.ctB__map{overflow:hidden}
