/*
Theme Name: FRED
Description: A custom block theme.
Text Domain: fred
Version: 1.0.0
*/

.hide-on-mobile {
  @media (max-width: 781px) {
    & {
      display: none !important;
    }
  }
}
.hide-on-tablet {
  @media (min-width: 782px) and (max-width: 1009px) {
    & {
      display: none !important;
    }
  }
}
.hide-on-desktop {
  @media (min-width: 1010px) {
    & {
      display: none !important;
    }
  }
}
.d-none {
  display: none !important;
}
.d-block {
  display: block !important;
}

/*
 * CHANGE CONTENT ORDER
 */
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.order-3 {
  order: 3;
}
@media (max-width: 781px) {
  .order-mobile-1 {
    order: 1;
  }
  .order-mobile-2 {
    order: 2;
  }
  .order-mobile-3 {
    order: 3;
  }

  .align-mobile-start {
    justify-content: flex-start;
  }

  .p-0 {
  	padding: 0 !important;
  }
  .px-0 {
  	padding-inline: 0 !important;
  }
  .py-0 {
  	padding-block: 0 !important;
  }
}

.w-100 {
  width: 100%;
}

/*
 * EQUAL-HEIGHT GRID ROWS
 *
 * Apply the "Equal-height grid rows" block style, or the
 * equal-height-rows additional class, to a Group using the Grid layout.
 * Keep natural row sizing on smaller screens where cells stack.
 */
@media (min-width: 1010px) {
	.is-layout-grid.equal-height-rows,
	.is-layout-grid.is-style-equal-height-rows {
		grid-auto-rows: 1fr;
	}
}

.has-xxl-font-size {
	line-height: 1.1;
}

.has-xl-font-size {
	line-height: 1.2;
}

.has-lg-font-size {
	line-height: 1.25;
}

.has-md-font-size {
	line-height: 1.3;
}

.has-sm-font-size {
	line-height: 1.4;
}

/*
 * RESPONSIVE GUTENBERG FONT SIZES
 *
 * Keep the body font size unchanged while scaling the named presets down for
 * narrower layouts. These variables also cover blocks that reference a preset
 * directly instead of relying on Gutenberg's generated utility classes.
 */
@media (max-width: 1050px) {
	body,
	.editor-styles-wrapper {
		--wp--preset--font-size--sm: 16px;
		--wp--preset--font-size--md: 20px;
		--wp--preset--font-size--lg: 30px;
		--wp--preset--font-size--xl: 36px;
		--wp--preset--font-size--xxl: 50px;
	}
}

@media (max-width: 850px) {
	body,
	.editor-styles-wrapper {
		--wp--preset--font-size--lg: 24px;
		--wp--preset--font-size--xl: 30px;
		--wp--preset--font-size--xxl: 36px;
	}
}

.wp-block-button.is-style-text-arrow .wp-block-button__link {
	align-items: center;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: inline-flex;
	gap: 0.65em;
	padding: 0 !important;
}

.wp-block-button.is-style-text-arrow .wp-block-button__link::after {
	background-color: var(--fred-arrow-color, currentColor);
	content: "";
	display: block;
	flex: 0 0 auto;
	height: 1em;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 1.45em;
}

/*
 * QUERY PAGINATION
 *
 * Give each page number a generous pill-shaped target and use the same clean,
 * long-arrow treatment as text-arrow buttons for the previous/next links.
 */
.wp-block-query-pagination {
	align-items: center;
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	width: 100%;
}

.wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	grid-column: 2;
	grid-row: 1;
	justify-self: center;
	margin: 0;
}

.wp-block-query-pagination-numbers .page-numbers:not(.dots) {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 9999px;
	box-sizing: border-box;
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0.55rem 0.8rem;
	text-decoration: none;
	transition: background-color 150ms ease, border-color 150ms ease;
}

.wp-block-query-pagination-numbers a.page-numbers:hover {
	background-color: var(--wp--preset--color--light-grey);
}


.wp-block-query-pagination-numbers a.page-numbers:focus-visible,
.wp-block-query-pagination-previous:focus-visible,
.wp-block-query-pagination-next:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.wp-block-query-pagination-numbers .page-numbers.current {
	background-color: var(--wp--preset--color--dark-green);
	border-color: var(--wp--preset--color--dark-green);
	color: var(--wp--preset--color--white);
}

.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	align-items: center;
	display: inline-flex;
	font-size: 0;
	grid-row: 1;
	text-decoration: none;
	& .is-arrow-arrow {
		display: none !important;
	}
}

.wp-block-query-pagination-previous {
	grid-column: 1;
	justify-self: start;
}

.wp-block-query-pagination-next {
	grid-column: 3;
	justify-self: end;
}

.wp-block-query-pagination-previous > *,
.wp-block-query-pagination-next > * {
	display: none;
}

.wp-block-query-pagination-previous::before,
.wp-block-query-pagination-next::after {
	background-color: currentColor;
	content: "";
	display: block;
	flex: 0 0 auto;
	height: 1rem;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 1.45rem;
}

.wp-block-query-pagination-previous::before {
	transform: rotate(180deg);
}

.fred-breadcrumbs-home-icon {
	display: block;
	fill: currentColor;
	height: 1.5em;
	width: 1.5em;
}


.page-template-header-overlap header.wp-block-template-part {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
}


figure.d-block img {
	display: block;
}


header.wp-block-template-part > .has-background {
	background-color: transparent !important;
}


.logo a {
	display: block;
}

/*
 * Switch the header Navigation block to its overlay before the full menu
 * becomes too wide for the available row.
 */
@media (max-width: 781px) {
	header.wp-block-template-part .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	header.wp-block-template-part .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

ul.wp-block-post-template li.wp-block-post {
	position: relative;
	& .wp-block-read-more:after {
		content: "";
		display: block;
		height: 100%;
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
}


@media (max-width: 760px) {
	.nav-offset {
		height: 77px !important;
	}
}


.breadcrumb-home {
	display: block;
	& a, & img {
		display: block;
	}
	& img {
		width: 1.5em !important;
    height: 1em !important;
	}
}

@media (max-width: 985px) {
	.fr-full {
		grid-column-end: -1 !important;
    grid-column-start: 1 !important;		
    > p {
    	margin: 0 !important;
    }
	}
}

@media (max-width: 600px) {
	.fr-sm {
		grid-template-columns: repeat(auto-fill, minmax(max(min(140px, 100%), (100% - (0px * (4 - 1))) /4), 1fr)) !important;	
	}
}


.wp-block-fred-team-summary-bio {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    flex: 1;
    gap: 0.5rem;
    > * {
    	margin: 0;
    }
}