:root { color-scheme: light; color: #202f27; background: #f8f3e7; font: 16px/1.55 system-ui, sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; }
.wrap { width: min(42rem, calc(100% - 2rem)); margin-inline: auto; }
header { padding: clamp(1.8rem, 6vw, 3.5rem) 0; color: #f8f3e7; background: #213c31; }
header p:last-child { margin-bottom: 0; }
main { padding-block: 1.5rem 3.5rem; }
h1, h2 { font-family: Georgia, serif; font-weight: 400; line-height: 1.13; margin: .15rem 0 .7rem; }
h1 { font-size: clamp(2.2rem, 6vw, 3.55rem); }
h2 { font-size: clamp(1.7rem, 4vw, 2.2rem); }
.label { margin: 0 0 .45rem; color: #8c3c29; font-size: .76rem; letter-spacing: .12em; font-weight: 750; text-transform: uppercase; }
header .label { color: #efbda6; }
form, #complete { border: 1px solid #afb9aa; padding: clamp(1rem, 4vw, 1.6rem); border-radius: .35rem; background: #fffaf0; }
label { display: block; font-weight: 650; margin: .9rem 0 .3rem; }
textarea { width: 100%; border: 1px solid #798979; border-radius: .2rem; background: #fffdfa; padding: .55rem; color: inherit; font: inherit; resize: vertical; }
fieldset { border: 1px solid #afb9aa; padding: .4rem .95rem .95rem; margin: 1.1rem 0; }
legend { font-weight: 650; }
.check { display: flex; gap: .55rem; align-items: baseline; font-weight: 400; }
.check input { flex: none; accent-color: #213c31; }
.check strong { display: block; }
button { display: inline-block; margin-top: 1rem; border: 1px solid #213c31; border-radius: .25rem; background: #213c31; color: #f8f3e7; font: inherit; font-weight: 650; padding: .54rem .95rem; cursor: pointer; }
button:disabled { opacity: .6; cursor: wait; }
.hint { color: #495b4d; font-size: .92rem; margin-top: .25rem; }
#error { color: #8c3c29; margin-bottom: 0; }
:focus-visible { outline: 3px solid #8c3c29; outline-offset: 2px; }
[hidden] { display: none !important; }
