/* ===============================
   CARD LAYOUTS – ULTRA DRY VERSION
================================= */

/* -----------------------------
   LAYOUT
----------------------------- */

div.same_height,
div.same-height {
	display: flex;
}

div.list {
	flex: 1;
}

div.white-card,
div.red-card,
div.mp-card,
div.range-card,
div.brand-card,
div.service-card,
div.slider-card,
div.small-spaces-card {
	height: 100% !important;
}

.list.nospace > ul > li {
  margin-top: 0;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.list > ul > li:last-child {
	margin-bottom: 1.67rem;
	padding-bottom: 1rem !important;
	border-bottom: none;
}

.home-brand-card .list > ul > li,
.home-brand-card .list > ul > li:last-child,
.home-service-card .list > ul > li,
.home-service-card .list > ul > li:last-child{
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* -----------------------------
   BASE CARD STYLES
----------------------------- */

.white-card,
.range-card,
.brand-card,
.slider-card,
.service-card,
.small-spaces-card,
.red-card,
.mp-card,
.home-card,
.mp-home-card,
.pub-card {
	transform: scale(1);
	transition: all 0.4s ease;
	position: relative;
}

.white-card,
.range-card,
.slider-card,
.pub-card {
	background: var(--white);
}

.brand-card,
.service-card,
.red-card,
.mp-card,
.home-card,
.mp-home-card {
	background: transparent;
}

div[class$="-card"] a {
	text-decoration: none;
}

.circle-card {
	transform: scale(1);
	transition: all 0.4s ease;
	position: relative;
}
.circle-card img {
	border-radius: 50%;
	border: 1px solid var(--pass-blue);
}

.circle-card:hover {
	transform: scale(1.1);
}

/* default cards */
.white-card a,
.range-card a,
.slider-card a,
.brand-card a,
.service-card a,
.mp-card a {
	color: var(--lp-font);
}

/* red cards */
.red-card {
    color: var(--white);
}

[class$="-card"] a {
    color: inherit;
}

.brand-card a,
.service-card a {
	font-weight: 700;
}

.brand-card a:hover,
.service-card a:hover,
.slider-card a:hover {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
}

.white-card a:hover,
.range-card a:hover,
.mp-card a:hover {
	color: inherit;
}

.red-card a:hover {
    color: var(--white);
}

/* -----------------------------
   HOVER STATES
----------------------------- */

.white-card:hover,
.range-card:hover,
.home-card:hover,
.home-card img:hover,
.mp-home-card:hover,
.mp-home-card img:hover {
	transform: scale(1.03);
	box-shadow: 0 16px 32px 0 rgba(0, 0, 0, 0.15);
}

.slider-card:hover {
	transform: scale(1.03);
	box-shadow: 4px 6px 12px 0 rgba(0, 0, 0, 0.15);
}

.small-spaces-card:hover,
.service-card:hover,
.brand-card:hover,
.mp-card:hover,
.red-card:hover {
	transform: scale(1.03);
}

.pub-card:hover {
	box-shadow: 0 16px 32px 5px rgba(128,128,128,.15);
	transform: scale(0.95);
}

@media (max-width: 768px) {
	.pub-card {
		box-shadow: 0 -5px 10px 5px rgba(128,128,128,.15);
		transform: scale(1);
	}
	.pub-card:hover {
		box-shadow: 0 -3px 10px 3px rgba(128,128,128,.15);
		transform: scale(0.98);
	}
}

/* -----------------------------
   CARD IMAGE BLOCKS
----------------------------- */

/*.brand-card__image,
.slider-card__image,
.service-card__image {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.brand-card__image img,
.slider-card__image img,
.service-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.brand-card__logo,
.service-card__logo {
	position: absolute;
	top: 30px;
	left: 50%;
	transform: translateX(-50%);
	height: auto;
	max-width: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.brand-card__logo svg,
.brand-card__logo img,
.service-card__logo svg,
.service-card__logo img {
	height: auto !important;
	max-height: 100%;
	max-width: 200px;
	display: block;
	object-fit: fill;
}*/

/* -----------------------------
   CARD BUTTONS
----------------------------- */

/*.brand-card__button,
.service-card__button {
	display: inline-block;
	margin: 0.5rem 0 0 0;
	padding: 0.35rem 1.2rem;
	background: var(--white);
	border-radius: 50px;
	width: fit-content;
	border: 1px solid currentColor;
}

.brand-card__button:hover,
.service-card__button:hover {
	border-color: var(--wtde-darkest-sand);
}

.brand-card__button:hover a,
.service-card__button:hover a {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
}*/


/* Brand card original xv */
/** 2026 brand card additions **/
.brand-card {
	background: transparent;
	/*box-shadow: 0 -3px 6px 5px rgba(128, 128, 128, 0.19);*/
	transform: scale(1);
	transition: all .4s ease;
	position: relative;
	font-size: 1.15rem;
}


@media (max-width : 767px) {
	.brand-card,
	.service-card {
		padding-bottom: 1.2rem;
	}
}

.brand-card a {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
	font-weight: 700;
}

.brand-card a:hover {
	color: var(--lp-font);
	text-decoration: none;
	
}

/* Image block */
.brand-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 310 / 380;
  overflow: hidden;
}

.brand-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Logo overlay */
.brand-card__logo {
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  height: auto;
  max-width: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* critical */
}

.brand-card__logo svg,
.brand-card__logo img {
  height: auto !important;
 /* width: auto !important;*/
  max-height: 100%;
  max-width: 200px;
  display: block;
  object-fit: fill;
}

/* Button */
.brand-card__button {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.35rem 1.2rem;
  border: 1px solid currentColor;
  width: fit-content;
    background: var(--white);
    border-radius: 50px;
	margin: 10px 0;
}

/*.buttonoutline {
	border: 1px solid var(--lp-font);
}*/

.brand-card__button:hover {
	border: 1px solid var(--wtde-darkest-sand);
}

.brand-card__button:hover a {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
	
}

.brand-card .recipe-grid-title h2 {
	font-size: 1.2rem;
	color: var(--lp-font);
	font-weight: 500;
	text-transform: uppercase;
	margin: 20px 0 10px 0;
}

/* service card original xv */
/** 2026 Service card additions **/
.service-card,
.small-spaces-card {
	background: transparent;
	transform: scale(1);
	transition: all .4s ease;
	position: relative;
}

.service-card:hover,
.small-spaces-card:hover {
transform: scale(1.03);
}

.service-card a,
.small-spaces-card a {
	color: var(--lp-font);
	text-decoration: none;
	font-weight: 700;
}

.service-card a:hover
.small-spaces-card a:hover {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
	
}

/* Image block */
.service-card__image {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Logo overlay */
.service-card__logo {
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  height: auto;
  max-width: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* critical */
}

.service-card__logo svg,
.service-card__logo img {
  height: auto !important;
 /* width: auto !important;*/
  max-height: 100%;
  max-width: 200px;
  display: block;
  object-fit: fill;
}

/* Content stack */
.service-card__content {
    padding: .7rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.service-card__title {
    margin: 3px 0 2px 0;
    font-size: 1.2rem;
    text-transform: uppercase;
	font-weight: 500;
}

.service-card__body {
    flex-grow: 1;
    font-size: .9rem;

}

/* Button */
.service-card__button {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.35rem 1.2rem;
  border: 1px solid currentColor;
  width: fit-content;
    background: var(--white);
    border-radius: 50px;
}

.service-card__button:hover {
	border: 1px solid var(--wtde-darkest-sand);
}

.service-card__button:hover a {
	color: var(--wtde-darkest-sand);
	text-decoration: none;
}




/* -----------------------------
   CONTENT STACK
----------------------------- */

.slider-card {
	background: var(--white);
	position: relative;
	margin-right: 1.7rem;
	margin-left: 0;
}

.slider-card__content,
.service-card__content {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.7rem 0;
}

.slider-card__title,
.service-card__title {
	margin: 0;
}

.slider-card__body {
	flex-grow: 1;
}

/* -----------------------------
   PRICING FIELDS (DRY)
----------------------------- */

.red-card .views-field-field-range,
.red-card .views-field-field-type,
.red-card .views-field-field-media,
.red-card .priceline,
.red-card .pricing,
.red-card .field--name-field-mp-orig-price,
.red-card .field--name-field-mp-disc-price,
.red-card .field--name-field-mp-price-info,
.red-card .pricing-values,
.red-card .pricing-values .rrp,
.red-card .pricing-values .now,
.mp-card .views-field-field-range,
.mp-card .views-field-field-type,
.mp-card .priceline,
.mp-card .pricing,
.mp-card .discounted-price,
.mp-card .field--name-field-mp-orig-price .field__item {
	font-family: var(--font-family-headers-medium);
	font-weight: 500;
	font-size: .9rem;
	color: inherit !important;
	padding: 0;
	text-transform: capitalize;
}

.red-card .priceline,
.red-card .pricing,
.red-card .pricing-values,
.red-card .pricing-values .rrp,
.red-card .pricing-values .now,
.red-card .pricing-values .rrp .rrp-value,
.red-card .pricing-values .now .now-value,
/*.red-card .field--name-field-mp-orig-price .field__label,
.red-card .field--name-field-mp-orig-price .field__item,*/
.red-card .priceline .field__label,
.red-card .priceline .field__item
/*field--name-field-mp-disc-price*/ {
	color: var(--white);
}

.red-card .field--name-field-mp-orig-price .field__item,
.red-card .rrp-value,
.mp-card .field--name-field-mp-orig-price .field__item {
	text-decoration: line-through;
}

.mp-card .discounted-price {
	color: var(--wtde-darkest-sand) !important;
}



/* -----------------------------
   DISCOUNT / NEW PRODUCT BADGES (DRY)
----------------------------- */

.red-card .views-field-field-discount-percentage,
.mp-card .views-field-field-discount-reason,
.white-card .views-field-field-new-product,
.slider-card .views-field-field-new-product {
	height: 0;
}

.red-card .views-field-field-discount-percentage .field-content,
.white-card .views-field-field-new-product .field-content,
.slider-card .views-field-field-new-product .field-content {
	position: absolute;
	z-index: 1;
	padding: 5px;
	color: var(--white);
	text-align: center;
}

.white-card .views-field-field-media-3-2,
.slider-card .views-field-field-media-3-2,
.mp-card .views-field-field-media {
    position: relative;
    margin-bottom: 5px;
}

.mp-card .views-field-field-discount-reason .field-content {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(233,78,27,.8);
    padding: 5px;
    border-radius: 20px;
    color: var(--white);
    z-index: 1;
    float: left;
    text-align: center;
}

.mp-card .views-field-field-discount-reason .field-content p {
    font-family: var(--font-family-headers);
    font-size: 0.9rem;
    color: var(--white);
    font-weight: 200;
    padding: 1px 6px;
    margin: 0;
    text-decoration: none;
    text-transform: uppercase;
    line-height: .9rem;
}

.discounted-price .to {
	padding-left: 5px;
    text-transform: none;
}

.discounted-price {
    text-transform: none;
}


.red-card .views-field-field-discount-percentage .field-content {
	bottom: 20px;
	left: 10px;
	width: 60px;
	height: 60px;
	background: var(--wtde-darkest-sand);
	border-radius: 50%;
	font-weight: 900;
}

.white-card .views-field-field-new-product .field-content,
.slider-card .views-field-field-new-product .field-content {
	bottom: 10px;
	left: 10px;
	width: 48px;
	height: 48px;
	background: rgba(233,78,27,.9);
	border-radius: 50%;
	font-family: var(--font-family-headers-medium);
	text-transform: uppercase;
	line-height: .9rem;
}

ul.larger .white-card .views-field-field-new-product .field-content,
ul.larger .slider-card .views-field-field-new-product .field-content,
ul.larger .mp-card .views-field-field-discount-reason .field-content {
	top: 15px;
	left: 15px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
}

/* Badge text */
.red-card .views-field-field-discount-percentage .field-content p,
.mp-card .views-field-field-discount-reason .field-content p,
.white-card .views-field-field-new-product .field-content p,
.slider-card .views-field-field-new-product .field-content p {
	font-family: var(--font-family-headers);
	font-size: .9rem;
	font-weight: 200;
	line-height: .9rem;
	margin: 0;
	padding: 1px 6px;
	text-transform: uppercase;
}

ul.larger .red-card .views-field-field-discount-percentage .field-content p,
ul.larger .mp-card .views-field-field-discount-reason .field-content p,
ul.larger .white-card .views-field-field-new-product .field-content p,
ul.larger .slider-card .views-field-field-new-product .field-content p {
	font-size: 1.05rem;
	line-height: 1rem;
	padding: 0;
	margin: 0;
}

.red-card .views-field-field-discount-percentage .field-content p span.discount-pct,
.mp-card .views-field-field-discount-reason .field-content p span.discount-pct,
.white-card .views-field-field-new-product .field-content p span.discount-pct,
.slider-card .views-field-field-new-product .field-content p span.discount-pct {
	font-family: var(--font-family-headers);
	font-size: 1rem;
	font-weight: 900;
	color: var(--white);
}

@media (max-width: 767px) {
	.red-card .views-field-field-discount-percentage .field-content p,
	.mp-card .views-field-field-discount-reason .field-content p,
	.white-card .views-field-field-new-product .field-content p,
	.slider-card .views-field-field-new-product .field-content p {
		font-size: .7rem;
		line-height: .9rem;
	}

	.red-card .views-field-field-discount-percentage .field-content p span.discount-pct,
	.mp-card .views-field-field-discount-reason .field-content p span.discount-pct,
	.white-card .views-field-field-new-product .field-content p span.discount-pct,
	.slider-card .views-field-field-new-product .field-content p span.discount-pct {
		font-size: 1.1rem;
	}
}

/*** trade step cards **/
.white-bg {
	background: var(--white);
}
/* Parent wrapper: three columns on desktop */
.steps-wrapper {
  display: flex;
  justify-content: space-between;
  /*gap: 40px;*/
}

/* Each step: numeral left, text right */
.step-column {
  display: flex;
  align-items: center;  /* vertical alignment */
}

/* Numeral styling */
.step-column h1 {
  font-size: 8rem;
  margin: 0;
}

/* Text styling */
.step-column p {
  margin: 0;
  font-size: 1.2rem;
}

/* Mobile stacking */
@media (max-width: 768px) {
  .steps-wrapper {
    flex-direction: column;  /* stack the three columns vertically */
    gap: 20px;
  }

  .step-column {
    flex-direction: row; /* numeral left of text if you want side-by-side on small screens, otherwise column */
    justify-content: center;
    text-align: center;
  }
}

/* -----------------------------
   TUTOR SERVICES
----------------------------- */
.home-tiles {
  --bs-gutter-y: 0;
  row-gap: 1.5rem;
  --tile-band-h: 4rem;                    /* resting band height */
  --tile-band-bg: rgba(37,128,198,.6);  /* swap for the site's blue */
  --tile-band-bg-hover: rgba(37,128,198,.7);
}

.home-tiles .tile {
  position: relative;
  display: flex;
  height: 100%;
  min-height: 16rem;
  overflow: hidden;
  border-radius: var(--bs-border-radius, .5rem);
  background: #222;
  color: #fff;
}

/*.home-tiles > div:last-child .tile { min-height: 12rem; }*/

@media (min-width: 768px) {
  .home-tiles .tile { min-height: 20rem; }
  /*.home-tiles > div:last-child .tile { min-height: 14rem; }*/
}

/* media fills the tile */
.home-tiles .tile__media,
.home-tiles .tile__media > * {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}

.home-tiles .tile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* the blue band: full tile height, pushed down so only the title shows */
.home-tiles .tile__body {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  padding: 0 1.5rem;
  background: var(--tile-band-bg);
  transform: translateY(calc(100% - var(--tile-band-h)));
  transition: transform .4s ease, background-color .4s ease;
}

.home-tiles .tile:hover .tile__body,
.home-tiles .tile:focus-within .tile__body {
  transform: translateY(0);
  background: var(--tile-band-bg-hover);
}

.home-tiles .tile__title {
  flex: 0 0 var(--tile-band-h);
  display: flex;
  align-items: center;
  margin: 0;
  font-size: 1.5rem;
	color: rgba(255,255,255,1.00);
	font-weight: 400;
}

.home-tiles .tile__title a {
  color: inherit;
  text-decoration: none;
}

.home-tiles .tile__title a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.home-tiles .tile__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}

.home-tiles .tile__text {
  padding-bottom: 1.25rem;
  max-width: 40rem;
  line-height: 1.4;
  opacity: 0;
  transition: opacity .3s ease .1s;
}

.home-tiles .tile:hover .tile__text,
.home-tiles .tile:focus-within .tile__text {
  opacity: 1;
}

.home-tiles .tile__text p:last-child { margin-bottom: 0; }

/* touch devices: no hover, so show title + description in a static band
   and make the whole tile tappable */
@media (hover: none) {
  .home-tiles .tile { align-items: flex-end; }

  .home-tiles .tile__body {
    position: static;      /* flex item, so z-index still applies */
    width: 100%;
    padding: 1rem 1.25rem;
    transform: none;
  }

  .home-tiles .tile__title { flex: none; }

  .home-tiles .tile__text {
    opacity: 1;
    padding: .25rem 0 0;
  }

  .home-tiles .tile__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-tiles .tile__body,
  .home-tiles .tile__text { transition: none; }
}


/* -----------------------------
   TEAM GRID
----------------------------- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 991px) { .team-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) { .team-grid { grid-template-columns: repeat(2, 1fr); } }

.team-card {
  position: relative;
  overflow: hidden;
	border-radius: 50%;
	border: 2px double var(--pass-blue);
}

.team-card__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.team-card__name {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: .5rem;
  background: linear-gradient(transparent 35%, hsla(224, 57%, 36%, .65));
  color: #fff;
  font-size: 1.25rem;
  font-weight: 600;
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}

.team-card:hover .team-card__name,
.team-card:focus-within .team-card__name {
  opacity: 1;
}

/* Touch screens have no hover, so always show it */
@media (hover: none) {
  .team-card__name {
    opacity: 1;
  }
}