/* Projecta 1.4.0: reusable modern project presentation for legacy SiteOrigin pages. */
.projecta-modern-projects .site-main{padding-block:clamp(28px,4vw,56px)}

/*
 * One continuous grid for the whole SiteOrigin layout.
 * Old SiteOrigin project rows become display:contents, so a row with one or two
 * cards no longer leaves permanent holes. Cards continue into the next row.
 */
.projecta-modern-projects .panel-layout{
  display:grid!important;
  grid-template-columns:repeat(var(--pa-project-cols),minmax(0,1fr));
  gap:var(--pa-project-gap)!important;
  align-items:stretch;
}
.projecta-modern-projects .panel-layout>.panel-grid:has(.widget_black-studio-tinymce){display:contents!important}
.projecta-modern-projects .panel-layout>.panel-grid:has(.widget_black-studio-tinymce)>.panel-grid-cell{display:contents!important;width:auto!important;margin:0!important;padding:0!important}
.projecta-modern-projects .panel-layout>.panel-grid:has(.widget_black-studio-tinymce) .so-panel{margin:0!important;min-width:0}

/* Empty/spacing-only legacy widgets and rows should not create cards or whitespace. */
.projecta-modern-projects .widget_black-studio-tinymce:not(:has(img)):not(:has(h4)){display:none!important}
.projecta-modern-projects .panel-grid:has(>.panel-grid-cell-empty + .panel-grid-cell-empty){display:none!important}

/* Any non-project SiteOrigin row spans the whole modern grid. */
.projecta-modern-projects .panel-layout>.panel-grid:not(:has(.widget_black-studio-tinymce)){
  grid-column:1/-1;
  min-width:0;
}

/* Project card. */
.projecta-modern-projects .widget_black-studio-tinymce{
  position:relative;
  overflow:hidden;
  padding:var(--pa-project-card-pad);
  background:var(--pa-project-card-bg);
  border:1px solid var(--pa-project-card-border);
  border-radius:var(--pa-project-card-radius);
  box-shadow:var(--pa-project-shadow);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease
}
.projecta-modern-projects .widget_black-studio-tinymce:hover{box-shadow:0 16px 40px rgba(20,35,29,.14)}
.projecta-modern-projects .widget_black-studio-tinymce .textwidget{height:100%;display:flex;flex-direction:column;align-items:stretch}
.projecta-modern-projects .widget_black-studio-tinymce .textwidget>p:first-child{margin-top:0}
.projecta-modern-projects .widget_black-studio-tinymce .textwidget p{margin:0 0 10px;color:var(--pa-project-meta);font-size:var(--pa-project-meta-size);line-height:1.75}
.projecta-modern-projects .widget_black-studio-tinymce .textwidget>p:last-child{margin-bottom:0}
.projecta-modern-projects .widget_black-studio-tinymce img{display:block!important;width:100%!important;height:var(--pa-project-image-height)!important;margin:0 0 14px!important;object-fit:cover!important;object-position:center!important;border-radius:var(--pa-project-image-radius);transition:transform .32s ease}
.projecta-modern-projects .widget_black-studio-tinymce a:has(>img){display:block;overflow:hidden;border-radius:var(--pa-project-image-radius);margin-bottom:14px}
.projecta-modern-projects .widget_black-studio-tinymce a:has(>img) img{margin-bottom:0!important}
.projecta-modern-projects .widget_black-studio-tinymce h4{margin:0 0 8px;font-size:var(--pa-project-title-size)!important;line-height:1.55;min-height:3.1em}
.projecta-modern-projects .widget_black-studio-tinymce h4 a{color:var(--pa-project-title);text-decoration:none}
.projecta-modern-projects .widget_black-studio-tinymce h4 a:hover,.projecta-modern-projects .widget_black-studio-tinymce h4 a:focus{color:var(--pa-project-title-hover)}
.projecta-modern-projects .widget_black-studio-tinymce .textwidget>p:has(>a>img:only-child){margin:0}

/* Section headers and CTA rows. */
.projecta-modern-projects .panel-layout>.panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)){
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--pa-project-header-gap)!important;
  align-items:center!important;
  padding:var(--pa-project-section-py) var(--pa-project-section-px);
  background:var(--pa-project-section-bg);
  border:1px solid var(--pa-project-section-border);
  border-radius:var(--pa-project-section-radius);
  margin:calc(var(--pa-project-section-gap) - var(--pa-project-gap)) 0 0!important
}
.projecta-modern-projects .panel-layout>.panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)):first-child{margin-top:0!important}
.projecta-modern-projects .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell{width:auto!important;margin:0!important;padding:0!important;min-width:0}
.projecta-modern-projects .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell-empty{display:none!important}
.projecta-modern-projects .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)) .so-panel{margin:0!important}
.projecta-modern-projects .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)) .widget-title{margin:0;color:var(--pa-project-section-color);font-size:var(--pa-project-section-title-size)!important;font-weight:var(--pa-project-section-weight);line-height:1.5;text-align:var(--pa-project-section-align)}
.projecta-modern-projects .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)) .widget_text .textwidget{display:none}

/* Title/button placement. In RTL the first auto-placement track begins at the right. */
.projecta-project-header--title-button .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_text){order:1}
.projecta-project-header--title-button .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_pt_banner){order:2}
.projecta-project-header--button-title .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_pt_banner){order:1}
.projecta-project-header--button-title .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_text){order:2}
.projecta-project-header--stack-title .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)),
.projecta-project-header--stack-button .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)){grid-template-columns:1fr}
.projecta-project-header--stack-title .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_text){order:1}
.projecta-project-header--stack-title .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_pt_banner){order:2}
.projecta-project-header--stack-button .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_pt_banner){order:1}
.projecta-project-header--stack-button .panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce))>.panel-grid-cell:has(.widget_text){order:2}

/* Dedicated section CTA styling, independent from global buttons. */
.projecta-modern-projects .widget_pt_banner{padding:0!important;background:transparent!important;border-radius:0!important;display:block!important}
.projecta-modern-projects .widget_pt_banner .banner__text{display:flex}
.projecta-modern-projects .widget_pt_banner .projecta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  width:auto;
  padding:var(--pa-project-button-py) var(--pa-project-button-px);
  border:0;
  border-radius:var(--pa-project-button-radius);
  background:var(--pa-project-button-bg);
  color:var(--pa-project-button-color);
  font-size:var(--pa-project-button-size);
  font-weight:var(--pa-project-button-weight);
  line-height:1.4;
  text-align:center;
  text-decoration:none
}
.projecta-modern-projects .widget_pt_banner .projecta-button:hover,.projecta-modern-projects .widget_pt_banner .projecta-button:focus{background:var(--pa-project-button-hover-bg);color:var(--pa-project-button-hover-color)}
.projecta-project-button--full .widget_pt_banner .projecta-button{width:100%}
.projecta-modern-projects .widget_pt_banner .banner__buttons{display:none}

/* Old WooCommerce shortcode on the original /projects/ page is obsolete. */
.projecta-modern-projects #pg-173-0 .widget_text .textwidget{display:none!important}

@media(max-width:980px){
  .projecta-modern-projects .panel-layout{grid-template-columns:repeat(var(--pa-project-cols-tablet),minmax(0,1fr))}
  .projecta-modern-projects .panel-layout>.panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)){grid-template-columns:1fr;margin-top:calc(var(--pa-project-section-gap) - var(--pa-project-gap))!important}
  .projecta-modern-projects .panel-layout>.panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)):first-child{margin-top:0!important}
  .projecta-modern-projects .widget_black-studio-tinymce img{height:190px!important}
}
@media(max-width:620px){
  .projecta-modern-projects .panel-layout{grid-template-columns:1fr}
  .projecta-modern-projects .panel-layout>.panel-grid:has(.widget_text):not(:has(.widget_black-studio-tinymce)){padding:16px;margin-top:20px!important}
  .projecta-modern-projects .widget_black-studio-tinymce{padding:14px}
  .projecta-modern-projects .widget_black-studio-tinymce img{height:auto!important;aspect-ratio:16/9}
  .projecta-modern-projects .widget_black-studio-tinymce h4{min-height:0}
}
