.elementor-kit-390{--e-global-color-primary:#30574E;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#7E3C8B;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-390 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* 1. Grid for the whole block */
.links-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 40px; /* space between cards */
}

/* 2. Turn each Image Box into a card */
.links-grid .link-card {
  background: #f0f6f8;            /* card background */
  padding: 24px;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all .2s ease;
}

.links-grid .link-card:hover {
  box-shadow: 0 18px 48px rgba(0,0,0,0.10);
  transform: translateY(-4px);
}

/* 3. Make all screenshots the same size */
.links-grid .link-card .elementor-image-box-img img {
  width: 100%;
  height: 180px;          /* adjust height if needed */
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 16px;
}

/* 4. Align titles/links nicely and style them */
.links-grid .link-card .elementor-image-box-content {
  margin-top: auto;       /* pushes text content down so links line up */
}

.links-grid .link-card .elementor-image-box-title a {
  font-weight: 600;
  text-decoration: none;
  color: #0033a0;         /* change to your brand colour */
  border-bottom: 1px solid transparent;
}

.links-grid .link-card .elementor-image-box-title a:hover {
  border-bottom-color: currentColor;
}

.elementor-image-box-content {
    min-height: 260px; /* Adjust until all cards align */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    text-align: center;
}

.elementor-image-box-title {
    margin-bottom: 10px;
}

.elementor-image-box-description {
    flex-grow: 1;
}


/*portfolio style (program output)*/

/* Book cover frame */
.book-cover img {
  width: 100%;
  max-width: 260px;          /* same visual width for all */
  aspect-ratio: 3 / 4;      /* classic book ratio */
  object-fit: contain;      /* SHOW whole cover */
  background: #ffffff;      /* clean frame */
  padding: 12px;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}

/* Center image inside column */
.book-cover {
  text-align: center;
}/* End custom CSS */