/*----------------------------------------------------------------
  Footer
----------------------------------------------------------------*/
#footer {
	background: var(--footer-bg);
	padding-block: calc(var(--space-xxl) - var(--space-sm)) var(--space-lg);
	font-size: var(--fs-smaller);
	font-weight: var(--fw-medium);
	color: var(--text-ii);
	line-height: 2rem;
	--gap-y: calc(var(--space-lg));
	--link-color: var(--text-ii);
	--link-hover-color: var(--text-i);
	--link-hover-decoration: underline;
	--p-margin: 0;
}
#footer > * {--col: var(--inner-col);}
/* Footer reach us
--------------------------------*/
#reach-us {
	padding: var(--space) 0 var(--space-lg);
	--h3-size: var(--fs-medium);
	--link-color: var(--text-i);
	color: var(--text-i);
	font-size: var(--fs-initial);
	--cols: 1;
	--gap-y: var(--space-md);
}

#reach-us .readiness {
	grid-column: span var(--cols);
	padding: var(--space-xxxs) 0;
	font-size: var(--fs-medium);
	--small-txt-size: var(--fs-small);
	--small-txt-color: var(--text-i);
	--small-txt-align: text-top;
}

#reach-us .resting {
	transition: all .16s ease;
	transition: all .16s ease;
	color: transparent;
	background: var(--attention--b);
	--link-color: transparent;
	--text-ii: transparent;
}

#reach-us .resting:hover {
	color: var(--text-i);
	background: transparent;
	--link-color: var(--text-i);
	--text-ii: rgba(var(--base-rgb),.32);
}

#reach-us .email span, #reach-us .phone span {
	color: var(--text-ii);
}

#go-up {
	--icon-transform: rotate(-90deg);
	order: 1;
}

/* Footer address
--------------------------------*/
#reach-us address {
	font-style: normal;
	--cols: 2;
	--col: 1/25;
}

#reach-us dt {
	text-transform: lowercase;
	color: var(--text-ii);
	font-size: var(--fs-small);
}

#reach-us dd {
	display: inline;
}

/* Footer location
--------------------------------*/
#reach-us .email dd:first-of-type {
	display: block;
}
#reach-us .location a {
	font-size: var(--fs-small);
	text-transform: lowercase;
	--link-color: var(--text-ii);
	--icon-fill: CurrentColor;
	--icon-size: 1rem;
}

@media (min-width: 1200px) {
	#reach-us address {
		--cols: 20;
	}
	#reach-us .location {
		--col: 1/7;
		padding-inline-end: var(--space-xl);
	}
	#reach-us .email {
		--col: 8/15;
		border-left: var(--border--base);
		padding-inline: var(--space-md);
	}
	#reach-us .social {
		grid-column: 16/21;
		padding-inline-start: var(--space-md);
		text-align: right;
	}
}
/* Footer phones
--------------------------------*/
#reach-us .phone a {
	font-weight: var(--fw-medium);
	font-size: var(--fs-medium);
	letter-spacing: -.03125rem;
}

#reach-us .phone a:hover span {
	color: var(--link-hover);
}


/* Social profiles
--------------------------------*/
#reach-us .social {
	--icon-fill: CurrentColor;
	--icon-size: 1.25rem;
}

#reach-us .social dd + dd { margin-left: var(--space-md); }

/* Footer logo
--------------------------------*/
#footer .logo {
	align-self: self-end;
	--logo-margin: 0;
}

@media (min-width: 1200px) {
	#footer .logo {
		--col: var(--inner-col-start)/13;
	}
}
/* Footer options
--------------------------------*/
#footer .options {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

@media (max-width: 1199px) {
	#footer .options {
		grid-row: 1;
		justify-self: stretch;
		padding: var(--space-md) var(--fluid-right) var(--space-md) var(--fluid-left);
		border-bottom: var(--border--base);
		margin:0 calc(-1*var(--fluid-right)) var(--space) calc(-1*var(--fluid-left));
	}
}

@media (min-width: 1200px) {
	#footer .options {
		justify-self: end;
		--col: span 10;
	}
}

/* Footer copyright
--------------------------------*/
#footer .copyright {
	padding-right: var(--space-md);
	padding-top: var(--space-xxs);
	margin-bottom: calc(-1*var(--space-xxs));
	justify-self: start;
}

/* Footer utility links
--------------------------------*/
#utility-links {
	text-transform: lowercase;
	--direction: column;
	--gap-x: var(--space);
	--gap-y: 0;
}

@media (min-width: 1200px) {
	#utility-links {
		justify-self: start;
		padding-inline: var(--space-md);
		text-align: center;
		--col: span 10;
		justify-self: center;
		--direction: row;
	}
}

/* Footer creator
--------------------------------*/
#footer .creator {
	justify-self: start;
	--icon-fill: CurrentColor;
	--icon-size: 1.25rem;
}

@media (min-width: 1200px) {
	#footer .creator {
		--col: var(--inner-col-start)/span 20;
	}
	#footer #utility-links + .creator {
		justify-self: end;
		--col: span 5;
	}
	#footer .copyright + .creator {
		justify-self: end;
		--col: span 15;
	}
	#footer .copyright {
		--col: var(--inner-col-start)/ span 5;
	}
}

/* Footer small screen
--------------------------------*/
@media (max-width: 1199px) {
	#footer {
		padding-block: 0 calc(var(--space-xl) + var(--nav-height));
		--gap-y: calc(var(--space-md) - var(--space-sm));
	}
	.nav-hidden #footer {
		padding-block: 0 var(--space-xl);
	}
}



/*----------------------------------------------------------------
  Support widget
----------------------------------------------------------------*/
#support summary {
	position: absolute;
	width: var(--floating-btn-size);
	height: var(--floating-btn-size);
	right: 0;
	bottom: 0;
	--btn-padding: 0;
	--btn-bg: var(--attention--a);
	--btn-shadow: var(--shadow-i);
	--btn-radius: 50%;
	--btn-hover-shadow: var(--shadow-ii);
}

@media (max-width: 1199px) {
	.nav-hidden #support {
		transform: translateY(100%);
	}
}

#support ul {
	position: absolute;
	padding-block: var(--space-sm);
	box-shadow: var(--shadow-i);
	transition: opacity .16s cubic-bezier(0.215, 0.61, 0.355, 1);
	background: var(--attention--a);
	right: 0;
	bottom: calc(var(--floating-btn-size) + var(--space));
	opacity: 0;
	z-index: -1;
	border-radius: 0;
	--link-color: var(--text-i);
	--icon-margin: 0 var(--space-xs) 0 var(--space-sm);
	--icon-fill: CurrentColor;
	--icon-size: 1.25rem;
	--icon-align: middle;
	--link-hover-decoration: none;
}

#support[open] ul {
	opacity: 1;
	z-index: 1;
}

#support ul a[href^="tel:"] {
	letter-spacing: -.0125rem;
}

#support ul a, #support ul button {
	padding: var(--space-sm) var(--space-md) var(--space-sm) calc(var(--space-md));
	font-size: var(--fs-smaller);
	font-weight: var(--fw-normal);
	text-transform: lowercase;
	width: 100%;
	line-height: 2rem;
	white-space: nowrap;
	font-size: var(--fs-smaller);
	justify-content: start;
	--outline-offset: calc(-1*var(--outline-width));
	--btn-radius: 0px;
	--btn-hover-overlay: var(--hover-overlay);
}

#support .btn.--floating:hover:after{
	animation: wave .1s ease infinite;
}
@media (min-width: 1200px) {
	#support ul {
		padding-block: var(--space-md);
	}
	#support ul a, #support ul button {
		padding: var(--space-sm) var(--space-lg) var(--space-sm) calc(var(--space-lg));
	}
}
/*----------------------------------------------------------------
  Import blocks
----------------------------------------------------------------*/

/* Related cases / experience / 
----------------------------------------*/
main ~ aside {
	padding-block: var(--section-padding-block, var(--space-xxl));
	--h2-color: var(--text-ii);
}
main ~ aside > header {
	--wrap: nowrap;
	justify-content: space-between;
	padding-block: var(--section-header-padding-block);
	--section-header-padding-block: var(--space-xs) calc(var(--space-lg) + var(--space-sm));
	--h2-margin: 0;
}
main ~ aside:has(.case-list.--with\:scrolling) > header {
	--section-header-padding-block: var(--space-xs) calc(var(--space-sm));
}
main ~ aside > header * {
	align-self: center;
	--btn-font-size: var(--fs-smaller) !important;
}

.case-list.--with\:scrolling {
	padding: var(--space-lg) 0 var(--space-lg) var(--space-sm);
	/*scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: var(--scrollbar-color--a);
	scroll-snap-points-x: repeat(250px);
	scroll-snap-type: mandatory; */
	margin-inline-start: 0 !important;
	scroll-snap-type: x mandatory;
	--outline-offset: cacl(-1*var(--outline-width));
	--tile-ratio: 4/3 auto;
}

.case-list.--with\:scrolling .tile {
	max-width: calc(var(--grid-unit)*var(--inner-cols));
	width: calc(var(--grid-unit)*var(--inner-cols));
	z-index: 1;
	transition: transform .16s ease;
	box-shadow: var(--shadow-i);
	scroll-snap-align: start;
}

.case-list.--with\:scrolling .tile:not(:first-child) {
	margin-left: calc(-2*var(--grid-unit));
}

.case-list.--with\:scrolling .tile:focus-within~.tile,
.case-list.--with\:scrolling .tile:hover~.tile {
	transform: translateX(calc(var(--grid-unit)*3));
}

.case-list.--with\:scrolling .tile:focus-within,
.case-list.--with\:scrolling .tile:hover {
	transform: translate(0,-1rem);
	z-index: 30;
}

@media (min-width: 768px) {
	.case-list.--with\:scrolling {
		--tile-ratio: 16/9 auto;
	}
}

@media (min-width: 1200px) {
	main ~ aside {
		--section-padding-block: var(--space-xxxl);
	}

	.case-list.--with\:scrolling .tile {
		width: calc(var(--grid-unit)*10 - var(--gap-x));
		max-width: calc(var(--grid-unit)*10 - var(--gap-x));
		flex-basis: calc(var(--grid-unit)*10 - var(--gap-x));
	}

	.case-list.--with\:scrolling .tile:not(:first-child) {
		margin-left: calc(var(--grid-unit)*-8);
	}

	.case-list.--with\:scrolling .tile:focus-within,
	.case-list.--with\:scrolling .tile:hover {
		transform: translate(0,-1.5rem);
	}

	.case-list.--with\:scrolling .tile:focus-within~.tile,
	.case-list.--with\:scrolling .tile:hover~.tile {
		transform: translateX(calc(var(--grid-unit)*5));
	}
}

@media (min-width: 1600px) {
	.case-list.--with\:scrolling {
		--tile-ratio: 21/9 auto;
	}
}

/* Hover attention opacity effect
----------------------------------------*/
@media (min-width: 1200px) {
	.hover\:siblings--opacity {
		pointer-events: none;
	}

	.hover\:siblings--opacity .pointer {
		pointer-events: auto !important;
	}

	.hover\:siblings--opacity .effect {
		transition: opacity .16s cubic-bezier(0.215, 0.61, 0.355, 1);
	}

	.hover\:siblings--opacity:hover .effect {
		opacity: .3;
	}

	.hover\:siblings--opacity:hover .pointer:hover, .hover\:siblings--opacity:hover .pointer:hover .effect, .hover\:siblings--opacity:hover .pointer:hover + .effect, .hover\:siblings--opacity:hover .pointer:hover ~ .effect {
		opacity: 1;
	}
}

/*----------------------------------------------------------------
  Tooltip
----------------------------------------------------------------*/
/* 
----------------------------------------

.btn.--with\:tip:hover, .bnt.--with\:tip:focus, .btn.--with\:tip:focus,
button.--with\:tip:hover, button.--with\:tip:focus, button.--with\:tip:focus,*/
.btn.--with\:tip:has(.tip.--active), button.--with\:tip:has(.tip.--active) {
	overflow: unset;
	z-index: 10;
}
.tip {
	position: absolute;
	top: calc(var(--space-xs)) !important;
	left: 50%;
	white-space: normal;
	margin: auto;
	transform: translate3d(-50%, -90%, 0);
	visibility: hidden;
	padding: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	clip-path: inset(50%);
	display: block;
	color: var(--text-inverse-i);
	font-size: var(--fs-small);
	line-height: 1.25rem;
	text-align: left;
	pointer-events: none; /* Allow interaction with the tip when hovered */
	will-change: transform;
	opacity: 0;
	visibility: hidden;
	--tip-offset-x: 0px;
	transition: opacity .16s ease, transform .16s ease;
}

.tip.--end { left: auto }

.tip .tip-inner {
	box-shadow: var(--shadow);
	background: rgba(var(--base-rgb),.96);
	padding: var(--space-sm) calc(var(--space)*.75);
	margin-bottom: var(--space-xs);
	border-radius: var(--space-xs);
}

.tip.--rich .tip-inner {
	background: var(--attention--a);
	color: var(--text-i);
	padding: var(--space) calc(var(--space)*1.25);
}

/* We'll use a breakpoint (e.g., 768px) to define "desktop" */
@media (min-width: 1200px) {
	.btn.--with\:tip:hover, .bnt.--with\:tip:focus, .btn.--with\:tip:focus,
	button.--with\:tip:hover, button.--with\:tip:focus, button.--with\:tip:focus {
		overflow: unset;
		z-index: 10;
	}

	.--with\:tip:hover .tip, .--with\:tip:hover .tip:before, .--with\:tip:focus .tip {
		visibility: visible;
		opacity: 1;
		transform: translate3d(-50%, -100%, 0);
		/* Use a new CSS variable to apply the dynamic offset from JS */
		transform: translate3d(calc(-50% + var(--tip-offset-x, 0px)), -100%, 0);
		width: -moz-max-content;
		width: max-content;
		max-width: var(--space-xxxxl);
		height: auto;
		clip: unset;
		clip-path: none;
		pointer-events: auto; /* Allow interaction with the tip when hovered */
		padding-bottom: var(--space-xs);
	}

	.--with\:tip:hover .tip.--rich, .--with\:tip:focus .tip.--rich {
		max-width: calc(var(--space-xxxl) + var(--space-xxxxl));
	}

}

/* Mobile/Clickable state: Show when --tip-active class is present */
/* This class will be toggled by JavaScript */



.tip.--active {
	visibility: visible;
	opacity: 1;
	transform: translate3d(-50%, -100%, 0);
	/* Use a new CSS variable to apply the dynamic offset from JS */
	transform: translate3d(calc(-50% + var(--tip-offset-x, 0px)), -100%, 0);
	width: -moz-max-content;
	width: max-content;
	max-width: var(--space-xxxxl);
	height: auto;
	clip: unset;
	clip-path: none;
	pointer-events: auto; /* Allow interaction with the tip when hovered */
}

.footnote-ref {
	--link-decoration: none;
	--link-color: var(--accent);
	font-weight: var(--fw-medium);
	display: inline-block;
	position: relative;
	top: -.64em;
}

[id^="fnref"] {
	line-height: 0;
	vertical-align: baseline;
	font-size: var(--fs-small);
}

.footnote-ref:hover:before {
	background: var(--hover-overlay--accent);
}

.footnote-ref:before {
	background: transparent;
	height: 1.5em;
	width: 1.5em;
	inset: -1em;
	margin: auto;
	border-radius: 50%;
}
.footnote-backref {
	--link-decoration: none;
	--link-color: var(--accent);
}
.footnotes {
	margin-top: var(--space-xl);
	font-size: var(--fs-small);
	line-height: 1.5rem;
	color: var(--text-ii);
	--list-margin: 0px;
}
/* animation effects
----------------------------------------*/
:root {
	--pulse-rgb: var(--accent-rgb);
}

.animation\:pulse {
	animation: pulse 1.6s infinite cubic-bezier(0.66, 0, 0, 1);
}

.animation\:pulse:hover, .animation\:pulse:focus, .animation\:pulse:active {
	animation: none;
}

@keyframes pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(var(--pulse-rgb),.64);
	}
	100% {
		box-shadow: 0 0 0 1rem rgba(var(--pulse-rgb), 0);
	}
}

/* Svg text rotation
----------------------------------------*/
@keyframes text-rotation {
	from {
		transform: rotate(0deg);
		transform-origin: center center;
	}
	to {
		transform: rotate(359deg);
		transform-origin: center center;
	}
}

/*----------------------------------------------------------------
 Note shortcode
----------------------------------------------------------------*/

.text .note {
	margin-block: calc(var(--baseline)*4) calc(var(--baseline)*8);
	--tile-color: var(--text-i);
}

/*----------------------------------------------------------------
 Youtube plugin
----------------------------------------------------------------*/
.grav-youtube--lazyloaded button {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 68px;
	height: 48px;
	margin-left: -34px;
	margin-top: -24px;
	border: none;
	background-color: transparent;
	padding: 0;
	outline: 0;
	cursor: pointer;
}

.grav-youtube--lazyloaded img { 
	-o-object-position: 50% 50% !important; 
	   object-position: 50% 50% !important;
}

.grav-youtube--lazyloaded iframe:not([src]), .grav-youtube--lazyloaded iframe[src] + button {
	display: none;
}

.grav-youtube--lazyloaded path:first-of-type {
	transition: fill .1s cubic-bezier(0.0,0.0,0.2,1), fill-opacity .1s cubic-bezier(0.0,0.0,0.2,1)
}

.grav-youtube--lazyloaded:hover path:first-of-type,
.grav-youtube--lazyloaded button:focus path:first-of-type {
	fill: #f00;
	fill-opacity: 1;
}

/*----------------------------------------------------------------
 TOC plugin
----------------------------------------------------------------*/
.toc-anchor {
	transition: hover 0.5s ease;
	position: absolute;
	opacity: 0;
	--link-decoration: none;
}

.toc-anchor.after {
	margin-left: var(--space-sm);
}

.toc-anchor.before {
	left: calc(-1*var(--space-md));
	padding-right: var(--space-sm);
}

.toc-anchor:after {
	content: attr(data-anchor-icon);
}

:hover > .toc-anchor, .toc-anchor:focus {
	opacity: 1;
	color: var(--text-ii);
}
