/* Factory Post Showcase for Divi — v0.6.2 geometry-safe patch; carousel behavior preserved from v0.4.x */
.fpm-showcase{
  --fpm-accent:#ffb703;
  --fpm-bar:#415a77;
  --fpm-panel:transparent;
  --fpm-title:#1b263b;
  --fpm-excerpt:#415a77;
  --fpm-gap:24px;
  --fpm-image-height:370px;
  --fpm-bar-height:30px;
  --fpm-cols-desktop:4;
  --fpm-cols-tablet:2;
  --fpm-cols-mobile:1;
  --fpm-header-band:#ffb703;
  --fpm-header-band-width:62vw;
  --fpm-header-min-height:82px;
  --fpm-header-title:#fff;
  --fpm-header-subtitle:#fff;
  --fpm-header-title-size:44px;
  --fpm-header-subtitle-size:16px;
  --fpm-header-title-weight:700;
  --fpm-header-subtitle-weight:400;
  --fpm-header-title-lh:1.12;
  --fpm-header-subtitle-lh:1.65;
  --fpm-header-title-font:inherit;
  --fpm-header-subtitle-font:inherit;
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:36px 24px 42px;
  background-color:var(--fpm-panel)!important;
  overflow:visible;
  box-sizing:border-box;
}
.fpm-showcase *{box-sizing:border-box;min-width:0}
.fpm-showcase img,.fpm-showcase svg{max-width:100%}

/* Header */
.fpm-header{position:relative;margin:0 0 34px;overflow:visible;z-index:2;max-width:100%;min-width:0}
.fpm-header-inner{position:relative;z-index:2;width:100%}
.fpm-section-title{
  margin:0 0 8px!important;
  padding:0!important;
  font-family:var(--fpm-header-title-font)!important;
  font-size:var(--fpm-header-title-size)!important;
  line-height:var(--fpm-header-title-lh)!important;
  font-weight:var(--fpm-header-title-weight)!important;
  color:var(--fpm-header-title)!important;
}
.fpm-section-subtitle{
  margin:0!important;
  padding:0!important;
  font-family:var(--fpm-header-subtitle-font)!important;
  font-size:var(--fpm-header-subtitle-size)!important;
  line-height:var(--fpm-header-subtitle-lh)!important;
  font-weight:var(--fpm-header-subtitle-weight)!important;
  color:var(--fpm-header-subtitle)!important;
}
.fpm-header-align-left{text-align:left!important;direction:ltr}
.fpm-header-align-center{text-align:center!important}
.fpm-header-align-right{text-align:right!important;direction:rtl}
.fpm-header-align-auto.fpm-header--band_rtl{text-align:right;direction:rtl}
.fpm-header-align-auto.fpm-header--plain,
.fpm-header-align-auto.fpm-header--band_ltr{text-align:left}

/* Full-bleed industrial heading bands. Width is controlled from Divi. */
.fpm-header--band_ltr,.fpm-header--band_rtl{
  min-height:var(--fpm-header-min-height);
  display:flex;
  align-items:center;
  padding:13px 24px;
}
.fpm-header--band_ltr::before,.fpm-header--band_rtl::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  /* v0.6.2: JS writes an exact pixel width based on documentElement.clientWidth.
     Until JS runs, the band stays inside the module and cannot escape the row. */
  width:var(--fpm-header-band-width-safe,100%);
  max-width:var(--fpm-client-width,100%);
  background:var(--fpm-header-band);
  z-index:0;
  pointer-events:none;
}
.fpm-header--band_ltr::before{
  left:calc(-1 * var(--fpm-bleed-left,0px));
  clip-path:polygon(0 0,94% 0,100% 100%,0 100%);
}
.fpm-header--band_rtl::before{
  right:calc(-1 * var(--fpm-bleed-right,0px));
  clip-path:polygon(6% 0,100% 0,100% 100%,0 100%);
}

/* Carousel / Grid */
.fpm-stage{position:relative;width:auto;max-width:100%;min-width:0;display:flex;align-items:center;gap:12px}
/* A 100%-wide flex child plus two fixed arrows can make the flex row wider than
   its parent. Let the viewport consume only the remaining space instead. */
.fpm-viewport{flex:1 1 0;width:auto;max-width:100%;overflow:hidden;min-width:0;direction:ltr!important}
.fpm-track{display:flex;align-items:stretch;gap:var(--fpm-gap);min-width:0;will-change:transform;transition:transform .55s cubic-bezier(.22,.61,.36,1);direction:ltr!important}
/* Keep carousel geometry deterministic even when WordPress/Divi is globally RTL.
   Each card uses dir=auto so Persian/Arabic content still renders RTL naturally. */
.fpm-card[dir="auto"]{unicode-bidi:plaintext}
.fpm-site-rtl.fpm-preset-industries .fpm-card{text-align:right}
.fpm-site-rtl .fpm-read-more{direction:rtl}
.fpm-layout-grid .fpm-stage{display:block}
.fpm-layout-grid .fpm-viewport{overflow:visible}
.fpm-layout-grid .fpm-track{display:grid;grid-template-columns:repeat(var(--fpm-cols-desktop),minmax(0,1fr));transform:none!important}
.fpm-card{min-width:0;max-width:100%;flex:0 0 calc((100% - (var(--fpm-gap) * (var(--fpm-cols-desktop) - 1))) / var(--fpm-cols-desktop));position:relative;background:transparent;overflow:visible}
.fpm-image-link{display:block;color:inherit;text-decoration:none}
.fpm-image-wrap{position:relative;padding:var(--fpm-bar-height) 0;overflow:hidden}
.fpm-image-wrap::before,.fpm-image-wrap::after{content:"";position:absolute;width:80%;height:var(--fpm-bar-height);background:var(--fpm-bar);z-index:3;transition:width .8s cubic-bezier(.42,0,.58,1),background-color .8s cubic-bezier(.42,0,.58,1);pointer-events:none}
.fpm-image-wrap::before{top:calc(var(--fpm-bar-height) * .60);right:-1px;clip-path:polygon(0 0,100% 0,100% 100%,6.5% 100%)}
.fpm-image-wrap::after{bottom:calc(var(--fpm-bar-height) * .60);left:-1px;clip-path:polygon(0 0,93.5% 0,100% 100%,0 100%)}
.fpm-image,.fpm-image-placeholder{display:block;width:100%;height:var(--fpm-image-height);object-fit:cover;background:#e7ebef;filter:none!important;opacity:1!important;mix-blend-mode:normal!important;transition:transform .65s ease}
.fpm-image-placeholder{display:flex;align-items:center;justify-content:center;color:#415a77;font-size:48px;font-weight:300}
.fpm-card:hover .fpm-image-wrap::before,.fpm-card:hover .fpm-image-wrap::after{width:100%;background:var(--fpm-accent)}
.fpm-card:hover .fpm-image{transform:scaleX(1.05)}
.fpm-card-body{padding:0 8px 8px}
.fpm-card-title{margin:0 0 13px;padding:0;font-size:22px;line-height:1.28;font-weight:700;color:var(--fpm-title)}
.fpm-card-title a{color:inherit;text-decoration:none;transition:color .2s ease}
.fpm-card-title a:hover{color:var(--fpm-accent)}
.fpm-excerpt{font-size:14px;line-height:1.7;color:var(--fpm-excerpt)}
.fpm-read-more{display:inline-flex;align-items:center;margin-top:17px;padding:9px 14px;background:var(--fpm-accent);color:#1b263b!important;text-decoration:none;font-size:13px;font-weight:700;clip-path:polygon(8px 0,100% 0,100% 100%,0 100%,0 8px)}
.fpm-read-more:hover{filter:brightness(.96)}

/* Presets based on the supplied Production Factory reference. */
.fpm-preset-services .fpm-card{text-align:center}
.fpm-preset-services .fpm-card-title{font-size:22px;margin-top:-4px;margin-bottom:20px;color:var(--fpm-title)}
.fpm-preset-services .fpm-excerpt{font-size:14px;text-align:center;padding:0 10px;color:var(--fpm-excerpt)}
.fpm-preset-industries .fpm-card{text-align:left}
.fpm-preset-industries .fpm-card-title{font-size:32px;margin-bottom:15px;color:var(--fpm-title)}
.fpm-preset-industries .fpm-excerpt{font-size:16px;max-width:75%;color:var(--fpm-excerpt)}
.fpm-preset-clean .fpm-card{background:#fff;box-shadow:0 12px 34px rgba(27,38,59,.08);padding-bottom:12px}
.fpm-preset-clean .fpm-card-body{padding:0 18px 12px}

.fpm-nav-button{flex:0 0 42px;width:42px;min-width:42px;max-width:42px;height:42px;border:0;background:transparent;color:var(--fpm-title);display:flex;align-items:center;justify-content:center;font-size:31px;line-height:1;cursor:pointer;padding:0;transition:color .2s ease,transform .2s ease;z-index:5}
.fpm-preset-services .fpm-nav-button{color:var(--fpm-header-title)}
.fpm-nav-button:hover{color:var(--fpm-accent);transform:scale(1.06)}
.fpm-nav-button:disabled{opacity:.3;cursor:default;transform:none}
.fpm-section-title,.fpm-section-subtitle,.fpm-card-title,.fpm-excerpt{overflow-wrap:anywhere}
.fpm-empty{padding:24px;border:1px dashed rgba(65,90,119,.35);color:var(--fpm-excerpt);text-align:center}

@media (max-width:980px){
  .fpm-showcase{padding:30px 20px 34px}
  .fpm-card{flex-basis:calc((100% - (var(--fpm-gap) * (var(--fpm-cols-tablet) - 1))) / var(--fpm-cols-tablet))}
  .fpm-layout-grid .fpm-track{grid-template-columns:repeat(var(--fpm-cols-tablet),minmax(0,1fr))}
  .fpm-preset-industries .fpm-excerpt{max-width:100%}
  .fpm-preset-industries .fpm-card-title{font-size:26px}
  .fpm-section-title{font-size:min(var(--fpm-header-title-size),36px)!important}
}
@media (max-width:767px){
  .fpm-showcase{padding:24px 10px 28px}
  .fpm-stage{gap:4px}
  .fpm-card{flex-basis:calc((100% - (var(--fpm-gap) * (var(--fpm-cols-mobile) - 1))) / var(--fpm-cols-mobile))}
  .fpm-layout-grid .fpm-track{grid-template-columns:repeat(var(--fpm-cols-mobile),minmax(0,1fr))}
  .fpm-nav-button{display:none}
  .fpm-card-title,.fpm-preset-industries .fpm-card-title{font-size:22px}
  .fpm-section-title{font-size:min(var(--fpm-header-title-size),30px)!important}
  .fpm-header--band_ltr,.fpm-header--band_rtl{padding:10px 14px}
}
@media (prefers-reduced-motion:reduce){
  .fpm-track,.fpm-image,.fpm-image-wrap::before,.fpm-image-wrap::after,.fpm-nav-button{transition:none!important}
}
