:root{
  --bg:#FAF6F0; --card:#FFFFFF; --ink:#2A1E18; --muted:#6E6258; --line:#E7DED2;
  --gold:#B8893E; --gold-soft:#F4EADB; --dmh:#4A2E20; --dmh-soft:#F5ECE4; --lab:#3F8C38; --lab-soft:#EAF4E6;
  --err:#B3261E; --radius:14px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; }
body{ font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif; background:var(--bg); color:var(--ink); line-height:1.55; font-size:15px; }
.wrap{ max-width:760px; margin:0 auto; padding:0 16px 48px; }
header.hero{ text-align:center; padding:28px 16px 22px; background:linear-gradient(180deg,#fff 0%,var(--bg) 100%); border-bottom:1px solid var(--line); }
.logos{ display:flex; align-items:center; justify-content:center; gap:22px; }
.logos img.dmh{ height:78px; } .logos img.lab{ height:46px; }
.logos .sep{ width:1px; height:56px; background:var(--line); }
.eyebrow{ font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); font-weight:600; margin-top:18px; }
h1{ font-family:"Lora",Georgia,serif; font-weight:500; font-size:30px; line-height:1.18; margin-top:8px; }
h1 i{ color:var(--gold); }
.lead{ color:var(--muted); font-size:14.5px; max-width:560px; margin:10px auto 0; }
.meta{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:14px; }
.meta span{ font-size:12px; background:#fff; border:1px solid var(--line); border-radius:20px; padding:5px 12px; color:var(--muted); }
.progress{ position:sticky; top:0; z-index:20; background:rgba(250,246,240,.96); backdrop-filter:blur(6px); padding:10px 16px; border-bottom:1px solid var(--line); }
.progress .bar{ max-width:760px; margin:0 auto; height:6px; background:var(--line); border-radius:6px; overflow:hidden; }
.progress .fill{ height:100%; width:0; background:linear-gradient(90deg,var(--gold),#D8B571); transition:width .3s; }
.progress .txt{ max-width:760px; margin:6px auto 0; font-size:11.5px; color:var(--muted); display:flex; justify-content:space-between; }
section.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px 20px; margin-top:18px; box-shadow:0 6px 18px rgba(74,46,32,.05); }
.sec-head{ display:flex; gap:12px; align-items:center; margin-bottom:16px; }
.sec-num{ width:32px; height:32px; border-radius:50%; background:var(--gold-soft); color:var(--dmh); font-family:"Lora",serif; font-weight:600; display:flex; align-items:center; justify-content:center; flex:none; }
.sec-head h2{ font-family:"Lora",serif; font-weight:500; font-size:20px; line-height:1.2; }
.sec-head p{ font-size:12.5px; color:var(--muted); }
.grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 14px; }
.full{ grid-column:1 / -1; }
label.fl{ display:block; font-size:13px; font-weight:500; margin-bottom:6px; }
label.fl .req{ color:var(--gold); }
label.fl .opt{ color:var(--muted); font-weight:400; font-size:12px; }
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{
  width:100%; font:inherit; font-size:15px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:10px; padding:11px 12px; outline:none; transition:border .15s, box-shadow .15s; }
textarea{ min-height:92px; resize:vertical; }
input:focus,select:focus,textarea:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,137,62,.15); }
.hint{ font-size:11.5px; color:var(--muted); margin-top:5px; }
.error-msg{ font-size:12px; color:var(--err); margin-top:5px; display:none; }
.invalid input,.invalid select,.invalid textarea{ border-color:var(--err); }
.invalid .error-msg{ display:block; }
.choices{ display:flex; flex-wrap:wrap; gap:8px; }
.choice{ position:relative; }
.choice input{ position:absolute; opacity:0; pointer-events:none; }
.choice span{ display:inline-block; padding:9px 14px; border:1px solid var(--line); border-radius:24px; font-size:13.5px; background:#fff; cursor:pointer; transition:all .15s; user-select:none; }
.choice input:checked + span{ border-color:var(--gold); background:var(--gold-soft); color:var(--dmh); font-weight:500; }
.choice input:focus-visible + span{ box-shadow:0 0 0 3px rgba(184,137,62,.25); }
.brands{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.brand{ border:2px solid var(--line); border-radius:var(--radius); padding:16px; cursor:pointer; position:relative; transition:all .2s; background:#fff; display:block; }
.brand input.main{ position:absolute; opacity:0; }
.brand .tick{ position:absolute; top:14px; right:14px; width:26px; height:26px; border-radius:50%; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px; transition:all .2s; }
.brand img{ height:54px; display:block; }
.brand.lab img{ height:38px; margin:8px 0; }
.brand h3{ font-family:"Lora",serif; font-weight:600; font-size:16px; margin-top:10px; }
.brand p.d{ font-size:12.5px; color:var(--muted); margin-top:4px; }
.brand.dmh.on{ border-color:var(--dmh); background:var(--dmh-soft); }
.brand.dmh.on .tick{ background:var(--dmh); border-color:var(--dmh); }
.brand.lab.on{ border-color:var(--lab); background:var(--lab-soft); }
.brand.lab.on .tick{ background:var(--lab); border-color:var(--lab); }
.sub{ display:none; margin-top:12px; padding-top:12px; border-top:1px dashed var(--line); }
.brand.on .sub{ display:block; }
.sub .sl{ font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.cb{ display:flex; gap:9px; align-items:flex-start; font-size:13.5px; padding:5px 0; cursor:pointer; }
.cb input{ width:18px; height:18px; margin-top:2px; accent-color:var(--gold); flex:none; }
.brand.dmh .cb input{ accent-color:var(--dmh); } .brand.lab .cb input{ accent-color:var(--lab); }
.consent{ background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-top:10px; }
.consent .cb{ font-size:13px; }
details{ margin-top:6px; }
details summary{ cursor:pointer; font-size:12.5px; color:var(--gold); font-weight:500; }
details .legal{ font-size:12px; color:var(--muted); margin-top:8px; line-height:1.6; max-height:220px; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
.submit-wrap{ margin-top:22px; text-align:center; }
button.submit{ font:inherit; font-size:16px; font-weight:600; color:#fff; background:linear-gradient(135deg,#4A2E20,#2A1912); border:none; border-radius:30px; padding:15px 38px; cursor:pointer; box-shadow:0 10px 24px rgba(42,25,18,.25); width:100%; max-width:420px; }
button.submit:disabled{ opacity:.6; cursor:wait; }
.form-error{ display:none; margin-top:12px; color:var(--err); font-size:13px; }
.hp{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.foot{ text-align:center; font-size:12px; color:var(--muted); margin-top:28px; line-height:1.7; }
.success{ display:none; text-align:center; padding:40px 20px; }
.success .ok{ width:72px; height:72px; border-radius:50%; background:var(--lab); color:#fff; font-size:38px; display:flex; align-items:center; justify-content:center; margin:0 auto; }
.success h2{ font-family:"Lora",serif; font-weight:500; font-size:26px; margin-top:18px; }
.success .ref{ display:inline-block; margin-top:14px; font-family:"Lora",serif; font-size:18px; font-weight:600; letter-spacing:1px; background:var(--gold-soft); color:var(--dmh); padding:8px 18px; border-radius:10px; }
@media (max-width:600px){
  h1{ font-size:25px; } .grid,.brands{ grid-template-columns:1fr; }
  .logos img.dmh{ height:64px; } .logos img.lab{ height:38px; }
  section.card{ padding:18px 15px; }
}
