:root {
    --text: #343a40;
    --muted: #68727b;
    --line: #dfe4e8;
    --page: #ffffff;
    --soft: #f3f8fc;
    --blue: #4d9bd5;
    --blue-dark: #367fba;
    --dark: #303030;
    --notice: #fff9e8;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    color: var(--text);
    background: var(--page);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

a { color: var(--blue-dark); }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3 { line-height: 1.2; }
h1 { margin: 0 0 1.25rem; font-size: clamp(2rem, 5vw, 3.3rem); }
h2 { margin: 0 0 1rem; font-size: 1.65rem; }
h3 { margin: 1.75rem 0 .5rem; font-size: 1.1rem; }
p { margin: 0 0 1rem; }
ul { padding-left: 1.25rem; }
li { margin: .35rem 0; }

.container { width: min(100% - 2.5rem, 900px); margin: 0 auto; }
.content { max-width: 760px; }
.content-wide { max-width: 900px; }
.section { padding: 3.5rem 0; border-top: 1px solid var(--line); }
.section-grey { background: var(--soft); }
.note { color: var(--muted); font-size: .92rem; }

.site-header { color: #fff; background: var(--blue-dark); }
.header-content { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 3.5rem; }
.brand { color: #fff; font-weight: 700; text-decoration: none; }
nav { display: flex; flex-wrap: wrap; gap: 0; }
nav a { padding: .45rem .65rem; color: #fff; font-size: .92rem; text-decoration: none; }
nav a:hover { color: #fff; background: rgba(255, 255, 255, .1); }

.intro { padding: 4rem 0 3.5rem; background: var(--page); }
.intro > .container > p { max-width: 620px; font-size: 1.2rem; }
.notice { max-width: 700px; margin-top: 2rem; padding: 1.1rem 1.25rem; background: var(--notice); border-left: 4px solid #e0bb5d; }
.notice h2 { margin-bottom: .45rem; font-size: 1.2rem; }
.notice p { margin: 0; }

.image-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.image-placeholder { margin: 0; background: var(--page); border: 1px solid var(--line); }
.image-placeholder > div { display: grid; place-items: center; min-height: 16rem; color: var(--muted); background: #edf4fa; font-size: .95rem; }
.image-placeholder figcaption { padding: .75rem 1rem; color: var(--muted); font-size: .9rem; }

.literature { margin-top: 2.5rem; padding: 1.25rem 1.5rem; background: var(--soft); border-left: 4px solid var(--blue); }
.literature h2 { font-size: 1.3rem; }
.faq-list { border-top: 1px solid var(--line); }
details { padding: 1rem 0; border-bottom: 1px solid var(--line); }
summary { cursor: pointer; font-weight: 700; }
details p { margin: .7rem 0 0; }

.contact-form { max-width: 620px; margin-top: 2rem; padding: 1.5rem; background: var(--soft); border: 1px solid var(--line); }
.form-row { display: grid; gap: .25rem; margin-bottom: 1rem; }
label { font-weight: 700; }
input, textarea { width: 100%; padding: .65rem .75rem; color: var(--text); border: 1px solid #9ca9a4; border-radius: 0; font: inherit; }
input:focus, textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.button { padding: .7rem 1rem; color: #fff; background: var(--blue); border: 0; border-radius: 0; font: inherit; font-weight: 700; cursor: pointer; }
.button:hover { background: var(--blue-dark); }
.form-message { padding: .75rem 1rem; }
.form-message.error { color: #781d14; background: #f8e7e3; }
.form-message.success { color: #15583e; background: #e0f0e8; }
.hidden-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.site-footer { padding: 1.25rem 0; color: #fff; background: var(--blue-dark); font-size: .9rem; }
.site-footer p { margin: 0; }

@media (max-width: 650px) {
    .container { width: min(100% - 2rem, 900px); }
    .header-content { align-items: flex-start; flex-direction: column; gap: .75rem; padding: 1rem 0; }
    nav a { padding: .2rem .55rem; }
    .intro { padding: 3rem 0 2.5rem; }
    .section { padding: 2.75rem 0; }
    .image-grid { grid-template-columns: 1fr; }
}
