/*
 * Global styles
 */
body {
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #ffffff;
    color: #1f2937; /* Default text color, from Tailwind's gray-800 */
    line-height: 1.625; /* leading-relaxed */
    margin: 0;
}

/*
 * Main layout container
 */
.container {
    max-width: 80rem; /* max-w-4xl */
    margin-left: auto;
    margin-right: auto;
    padding: 4rem 1rem; /* py-16, px-4 */
}

@media (min-width: 640px) {
    .container {
        padding-left: 1.5rem; /* sm:px-6 */
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .container {
        padding-left: 2rem; /* lg:px-8 */
        padding-right: 2rem;
    }
}

/*
 * Typography
 */
h1 {
    font-size: 2.25rem; /* text-4xl */
    font-weight: 700;
    color: #111827; /* text-gray-900 */
    text-align: center;
    margin: 0 0 2.5rem; /* mb-10 */
}

h2 {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    color: #111827; /* text-gray-900 */
    margin: 0 0 1rem; /* mb-4 */
}

p {
    margin: 0;
}

section p + p {
    margin-top: 1rem;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/*
 * Content structure and spacing
 */
.terms-content > * + * {
    margin-top: 2rem; /* space-y-8 */
}

.sections {
    padding-top: 1.5rem; /* pt-6 */
}

.sections > * + * {
    margin-top: 2.5rem; /* space-y-10 */
}

.contact-info {
    padding-top: 2rem; /* pt-8 */
    border-top: 1px solid #e5e7eb; /* border-t border-gray-200 */
    font-size: 0.875rem; /* text-sm */
    color: #4b5563; /* text-gray-600 */
}

.contact-info > * + * {
    margin-top: 1rem; /* space-y-4 */
}

.last-updated {
    text-align: right;
    margin-top: 1.5rem; /* mt-6 */
}
