/* Shared visual language for the sub-funnel's information and confirmation pages. */
body.sub-model{margin:0;background:#f7f9fc;color:#12314f;font:16px/1.8 "Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif}
.sub-model *{box-sizing:border-box}
.sub-model .header{max-width:none;margin:0;padding:14px max(20px,calc((100vw - 1080px)/2));background:#fff;border-bottom:1px solid #e2e8f0}
.sub-model .brand{display:inline-flex;align-items:center;gap:9px;color:#12314f;text-decoration:none;font-size:16px;font-weight:900;line-height:1.2}
.sub-model .brand img{width:40px;height:40px;object-fit:contain}
.sub-model .brand>span>span{display:block;color:#da3e3e}
.sub-model .wrap.policy{width:min(100% - 32px,920px);max-width:920px;margin:30px auto 72px;padding:0}
.sub-model .section-heading{margin:0 0 22px;padding:34px clamp(22px,5vw,50px);border-radius:24px;background:#12314f;color:#fff;position:relative;overflow:hidden}
.sub-model .section-heading::after{content:"";position:absolute;right:-38px;bottom:-94px;width:220px;height:220px;border:26px solid rgba(255,255,255,.065);border-radius:50%}
.sub-model .section-heading p,.sub-model .eyebrow{margin:0 0 10px;color:#f2acac;font-size:12px;font-weight:900;letter-spacing:.19em}
.sub-model .section-heading h1{margin:0;color:#fff;font-size:clamp(26px,5.2vw,46px);font-weight:900;line-height:1.32;letter-spacing:-.045em}
.sub-model .section-heading .policy-title{white-space:nowrap;overflow-wrap:normal}
.sub-model .policy-heading-line{display:inline}
.sub-model .policy-heading-line+.policy-heading-line::before{content:"";display:block}
.sub-model .policy-list{display:grid;gap:12px}
.sub-model .policy-item{margin:0;padding:23px clamp(20px,4vw,34px);border:1px solid #dce5ee;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(18,49,79,.04)}
.sub-model .policy-item h2{margin:0 0 9px;padding-left:14px;border-left:4px solid #da3e3e;color:#12314f;font-size:clamp(17px,2.6vw,21px);line-height:1.45}
.sub-model .policy-item p{margin:0;color:#415165;font-size:15px;line-height:1.9;overflow-wrap:anywhere}
.sub-model .policy-item a{color:#155ab4;text-underline-offset:.2em}
.sub-model .policy-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.sub-model .policy-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border-radius:999px;background:#12314f;color:#fff;font-size:14px;font-weight:800;text-decoration:none}
.sub-model .policy-nav a:last-child{background:#fff;border:1px solid #12314f;color:#12314f}
.sub-model .thanks-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,32%);align-items:end;gap:12px;min-height:290px;margin-bottom:18px;padding:clamp(26px,5vw,50px);border-radius:24px;background:#12314f;overflow:hidden}
.sub-model .thanks-hero::before{content:"";position:absolute;inset:auto -40px -70px auto;width:340px;height:340px;border-radius:50%;background:#244967}
.sub-model .thanks-hero__copy{position:relative;z-index:1;align-self:center}
.sub-model .thanks-hero h1{margin:0 0 18px;color:#fff;font-size:clamp(29px,5vw,47px);line-height:1.35;letter-spacing:-.04em}
.sub-model .thanks-hero h1 span{display:block}
.sub-model .thanks-hero h1 span:first-child{color:#fff}
.sub-model .thanks-hero__lead{margin:0;color:#e8f0f7;font-size:clamp(15px,2vw,18px);line-height:1.75}
.sub-model .thanks-hero__photo{position:relative;z-index:1;display:block;max-height:300px;width:100%;object-fit:contain;object-position:bottom}
.sub-model .thanks-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sub-model .thanks-grid .policy-item{padding:26px}
.sub-model .thanks-grid .policy-item h2{font-size:20px}
.sub-model .thanks-grid .policy-item p{font-size:15px}
.sub-model .thanks-list{margin:0;padding-left:1.3em;color:#415165;font-size:15px;line-height:1.95}
@media(max-width:640px){
  body.sub-model{font-size:16px}
  .sub-model .header{padding:11px 16px}
  .sub-model .brand{font-size:14px}
  .sub-model .brand img{width:34px;height:34px}
  .sub-model .wrap.policy{width:min(100% - 24px,920px);margin:18px auto 44px}
  .sub-model .section-heading{padding:26px 22px;border-radius:20px}
  .sub-model .section-heading .policy-title--privacy{font-size:clamp(20px,6.5vw,28px)}
  .sub-model .section-heading .policy-title--legal{font-size:clamp(18px,5.7vw,24px)}
  .sub-model .policy-heading-line{display:block}
  .sub-model .policy-heading-line+.policy-heading-line::before{display:none}
  .sub-model .policy-item{padding:20px}
  .sub-model .policy-item p{font-size:14px}
  .sub-model .thanks-hero{min-height:0;grid-template-columns:minmax(0,1fr) 34%;padding:26px 20px 0}
  .sub-model .thanks-hero h1{font-size:clamp(24px,6vw,32px)}
  .sub-model .thanks-hero__lead{font-size:14px;padding-bottom:27px}
  .sub-model .thanks-hero__photo{max-height:220px;align-self:end}
  .sub-model .thanks-grid{grid-template-columns:1fr}
}
