:root{
  --ink:#0a2a43;
  --muted:#667785;
  --line:#d9e0e5;
  --link:#0a5c8a;
  --paper:#ffffff;
  --measure:760px;
  --wide:980px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:17px;
  line-height:1.9;
}
a{color:var(--link);text-underline-offset:3px}
img{max-width:100%;height:auto}
.text-header{border-bottom:1px solid var(--line);background:#fff}
.text-header-inner{width:min(var(--wide),calc(100% - 32px));margin:0 auto;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}
.text-logo img{display:block;width:210px;height:auto}
.text-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.88rem}
.text-nav a{color:var(--ink);text-decoration:none}
.text-nav a:hover{text-decoration:underline}
.text-wrap{width:min(var(--measure),calc(100% - 32px));margin:0 auto}
.text-wide{width:min(var(--wide),calc(100% - 32px));margin:0 auto}
main{padding:72px 0 96px}
section{padding:0 0 56px;margin:0 0 56px;border-bottom:1px solid var(--line)}
section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
h1,h2,h3{color:var(--ink);letter-spacing:-.025em}
h1{margin:0 0 28px;font-size:clamp(2.4rem,6vw,4.8rem);line-height:1.08}
h2{margin:0 0 22px;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.28}
h3{margin:34px 0 10px;font-size:1.1rem}
p{margin:0 0 18px}
.lead{font-size:1.08rem;line-height:2}
.small{color:var(--muted);font-size:.92rem}
.kicker{margin-bottom:10px;color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.04em}
.cta{display:inline-block;margin-top:8px;color:var(--ink);font-weight:800;text-decoration:none;border-bottom:2px solid var(--ink)}
.cta:hover{opacity:.7}
.plain-list{margin:0;padding-left:1.2rem}
.plain-list li{margin:.35rem 0}
.quote-list{margin:0;padding:0;list-style:none}
.quote-list li{margin:0 0 8px;font-size:1.05rem;font-weight:700}
.bio-lines{margin:0;padding:0;list-style:none}
.bio-lines li{margin:0 0 16px}
.fact-line{font-weight:700}
.price{font-size:2rem;font-weight:900;letter-spacing:-.04em}
.work-item{padding:22px 0;border-top:1px solid var(--line)}
.work-item:first-of-type{border-top:0;padding-top:0}
.work-item h3{margin:0 0 8px;font-size:1.15rem}
.work-item p{margin:0}
.text-photo{margin:28px 0}
.text-photo img{display:block;width:100%;max-width:680px}
.text-photo figcaption{margin-top:8px;color:var(--muted);font-size:.85rem}
.inline-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
.inline-links a{font-weight:700}
.youtube-lite{
  position:relative;
  width:100%;
  margin:24px 0 14px;
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--ink);
}
.youtube-lite-button{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  background:var(--ink);
  color:#fff;
  text-decoration:none;
}
.youtube-lite-button img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.youtube-lite-button::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(10,42,67,.12);
  transition:background .2s ease;
}
.youtube-lite-button:hover::after{background:rgba(10,42,67,.24)}
.youtube-play{
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:76px;
  height:54px;
  background:rgba(10,42,67,.92);
  color:#fff;
  font-size:1.35rem;
  line-height:1;
}
.youtube-iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.text-footer{border-top:1px solid var(--line);padding:24px 0 40px;color:var(--muted);font-size:.85rem}
.text-footer-inner{width:min(var(--wide),calc(100% - 32px));margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.text-footer nav{display:flex;gap:14px;flex-wrap:wrap}
.text-footer a{color:var(--muted)}
.compat-anchor{display:block;position:relative;top:-72px;visibility:hidden}
@media(max-width:700px){
  body{font-size:16px}
  .text-header-inner{align-items:flex-start;flex-direction:column;gap:10px}
  .text-logo img{width:185px}
  .text-nav{gap:10px 14px;font-size:.82rem}
  main{padding:50px 0 72px}
  section{padding-bottom:42px;margin-bottom:42px}
  h1{font-size:2.65rem}
  .price{font-size:1.75rem}
}

.plain-form{margin-top:28px}
.form-field{margin:0 0 24px}
.form-field label,.plain-form legend{display:block;margin-bottom:7px;font-weight:700}
.form-field input,.form-field textarea{
  width:100%;padding:11px 12px;border:1px solid #bfcbd3;border-radius:0;background:#fff;color:var(--ink);
  font:inherit;line-height:1.5
}
.form-field textarea{min-height:150px;resize:vertical}
.plain-form fieldset{margin:0 0 24px;padding:0;border:0}
.radio-line{display:block;margin:8px 0;font-weight:400}
.radio-line input{margin-right:8px}
.form-submit{padding:0;border:0;border-bottom:2px solid var(--ink);background:none;color:var(--ink);font:inherit;font-weight:800;cursor:pointer}
.form-submit:hover{opacity:.7}
.form-note{margin-top:14px;color:var(--muted);font-size:.85rem}
.form-consent{
  margin:4px 0 20px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:#f7f9fa;
}
.form-consent label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  cursor:pointer;
}
.form-consent input{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:4px 0 0;
}
.form-consent span{display:block;min-width:0}
.form-consent strong{display:block;color:var(--ink);font-size:.95rem;line-height:1.5}
.form-consent small{display:block;margin-top:3px;color:var(--muted);font-size:.8rem;line-height:1.6}

/* Contact web submit states */
.form-honeypot{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
}
.form-submit:disabled{
  opacity:.55;
  cursor:wait;
}
.form-status{
  margin-top:18px;
  padding:18px 20px;
  border-left:3px solid var(--ink);
  background:#f5f8fa;
  color:var(--ink);
}
.form-status strong{font-size:1.05rem}
.form-status[data-kind="success"]{
  border-left-color:#257a52;
  background:#f2f8f4;
}
.form-status[data-kind="error"]{
  border-left-color:#9b4d3a;
  background:#fff6f3;
}
.form-status[hidden]{display:none}

