/* Inner content pages (e.g. service / project detail pages). */
.page {
    padding: 80px 40px 90px;
}

.page__inner {
    max-width: 1080px;
    margin: 0 auto;
}

.page__title {
    font-size: clamp(32px, 5vw, 56px);
    line-height: 1.08;
    margin-bottom: 32px;
    font-weight: 700;
}

.page__body {
    font-size: 18px;
    line-height: 1.7;
}

/* Text blocks stay at a comfortable reading width... */
.page__body p,
.page__body ul,
.page__body ol,
.page__body h2,
.page__body h3 {
    max-width: 760px;
}

/* ...while the hero image spans the full content width. */
.page__body > img:first-child {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 36px;
    border-radius: 14px;
}

.page__body h2 {
    font-size: 26px;
    margin: 32px 0 12px;
    font-weight: 600;
}

.page__body h3 {
    font-size: 21px;
    margin: 24px 0 10px;
    font-weight: 600;
}

.page__body p {
    margin: 0 0 16px;
}

.page__body ul,
.page__body ol {
    margin: 0 0 16px;
    padding-left: 22px;
}

.page__body li {
    margin-bottom: 6px;
}

.page__body img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 16px 0;
}

.page__body a {
    color: var(--color-accent, #ff6a00);
}

/* Request-form submission notice */
.request-form__notice {
    margin: 0 auto 18px;
    max-width: 520px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 15px;
    text-align: center;
}
.request-form__notice--ok {
    background: rgba(46, 204, 113, .15);
    border: 1px solid rgba(46, 204, 113, .5);
    color: #1c7a45;
}
.request-form__notice--error {
    background: rgba(255, 92, 92, .15);
    border: 1px solid rgba(255, 92, 92, .5);
    color: #b22;
}

@media (max-width: 768px) {
    .page { padding: 64px 16px 64px; }
    .page__body p,
    .page__body ul,
    .page__body ol,
    .page__body h2,
    .page__body h3 { max-width: none; }
}
