/*
Theme Name: IURISNOVA Flex
Theme URI: https://example.com/iurisnova-flex
Author: IURISNOVA
Description: Tema adaptable y ampliamente personalizable para IURISNOVA ERP Jurídico. Personalización visual desde Apariencia > Personalizar.
Version: 1.0.5
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: iurisnova-flex
*/
:root{--in-graphite:#1F2937;--in-blue:#1D4ED8;--in-aqua:#22D3EE;--in-silver:#E5E7EB;--in-white:#FFFFFF;--in-bg:#FFFFFF;--in-text:#1F2937;--in-heading:#1F2937;--in-muted:#64748b;--in-link:#1D4ED8;--in-header-bg:#FFFFFF;--in-footer-bg:#0B1F3B;--in-footer-text:#FFFFFF;--in-nav:#1F2937;--in-btn-bg:#1D4ED8;--in-btn-text:#FFFFFF;--in-card-bg:#FFFFFF;--in-card-border:#E5E7EB;--in-border:#E5E7EB;--in-radius:14px;--in-container:1200px;--in-body-size:16px;--in-title-size:clamp(2rem,4.5vw,3.8rem);--in-section-size:clamp(1.6rem,3vw,2.7rem);--in-card-size:1rem;--in-gap:24px;--in-header-height:76px;--in-shadow:0 12px 38px rgba(15,23,42,.07);--in-hero-gradient:linear-gradient(115deg,#0B1F3B,#1D4ED8);--in-btn-gradient:linear-gradient(100deg,#1D4ED8,#22D3EE);--in-heading-gradient:linear-gradient(95deg,#1F2937,#1D4ED8);--in-heading-family:Georgia,serif;--in-body-family:system-ui,-apple-system,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--in-bg);color:var(--in-text);font:400 var(--in-body-size)/1.65 var(--in-body-family);overflow-wrap:anywhere}img,svg,video{max-width:100%;height:auto}a{color:var(--in-link)}a:hover{text-decoration:none}h1,h2,h3,h4,h5,h6{color:var(--in-heading);font-family:var(--in-heading-family);line-height:1.22;overflow-wrap:anywhere}h1{font-size:var(--in-title-size)}h2{font-size:var(--in-section-size)}p{max-width:80ch}.in-container{width:min(calc(100% - 40px),var(--in-container));margin-inline:auto}.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.screen-reader-text:focus{clip-path:none;position:fixed!important;top:10px;left:10px;width:auto;height:auto;z-index:9999;background:white;color:black;padding:8px}.in-header{position:relative;background:var(--in-header-bg);z-index:20;border-bottom:1px solid var(--in-border)}.in-header.is-sticky{position:sticky;top:0}.in-header-inner{display:flex;align-items:center;gap:22px;min-height:var(--in-header-height);padding-block:10px}.in-brand{display:flex;align-items:center;text-decoration:none;color:var(--in-heading);font-size:1.32rem;font-weight:700;line-height:1.15;min-width:0}.in-brand img{width:auto;max-height:62px;max-width:min(250px,50vw);object-fit:contain}.in-brand-text{display:flex;flex-direction:column}.in-brand-tagline{font-size:.65rem;letter-spacing:.16em;color:var(--in-muted)}.in-nav{margin-left:auto}.in-nav ul{display:flex;align-items:center;list-style:none;padding:0;margin:0;gap:clamp(10px,2vw,30px)}.in-nav li{position:relative}.in-nav a{color:var(--in-nav);text-decoration:none;font-size:.95rem;font-weight:600}.in-nav a:hover,.in-nav .current-menu-item>a{color:var(--in-blue)}.in-nav .sub-menu{display:none;position:absolute;min-width:220px;top:100%;left:0;background:var(--in-header-bg);padding:16px;box-shadow:var(--in-shadow);border:1px solid var(--in-border);border-radius:10px}.in-nav li:hover>.sub-menu,.in-nav li:focus-within>.sub-menu{display:block}.in-nav .sub-menu li+li{margin-top:10px}.in-menu-toggle{display:none;margin-left:auto;border:1px solid var(--in-border);background:transparent;color:var(--in-nav);padding:10px 14px;border-radius:8px;cursor:pointer}.in-button,.wp-block-button__link,button:not(.in-menu-toggle),input[type=submit]{border:0;display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:var(--in-radius);background:var(--in-btn-bg);color:var(--in-btn-text);font:600 1rem var(--in-body-family);text-decoration:none;cursor:pointer;max-width:100%;white-space:normal;text-align:center}.in-button:hover,.wp-block-button__link:hover{filter:brightness(.93);color:var(--in-btn-text)}.in-button.gradient{background:var(--in-btn-gradient)}.in-hero{background:var(--in-hero-gradient);color:#fff;padding:clamp(60px,9vw,135px) 0;position:relative;overflow:hidden}.in-hero.has-image{background-size:cover;background-position:center}.in-hero-overlay{position:absolute;inset:0;background:rgba(8,22,50,var(--in-hero-overlay-opacity,.25))}.in-hero-content{position:relative;max-width:770px}.in-hero h1,.in-hero p{color:#fff}.in-hero h1{margin:0 0 16px}.in-hero p{font-size:clamp(1.04rem,1.9vw,1.2rem);margin-bottom:28px}.in-kicker{font-size:.79rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--in-aqua);margin-bottom:12px}.in-main{padding:48px 0 72px;min-height:45vh}.in-main.no-pad{padding:0;min-height:0}.in-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--in-gap)}.in-card{min-width:0;background:var(--in-card-bg);border:1px solid var(--in-card-border);padding:clamp(18px,2.7vw,30px);border-radius:var(--in-radius);box-shadow:var(--in-shadow);overflow-wrap:anywhere}.in-card h3{font-size:clamp(1.1rem,1.4vw,1.35rem)}.in-post-list{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}.in-entry{min-width:0;background:var(--in-card-bg);border:1px solid var(--in-card-border);border-radius:var(--in-radius);padding:24px}.in-entry img{width:100%;object-fit:cover;border-radius:8px}.in-entry-title{margin:.35em 0;font-size:1.35rem}.in-entry-title a{text-decoration:none;color:var(--in-heading)}.in-meta{font-size:.85rem;color:var(--in-muted)}.in-content{min-width:0;max-width:100%;overflow-wrap:anywhere}.in-content>*{max-width:100%}.in-content .alignwide{max-width:min(100%,1400px)}.in-content .alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw)}.in-content table{display:block;max-width:100%;overflow-x:auto}.in-content input,.in-content textarea,.in-content select{max-width:100%}.in-content img{height:auto}.in-content .wp-block-columns{flex-wrap:wrap}.in-content .wp-block-column{min-width:min(100%,240px)}.in-titlebar{background:var(--in-silver);padding:42px 0}.in-titlebar h1{font-size:clamp(1.8rem,3.5vw,3rem);margin:0}.in-footer{padding:50px 0 24px;background:var(--in-footer-bg);color:var(--in-footer-text)}.in-footer h2,.in-footer h3,.in-footer h4,.in-footer p,.in-footer a{color:var(--in-footer-text)}.in-footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.in-footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:30px;padding-top:20px;font-size:.85rem}.in-footer ul{padding-left:18px}.in-footer .widget{margin-bottom:20px}.in-search-form{display:flex;gap:7px;max-width:500px}.in-search-form input{padding:11px;border:1px solid var(--in-border);border-radius:8px;min-width:0;flex:1}.in-pagination{margin-top:32px}.in-pagination .page-numbers{padding:7px 12px;margin:4px;border:1px solid var(--in-border);border-radius:6px}.in-pagination .current{background:var(--in-blue);color:#fff}.in-section{padding:65px 0}.in-section:nth-child(even){background:var(--in-silver)}.in-title-gradient h1,.in-title-gradient h2,.in-title-gradient .in-gradient-title{background:var(--in-heading-gradient);background-clip:text;-webkit-background-clip:text;color:transparent}.in-privacy{font-size:.9rem;color:var(--in-muted)}.in-logo-dark img{filter:brightness(0) invert(1)}.in-outline-button{background:transparent!important;border:1px solid currentColor!important;color:var(--in-link)!important}.in-content :where(.wp-block-group,.wp-block-cover,.wp-block-columns){overflow-wrap:anywhere}.in-content .wp-block-cover{min-height:300px}.in-content .wp-block-cover__inner-container{max-width:100%}html[dir=rtl] .in-nav{margin-left:0;margin-right:auto}
@media(max-width:900px){.in-menu-toggle{display:block}.in-header-inner{flex-wrap:wrap}.in-nav{display:none;order:3;flex-basis:100%;margin:0}.in-nav.is-open{display:block}.in-nav ul{display:flex;flex-direction:column;align-items:stretch;gap:0}.in-nav li a{display:block;padding:9px}.in-nav .sub-menu{display:block;position:static;box-shadow:none;margin:0 0 0 16px}.in-grid,.in-post-list{grid-template-columns:repeat(2,minmax(0,1fr))}.in-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.in-container{width:min(calc(100% - 28px),var(--in-container))}.in-grid,.in-post-list,.in-footer-grid{grid-template-columns:1fr}.in-hero{padding-block:55px}.in-main{padding-block:30px}.in-brand img{max-width:190px;max-height:54px}.in-titlebar{padding:25px 0}.in-card{padding:18px}.in-section{padding:38px 0}.in-content .wp-block-columns{display:block}.in-content .wp-block-column{width:100%;margin-bottom:16px}h1,h2,h3,p,a{overflow-wrap:anywhere}}

/* IURISNOVA Flex v1.0.1: navigation tabs for embedded ERP on mobile.
   Keep all five tabs horizontally readable; scroll rather than squeeze glyphs. */
@media (max-width: 900px) {
  .in-erp-mobile-tabs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    padding: 4px 2px 10px !important;
  }
  .in-erp-mobile-tabs > .in-erp-mobile-tab {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: max-content !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    padding: 12px 18px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-wrap: normal !important;
    word-break: normal !important;
    writing-mode: horizontal-tb !important;
    letter-spacing: normal !important;
    scroll-snap-align: start;
  }
  .in-erp-mobile-tabs > .in-erp-mobile-tab * {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    writing-mode: horizontal-tb !important;
  }
  .in-erp-mobile-tabs > .in-erp-mobile-tab span,
  .in-erp-mobile-tabs > .in-erp-mobile-tab a {
    width: auto !important;
    max-width: none !important;
    min-width: max-content !important;
  }
}

/* v1.0.2 — enforce horizontal labels even when ERP modules are wrapped in divs */
@media (max-width:900px) {
 .in-erp-mobile-tabs,
 .in-content .in-erp-mobile-tabs {
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    width:100% !important; max-width:100% !important;
    min-width:0 !important; overflow-x:auto !important; overflow-y:hidden !important;
    align-items:stretch !important; justify-content:flex-start !important;
    gap:8px !important; -webkit-overflow-scrolling:touch; overscroll-behavior-inline:contain;
 }
 .in-erp-mobile-tabs > .in-erp-mobile-tab {
    position:relative !important; flex:0 0 auto !important; flex-shrink:0 !important;
    min-width:max-content !important; width:max-content !important; max-width:none !important;
    height:auto !important; min-height:44px !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
 }
 .in-erp-mobile-tabs .in-erp-mobile-tab-control,
 .in-erp-mobile-tabs > .in-erp-mobile-tab,
 .in-erp-mobile-tabs > .in-erp-mobile-tab :is(a,button,span,strong,div) {
    white-space:nowrap !important; word-break:keep-all !important;
    overflow-wrap:normal !important; word-wrap:normal !important;
    writing-mode:horizontal-tb !important; text-orientation:mixed !important;
    letter-spacing:normal !important; flex-shrink:0 !important;
 }
 .in-erp-mobile-tabs .in-erp-mobile-tab-control {
    display:inline-flex !important; flex-direction:row !important;
    align-items:center !important; justify-content:center !important;
    min-width:max-content !important; width:max-content !important; max-width:none !important;
    padding:12px 18px !important; height:auto !important; min-height:44px !important;
 }
}


/* IURISNOVA Flex 1.0.3 — ERP tables on small screens.
   Keep column headers readable, scroll the TABLE rather than squeezing text. */
@media (max-width: 900px) {
  .in-erp-table-scroll {
    display:block !important;
    position:relative;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    touch-action:pan-x pan-y;
  }
  .in-erp-table-scroll > table,
  .in-content .in-erp-table-scroll > table {
    display:table !important;
    table-layout:auto !important;
    width:max-content !important;
    min-width:100% !important;
    max-width:none !important;
    border-collapse:separate;
    overflow:visible !important;
  }
  .in-erp-table-scroll > table :is(th,td),
  .in-erp-table-scroll > table :is(thead,tbody,tfoot) :is(th,td) {
    box-sizing:border-box;
    min-width:96px !important;
    width:auto !important;
    max-width:none !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    word-wrap:normal !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    padding:10px 12px !important;
    vertical-align:middle;
  }
  .in-erp-table-scroll > table th {
    min-width:110px !important;
    line-height:1.4 !important;
    letter-spacing:normal !important;
  }
  .in-erp-table-scroll > table :is(thead,tbody,tfoot) tr {
    display:table-row !important;
  }
  .in-erp-table-scroll > table :is(thead,tbody,tfoot) {
    display:table-row-group;
  }
  .in-erp-table-scroll > table thead { display:table-header-group !important; }
  .in-erp-table-scroll > table tbody { display:table-row-group !important; }
  .in-erp-table-scroll > table tfoot { display:table-footer-group !important; }
  .in-erp-table-scroll > table :is(th,td) :is(a,button,span,strong) {
    overflow-wrap:normal !important;
    word-break:normal !important;
    white-space:nowrap !important;
  }
}

/* v1.0.4: global text integrity for ERP actions and session labels,
   on desktop, tablet and mobile. Do not force widths on general layout. */
.in-content .in-erp-nowrap-control,
.in-content .in-erp-nowrap-label,
.entry-content .in-erp-nowrap-control,
.entry-content .in-erp-nowrap-label,
.wp-block-shortcode .in-erp-nowrap-control,
.wp-block-shortcode .in-erp-nowrap-label {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-wrap: normal !important;
  word-break: keep-all !important;
  hyphens: none !important;
  letter-spacing: normal !important;
  min-width: max-content !important;
  width: max-content !important;
  max-width: none !important;
  flex-shrink: 0 !important;
}
.in-content .in-erp-nowrap-control,
.entry-content .in-erp-nowrap-control,
.wp-block-shortcode .in-erp-nowrap-control {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 18px !important;
  min-height: 42px;
}
.in-content .in-erp-nowrap-label,
.entry-content .in-erp-nowrap-label,
.wp-block-shortcode .in-erp-nowrap-label {
  display: inline-block !important;
  vertical-align: middle !important;
}
/* Desktops can also have tables/widgets squeezed by inherited overflow-wrap:anywhere */
.in-content :is(button,[role="button"],input[type="button"],input[type="submit"]),
.entry-content :is(button,[role="button"],input[type="button"],input[type="submit"]) {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

/* v1.0.5: fixed text integrity and data display at ANY viewport/zoom width.
   The ERP can be shown in desktop mode on a phone: do not use only mobile media queries. */
body .in-content, body .in-content :where(p,div,span,a,button,th,td,h1,h2,h3,h4),
body .entry-content, body .entry-content :where(p,div,span,a,button,th,td,h1,h2,h3,h4),
body .wp-block-shortcode :where(p,div,span,a,button,th,td,h1,h2,h3,h4) {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  writing-mode: horizontal-tb;
}
body .in-content .in-erp-summary-grid,
body .entry-content .in-erp-summary-grid,
body .wp-block-shortcode .in-erp-summary-grid {
  display:grid !important;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)) !important;
  gap: 12px !important;
  align-items:stretch;
  width:100%; max-width:100%; min-width:0;
}
body .in-content .in-erp-summary-grid > .in-erp-summary-card,
body .entry-content .in-erp-summary-grid > .in-erp-summary-card {
  width:auto !important; min-width:0 !important; max-width:100% !important;
  flex:initial !important;
  overflow-wrap:normal !important; word-break:normal !important;
}
body .in-erp-summary-card :is(h2,h3,h4,p,a,span,strong,button) {
  overflow-wrap:normal !important;word-break:normal !important;hyphens:none !important;
  writing-mode:horizontal-tb !important;
}
/* Tables retain natural cell widths. Their own wrapper handles horizontal scroll. */
body .in-content .in-erp-table-scroll,
body .entry-content .in-erp-table-scroll,
body .wp-block-shortcode .in-erp-table-scroll {
  display:block !important; position:relative !important;
  overflow-x:auto !important;overflow-y:hidden !important;
  max-width:100% !important; width:100% !important; min-width:0 !important;
  -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
}
body .in-erp-table-scroll > table,
body .in-content .in-erp-table-scroll > table {
  display:table !important;table-layout:auto !important;
  width:max-content !important;min-width:100% !important;max-width:none !important;
  overflow:visible !important; border-collapse:separate;
}
body .in-erp-table-scroll > table :is(th,td) {
  min-width:120px !important;width:auto !important;max-width:none !important;
  white-space:nowrap !important;overflow-wrap:normal !important;word-break:normal !important;
  hyphens:none !important;padding:10px 14px !important;
  writing-mode:horizontal-tb !important; text-orientation:mixed !important;
}
body .in-erp-table-scroll > table :is(th,td) * {
  overflow-wrap:normal !important;word-break:normal !important;
  writing-mode:horizontal-tb !important;
}
body .in-erp-table-scroll > table thead{display:table-header-group !important}
body .in-erp-table-scroll > table tbody{display:table-row-group !important}
body .in-erp-table-scroll > table tr{display:table-row !important}
/* All desktop/mobile ERP controls should keep words intact. */
body .in-content :is(button,[role="button"],input[type="submit"],input[type="button"]),
body .entry-content :is(button,[role="button"],input[type="submit"],input[type="button"]) {
  white-space:nowrap;overflow-wrap:normal !important;word-break:normal !important;
  min-width:max-content;
}
@media(max-width:550px) {
  body .in-erp-summary-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,215px),1fr)) !important}
}
