:root{
  --app-navy:#071b35;
  --app-blue:#123d6b;
  --app-gold:#c99b3b;
  --app-paper:#f7f3e9;
  --app-line:#d9d2c2;
  --app-danger:#a93333;
  --app-success:#24704a;
  --app-shadow:0 18px 50px rgba(4,19,38,.16)
}

*{box-sizing:border-box}

.application-public-body{
  margin:0;
  min-height:100vh;
  padding-bottom:env(safe-area-inset-bottom,0);
  background:#eef2f6;
  color:#172335;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif
}

.application-public-header{
  position:relative;
  z-index:2;
  width:100%;
  max-width:none;
  margin:0;
  padding:.85rem 1.1rem;
  padding-top:max(.85rem,calc(env(safe-area-inset-top,0px) + .55rem));
  padding-inline:max(1.1rem,calc((100vw - 1120px)/2 + 1.1rem));
  background:linear-gradient(180deg,#06182f 0%,#08213e 100%)
}

.application-brand{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  color:#fff;
  text-decoration:none
}

.application-brand-mark{
  display:grid;
  place-items:center;
  width:2.8rem;
  height:2.8rem;
  flex:0 0 2.8rem;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#f2d58c;
  font-family:Georgia,serif;
  font-size:1.45rem
}

.application-brand span:last-child{display:flex;min-width:0;flex-direction:column}
.application-brand strong{color:#fff;font-family:Georgia,serif;font-size:1.15rem;line-height:1.12}
.application-brand small{color:rgba(255,255,255,.76);line-height:1.25}

.application-public-shell{
  position:relative;
  width:min(100% - 1.25rem,960px);
  margin:0 auto 3rem
}

.application-intro{
  position:relative;
  isolation:isolate;
  padding:2.65rem 1rem 1.6rem;
  color:#fff;
  text-align:center
}

.application-intro::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-1px;
  right:50%;
  bottom:0;
  left:50%;
  width:100vw;
  margin-right:-50vw;
  margin-left:-50vw;
  background:linear-gradient(180deg,#08213e 0%,#123d6b 100%)
}

.application-kicker{
  display:block;
  margin-bottom:.55rem;
  color:#d9b766;
  font-size:.77rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase
}

.application-intro h1,.application-panel h1,.application-panel h2{font-family:Georgia,serif}

.application-intro h1{
  max-width:760px;
  margin:.2rem auto .8rem;
  color:#fff;
  font-size:clamp(2rem,7vw,3.4rem);
  line-height:1.08;
  text-wrap:balance
}

.application-intro>p{
  max-width:700px;
  margin:0 auto;
  color:#d9e3ef;
  font-size:1rem;
  line-height:1.55;
  text-wrap:pretty
}

.application-step-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
  max-width:820px;
  margin:1.45rem auto 0
}

.application-step-grid div{
  display:flex;
  min-width:0;
  align-items:center;
  gap:.65rem;
  padding:.78rem .85rem;
  border:1px solid rgba(7,27,53,.12);
  border-radius:14px;
  background:#fff;
  box-shadow:0 9px 24px rgba(3,16,34,.14);
  color:#173653;
  text-align:left
}

.application-step-grid strong{
  display:grid;
  place-items:center;
  min-width:1.95rem;
  height:1.95rem;
  flex:0 0 1.95rem;
  border-radius:50%;
  background:#d0a84e;
  color:#071b35;
  font-size:1rem
}

.application-step-grid span{
  min-width:0;
  color:#173653;
  font-size:.88rem;
  font-weight:800;
  line-height:1.25
}

.application-panel{
  margin:1rem 0;
  padding:clamp(1.15rem,4vw,2rem);
  border:1px solid rgba(13,42,72,.1);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--app-shadow)
}

.application-panel h1,.application-panel h2{margin:.2rem 0 .7rem;color:#092443}
.application-panel>p{color:#536277;line-height:1.55}
.application-form{display:grid;gap:1.25rem}

.application-form fieldset{
  min-width:0;
  margin:0;
  padding:1.2rem;
  border:1px solid #dce3eb;
  border-radius:16px;
  background:#fbfcfe
}

.application-form legend{
  padding:0 .45rem;
  color:#0b345d;
  font-family:Georgia,serif;
  font-size:1.18rem;
  font-weight:700
}

.application-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem
}

.application-form label{
  display:grid;
  gap:.4rem;
  color:#28415b;
  font-size:.88rem;
  font-weight:700
}

.application-form input,
.application-form select,
.application-form textarea,
.application-copy-field input{
  width:100%;
  min-height:3rem;
  padding:.72rem .85rem;
  border:1px solid #bfcad7;
  border-radius:11px;
  background:#fff;
  color:#14283e;
  font:inherit
}

.application-form textarea{resize:vertical}

.application-form input:focus,
.application-form select:focus,
.application-form textarea:focus{
  border-color:#2364a2;
  outline:3px solid rgba(35,100,162,.15)
}

.span-2{grid-column:1/-1}

.application-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1rem
}

.application-choice{
  display:flex!important;
  grid-template-columns:auto 1fr!important;
  align-items:flex-start;
  gap:.75rem!important;
  padding:1rem;
  border:1px solid #cbd5e0;
  border-radius:14px;
  background:#fff
}

.application-choice input{width:1.2rem!important;min-height:auto!important;margin-top:.15rem}
.application-choice span{display:grid;gap:.2rem}
.application-choice small{color:#627187;font-weight:500}

.application-minor-cost-note{
  display:grid;
  gap:.38rem;
  margin:.85rem 0 1rem;
  padding:.9rem 1rem;
  border:1px solid #e3cf9d;
  border-radius:13px;
  background:#fff9ec;
  color:#435166;
  line-height:1.5
}

.application-minor-cost-note>strong{
  color:#7b5a16;
  font-size:.86rem;
  letter-spacing:.035em;
  text-transform:uppercase
}

.application-minor-cost-note p{margin:0}
.application-minor-cost-note p strong{color:#173653;font-size:1.02em}

.application-minor{
  margin:.7rem 0;
  border:1px solid #dce3eb;
  border-radius:13px;
  background:#fff
}

.application-minor summary{
  padding:.9rem 1rem;
  color:#163d63;
  font-weight:800;
  cursor:pointer
}

.application-minor[open] summary{border-bottom:1px solid #e3e8ee}
.application-minor .application-form-grid{padding:1rem}
.application-checks{display:grid;gap:.75rem;margin-top:1rem}

.application-checks label{
  display:flex;
  grid-template-columns:auto 1fr;
  align-items:flex-start;
  gap:.7rem;
  padding:.8rem;
  border-radius:11px;
  background:#f0f4f8;
  font-weight:600;
  line-height:1.45
}

.application-checks input{width:1.15rem;min-height:auto;margin-top:.15rem}
.application-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}

.application-button{
  display:inline-flex;
  min-height:3rem;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.15rem;
  border:0;
  border-radius:11px;
  background:#123f70;
  color:#fff;
  font:inherit;
  font-weight:800;
  text-decoration:none;
  cursor:pointer
}

.application-button.secondary{background:#e7edf3;color:#163854}
.application-button:hover{filter:brightness(1.07)}

.application-notice{
  margin:1rem 0;
  padding:1rem 1.1rem;
  border:1px solid #d9e1e9;
  border-radius:14px;
  background:#edf3f8;
  color:#20394f
}

.application-notice.error{border-color:#e4b9b9;background:#fff1f1;color:#792626}
.application-notice.warning,.application-notice.warn{border-color:#ead39b;background:#fff8e7;color:#684d10}
.application-notice.success{border-color:#add6bd;background:#effaf3;color:#205d3b}
.application-notice p{margin:.35rem 0 0}
.application-confirmation{padding-top:2.3rem;text-align:center}

.application-success-mark{
  display:grid;
  place-items:center;
  width:4.6rem;
  height:4.6rem;
  margin:.5rem auto;
  border-radius:50%;
  background:#e9f7ef;
  color:var(--app-success);
  font-size:2.2rem;
  font-weight:900
}

.application-confirmation h1{font-size:clamp(2rem,7vw,3rem)}
.application-status-card{display:grid;gap:.25rem;margin:1rem 0;padding:1.1rem;border-radius:15px;background:#edf4fa;text-align:center}
.application-status-card span,.application-copy-field span,.application-summary-grid span{color:#607389;font-size:.77rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.application-status-card strong{color:#0a355d;font-size:1.35rem}
.application-status-card small{color:#68798a}
.application-copy-field{display:grid;gap:.4rem;margin:1rem 0;text-align:left}
.application-copy-field input{background:#f5f7fa;font-size:.85rem}
.application-help{color:#66778a!important;font-size:.9rem;line-height:1.5}
.application-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.application-summary-grid div{display:grid;gap:.3rem;padding:1rem;border-radius:13px;background:#f4f7fa}
.application-summary-grid strong{overflow-wrap:anywhere;color:#183954}
.application-public-footer{padding:1.5rem;padding-bottom:max(1.5rem,calc(env(safe-area-inset-bottom,0px) + 1rem));color:#607083;font-size:.85rem;text-align:center}
.application-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.application-flashes{margin-top:1rem}

@media(max-width:720px){
  .application-public-header{
    padding:.7rem .9rem;
    padding-top:max(.7rem,calc(env(safe-area-inset-top,0px) + .45rem))
  }

  .application-brand{gap:.65rem}
  .application-brand-mark{width:2.35rem;height:2.35rem;flex-basis:2.35rem;font-size:1.18rem}
  .application-brand strong{font-size:1rem}
  .application-brand small{font-size:.78rem}

  .application-public-shell{
    width:min(100% - 1rem,960px);
    margin-bottom:2rem
  }

  .application-intro{
    padding:1.4rem .55rem 1rem
  }

  .application-kicker{
    margin-bottom:.45rem;
    font-size:.7rem;
    letter-spacing:.14em
  }

  .application-intro h1{
    max-width:20rem;
    margin:.1rem auto .65rem;
    font-size:clamp(2.05rem,10vw,2.75rem);
    line-height:1.03
  }

  .application-intro>p{
    max-width:36rem;
    font-size:.98rem;
    line-height:1.46
  }

  .application-step-grid{
    grid-template-columns:1fr;
    gap:.52rem;
    max-width:36rem;
    margin-top:1.05rem
  }

  .application-step-grid div{
    min-height:3.15rem;
    padding:.58rem .72rem;
    border-radius:13px;
    box-shadow:0 6px 18px rgba(3,16,34,.12)
  }

  .application-step-grid strong{
    min-width:2rem;
    height:2rem;
    flex-basis:2rem
  }

  .application-step-grid span{
    color:#173653!important;
    font-size:.9rem!important;
    line-height:1.2
  }

  .application-form-grid,.application-choice-grid,.application-summary-grid{grid-template-columns:1fr}
  .span-2{grid-column:auto}

  .application-panel{
    margin:.65rem 0;
    padding:1rem;
    border-radius:18px
  }

  .application-form{gap:.9rem}

  .application-form fieldset{
    padding:.95rem;
    border-radius:15px
  }

  .application-form fieldset>legend{
    float:left;
    width:100%;
    margin:0 0 .85rem;
    padding:0 0 .7rem;
    border-bottom:1px solid #e0e6ed;
    font-size:1.23rem;
    line-height:1.18
  }

  .application-form fieldset>legend+*{clear:both}
  .application-form-grid{gap:.8rem}
  .application-form label{font-size:.93rem}

  .application-form input,
  .application-form select,
  .application-form textarea,
  .application-copy-field input{
    min-height:3.05rem;
    padding:.68rem .78rem;
    border-radius:10px
  }

  .application-choice{padding:.85rem}
  .application-minor-cost-note{margin:.7rem 0 .85rem;padding:.8rem .85rem;font-size:.9rem}
  .application-minor .application-form-grid{padding:.85rem}
  .application-actions-row{display:grid;grid-template-columns:1fr}
  .application-button{width:100%}
}

@media(max-width:420px){
  .application-public-shell{width:min(100% - .7rem,960px)}
  .application-intro{padding:1.15rem .35rem .85rem}
  .application-intro h1{font-size:2.08rem}
  .application-intro>p{font-size:.94rem;line-height:1.42}
  .application-step-grid{margin-top:.9rem}
  .application-step-grid div{min-height:2.95rem;padding:.5rem .65rem}
  .application-panel{padding:.82rem}
  .application-form fieldset{padding:.8rem}
  .application-form fieldset>legend{font-size:1.14rem}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* RG tramos de edad y autorización 1.2.1-r2 */
.application-age-result{
  margin-top:1rem;
  padding:.85rem 1rem;
  border:1px solid #c9d5e2;
  border-radius:12px;
  background:#f4f8fc;
  color:#173653;
  font-weight:750;
  line-height:1.45
}
.application-age-result.info{border-color:#9fc2df;background:#edf7ff;color:#174b73}
.application-age-result.success{border-color:#a9d3bd;background:#eef9f2;color:#225c3e}
.application-age-result.warning{border-color:#e4c77d;background:#fff8e5;color:#70551d}
.application-age-result.error{border-color:#dda8a8;background:#fff0f0;color:#842f2f}
.application-guardian-note{
  margin:0 0 1rem;
  padding:.95rem 1rem;
  border:1px solid #b9cfe3;
  border-radius:13px;
  background:#eef7ff;
  color:#294a68
}
.application-guardian-note strong{display:block;color:#123d6b;margin-bottom:.25rem}
.application-guardian-note p{margin:0;line-height:1.5}
.application-authorization-check{
  display:flex!important;
  grid-template-columns:auto 1fr!important;
  align-items:flex-start;
  gap:.7rem!important;
  margin-top:1rem;
  padding:.9rem 1rem;
  border:1px solid #d7c27f;
  border-radius:12px;
  background:#fff9e9
}
.application-authorization-check input{width:1.2rem!important;min-height:auto!important;margin-top:.16rem}
.guardian-admin-block{padding:.2rem 0}
.guardian-admin-grid{margin-top:.85rem;padding:1rem;border:1px solid #c9d5e2;border-radius:14px;background:#f8fbfe}
.guardian-admin-block:not(.is-required){opacity:.88}
.check-line{display:flex!important;align-items:flex-start;gap:.65rem!important}
.check-line input{width:1.15rem!important;min-height:auto!important;margin-top:.15rem}
@media(max-width:680px){
  .application-age-result,.application-guardian-note,.application-authorization-check{font-size:.9rem}
}

/* RG campos de autorización visibles y accesibles 1.2.1-r4 */
.application-invalid-field > span{
  color:#8b1e14
}
.application-invalid-field input,
.application-invalid-field select,
.application-invalid-field textarea{
  border-color:#b42318!important;
  box-shadow:0 0 0 3px rgba(180,35,24,.12)!important
}
