@font-face { font-family: "Inter"; font-weight: 300 700; font-display: swap; src: url("../fonts/inter-latin.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-weight: 400 700; font-display: swap; src: url("../fonts/playfair-display-latin.woff2") format("woff2"); }
* { box-sizing: border-box; }
body.reg { margin: 0; background: #f8f6f1; color: #24323f; font-family: "Inter", system-ui, sans-serif; font-size: 15px; }
.reg-head { background: #fff; border-bottom: 1px solid #e7e2d8; padding: .75rem 1rem; text-align: center; }
.reg-head img { height: 44px; }
.reg-main { max-width: 560px; margin: 0 auto; padding: 1.25rem 1rem 3rem; }
@media (max-width: 480px) { .reg-main { max-width: 360px; } }
h1, h2, h3 { font-family: "Playfair Display", Georgia, serif; color: #24323f; }
.progress { display: flex; align-items: center; justify-content: center; gap: 2px; margin: .5rem 0; }
.progress .dot { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; background: #e5e7eb; color: #6b7280; }
.progress .dot.done { background: #16a34a; color: #fff; }
.progress .dot.current { background: #fff; color: #42607a; box-shadow: 0 0 0 2px #42607a; font-weight: 600; }
.progress .bar { flex: 1; max-width: 22px; height: 2px; background: #e5e7eb; }
.step-label { text-align: center; color: #6b7280; font-size: 13px; margin: 0 0 1rem; }
.step { display: none; background: #fff; border-radius: 14px; padding: 1.25rem; box-shadow: 0 1px 3px rgb(0 0 0 / .08); }
.step.on { display: block; }
label { display: block; margin: .7rem 0; font-size: 14px; font-weight: 500; }
input, select, textarea { display: block; width: 100%; margin-top: .3rem; padding: .6rem .75rem; border: 1px solid #e5e7eb; border-radius: 10px; background: #f3f4f6; font: inherit; }
input[type=checkbox], input[type=radio] { display: inline; width: auto; margin: 0 .4rem 0 0; }
label.check { font-weight: 400; display: flex; align-items: center; }
.row { display: flex; gap: .75rem; } .row label { flex: 1; }
.nav { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; }
button { font: inherit; padding: .65rem 1.2rem; border-radius: 10px; cursor: pointer; }
button.primary { background: #42607a; color: #fff; border: 0; margin-left: auto; }
button.primary:disabled { opacity: .45; cursor: not-allowed; }
button.outline { background: #fff; color: #42607a; border: 1px solid #42607a; }
.info { background: #e6f4f1; color: #1f5f56; border-radius: 10px; padding: .75rem 1rem; margin: 1rem 0; font-size: 14px; }
.icons { display: flex; gap: .5rem; text-align: center; margin: 1rem 0; } .icons div { flex: 1; font-size: 13px; }
.icons .ic { display: block; font-size: 26px; margin-bottom: .25rem; }
.muted { color: #6b7280; font-size: 13px; font-weight: 400; }
.errors { background: #fef2f2; color: #991b1b; border-radius: 10px; padding: .5rem 1rem; margin-bottom: 1rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.days { border: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; } .days legend { font-weight: 500; font-size: 14px; margin-bottom: .3rem; }
.toggle { margin: 0; } .toggle input { position: absolute; opacity: 0; }
.toggle span { display: inline-block; padding: .4rem .7rem; border-radius: 999px; background: #f3f4f6; border: 1px solid #e5e7eb; }
.toggle input:checked + span { background: #42607a; color: #fff; }
fieldset { border: 0; padding: 0; margin: .7rem 0; } legend { font-weight: 500; font-size: 14px; }
details.doc { border: 1px solid #e5e7eb; border-radius: 10px; padding: .6rem .9rem; margin: .6rem 0; }
details.doc summary { cursor: pointer; font-weight: 600; } details.doc.signed summary { color: #16a34a; }
.doc-text { white-space: pre-wrap; max-height: 220px; overflow-y: auto; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 8px; padding: .75rem; font-size: 13px; margin: .6rem 0; }
.sigpad { width: 100%; height: 120px; background: #fff; border: 1px dashed #9ca3af; border-radius: 8px; }
.card-block { margin-top: 1.25rem; border-top: 1px solid #eee; padding-top: .5rem; }
.review p { margin: .35rem 0; }
/* Language dropdown (English / Español) in the header */
.reg-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; text-align: left; }
.lang-switch { display: flex; align-items: center; gap: .4rem; margin: 0; }
.lang-switch label { margin: 0; font-size: 12px; color: #6b7280; font-weight: 500; white-space: nowrap; }
.lang-switch select { width: auto; margin: 0; padding: .4rem .6rem; font-size: 14px; background: #fff; }
@media (max-width: 480px) { .lang-switch label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .reg-head img { height: 38px; } .lang-switch select { font-size: 16px; } }
.notice { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; border-radius: 10px; padding: .6rem .9rem; margin: .6rem 0; font-size: 13px; }

input::placeholder, textarea::placeholder { color: #c4c9d0; opacity: 1; font-style: italic; }
