:root{
  --ff-sans-jp: "Noto Sans JP",
    "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Meiryo",
    system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
html{ font-family: var(--ff-sans-jp); }
body{ line-height: 1.7; letter-spacing: .01em; font-weight: 500; }
h1,h2,h3{ font-weight: 700; }


/* ========== Theme Colors (Star Emperor Group) ========== */
:root{
  --primary:#243263;        /* ネイビー */
  --primary-dk:#2f417d;     /* 濃いネイビー */
  --accent:#d4af37;         /* ゴールド */
  --accent-weak:#e6c75a;    /* 明るめゴールド */
  --border:#bbbcbc;         /* 既存の薄グレー */
  --text:#333;
  --muted:#bbbcbc;
  --bg:#ffffff;
  --error:#021d6e;          /* 既存の藍色系をエラー色に流用 */
}

/* ========== Layout ========== */
.m_size,
main{
  width:100%;
  max-width:480px;
  margin:0 auto;
}

main{ padding:50px 1.75em 0; }

/* ========== Links ========== */
a{
  text-decoration:none;
  color:var(--accent);
}
a:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}

/* ========== Footer ========== */
footer{
  padding: 1.2rem 0 calc(44px + 3rem);
    text-align: center;
    max-width: 150px;
    margin: 0 auto;
}
footer{ padding-bottom:2em !important; }

.copyRight{
  font-size:.85em;
  color:var(--muted);
  font-weight:bold;
  padding:1.75em 0;
}
.copyRight em{
  font-size:1.6em;
  vertical-align:middle;
  display:inline-block;
  line-height:1;
}

/* ========== Flex Utils ========== */
.flex,
.flexB,
.flexC,
.flexW{ display:flex; }
.flexB{ justify-content:space-between; }
.flexC{ justify-content:center; align-items:center; }
.flexW{ flex-wrap:wrap; }

/* ========== Icons & Small Utils ========== */
.icon{ width:100%; height:100%; }
.caps{
  font-size:.9rem;
  letter-spacing:.1rem;
  line-height:1.6;
  display:inline-block;
  padding-top:1rem;
}

/* ========== Fade-in Utility ========== */
.dlt_1{
  transition:all .6s ease-out;
  transform:translateY(30%);
  opacity:0;
}
.dlt_1.started{
  transform:none;
  opacity:1;
}

/* ========== Form Element Resets ========== */
input, textarea{ margin:0; padding:0; }
button, input, select, textarea{ font:inherit; }
button, input, select{ overflow:visible; -webkit-appearance:none; }
button, input, select, textarea{ margin:0; }
button, select{ text-transform:none; }

/* remove native arrow on IE */
select::-ms-expand{ display:none; }
/* Firefox */
select{ -moz-appearance:none; }

/* Cursors */
button, [type="button"], [type="reset"], [type="submit"]{ cursor:pointer; }
[disabled]{ cursor:default; }

/* Fix vendor typos (inner) */
button::-moz-focus-inner,
input::-moz-focus-inner{ border:0; padding:0; }
button:-moz-focusring,
input:-moz-focusring{ outline:1px dotted ButtonText; }

/* Fieldset/legend defaults */
fieldset{
  border:1px solid silver;
  margin:0 2px;
  padding:.35em .625em .75em;
}
legend{
  box-sizing:border-box;
  color:inherit;
  display:table;
  max-width:100%;
  padding:0;
  white-space:normal;
}

/* Spin buttons fix */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button{ height:auto; }

/* Search reset */
[type="search"]{ -webkit-appearance:textfield; }
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration{ -webkit-appearance:none; }

/* Buttons (inputs) */
button,
input[type="submit"],
input[type="button"],
input[type="reset"]{
  border-radius:0;
  border:none;
  box-sizing:border-box;
  background:transparent;
  color:inherit;
  width:100%;
  letter-spacing:.08rem;
  font-size:1.4rem;
}

/* ========== Header Back Button ========== */
header .page_back{
  display:flex;
  justify-content:center;
  align-items:center;
  width:60px; height:60px;
  position:absolute; top: 16px;; left:0;
}
header .icon{
  fill:var(--text);
  width:24px; height:24px;
  transform:rotate(90deg);
  box-sizing:border-box;
}
header input{
  position:absolute; z-index:10;
  width:100%; height:100%;
  opacity:0;
}

/* ========== Step Indicator ========== */
.formStep{
  font-size:.8rem;
  margin:0 auto 2.2rem;
  line-height:1.2;
  text-align:center;
}
.formStep li{
  position:relative;
  color:var(--text);
  margin:0 1em;
  padding-top:.6em;
}
.formStep li:not(:first-child){ border-left:none; }
.formStep li:nth-child(2){ margin:0 3.2em; }

.formStep li span{
  display:block;
  font-weight:bold;
  font-size:10px;
  letter-spacing:0;
  margin-bottom:.2em;
}
.formStep li span b{
  font-size:13px;
  padding-left:.2em;
  font-weight:bold;
}

.formStep li:not(:last-child)::before{
  content:"";
  position:absolute;
  background:var(--text);
  width:2.2em; height:1px;
  right:-3.2em; top:50%;
}

/* Active states */
.step1 li:first-child,
.step2 li:nth-child(2),
.step3 li:last-child{
  color:#000;
  border-top:3px solid var(--accent);
}
.step1 li:first-child span,
.step2 li:nth-child(2) span,
.step3 li:last-child span{
  color:var(--accent);
}

/* Arrow colors (kept logic; just color-tuned) */
.formStep.step1 li:nth-child(2)::after,
.formStep.step2 li:last-child::after{ border-left:14px solid #999; }
.formStep.step1 li:last-child::after,
.formStep.step2 li:nth-child(2)::after,
.formStep.step3 li:nth-child(2)::after,
.formStep.step3 li:last-child::after{ border-left:14px solid #f0f0f0; }

/* ========== Form Controls ========== */
.form-control,
select{
  display:block;
  box-sizing:border-box;
  border:1px solid var(--border);
  border-radius:.2em;
  width:100%;
  line-height:1.4;
  background:var(--bg);
  padding:.8em .6em;
}

.required{
  display:inline-block;
  color:var(--primary);
  border:1px solid currentColor;
  border-radius:.2em;
  padding:.3em;
  margin-right:.6em;
  font-size:11px;
  line-height:1;
  font-weight:bold;
}

textarea{ overflow:auto; height:10em; resize:vertical; }

select:invalid,
::placeholder{ color:rgba(51,51,51,0.3); }

/* Error */
.form-control.error-input{
  background:#ffefef;
  border:1px solid var(--error);
}
.error{
  font-size:.9em;
  color:var(--error);
  margin-top:.2em;
}

/* ========== Form Layout ========== */
form{ margin:1em auto; }
form .required{ margin-left:.6em; }

form dl{ margin-bottom:2rem; }
form dl dt{
  padding:1.75em 0 .6em;
  border-top:1px solid var(--border);
  line-height:1.4;
  letter-spacing:.04rem;
  clear:both;
}
form dl dd{ padding:0 0 1.75em; }
form dl dd:last-child{ padding-bottom:0; }

.selbtn{ position:relative; max-width:16em; }
.selbtn.selage{ width:7em; }
.selbtn .icon{
  width:.8em; height:.8em;
  position:absolute; right:.6em; top:calc(50% - .4em);
  pointer-events:none; color:var(--text);
}

/* ========== Titles / Texts ========== */
.ttl_form{
  text-align:center;
  padding:3em 0 2.4em;
}
.ttl_form b{
  color:var(--accent);
  display:block;
  font-size:2rem;
  font-weight:bold;
  letter-spacing:0.15em;
}

.innner{ /* note: クラス名そのまま */
  padding:0 .75em;
  text-align:center;
}
strong{
  display:block;
  font-size:1.8rem;
  font-weight:bold;
  padding:1.75em 0;
}
.fin{ font-size:1.3rem; }

.error_messe{
  padding:2rem 0;
  color:var(--error);
  font-weight:bold;
}

/* ========== Primary Buttons ========== */
.entry_btn{
  position:relative;
  display:block;
  margin:2rem auto;
  text-align:center;
  color:var(--primary);
  font-weight:bold;
  padding:1em 0;
  max-width:240px;
  background:var(--accent);
  border-radius:4rem;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.entry_btn:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(0,0,0,.18);
  background:var(--accent-weak);
}

/* ========== Generic Button Wrapper ========== */
.btn1{
  text-align:center;
  position:relative;
  width:10rem;
  color:var(--accent);
}
.btn1 input{
  border:1px solid var(--accent);
  border-radius:.2rem;
  padding:.4rem 0 .4rem 1rem;
  font-weight:bold;
}
.btn1 .icon{
  position:absolute;
  left:.5rem;
  width:1rem; height:1rem;
  transform:rotate(90deg);
  top:calc(50% - .5rem);
  pointer-events:none;
  fill:var(--accent);
}

/* Submit variation */
.btn1.btn_submit .icon{
  fill:#fff;
  left:auto; right:.5rem;
  transform:rotate(-90deg);
}
.btn1.btn_submit input{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  padding:.4rem 1rem .4rem 0;
}

/* Back button */
.btn-back{
  color:var(--accent);
  border:1px solid currentColor;
  border-radius:2em;
  padding:.6rem 0;
  display:block;
  margin:3em auto;
  font-size:1.6rem;
  max-width:200px;
}

/* ========== Error Container & Table ========== */
.cont-error{ padding-top:2.4rem; }
.cont-error .btn1{ margin:0 auto; }

.formTable{
  text-align:left;
  letter-spacing:.08rem;
  line-height:1.5;
  margin-top:1.2rem;
  border-top:1px solid var(--accent);
  border-bottom:1px solid var(--accent);
  font-size:1.6rem;
}
.formTable th{
  width:8rem;
  font-weight:normal;
}
.formTable td{ padding-left:1.6rem; }
.formTable tr:not(:last-child) th,
.formTable tr:not(:last-child) td{ padding-bottom:.6rem; }
.formTable tr:first-child th,
.formTable tr:first-child td{ padding-top:1.4rem; }
.formTable tr:last-child th,
.formTable tr:last-child td{ padding-bottom:1.4rem; }

/* ========== Spacing Blocks ========== */
.box-btn-form{ padding:2rem 0 1rem; }


.logo-h {
    max-width: 300px;
    padding-top: 2em;
    margin: 0 auto;
}

