/* Generado por servicio-exclusivo/sincronizar.py a partir de Servitotal: no editar aquí. */
/* Página "Contratar personal": generador de propuestas para hogares y empresas. Se apoya en styles.css. */

.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.main-nav a[aria-current="page"] { color: var(--accent); }

.hire-hero { overflow: hidden; background: radial-gradient(circle at 88% 12%, #123a7a 0, transparent 34%), var(--dark); color: #fff; }
.hire-hero-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); align-items: center; gap: clamp(2.5rem, 6vw, 6rem); padding-block: clamp(3.6rem, 7vw, 6rem); }
.hire-hero h1 { max-width: 13ch; margin-bottom: 1.4rem; color: #fff; font-size: clamp(2.9rem, 5.2vw, 5.1rem); }
.hire-hero h1 em { color: #ffdf38; font-style: normal; }
.hire-steps { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.hire-steps li { display: grid; grid-template-columns: 3rem 1fr; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border: 1px solid rgba(255,255,255,.14); border-radius: .6rem; background: rgba(255,255,255,.04); }
.hire-step-num { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid #ffdf38; border-radius: 50%; color: #ffdf38; font-size: .82rem; font-weight: 850; }
.hire-steps strong { display: block; margin-bottom: .15rem; font-size: 1.06rem; }
.hire-steps p { margin: 0; color: #c9d8ee; font-size: .92rem; line-height: 1.5; }

/* Generador */
.builder { background: #f5f9fe; }
.builder-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(21rem, .8fr); align-items: start; gap: clamp(1.5rem, 3vw, 2.5rem); }
.builder-form { gap: 1rem; }
.step { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.step-title { display: flex; align-items: center; gap: .8rem; margin: 0 0 1.4rem; font-size: 1.35rem; letter-spacing: -.03em; }
.step-title span { display: grid; place-items: center; flex: 0 0 auto; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--accent); color: #fff; font-size: .78rem; font-weight: 850; letter-spacing: 0; }
.group { min-width: 0; margin: 0 0 1.35rem; padding: 0; border: 0; }
.group legend { margin-bottom: .6rem; padding: 0; font-size: .86rem; font-weight: 800; }
.group legend small, .builder-form .field small { color: var(--muted); font-weight: 600; }
.builder-form .field { margin-bottom: 1.2rem; }
.builder-form .step > :last-child, .builder-form .field-row .field { margin-bottom: 0; }
.builder-form .field-row { margin-bottom: 1.2rem; }
.field-hint { margin: -.55rem 0 1.3rem; color: var(--muted); font-size: .8rem; }
.builder-form .step > .field-hint:last-child { margin: -.2rem 0 0; }
.builder-form select { width: 100%; min-height: 3.05rem; padding: .66rem 2.3rem .66rem .8rem; border: 1px solid #c5d6e8; border-radius: .35rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%230644a3' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right .85rem center / .75rem; color: var(--ink); font: inherit; font-weight: 400; appearance: none; outline: none; }
.builder-form select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px #d6e8fb; }

/* Opciones: las casillas reales quedan ocultas y se ve la tarjeta */
.builder-form .seg, .builder-form .role, .builder-form .option, .builder-form .chip { position: relative; display: block; font-size: inherit; font-weight: inherit; }
.builder-form .seg input, .builder-form .role input, .builder-form .option input, .builder-form .chip input { position: absolute; top: 0; left: 0; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; padding: .35rem; border-radius: .6rem; background: #e9f1fa; }
.seg span { display: grid; place-items: center; min-height: 2.9rem; padding: .45rem .8rem; border-radius: .45rem; color: var(--muted); font-size: .92rem; font-weight: 800; line-height: 1.25; text-align: center; cursor: pointer; transition: background .2s, color .2s; }
.seg input:checked + span { background: #fff; box-shadow: 0 .2rem .6rem rgba(11, 34, 85,.1); color: var(--ink); }

.role-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.3rem, 1fr)); gap: .55rem; }
.role-card { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; height: 100%; min-height: 6rem; padding: .8rem .85rem; border: 1px solid var(--line); border-radius: .55rem; background: #fff; color: var(--ink); font-size: .86rem; font-weight: 800; line-height: 1.25; cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
.role-card .icon { width: 1.7rem; height: 1.7rem; padding: .3rem; border-radius: .45rem; background: var(--accent-soft); color: var(--accent); box-sizing: content-box; transition: background .2s, color .2s; }
.role-card:hover, .option > span:hover, .chip span:hover { border-color: #8bb9e7; }
.role input:checked + .role-card { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.role input:checked + .role-card .icon { background: var(--accent); color: #fff; }

.option-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); gap: .55rem; }
.option > span { display: grid; gap: .1rem; height: 100%; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .55rem; background: #fff; cursor: pointer; transition: border-color .2s, background .2s; }
.option strong { font-size: .95rem; }
.option small { color: var(--muted); font-size: .8rem; font-weight: 500; line-height: 1.4; }
.option input:checked + span { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }

.chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.chip span { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.55rem; padding: .45rem .95rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: .88rem; font-weight: 750; line-height: 1.2; cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.chip input:checked + span { border-color: var(--accent); background: var(--accent); color: #fff; }
.chip input[type="checkbox"]:checked + span::before { content: "✓"; font-weight: 900; }
.days .chip span { min-width: 3.4rem; justify-content: center; }
.seg input:focus-visible + span, .role input:focus-visible + .role-card, .option input:focus-visible + span, .chip input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 3px; }
.quick-days { margin: .7rem 0 0; color: var(--muted); font-size: .82rem; }
.quick-days button, .link-button { padding: .2rem 0; border: 0; background: none; color: var(--accent-dark); font-size: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: .2em; }
.quick-days button + button { margin-left: .8rem; }

.quantity { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; font-size: .86rem; font-weight: 800; }
.stepper { display: inline-grid; grid-template-columns: 2.9rem 4rem 2.9rem; overflow: hidden; border: 1px solid #c5d6e8; border-radius: .45rem; }
.stepper button { border: 0; background: var(--accent-soft); color: var(--accent); font-size: 1.35rem; font-weight: 800; line-height: 1; }
.stepper button:hover { background: #d6e8fb; }
.builder-form .stepper input { min-height: 2.9rem; padding: 0; border: 0; border-radius: 0; font-weight: 800; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.stepper input::-webkit-inner-spin-button, .stepper input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }

/* Campos que faltan al intentar enviar */
.is-missing > legend, .field.is-missing { color: #c62828; }
.is-missing > legend::after, .field.is-missing::after { content: "Falta completar"; margin-left: .5rem; padding: .1rem .5rem; border-radius: 999px; background: #d6e8fb; color: #c62828; font-size: .72rem; font-weight: 800; }
.field.is-missing::after { justify-self: start; margin-left: 0; }
.field.is-missing input { border-color: #e72432; box-shadow: 0 0 0 3px #d6e8fb; }
.group.is-missing .role-card, .group.is-missing .option > span { border-color: #f2a7ad; }

/* Vista previa */
.builder-preview { position: sticky; top: 6.3rem; display: flex; flex-direction: column; max-height: calc(100vh - 7.3rem); }
.preview-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1rem; margin-bottom: .75rem; }
.preview-head h3 { margin: 0; font-size: 1.05rem; letter-spacing: -.02em; }
.progress { display: flex; align-items: center; gap: .6rem; color: var(--muted); font-size: .8rem; font-weight: 700; }
.progress-bar { width: 6.5rem; height: .45rem; overflow: hidden; border-radius: 999px; background: #d9e6f5; }
.progress-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .3s; }
.proposal-scroll { min-height: 0; overflow: auto; overscroll-behavior: contain; border-radius: .8rem; box-shadow: 0 1.2rem 3rem rgba(11, 34, 85,.1); }
.proposal { overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }
.proposal-top { display: flex; align-items: center; gap: .7rem; padding: .9rem 1.2rem; background: var(--dark); color: #fff; }
.proposal-top img { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #fff; object-fit: contain; }
.proposal-brand { display: grid; line-height: 1.1; }
.proposal-brand strong { font-size: .98rem; font-weight: 900; letter-spacing: -.03em; }
.proposal-brand small { color: #ffdf38; font-size: .52rem; font-weight: 850; letter-spacing: .16em; white-space: nowrap; }
.proposal-id { display: grid; margin-left: auto; line-height: 1.2; text-align: right; }
.proposal-id small { color: #b9cbe6; font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.proposal-id strong { font-size: .82rem; letter-spacing: .02em; white-space: nowrap; }
.proposal-body { padding: 1.2rem 1.25rem 1rem; }
.proposal-kicker { margin: 0 0 .3rem; color: var(--accent); font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.proposal-role { margin: 0; font-size: clamp(1.55rem, 2.3vw, 2rem); font-weight: 850; line-height: 1.1; letter-spacing: -.045em; }
.proposal-sub { margin: .3rem 0 .9rem; color: var(--muted); font-size: .88rem; font-weight: 700; }
.proposal-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; margin: 0; border-top: 1px solid #e3edf7; }
.proposal-list > div { min-width: 0; padding: .55rem 0; border-bottom: 1px solid #e3edf7; }
.proposal-list .wide { grid-column: 1 / -1; }
.proposal-list dt { color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.proposal-list dd { margin: .1rem 0 0; font-size: .9rem; font-weight: 700; line-height: 1.4; white-space: pre-line; overflow-wrap: anywhere; }
.proposal .is-empty { color: #97a6ba; font-style: italic; font-weight: 500; }
.proposal-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: .9rem; padding: .8rem .95rem; border-radius: .55rem; background: var(--accent-soft); }
.proposal-contact small { display: block; color: var(--muted); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.proposal-contact strong { display: block; font-size: .86rem; line-height: 1.35; overflow-wrap: anywhere; }
.proposal-contact span { display: block; color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.proposal-foot { padding: .85rem 1.25rem 1rem; border-top: 1px dashed #b9d4f0; }
.proposal-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .55rem; padding: 0; list-style: none; }
.proposal-badges li { padding: .2rem .55rem; border-radius: 999px; background: var(--accent-soft); color: var(--accent-dark); font-size: .68rem; font-weight: 800; }
.proposal-badges li::before { content: "✓ "; }
.proposal-foot p { margin: 0; color: var(--muted); font-size: .7rem; }
.preview-actions { display: grid; flex: 0 0 auto; gap: .55rem; margin-top: 1rem; }
.preview-actions .button { width: 100%; }
.publish-note { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; text-align: center; }
.preview-secondary { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.2rem; font-size: .88rem; }
.preview-msg { min-height: 1.3rem; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; text-align: center; }
.preview-msg.is-error { color: #c62828; font-weight: 700; }
.preview-msg a { color: var(--accent-dark); font-weight: 800; }

/* Garantías */
.guarantees { padding-block: clamp(4rem, 7vw, 5.5rem); background: var(--accent); color: #fff; }
.guarantees-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(2.5rem, 6vw, 4.5rem); }
.guarantees .eyebrow { color: #d4e8ff; }
.guarantees h2 { max-width: 14ch; margin: 0; color: #fff; }
.guarantees-values { margin: 1.2rem 0 0; color: #d4e8ff; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guarantee-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .7rem; margin: 0; padding: 0; list-style: none; }
.guarantee-list li { display: flex; align-items: center; gap: .75rem; min-height: 4.3rem; padding: .85rem 1rem; border-radius: .55rem; background: #fff; color: var(--ink); font-weight: 800; line-height: 1.25; }
.guarantee-list li::before { content: "✓"; display: grid; place-items: center; flex: 0 0 auto; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 900; }

/* Afiches y contacto */
.posters { background: #f5f9fe; }
.poster-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); align-items: start; gap: 1rem; }
.poster { margin: 0; }
.poster a { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: .75rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(11, 34, 85,.08); transition: transform .2s; }
.poster a:hover { transform: translateY(-3px); }
.poster img { width: 100%; height: auto; }
.poster figcaption { margin-top: .7rem; color: var(--muted); font-size: .9rem; font-weight: 700; }
.hire-contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.hire-contact h2 { max-width: 13ch; }
.hire-contact-grid > div:first-child > p:last-child { max-width: 28rem; margin: 1.2rem 0 0; color: var(--muted); font-size: 1.04rem; }
.hire-contact .direct-links { max-width: none; }

@media (max-width: 1030px) {
  .role-grid { grid-template-columns: repeat(auto-fill, minmax(7.6rem, 1fr)); }
}

@media (max-width: 920px) {
  .hire-hero-grid, .builder-grid, .guarantees-grid, .hire-contact-grid { grid-template-columns: 1fr; }
  .hire-steps { max-width: 34rem; }
  .builder-preview { position: static; max-height: none; }
  .proposal-scroll { overflow: visible; }
}

@media (max-width: 600px) {
  .step-title { font-size: 1.2rem; }
  .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-card { min-height: 5.6rem; }
  .seg span { padding-inline: .45rem; font-size: .86rem; }
  .option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .option > span { padding: .75rem .8rem; }
  .proposal-top { padding: .85rem .95rem; }
  .proposal-id strong { font-size: .76rem; }
  .proposal-contact { grid-template-columns: 1fr 1fr; }
  .proposal-contact > div:first-child { grid-column: 1 / -1; }
  .poster-grid { grid-template-columns: 1fr; }
  .mobile-actions button { display: grid; place-items: center; min-height: 2.8rem; padding: .4rem; border: 0; border-radius: .4rem; background: var(--accent); color: #fff; font-size: .83rem; font-weight: 800; text-align: center; }
  .mobile-actions a { background: var(--dark); }
}

@media (max-width: 380px) {
  .proposal-list { grid-template-columns: 1fr; }
  .days .chip span { min-width: 2.9rem; padding-inline: .6rem; }
}

@media print {
  @page { margin: 14mm; }
  body { padding: 0; background: #fff; }
  .topbar, .site-header, .hire-hero, .guarantees, .section:not(.builder), .site-footer, .mobile-actions, .skip-link, .builder .section-heading, .builder-form, .preview-head, .preview-actions { display: none !important; }
  .builder { padding: 0; background: #fff; }
  .builder .container { width: 100%; }
  .builder-grid { display: block; }
  .builder-preview { position: static; max-height: none; }
  .proposal-scroll { overflow: visible; box-shadow: none; }
  .proposal { border-color: #c5d6e8; break-inside: avoid; }
  .proposal * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
