/* ─────────────────────────────────────────────────────────────────────────────
   Desk Steward · sistema de Crafto «Finance» (themezaa), medido el 29-sep-2026
   (../crafto-medidas/censo-*.json, home-*.json).
   Jost en todo; cuerpo 19/32; títulos 600 con interletra negativa; botones de esquina 4 en versalitas.
   Desviaciones: AA (gris de texto #666, bronce de texto #8A6331, bronce bajo blanco #976E36) y el papel
   teñido (el blanco lo usa un hermano).
   ───────────────────────────────────────────────────────────────────────────── */
:root {
  --ds-f: "Jost", "Jost Reserva", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ds-tinta: #232323;          /* --dark-gray */
  --ds-texto: #666666;          /* #828282 en la plantilla: 3.85 sobre blanco */
  --ds-bronce: #BC8947;         /* --base-color: sólo trazos y filetes */
  --ds-bronce-t: #86602F;       /* bronce como texto: 4.67 sobre el papel 2, 5.05 sobre el papel */
  --ds-bronce-f: #976E36;       /* bronce bajo letra blanca */
  --ds-bronce-f2: #82602F;      /* su estado activo */
  --ds-papel: #E5F4F4;          /* el blanco de la plantilla, teñido */
  --ds-papel-2: #D9EDEE;        /* su --very-light-gray (#F7F7F7) */
  --ds-blanco: #FFFFFF;
  --ds-filete: rgba(35, 35, 35, .12);
  --ds-filete-2: #E4E4E4;       /* --extra-medium-gray */
  --ds-sombra-t: 0 20px 60px rgba(0, 0, 0, .08);   /* box-shadow-quadruple-large */
  --ds-sombra-p: 0 0 45px rgba(0, 0, 0, .09);      /* box-shadow-double-large */
  --ds-sombra-b: 0 5px 20px rgba(0, 0, 0, .1);     /* btn-box-shadow */
  --ds-r: 6px;
  --ds-r-b: 4px;
  --ds-cont: 1220px;
  --ds-canal: 15px;
  --ds-sec: 90px;
  --ds-sec-g: 120px;
}
@media (max-width: 991px) { :root { --ds-sec: 75px; --ds-sec-g: 90px; } }
@media (max-width: 767px) { :root { --ds-sec: 50px; --ds-sec-g: 50px; --ds-canal: 20px; } }


/* ── base (bajo :where para que las clases de los componentes manden) ── */
.ds-sitio, .ds-sitio * { box-sizing: border-box; }
body { background: var(--ds-papel); }
.ds-sitio { background: var(--ds-papel); color: var(--ds-texto); font: 400 19px/32px var(--ds-f); -webkit-font-smoothing: antialiased; }
:where(.ds-sitio) :is(h1, h2, h3, h4, p, ul, ol, figure, blockquote) { margin: 0; }
:where(.ds-sitio) :is(ul, ol) { padding: 0; list-style: none; }
:where(.ds-sitio) a { color: inherit; text-decoration: none; }
:where(.ds-sitio) img { display: block; max-width: 100%; height: auto; }
:where(.ds-sitio) button, :where(.ds-sitio) input, :where(.ds-sitio) select, :where(.ds-sitio) textarea { font: inherit; color: inherit; }
.ds-sitio :focus-visible { outline: 2px solid var(--ds-bronce-t); outline-offset: 3px; }
.ds-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ds-nb { white-space: nowrap; }
.ds-cont { width: 100%; max-width: var(--ds-cont); margin: 0 auto; padding: 0 var(--ds-canal); }
.ds-ico { width: 1em; height: 1em; flex: none; }
.ds-sec { padding: var(--ds-sec) 0; }
.ds-sec--grande { padding: var(--ds-sec-g) 0; }
.ds-sec--papel2 { background: var(--ds-papel-2); }

/* ── tipografía ── */
.ds-t-heroe { font: 500 90px/80px var(--ds-f); letter-spacing: -3px; color: #fff; margin-bottom: 40px; text-wrap: balance; }
.ds-t-sec { font: 600 64px/57.6px var(--ds-f); letter-spacing: -1px; color: var(--ds-tinta); text-wrap: balance; }
.ds-t-banda { font: 500 68.8px/75.2px var(--ds-f); letter-spacing: -1px; color: #fff; text-shadow: 0 0 60px rgba(0, 0, 0, .4); text-wrap: balance; }
.ds-t-h4 { font: 600 38px/43.2px var(--ds-f); letter-spacing: -1px; color: var(--ds-tinta); text-wrap: balance; }
.ds-t-h5 { font: 600 32px/35.2px var(--ds-f); letter-spacing: -1px; color: var(--ds-tinta); }
.ds-ante { display: inline-block; font: 500 17px/32px var(--ds-f); letter-spacing: 1px; text-transform: uppercase; color: var(--ds-bronce-t); }
.ds-rot { font: 500 20px/32px var(--ds-f); color: var(--ds-tinta); }
.ds-cabeza { text-align: center; margin-bottom: 60px; }
.ds-cabeza .ds-ante { margin-bottom: 5px; }
@media (max-width: 1199px) { .ds-t-heroe { font-size: 76px; line-height: 70px; } }
@media (max-width: 991px) { .ds-t-heroe { font-size: 62px; line-height: 62px; letter-spacing: -2px; } .ds-t-sec { font-size: 54px; line-height: 50px; } .ds-t-banda { font-size: 58px; line-height: 62px; } }
@media (max-width: 767px) {
  .ds-t-heroe { font-size: 48px; line-height: 52px; letter-spacing: -2px; margin-bottom: 30px; }
  .ds-t-sec { font-size: 42px; line-height: 42px; letter-spacing: -1px; }
  .ds-t-banda { font-size: 40px; line-height: 44px; }
  .ds-t-h4 { font-size: 28.5px; line-height: 32.4px; }
  .ds-t-h5 { font-size: 24px; line-height: 26.4px; }
  .ds-cabeza { margin-bottom: 40px; }
}

/* ── botones: esquina 4, versalitas +0.5, sombra ── */
.ds-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 2px solid transparent; border-radius: var(--ds-r-b); font: 500 12px/18px var(--ds-f); letter-spacing: .5px; text-transform: uppercase; padding: 13px 26px; box-shadow: var(--ds-sombra-b); cursor: pointer; transition: background-color .2s, color .2s, transform .2s; white-space: nowrap; }
.ds-btn:hover { transform: translateY(-2px); }
.ds-btn--grande { font-size: 14px; line-height: 21px; padding: 18px 34px; }
.ds-btn--medio { font-size: 13px; line-height: 19.5px; padding: 16px 30px; }
.ds-btn--mini { font-size: 15px; line-height: 22.5px; padding: 8px 20px; text-transform: none; }
.ds-btn--mini .ds-ico { font-size: 17px; }
.ds-btn--oscuro { background: var(--ds-tinta); color: #fff; }
.ds-btn--oscuro:hover { background: #000; }
.ds-btn--bronce { background: var(--ds-bronce-f); color: #fff; }
.ds-btn--bronce:hover { background: var(--ds-bronce-f2); }
.ds-btn--blanco { background: #fff; color: var(--ds-tinta); }
.ds-btn--ancho { width: 100%; }
.ds-btn--chico { font-size: 12px; line-height: 18px; padding: 13px 26px; }
.ds-lnk { display: inline-block; font: 500 16px/24px var(--ds-f); text-transform: uppercase; color: var(--ds-tinta); padding-bottom: 2px; border-bottom: 1px solid currentColor; }
.ds-lnk:hover { color: var(--ds-bronce-t); }
.ds-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 35px; }
@media (max-width: 767px) { .ds-btn--grande { font-size: 13px; line-height: 19.5px; padding: 16px 36px; } .ds-acciones { gap: 15px 25px; } .ds-lnk { font-size: 15px; } }

/* ── marca: campana de mostrador y palabra ── */
.ds-marca { display: inline-flex; align-items: center; gap: 10px; color: var(--ds-tinta); font: 500 25px/1 var(--ds-f); letter-spacing: -.5px; white-space: nowrap; }
.ds-marca__campana { width: 30px; height: 30px; color: var(--ds-bronce); flex: none; }
.ds-marca--clara { color: #fff; }

/* ── cabecera: 92 px, transparente sobre el héroe y las bandas ── */
.ds-cab { position: absolute; left: 0; right: 0; z-index: 20; }
.ds-cab__in { display: flex; align-items: center; height: 92px; padding: 0 60px; }
.ds-cab__marca { flex: 0 0 auto; display: flex; }   /* flex: sin el renglón de 32 px, la marca queda al centro de la barra, a la altura del menú */
.ds-cab__menu { display: flex; margin: 0 auto; }
.ds-cab__menu a { padding: 10px 20px; font: 400 19px/20px var(--ds-f); letter-spacing: .5px; color: #fff; }
.ds-cab__menu a:hover, .ds-cab__menu a.on { opacity: .8; }   /* la plantilla atenúa al 60 %: sobre foto no llega a AA */
.ds-cab__util { display: flex; align-items: center; gap: 22px; color: #fff; margin-left: auto; }
.ds-idioma { font: 400 16px/1 var(--ds-f); letter-spacing: .5px; white-space: nowrap; }
.ds-idioma a[aria-current] { font-weight: 500; }
.ds-idioma a:not([aria-current]) { opacity: .82; }
.ds-cab__carrito { display: inline-flex; align-items: center; gap: 7px; font: 400 16px/1 var(--ds-f); white-space: nowrap; }
.ds-cab__carrito .ds-ico { font-size: 21px; }
.ds-cab__carrito b { font-weight: 400; }
.ds-hamb { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: none; color: #fff; font-size: 28px; cursor: pointer; }
.ds-movil { position: absolute; top: 0; left: 0; right: 0; min-height: 100vh; background: var(--ds-tinta); padding: 110px 30px 40px; z-index: -1; }
.ds-movil nav { display: flex; flex-direction: column; gap: 6px; }
.ds-movil nav a { font: 500 34px/48px var(--ds-f); letter-spacing: -1px; color: #fff; }
.ds-movil p { margin-top: 30px; color: rgba(255, 255, 255, .7); font-size: 18px; }
@media (max-width: 1279px) { .ds-cab__in { padding: 0 30px; } .ds-cab__menu a { padding: 10px 14px; } }
@media (max-width: 1099px) { .ds-cab__menu, .ds-cab .ds-cab__util > .ds-idioma, .ds-cab__cta { display: none; } .ds-hamb { display: inline-flex; } }
@media (max-width: 767px) { .ds-cab__in { height: 76px; padding: 0 var(--ds-canal); } .ds-marca { font-size: 22px; } .ds-marca__campana { width: 26px; height: 26px; } .ds-cab__carrito span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

/* ── héroe: a sangre, 900 px, velo de la plantilla (degradado negro → cobre al 30 %) ── */
.ds-heroe { position: relative; min-height: 900px; display: flex; align-items: center; text-align: center; background: var(--ds-tinta); overflow: hidden; }
.ds-heroe__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 30% 40%); }
.ds-heroe__velo { position: absolute; inset: 0; background: linear-gradient(to right top, rgba(0, 0, 0, .3), rgba(0, 0, 0, .3), rgba(48, 40, 27, .3), rgba(73, 56, 37, .3), rgba(218, 115, 16, .3)); }   /* el de la plantilla (su opacidad .3, en cada color: así la capa de abajo no la hereda) */
/* la foto de la plantilla es oscura; la nuestra, de día: el velo se concentra detrás del texto (AA) y arriba, bajo la cabecera */
.ds-heroe__velo::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 58% 52% at 50% 54%, rgba(0, 0, 0, .62), rgba(0, 0, 0, .34) 72%, rgba(0, 0, 0, .26)), linear-gradient(to bottom, rgba(0, 0, 0, .45), transparent 190px); }
.ds-heroe__in { position: relative; padding-top: 92px; padding-bottom: 120px; }
.ds-heroe__ante { display: inline-block; margin-bottom: 35px; font: 400 24px/32px var(--ds-f); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .3); padding-bottom: 2px; }
@media (max-width: 767px) { .ds-heroe { min-height: 560px; } .ds-heroe__in { padding-top: 96px; padding-bottom: 70px; } .ds-heroe__ante { font-size: 18px; line-height: 26px; margin-bottom: 20px; } .ds-heroe__velo::after { background: rgba(0, 0, 0, .5); } }

/* ── tres tarjetas sobre el héroe (sube tres cuartos de su alto) ── */
.ds-sec--tarjetas { padding-top: 0; }
.ds-tarjetas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: -218px; position: relative; z-index: 2; margin-bottom: var(--ds-sec-g); }
.ds-tarjeta { background: #fff; border-radius: 5px; box-shadow: var(--ds-sombra-t); padding: 64px 50px; text-align: center; transition: transform .35s; }
.ds-tarjeta:hover { transform: translateY(-6px); }
.ds-tarjeta__ico { display: grid; place-items: center; width: 90px; height: 90px; margin: 0 auto 25px; border-radius: 50%; border: 2px solid var(--ds-filete-2); color: var(--ds-bronce-t); font-size: 38px; }
.ds-tarjeta__t { font: 500 22px/32px var(--ds-f); color: var(--ds-tinta); margin-bottom: 5px; }
.ds-tarjeta p { margin-bottom: 15px; }
.ds-tarjeta__lnk { display: inline-block; font: 500 18px/26px var(--ds-f); text-transform: uppercase; color: var(--ds-bronce-t); border-bottom: 1px solid currentColor; }
@media (max-width: 991px) { .ds-tarjetas { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; margin-top: -120px; } }
@media (max-width: 767px) { .ds-tarjetas { margin-top: 30px; gap: 20px; margin-bottom: 60px; } .ds-tarjeta { padding: 46px 30px; } }

/* ── partido: texto con palomitas y foto ── */
.ds-partido { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: center; }
.ds-partido__txt .ds-t-sec { margin-bottom: 30px; }
.ds-palomitas { display: grid; gap: 25px; margin-bottom: 50px; }
.ds-palomitas li { display: flex; align-items: center; gap: 20px; line-height: 30px; }
.ds-palomitas li > span:last-child { max-width: 380px; }
.ds-palomita { display: grid; place-items: center; width: 50px; height: 50px; flex: none; border-radius: 50%; border: 2px solid var(--ds-bronce); color: var(--ds-bronce-t); font-size: 20px; }
.ds-foto { border-radius: var(--ds-r); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ds-partido__foto { max-width: 480px; justify-self: end; width: 100%; }
@media (max-width: 991px) { .ds-partido { grid-template-columns: minmax(0, 1fr); gap: 50px; } .ds-partido__foto { justify-self: start; } }

/* ── líneas en retícula de 3 × 3 (los recuadros de iconos de «About») ── */
.ds-celdas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ds-filete); border-left: 1px solid var(--ds-filete); }
.ds-celda { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 45px 30px 40px; border-right: 1px solid var(--ds-filete); border-bottom: 1px solid var(--ds-filete); transition: background-color .25s; }
.ds-celda:hover { background: rgba(255, 255, 255, .55); }
.ds-celda__ico { font-size: 46px; color: var(--ds-bronce-t); margin-bottom: 10px; }
.ds-celda__t { font: 500 22px/30px var(--ds-f); color: var(--ds-tinta); }
.ds-celda__d { font-size: 17px; line-height: 26px; }
@media (max-width: 991px) { .ds-celdas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ds-celda:last-child { grid-column: 1 / -1; } }
@media (max-width: 575px) { .ds-celdas { grid-template-columns: minmax(0, 1fr); } .ds-celda { padding: 32px 20px; } }

/* ── cómo trabajamos: dos fotos encimadas, texto y cifras ── */
.ds-camino { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 90px; align-items: center; }
.ds-camino__fotos { position: relative; padding: 0 0 110px; }
.ds-camino__a { width: 72%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--ds-r); }
.ds-camino__b { position: absolute; right: 0; bottom: 0; width: 52%; aspect-ratio: 5 / 6; object-fit: cover; border-radius: var(--ds-r); box-shadow: var(--ds-sombra-t); border: 10px solid var(--ds-papel); }
.ds-camino__txt .ds-t-sec { margin: 5px 0 25px; }
.ds-camino__txt > p { margin-bottom: 40px; }
.ds-cifras { display: flex; gap: 60px; margin-bottom: 45px; }
.ds-cifra { font: 600 55px/55px var(--ds-f); letter-spacing: -2px; color: var(--ds-bronce-t); }
.ds-cifra__t { font-size: 17px; line-height: 26px; color: var(--ds-tinta); margin-top: 8px; max-width: 170px; }
@media (max-width: 991px) { .ds-camino { grid-template-columns: minmax(0, 1fr); gap: 50px; } .ds-camino__fotos { max-width: 560px; } }
@media (max-width: 767px) { .ds-cifra { font-size: 41px; line-height: 41px; } .ds-cifras { gap: 40px; } .ds-camino__fotos { padding-bottom: 70px; } }

/* ── línea de llamado («Any question? We're ready to help!») ── */
.ds-cta-linea { font: 500 38px/43.2px var(--ds-f); letter-spacing: -1px; color: var(--ds-tinta); text-align: center; text-wrap: balance; }
.ds-cta-linea a { font-weight: 600; border-bottom: 2px solid currentColor; }
.ds-cta-linea a:hover { color: var(--ds-bronce-t); }
.ds-sec--cta { padding: 70px 0; }
.ds-exps + .ds-cta-linea { margin-top: 70px; }
@media (max-width: 767px) { .ds-cta-linea { font-size: 28.5px; line-height: 32.4px; } .ds-sec--cta { padding: 45px 0; } }

/* ── banda de título: 540 px, foto con velo y migas ── */
.ds-banda { position: relative; min-height: 540px; display: flex; align-items: center; text-align: center; background: var(--ds-tinta); overflow: hidden; }
.ds-banda__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 50% 40%); }
.ds-banda__velo { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .5), transparent 190px), linear-gradient(to right top, rgba(35, 35, 35, .86), rgba(35, 35, 35, .62) 60%, rgba(120, 88, 43, .62)); }
.ds-banda__in { position: relative; padding-top: 92px; padding-bottom: 40px; }
.ds-migas ol { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 14px; margin-top: 30px; color: #fff; font-size: 17px; line-height: 26px; }
.ds-migas li + li::before { content: "›"; margin-right: 14px; opacity: .7; }
.ds-migas a:hover { opacity: .75; }
@media (max-width: 767px) { .ds-banda { min-height: 380px; } .ds-banda__in { padding-top: 96px; } .ds-migas ol { font-size: 15px; } }

/* ── servicios: intro y tarjetas de línea (las de «Our expertise») ── */
.ds-intro { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 60px; align-items: center; }
@media (max-width: 991px) { .ds-intro { grid-template-columns: minmax(0, 1fr); gap: 25px; } }
.ds-exps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.ds-exp { display: flex; flex-direction: column; background: #fff; border-radius: var(--ds-r); overflow: hidden; box-shadow: var(--ds-sombra-t); transition: transform .35s; }
.ds-exp:hover { transform: translateY(-6px); }
.ds-exp__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ds-exp__cuerpo { padding: 32px 36px 28px; flex: 1; }
.ds-exp__t { font: 500 22px/30px var(--ds-f); color: var(--ds-tinta); margin-bottom: 10px; }
.ds-exp__cuerpo p { font-size: 17px; line-height: 28px; }
.ds-exp__pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 16px 36px; border-top: 1px solid var(--ds-filete-2); font: 500 15px/24px var(--ds-f); text-transform: uppercase; }
.ds-exp__pie span { color: var(--ds-texto); text-transform: none; font-weight: 400; font-size: 16px; }
.ds-exp__pie a { display: inline-flex; align-items: center; gap: 6px; color: var(--ds-bronce-t); white-space: nowrap; }
@media (max-width: 991px) { .ds-exps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .ds-exps { grid-template-columns: minmax(0, 1fr); } .ds-exp__cuerpo { padding: 26px 24px 22px; } .ds-exp__pie { padding: 14px 24px; } }

/* ── detalle de línea y de plan: lateral + principal (la página de «Expertise details») ── */
.ds-detalle { display: grid; grid-template-columns: minmax(0, 331px) minmax(0, 1fr); gap: 76px; align-items: start; }
.ds-lateral { position: sticky; top: 30px; display: grid; gap: 50px; }
.ds-lateral__lista li { border-bottom: 1px solid var(--ds-filete); padding-bottom: 12px; margin-bottom: 12px; }
.ds-lateral__lista a { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 18px; line-height: 26px; color: var(--ds-texto); }
.ds-lateral__lista a .ds-ico { font-size: 16px; }
.ds-lateral__lista a:hover, .ds-lateral__lista a.on { color: var(--ds-tinta); }
.ds-lateral__lista a.on { font-weight: 500; }
.ds-miniform { background: var(--ds-papel-2); border-radius: var(--ds-r); padding: 35px; display: grid; gap: 15px; }
.ds-miniform__t { font: 600 22px/32px var(--ds-f); letter-spacing: -.5px; color: var(--ds-tinta); margin-bottom: 5px; }
.ds-miniform input, .ds-miniform textarea { width: 100%; background: #fff; border: 1px solid var(--ds-filete-2); border-radius: var(--ds-r); box-shadow: var(--ds-sombra-p); padding: 7px 15px; font-size: 16px; line-height: 32px; color: var(--ds-tinta); }
.ds-miniform textarea { resize: vertical; min-height: 120px; }
.ds-acepto { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 22px; text-align: left; }
.ds-acepto input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ds-bronce-f); flex: none; }
.ds-acepto a { text-decoration: underline; text-underline-offset: 2px; color: var(--ds-tinta); }
.ds-detalle__main > * + * { margin-top: 30px; }
.ds-detalle__main > .ds-t-h5 { margin-top: 70px; margin-bottom: 10px; }
.ds-detalle__foto { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--ds-r); }
@media (max-width: 991px) { .ds-detalle { grid-template-columns: minmax(0, 1fr); gap: 50px; } .ds-lateral { position: static; order: 2; } }

/* ── tarjeta de plan (la de «Pricing»): blanca con sombra; la del plan actual, en bronce ── */
.ds-planes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; align-items: stretch; }
.ds-plan { display: flex; flex-direction: column; background: #fff; border-radius: var(--ds-r); box-shadow: var(--ds-sombra-p); padding: 50px 42px 44px; text-align: center; }
.ds-plan__nombre { font: 500 19px/32px var(--ds-f); text-transform: uppercase; color: var(--ds-bronce-t); margin-bottom: 10px; }
.ds-plan__marca { display: block; font-size: 14px; line-height: 22px; letter-spacing: .5px; }
.ds-plan__precio { font: 400 45px/45px var(--ds-f); letter-spacing: -2px; color: var(--ds-tinta); }
.ds-plan__signo { font-size: .5em; vertical-align: .75em; margin-right: 4px; letter-spacing: 0; }
.ds-plan__iva { font-size: 16px; line-height: 32px; }
.ds-plan__incluye { font-size: 17px; line-height: 28px; margin: 22px 0 0; padding-top: 22px; border-top: 1px solid var(--ds-filete); text-align: left; }
.ds-plan__rot { font: 500 15px/24px var(--ds-f); text-transform: uppercase; letter-spacing: .5px; color: var(--ds-tinta); text-align: left; margin-top: 22px; }
.ds-plan__lista { text-align: left; margin-bottom: 30px; }
.ds-plan__lista li { padding: 12px 0; border-bottom: 1px solid var(--ds-filete); font-size: 17px; line-height: 26px; }
.ds-plan__lista li:last-child { border-bottom: 0; }
.ds-plan__acc { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.ds-plan__detalle { font-size: 14px; line-height: 21px; }
.ds-plan--actual { background: var(--ds-bronce-f); box-shadow: none; }
/* número impar de planes: el último, centrado (las filas de precios de la plantilla van centradas) */
.ds-planes > .ds-plan:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 15px); }
.ds-plan--actual, .ds-plan--actual .ds-plan__nombre, .ds-plan--actual .ds-plan__precio, .ds-plan--actual .ds-plan__rot, .ds-plan--actual .ds-plan__lnk, .ds-plan--actual .ds-lnk { color: #fff; }
.ds-plan--actual .ds-plan__incluye, .ds-plan--actual .ds-plan__lista li { border-color: rgba(255, 255, 255, .3); }
@media (max-width: 1199px) { .ds-plan { padding: 44px 30px 38px; } }
@media (max-width: 767px) { .ds-planes { grid-template-columns: minmax(0, 1fr); } .ds-planes > .ds-plan:last-child:nth-child(odd) { width: 100%; } .ds-plan__precio { font-size: 34px; line-height: 34px; } }

/* ── caja oscura («Benefits and covered services») ── */
.ds-caja-oscura { background: var(--ds-tinta); border-radius: var(--ds-r); padding: 55px; color: rgba(255, 255, 255, .78); }
.ds-caja-oscura .ds-t-h5 { color: #fff; font-weight: 500; margin-bottom: 25px; }
.ds-caja__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 40px; }
.ds-caja__lista li { display: flex; gap: 12px; align-items: flex-start; line-height: 30px; }
.ds-caja__ico { color: #D6A868; font-size: 18px; margin-top: 6px; }
@media (max-width: 767px) { .ds-caja-oscura { padding: 35px 28px; } .ds-caja__lista { grid-template-columns: minmax(0, 1fr); } }

/* ── ficha: precio grande con su IVA ── */
.ds-precio-ficha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 24px; padding-bottom: 26px; border-bottom: 1px solid var(--ds-filete); }
.ds-precio-ficha__n { font: 400 64px/60px var(--ds-f); letter-spacing: -2px; color: var(--ds-tinta); }
.ds-precio-ficha__iva { font-size: 17px; line-height: 26px; padding-bottom: 6px; }
.ds-precio-ficha__iva b { display: block; font-weight: 500; color: var(--ds-tinta); }
.ds-ficha__incluye { margin-top: 8px !important; color: var(--ds-texto); }
h2.ds-rot { margin-top: 30px; }
.ds-detalle__main .ds-ante + .ds-precio-ficha { margin-top: 10px; }
@media (max-width: 767px) { .ds-precio-ficha__n { font-size: 48px; line-height: 48px; } }

/* ── preguntas frecuentes (acordeón de la plantilla) ── */
.ds-faq__item { border-bottom: 1px solid var(--ds-filete-2); }
.ds-faq__p { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 15px 0; border: 0; background: none; text-align: left; font: 500 20px/32px var(--ds-f); color: var(--ds-tinta); cursor: pointer; }
.ds-faq__ico { font-size: 18px; transition: transform .25s; }
.ds-faq__p[aria-expanded="true"] .ds-faq__ico { transform: rotate(180deg); }
.ds-faq__r { padding: 0 25px 28px 0; }
.ds-faq--oscuro .ds-faq__item { border-color: rgba(255, 255, 255, .15); }
.ds-faq--oscuro .ds-faq__p { color: #fff; }
.ds-faq--oscuro .ds-faq__r { color: rgba(255, 255, 255, .72); }

/* ── contacto: oficina, formulario sobre foto y banda oscura con preguntas ── */
.ds-oficina { display: grid; grid-template-columns: minmax(0, 480px) minmax(0, 420px); gap: 60px; justify-content: center; align-items: center; }
.ds-oficina__foto { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--ds-r); }
.ds-oficina__t { font: 500 22px/32px var(--ds-f); color: var(--ds-tinta); margin-bottom: 5px; }
.ds-oficina__txt > * + * { margin-top: 12px; }   /* el título es h2 en el sitio: el aire va entre hermanos, sean p o no */
.ds-oficina__txt a { color: var(--ds-tinta); text-decoration: underline; text-underline-offset: 3px; }
.ds-oficina__nota { font-size: 17px; }
@media (max-width: 767px) { .ds-oficina { grid-template-columns: minmax(0, 1fr); gap: 30px; } }
.ds-formsec { position: relative; padding: 120px 0; overflow: hidden; background: var(--ds-tinta); }
.ds-formsec__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 50% 40%); }
.ds-formsec::before { content: ""; position: absolute; inset: 0; background: rgba(35, 35, 35, .25); z-index: 1; }
.ds-form { position: relative; z-index: 2; max-width: 520px; margin: 0 auto; background: #fff; border-radius: var(--ds-r); box-shadow: var(--ds-sombra-t); padding: 60px 56px 56px; text-align: center; display: grid; gap: 6px; }
.ds-form .ds-t-h4 { margin: 4px 0 28px; }
.ds-campo { position: relative; display: block; text-align: left; }
.ds-campo input, .ds-campo select, .ds-campo textarea { width: 100%; border: 0; border-bottom: 1px solid var(--ds-filete-2); background: transparent; padding: 14px 32px 14px 0; font-size: 17px; line-height: 26px; color: var(--ds-tinta); border-radius: 0; appearance: none; }
.ds-campo textarea { resize: vertical; min-height: 92px; }
.ds-campo > .ds-ico { position: absolute; right: 2px; top: 18px; font-size: 20px; color: #9a9a9a; pointer-events: none; }
.ds-campo input::placeholder, .ds-campo textarea::placeholder { color: #707070; }
.ds-form .ds-acepto { text-align: left; margin: 18px 0 20px; }
.ds-form__ok { margin-top: 14px; font-size: 16px; line-height: 24px; color: var(--ds-tinta); }
@media (max-width: 767px) { .ds-formsec { padding: 50px 0; } .ds-form { padding: 40px 24px 34px; } }
.ds-oscura { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--ds-tinta); }
.ds-oscura__txt { padding: 110px max(var(--ds-canal), calc((100vw - var(--ds-cont)) / 2 + 15px)) 110px; padding-right: 80px; }
.ds-oscura .ds-t-sec { color: #fff; margin-bottom: 40px; }
.ds-oscura__foto { width: 100%; height: 100%; object-fit: cover; min-height: 420px; }
@media (max-width: 991px) { .ds-oscura { grid-template-columns: minmax(0, 1fr); } .ds-oscura__txt { padding: 70px var(--ds-canal); } .ds-oscura__foto { min-height: 300px; max-height: 420px; } }

/* ── pie (el de la plantilla: llamado, marca y columnas) ── */
.ds-pie { background: var(--ds-papel-2); padding: 90px 0 70px; }
.ds-pie .ds-cta-linea { margin-bottom: 80px; }
.ds-pie .ds-cta-linea a { color: var(--ds-bronce-t); font-weight: 500; }
.ds-pie__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr) minmax(0, 3fr); gap: 40px; }
.ds-pie__marca p { margin-top: 18px; max-width: 290px; }
.ds-pie__copy { font-size: 16px; }
.ds-pie__t { font: 500 20px/32px var(--ds-f); color: var(--ds-tinta); margin-bottom: 10px; }
.ds-pie__t--legal { margin-top: 26px; }
.ds-pie ul li { font-size: 17px; line-height: 30px; }
.ds-pie ul a:hover { color: var(--ds-tinta); }
.ds-pie__datos li { word-break: break-word; }
@media (max-width: 991px) { .ds-pie__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ds-pie__t--vacio { display: none; } }
@media (max-width: 575px) { .ds-pie { padding: 50px 0; } .ds-pie__grid { grid-template-columns: minmax(0, 1fr); } .ds-pie .ds-cta-linea { margin-bottom: 50px; } }

/* ═══════════════════════════════════════════════════════════════════
   Piezas que sólo existen en el sitio (la maqueta no las necesita):
   Jost alojada con sus reservas medidas, salto al contenido, menú del
   teléfono accesible, avisos del formulario, textos legales, 404, la banda
   corta y las pantallas de WooCommerce con el sistema claro de Crafto.
   Mismos tokens de la maqueta.
   ═══════════════════════════════════════════════════════════════════ */

/* Jost (Indestructible Type, OFL): el subconjunto latino, variable de 100 a 900. */
@font-face { font-family: 'Jost'; src: url('../fonts/Jost-latin.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
/* Reservas medidas sobre textos del sitio (ancho medio y métricas verticales, sitio/fuentes/metricas-reserva.py),
   para que el texto no salte cuando llega la fuente: Arial en escritorio e iOS; Roboto en Android.
   Dos caras por reserva: la del texto (Jost 400 contra la regular) y la de los títulos (Jost 550 contra la negrita). */
@font-face { font-family: 'Jost Reserva'; src: local('Arial'), local('ArialMT'); font-weight: 300 450; size-adjust: 95.84%; ascent-override: 111.65%; descent-override: 39.13%; line-gap-override: 0%; }
@font-face { font-family: 'Jost Reserva'; src: local('Arial Bold'), local('Arial-BoldMT'); font-weight: 451 900; size-adjust: 93.97%; ascent-override: 113.87%; descent-override: 39.91%; line-gap-override: 0%; }
@font-face { font-family: 'Jost Reserva R'; src: local('Roboto'), local('Roboto-Regular'); font-weight: 300 450; size-adjust: 96.23%; ascent-override: 111.19%; descent-override: 38.97%; line-gap-override: 0%; }
@font-face { font-family: 'Jost Reserva R'; src: local('Roboto Bold'), local('Roboto-Bold'); font-weight: 451 900; size-adjust: 99.86%; ascent-override: 107.15%; descent-override: 37.55%; line-gap-override: 0%; }
:root { --ds-f: 'Jost', 'Jost Reserva', 'Jost Reserva R', system-ui, -apple-system, 'Segoe UI', sans-serif; }
/* Bricks fija la raíz en 62.5 % y encoge lo que se mide en rem. */
html { font-size: 100%; }
html.ds-sin-scroll { overflow: hidden; }
body { margin: 0; font-family: var(--ds-f); }   /* lo que un plugin pinta fuera de .ds-sitio (el aviso de cookies) hereda la letra */

.ds-saltar { position: absolute; left: 16px; top: -80px; z-index: 100; background: #fff; color: var(--ds-tinta) !important; padding: 12px 18px; border-radius: var(--ds-r-b); font-size: 16px; font-weight: 500; box-shadow: var(--ds-sombra-b); }
.ds-saltar:focus { top: 12px; }
main:focus { outline: none; }

/* ── el menú del teléfono: en el sitio va fuera de la cabecera, fijo sobre la página y bajo la barra ── */
.ds-movil { position: fixed; inset: 0; z-index: 19; min-height: 0; overflow-y: auto; }
.ds-movil[hidden] { display: none !important; }
.ds-movil nav a { display: block; padding: 4px 0; }
.ds-movil__idioma { margin-top: 24px; }
.ds-movil .ds-idioma a { color: #fff; }
/* la hamburguesa se vuelve cruz con el menú abierto, como en Crafto */
.ds-hamb .ds-ico--x, .ds-hamb[aria-expanded="true"] .ds-ico--list { display: none; }
.ds-hamb[aria-expanded="true"] .ds-ico--x { display: block; }

/* ── el idioma del pie: sobre el papel, en tinta; va dentro del renglón del copyright, así que el
   que cambia de idioma se subraya (un enlace en un texto no se distingue sólo por el color) ── */
.ds-pie .ds-idioma a { color: var(--ds-tinta); }
.ds-pie .ds-idioma a:not([aria-current]) { text-decoration: underline; text-underline-offset: 3px; }

/* ── formularios ── */
.ds-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds-aviso { margin: 0 0 6px; padding: 12px 16px; border-radius: var(--ds-r); font-size: 16px; line-height: 1.45; text-align: left; }
.ds-aviso--ok { background: #EAF5EE; border: 1px solid #3F8A5A; color: #1F4D30; }
.ds-aviso--error { background: #FBEDEB; border: 1px solid #C0503E; color: #7E2A1E; }
#formulario, #ayuda { scroll-margin-top: 24px; }

/* ── la banda corta: carrito, pago, legales y 404 ── */
.ds-banda--corta { min-height: 400px; }
@media (max-width: 767px) { .ds-banda--corta { min-height: 320px; } }

/* ── textos legales ── */
.ds-angosto { max-width: 860px; }
.ds-legal__fecha { font-size: 17px; margin-bottom: 26px; color: var(--ds-texto); }
.ds-legal__nota { font-size: 16px; margin-bottom: 26px; padding: 12px 16px; background: #fff; border-radius: var(--ds-r); }
.ds-legal { display: grid; gap: 14px; font-size: 18px; line-height: 1.75; color: var(--ds-texto); }
.ds-legal > * { margin: 0 !important; }
.ds-legal h2 { margin-top: 30px !important; font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: -.5px; color: var(--ds-tinta); }
.ds-legal strong { color: var(--ds-tinta); font-weight: 500; }
.ds-legal ul, .ds-legal ol { display: grid; gap: 8px; padding-left: 22px; }
.ds-legal ul { list-style: disc; }
.ds-legal ol { list-style: decimal; }
.ds-legal li::marker { color: var(--ds-bronce-t); }
.ds-legal a { color: var(--ds-bronce-t); text-decoration: underline; text-underline-offset: 3px; }
.ds-legal a:hover { color: var(--ds-tinta); }
.ds-legal table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; background: #fff; border-radius: var(--ds-r); overflow: hidden; }
.ds-legal th, .ds-legal td { padding: 14px 16px; text-align: left; vertical-align: top; border: 1px solid var(--ds-filete-2); }
.ds-legal thead th { background: var(--ds-papel-2); color: var(--ds-tinta); font-weight: 500; }
@media (max-width: 767px) { .ds-legal { font-size: 17px; } .ds-legal h2 { font-size: 25px; } }

/* ── 404 ── */
.ds-404 { text-align: center; display: grid; justify-items: center; gap: 22px; }
.ds-404__n { font: 600 clamp(110px, 16vw, 180px)/1 var(--ds-f); letter-spacing: -6px; color: var(--ds-bronce-t); }
.ds-404 .ds-acciones { justify-content: center; }

/* ═══ WooCommerce (carrito, pago, pedido recibido) con el sistema claro de Crafto ═══ */
.ds-woo__cuerpo { padding-top: 60px; padding-bottom: var(--ds-sec-g); }
.ds-woo__nota { margin-bottom: 34px; font-size: 17px; color: var(--ds-texto); }
.ds-woo, .ds-woo .wc-block-components-main, .ds-woo .wc-block-components-sidebar { color: var(--ds-tinta); }
.ds-woo .has-text-align-center { text-align: center; }
.ds-woo a:not(.ds-btn):not(.wc-block-components-button) { color: var(--ds-bronce-t); }
/* un enlace dentro de un renglón no se distingue sólo por el color */
.ds-woo .wc-block-checkout__terms a, .ds-woo .wc-block-components-notice-banner a { text-decoration: underline; text-underline-offset: 2px; }
.ds-woo .wc-block-components-product-name { color: var(--ds-tinta) !important; font-size: 19px; font-weight: 500; line-height: 1.35; text-decoration: none; }
.ds-woo .wc-block-components-product-metadata__description { display: none; }
.ds-woo .wc-block-components-product-price, .ds-woo .wc-block-formatted-money-amount, .ds-woo .wc-block-components-totals-item__value { font-variant-numeric: tabular-nums; }

/* títulos */
.ds-woo .wc-block-components-checkout-step__title, .ds-woo .wc-block-components-title, .ds-woo .wc-block-cart__totals-title,
.ds-woo .wc-block-components-order-summary__button-text { color: var(--ds-tinta); font-weight: 600; letter-spacing: -.3px; }
.ds-woo .wc-block-cart-items__header { font-size: 14px; letter-spacing: 1px; text-transform: uppercase; color: var(--ds-texto); font-weight: 500; }
.ds-woo .wc-block-components-checkout-step__description, .ds-woo .wc-block-components-address-card, .ds-woo .wc-block-components-totals-footer-item-tax,
.ds-woo .wc-block-components-product-metadata, .ds-woo .wc-block-components-checkout-return-to-cart-button { color: var(--ds-texto); }

/* botones: los de la plantilla (esquina 4, versalitas, tinta) */
.ds-woo .wc-block-components-button:not(.is-link), .ds-woo .wc-block-cart__submit-button, .ds-woo .wc-block-components-checkout-place-order-button,
.ds-woo .wp-block-button__link, .ds-woo .button {
  min-height: 58px; padding: 18px 34px; border: 2px solid transparent; border-radius: var(--ds-r-b) !important; background: var(--ds-tinta) !important;
  color: #fff !important; font: 500 14px/21px var(--ds-f); letter-spacing: .5px; text-transform: uppercase; text-decoration: none; box-shadow: var(--ds-sombra-b);
}
.ds-woo .wc-block-components-button:not(.is-link):hover, .ds-woo .wc-block-cart__submit-button:hover { background: #000 !important; }
.ds-woo .wc-block-components-button:not(.is-link):focus-visible { outline: 2px solid var(--ds-bronce-t); outline-offset: 3px; }
.ds-woo .wc-block-components-button.is-link { color: var(--ds-bronce-t); }

/* campos: los del formulario corto de la plantilla (blancos, filete #E4E4E4, esquina 6, sombra) */
.ds-woo .wc-block-components-text-input input, .ds-woo .wc-block-components-text-input input:-webkit-autofill,
.ds-woo .wc-blocks-components-select .wc-blocks-components-select__select, .ds-woo .wc-block-components-textarea,
.ds-woo .wc-block-components-combobox .wc-block-components-combobox-control input, .ds-woo input.input-text, .ds-woo select {
  background: #fff !important; color: var(--ds-tinta) !important; border: 1px solid var(--ds-filete-2) !important; border-radius: var(--ds-r) !important;
  box-shadow: var(--ds-sombra-p) !important;
}
.ds-woo .wc-blocks-components-select .wc-blocks-components-select__container { background: #fff; border-radius: var(--ds-r); }
.ds-woo .wc-block-components-address-form .wc-block-components-address-form__country { margin-top: 12px; }   /* el mismo aire que los demás campos */
.ds-woo .wc-block-components-text-input input:focus, .ds-woo .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.ds-woo .wc-block-components-textarea:focus, .ds-woo .wc-block-components-combobox .wc-block-components-combobox-control input:focus {
  border-color: var(--ds-tinta) !important; outline: 2px solid var(--ds-bronce-t); outline-offset: 1px;
}
.ds-woo .wc-block-components-text-input label, .ds-woo .wc-blocks-components-select__label, .ds-woo .wc-block-components-combobox .wc-block-components-combobox-control label,
.ds-woo .wc-block-components-textarea + label { color: var(--ds-texto) !important; }
.ds-woo .wc-block-components-validation-error p, .ds-woo .wc-block-components-validation-error { color: #A8321F; }
.ds-woo .wc-block-components-text-input.has-error input, .ds-woo .has-error .wc-blocks-components-select__select { border-color: #A8321F !important; }

/* casillas y opciones de pago */
.ds-woo .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { background: #fff; border: 1px solid #8C8C8C; border-radius: 4px; }
.ds-woo .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--ds-tinta); border-color: var(--ds-tinta); }
.ds-woo .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }
.ds-woo .wc-block-components-radio-control__input { background: #fff !important; border: 1px solid #8C8C8C !important; }
.ds-woo .wc-block-components-radio-control__input:checked::before { background: var(--ds-bronce-f) !important; }
.ds-woo .wc-block-checkout__payment-method .wc-block-components-radio-control__option,
.ds-woo .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option { background: #fff; border-color: var(--ds-filete-2) !important; border-radius: var(--ds-r) !important; }
.ds-woo .wc-block-components-radio-control-accordion-content { color: var(--ds-texto); }

/* cantidad y quitar */
.ds-woo .wc-block-components-quantity-selector { border-radius: var(--ds-r-b); background: #fff; }
.ds-woo .wc-block-components-quantity-selector::after { border-color: var(--ds-filete-2) !important; border-radius: var(--ds-r-b) !important; }
.ds-woo .wc-block-components-quantity-selector input, .ds-woo .wc-block-components-quantity-selector button { color: var(--ds-tinta) !important; background: transparent !important; }
.ds-woo .wc-block-cart-item__remove-link { color: var(--ds-texto) !important; }

/* resumen: la tarjeta de precios de la plantilla (blanca, sombra, esquina 6) */
.ds-woo .wp-block-woocommerce-checkout-order-summary-block, .ds-woo .wc-block-cart__sidebar { background: #fff; border: 0; border-radius: var(--ds-r); box-shadow: var(--ds-sombra-p); padding: 30px; }
.ds-woo .wc-block-components-totals-wrapper, .ds-woo .wc-block-components-order-summary-item, .ds-woo .wc-block-cart-items td, .ds-woo .wc-block-cart-items th,
.ds-woo .wc-block-components-panel, .ds-woo .wc-block-components-totals-coupon { border-color: var(--ds-filete) !important; }
.ds-woo table.wc-block-cart-items { border-color: var(--ds-filete) !important; }
.ds-woo .wc-block-components-order-summary-item__quantity { background: #fff; color: var(--ds-tinta); border-color: var(--ds-filete-2); box-shadow: none; }
.ds-woo .wc-block-components-order-summary-item__image > img, .ds-woo .wc-block-cart-item__image img { border-radius: var(--ds-r); }
.ds-woo .wc-block-components-totals-item__label, .ds-woo .wc-block-components-totals-item__value { color: var(--ds-tinta); }
.ds-woo .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.ds-woo .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 22px; font-weight: 600; letter-spacing: -.3px; }

/* avisos */
.ds-woo .wc-block-components-notice-banner { background: #fff; color: var(--ds-tinta); border: 1px solid var(--ds-filete-2); border-radius: var(--ds-r); }
.ds-woo .wc-block-components-notice-banner.is-error { border-color: #C0503E; }
.ds-woo .wc-block-components-notice-banner.is-success { border-color: #3F8A5A; }
.woocommerce-notices-wrapper > * { list-style: none; margin: 0 0 20px; padding: 14px 18px; background: #fff; color: var(--ds-tinta); border: 1px solid var(--ds-filete-2); border-radius: var(--ds-r); }

/* carrito vacío */
.ds-woo .wc-block-cart__empty-cart__title { margin-top: 10px; font-size: 38px; font-weight: 600; letter-spacing: -1px; color: var(--ds-tinta); }
.ds-woo .wp-block-woocommerce-empty-cart-block { padding: 20px 0; }
.ds-woo .wp-block-woocommerce-empty-cart-block .has-text-align-center:not(.wc-block-cart__empty-cart__title) { color: var(--ds-texto); }
.ds-woo .wp-block-woocommerce-empty-cart-block .ds-btn { margin-top: 10px; color: #fff; }

/* pedido recibido (marcado clásico) */
.ds-woo .woocommerce-order-overview, .ds-woo .woocommerce-order-details, .ds-woo .woocommerce-customer-details {
  margin: 0 0 24px; padding: 30px; list-style: none; background: #fff; border-radius: var(--ds-r); box-shadow: var(--ds-sombra-p);
}
.ds-woo .woocommerce-order-overview li { margin: 0 0 8px; color: var(--ds-texto); }
.ds-woo .woocommerce-order-overview li strong { display: block; color: var(--ds-tinta); font-weight: 500; }
.ds-woo .woocommerce-order-details__title, .ds-woo .woocommerce-column__title { margin-bottom: 14px; font-size: 32px; font-weight: 600; letter-spacing: -1px; }
.ds-woo table.shop_table { width: 100%; border-collapse: collapse; }
.ds-woo table.shop_table th, .ds-woo table.shop_table td { padding: 12px 0; border-top: 1px solid var(--ds-filete); text-align: left; }
.ds-woo .woocommerce-thankyou-order-received { font-size: 22px; margin-bottom: 24px; }

@media (max-width: 767px) {
  .ds-woo__cuerpo { padding-top: 40px; }
  .ds-woo .wc-block-components-product-name { font-size: 17px; }
}

/* Resumen del pedido en el pago: el nombre del servicio corta sólo entre palabras. En tableta la
   columna lateral queda de ~250 px: el resumen sube arriba, a todo lo ancho, como en el teléfono. */
.ds-woo .wc-block-components-order-summary-item .wc-block-components-product-name { overflow-wrap: break-word !important; word-break: normal !important; hyphens: manual; }
@media (min-width: 768px) and (max-width: 1023px) {
  .ds-woo .wc-block-checkout.wc-block-components-sidebar-layout { flex-direction: column; }
  .ds-woo .wc-block-checkout .wc-block-components-main, .ds-woo .wc-block-checkout .wc-block-components-sidebar { width: 100%; padding-left: 0; padding-right: 0; }
  .ds-woo .wc-block-checkout .wc-block-components-sidebar { order: -1; position: static; margin-bottom: 40px; }
}
/* De 1024 a 1199 el lateral aún no da para el total a la derecha: queda el precio bajo el nombre
   y la cantidad sobre la foto; el total de cada renglón ya suma abajo. */
@media (min-width: 1024px) and (max-width: 1199px) {
  .ds-woo .wc-block-components-order-summary-item__total-price { display: none; }
  .ds-woo .wc-block-components-order-summary-item__description { padding-right: 0; }
}

/* el foco de cada foto (maqueta/focos.json), en todos los recortes donde aparece */
.ds-sitio img[data-foto="H1"]{object-position:72% 45%}.ds-sitio img[data-foto="A1"]{object-position:42% 50%}.ds-sitio img[data-foto="A2"]{object-position:50% 42%}.ds-sitio img[data-foto="A3"]{object-position:45% 50%}.ds-sitio img[data-foto="L1"]{object-position:72% 38%}.ds-sitio img[data-foto="L2"]{object-position:36% 45%}.ds-sitio img[data-foto="L3"]{object-position:60% 45%}.ds-sitio img[data-foto="L4"]{object-position:50% 50%}.ds-sitio img[data-foto="L5"]{object-position:58% 45%}.ds-sitio img[data-foto="L6"]{object-position:62% 45%}.ds-sitio img[data-foto="L7"]{object-position:68% 45%}.ds-sitio img[data-foto="L8"]{object-position:50% 55%}.ds-sitio img[data-foto="L9"]{object-position:72% 45%}.ds-sitio img[data-foto="B1"]{object-position:55% 45%}.ds-sitio img[data-foto="B2"]{object-position:66% 36%}.ds-sitio img[data-foto="B3"]{object-position:50% 45%}.ds-sitio img[data-foto="F1"]{object-position:50% 55%}
