:root {
    --page-max: 980px;
    --card-radius: 14px;
}
body {
    background: #ffffff;
    color: #1c1c1c;
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
}
.page {
    max-width: var(--page-max);
    margin: 0 auto;
    padding: 24px 16px 48px;
}
.hero {
    text-align: center;
    margin-bottom: 18px;
}
.hero img {
    width: 100%;
    max-width: 900px;
    height: auto;
    display: block;
    margin: 0 auto;
}
.title {
    margin: 16px 0 8px;
    font-size: clamp(22px, 3vw, 30px);
    letter-spacing: 0.2px;
}
.card {
    background: transparent;
    border: none;
    border-radius: var(--card-radius);
    padding: 18px 20px;
    box-shadow: none;
    margin: 16px 0;
}
.card p {
    margin: 0 0 12px;
}
.motto {
    text-align: right;
    font-style: italic;
    margin-top: -8px;
}
.motto p {
    margin: 0;
}
.card ul {
    margin: 8px 0 12px 20px;
    padding: 0;
}
.card a {
    color: #1c4f7a;
}
.photo {
    text-align: center;
}
.photo img {
    width: min(360px, 80vw);
    height: auto;
    display: inline-block;
    border-radius: 10px;
}
.two-col {
    display: flex;
    gap: 18px;
    align-items: stretch;
    margin: 16px 0;
}
.two-col .card {
    flex: 1 1 0;
    margin: 0;
}
.two-col .photo {
    flex: 0 1 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--card-radius);
    box-shadow: none;
    padding: 16px;
}
@media (max-width: 600px) {
    body {
        font-size: 19px;
    }
    .page {
        padding: 18px 14px 36px;
    }
    .card {
        padding: 16px;
    }
    .two-col {
        flex-direction: column;
    }
}
