/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* =========================================================
   GeneratePress Blocks Utility Stack
   ========================================================= */

/* Full-width page/post title band inside GeneratePress content */
.inside-article > .entry-header {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 40px 20px;
  background-color: #e3edff;
}

.inside-article > .entry-header h1 {
  font-weight: 600;
  text-align: center;
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.87);
}

/* Keep title/meta readable */
.inside-article > .entry-header .entry-title,
.inside-article > .entry-header .entry-meta {
  max-width: var(--gb-container-width);
  margin-left: auto;
  margin-right: auto;
}

/* ---------- Full-width content bands ---------- */

.gp-full-width-band {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  position: relative;
  padding-inline: clamp(20px, 4vw, 40px);
}

/* Tight vertical spacing */
.gp-full-width-band-tight {
  padding-block: clamp(30px, 4vw, 60px);
}

/* No horizontal padding */
.gp-full-width-band-no-pad {
  padding-inline: 0;
}



/*------------ Body ------------*/
body {overflow-x: hidden;}

.text-xs {font-size: var(--global-kb-font-size-xs);}
.text-xxs {font-size: var(--global-kb-font-size-xxs);}
.text-micro {font-size: var(--global-kb-font-size-micro);}

/*------------ Posts ------------*/

/*------- Archives -------*/

/* Archives Special styling */
.gb-loop-item.category-specials .gbp-card {
background-color: var(--accent-gxl); border-color: var(--accent-2);
background-blend-mode: normal;
	background-image: linear-gradient(40deg,var(--base-2) 94%,rgba(0,195,209,0.18) 94%);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.gb-loop-item.category-specials .gbp-card__meta-text{color: var(--accent-gm);}


/* Archives News styling */
.gb-loop-item.category-news .gbp-card {
background-color: var(--base-3);
 border-color: var(--contrast-4);
 background-blend-mode: normal;
background-image: linear-gradient(40deg,var(--base-2) 94%,rgba(122,143,163,0.23) 94%);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	}
.gb-loop-item.category-news .gbp-card__meta-text{color: var(--contrast-4);}


/*------- Post Page -------*/

/* Post Specials styling */
.category-specials .sm-post-title {
	background-color: var(--accent-gd);
	position: relative;

}
.category-specials .sm-post-container{padding: 6rem 2rem 6rem 2rem;}
.category-specials .sm-post-content{
padding: 4rem 4rem 2rem 4rem;
	max-width: 800px;
	border: 2px solid var(--accent-gl);
	border-radius: 3px;
}
.category-specials .dynamic-entry-content {
	font-size: 2rem;
	line-height: 1.2em;
	text-transform: capitalize;
	font-weight: 600;
	color: var(--accent-gd);
}

.category-specials .sm-post-meta_footnote{font-size:.9rem; line-height: 1.1rem;
}

/* Post News styling */
.category-news .sm-post-title {
	background-blend-mode: normal;
	background-color: var(--contrast-2);
	background-image: linear-gradient(45deg,var(--contrast-dk) 50%,var(--contrast) 50%);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.category-news .sm-post-container{padding: 6rem 2rem 2rem 2rem;}
.category-news .sm-post-content{padding: 0rem 4rem 4rem 4rem;max-width: 960px;}





/*------------ Footer ------------*/
.sm-site-footer{background-color: var(--contrast);}
.site-footer a {color: var(--accent-gl);}
.site-footer a:hover {color: var(--accent-gxl);}
.site-footer a.sm-footer-button {color: var(--base-2);}

/* =========================================================
   GeneratePress style-global.css Overwrite
   ========================================================= */
   .gbp-button--primary {
	padding: 12px 24px;
	text-transform: uppercase;
}

.gbp-button--primary:is(:hover, :focus) {
	color: var(--base-2);
	background-color: var(--accent-rm2);
}

/* =========================================================
   GeneratePress style-39740.css Overwrite
   ========================================================= */


.gb-sub-menu-sm4f5c5a {
	background-color: var(--base);
	box-shadow: none;
	padding-left: 0px;
	position: relative;
	right: 0px;
	width: max-content;
	z-index: 100;
}
.gb-sub-menu-sm4f5c5a .menu-item {
	background-color: var(--base);
	color: var(--contrast);
}
.gb-sub-menu-sm4f5c5a .menu-item:is(:hover, :focus-within) {
	color: var(--accent);
	background-color: var(--base);
}

.gb-sub-menu-sm4f5c5a .menu-item .gb-menu-link::before {
	width: 10px;
	height: 2px;
	content: "";
	background-color: transparent;
	position: absolute;
	top: 50%;
	left: 0px;
	transform: translate3d(0px,-50%,0px);
}

.gb-menu-item-mi33e153 .gb-menu-link {
	padding: 0px 20px;
}



/* Truck Works - infinite icon marquee */
.tw-icon-marquee {
  --icon-size: 100px;
  --gap: 18px;
  --fade: 140px;          /* edge fade size */
  --duration: 540s;      /* slow loop */
  overflow: hidden;
  position: relative;
  width: 100%;
}

/* optional edge fade so it looks polished */
.tw-icon-marquee:before,
.tw-icon-marquee:after {
  content: "";
  position: absolute;
  top: 0;
  width: var(--fade);
  height: 100%;
  z-index: 2;
  pointer-events: none;
}
.tw-icon-marquee {
  --gap: 40px; /* 20px on each side = 40px between icons */
}
.tw-icon-marquee {
  padding-inline: 20px;
}

.tw-icon-set img:hover {
  filter: grayscale(0) saturate(1);
  opacity: 1;
}
.tw-icon-marquee:before {
  left: 0;
  background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0));
}
.tw-icon-marquee:after {
  right: 0;
  background: linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0));
}

.tw-icon-track {
  display: flex;
  width: max-content;
  animation: tw-marquee var(--duration) linear infinite;
  will-change: transform;
}


.tw-icon-set {
  display: flex;
  align-items: center;
  gap: var(--gap);
  padding-block: 10px;  /* keeps vertical breathing room only */
  padding-inline: 0;    /* removes the starting "blank gap" */
}

.tw-icon-set img {
  filter: grayscale(1) saturate(0) contrast(1.08) brightness(1.02);
  opacity: 0.92;
  width: var(--icon-size);
  height: var(--icon-size);
  object-fit: contain;
  flex: 0 0 auto;
  transform: translateZ(0);
}

/* slight hover pop (optional) */
.tw-icon-set img:hover {
  opacity: 1;
}


/* Accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
  .tw-icon-track {
    animation: none;
  }
}

/* Mobile tuning */
@media (max-width: 600px) {
  .tw-icon-marquee {
    --icon-size: 72px;
    --gap: 12px;
    --fade: 20px;
  }
}

@keyframes tw-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* because we duplicated the set */
}

:root {
  --global-kb-font-size-xs: clamp(0.875rem, 0.84rem + 0.11vw, 0.95rem);
  --global-kb-font-size-xxs: clamp(0.8rem, 0.77rem + 0.09vw, 0.875rem);
  --global-kb-font-size-micro: clamp(0.75rem, 0.73rem + 0.06vw, 0.8rem);
}
