/* vim:set foldmethod=marker: */
:root {
	--color-blue: #5a91c3;
	--color-dark-blue: #06254D;
	--color-bright-blue: #00B3FF;
	--color-beige: #d6d3c8;
	--color-dark-grey: #484848;
	--color-grey: #757575;
	--color-light-grey: #CCCCCC;
	--color-baby-blue: #cddbdf;

	--color-highlight: var(--color-dark-blue);

	--color-form-button-text: white;
	--color-form-button-background: var(--color-dark-blue);
	--color-form-border: var(--color-light-grey);
	--color-form-highlight: var(--color-dark-blue);
	--color-form-option-selected: var(--color-dark-blue);

	--color-alt-card-title: white;

	--color-pii-toggle-background: var(--color-dark-blue);

	--shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.5);
	--text-shadow: 0 0 0.5rem rgba(0,0,0,1);

	--dim-banner-height: 600px;

	--dim-header-block-min-width: 5rem;
	--dim-block-margins: 6rem auto;
	--dim-block-label-margins: 6rem 0 4rem 0;

	--dim-text-max-width: 40rem;

	--dim-reference-height: 25vw;
	--dim-reference-padding: 2rem;

	/* note used as is and also as single dimension */
	--dim-gutter: 1rem;

	--dim-card-container-margins: 3rem;
}

a {
	color: var(--color-dark-blue);
}

a.link-underline,
.link-underline a {
	color: inherit;
	text-decoration: underline;
}

.blue {
	color: var(--color-bright-blue);
}

/************************************************************************
 * Block styling
 ***********************************************************************/

.block-label {
	text-align: center;
}

/* {{{ Branding */

.block-system-branding-block {
	display: block;
	flex-grow: 1;
	max-width: 15em;
}

.block-system-branding-block a {
	display: block;
	line-height: 0; /* problem? */
}

.block-system-branding-block img,
.block-system-branding-block svg {
	display: inline-block;
	width: 100%;
	padding: 1em 0;
}

/* }}} */
/* {{{ Language */

.block-language .block-inner {
	position: relative;
}

.block-language .checkbox-menu-popup {
	display: none;
}

.block-language ul.links {
	color: white;
	transition: all .2s ease-in-out;
}

.block-language ul.links > li a,
.block-language ul.links > li span {
	display: block;
	padding: 1em;
}

.block-language label {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	transition: all .2s ease-in-out;
}

.block-language label + ul.links {
	position: absolute;

	top: 100%;
	right: 0;

	min-width: 100%;

	pointer-events: none;
	opacity: 0;

	z-index: 100;
}

.block-language .checkbox-menu-popup:checked + label,
.block-language .checkbox-menu-popup:checked + label + ul.links {
	background-color: var(--color-dark-blue);
}

.block-language .checkbox-menu-popup:checked + label + ul.links {
	pointer-events: all;
	opacity: 1;
}
/* }}} */
/* {{{ Linked images */

.block--type-linked-images .field--name-field-image .field__items {
	display: inline-block;
}

.block--type-linked-images.inline .field--name-field-image .field__items {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;

	justify-content: center;
	align-items: center;
}

.block--type-linked-images.inline .field--name-field-image .field__item {
	flex: 0 1 auto;
	margin: 1em;
}

.block--type-linked-images .field--name-field-image .field__item > a {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5em;
}

.block--type-linked-images a {
	color: inherit;
}

/* }}} */
/* {{{ Contact */

.block--type-contact .block-inner {
	display: flex;
	flex-direction: row;
	justify-content: center;
}

.block--type-contact .block-content {
	display: flex;
	flex-direction: row;
	align-items: center;

	white-space: nowrap;
}

.block--type-contact .field--name-field-image {
	flex-shrink: 0;
}

.block--type-contact .field--name-field-image img {
	width: 10em;
	height: 10em;

	margin: 1em;

	object-fit: cover;
	object-position: center center;

	display: block;
	border-radius: 50%;
	overflow: hidden;
}

/* }}} */
/* {{{ Basic */

.block-blurb {
	text-align: center;
	max-width: var(--dim-text-max-width);
	margin: 0 auto;
}

/* counteract the huge block label margins on the front page */
.region-fp-content .block-blurb .block-label {
	margin-bottom: 0.25em;
}

/* }}} */

/************************************************************************
 * Layout styling
 ***********************************************************************/

.layout__region--2col-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;

	margin-bottom: 2rem;
}

/* counteract the block margin on the main content block */
.layout__region--uncontained {
	margin-left: -1em;
	margin-right: -1em;
}

/************************************************************************
 * Region styling
 ***********************************************************************/

/* {{{ Regions */

.layout-container {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

main {
	flex-grow: 1;
	margin: 2rem 0;
}

header#header {
	color: white;
	background-color: var(--color-dark-blue);
}

.region-header {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

.region-header a {
	color: inherit;
}

.region-header > .block > .block-inner {
	height: 100%;
}

.region-header > .block-language .block-inner {
	margin: 0;
}

.region-header > .block-language .block-inner,
.region-header > .block-language .block-content,
.region-header > .block-language label {
	height: 100%;
}

.region-header > .block-language label {
	min-width: var(--dim-header-block-min-width);
}

.region-fp-content > .block,
.region-aside > .block {
	margin: var(--dim-block-margins);
}

.region-fp-content .block-label,
.region-aside .block-label {
	margin: var(--dim-block-label-margins);
}

footer {
	--color-logo-fill: var(--color-dark-blue);
	--color-logo-subtext-fill: black;

	color: black;
	background-color: var(--color-beige);

	padding: 5rem 0;
}

footer .region {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
}

footer .block {
	text-align: center;
	margin: 1em inherit;
}

footer .block-blockgroup > .block-inner > .block-content {
	display: flex;
	flex-direction: column;
	align-items: center;
}

footer nav ul.menu {
	padding-bottom: 0.5em;
}

footer nav ul.menu li > span {
	font-weight: bold;
}

/* }}} */

/************************************************************************
 * Field styling
 ***********************************************************************/

.field--label-inline {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
}

.field--label-inline .field__label::after {
	content: ':';
	margin-right: 0.25em;
}

.field--label-above .field__label {
	border-style: solid;
	border-width: 0 0 1px 0;
	border-color: var(--color-grey);
}

/************************************************************************
 * Node styling
 ***********************************************************************/

/* {{{ Hero */

.node--view-mode-hero.node-image-top {
	background-position: top center;
}

.node--view-mode-hero .node__content {
	height: var(--dim-banner-height);
}

.node--view-mode-hero .node__content {
	position: relative;
}

.node--view-mode-hero .simple-video {
	position: absolute;
	
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;

	z-index: 0;
}

.node--view-mode-hero .simple-video video {
	object-fit: cover;
	object-position: center center;
	width: 100%;
	height: 100%;
}

.node--view-mode-hero.node-video-bottom .simple-video video {
	object-position: bottom center;
}

.node--view-mode-hero .group-overlay {
	position: absolute;

	top: 0;
	left: 0;
	right: 0;
	bottom: 0;

	z-index: 1;

	pointer-events: none;

	padding: 5rem;
}

.node--view-mode-hero .group-overlay .field--name-body .field__item > * {
	margin-top: 0;
}

/* }}} */
/* {{{ Alt card styling */

.node--view-mode-alt-card .node__content {
	height: 100%;
	min-height: var(--dim-reference-height);

	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	color: var(--color-alt-card-title);

	text-shadow: var(--shadow);
	text-transform: uppercase;

	box-sizing: border-box;
	padding: var(--dim-reference-padding);
}

/* }}} */
/* {{{ Pull up card styling */

.paragraph--view-mode--pull-up-card,
.node--view-mode-pull-up-card {
	--dim-card-height: 75%;
	--dim-card-content-width: 80%;
	--dim-card-title-padding: 0.5rem;
	--dim-card-title-text-height: 3rem;

	--dim-card-title-height: calc((var(--dim-card-title-padding) * 2) + var(--dim-card-title-text-height));

	margin: var(--dim-gutter);
}

.paragraph--view-mode--pull-up-card .field--name-field-image,
.node--view-mode-pull-up-card .field--name-field-card-image,
.node--view-mode-pull-up-card .field--name-field-image {
	padding-bottom: var(--dim-card-height);
}

.paragraph--view-mode--pull-up-card .group-content,
.node--view-mode-pull-up-card .group-content {
	padding: 0 2rem 1rem 1rem;
	width: var(--dim-card-content-width);
	margin-top: calc(-1 * var(--dim-card-title-height));

	box-sizing: border-box;

	background-color: white;
}

.paragraph--view-mode--pull-up-card .group-content > *:first-child,
.node--view-mode-pull-up-card .group-content > *:first-child {
	padding: var(--dim-card-title-padding) 0;
	height: var(--dim-card-title-text-height);

	margin: 0 0 0.5em 0;

	border-width: 0 0 1px 0;
	border-style: solid;

	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-end;
}

.paragraph--view-mode--pull-up-card .field--name-field-title .field__item > *,
.paragraph--view-mode--pull-up-card .field--name-field-name .field__item > *,
.node--view-mode-pull-up-card .field--name-title .field__item > * {
	margin: 0;

	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* }}} */
/* {{{ Banner */
/* }}} */
/* {{{ Page */

.node--type-page.node--view-mode-pull-up-card .field--name-title .field__item {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.node--type-page.node--view-mode-full .field--name-field-menu-children {
	margin: 4rem 0;
}

.node--type-page.node--view-mode-full .layout__region-inner > .field--name-field-paragraphs > .field__items > .field__item {
	margin: var(--dim-block-margins);
}

.node--type-page.node--view-mode-full .layout__region-inner > .field--name-field-paragraphs > .field__items > .field__item:first-child {
	margin-top: 0;
}

/* body/title alignment styling */

.node--type-page.node-center .layout__region > .layout__region-inner > .field--name-title,
.node--type-page.node-center .layout__region > .layout__region-inner > .field--name-body {
	text-align: center;
	max-width: var(--dim-text-max-width);
	margin: 0 auto;
}

.node--type-page.node-left .layout__region > .layout__region-inner > .field--name-title,
.node--type-page.node-left .layout__region > .layout__region-inner > .field--name-body {
	max-width: var(--dim-text-max-width);
}

.node--type-page.node-right .layout__region > .layout__region-inner > .field--name-title,
.node--type-page.node-right .layout__region > .layout__region-inner > .field--name-body {
	max-width: var(--dim-text-max-width);
	text-align: right;
	margin: 0 auto;
}

/* }}} */
/* {{{ Refernce */

/* }}} */
/* {{{ Testimonial */

.node--type-testimonial.node--view-mode-pull-up-card .field--name-field-quote {
	margin: 1em 0 0 0;
}

.node--type-testimonial.node--view-mode-pull-up-card .field--name-field-quote .field__item::before {
	content: '\201c';
	display: inline-block;
}

.node--type-testimonial.node--view-mode-pull-up-card .field--name-field-quote .field__item::after {
	content: '\201d';
	display: inline-block;
}

/* }}} */
/* {{{ Magazine */

.node--view-mode-pull-up-card.node--type-magazine .field--name-title .field__item {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

/* }}} */
/* {{{ News */

.node--type-news .field--name-created {
	color: var(--color-grey);
	font-size: 75%;
}

.node--type-news .field--name-title .field__item > * {
	margin: 0.5em 0;
}

/* full */

.node--type-news.node--view-mode-full .layout__region--content > .field--name-body {
	text-align: justify;
}

.node--type-news.node--view-mode-full .layout__region--content > .field--name-field-image {
	margin: 3rem 0;
}

.node--type-news.node--view-mode-full .layout__region--content > .field--name-field-image img {
	width: 100%;
	height: auto;
}

.node--type-news.node--view-mode-full .layout__region--content > .field--name-field-read-more {
	margin-top: 5rem;
}

/* Wide card */

.node--type-news.node--view-mode-wide-card .node__content {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}

/* reset duck_grid margin */
.node--type-news.node--view-mode-wide-card .node__content > * {
	margin: 0;
}

.node--type-news.node--view-mode-wide-card .group-content {
	box-sizing: border-box;
	padding: 2rem;
}

/* card */

.node--type-news.node--view-mode-card .node__content {
	display: flex;
	flex-direction: column;

	margin: 1em;
}

.node--type-news.node--view-mode-card .group-content {
	flex-grow: 1;

	display: flex;
	flex-direction: column;

	box-sizing: border-box;
	padding: 2rem 0;
}

.node--type-news.node--view-mode-card .group-content .field--name-title {
	flex-grow: 1;
}

/* alternate card */


/* }}} */
/* {{{ Contact */

.node--type-contact {
	display: flex;
	flex-direction: row;
	justify-content: center;
}

.node--type-contact .node__content {
	display: flex;
	flex-direction: row;
	align-items: center;

	white-space: nowrap;
}

..node--type-contact  .field--name-field-image {
	flex-shrink: 0;
}

.node--type-contact .field--name-field-image img {
	width: 10em;
	height: 10em;

	margin: 1em;

	object-fit: cover;
	object-position: center center;

	display: block;
	overflow: hidden;

	border-width: 1px;
	border-style: solid;
	border-color: var(--color-grey);
	border-radius: 50%;
}

/* }}} */

/************************************************************************
 * Paragraph styling
 ***********************************************************************/

/* {{{ Text | Image */

.paragraph--type--text-image {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	margin: var(--dim-gutter);
}

.paragraph--type--text-image .field--name-field-title .field__item {
	padding: 0.5em 0;

	border-width: 0 0 1px 0;
	border-style: solid;
}

.paragraph--type--text-image .group-content > :first-child {
	margin: 0 0 1rem 0;
}

/* }}} */
/* {{{ Infobox */

.paragraph--type--infobox .group-container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.paragraph--type--infobox .group-container > * {
	flex-basis: 50%;
}

.paragraph--type--infobox .field--name-field-image {
	min-height: 20rem; /* another arbitrary number */
}

.paragraph--type--infobox .group-content {
	padding: 2rem;
	box-sizing: border-box;
	background-color: var(--color-baby-blue);
}

/* }}} */
/* {{{ Link card */

.paragraph--type--link-card.paragraph--view-mode--pull-up-card .field--name-field-title .field__item {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.paragraph--type--link-card a.field-group-link {
	color: inherit;
}

/* }}} */
/* {{{ Text */

.paragraph--type--text {
	text-align: justify;
}

.paragraph--type--text.paragraph--view-mode--pull-up-card .field--name-field-title .field__item > * {
	white-space: wrap;
	overflow: normal;
}

.paragraph--type--text.paragraph-center {
	text-align: center;
}

.paragraph--type--text.paragraph-limit-width {
	max-width: var(--dim-text-max-width);

	margin-left: auto;
	margin-right: auto;
}

.paragraph--type--text .field--name-field-strapline {
	text-transform: uppercase;
}

.paragraph--type--text .field--name-field-title {
	margin: 1em 0;
}


/* }}} */
/* {{{ Container */


.paragraph--type--container .field--name-field-title .field__item > * {
	white-space: wrap;
	overflow: normal;
}

/* }}} */
/* {{{ Container, 2 wide */

.paragraph--type--container-2-wide > .group-container > .field--name-field-title .field__item {
	border-width: 0 0 1px 0;
	border-style: solid;
	border-color: var(--color-grey);
}

.paragraph--type--container-2-wide {
	box-sizing: border-box;
	padding: var(--dim-gutter);
}

.paragraph--type--container-2-wide.flex > .group-container > .field--name-field-paragraphs > .field__items {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;

	gap: calc(var(--dim-card-container-margins) * 2);
}

.paragraph--type--container-2-wide.flex > .group-container > .field--name-field-paragraphs > .field__items > * {
	margin: 0;
	flex-shrink: 1;
}

.paragraph--type--container-2-wide.flex > .group-container > .field--name-field-paragraphs > .field__items > .field__item > * {
	margin-left: 0;
	margin-right: 0;
}

/* }}} */
/* {{{ Container, 3 wide */

.paragraph--type--container-3-wide > .group-container > .field--name-field-title .field__item {
	border-width: 0 0 1px 0;
	border-style: solid;
	border-color: var(--color-grey);
}

/* }}} */
/* {{{ Gallery, small */

.paragraph--type--gallery-small .field--name-field-title {
	text-align: center;
}

.paragraph--type--gallery-small .field--name-field-gallery {
	padding: 3rem 0;
	text-align: center;
}

.paragraph--type--gallery-small .field--name-field-gallery .field__item {
	text-align: center;
}

/* }}} */
/* {{{ Gallery, slider */

.paragraph--type--gallery-slider {
	padding: 3rem var(--dim-gutter);
	background-color: var(--color-beige);
}

.paragraph--type--gallery-slider .field--name-field-strapline .field__item > *,
.paragraph--type--gallery-slider .field--name-field-title .field__item > * {
	margin: 0.5rem 0;
}

.paragraph--type--gallery-slider .field--name-field-strapline {
	text-transform: uppercase;
}

.paragraph--type--gallery-slider .field--name-field-gallery {
	margin: 1rem calc(0px - var(--dim-gutter));
}

.paragraph--type--gallery-slider .field--name-field-gallery img {
	width: 100%;
	height: auto;
}


.paragraph--type--gallery-slider .field--name-field-gallery .expandable-slider-slide {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.paragraph--type--gallery-slider .field--name-field-gallery .expandable-slider-slide > li {
	flex-basis: 100%;
	flex-shrink: 0;
}

/* }}} */
/* {{{ Person */

.paragraph--type--person .field--name-field-image {
	/* square portraits */
	padding-bottom: 100%;
}

.paragraph--type--person .field--name-field-name .field__item > * {
	margin: 0;
	font-weight: bold;
}

.paragraph--type--person .field--name-field-title .field__item > * {
	margin: 0 0 1em 0;
	text-transform: uppercase;
}

.paragraph--type--person .field--name-field-phone svg,
.paragraph--type--person .field--name-field-e-mail svg {
	width: 2rem;
	height: 2rem;
	flex-shrink: 0;
}

.paragraph--type--person .field--name-field-phone .field__item,
.paragraph--type--person .field--name-field-e-mail .field__item {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 1rem;
}

/* }}} */
/* {{{ Text |Paragraphs */

.paragraph--type--text-paragraphs > .group-container > .group-first .field--name-field-text {
	max-width: var(--dim-text-max-width);
}

/* }}} */
/* {{{ Linked images */

.paragraph--type--linked-images > .field--name-field-gallery .field__items {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.paragraph--type--linked-images a {
	color: inherit;
}

.paragraph--type--linked-images > .field--name-field-gallery svg {
	display: block;
	padding: 0.5rem;
}

/* }}} */
/* {{{ Forms */

.paragraph--type--form .field--name-field-form form {
	box-sizing: border-box;
}

/* }}} */
/* {{{ Images */

.paragraph--type--images .field--name-field-gallery .field__items {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;

	margin-left: -0.5em;
	margin-right: -0.5em;
}

.paragraph--type--images .field--name-field-gallery .field__items .field__item {
	flex-basis: 50%;
	flex-grow: 1;
	flex-shrink: 1;

	box-sizing: border-box;
	padding: 0.5em;
}

/* }}} */
/* {{{ View */

.paragraph--type--view.paragraph-center .group-container {
	text-align: center;
}

.paragraph--type--view.paragraph-limit-width .group-container {
	max-width: var(--dim-text-max-width);

	margin-left: auto;
	margin-right: auto;
}
/* }}} */

.paragraph.grey {
	color: white;
	background-color: var(--color-dark-grey);
	overflow: hidden;
}

.paragraph.deep-blue {
	color: white;
	background-color: var(--color-dark-blue);

	padding-top: 4rem;
	padding-bottom: 4rem;
}

.paragraph.deep-blue .paragraph--type--text {
	text-align: initial;
}

.paragraph.deep-blue .paragraph--type--images img {
	border-radius: 1em; /* just guessing */
}
