```css
/* -----------------------------
   Base Grid & Layout
------------------------------ */

.image-with-text .grid {
  margin-bottom: 0;
}

.image-with-text .grid__item {
  position: relative;
}

.image-with-text .grid__item::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
}

/* Reverse layout (desktop) */

@media screen and (min-width: 750px) {
  .image-with-text__grid--reverse {
    flex-direction: row-reverse;
  }
}

/* -----------------------------
   Media (Image / Placeholder)
------------------------------ */

.image-with-text__media {
  min-height: 100%;
  overflow: visible;
}

.image-with-text__media--small { height: 19.4rem; }
.image-with-text__media--medium { height: 29.6rem; }
.image-with-text__media--large { height: 43.5rem; }

@media screen and (min-width: 750px) {

.image-with-text__media--small { height: 31.4rem; }
.image-with-text__media--medium { height: 46rem; }
.image-with-text__media--large { height: 69.5rem; }

}

/* Placeholder */

.image-with-text__media--placeholder {
  position: relative;
  overflow: hidden;
}

.image-with-text__media--placeholder::after {
  content: '';
  position: absolute;
  background: rgba(var(--color-foreground), 0.04);
}

.image-with-text__media--placeholder.image-with-text__media--adapt {
  height: 20rem;
}

@media screen and (min-width: 750px) {

.image-with-text__media--placeholder.image-with-text__media--adapt {
  height: 30rem;
}

}

.image-with-text__media--placeholder > svg {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.image-with-text__media--placeholder:is(.animate--ambient, .animate--zoom-in) 
.svg-wrapper {
  inset: 0;
  transform: translate(0);
}

/* -----------------------------
   Content Box
------------------------------ */

.image-with-text__content {

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-self: center;

  height: 100%;

  padding: 4rem calc(4rem / var(--font-body-scale)) 5rem;

  position: relative;
  z-index: 1;

  word-break: break-word;

  border-radius: var(--text-boxes-radius);

  box-shadow: 
  var(--text-boxes-shadow-horizontal-offset)
  var(--text-boxes-shadow-vertical-offset)
  var(--text-boxes-shadow-blur-radius)
  rgba(var(--color-shadow), var(--text-boxes-shadow-opacity));

}

@media screen and (min-width: 990px) {

.image-with-text__content {
  padding: 6rem 7rem 7rem;
}

}

/* Spacing */

.image-with-text__content > * + * {
  margin-top: 2rem;
}

/* -----------------------------
   Alignment Utilities
------------------------------ */

.image-with-text__content--mobile-right > * {
  align-self: flex-end;
  text-align: right;
}

.image-with-text__content--mobile-center > * {
  align-self: center;
  text-align: center;
}

@media screen and (min-width: 750px) {

.image-with-text__content--desktop-left > * {
  align-self: flex-start;
  text-align: left;
}

.image-with-text__content--desktop-right > * {
  align-self: flex-end;
  text-align: right;
}

.image-with-text__content--desktop-center > * {
  align-self: center;
  text-align: center;
}

}

/* -----------------------------
   Overlap Mode
------------------------------ */

.image-with-text--overlap 
.image-with-text__content {

  width: 90%;
  margin: -3rem auto 0;

}

@media screen and (min-width: 750px) {

.image-with-text--overlap 
.image-with-text__content {

  width: calc(100% + 4rem);
  min-width: calc(100% + 4rem);
  margin-left: -4rem;
  height: auto;

}

.image-with-text__grid--reverse 
.image-with-text__content {

  margin-left: 0;
  margin-right: -4rem;

}

}

/* -----------------------------
   Shadows & Radius Handling
------------------------------ */

.image-with-text 
.image-with-text__media-item > *,
.image-with-text 
.image-with-text__text-item > * {

  overflow: hidden;
  border-radius: var(--media-radius);

}

.image-with-text:not(.image-with-text--overlap)
.image-with-text__media-item > *,
.image-with-text:not(.image-with-text--overlap)
.image-with-text__text-item > * {

  box-shadow: none;

}

/* -----------------------------
   Mobile Adjustments
------------------------------ */

@media screen and (max-width: 749px) {

.collapse-padding 
.image-with-text__grid 
.image-with-text__content {

  padding-left: 0;
  padding-right: 0;

}

}

/* -----------------------------
   Misc
------------------------------ */

.image-with-text .gradient {
  transform: perspective(0);
}

@supports not (inset: 10px) {

.image-with-text .grid {
  margin-left: 0;
}

}

.multirow__inner {

  display: flex;
  flex-direction: column;
  row-gap: var(--grid-mobile-vertical-spacing);

}

@media screen and (min-width: 750px) {

.multirow__inner {
  row-gap: var(--grid-desktop-vertical-spacing);
}

}

/* -----------------------------
   Typography
------------------------------ */

.v-font{
  font-size:16px;
  font-weight:500;
  line-height:1.3;
}

@media screen and (min-width:750px){

.v-font{
  font-size:20px;
}

}

/* -----------------------------
   Collection Text Fix
------------------------------ */

.cat_name{

  width:100%;
  text-align:center;
  white-space:normal;
  word-break:break-word;

}

.cat_name h3{

  margin:0;
  line-height:1.2;

}

.cat_name a{

  text-decoration:none;
  color:inherit;

}

/* -----------------------------
   Text Alignment Controls
------------------------------ */

.text-align-left{
  text-align:left;
}

.text-align-center{
  text-align:center;
}

.text-align-right{
  text-align:right;
}

/* -----------------------------
   Text Display Type
------------------------------ */

.text-type-normal h3{
  display:block;
}

.text-type-flex h3{
  display:flex;
  justify-content:center;
  align-items:center;
}

/* -----------------------------
   Text Clamp (2 lines)
------------------------------ */

.text-clamp-2 h3{

  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;

}
