html, body { width:100%; min-width:0!important; margin:0; padding:0; }
body { background:#f8f4f1; color:#442832; font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; }
.content { box-sizing:border-box; width:calc(100% - 32px)!important; max-width:680px!important; min-width:0!important; margin:36px auto!important; padding:0 42px 42px!important; overflow:hidden; background:#fff; border:1px solid #efdce4; border-radius:22px; box-shadow:0 12px 38px rgba(88,43,59,.09); }
.unified-hero { margin:0 -42px 30px; padding:42px 42px 34px; text-align:center; background:linear-gradient(145deg,#fff8fa 0%,#fff 55%,#fff1f6 100%); border-bottom:1px solid #f2dde5; }
.unified-eyebrow { display:inline-block; margin:0 0 12px; color:#b93b70; font-size:14px; font-weight:700; letter-spacing:.12em; }
.unified-hero h1 { margin:0; color:#59283b; font-size:34px; line-height:1.35; letter-spacing:.04em; }
.unified-lead { margin:15px 0 20px; color:#6e5961; font-size:16px; line-height:1.8; }
.unified-benefits { display:flex; justify-content:center; gap:10px; margin:0; }
.unified-benefits span { display:inline-flex; align-items:center; min-height:32px; padding:5px 13px; color:#9a315e; background:#fff; border:1px solid #efb8ce; border-radius:999px; font-size:13px; font-weight:700; }
.unified-benefits span::before { content:"✓"; margin-right:5px; color:#dd3e7f; }
.unified-note { margin:17px 0 0; color:#806d74; font-size:13px; }
.sp-only { display:none; }
.header.box, .form.box { box-sizing:border-box; width:100%!important; min-width:0!important; margin:0!important; }
.form.box form, .form.box dl { width:100%!important; margin:0!important; }
.form.box dt, .form.box dd { float:none!important; box-sizing:border-box; width:100%!important; min-width:0!important; margin:0!important; text-align:left!important; }
.form.box dt { padding:17px 0 8px!important; color:#4e303c; font-size:15px; font-weight:700; }
.form.box dt:first-child { padding-top:0!important; }
.form.box dd { position:relative; padding:0 0 5px!important; color:#5c4850; }
.form.box input.text, .form.box select { box-sizing:border-box; width:100%!important; max-width:100%; min-height:52px; padding:11px 14px; color:#34252b; background:#fff; border:1px solid #ccb8c0; border-radius:10px; outline:none; font-size:16px; transition:border-color .2s,box-shadow .2s; }
.form.box input.text:focus, .form.box select:focus { border-color:#df4c88; box-shadow:0 0 0 4px rgba(223,76,136,.12); }
.form.box select.bday_select { width:180px!important; margin-right:5px; }
.glay.important { color:#d93673!important; font-weight:700; }
.privacy-ttl { margin:28px 0 9px!important; color:#4e303c; font-size:14px; font-weight:700; text-align:left!important; }
#privacy-text { box-sizing:border-box; width:100%!important; max-width:100%; height:132px!important; margin:0!important; overflow-y:auto; padding:14px 16px!important; color:#66575d; background:#fbfaf9; border:1px solid #e2d6da!important; border-radius:9px!important; font-size:12px!important; line-height:1.7!important; text-align:left!important; }
.form.box dl:last-of-type { display:none; }
.unified-submit-wrap { margin-top:27px; text-align:center; }
.unified-consent { margin:0 0 12px!important; color:#746269; font-size:12px; text-align:center!important; }
.unified-submit { display:inline-flex; align-items:center; justify-content:center; gap:18px; box-sizing:border-box; width:100%; min-height:62px; padding:14px 22px; color:#fff; background:linear-gradient(135deg,#ef5791,#d93673); border:0; border-radius:12px; box-shadow:0 7px 18px rgba(205,45,105,.24); cursor:pointer; font:inherit; font-size:17px; font-weight:700; letter-spacing:.03em; transition:transform .15s,box-shadow .15s; }
.unified-submit:hover { transform:translateY(-1px); box-shadow:0 9px 22px rgba(205,45,105,.3); }
.unified-submit b { font-size:23px; font-weight:400; }
.unified-security { margin:10px 0 0!important; color:#928188; font-size:11px; text-align:center!important; }
@media screen and (max-width:600px) {
  .content { width:calc(100% - 24px)!important; margin:12px auto!important; padding:0 18px 28px!important; border-radius:16px; }
  .unified-hero { margin:0 -18px 25px; padding:30px 19px 27px; }
  .unified-hero h1 { font-size:28px; }
  .unified-lead { font-size:15px; }
  .unified-benefits { flex-direction:column; align-items:stretch; gap:8px; }
  .unified-benefits span { justify-content:center; }
  .sp-only { display:initial; }
  .form.box select.bday_select { width:calc(100% - 24px)!important; }
  .unified-submit { min-height:60px; gap:12px; padding:13px 16px; font-size:16px; }
}

/* 2026-09-18: logo, readability and CTA alignment */
.unified-logo {
  display: block !important;
  width: 82px !important;
  height: 82px !important;
  max-width: 82px !important;
  margin: 0 auto 16px !important;
  object-fit: contain;
}

.unified-hero h1 {
  display: block !important;
  visibility: visible !important;
  margin: 0 !important;
  color: #59283b !important;
  font-size: 38px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
}

.unified-eyebrow {
  font-size: 16px !important;
  font-weight: 800 !important;
}

.unified-lead {
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.9 !important;
}

.unified-benefits span {
  font-size: 15px !important;
  font-weight: 800 !important;
}

.unified-note {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.7 !important;
}

.form.box dt,
.privacy-ttl {
  font-size: 17px !important;
  font-weight: 800 !important;
}

.form.box input.text,
.form.box select {
  font-size: 18px !important;
  font-weight: 600 !important;
}

#privacy-text {
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
}

.unified-consent {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.7 !important;
}

.unified-submit-wrap {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 28px 0 0 !important;
  padding: 0 !important;
  text-align: center !important;
  transform: none !important;
}

.unified-submit {
  display: flex !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 15px 18px !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  text-align: center !important;
}

.unified-security {
  font-size: 13px !important;
  font-weight: 500 !important;
}

@media screen and (max-width: 600px) {
  .unified-logo {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    margin-bottom: 14px !important;
  }

  .unified-hero h1 {
    font-size: 30px !important;
  }

  .unified-lead {
    font-size: 17px !important;
  }

  .unified-benefits span {
    font-size: 16px !important;
  }

  .form.box dt,
  .privacy-ttl {
    font-size: 18px !important;
  }

  .unified-submit {
    min-height: 66px !important;
    font-size: 17px !important;
  }
}

/* 2026-09-18: final logo and form-response fixes */
.unified-logo {
  display: block !important;
  width: 120px !important;
  height: auto !important;
  max-width: 120px !important;
  margin: 0 auto 18px !important;
  object-fit: contain !important;
}

.unified-submit {
  justify-content: center !important;
  min-height: 70px !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}

.unified-submit span {
  font-size: inherit !important;
  font-weight: inherit !important;
}

@media screen and (max-width: 600px) {
  .unified-logo {
    width: 105px !important;
    max-width: 105px !important;
    margin-bottom: 16px !important;
  }

  .unified-submit {
    min-height: 70px !important;
    padding: 15px 12px !important;
    font-size: 19px !important;
  }
}

/* 2026-09-18: senior-friendly readability */
.unified-hero h1 {
  font-size: 42px !important;
  font-weight: 800 !important;
}

.unified-lead {
  font-size: 20px !important;
  font-weight: 700 !important;
}

.unified-benefits span {
  font-size: 17px !important;
}

.unified-note {
  font-size: 17px !important;
  font-weight: 600 !important;
}

.form.box dt,
.privacy-ttl {
  font-size: 18px !important;
}

#privacy-text {
  font-size: 15px !important;
}

.unified-consent {
  font-size: 15px !important;
}

@media screen and (max-width: 600px) {
  .unified-hero h1 {
    font-size: 32px !important;
  }

  .unified-lead {
    font-size: 18px !important;
  }

  .unified-benefits span {
    font-size: 17px !important;
  }

  .unified-note {
    font-size: 16px !important;
  }

  .form.box dt,
  .privacy-ttl {
    font-size: 18px !important;
  }

  #privacy-text {
    font-size: 15px !important;
  }

  .unified-consent {
    font-size: 15px !important;
  }
}

/* 2026-09-18: form label readability */
.form.box dt label {
  color: #4e303c !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

@media screen and (max-width: 600px) {
  .form.box dt label {
    font-size: 19px !important;
  }
}

/* 2026-09-18: unified confirmation screen */
.confirm-content {
  max-width: 680px !important;
}

.confirm-hero {
  margin-bottom: 0 !important;
}

.confirm-box {
  padding-top: 32px;
}

.confirm-list {
  margin: 0 !important;
  padding: 0;
}

.confirm-list dt,
.confirm-list dd {
  box-sizing: border-box;
  width: 100% !important;
  margin: 0 !important;
  text-align: left !important;
}

.confirm-list dt {
  padding: 18px 0 8px;
  color: #4e303c;
  font-size: 20px;
  font-weight: 800;
}

.confirm-list dt:first-child {
  padding-top: 0;
}

.confirm-list dd {
  min-height: 58px;
  padding: 15px 17px;
  color: #3f3036;
  background: #fffafa;
  border: 1px solid #d8c2cb;
  border-radius: 10px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.confirm-actions {
  margin-top: 32px;
  text-align: center;
}

.confirm-back {
  display: inline-block;
  margin-top: 22px;
  color: #8a5268;
  font-size: 16px;
  font-weight: 700;
  text-decoration: underline;
}

.confirm-back:hover {
  color: #d93673;
}

.confirm-box .unified-security {
  margin-top: 18px !important;
}

@media screen and (max-width: 600px) {
  .confirm-box {
    padding-top: 25px;
  }

  .confirm-list dt {
    font-size: 19px;
  }

  .confirm-list dd {
    min-height: 56px;
    padding: 14px;
    font-size: 18px;
  }

  .confirm-back {
    font-size: 16px;
  }
}

/* 2026-09-18: unified error screen */
.error-content {
  max-width: 680px !important;
}

.error-hero {
  margin-bottom: 0 !important;
}

.error-box {
  padding-top: 32px;
  text-align: center;
}

.error-message {
  box-sizing: border-box;
  width: 100%;
  padding: 20px 22px;
  color: #8f274f;
  background: #fff4f7;
  border: 1px solid #efb2c9;
  border-radius: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
  text-align: left;
}

.error-back {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 64px;
  margin-top: 25px;
  padding: 14px 20px;
  color: #fff;
  background: linear-gradient(135deg, #ef5791, #d93673);
  border-radius: 12px;
  box-shadow: 0 7px 18px rgba(205, 45, 105, .24);
  font-size: 19px;
  font-weight: 800;
  text-decoration: none;
}

.error-back:hover {
  color: #fff;
  transform: translateY(-1px);
}

.error-box .unified-security {
  margin-top: 16px !important;
}

@media screen and (max-width: 600px) {
  .error-box {
    padding-top: 25px;
  }

  .error-message {
    padding: 17px;
    font-size: 17px;
  }

  .error-back {
    min-height: 62px;
    padding: 13px 15px;
    font-size: 17px;
  }
}
