:root{
  --pino:#1F4E3D; --primary:#006845; --primary-2:#00563a; --arena:#EFE8DA; --arena-2:#E3D9C5;
  --bg:#F8F5EE; --surface:#FFFFFF; --fg:#1C2420; --muted:#5E6A63; --line:#DCD4C3;
  --accent:#006845; --accent-soft:#E2EEE7; --on-primary:#FFFFFF;
  --warn:#8A5A00; --warn-bg:#FBEFD4; --ok:#1E6B3E; --ok-bg:#DDF0E3; --crit:#9B2C22; --crit-bg:#F8E1DD;
  --f-display:"Roboto Condensed","Roboto",system-ui,sans-serif;
  --f-body:"Roboto",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Roboto Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#111613; --surface:#18201C; --fg:#E9E5DB; --muted:#A3ADA6; --line:#2C3832;
  --arena:#1E2621; --arena-2:#26302A; --accent:#7CC8A0; --accent-soft:#1D3128; --primary:#00704a; --primary-2:#00834f;
  --warn:#F0C46A; --warn-bg:#3A2E14; --ok:#8FD3A8; --ok-bg:#16301F; --crit:#F2A094; --crit-bg:#3B1E1A;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 var(--f-body);overflow-x:hidden}
a{color:var(--accent)}
.wrap{max-width:1120px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}
header.top{background:var(--surface);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-block:12px;flex-wrap:wrap}
.brand{text-decoration:none;color:var(--fg);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.brand b{font:700 22px/1.1 var(--f-display);color:var(--accent);letter-spacing:.01em}
.brand small{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hnav{display:flex;gap:8px;align-items:center}
.icon-btn{background:none;border:1px solid var(--line);border-radius:8px;padding:7px;color:var(--fg);cursor:pointer;display:inline-flex}
.icon-btn svg{width:18px;height:18px}
.btn{display:inline-block;text-decoration:none;font:500 14px var(--f-body);border-radius:8px;padding:9px 14px;cursor:pointer;border:1px solid var(--primary);background:var(--primary);color:var(--on-primary)}
.btn.ghost{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.sm{padding:7px 10px;font-size:13px}
main .wrap{padding-block:24px 48px;display:grid;gap:20px}
h1,h2,h3,h4{font-family:var(--f-display);text-wrap:balance}
.crumbs{font-size:13px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}
.prompt{font:500 12px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* Home */
.hero h1{margin:8px 0 6px;font:700 clamp(32px,7vw,52px)/1.05 var(--f-display)}
.hero h1 span{display:block;color:var(--accent)}
.hero p{margin:0;color:var(--muted);font-size:17px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:640px){.cards{grid-template-columns:1fr}}
.hcard{position:relative;display:grid;gap:10px;align-content:start;text-decoration:none;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;min-height:170px;transition:border-color .15s,transform .15s}
.hcard:hover{border-color:var(--accent);transform:translateY(-2px)}
.hcard .ico{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.hcard .ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hcard .arr{position:absolute;top:20px;right:20px;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.hcard h2{margin:0;font:700 24px/1.15 var(--f-display)}
.hcard p{margin:0;color:var(--muted)}
.hcard .kick{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.hcard.solid{background:var(--primary);border-color:var(--primary);color:#fff}
.hcard.solid p,.hcard.solid .arr{color:rgba(255,255,255,.85)}
.hcard.solid .ico{background:rgba(255,255,255,.16);color:#fff}
/* Grids */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px}
.tile{display:grid;gap:6px;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--fg);transition:border-color .15s}
.tile:hover{border-color:var(--accent)}
.tile .code{font:500 11px var(--f-mono);color:var(--muted);letter-spacing:.06em}
.tile h3{margin:0;font:700 18px/1.2 var(--f-display)}
.tile .meta{font-size:13px;color:var(--muted)}
.illu{color:var(--muted)}
.illu svg{display:block;width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tile .illu{height:64px}.tile .illu svg{height:64px;width:auto}
.illu .glue{fill:var(--accent);stroke:none}
.illu .soft{fill:var(--arena-2);stroke:currentColor}
.app-head{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;align-items:center}
.app-head h1{margin:0;font:700 30px/1.15 var(--f-display)}
.app-head .illu{background:var(--arena);border-radius:10px;padding:10px 14px}
@media (max-width:560px){.app-head{grid-template-columns:1fr}.app-head .illu{max-width:220px}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:500 14px var(--f-body);background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;max-width:100%;text-align:left}
.chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:8px;align-content:start;min-width:0}
.card h3{margin:0;font:700 19px/1.2 var(--f-display)}
.card p{margin:0;font-size:14px;overflow-wrap:anywhere}
.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tag{font:500 11px var(--f-mono);letter-spacing:.04em;padding:3px 8px;border-radius:4px;background:var(--arena);color:var(--fg)}
.techline,.eqline{margin:0;font-size:13px;color:var(--muted)}
.warnline{margin:0;font-size:13px;background:var(--warn-bg);color:var(--warn);border-radius:6px;padding:6px 10px}
.empty,.note{background:var(--arena);border-radius:12px;padding:20px;display:grid;gap:10px;max-width:680px}
.empty h3,.note h3{margin:0;font:700 19px var(--f-display)}
.empty p,.note p{margin:0}
.badge{font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn)}
.dt{width:100%;border-collapse:collapse;font-size:14px}
.dt th,.dt td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.dt th{font-weight:500;color:var(--muted);width:40%}
.tdsbox{display:grid;gap:12px;background:var(--accent-soft);border-radius:12px;padding:16px;font-size:14px}
.ficha{max-width:760px;display:grid;gap:14px}
.ficha h1{margin:0;font:700 32px/1.1 var(--f-display)}
/* Search */
.search{display:grid;gap:6px}
.acwrap{position:relative}
input,textarea{font:15px var(--f-body);padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);width:100%}
#q{font-size:16px;padding:14px}
#ac{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;list-style:none;margin:0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:min(60vh,440px);overflow:auto}
#ac li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;padding:8px 10px;border-radius:6px;cursor:pointer}
#ac li[aria-selected="true"],#ac li:hover{background:var(--accent-soft)}
#ac .k{font:500 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-width:86px}
#ac .n{font-weight:500}
#ac .s{color:var(--muted);font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#ac mark{background:none;color:var(--accent);font-weight:700}
/* Form */
form{display:grid;gap:12px;max-width:760px}
label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.two{grid-template-columns:1fr}}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--fg)}
.check input{width:auto;margin-top:3px}
.opt{font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.qtile{display:grid;gap:4px;justify-items:center;text-align:center;background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:10px 6px;cursor:pointer;font:500 13px var(--f-body);color:var(--fg)}
.qtile .illu{height:38px;width:100%}.qtile .illu svg{height:38px;width:auto;margin:0 auto}
.qtile[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.qblock{display:grid;gap:8px}.qblock .chip{padding:7px 12px;font-size:13.5px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ok{background:var(--ok-bg);color:var(--ok);border-radius:8px;padding:14px;font-size:15px}
.err{background:var(--crit-bg);color:var(--crit);border-radius:8px;padding:12px;font-size:14px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:12.5px}
footer .wrap{padding-block:16px}
@media (prefers-reduced-motion:reduce){.hcard,.tile{transition:none}.hcard:hover{transform:none}}

/* Mobile tap targets (>=44px) */
@media (max-width: 640px){
  .btn.sm{min-height:44px;display:inline-flex;align-items:center}
  .brand{min-height:44px;display:inline-flex;align-items:center}
}

/* Textos legales y pie */
.legal{max-width:72ch;line-height:1.6}
.legal h1{margin-top:0}
.legal table{border-collapse:collapse;width:100%;display:block;overflow-x:auto;font-size:14px}
.legal th,.legal td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.legal a{overflow-wrap:anywhere}
.legal-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:12px}
.legal-links a{color:inherit;min-height:44px;display:inline-flex;align-items:center}
.rgpd-info{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.rgpd-info p{margin:0 0 4px}.rgpd-info ul{margin:0;padding-left:18px}
.certline{margin:0 0 6px;font-size:13px;color:var(--muted)}
/* Selector de idioma */
.langs{display:flex;gap:2px}
.langs a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:0 6px;font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;border-radius:8px}
.langs a[aria-current]{color:var(--fg,inherit);text-decoration:underline;text-underline-offset:4px}
@media (max-width:480px){.langs a{min-width:30px;padding:0 3px;font-size:12px}}
/* Sectores organizados por aplicación */
.sector-tile h3 a{color:inherit;text-decoration:none}
.sector-tile h3 a:hover{text-decoration:underline}
.sector-apps ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}
.sector-apps li{font-size:14px}
.sector-apps a{display:inline-block;min-height:32px;line-height:32px}
.app-group{margin-top:20px}
.app-group h2 a{color:inherit}
/* Formulario de consulta: un solo paso */
.lead fieldset.step{border:0;margin:0;padding:0;display:grid;gap:12px}
.lead fieldset.step legend{font-weight:700;margin-bottom:4px;padding:0}
.lead label.big{font-weight:700;font-size:17px}
.lead label.big textarea{min-height:180px;font-size:16px}
.lead select{display:block;width:100%;min-height:44px;margin-top:4px;font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line,#ccc);background:var(--bg,#fff);color:inherit}
.lead details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.lead details.rgpd-info ul{margin:4px 0 0;padding-left:18px;font-size:13px}
.lead details.rgpd-info{font-size:14px}
.tile.sector-tile{justify-content:flex-start;align-items:stretch;text-align:left}
.tile.sector-tile .sector-apps{display:block;margin:4px 0 0;padding:0}
.sector-tile .sector-apps li{display:block;line-height:1.35;margin:0 0 6px}
.sector-tile .sector-apps a{min-height:0;line-height:1.35;display:inline}
.sector-tile .sector-apps .meta{font-size:12px}
.ck{position:fixed;inset:auto 12px 12px 12px;max-width:560px;margin-inline:auto;z-index:50;background:var(--bg,#fff);color:inherit;border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:0 6px 24px rgba(0,0,0,.18);font-size:14px}
.ck p{margin:0 0 8px}.ck-btns{display:flex;flex-wrap:wrap;gap:8px}.ck-cfg{margin-bottom:8px}.ck[hidden],.ck [hidden]{display:none}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;min-height:44px}
/* --- Landing: logo Junta, cabecera mínima y pie compacto --- */
.brand .logo{display:block;height:40px;width:auto}
.brand .logo-neg{display:none}
:root[data-theme="dark"] .brand .logo-pos{display:none}
:root[data-theme="dark"] .brand .logo-neg{display:block;border-radius:6px}
@media (max-width:480px){.brand .logo{height:32px}.hnav{gap:4px}.hnav .btn.sm{padding-inline:10px;font-size:13px}}
footer.site-foot{background:#006845;color:#EEE5DA;border-top:0;font-size:14px;margin-top:40px}
footer.site-foot a{color:#EEE5DA;text-underline-offset:3px}
footer.site-foot a:hover{color:#fff}
footer.site-foot .foot-main{display:grid;grid-template-columns:1.5fr 1.4fr 1.2fr 168px;gap:28px;padding-block:36px 32px}
.foot-col h2{margin:4px 0 10px;font:700 12px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#EEE5DA}
.foot-col p{margin:0 0 8px}
.foot-brand img{display:block;height:48px;width:auto;margin-left:-8px}
.foot-brand .tagline{margin:4px 0 12px;font:600 14px var(--f-display);letter-spacing:.02em}
.foot-cta-text{font-size:13px}
.btn-sand{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:8px;background:#EEE5DA;color:#004d33 !important;font-weight:700;text-decoration:none;margin-top:4px}
.btn-sand:hover{background:#fff}
.btn-sand:focus-visible,.social a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.ic-row{display:flex;gap:8px;align-items:flex-start;line-height:1.45}
.ic-row .i{flex:none;width:18px;height:18px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic-row a{min-height:24px}
.social{list-style:none;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap}
.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(238,229,218,.6);transition:background .15s,color .15s}
.social a:hover{background:#EEE5DA;color:#006845}
.social svg{width:20px;height:20px;fill:currentColor}
.foot-bottom{background:#004d33;color:#EEE5DA;font-size:12.5px}
footer.site-foot .foot-bottom .wrap{padding-block:16px 18px}
.foot-note{margin:0 0 4px}
footer.site-foot .legal-links{margin-top:0;gap:0 18px}
.copy{margin:4px 0 0;opacity:1}
@media (max-width:1000px){footer.site-foot .foot-main{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media (max-width:560px){footer.site-foot .foot-main{grid-template-columns:1fr;gap:20px}}
/* Hero con foto (Sergey Sergeev / Pexels) */
.hero-photo{position:relative;overflow:hidden;border-radius:16px;min-height:340px;display:flex;align-items:flex-end;padding:40px 36px;margin-top:16px;isolation:isolate}
.hero-photo picture,.hero-photo .hero-img{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-photo .hero-img{object-fit:cover;object-position:70% 30%}
.hero-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,32,20,.9) 0%,rgba(0,32,20,.78) 45%,rgba(0,32,20,.3) 100%)}
.hero-photo .hero-txt{max-width:600px}
.hero-photo h1,.hero-photo h1 span{color:#fff}
.hero-photo h1 span{color:#BFE3CC}
.hero-photo p{color:#EEE5DA}
@media (max-width:700px){.hero-photo{min-height:300px;padding:28px 20px}.hero-photo::before{background:linear-gradient(0deg,rgba(0,32,20,.92) 0%,rgba(0,32,20,.8) 60%,rgba(0,32,20,.55) 100%)}}
.tech-notice{margin-top:2em}
.langs a{gap:4px}
.langs .flag{display:inline-flex;line-height:0}
.langs .flag svg{width:18px;height:12px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
@media (max-width:480px){.langs .flag svg{width:16px;height:11px}.langs a{flex-direction:column;gap:1px;font-size:10.5px}}
.langs a[aria-current]{background:var(--accent-soft);color:var(--accent);text-decoration:none}
.foot-col{min-width:0;overflow-wrap:anywhere}
