/* ==========================================================================
   Taller de grupo · sudaderasgrupales.com
   Ámbito exclusivo: body.df-project-recursos y componentes .df-workshop /
   .df-tool dentro de ese body. Cargar después de current-project.css.
   No toca .df-project-colegios ni .df-project-comparador. Sin fuentes remotas,
   librerías ni imágenes externas.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
body.df-project-recursos{
  --ws-paper:#f5efe0;
  --ws-paper-2:#fbf8f0;
  --ws-paper-3:#ece3cf;
  --ws-ink:#1a1814;
  --ws-ink-soft:#4a453b;
  --ws-line:#d8ccb0;
  --ws-line-strong:#8a7f68;
  --ws-cobalt:#1f3fbf;
  --ws-cobalt-deep:#162e8c;
  --ws-cobalt-soft:rgba(31,63,191,.12);
  --ws-signal:#ff5f1f;
  --ws-signal-ink:#b23a00;
  --ws-grid:rgba(31,63,191,.07);
  --ws-radius:2px;
  --ws-gap:clamp(20px,2.6vw,32px);
  --ws-section:clamp(72px,10vw,136px);
  --ws-font-display:"Iowan Old Style","Charter","Bitstream Charter","Sitka Heading","Sitka Text","Cambria",Georgia,serif;
  --ws-font-text:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ws-font-mono:ui-monospace,"Cascadia Mono","SFMono-Regular",Menlo,Consolas,monospace;
  /* Puentes con current-project.css y con el kit global de Elementor */
  --df-mustard:var(--ws-signal);
  --df-section-gap:var(--ws-section);
  --e-global-color-primary:var(--ws-ink);
  --e-global-color-secondary:var(--ws-cobalt);
  --e-global-color-text:var(--ws-ink-soft);
  --e-global-color-accent:var(--ws-signal);
  background-color:var(--ws-paper);
  background-image:linear-gradient(var(--ws-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ws-grid) 1px,transparent 1px);
  background-size:32px 32px;
  color:var(--ws-ink);
  font-family:var(--ws-font-text);
  color-scheme:light;
}

/* 2. Base ------------------------------------------------------------------ */
body.df-project-recursos main{max-width:1240px;padding:clamp(48px,7vw,104px) clamp(20px,4vw,48px) clamp(80px,10vw,136px)}
body.df-project-recursos :is(h1,h2,h3){color:var(--ws-ink);font-family:var(--ws-font-display);font-weight:600;letter-spacing:-.015em;line-height:1.05;text-transform:none}
body.df-project-recursos .df-page-content h1{font-size:clamp(44px,6.6vw,96px);line-height:1;letter-spacing:-.025em;max-width:14ch}
body.df-project-recursos .df-page-content h2{font-size:clamp(32px,4.2vw,56px)}
/* :where() deja la especificidad baja para que los componentes fijen su propio color */
body.df-project-recursos :where(.df-page-content) p{color:var(--ws-ink-soft);line-height:1.65}
body.df-project-recursos .df-page-intro p{color:var(--ws-ink-soft)}
body.df-project-recursos a{color:var(--ws-cobalt);text-decoration-thickness:1px;text-underline-offset:.2em}
body.df-project-recursos a:hover{color:var(--ws-cobalt-deep);text-decoration-thickness:2px}
body.df-project-recursos :focus-visible{outline:3px solid var(--ws-cobalt);outline-offset:3px}
body.df-project-recursos ::selection{background:var(--ws-signal);color:var(--ws-ink)}
body.df-project-recursos main:focus{outline:none}
body.df-project-recursos .df-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.df-project-recursos .df-skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 18px;background:var(--ws-cobalt);color:#fff;font-weight:700}
body.df-project-recursos .df-skip-link:focus{top:12px}
body.df-project-recursos .df-skip-link:hover{color:#fff}

/* 3. Cabecera, aviso de revisión y pie (solo color; el tema maqueta) ------- */
body.df-project-recursos .df-review-bar{background:var(--ws-ink);color:var(--ws-paper)}
body.df-project-recursos .df-header{background:var(--ws-paper-2);border-bottom:1.5px solid var(--ws-ink);color:var(--ws-ink)}
body.df-project-recursos .df-header a{color:var(--ws-ink);text-decoration:none}
body.df-project-recursos .df-header-nav a:hover,
body.df-project-recursos .df-header-nav a[aria-current]{color:var(--ws-cobalt);text-decoration:underline;text-decoration-color:var(--ws-signal);text-decoration-thickness:3px;text-underline-offset:.4em}
body.df-project-recursos .df-footer{background:var(--ws-cobalt-deep);color:var(--ws-paper)}
body.df-project-recursos .df-footer a{color:#fff}

/* 4. Elementor nativo ------------------------------------------------------ */
body.df-project-recursos .elementor .elementor-widget-heading .elementor-heading-title{color:var(--ws-ink);font-family:var(--ws-font-display)}
body.df-project-recursos .elementor .elementor-widget-text-editor{color:var(--ws-ink-soft)}
body.df-project-recursos .elementor .elementor-widget-text-editor :is(strong,b){color:var(--ws-ink)}
body.df-project-recursos .elementor-widget-divider{--divider-color:var(--ws-ink)}
body.df-project-recursos .elementor-widget-icon-list .elementor-icon-list-text{color:var(--ws-ink-soft)}
body.df-project-recursos .elementor-widget-icon-list .elementor-icon-list-icon :is(i,svg){color:var(--ws-cobalt);fill:var(--ws-cobalt)}
/* CTA principal: naranja de señalización con tinta (5,8:1) */
body.df-project-recursos .elementor .elementor-widget-button .elementor-button{display:inline-block;background:var(--ws-signal)!important;color:var(--ws-ink)!important;border-radius:var(--ws-radius);padding:16px 26px;line-height:1.2;text-decoration:none;box-shadow:4px 4px 0 var(--ws-ink);font-weight:700;letter-spacing:.01em;transition:transform .15s ease,box-shadow .15s ease}
body.df-project-recursos .elementor .elementor-widget-button .elementor-button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ws-ink)}
body.df-project-recursos .elementor .df-btn-secondary.elementor-widget-button .elementor-button{background:transparent!important;color:var(--ws-ink)!important;box-shadow:inset 0 0 0 2px var(--ws-ink)}
/* Botones de las tarjetas de herramienta: cobalto */
body.df-project-recursos .elementor .df-task-card .elementor-widget-button:not(.df-btn-primary):not(.df-btn-secondary) .elementor-button{background:var(--ws-cobalt)!important;color:#fff!important;box-shadow:none}
body.df-project-recursos .elementor .df-task-card .elementor-widget-button:not(.df-btn-primary):not(.df-btn-secondary) .elementor-button:hover{background:var(--ws-cobalt-deep)!important;transform:none}

/* 5. Piezas existentes del plugin ------------------------------------------ */
body.df-project-recursos .df-task-hero.e-con{border-bottom:1.5px solid var(--ws-ink)}
body.df-project-recursos .df-task-grid.e-con{gap:var(--ws-gap);padding:clamp(40px,5vw,64px) 0 24px}
body.df-project-recursos .df-task-card.e-con{position:relative;padding:28px 28px 30px;background:var(--ws-paper-2);border:1.5px solid var(--ws-ink);border-radius:0;box-shadow:8px 8px 0 var(--ws-cobalt-soft)}
body.df-project-recursos .df-task-card.e-con::after{content:"";position:absolute;top:12px;right:12px;width:14px;height:14px;border-top:2px solid var(--ws-signal);border-right:2px solid var(--ws-signal);pointer-events:none}
body.df-project-recursos .df-task-card h2{font-size:clamp(24px,2.2vw,30px)!important}
body.df-project-recursos .df-task-card>.elementor-widget-text-editor:first-child p,
body.df-project-recursos .df-workshop__num{display:inline-flex;align-items:center;gap:10px;width:max-content;margin:0;padding:6px 10px;border:1.5px solid var(--ws-ink);background:var(--ws-paper);color:var(--ws-ink);font:700 13px/1 var(--ws-font-mono);letter-spacing:.12em}
body.df-project-recursos .df-task-card>.elementor-widget-text-editor:first-child p::before,
body.df-project-recursos .df-workshop__num::before{content:"";width:10px;height:10px;background:var(--ws-signal)}
body.df-project-recursos .df-tool{position:relative;padding:clamp(20px,3vw,36px);background:var(--ws-paper-2);border:1.5px solid var(--ws-ink);border-radius:0}
body.df-project-recursos .df-tool label{color:var(--ws-ink);font-size:14px;font-weight:600}
/* Campos: clase repetida + :where() = especificidad (0,2,1). Gana a current-project.css
   y deja que cada componente (p. ej. .df-brief-preview textarea) la matice. */
body.df-project-recursos.df-project-recursos :where(input:not([type=radio],[type=checkbox],[type=range],[type=file]),select,textarea){min-height:48px;padding:10px 12px;background:#fffdf8;color:var(--ws-ink);border:1.5px solid var(--ws-line-strong);border-radius:var(--ws-radius);font:inherit}
body.df-project-recursos input[type=file]{font:inherit;font-size:14px;color:var(--ws-ink-soft)}
body.df-project-recursos input[type=file]::file-selector-button{margin-right:12px;padding:10px 14px;border:1.5px solid var(--ws-ink);border-radius:var(--ws-radius);background:var(--ws-paper);color:var(--ws-ink);font:600 14px/1 var(--ws-font-text);cursor:pointer}
body.df-project-recursos.df-project-recursos :where(input:not([type=radio],[type=checkbox],[type=range],[type=file]),select,textarea):hover{border-color:var(--ws-ink)}
body.df-project-recursos.df-project-recursos :where(input:not([type=radio],[type=checkbox],[type=range],[type=file]),select,textarea):focus-visible{border-color:var(--ws-cobalt)}
body.df-project-recursos :is(input[type=radio],input[type=checkbox],input[type=range]){accent-color:var(--ws-cobalt)}
body.df-project-recursos ::placeholder{color:#6f6757;opacity:1}
body.df-project-recursos :is(button,.df-button),
body.df-project-recursos .df-tool button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border:1.5px solid var(--ws-cobalt);border-radius:var(--ws-radius);background:var(--ws-cobalt);color:#fff;font:700 15px/1.1 var(--ws-font-text);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .15s ease}
body.df-project-recursos :is(button,.df-button):hover,
body.df-project-recursos .df-tool button:hover{background:var(--ws-cobalt-deep);border-color:var(--ws-cobalt-deep);color:#fff}
body.df-project-recursos :is(button,.df-button).df-button--ghost,
body.df-project-recursos .df-tool button.df-button--ghost{background:transparent;border-color:var(--ws-ink);color:var(--ws-ink)}
body.df-project-recursos :is(button,.df-button).df-button--ghost:hover,
body.df-project-recursos .df-tool button.df-button--ghost:hover{background:var(--ws-paper-3);color:var(--ws-ink)}
body.df-project-recursos :is(th,td){border-bottom:1px solid var(--ws-line);color:var(--ws-ink)}
body.df-project-recursos thead th{border-bottom:1.5px solid var(--ws-ink);font:700 12px/1.2 var(--ws-font-mono);letter-spacing:.1em;text-transform:uppercase}
body.df-project-recursos .df-tool output{display:block;padding:16px;background:var(--ws-paper);border:1.5px dashed var(--ws-line-strong);font-family:var(--ws-font-mono);font-size:14px;white-space:pre-wrap}
body.df-project-recursos .df-tool .df-note{color:var(--ws-ink-soft);font-size:14px}
body.df-project-recursos .df-template-grid figure{position:relative;background:var(--ws-paper-2);border:1.5px solid var(--ws-ink);padding:18px}
body.df-project-recursos .df-template-grid figcaption{margin-top:12px;font:600 13px/1.3 var(--ws-font-mono);letter-spacing:.06em}
body.df-project-recursos .df-template-grid a{color:var(--ws-cobalt);font-weight:600}
body.df-project-recursos .df-brief-preview textarea{min-height:360px;padding:12px 16px;line-height:28px;background:repeating-linear-gradient(#fffdf8 0 27px,var(--ws-line) 27px 28px);font-family:var(--ws-font-mono)}
body.df-project-recursos .df-cost-lines input{min-width:85px}
body.df-project-recursos .df-export-file{color:var(--ws-cobalt)}
body.df-project-recursos .df-breadcrumbs{color:var(--ws-ink-soft);font-family:var(--ws-font-mono);font-size:12px;letter-spacing:.06em}
body.df-project-recursos .df-directory article{background:var(--ws-paper-2);border:1.5px solid var(--ws-ink)}

/* 6. Taller: estructura y cabeceras ---------------------------------------- */
body.df-project-recursos .df-workshop{position:relative;margin:0 0 var(--ws-section)}
body.df-project-recursos :is(.df-workshop,.df-task-card,.df-tool)[id]{scroll-margin-top:32px}
body.df-project-recursos .df-workshop__eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;color:var(--ws-cobalt);font:700 13px/1.2 var(--ws-font-mono);letter-spacing:.14em;text-transform:uppercase}
body.df-project-recursos .df-workshop__eyebrow::before{content:"";width:24px;height:3px;background:var(--ws-signal)}
body.df-project-recursos .df-workshop__head{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px clamp(24px,5vw,72px);margin:0 0 clamp(28px,4vw,48px);padding-bottom:22px;border-bottom:1.5px solid var(--ws-ink)}
body.df-project-recursos .df-workshop__head h2{margin:0}
body.df-project-recursos .df-workshop__lead{margin:0;max-width:56ch;color:var(--ws-ink-soft);font-size:clamp(17px,1.5vw,20px);line-height:1.6}
body.df-project-recursos .df-workshop__badges{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;list-style:none}
body.df-project-recursos :is(.df-workshop__badges li,.df-workshop__badge){display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1.5px dashed var(--ws-ink);background:var(--ws-paper-2);color:var(--ws-ink);font:700 12px/1.2 var(--ws-font-mono);letter-spacing:.08em;text-transform:uppercase}

/* 7. Portada con plano técnico --------------------------------------------- */
body.df-project-recursos .df-workshop-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(28px,5vw,80px)}
body.df-project-recursos .df-workshop-hero.e-con{display:grid!important;gap:clamp(28px,5vw,80px);padding-bottom:clamp(48px,6vw,88px)}
body.df-project-recursos .df-workshop-hero h1{margin:0 0 24px}
body.df-project-recursos .df-workshop-hero h1 em{color:var(--ws-cobalt);font-style:italic}
body.df-project-recursos .df-workshop-hero .elementor-widget-text-editor p{max-width:44ch;font-size:clamp(18px,1.6vw,21px)}
body.df-project-recursos .df-workshop__diagram{position:relative;margin:0;padding:clamp(16px,2vw,28px);background:var(--ws-paper-2);border:1.5px solid var(--ws-ink);box-shadow:10px 10px 0 var(--ws-cobalt)}
body.df-project-recursos .df-workshop__diagram svg{display:block;width:100%;height:auto}
body.df-project-recursos .df-workshop__diagram figcaption{margin-top:12px;color:var(--ws-ink-soft);font:600 12px/1.4 var(--ws-font-mono);letter-spacing:.06em}

/* 8. Índice 01–06: vista en miniatura de cada herramienta ------------------ */
body.df-project-recursos .df-workshop__view{margin:18px 0 6px;padding:14px;border:1px solid var(--ws-line);background-color:var(--ws-paper);background-image:linear-gradient(var(--ws-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ws-grid) 1px,transparent 1px);background-size:16px 16px}
body.df-project-recursos .df-workshop__view svg{display:block;width:100%;height:auto;max-height:112px}

/* 9. Mesa de trabajo: vistas de herramienta -------------------------------- */
body.df-project-recursos .df-workshop__bench{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:var(--ws-gap)}
body.df-project-recursos .df-tool__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 22px;padding-bottom:18px;border-bottom:1.5px dashed var(--ws-line-strong)}
body.df-project-recursos .df-tool__bar h3{flex:1 1 auto;margin:0;font-size:clamp(22px,2vw,28px)}
body.df-project-recursos .df-designer{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px 28px}
body.df-project-recursos .df-designer>.df-segmented,
body.df-project-recursos .df-designer>.actions{grid-column:1/-1}
body.df-project-recursos .df-workshop__canvas{position:relative;display:grid;place-items:center;min-height:320px;margin:0;padding:24px;border:1.5px solid var(--ws-ink);background-color:#fffdf8;background-image:linear-gradient(var(--ws-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ws-grid) 1px,transparent 1px);background-size:16px 16px}
body.df-project-recursos .df-workshop__canvas::before,
body.df-project-recursos .df-workshop__canvas::after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--ws-signal);pointer-events:none}
body.df-project-recursos .df-workshop__canvas::before{top:10px;left:10px;border-right:0;border-bottom:0}
body.df-project-recursos .df-workshop__canvas::after{right:10px;bottom:10px;border-left:0;border-top:0}
body.df-project-recursos .df-workshop__canvas svg{width:100%;max-width:300px;height:auto}
body.df-project-recursos .df-tool .controls{display:grid;align-content:start;gap:16px}
body.df-project-recursos .df-tool .controls label{display:flex;flex-direction:column;gap:6px}
body.df-project-recursos .df-tool .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;padding-top:18px;border-top:1.5px solid var(--ws-ink)}
body.df-project-recursos .df-designer>.actions{margin-top:0}
body.df-project-recursos .df-segmented{display:inline-flex;width:max-content;min-width:0;max-width:100%;margin:0;padding:0;border:1.5px solid var(--ws-ink)}
body.df-project-recursos .df-segmented label{position:relative;display:inline-flex}
body.df-project-recursos .df-segmented input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
body.df-project-recursos .df-segmented span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;color:var(--ws-ink);font:700 13px/1 var(--ws-font-mono);letter-spacing:.1em;text-transform:uppercase}
body.df-project-recursos .df-segmented label+label span{border-left:1.5px solid var(--ws-ink)}
body.df-project-recursos .df-segmented input:checked+span{background:var(--ws-cobalt);color:#fff}
body.df-project-recursos .df-segmented input:checked+span::before{content:"";width:8px;height:8px;background:var(--ws-signal)}
body.df-project-recursos .df-segmented input:focus-visible+span{outline:3px solid var(--ws-cobalt);outline-offset:3px}
body.df-project-recursos .df-workshop__sizes{width:100%;border-collapse:collapse;font-size:15px}
body.df-project-recursos .df-workshop__sizes :is(th,td){padding:8px 0;vertical-align:middle}
body.df-project-recursos .df-workshop__sizes th[scope=row]{width:42%;font:700 15px/1 var(--ws-font-mono);letter-spacing:.06em}
body.df-project-recursos .df-workshop__sizes input{width:100%;max-width:160px}

/* 10. Principios ----------------------------------------------------------- */
body.df-project-recursos .df-workshop__principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ws-gap);margin:0;padding:0;list-style:none}
body.df-project-recursos .df-workshop__principles li{padding-top:26px;border-top:3px solid var(--ws-ink)}
body.df-project-recursos .df-workshop__principles svg{display:block;width:64px;height:64px;margin-bottom:18px}
body.df-project-recursos .df-workshop__principles h3{margin:0 0 10px;font-size:clamp(22px,2vw,28px)}
body.df-project-recursos .df-workshop__principles p{margin:0;color:var(--ws-ink-soft);line-height:1.6}

/* 11. Responsive: 1440 · 768 · 390 ---------------------------------------- */
@media (max-width:1023px){
  body.df-project-recursos .df-workshop-hero,
  body.df-project-recursos .df-workshop-hero.e-con,
  body.df-project-recursos .df-workshop__bench,
  body.df-project-recursos .df-workshop__head{grid-template-columns:1fr}
  body.df-project-recursos .df-workshop__diagram{max-width:600px}
}
@media (max-width:767px){
  body.df-project-recursos{background-size:24px 24px}
  body.df-project-recursos main{padding:40px 20px 80px}
  body.df-project-recursos .df-task-card.e-con{padding:22px;box-shadow:6px 6px 0 var(--ws-cobalt-soft)}
  body.df-project-recursos .df-workshop__diagram{box-shadow:6px 6px 0 var(--ws-cobalt)}
  body.df-project-recursos .df-designer{grid-template-columns:1fr}
  body.df-project-recursos .df-workshop__canvas{min-height:260px}
  body.df-project-recursos .df-tool .actions>*{flex:1 1 100%}
  body.df-project-recursos .df-workshop__principles{grid-template-columns:1fr}
}

/* 12. Movimiento, alto contraste e impresión ------------------------------- */
@media (prefers-reduced-motion:no-preference){
  html:has(body.df-project-recursos){scroll-behavior:smooth}
  body.df-project-recursos .df-workshop__draw{stroke-dasharray:100;stroke-dashoffset:100;animation:ws-draw 2.2s ease-out .2s forwards}
}
@keyframes ws-draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  body.df-project-recursos *,
  body.df-project-recursos *::before,
  body.df-project-recursos *::after{animation:none!important;transition:none!important}
  body.df-project-recursos .elementor .elementor-widget-button .elementor-button:hover{transform:none}
}
@media (forced-colors:active){
  body.df-project-recursos :is(.df-task-card>.elementor-widget-text-editor:first-child p,.df-workshop__num,.df-segmented input:checked+span)::before{forced-color-adjust:none;background:CanvasText}
  body.df-project-recursos .df-segmented input:checked+span{outline:2px solid Highlight}
}
@media print{
  body.df-project-recursos{background:#fff}
  body.df-project-recursos :is(.df-task-card.e-con,.df-workshop__diagram){box-shadow:none;break-inside:avoid}
  body.df-project-recursos :is(.df-skip-link,.df-segmented){display:none!important}
}
