/* Shared typography and spacing scale for every /visa/ page. */
:root {
    --visa-type-hero: 50px;
    --visa-type-hero-mobile: 28px;
    --visa-type-flow-hero: 40px;
    --visa-type-flow-hero-mobile: 28px;
    --visa-type-section: 24px;
    --visa-type-section-mobile: 20px;
    --visa-type-card: 18px;
    --visa-type-card-mobile: 16px;
    --visa-type-body: 16px;
    --visa-type-body-mobile: 14px;
    --visa-type-meta: 14px;
    --visa-type-meta-mobile: 13px;
    --visa-space-section: 56px;
    --visa-space-section-mobile: 32px;
    --visa-space-content: 24px;
    --visa-space-content-mobile: 16px;
    --visa-space-card: 20px;
    --visa-space-card-mobile: 12px;
}

body {
    font-size: var(--visa-type-body);
    line-height: 1.6;
}

/* Hero hierarchy */
.visa-hero-minimal h1 {
    font-size: var(--visa-type-hero);
    line-height: 1.2;
}

.visa-hero-minimal .hero-subtitle {
    font-size: 20px;
    line-height: 1.5;
}

.visa-hero-minimal .hero-desc {
    font-size: var(--visa-type-body);
    line-height: 1.7;
}

body.visa-flow-page .visa-hero-minimal h1 {
    font-size: var(--visa-type-flow-hero);
    line-height: 1.25;
}

body.visa-flow-page .visa-hero-minimal .hero-subtitle {
    font-size: 18px;
    line-height: 1.6;
}

/* Common content rhythm */
.visa-main-wrap {
    padding: var(--visa-space-section) 24px !important;
}

.visa-inquiry-form-section {
    padding: var(--visa-space-section) 0 !important;
}

.visa-main-wrap .breadcrumb,
.visa-flow-page .breadcrumb {
    font-size: var(--visa-type-meta);
    line-height: 1.5;
    margin-bottom: 24px;
}

.visa-regions-nav,
.visa-faq-section,
.visa-links-section,
.visa-resources-hub {
    margin-bottom: var(--visa-space-section);
}

.visa-faq-section {
    margin-top: var(--visa-space-section);
}

.visa-region-block {
    margin-bottom: var(--visa-space-section);
}

.section-title,
.region-header h2,
.visa-faq-section > .section-title {
    font-size: var(--visa-type-section);
    line-height: 1.35;
}

.section-title {
    margin-top: 0;
    margin-bottom: var(--visa-space-content);
    padding-bottom: 12px;
}

.region-header {
    margin-top: 0;
    margin-bottom: var(--visa-space-content);
    padding-bottom: 12px;
}

.update-date {
    font-size: var(--visa-type-meta);
}

.visa-region-block p,
.status-content p,
.visa-notice-content > p,
.faq-inner,
.nc-text p {
    font-size: var(--visa-type-body);
    line-height: 1.7;
}

.visa-region-block p {
    margin-bottom: 16px;
}

/* Alerts, cards, notes and tables */
.visa-alert-box {
    padding: 28px;
    margin-bottom: 40px !important;
}

.visa-alert-box .v-alert-title {
    font-size: var(--visa-type-section);
    line-height: 1.4;
}

.visa-notice-content > p {
    margin-bottom: 20px;
}

.visa-notice-red {
    padding: 20px;
}

.v-notice-red-title {
    font-size: var(--visa-type-card);
}

.visa-notice-red ul li {
    font-size: 15px;
    line-height: 1.7;
    padding-top: 12px;
    padding-bottom: 12px;
}

.overview-status-banner {
    padding: 24px;
    margin-bottom: 32px;
    gap: 24px;
}

.status-content h3 {
    font-size: 20px;
    line-height: 1.4;
    margin-bottom: 8px;
}

.summary-spec-grid,
.notes-container {
    gap: var(--visa-space-card);
}

.summary-spec-grid {
    margin-bottom: 32px;
}

.spec-item-card {
    padding: var(--visa-space-card);
    border-radius: 12px;
}

.spec-item-card h4 {
    font-size: var(--visa-type-card);
    line-height: 1.4;
    margin-bottom: 16px;
}

.spec-item-card li {
    font-size: 15px;
    line-height: 1.6;
    padding: 5px 0;
}

.warning-minimal {
    padding: 16px;
    gap: 12px;
}

.warning-minimal h5 {
    font-size: 16px;
}

.warning-minimal p,
.warning-minimal .clean-notes-list li {
    font-size: 15px;
    line-height: 1.7;
}

.notes-container {
    margin-top: var(--visa-space-content);
}

.lang-note-card {
    padding: var(--visa-space-card);
}

.lang-note-card h4 {
    font-size: var(--visa-type-card);
    line-height: 1.4;
    margin-bottom: 16px;
}

.lang-note-card li,
.clean-notes-list li {
    font-size: 15px;
    line-height: 1.7;
}

.premium-notes-box {
    padding: 24px !important;
}

.notes-header {
    font-size: var(--visa-type-card);
    margin-bottom: 16px;
}

.clean-notes-list li {
    margin-bottom: 10px;
}

.visa-full-table th {
    font-size: 15px;
    padding: 14px 16px;
}

.visa-full-table td {
    font-size: 15px;
    line-height: 1.6;
    padding: 14px 16px;
}

.v-price {
    font-size: 18px;
}

/* FAQ rhythm */
.faq-item {
    margin-bottom: 12px;
    border-radius: 12px;
}

.faq-trigger {
    padding: 16px 24px;
    gap: 16px;
}

.faq-q-text {
    gap: 12px;
}

.faq-label-q {
    font-size: 18px;
}

.faq-trigger h4 {
    font-size: var(--visa-type-card);
    line-height: 1.5;
}

.faq-inner {
    padding: 16px 24px 24px 54px;
}

/* Inquiry, confirmation and finish pages */
.form-container {
    padding: 48px;
    border-radius: 16px;
}

.form-header {
    margin-bottom: 32px;
}

.form-header h2 {
    font-size: 28px;
    line-height: 1.35;
}

.form-header p {
    font-size: var(--visa-type-body);
    line-height: 1.7;
}

.form-group {
    gap: 20px;
    margin-bottom: 20px;
}

.form-group label {
    font-size: 16px;
    line-height: 1.5;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
    font-size: 16px;
}

.privacy-box {
    padding: 20px;
    margin-bottom: 16px;
}

.privacy-content {
    font-size: 15px;
    line-height: 1.7;
}

.notice {
    font-size: var(--visa-type-meta);
}

.confirm-table th,
.confirm-table td {
    padding: 16px;
    font-size: 16px;
    line-height: 1.6;
}

.confirm-actions {
    gap: 16px;
    margin-top: 32px;
}

.finish-info-box {
    padding: 48px 32px;
    margin-bottom: 32px;
}

.finish-icon {
    margin-bottom: 24px;
}

.finish-title {
    font-size: 28px;
    line-height: 1.35;
    margin-bottom: 16px;
}

.finish-text {
    font-size: var(--visa-type-body);
    line-height: 1.7;
    margin-bottom: 24px;
}

.email-notice {
    padding: 16px;
    margin-bottom: 28px;
}

@media (max-width: 768px) {
    body {
        font-size: var(--visa-type-body-mobile);
        line-height: 1.65;
    }

    .visa-hero-minimal h1,
    .hero-left-content h1,
    body.visa-flow-page .visa-hero-minimal h1 {
        font-size: var(--visa-type-hero-mobile) !important;
        line-height: 1.3;
    }

    .visa-hero-minimal .hero-subtitle {
        font-size: 16px;
        line-height: 1.6;
    }

    body.visa-flow-page .visa-hero-minimal .hero-subtitle {
        font-size: 15px;
    }

    .visa-hero-minimal .hero-desc {
        font-size: 14px;
        line-height: 1.7;
    }

    .visa-main-wrap {
        padding: var(--visa-space-section-mobile) 16px !important;
    }

    .visa-inquiry-form-section {
        padding: var(--visa-space-section-mobile) 0 !important;
    }

    .visa-main-wrap .breadcrumb,
    .visa-flow-page .breadcrumb {
        font-size: var(--visa-type-meta-mobile);
        margin-bottom: 18px;
    }

    .visa-regions-nav,
    .visa-faq-section,
    .visa-links-section,
    .visa-resources-hub,
    .visa-region-block {
        margin-bottom: var(--visa-space-section-mobile);
    }

    .visa-faq-section {
        margin-top: var(--visa-space-section-mobile);
    }

    .section-title,
    .region-header h2,
    .visa-faq-section > .section-title {
        font-size: var(--visa-type-section-mobile);
        line-height: 1.4;
    }

    .section-title {
        margin-bottom: 18px;
        padding-bottom: 10px;
    }

    .region-header {
        margin-bottom: 18px;
        padding-bottom: 10px;
    }

    .update-date {
        font-size: var(--visa-type-meta-mobile);
    }

    .visa-region-block p,
    .status-content p,
    .visa-notice-content > p,
    .faq-inner,
    .nc-text p {
        font-size: var(--visa-type-body-mobile);
        line-height: 1.7;
    }

    .visa-alert-box {
        padding: 20px 16px !important;
        margin-bottom: 24px !important;
    }

    .visa-alert-box .v-alert-decor {
        width: 64px !important;
        top: 12px !important;
        right: 12px !important;
    }

    .visa-alert-box .v-alert-title {
        font-size: 20px !important;
        line-height: 1.4 !important;
        max-width: calc(100% - 80px) !important;
        position: relative;
        z-index: 1;
    }

    .visa-notice-red {
        padding: 14px !important;
    }

    .v-notice-red-title {
        font-size: 16px;
    }

    .visa-notice-red ul li {
        font-size: 14px;
        line-height: 1.6;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .overview-status-banner {
        padding: 24px 16px;
        margin-bottom: 24px;
        gap: 16px;
        border-radius: 14px;
    }

    .status-content h3 {
        font-size: 18px;
    }

    .summary-spec-grid,
    .notes-container {
        gap: var(--visa-space-card-mobile);
    }

    .summary-spec-grid {
        margin-bottom: 24px;
    }

    .spec-item-card,
    .lang-note-card {
        padding: var(--visa-space-card-mobile);
        border-radius: 10px;
    }

    .spec-item-card h4,
    .lang-note-card h4,
    .notes-header {
        font-size: var(--visa-type-card-mobile);
        line-height: 1.45;
        margin-bottom: 12px;
    }

    .spec-item-card li,
    .lang-note-card li,
    .clean-notes-list li,
    .warning-minimal p,
    .warning-minimal .clean-notes-list li {
        font-size: 14px;
        line-height: 1.65;
    }

    .warning-minimal {
        padding: 14px;
    }

    .premium-notes-box {
        padding: 16px !important;
    }

    .visa-full-table th,
    .visa-full-table td {
        font-size: 14px;
        padding: 12px;
    }

    .faq-item {
        margin-bottom: 10px;
        border-radius: 10px;
    }

    .faq-trigger {
        padding: 14px 16px;
        gap: 10px;
    }

    .faq-q-text {
        gap: 10px;
    }

    .faq-label-q {
        font-size: 17px;
    }

    .faq-trigger h4 {
        font-size: 16px;
        line-height: 1.5;
    }

    .faq-inner {
        padding: 14px 16px 18px 44px;
    }

    .form-container {
        padding: 32px 16px !important;
        border-radius: 12px;
    }

    .form-header {
        margin-bottom: 24px;
    }

    .form-header h2 {
        font-size: 24px;
    }

    .form-header p {
        font-size: 14px;
    }

    .form-group {
        gap: 6px;
        margin-bottom: 16px;
    }

    body.visa-inquiry-page .form-group .form-content {
        width: 100%;
        flex: none;
    }

    body.visa-inquiry-page .form-group .form-content > input:not([type="checkbox"]):not([type="radio"]),
    body.visa-inquiry-page .form-group .form-content > select,
    body.visa-inquiry-page .form-group .form-content > textarea {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .form-group label {
        font-size: 15px;
    }

    .form-group input[type="text"],
    .form-group input[type="email"],
    .form-group input[type="tel"],
    .form-group input[type="number"],
    .form-group select,
    .form-group textarea {
        font-size: 16px;
        padding: 11px 12px;
    }

    .privacy-box {
        padding: 16px;
    }

    .privacy-content {
        font-size: 14px;
    }

    body.visa-inquiry-page .privacy-content p:first-child strong {
        text-align: left;
    }

    .confirm-table th,
    .confirm-table td {
        padding: 12px;
        font-size: 15px;
    }

    .confirm-actions {
        gap: 12px;
        margin-top: 24px;
    }

    .finish-info-box {
        padding: 32px 16px;
        margin-bottom: 24px;
    }

    .finish-title {
        font-size: 24px;
        margin-bottom: 12px;
    }

    .finish-text {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .email-notice {
        padding: 14px;
        margin-bottom: 20px;
    }
}
