:root{
  --color-bg:#faf6ef;
  --color-surface:#ffffff;
  --color-text:#242923;
  --color-muted:#5c655c;
  --color-border:#e7e0d2;
  --color-primary:#1b6e78;
  --color-primary-dark:#12525a;
  --color-accent:#c9873f;
  --radius:14px;
  --shadow:0 12px 32px rgba(31,41,35,.08);
  --font-heading:Georgia,'Iowan Old Style','Palatino Linotype',serif;
  --font-body:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:var(--font-body);
  background:var(--color-bg);
  color:var(--color-text);
  line-height:1.6;
}

.header-banner{
  width:100%;
  line-height:0;
  overflow:hidden;
}
.header-art{
  width:100%;
  height:clamp(90px,18vw,200px);
  object-fit:cover;
  display:block;
}

.container{
  max-width:720px;
  margin:0 auto;
  padding:32px 24px 48px;
}

h1{
  font-family:var(--font-heading);
  font-size:clamp(1.5em,4vw,2.1em);
  line-height:1.25;
  color:var(--color-primary-dark);
  margin:0 0 20px;
}

h2{
  font-family:var(--font-heading);
  font-size:1.25em;
  color:var(--color-primary-dark);
  margin:28px 0 12px;
}

.intro,
form,
.paper-option{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
  margin-bottom:24px;
}

.intro p{margin:0 0 14px;color:var(--color-text)}
.intro p:last-child{margin-bottom:0}
.intro strong{color:var(--color-accent)}

.demands{padding-left:22px;margin:0}
.demands li{margin:10px 0}
.demands em{color:var(--color-primary-dark);font-style:normal;font-weight:600}

label{display:block;margin:16px 0 0}
label:first-child{margin-top:0}

input,select,button{
  width:100%;
  padding:10px 12px;
  margin-top:6px;
  font:inherit;
  border:1px solid var(--color-border);
  border-radius:8px;
  background:#fff;
  color:var(--color-text);
}

input:focus,select:focus{
  outline:2px solid var(--color-primary);
  outline-offset:1px;
  border-color:var(--color-primary);
}

label.consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.92em;
  color:var(--color-muted);
}
label.consent input{width:auto;margin-top:3px}
label.consent a{color:var(--color-primary-dark)}

button{
  margin-top:22px;
  background:var(--color-primary);
  color:#fff;
  border:0;
  border-radius:8px;
  padding:12px;
  font-weight:600;
  font-size:1.02em;
  cursor:pointer;
  transition:background .15s ease;
}
button:hover{background:var(--color-primary-dark)}
button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}

#msg{margin:-8px 0 24px;font-weight:600;color:var(--color-primary-dark);min-height:1.4em}

.paper-option p{margin:0 0 12px;color:var(--color-text)}
.paper-option p:last-child{margin-bottom:0}
.paper-option a{color:var(--color-primary-dark);font-weight:600;text-decoration:none}
.paper-option a:hover{text-decoration:underline}

footer{margin-top:8px;font-size:.9em;color:var(--color-muted);text-align:center}
footer a{color:var(--color-muted)}

.legal h2{margin-top:28px;font-size:1.1em}
.legal .updated{color:var(--color-muted);font-size:.9em}
.legal ul{padding-left:20px}
.legal li{margin:6px 0}
.legal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}

@media (max-width:480px){
  .container{padding:20px 16px 36px}
  .intro,form,.paper-option,.legal{padding:18px}
  h1{margin-bottom:16px}
}
