@charset "utf-8";

/* ----------------------------------------------------------
    リセット / 新要素設定
------------------------------------------------------------- */
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, p, blockquote, pre, code, form, fieldset, legend, table, th, td, caption, a, article, aside, nav, section, figure, figcaption, footer, header, main, audio, canvas, video, menu, details {
    margin: 0;
    padding: 0;
    background: transparent;
    font-size: 100%;
    vertical-align: baseline;
}
fieldset, legend, img { border: 0; }
article, aside, nav, section, figure, figcaption, footer, header, main, menu, details { display: block; }
video, audio, canvas { display: inline-block; }
audio:not([controls]) { display: none; }
[hidden] { display: none; }

/* ----------------------------------------------------------
    ベース（Topページと同じトークン）
    見出し：Shippori Mincho（明朝） / 本文：サンセリフ
    文字色：#171717（本文） #6B6560（補助） ブランド：#B64057
    背景：#FBF8F2
------------------------------------------------------------- */
html {
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
}
body {
    background: #16233F;
    color: #171717;
    font: 15px/1.8 -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    letter-spacing: .02em;
    word-wrap: break-word;
}

/* ----------------------------------------------------------
    要素
------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
    font-family: &#039;Shippori Mincho&#039;, &#039;Hiragino Mincho ProN&#039;, &#039;Yu Mincho&#039;, &#039;YuMincho&#039;, &#039;Noto Serif JP&#039;, serif;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: #171717;
}
p { margin: 0 0 1em; color: #171717; }
ul, ol { list-style: none; }
dt { font-weight: bold; }
hr {
    display: block;
    height: 1px;
    margin: 1em 0;
    border: 0;
    border-top: 1px solid rgba(23,23,23,0.12);
}
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: none; }
pre { font-family: monospace, serif; white-space: pre-wrap; word-wrap: break-word; }
figure { margin: 0 0 1em; }

a { color: #B64057; }
a:link, a.visited { text-decoration: underline; }
a:hover, a.active { text-decoration: none; color: #9A3549; }
a:focus { outline: thin dotted; }
a:hover, a:active { outline: 0; }

img { vertical-align: middle; max-width: 100%; }

address, cite, em, dfn, i, var { font-style: normal; }
em { font-weight: bold; }
strong, b { font-weight: bold; }
code, samp, kbd { font-family: monospace, sans-serif; }
abbr { border: 0; font-variant: normal; }
abbr[title], dfn[title] { cursor: help; border-bottom: 1px dotted; }
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom; }
del { text-decoration: line-through; }
mark { background-color: rgba(182,64,87,0.15); color: #171717; font-style: normal; font-weight: bold; }

table { border-collapse: collapse; border-spacing: 0; }
th, td { font-weight: normal; text-align: left; }
th { font-weight: bold; }
caption { font-weight: normal; text-align: left; }

/* ----------------------------------------------------------
    フォーム系
------------------------------------------------------------- */
input, textarea, select {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
}
input, button { line-height: normal; vertical-align: middle; }

input[type=text],
input[type=password],
input[type=email],
input[type=tel],
textarea,
select {
    width: 100%;
    max-width: 600px;
    padding: 1.1em 1.2em;
    background: #FFFFFF;
    border: 1px solid rgba(23,23,23,0.18);
    box-shadow: none;
    font-size: 1.05rem;
    color: #171717;
    box-sizing: border-box;
    transition: border-color .2s ease;
}
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=tel]:focus,
textarea:focus,
select:focus { border-color: #B64057; outline: none; }

input[type=button] { cursor: pointer; }

.box__ttl input[type=button] { margin-right: 5px; height: 26px; line-height: 26px; }

input[type=submit] {
    padding: 0.95rem 2.2rem;
    cursor: pointer;
    background: #B64057;
    border: 1px solid #B64057;
    color: #FFFFFF;
    font-family: &#039;Space Grotesk&#039;, &#039;Inter&#039;, system-ui, sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    transition: background .2s ease, border-color .2s ease;
}
input[type=submit]:hover { background: #9A3549; border-color: #9A3549; }

input[type=checkbox], input[type=radio] { cursor: pointer; }

input[type=submit]:disabled,
input[type=button]:disabled,
input[type=checkbox]:disabled { cursor: default; opacity: .5; }

textarea { width: 100%; max-width: 600px; min-height: 220px; overflow: auto; vertical-align: top; }
select { padding: 0.6em; line-height: normal; background: #FFFFFF; }
label { cursor: pointer; color: #171717; }
legend { color: #171717; }

/* ----------------------------------------------------------
    汎用ユーティリティ（元ファイルのまま保持）
------------------------------------------------------------- */
.m0 { margin: 0 !important; } .m5 { margin: 5px !important; } .m10 { margin: 10px !important; }
.m15 { margin: 15px !important; } .m20 { margin: 20px !important; } .m25 { margin: 25px !important; }
.m30 { margin: 30px !important; } .m35 { margin: 35px !important; } .m40 { margin: 40px !important; }
.m44 { margin: 44px !important; }
.mt0 { margin-top: 0 !important; } .mt5 { margin-top: 5px !important; } .mt10 { margin-top: 10px !important; }
.mt15 { margin-top: 15px !important; } .mt20 { margin-top: 20px !important; } .mt25 { margin-top: 25px !important; }
.mt30 { margin-top: 30px !important; } .mt35 { margin-top: 35px !important; } .mt40 { margin-top: 40px !important; }
.mt45 { margin-top: 45px !important; } .mt50 { margin-top: 50px !important; }
.mb0 { margin-bottom: 0 !important; } .mb5 { margin-bottom: 5px !important; } .mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; } .mb20 { margin-bottom: 20px !important; } .mb25 { margin-bottom: 25px !important; }
.mb30 { margin-bottom: 30px !important; } .mb35 { margin-bottom: 35px !important; } .mb40 { margin-bottom: 40px !important; }
.mb45 { margin-bottom: 45px !important; } .mb50 { margin-bottom: 50px !important; }
.ml0 { margin-left: 0 !important; } .ml5 { margin-left: 5px !important; } .ml10 { margin-left: 10px !important; }
.ml15 { margin-left: 15px !important; } .ml20 { margin-left: 20px !important; } .ml25 { margin-left: 25px !important; }
.ml30 { margin-left: 30px !important; } .ml35 { margin-left: 35px !important; } .ml40 { margin-left: 40px !important; }
.ml45 { margin-left: 45px !important; } .ml50 { margin-left: 50px !important; }
.mr0 { margin-right: 0 !important; } .mr5 { margin-right: 5px !important; } .mr10 { margin-right: 10px !important; }
.mr15 { margin-right: 15px !important; } .mr20 { margin-right: 20px !important; } .mr25 { margin-right: 25px !important; }
.mr30 { margin-right: 30px !important; } .mr35 { margin-right: 35px !important; } .mr40 { margin-right: 40px !important; }
.mr45 { margin-right: 45px !important; } .mr50 { margin-right: 50px !important; }

.p0 { padding: 0 !important; } .p5 { padding: 5px !important; } .p10 { padding: 10px !important; }
.p15 { padding: 15px !important; } .p20 { padding: 20px !important; } .p25 { padding: 25px !important; }
.p30 { padding: 30px !important; } .p35 { padding: 35px !important; } .p40 { padding: 40px !important; }
.p45 { padding: 45px !important; } .p50 { padding: 50px !important; }
.pt0 { padding-top: 0 !important; } .pt5 { padding-top: 5px !important; } .pt10 { padding-top: 10px !important; }
.pt15 { padding-top: 15px !important; } .pt20 { padding-top: 20px !important; } .pt25 { padding-top: 25px !important; }
.pt30 { padding-top: 30px !important; } .pt35 { padding-top: 35px !important; } .pt40 { padding-top: 40px !important; }
.pt45 { padding-top: 45px !important; } .pt50 { padding-top: 50px !important; }
.pb0 { padding-bottom: 0 !important; } .pb5 { padding-bottom: 5px !important; } .pb10 { padding-bottom: 10px !important; }
.pb15 { padding-bottom: 15px !important; } .pb20 { padding-bottom: 20px !important; } .pb25 { padding-bottom: 25px !important; }
.pb30 { padding-bottom: 30px !important; } .pb35 { padding-bottom: 35px !important; } .pb40 { padding-bottom: 40px !important; }
.pb45 { padding-bottom: 45px !important; } .pb50 { padding-bottom: 50px !important; }
.pl0 { padding-left: 0 !important; } .pl5 { padding-left: 5px !important; } .pl10 { padding-left: 10px !important; }
.pl15 { padding-left: 15px !important; } .pl20 { padding-left: 20px !important; } .pl25 { padding-left: 25px !important; }
.pl30 { padding-left: 30px !important; } .pl35 { padding-left: 35px !important; } .pl40 { padding-left: 40px !important; }
.pl45 { padding-left: 45px !important; } .pl50 { padding-left: 50px !important; }
.pr0 { padding-right: 0 !important; } .pr5 { padding-right: 5px !important; } .pr10 { padding-right: 10px !important; }
.pr15 { padding-right: 15px !important; } .pr20 { padding-right: 20px !important; } .pr25 { padding-right: 25px !important; }
.pr30 { padding-right: 30px !important; } .pr35 { padding-right: 35px !important; } .pr40 { padding-right: 40px !important; }
.pr45 { padding-right: 45px !important; } .pr50 { padding-right: 50px !important; }

.w5per { width: 5% !important; } .w10per { width: 10% !important; } .w15per { width: 15% !important; }
.w20per { width: 20% !important; } .w25per { width: 25% !important; } .w30per { width: 30% !important; }
.w35per { width: 35% !important; } .w40per { width: 40% !important; } .w45per { width: 45% !important; }
.w50per { width: 50% !important; } .w55per { width: 55% !important; } .w60per { width: 60% !important; }
.w65per { width: 65% !important; } .w70per { width: 70% !important; } .w75per { width: 75% !important; }
.w80per { width: 80% !important; } .w85per { width: 85% !important; } .w90per { width: 90% !important; }
.w95per { width: 95% !important; } .w100per { width: 100% !important; }

.fl { float: left !important; } .fr { float: right !important; }
.tal { text-align: left !important; } .tar { text-align: right !important; } .tac { text-align: center !important; }
.breakAll { word-break: break-all !important; }
.dispN { display: none !important; } .dispI { display: inline !important; } .dispIB { display: inline-block !important; }
.dispB { display: block !important; } .dispF { display: flex !important; }
.fontNormal { font-weight: normal !important; } .fontBold { font-weight: bold !important; }
.font10 { font-size: 10px !important; } .font12 { font-size: 12px !important; } .font14 { font-size: 14px !important; }
.colorBlack { color: #171717; }

.clear, .cf { clear: both; }
.clearfix:before, .clearfix:after, .cf:before, .cf:after { content: " "; display: table; }
.clearfix:after, .cf:after { clear: both; }

.button_box { clear: both; padding: 1.5rem 0; text-align: center; }
.left_txt { text-align: left; }
#txt_explain p { color: #6B6560; font-size: 0.9rem; line-height: 1.9; margin-bottom: 2.2rem; }

/* ----------------------------------------------------------
    メインコンテンツ（Topページ風にカード・背景を再構成）
------------------------------------------------------------- */
#wrapper {
    width: 100%;
    max-width: 860px;
    margin: 3rem auto;
    box-shadow: 0 1px 24px rgba(23,23,23,0.08);
    background: #FFFFFF;
    border: 1px solid rgba(23,23,23,0.08);
    box-sizing: border-box;
}

@media (max-width: 760px) {
    #wrapper { margin: 0 auto; max-width: 100%; box-shadow: none; border-left: 0; border-right: 0; }
    #header { padding: 2rem 1.2rem 1.5rem; }
    #main { padding: 1.8rem 1.2rem; }
    .section__ttl { font-size: 0.95rem; padding: 0.7rem 0.9rem; }
    .table th, .table td { padding: 0.7rem; font-size: 0.8rem; display: block; width: 100% !important; border-right: 0; }
    .table th { border-bottom: 0; }
    input[type=text], input[type=password], input[type=email], input[type=tel], textarea, select { max-width: 100%; font-size: 1rem; }
    input[type=submit] { width: 100%; padding: 1rem 1.5rem; }
}

#header {
    padding: 2.8rem 2.5rem 2.2rem;
    text-align: center;
    background: #16233F;
    color: #FBF8F2;
    border-bottom: 1px solid rgba(251,248,242,0.12);
}
#header h1, #header * { color: #FBF8F2; font-family: &#039;Cormorant Garamond&#039;, Georgia, serif; font-weight: 400; font-size: 1.3rem; letter-spacing: 0.14em; }

.red_txt { color: #B64057; }

#footer {
    margin-top: 0;
    padding: 1.4rem 0;
    background: #16233F;
    color: rgba(251,248,242,0.55);
    text-align: center;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    font-family: &#039;Space Grotesk&#039;, &#039;Inter&#039;, system-ui, sans-serif;
}

#main { padding: 3rem 3rem 2.5rem; }

.section { margin-bottom: 2.5rem; }
.section:last-child { margin-bottom: 0; }
.section__ttl {
    padding: 0 0 0.9rem;
    margin-bottom: 2rem;
    font-weight: 500;
    color: #171717;
    background: none;
    border-bottom: 2px solid #E2245E;
    font-family: &#039;Shippori Mincho&#039;, &#039;Hiragino Mincho ProN&#039;, &#039;Yu Mincho&#039;, serif;
    font-size: 1.3rem;
    letter-spacing: 0.06em;
}
.section__body { padding: 0 0.5rem; }

.block { margin-bottom: 1.2rem; }
.block:last-child { margin-bottom: 0; }
.block__ttl {
    margin-bottom: 0.6rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: #171717;
}
.block__body {}

.table {
    width: 100%;
    margin-bottom: 1.2rem;
    border-top: 1px solid rgba(23,23,23,0.12);
    border-left: 1px solid rgba(23,23,23,0.12);
}
.table th {
    padding: 1.5rem 1.8rem;
    background: #F3EFE6;
    color: #171717;
    border-right: 1px solid rgba(23,23,23,0.12);
    border-bottom: 1px solid rgba(23,23,23,0.12);
    font-weight: 500;
    font-size: 0.95rem;
}
.table td {
    padding: 1.5rem 1.8rem;
    background: #FFFFFF;
    border-right: 1px solid rgba(23,23,23,0.12);
    border-bottom: 1px solid rgba(23,23,23,0.12);
    color: #171717;
    font-size: 0.95rem;
}