/* IBDES: shared surfaces and interaction states for both themes.
   Loaded after the recovered stylesheet; no changes to routes or content. */
:root{
  --bg:#0b151d;--bg-soft:#101f29;--bg-panel:#14232d;--bg-panel-strong:#14232d;
  --text:#edf2f5;--muted:#b5c2cc;--line:#2c414f;--line-strong:#526d7e;
  --material-solid:#14232d;--material-solid-raised:#1a2d3a;--material-acrylic:#14232d;
  --control-fill:#14232d;--control-fill-hover:#213b4c;--control-fill-pressed:#1a3040;
  --color-primary:#1765b5;--color-primary-strong:#12589f;--color-primary-pressed:#104b87;
  --color-accent:#8cc5fa;--focus-stroke:#8cc5fa;
  --product-media-bg:#e9eff2;--page-tint:#8cc5fa0a;
  --radius-hero:16px;--radius-feature:12px;--radius-xl:12px;--radius-lg:12px;
  --shadow-soft:0 2px 8px #00000014;--shadow:0 8px 24px #00000024;
  --surface-glass:var(--material-solid);--surface-halo:var(--shadow-soft);
  --interaction-ease:cubic-bezier(.2,.72,.16,1);
  background:var(--bg);
}
:root[data-theme=light]{
  --bg:#f3f6f7;--bg-soft:#eaf0f3;--bg-panel:#fff;--bg-panel-strong:#fff;
  --text:#172b38;--muted:#52636f;--line:#d3dee5;--line-strong:#879da9;
  --material-solid:#fff;--material-solid-raised:#fff;--material-acrylic:#fff;
  --control-fill:#fff;--control-fill-hover:#eaf0f5;--control-fill-pressed:#dfe9f0;
  --color-accent:#175da7;--focus-stroke:#175da7;--product-media-bg:#edf2f5;
  --shadow-soft:0 2px 8px #16344b06;--shadow:0 8px 24px #16344b0d;
  --surface-glass:var(--material-solid);--surface-halo:var(--shadow-soft);
  background:var(--bg);
}
/* Photography carries the visual identity; remove background glow layers. */
body::before,body::after,.page-shell::before,.page-shell::after{display:none}
.header-panel,.nav-submenu,.mobile-drawer{background:var(--bg-panel-strong);box-shadow:var(--shadow);backdrop-filter:none}
.header-panel{border-radius:12px}
.nav-submenu{border-radius:12px}
.nav-submenu-link,.mobile-nav-group,.mobile-nav-sublink{border-radius:8px;background:var(--control-fill)}
.nav-item>a,.mobile-nav-link{border-radius:6px;min-height:44px}
.nav-item>a:hover,.nav-item.is-active>a,.nav-item.has-children:focus-within>a{background:var(--control-fill-hover);color:var(--text)}
.locale-switcher{background:var(--control-fill);border-color:var(--line-strong)}
.theme-toggle,.menu-toggle{width:44px;height:44px}
.hero-copy h1,.intro-copy h1,.solutions-index-copy h1,.rich-content h1{letter-spacing:-.04em;line-height:1.1;text-wrap:balance}
.rich-content h1{max-width:24ch;font-size:clamp(2.25rem,4.5vw,4rem)}
.rich-content h2,.section-heading h2{letter-spacing:-.025em;text-wrap:balance}
.hero-summary,.intro-summary,.solutions-index-intro,.section-summary{max-width:68ch;font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.75}
.rich-content p,.rich-content li{line-height:1.75}
.rich-content .ibdes-highlight{color:var(--color-accent)}
.hero-teaser,.info-panel,.related-card,.intro-highlight,.solutions-carousel-panel,.solutions-carousel-card,.solutions-product-card,.solutions-capability-card,.project-card,.rich-content .ibdes-card,.rich-content .ibdes-note,.contact-card{
  border-color:var(--line);border-radius:12px;background:var(--material-solid);box-shadow:var(--shadow-soft);
}
.solutions-carousel-panel::before,.solutions-carousel-card::before,.solutions-product-card::before,.solutions-capability-card::before,.project-card::before,.related-card::before,.rich-content .ibdes-card::before,.rich-content .ibdes-note::before{display:none}
.solutions-product-media{background:var(--product-media-bg)}
.solutions-product-media::after{display:none}
.solutions-product-copy{gap:.6rem;padding:1.25rem}
.solutions-product-copy span,.solutions-capability-card span{font-size:1.125rem;font-weight:650;line-height:1.3}
.solutions-product-card:focus-visible,.related-card:focus-visible{outline:3px solid var(--focus-stroke);outline-offset:3px}
.solutions-product-card:hover,.solutions-capability-card:hover,.project-card:hover,.related-card:hover,.rich-content .ibdes-card:hover{transform:none;box-shadow:var(--shadow-soft)}
.solutions-product-card:hover .solutions-product-media img{transform:scale(1.01)}
.rich-content .ibdes-card{padding:1.25rem;gap:1rem}
.rich-content .ibdes-card>img:first-child{border-radius:10px;background:var(--product-media-bg);width:100%;margin:0;padding:1rem;border:0;box-shadow:none}
:root[data-theme=light] .rich-content .ibdes-card>img:first-child{background:var(--product-media-bg);box-shadow:none;border:0}
.button,.project-button,.rich-content .portada-button,.solutions-carousel-card a{min-height:44px;border-radius:6px;padding:.65rem 1rem;transition:background .18s var(--interaction-ease),border-color .18s var(--interaction-ease),color .18s var(--interaction-ease)}
.button-contact,.button-contact:hover,.button-contact:focus-visible,.button-contact:active{transform:none;box-shadow:none;border:1px solid transparent;outline-offset:3px}
.button-contact::before,.button-contact::after{display:none}
.button-contact:hover,.button-contact:focus-visible{background:var(--color-primary-strong)}
.button-contact .button-icon{transition:none}
.button-contact:hover .button-icon,.button-contact:focus-visible .button-icon{transform:none}
.button:hover,.project-button:hover,.rich-content .portada-button:hover,.solutions-carousel-card a:hover{transform:none}
.button:focus-visible,.project-button:focus-visible,.rich-content .portada-button:focus-visible,.solutions-carousel-card a:focus-visible{outline:3px solid var(--focus-stroke);outline-offset:3px}
/* Keep catalogue descriptions and links available to touch and keyboard users. */
.project-card{display:grid;grid-template-rows:15rem 1fr;min-height:0}
.project-card>.project-media{position:relative;height:15rem;min-height:0}
.project-card>.project-content{position:relative;inset:auto;transform:none;padding:1.5rem;background:var(--material-solid);align-content:start}
.project-card:hover .project-content,.project-card:focus-within .project-content{transform:none}
.project-card .project-wash{display:none}
.project-content p,:root[data-theme=light] .project-content p{color:var(--muted);line-height:1.65}
.project-content h3{color:var(--text);line-height:1.25}
/* Native horizontal catalogue: visible scrollbar and no automatic motion. */
.solutions-carousel-panel{border-start-end-radius:16px;min-height:0;background:var(--material-solid)}
.solutions-carousel{height:auto;min-width:0;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;padding:.25rem .15rem 1rem;touch-action:auto}
.solutions-carousel::-webkit-scrollbar{display:block;height:6px}
.solutions-carousel::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
.solutions-carousel-card{height:auto;min-height:26rem;grid-template-rows:11.5rem auto 1fr;flex-basis:clamp(16rem,24vw,19rem)}
.solutions-carousel-card>div{overflow:visible}
.solutions-carousel-card p{display:block;-webkit-line-clamp:unset;max-height:none}
.solutions-carousel-card h2{min-height:0;line-height:1.3}
.solutions-carousel-card a{align-self:end}
.solutions-carousel-card span{letter-spacing:.04em}
.form-grid input,.form-grid textarea{min-height:48px;border:1px solid var(--line-strong);border-radius:6px;background:var(--material-solid-raised);color:var(--text);font-size:16px;line-height:1.5}
.form-grid textarea{min-height:160px}
.form-grid input::placeholder,.form-grid textarea::placeholder{color:var(--muted);opacity:1}
.form-grid input:focus,.form-grid textarea:focus{border-color:var(--focus-stroke);outline:2px solid var(--focus-stroke);outline-offset:3px;box-shadow:none}
.site-footer{margin-top:2rem;background:var(--bg-panel);border-color:var(--line)}
/* The recovered Civil grid stores image rows and text rows separately. */
.page-civil .rich-content .e-grid>.e-con-inner{gap:0 1.25rem}
.page-civil .rich-content .e-grid .elementor-widget-image{background:var(--material-solid);border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;padding:1rem}
.page-civil .rich-content .elementor-widget-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:8px;padding:.75rem}
.page-civil .rich-content .e-grid .elementor-widget-text-editor{background:var(--material-solid);border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:1.25rem;color:var(--muted);font-size:15px;line-height:1.65}
.page-civil .rich-content .e-grid h3{color:var(--text);margin:0 0 .65rem;font-size:1.25rem;line-height:1.3}
.page-civil .rich-content .e-grid:last-child .elementor-widget-text-editor{border:1px solid var(--line);border-radius:12px}
.page-civil .rich-content .info-grid{grid-template-columns:minmax(0,1fr)}
/* PDT summaries form one centred group, with centred titles and copy. */
.page-deteccion-estupefacientes .rich-content .ibdes-card-grid-pdt{width:100%;max-width:960px;justify-self:center;margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
.page-deteccion-estupefacientes .rich-content .ibdes-card-grid-pdt>.ibdes-card{align-content:start;text-align:center}
@media(min-width:720px){
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(hover:hover) and (pointer:fine){
  .solutions-product-card,.related-card{transition:transform .2s var(--interaction-ease),border-color .2s var(--interaction-ease),box-shadow .2s var(--interaction-ease)}
  .solutions-product-card:hover,.related-card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow)}
  .solutions-product-card:hover .solutions-product-media img{transform:scale(1.025)}
}
@media(max-width:719px){
  .page-deteccion-estupefacientes .rich-content .ibdes-card-grid-pdt{grid-template-columns:minmax(0,1fr);max-width:30rem}
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image)>.elementor-widget-image:nth-child(2){order:3}
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image)>.elementor-widget-image:nth-child(3){order:5}
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image)>.elementor-widget-text-editor:nth-child(4){order:2}
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image)>.elementor-widget-text-editor:nth-child(5){order:4}
  .page-civil .rich-content .e-grid>.e-con-inner:has(>.elementor-widget-image)>.elementor-widget-text-editor:nth-child(6){order:6}
  .page-civil .rich-content .e-grid .elementor-widget-text-editor{margin-bottom:1.25rem}
  .solutions-carousel-heading{align-items:start;flex-direction:column;gap:.6rem}
  .solutions-carousel-heading p{text-align:left;max-width:none}
  .solutions-carousel-card{flex-basis:min(80vw,19rem);min-height:25rem}
  .rich-content .ibdes-card{padding:1rem}
  .page-home .ibdes-home .splash-chrome{flex-wrap:wrap;gap:16px;padding:20px 12px}
  .page-home .ibdes-home .splash-brand img{width:clamp(100px,29vw,160px)}
  .page-home .ibdes-home .splash-locales{display:flex;padding:2px;gap:0}
  .page-home .ibdes-home .splash-locales button{min-width:30px;min-height:40px;padding:5px;font-size:11px}
  .page-home .ibdes-home .splash-tools{gap:8px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .solutions-product-card:hover,.related-card:hover,.solutions-product-card:hover .solutions-product-media img{transform:none}
}
