/* Reset and base styles */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.6;
    color: #333;
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
    background-color: #f4f4f4;
    font-size: 20px; /* Increased from 18px */
}

/* Typography */
h1, h2, h3 {
    margin-bottom: 20px;
    color: #1b5e20;
}

h1 {
    font-size: 2.4rem; /* Increased from 2.2rem */
    border-bottom: 2px solid #1b5e20;
    padding-bottom: 10px;
}

h2 {
    font-size: 1.9rem; /* Increased from 1.7rem */
    color: #2e7d32;
}

h3 {
    font-size: 1.6rem; /* Increased from 1.4rem */
    color: #388e3c;
}

p {
    margin-bottom: 15px;
}

/* Components */
.container {
    background-color: #ffffff;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.button {
    display: inline-block;
    padding: 12px 24px; /* Increased padding for better touch targets */
    background-color: #4caf50;
    color: white;
    text-decoration: none;
    border-radius: 5px;
    font-size: 1.3rem; /* Increased from 1.1rem */
    margin: 10px 0;
    transition: background-color 0.3s;
}

.button:hover {
    background-color: #45a049;
}

.button.large {
    font-size: 1.5rem; /* Increased from 1.3rem */
    font-weight: bold;
}

.button-center {
    display: block;
    width: fit-content;
    margin: 20px auto;
}

.card {
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 20px;
    margin: 20px 0;
    background-color: #f9f9f9;
}

.list {
    list-style-type: none;
    padding-left: 0;
}

.list li {
    margin-bottom: 12px; /* Increased from 10px */
    padding-left: 24px; /* Increased from 20px */
    position: relative;
}

.list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #4caf50;
    font-size: 1.2em; /* Increased bullet point size */
}

.large-text {
    font-size: 1.5em; /* Increased from 1.3em */
    font-weight: bold;
    color: #1b5e20;
}

.divider {
    border-top: 2px solid #4caf50;
    margin: 30px 0;
}

.number-list {
    counter-reset: number-counter;
    list-style-type: none;
    padding-left: 0;
}

.number-list li {
    counter-increment: number-counter;
    margin-bottom: 18px; /* Increased from 15px */
    padding-left: 36px; /* Increased from 30px */
    position: relative;
}

.number-list li::before {
    content: counter(number-counter);
    position: absolute;
    left: 0;
    top: 0;
    width: 30px; /* Increased from 26px */
    height: 30px; /* Increased from 26px */
    background-color: #4caf50;
    color: white;
    border-radius: 50%;
    text-align: center;
    line-height: 30px; /* Increased from 26px */
    font-weight: bold;
    font-size: 1.1em; /* Increased font size for number */
}

.image-placeholder {
    background-color: #e0e0e0;
    border: 1px dashed #999;
    padding: 20px;
    text-align: center;
    margin: 10px 0;
    border-radius: 5px;
}

.application-method {
    display: flex;
    flex-direction: column;
    gap: 24px; /* Increased from 20px */
}

.application-method .method {
    display: flex;
    flex-direction: column;
    gap: 12px; /* Increased from 10px */
}

.application-method .method strong {
    font-size: 1.4em; /* Increased from 1.2em */
}

.application-method .method .content {
    margin-left: 24px; /* Increased from 20px */
}

.phone-info {
    margin-top: 24px; /* Increased from 20px */
}

/* Responsive images */
img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 24px; /* Increased bottom margin from 20px */
}

/* Responsive design */
@media (max-width: 600px) {
    body {
        padding: 12px; /* Increased from 10px */
        font-size: 18px; /* Increased from 16px */
    }
    
    .container {
        padding: 18px; /* Increased from 15px */
    }
    
    h1 {
        font-size: 1.9rem; /* Increased from 1.7rem */
    }
    
    h2 {
        font-size: 1.7rem; /* Increased from 1.5rem */
    }
    
    h3 {
        font-size: 1.5rem; /* Increased from 1.3rem */
    }
    
    .button {
        display: block;
        text-align: center;
        padding: 14px 28px; /* Increased padding for better touch targets on mobile */
    }
}