/* Live WordPress styles follow the standalone index.html / categories.html reference designs.
   Plugin defaults are CSS variables; Elementor's widget-scoped rules take precedence. */
.gj {
  --gj-ink: var(--gj-design-ink); --gj-body: var(--gj-design-body);
  --gj-muted: var(--gj-design-body); --gj-accent: var(--gj-design-accent);
  --gj-peach: var(--gj-design-peach); --gj-line: var(--gj-design-line);
  --gj-card-border: var(--gj-design-card-border);
  background: var(--gj-design-page); color: var(--gj-design-ink);
  font-family: var(--gj-body-font);
}
.gj h1,.gj h2,.gj h3,.gj button,.gj .gj-section-tabs a { font-family: var(--gj-heading-font); }
.gj .gj-wrap { width: min(calc(100% - 48px), var(--gj-content-width)); }
.gj .gj-archive-intro,.gj .gj-archive-panel,.gj .gj-intro,.gj .gj-content-layout,.gj .gj-slider { background: var(--gj-design-surface); }
.gj-archive .gj-archive-intro,.gj-single .gj-intro {
  padding: 32px max(58px,calc((100vw - var(--gj-content-width))/2 + 34px));
  margin: 0; border: 0; border-bottom: 1px solid var(--gj-design-line); border-radius: 0;
}
.gj-archive .gj-archive-intro::after { content: none; }
.gj-archive .gj-archive-intro h1,.gj-single .gj-intro h1 {
  font-family: var(--gj-archive-title-font); font-size: var(--gj-title-size); letter-spacing: 0;
}
.gj-archive .gj-archive-intro p:last-child,.gj .gj-slider-head p,.gj .gj-intro-lede { color: var(--gj-design-body); }
.gj .gj-kicker { color: var(--gj-ink); }
.gj-archive .gj-archive-panel { padding: var(--gj-archive-padding); border-radius: 0; border-bottom: 1px solid #d6dfe5; }
/* Card shadows may extend outside the listing; gaps never grow automatically. */
.gj-archive .gj-archive-panel,.gj-archive .gj-wrap { overflow: visible; }
.gj-archive .gj-cards {
  grid-template-columns: repeat(var(--gj-archive-cols),minmax(0,1fr));
  gap: var(--gj-grid-gap, var(--gj-card-gap));
  padding: 0;
}
.gj .gj-card,.gj .gj-story { border: var(--gj-card-border-width) solid var(--gj-design-card-border); border-radius: var(--gj-card-radius); }
.gj .gj-card h3,.gj .gj-story h3 { font-family: var(--gj-card-title-font); font-size: var(--gj-card-title-size); }
.gj .gj-card-excerpt { font-family: var(--gj-excerpt-font); font-size: var(--gj-excerpt-size); }
.gj .gj-card-bottom,.gj .gj-card-bottom time,.gj .gj-side-item time {
  font-family: var(--gj-date-font); font-size: var(--gj-date-size); font-weight: 500; color: var(--gj-ink);
}
.gj .gj-card-bottom a.gj-read-more {
  display: inline-flex; flex-direction: row; align-items: center; gap: 8px; flex: none;
  padding: 6px 30px; background: #eef1f3; border-radius: 50px;
  color: var(--gj-ink); font-family: var(--gj-body-font); font-size: 13px;
  font-weight: 400; line-height: 1.5; white-space: nowrap;
}
.gj .gj-card-bottom a.gj-read-more:hover { background: #dde5eb; transform: none; }
.gj .gj-card-bottom a.gj-read-more svg { display: block; width: 13px; height: 13px; flex: none; }
.gj-single .gj-content-layout { border-radius: 0; border-bottom: 1px solid #d6dfe5; }
.gj-single .gj-article-body { font-family: var(--gj-article-font); font-size: var(--gj-article-size); color: var(--gj-ink); }
.gj-single .gj-article-body h2,.gj-single .gj-article-body h3,.gj-single .gj-article-body blockquote { font-family: var(--gj-heading-font); }
.gj .gj-slider { padding: var(--gj-slider-padding); border-radius: var(--gj-panel-radius); }
.gj .gj-slider-head h2 { font-family: var(--gj-slider-title-font); }
/* A translated, non-scroll-clipped track lets shadows paint past the section
   without manufacturing a gutter around every card. */
.gj .gj-slider,.gj .gj-slider-panel { overflow: visible; }
/* Clip the offscreen slides only, without introducing layout padding. The clip
   margin lets card shadows paint beyond the section's edges. */
.gj.gj-slider-shell { overflow: clip; overflow-clip-margin: 48px; }
.gj .gj-slider-panel { touch-action: pan-y; }
.gj .gj-slider-track {
  --gj-effective-gap: var(--gj-slider-gap, var(--gj-card-gap));
  gap: var(--gj-effective-gap);
  padding: 0;
  overflow: visible;
  scroll-snap-type: none;
  scroll-behavior: auto;
  will-change: transform;
  transition: transform .3s ease;
}
.gj .gj-story { flex-basis: calc((100% - (var(--gj-slider-cols) - 1)*var(--gj-effective-gap))/var(--gj-slider-cols)); }
.gj .gj-slider-tabs button { font-family: var(--gj-heading-font); }
.gj .gj-slider-controls svg { display: block; width: 19px; height: 19px; }
.gj .gj-section-tabs,.gj .gj-slider-tabs,.gj .gj-card-bottom,.gj .gj-article-end { border-color: var(--gj-design-line); }
/* The base stylesheet also uses font shorthands: override their families without
   freezing typography controls on any Elementor widget. */
.gj-archive .gj-section-tabs a,.gj-archive .gj-listing-head h2,.gj-archive .gj-empty h3,
.gj-single .gj-side-top h2,.gj-single .gj-side-item h3,.gj-single .gj-article-body h2,
.gj-single .gj-article-body h3,.gj-single .gj-article-body blockquote,
.gj .gj-slider-head h2,.gj .gj-slider-tabs button,.gj .gj-card h3,.gj .gj-story h3 {
  font-family: var(--gj-heading-font);
}
.gj .gj-card h3,.gj .gj-story h3 { font-family: var(--gj-card-title-font); }
.gj .gj-archive-intro h1,.gj .gj-intro h1 { font-family: var(--gj-archive-title-font); }
.gj .gj-slider-head h2 { font-family: var(--gj-slider-title-font); }
.gj .gj-image-placeholder { font-family: var(--gj-body-font); }
/* Keep an empty/fully hidden widget selectable in Elementor's live preview. */
.gj-widget-hint { min-height: 76px; padding: 22px; border: 1px dashed #b99288; background: #fff8f5; color: #423633; }
.elementor-editor-active .elementor-widget .gj-widget:empty { min-height: 60px; }
.gj .gj-slider-controls[hidden], .gj .gj-slider-tabs[hidden], .gj .gj-slider-count[hidden] { display: none !important; }
/* Independently placed widgets: no forced page-sized margins or enclosing template padding. */
.gj.gj-elementor-layout { padding: 0; background: transparent; }
.gj-elementor-layout .gj.gj-widget { padding: 0; min-width: 0; background: transparent; }
.gj-elementor-layout .gj.gj-widget .gj-intro,.gj-elementor-layout .gj.gj-widget .gj-archive-intro { margin: 0; }
.gj.gj-widget .gj-article { padding: 32px 34px 38px; min-width: 0; background: var(--gj-design-surface); border: 0; }
.gj.gj-widget .gj-sidebar { display: block; width: 100%; min-width: 0; padding: 0 24px; background: var(--gj-design-surface); }
.gj.gj-widget .gj-sidebar-section + .gj-sidebar-section { border-left: 0; border-top: 1px solid var(--gj-line); }
.gj.gj-widget .gj-listing-widget,.gj.gj-listing-widget .gj-wrap { width: 100%; }
.gj-listing-widget .gj-archive-panel { margin: 0; }
.gj-layout-widget .gj-content-layout > .gj.gj-widget { min-width: 0; }
.gj-layout-widget .gj-content-layout > .gj.gj-widget:first-child .gj-article { border-right: 1px solid var(--gj-line); }
.gj-layout-widget .gj-content-layout > .gj.gj-widget:only-child { grid-column: 1/-1; }
.gj-widget-hint { padding: 20px; border: 1px dashed #888; }
@media(max-width:1100px){.gj-archive .gj-cards{grid-template-columns:repeat(min(2,var(--gj-archive-cols)),minmax(0,1fr))}}
@media(max-width:1024px){
  .gj .gj-wrap{width:min(calc(100% - 2 * var(--gj-tablet-outer-gutter, 16px)),var(--gj-content-width))}
  .gj-archive .gj-archive-intro,.gj-single .gj-intro{padding:var(--gj-tablet-intro-padding, 20px)}
  .gj-archive .gj-archive-panel{padding:var(--gj-tablet-archive-padding, 20px)}
  .gj .gj-slider{padding:var(--gj-tablet-slider-padding, 20px)}
  .gj-single .gj-article,.gj.gj-widget .gj-article{padding:var(--gj-tablet-article-padding, 20px)}
  .gj-single .gj-sidebar-section{padding:var(--gj-tablet-sidebar-padding, 16px)}
  .gj .gj-card-body{padding:var(--gj-tablet-card-padding, 16px)}
}
@media(max-width:860px){.gj .gj-story{flex-basis:calc((100% - var(--gj-effective-gap))/2)}}
@media(max-width:767px){
  .gj .gj-wrap{width:min(calc(100% - 2 * var(--gj-mobile-outer-gutter, 0px)),var(--gj-content-width))}
  .gj-archive .gj-archive-intro,.gj-single .gj-intro{padding:var(--gj-mobile-intro-padding, 12px);text-align:center}
  .gj-archive .gj-archive-panel{padding:var(--gj-mobile-archive-padding, 0px)}
  .gj .gj-slider{padding:var(--gj-mobile-slider-padding, 0px)}
  .gj-archive .gj-cards{--gj-grid-gap:0px}
  .gj .gj-slider-track{--gj-slider-gap:0px}
  .gj-single .gj-content-layout{display:flex;flex-direction:column}
  .gj-single .gj-article,.gj.gj-widget .gj-article{padding:var(--gj-mobile-article-padding, 14px)}
  .gj.gj-widget .gj-sidebar{padding:0}
  .gj-single .gj-sidebar-section{padding:var(--gj-mobile-sidebar-padding, 12px)}
  .gj .gj-card-body{padding:var(--gj-mobile-card-padding, 12px)}
  .gj-layout-widget .gj-content-layout > .gj.gj-widget:first-child .gj-article{border-right:0;border-bottom:1px solid var(--gj-line)}
}
@media(prefers-reduced-motion:reduce){.gj .gj-slider-track{transition:none}}
@media(max-width:560px){
  .gj-archive .gj-cards{grid-template-columns:minmax(0,1fr)}
  .gj .gj-story{flex-basis:88%}
  .gj .gj-card-bottom{flex-wrap:wrap}
  .gj .gj-card-bottom a.gj-read-more{padding:6px 18px}
}
/* Post Intro is an unstyled, transparent Elementor section by default. Keep
   these selectors less specific than Elementor's widget-scoped Style rules. */
.gj.gj-intro-shell { padding: 0; margin: 0; background: transparent; border: 0; }
.gj .gj-intro-widget {
  padding: 0; margin: 0; background: transparent;
  border: 0; border-radius: 0; box-shadow: none;
}
/* Separate the author and date, including in the PHP fallback layout. */
.gj-single .gj-intro-meta { column-gap: 12px; row-gap: 4px; }
