/* ============================================================
   CSS Custom Properties (Variables)
   ===============================================================*/
:root {
    /* Colors */
    --color-primary: #3291e4;
    --color-black: #000;
    --color-white: #fff;
    --color-bg-light: #f6f6f6;
    --color-bg-blue-light: #eaf4fc;
    --color-bg-table-highlight: #cbe3f8;
    --color-text-gray: #8c9297;
    --color-border-gray: #cacaca;
    --color-border-dashed: #dfdfdf;
    --color-form-gray: #f0f5f5;
    /* Responsive */
    --rpx: calc(100vw / 750);

    /* Typography */
    --font-gothic: "Zen Kaku Gothic New", sans-serif;
    --font-hiragino: "Zen Kaku Gothic New", "Hiragino Sans", "ヒラギノ角ゴシック", "Hiragino Kaku Gothic ProN", sans-serif;

    /* Common Spacing & Sizing (頻出値のみ) */
    --radius-sm: calc(15 * var(--rpx));
    --radius-md: calc(40 * var(--rpx));
    --radius-lg: calc(45 * var(--rpx));
    --radius-pill: 9999px;
}

/* ============================================================
contact
===============================================================*/

.contact-form {
    margin-inline: auto;
    margin-top: calc(90 * var(--rpx));
    margin-bottom: calc(50 * var(--rpx));
    width: calc(514 * var(--rpx));
    height: auto;
}

.contact-form-text {
    max-width: fit-content;
    margin-inline: auto;
    font-family: var(--font-hiragino);
    font-size: calc(24 * var(--rpx));
    font-weight: 600;
    margin-bottom: calc(65 * var(--rpx));
}

.input-form {
    margin-inline: auto;
    margin-bottom: calc(50 * var(--rpx));
    width: calc(647 * var(--rpx));
    height: auto;
}

.contact-form-body {
    width: 90%;
    margin-inline: auto;
    margin-bottom: calc(100 * var(--rpx));
}

.form-group {
    margin-bottom: calc(30 * var(--rpx));
    padding-bottom: calc(20 * var(--rpx));
}

.form-group label {
    display: block;
    font-family: var(--font-hiragino);
    font-weight: 600;
    font-size: calc(24 * var(--rpx));
    margin-bottom: calc(10 * var(--rpx));
}

.required {
    display: inline-block;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: calc(21 * var(--rpx));
    padding: calc(2 * var(--rpx)) calc(10 * var(--rpx));
    border-radius: 9999px;
    margin-left: calc(10 * var(--rpx));
}

.form-group input,
.form-group textarea {
    width: 90%;
    padding: calc(15 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    border: none;
    background-color: var(--color-form-gray);
    border-radius: calc(10 * var(--rpx));
}

.form-group textarea {
    resize: vertical;
    /* 縦方向のみリサイズ可能 */
    min-height: calc(150 * var(--rpx));
}

.confirm-button {
    display: block;
    margin-inline: auto;
    width: calc(669 * var(--rpx));
    height: auto;
}

.privacy-notice {
    text-align: center;
    font-family: var(--font-hiragino);
    font-size: calc(23* var(--rpx));
    color: var(--color-black);
    margin-bottom: calc(30 * var(--rpx));
}

.privacy-link {
    color: var(--color-black);
    text-decoration: underline;
}

.pricing-cta-wrapper {
    margin-bottom: calc(200 * var(--rpx));
}

/* ============================================================
confirm
===============================================================*/

.confirm-form {
    margin-inline: auto;
    margin-bottom: calc(50 * var(--rpx));
    width: calc(647 * var(--rpx));
    height: auto;
}


.confirm-form-text {
    max-width: fit-content;
    margin-inline: auto;
    font-family: var(--font-hiragino);
    font-size: calc(24 * var(--rpx));
    font-weight: 600;
    margin-bottom: calc(65 * var(--rpx));
}

.confirm-content {
    width: 90%;
    margin-inline: auto;
    margin-bottom: calc(80 * var(--rpx));
}

.confirm-group {
    margin-bottom: calc(30 * var(--rpx));
    padding-bottom: calc(20 * var(--rpx));
}

.confirm-group label {
    display: block;
    font-family: var(--font-hiragino);
    font-weight: 600;
    font-size: calc(24 * var(--rpx));
    margin-bottom: calc(10 * var(--rpx));
}

.confirm-group p {
    width: 90%;
    padding: calc(15 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    border: none;
    background-color: var(--color-form-gray);
    border-radius: calc(10 * var(--rpx));
    color: #8f9191;
}

#confirm-message {
    min-height: calc(150 * var(--rpx));
}

.back-btn {
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(30 * var(--rpx));
    background-color: #3291e4;
    color: #fff;
    border: none;
    border-radius: calc(999 * var(--rpx));
    padding: calc(5 * var(--rpx)) calc(30 * var(--rpx));
    cursor: pointer;
}

.submit-btn {
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(30 * var(--rpx));
    background-color: #3291e4;
    color: #fff;
    border: none;
    border-radius: calc(999 * var(--rpx));
    padding: calc(5 * var(--rpx)) calc(30 * var(--rpx));
    cursor: pointer;
}

.confirm-buttons {
    display: flex;
    justify-content: space-between;
    margin-inline: auto;
    width: calc(669 * var(--rpx));
    height: auto;
}

/* ============================================================
thanks
===============================================================*/

.thanks-form {
    margin-inline: auto;
    margin-bottom: calc(50 * var(--rpx));
    width: calc(647 * var(--rpx));
    height: auto;
}

.thanks-illustration {
    margin-inline: auto;
    margin-bottom: calc(50 * var(--rpx));
    width: calc(200 * var(--rpx));
    height: auto;
}

.thanks-container {
    text-align: center;
}


.thanks-title {
    margin-bottom: calc(30 * var(--rpx));
    font-family: var(--font-gothic);
    font-weight: 600;
    font-size: calc(37.2 * var(--rpx));
    text-align: center;
    color: var(--color-primary);
}


.thanks-text {
    display: inline-block;
    font-family: var(--font-hiragino);
    font-weight: 600;
    font-size: calc(24 * var(--rpx));
}

.top-btn {
    display: inline-block;
    margin-top: calc(60 * var(--rpx));
    margin-bottom: calc(100 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(60 * var(--rpx));
    background-color: var(--color-primary);
    color: var(--color-white);
    font-family: var(--font-hiragino);
    font-weight: 600;
    font-size: calc(24 * var(--rpx));
    border-radius: 9999px;
    text-decoration: none;
}

/* ============================================================
privacy-policy
===============================================================*/

.about-privacy-policy {
    margin-inline: auto;
    margin-top: calc(90 * var(--rpx));
    margin-bottom: calc(85 * var(--rpx));
    width: calc(548 * var(--rpx));
    height: auto;
}

.privacy-content {
    text-align: center;
    margin-bottom: calc(172 * var(--rpx));
}

.privacy-intro {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    padding-inline: calc(20 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    margin-bottom: calc(70 * var(--rpx));
    line-height: 1.8;
}

.privacy-list {
    width: fit-content;
    max-width: 85%;
    margin-inline: auto;
    padding-inline: calc(20 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    line-height: 1.8;
}

.privacy-list li {
    margin-bottom: calc(40 * var(--rpx));
}

.privacy-list li:last-child {
    margin-bottom: 0;
}

.privacy-signature {
    font-size: calc(24 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    display: inline-flex;
    justify-content: center;
    text-align: left;
    gap: calc(40 * var(--rpx));
    margin-top: calc(80 * var(--rpx));
}


.privacy-dates {
    margin: 0;
    text-align: right;
}

.contact-info {
    margin-top: calc(30 * var(--rpx));
    font-size: calc(18 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
}

.privacy-section {
    margin-bottom: calc(90 * var(--rpx));
}

.privacy-section-title {
    display: inline-block;
    font-family: var(--font-hiragino);
    font-weight: 600;
    font-size: calc(32 * var(--rpx));
    text-align: left;
    margin-bottom: calc(65 * var(--rpx));
    padding-left: calc(24 * var(--rpx));
    border-left: calc(5 * var(--rpx)) solid #3498db;
    margin-left: calc(30 * var(--rpx));
}

.item-number {
    font-size: calc(32 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
}

.privacy-section-content {
    text-align: center;
}

.privacy-policy-text {
    padding-inline: calc(50 * var(--rpx));
    font-size: calc(21 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    text-align: left;
    line-height: 1.8;
}

.main-item {
    padding-inline: calc(20 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    margin-bottom: calc(10 * var(--rpx));
    padding-left: calc(45 * var(--rpx));
    text-indent: calc(-24 * var(--rpx));
    line-height: 1.8;
}

.sub-section {
    text-align: center;
}

.sub-title {
    margin-left: calc(20 * var(--rpx));
    padding-inline: calc(20 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    margin-bottom: calc(35 * var(--rpx));
    line-height: 1.8;
}

.bullet-list {
    width: fit-content;
    max-width: 100%;
    padding-inline: calc(20 * var(--rpx));
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    margin-bottom: calc(65 * var(--rpx));
    line-height: 1.8;
}

.bullet-list li {
    padding-left: calc(24 * var(--rpx));
    margin-left: calc(20 * var(--rpx));
    text-indent: calc(-24 * var(--rpx));
}

.bullet-list li:last-child {
    margin-bottom: 0;
}

/* ============================================================
SCTA
===============================================================*/

.scta-logo {
    margin-inline: auto;
    margin-top: calc(100 * var(--rpx));
    margin-bottom: calc(85 * var(--rpx));
    width: calc(514 * var(--rpx));
    height: auto;
}

.scta-content {
    text-align: center;
    margin-bottom: calc(100 * var(--rpx));
}

.scta-intro {
    display: inline-block;
    font-family: var(--font-hiragino);
    font-weight: 500;
    font-size: calc(24 * var(--rpx));
    text-align: left;
    margin-bottom: calc(125 * var(--rpx));
}

.scta-table-title {
    display: inline-block;
    font-family: var(--font-gothic);
    font-weight: 600;
    font-size: calc(42.42 * var(--rpx));
    color: #fff;
    background-color: #000;
    padding: calc(2 * var(--rpx)) calc(40 * var(--rpx));
    margin-bottom: calc(53 * var(--rpx));
}

.scta-table {
    display: inline-block;
    width: calc(710 * var(--rpx));
    border-collapse: collapse;
    font-family: var(--font-hiragino);
    font-size: calc(24 * var(--rpx));
    text-align: left;
    color: #333333;
    border-top: 1px solid #ccc;
}

.scta-table th,
.scta-table td {
    padding: calc(25 * var(--rpx)) 0;
    border-bottom: 1px solid #ccc;
    vertical-align: middle;
    font-weight: 500;
}

.scta-table th {
    width: 40%;
    font-weight: 700;
    background-color: #fff;
    padding-left: calc(35 * var(--rpx));
}