:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ink:#07191e;--teal:#056c7f;--line:#dce5e3;--muted:#64767b;--card:#fff;--gold:#c8ae62;color:#10252b;background:#eef3f2}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#edf3f1 0,#f8faf9 45%,#edf2f1 100%)}.page{width:min(760px,100%);margin:0 auto;padding:34px 18px 50px}.brand{display:flex;align-items:center;gap:13px;margin-bottom:22px}.mark{width:54px;height:54px;border-radius:17px;background:var(--ink);color:white;display:grid;place-items:center;font-size:27px;font-weight:950;box-shadow:0 10px 25px rgba(7,25,30,.18)}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--teal)}h1{margin:2px 0 0;font-size:27px}h2{margin:5px 0 8px;font-size:30px}h3{margin:4px 0 8px}.card,.subcard,.program-card{background:rgba(255,255,255,.97);border:1px solid rgba(7,25,30,.08);border-radius:24px;box-shadow:0 20px 60px rgba(7,25,30,.10)}.card{padding:28px}.subcard{padding:20px;margin-top:18px}.program-card{padding:18px}.muted{color:var(--muted);line-height:1.55}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:22px}label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#42575d}input,select,textarea{width:100%;border:1px solid #cedbd8;background:#fff;padding:12px 13px;border-radius:12px;outline:none;color:var(--ink);font:inherit}textarea{resize:vertical;min-height:98px}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(5,108,127,.09)}button{font:inherit;cursor:pointer}.primary,.secondary,.ghost{border:0;border-radius:12px;padding:13px 16px;font-weight:900}.primary{background:var(--ink);color:#fff}.secondary{background:#edf2f1;color:var(--ink)}.ghost{background:transparent;color:#617378}.primary:disabled,.secondary:disabled,.ghost:disabled{opacity:.48;cursor:not-allowed}.span-2{grid-column:span 2}.check{display:flex;gap:12px;align-items:center;font-weight:600;line-height:1.45;padding:12px 13px;border-radius:12px;background:#fff;border:1px solid #e3ebe9;cursor:pointer;min-height:52px;transition:border-color .15s ease,background .15s ease}.check:hover{border-color:#cdddd9;background:#fbfdfc}.check:has(input:checked){border-color:#b6d3cd;background:#f4faf8}.check input{width:21px;height:21px;min-width:21px;flex:0 0 21px;margin:0;accent-color:var(--teal);cursor:pointer}.message{padding:11px 12px;border-radius:11px;background:#f7eeee;color:#943c35;font-size:13px;line-height:1.45}.message[data-type="success"]{background:#edf8f2;color:#226b45}.field-invalid{border-color:#a3443c!important;box-shadow:0 0 0 3px rgba(163,68,60,.15)!important}.photo-preview.field-invalid{border-style:solid;border-width:2px}.hidden{display:none!important}.loading,.empty-state,.success{text-align:center;padding:30px 8px}.success-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#edf8f2;color:#226b45;font-size:30px;font-weight:900}.folio{display:inline-block;margin-top:12px;padding:8px 12px;border-radius:10px;background:#edf2f1;font-weight:900}.programs{display:grid;gap:12px;margin-top:18px}.foot{text-align:center;color:#7a8a8e;font-size:12px;margin-top:16px}.field-title{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:#42575d}.field-title b,.consent-line b{color:#b95248}.photo-field{display:grid;gap:10px}.photo-row{display:flex;gap:16px;align-items:center;padding:14px;border:1px solid #d6e1df;border-radius:18px;background:#f8fbfa}.photo-preview{width:110px;height:110px;min-width:110px;border-radius:22px;background:#e7efed;display:grid;place-items:center;overflow:hidden;border:1px dashed #b7cac6;color:#79908b;font-size:34px}.photo-preview.has-photo{border-style:solid;background:#fff}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-actions{display:grid;gap:10px;min-width:0}.photo-buttons{display:flex;gap:8px;flex-wrap:wrap}.photo-actions small{color:#6a7b7f;line-height:1.4}.privacy-box{border:1px solid #d6e1df;border-radius:16px;background:#f6f9f8;padding:14px;display:grid;gap:13px}.privacy-box details{border-bottom:1px solid #dde6e4;padding-bottom:11px}.privacy-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.privacy-title{font-size:12px;font-weight:700;color:#5d7176;letter-spacing:.02em}.privacy-link{display:inline-flex;align-items:center;min-height:44px;font-size:12.5px;font-weight:600;color:#056c7f;text-decoration:underline;text-underline-offset:3px;padding:0 6px;margin:0 -6px;border-radius:8px}.privacy-summary{font-size:12.5px;line-height:1.55;color:#5c7074;margin:0!important}.privacy-box summary::-webkit-details-marker{display:none}.privacy-box summary:after{content:' ▾'}.privacy-box details[open] summary:after{content:' ▴'}.privacy-box details p{font-size:12px;line-height:1.55;color:#5c7074;margin:10px 0 0}.consent-line{font-size:12px;color:#42575d}.consent-line small{font-weight:600;color:#718388}.privacy-version{font-size:10px;color:#8a999c;text-align:right}.registration-form .primary{min-height:48px;font-size:15px}.registration-form .photo-field{margin-bottom:2px}.phone-widget{display:grid;gap:6px;position:relative;font-size:12px;font-weight:800;color:#42575d}.phone-label{line-height:1.2}.phone-control{display:grid;grid-template-columns:auto 1fr;border:1px solid #cedbd8;background:#fff;border-radius:12px;transition:.15s}.phone-control:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(5,108,127,.09)}.phone-control input{border:0!important;box-shadow:none!important;border-radius:0 12px 12px 0;padding-left:10px;min-width:0}.country-trigger{border:0;border-right:1px solid #d9e2e0;background:#f7faf9;border-radius:12px 0 0 12px;padding:0 11px;display:flex;align-items:center;gap:6px;color:var(--ink);font-weight:800;white-space:nowrap}.country-trigger b{font-size:13px;letter-spacing:.02em}.country-trigger span{font-size:13px;color:#50656a;font-weight:600;font-variant-numeric:tabular-nums}.country-trigger i{font-style:normal;color:#8ba1a5;font-size:11px;line-height:1}.phone-hint{min-height:16px;font-weight:600;color:#718388;line-height:1.3}.phone-hint.good{color:#226b45}.phone-hint.bad{color:#a3443c}.country-picker{position:absolute;z-index:50;top:66px;left:0;width:min(390px,100%);border:1px solid #cedbd8;border-radius:15px;background:#fff;box-shadow:0 20px 50px rgba(7,25,30,.2);overflow:hidden}.country-search-wrap{padding:9px;border-bottom:1px solid #e2e9e7;background:#f8fbfa}.country-search{padding:10px 11px!important}.country-list{max-height:290px;overflow:auto;padding:5px}.country-option{width:100%;border:0;background:#fff;border-radius:9px;padding:9px 10px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;text-align:left;color:var(--ink)}.country-option:hover,.country-option:focus{background:#edf5f3;outline:none}.country-flag{font-size:11px;font-weight:700;color:#5b7276;letter-spacing:.03em}.country-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.country-option strong{font-size:12px;color:#60767a}.country-empty{padding:18px;text-align:center;color:#738589;font-weight:600}@media(max-width:640px){.page{padding:22px 12px 38px}.card{padding:20px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}h2{font-size:25px}.brand{margin-bottom:16px}.photo-row{align-items:flex-start;flex-direction:column}.photo-preview{width:120px;height:120px}.photo-actions{width:100%}.photo-buttons{display:grid;grid-template-columns:1fr 1fr}.photo-buttons .ghost{grid-column:span 2;padding:9px}.privacy-box{padding:13px}.primary,.secondary{min-height:46px}.country-picker{position:fixed;left:12px;right:12px;top:auto;bottom:18px;width:auto;max-height:68vh;border-radius:20px}.country-list{max-height:52vh}.country-trigger{padding:0 9px}}
/* Refinamiento tipográfico: la etiqueta guía, el campo responde. */
h2{letter-spacing:-.022em}
.form-grid{gap:15px;margin-top:24px}
.form-grid>label{display:grid;gap:7px;font-size:12.5px;font-weight:600;color:#5d7176;letter-spacing:-.004em}
.form-grid input,.form-grid select,.form-grid textarea{font-size:16px;letter-spacing:-.006em}
.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{outline:3px solid rgba(5,108,127,.18);outline-offset:1px;border-color:#5f9aa6}
/* Agrupa los consentimientos: dejan de verse como campos sueltos. */
.privacy-box{gap:11px;background:#f7faf9;border-color:#dde7e4}
.privacy-version{font-size:10.5px;color:#93a2a5}
.field-title b,.consent-line b{color:#b95248;font-weight:700}
.consent-line{font-size:13px;color:#33484e}
.consent-line small{color:#7a8c90;font-weight:600}
@media(max-width:640px){.check{padding:12px;min-height:56px}}

/* La etiqueta del teléfono vive dentro de un div, así que .form-grid>label
   no la alcanzaba y se quedaba con el peso viejo. Se iguala a las demás. */
.phone-label{font-size:12.5px;font-weight:600;color:#5d7176;letter-spacing:-.004em;line-height:1.3}
/* El hint repetía "México · +52", que el propio selector ya muestra. Se
   reserva para cuando de verdad dice algo: un número inválido. */
.phone-hint{min-height:0;font-size:11.5px;font-weight:500;color:#8a999c;line-height:1.35;margin-top:2px}
.phone-hint:not(.good):not(.bad){display:none}
.phone-hint.good{color:#226b45;font-weight:600}
.phone-hint.bad{color:#a3443c;font-weight:600}
/* El consentimiento es texto para leer, no una etiqueta: peso normal para
   que no compita con los títulos de campo. */
.check span{font-weight:450;color:#33484e}
.check span b{font-weight:700}
.consent-line{font-weight:400}
