.type-nav{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 6px 0;        
  margin: 0;
}

.type-nav .pn-item{
  width: 220px;          
  text-decoration: none;
  color: inherit;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;

  padding: 8px 8px 6px;  
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(0,0,0,0.08);

  overflow: hidden;     
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.type-nav .pn-item:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0,0,0,0.14);
  border-color: rgba(0,0,0,0.22);
}

.type-nav .pn-item:focus-visible{
  outline: 3px solid rgba(0,86,166,0.35);
  outline-offset: 3px;
}

.type-nav .pn-icon{
  position: relative;
  width: 100%;
  height: 52px;          
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.type-nav .pn-icon > img{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);

  max-width: 100%;
  max-height: 44px;      
  width: auto;
  height: auto;
  display: block;
}

.type-nav .pn-label{
  font-size: 13px;
  line-height: 1.15;
  text-align: center;
  margin: 0;
  padding: 0;
}

.type-nav .pn-item.is-active{
  border-color: rgba(0,86,166,0.55);
  box-shadow: 0 10px 26px rgba(0,86,166,0.12);
}

.type-nav .pn-item.is-active{ outline:2px solid rgba(0,0,0,0.18); }
  .ezm-topnav .ezm-tab.is-active{ font-weight:700; background: #b71c1c;  color: #fff;}

.ezm-topnav .ezm-tab{
  display:inline-block;
  padding:10px 14px;
  border-radius:10px;
  text-decoration:none;
}

.ezm-topnav .ezm-tab.is-active{
  font-weight:700;
  background:#b71c1c;
  color:#fff;
  text-decoration:none;
}




/* responsive image helper */
.img-responsive {
  width: 100%;
  max-width: 400px;
  height: auto;
}

/* section backgrounds */
.red-bg {
  background-color: #cc0001;
  padding: 10px 0px;
}

.dark-blue-bg {
  background-color: #25408f;
  text-align: center;
  padding: 5px 5px;
  font-size: 20px;
  margin: 0;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
  text-decoration-color: white;
  color: #fff;
}

.green-bg {
  background-color: #41ad49;
  text-align: center;
  padding: 5px 5px;
  font-size: 20px;
  font-weight: bold;
  margin: 0;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
  text-decoration-color: white;
  color: #fff;
}

.yellow-bg {
  background-color: #fff200;
  text-align: center;
  padding: 5px 5px;
  font-size: 32px;
  margin: 0;
  font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
  text-decoration-color: #000;
  color: #000;
}

/* titles / text */
.red-bg-title {
  font-size: 32px;
  text-align: center;
  color: #fff;
  padding: 10px 0px;
  margin: 0;
  font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
}

.dark-blue-title {
  font-size: 32px;
  text-align: center;
  color: #fff;
  padding: 10px 0px;
  margin: 0;
  font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
}

.red-bg-subtitle {
  font-size: 24px;
  text-align: center;
  color: #fff;
  padding: 5px 5px;
  margin: 0;
  line-height: 1.2em;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.red-bg-subtitle1 {
  font-size: 20px;
  line-height: 1.2em;
  text-align: center;
  color: #fff;
  padding: 5px 5px;
  margin: 0;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.red-bg-p {
  font-size: 14px;
  text-align: center;
  line-height: 1.2em;
  color: #fff;
  padding: 5px 5px;
  margin: 0;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.blue-subtitle {
  font-size: 24px;
  text-align: center;
  color: #25408f;
  font-weight: bolder;
  padding: 10px 0px;
  margin: 0;
  line-height: 1.2em;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.blue-title {
  font-size: 30px;
  text-align: center;
  color: #25408f;
  font-weight: bolder;
  padding: 10px 0px;
  margin: 0;
  line-height: 1.2em;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.black-title {
  font-size: 22px;
  color: #000;
  font-weight: bold;
  margin: 0;
  line-height: 1.2em;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

/* font helper */
.rockwell {
  font-family: "rockwellbold";
  font-size: 38px;
  font-weight: bolder;
  font-style: normal;
}

#overview-partials a:link,
#overview-partials a:visited {
  text-decoration: none;
}

/* --- Buttons --- */
#overview-partials a.wbutton,
#overview-partials a.bbutton,
#overview-partials a.ybutton {
  display: inline-block;
  padding: 5px 15px;
  margin: 4px 2px;
  border-radius: 5px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  text-decoration: none !important;
  white-space: normal;
}

#overview-partials a.wbutton {
  background: #fff;
  border: 1px solid #000;
  color: #000 !important;
}

#overview-partials a.bbutton {
  background: #25408f;
  border: 2px solid #fff;
  color: #fff !important;
}

#overview-partials a.ybutton {
  background: #ffcf29;
  border: 2px solid #fff;
  color: #000 !important;
}

#overview-partials a.wbutton:hover,
#overview-partials a.bbutton:hover,
#overview-partials a.ybutton:hover {
  background: #222226 !important;
  color: #fff !important;
}

#overview-partials .btn-wide {
  width: 95%;
  display: block; 
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

#overview-partials .yellow-bg a,
#overview-partials .yellow-bg a:visited {
  color: #000 !important;
}

#overview-partials .red-bg a:not(.wbutton):not(.bbutton):not(.ybutton),
#overview-partials .red-bg a:visited:not(.wbutton):not(.bbutton):not(.ybutton),
#overview-partials .red-bg-title a,
#overview-partials .red-bg-title a:visited {
  color: #fff !important;
}


#overview-partials .red-bg-subtitle a,
#overview-partials .red-bg-subtitle a:visited {
  color: #fff !important;
  text-decoration: none !important;
}

#overview-partials .red-bg-subtitle a:hover {
  text-decoration: underline;
}


i.fa, i.fa::before,
.fa, .fa::before {
  font-family: FontAwesome !important;
  font-style: normal !important;
  font-weight: normal !important;
  speak: none;
}



#overview-partials{
  width: 100%;
  padding: 0 10px;            
  box-sizing: border-box;
}

#overview-partials > table.overview-table{
  width: 1012px !important;   
  max-width: 100%;            
  margin: 0 auto;            
}



/* =========================
   PLC overview partials fix (scoped)
   Only affects body.ez-plc-page
   ========================= */
body.ez-plc-page #overview-partials{
  width: 100%;
  padding: 0 10px;
  box-sizing: border-box;
}

body.ez-plc-page #overview-partials > table{
  width: 1012px !important;
  max-width: 100%;
  margin: 0 auto;
  border-collapse: separate !important;
  border-spacing: 0 !important;

  table-layout: auto !important;  
}

body.ez-plc-page #overview-partials td[rowspan]{
  width: 390px !important;
}

body.ez-plc-page #overview-partials td{
  padding: 3px !important;
  vertical-align: top !important;
}

body.ez-plc-page #overview-partials td[style*="display:inline-block"]{
  display: table-cell !important;
}

body.ez-plc-page #overview-partials h1,
body.ez-plc-page #overview-partials h3,
body.ez-plc-page #overview-partials li{
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.ez-plc-page #overview-partials h1{ margin: 0 0 10px !important; line-height: 1.2; }
body.ez-plc-page #overview-partials h3{ margin: 0 0 8px !important; line-height: 1.25; }
body.ez-plc-page #overview-partials ul{ margin: 6px 0 0 18px !important; padding: 0 !important; }
body.ez-plc-page #overview-partials li{ margin: 0 0 4px; }

body.ez-plc-page #overview-partials img{
  max-width: 100%;
  height: auto;
  display: block;
}



/* =========================
   IO type nav -> match ezio.php "image buttons" style
   Scoped to .io-type-nav only
   ========================= */

.type-nav.io-type-nav{
  display:flex;
  justify-content:center;
  gap:12px;
  padding: 6px 0;
}

/* make pn-item look like cfg-family-card */
.type-nav.io-type-nav .pn-item{
  width: 220px;
  text-decoration:none;
  color: inherit;

  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 6px;

  border:1px solid rgba(0,0,0,0.12);
  background:#fff;
  border-radius:12px;
  padding:12px 12px 10px;
  cursor:pointer;

  box-shadow: 0 3px 15px rgba(0,0,0,0.12);
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.type-nav.io-type-nav .pn-item:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.20);
  border-color: rgba(0,0,0,0.22);
}

.type-nav.io-type-nav .pn-item:focus-visible{
  outline: 3px solid rgba(0,86,166,0.35);
  outline-offset: 3px;
}

/* icon box similar to cfg-family-img */
.type-nav.io-type-nav .pn-icon{
  position: relative;
  width: 100%;
  height: 64px;
  overflow: hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:0;
}

.type-nav.io-type-nav .pn-icon img{
  max-width: 100%;
  max-height: 56px;
  width: auto;
  height: auto;
  display:block;
}

/* off/on swap */
.type-nav.io-type-nav .pn-icon .img-on{ display:none; }
.type-nav.io-type-nav .pn-item:hover .pn-icon .img-off{ display:none; }
.type-nav.io-type-nav .pn-item:hover .pn-icon .img-on{ display:block; }

/* label */
.type-nav.io-type-nav .pn-label{
  font-size: 13px;
  line-height: 1.15;
  text-align:center;
  margin:0;
  padding:0;
  font-weight:700;
}

/* active state (match how you mark is-active) */
.type-nav.io-type-nav .pn-item.is-active{
  border-color: rgba(0,86,166,0.55);
  box-shadow: 0 10px 26px rgba(0,86,166,0.12);
  outline: 2px solid rgba(0,0,0,0.18);
}

/* active should also show "on" image even without hover */
.type-nav.io-type-nav .pn-item.is-active .pn-icon .img-off{ display:none; }
.type-nav.io-type-nav .pn-item.is-active .pn-icon .img-on{ display:block; }
