@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/inter-v18-latin-300.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: italic;
  font-weight: 300;
  src: url('../fonts/inter-v18-latin-300italic.woff2') format('woff2'); 
}
@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inter-v18-latin-regular.woff2') format('woff2'); 
}
@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/inter-v18-latin-700.woff2') format('woff2'); 
}
@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: italic;
  font-weight: 700;
  src: url('../fonts/inter-v18-latin-700italic.woff2') format('woff2'); 
}
:focus-visible {
	outline: 2px solid #0078CF;
}
html {
  scroll-behavior: smooth;
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  font-family: "Helvetica Neue", "Inter", Helvetica, Arial, sans-serif;
  font-weight: 400;
  color: #555;
  -webkit-font-smoothing: antialiased;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004);
}
body {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
}
a {
	color: #0078CF;
	font-weight: normal;
	cursor: pointer;
	text-decoration: none;
	transition:color 0.2s ease;
}
a:hover {
	color: #000;
	text-decoration: underline;
	background: rgba(0, 0, 0, .025);
}
::selection {
background: #0078CF;
color: #fff;
text-shadow: none;
}
p {
	margin: 0 0 1em;
}
p:last-child {
	margin-bottom: 0;
}
a:visited {
	opacity:0.9;
}
a:active, a:focus {
	position:relative;
	top:1px;
	font-size: 1em;
}
hr {
	display:block;
	height:1px;
	border:0;
	border-top:1px solid #ddd;
	margin:1em 0;
	padding:0
}
pre, code, kbd, samp {
	font-family:monospace, monospace;
	font-size:1em
}
blockquote {
	margin: 1em 1em 1em 0;
	padding: 1em;
	border-left: 1px solid #DDD;
	font-style: italic;
	color: #999;
}
blockquote p {
	font-size: 1.1em;
	line-height: 2em;
	margin-bottom: 0;
}
blockquote small {
	display: block;
	font-size: 1em;
	line-height: 1.6em;
	color: #bfbfbf;
	text-align: right;
}
blockquote small:before {
	content: '\2014 \00A0';
}
b, strong {
	font-weight:700
}
small {
	font-size:85%;
	color: #999;
}
sub, sup {
	font-size:75%;
	line-height:0;
	position:relative;
	vertical-align:baseline
}
sup {
	top:-0.5em
}
sub {
	bottom:-0.25em
}
dt {
	font-weight: 700;
}
ul, ol {
	list-style:none;
	list-style-image:none;
	margin:0;
	padding:0;
}
img {
	border:0;
	vertical-align:middle
}
figure {
	margin:0
}
fieldset {
	border:0;
	margin:0;
	padding:0
}
td {
	vertical-align:top
}
/* -------------------------------------------------------------
======	STYLES
------------------------------------------------------------- */

/* -- TYPO
------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
	font-family: "Helvetica Neue", "Inter", Helvetica, Arial, sans-serif;
	margin:0 0 1em;
	font-weight: normal;
}
h1 {
	font-size: 3.6em;
	letter-spacing: -0.05em;
	text-shadow: 3px 2px 11px rgba(0, 0, 0, 0.3);
	line-height: 0.9;
	color: #000;
	margin: 0 0 0.1em;
	font-weight: 400;
}
h2 {
	font-size: 2.2em;
	margin: 0 0 .5em;
	letter-spacing: -0.05em;
	color: #555;
	line-height: 1;
}
h3 {
	font-size: 1.75em;
}
h4 {
	font-size: 1.3em;
	margin: 0 .5em 0 .3em;
}
h5 {
	font-size: 1.2em;
	text-transform: uppercase;
	font-weight: 700;
	margin: 0;
	padding-left: 1em;
	color: #696969;
}
h6 {
	font-size: 1.2em;
	padding-top: 2.5em;
	font-weight: 700;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	color:#333;
	text-decoration: none;
}
h1 a:hover {
	color: #0078CF;
	text-shadow: 3px 2px 11px rgba(0, 0, 0, 0.5);
	text-decoration: none;
	background: none;
}
h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
	color:#0078CF;
	text-decoration: underline;
}
/* -- GRID  https://github.com/mattberridge/Proportional-Grids/
------------------------------------------------------------- */
body {
	width:100%;
	background: #ffffff;
}
.container {
	width: 90%;
	margin: 5em auto;
	max-width: 1100px;
	min-width: 300px;
}
.grid-wrap {
	margin-left: -4em; /* the same as your gutter */
	overflow: hidden;
}
.grid-wrap:before, .grid-wrap:after {
	content:"";
	display:table
}
.grid-wrap:after {
	clear:both
}
.grid {
	float: left;
	padding-left: 3em; /* this is your gutter between columns */
	width: 100%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.half-gutter {
	margin-left: -1.5em;
}
.half-gutter .grid-col {
	padding-left: 1.5em;
}
.col-full {
	width: 100%;
}
.col-one-half {
	width: 50%;
}
.col-one-third {
	width: 33.333%;
}
.col-two-thirds {
	width: 66.666%;
}
.col-one-quarter {
	width: 25%;
}
.col-three-quarters {
	width: 75%;
}
.divide-top {
	border-top: 1px solid #ccc;
	padding-top: 2em;
	margin-top: 1.5em;
}
.mright {
	margin-right: 3em;
}
.mleft {
	margin-left: 3em;
}
.mtop {
	margin-top: 3em;
}
.mbottom {
	margin-bottom: 3em;
}
.halfmright {
	margin-right: 1.5em;
}
.halfmleft {
	margin-left: 1.5em;
}
.halfmtop {
	margin-top: 1.5em;
}
.halfmbottom {
	margin-bottom: 1.5em;
}
.fright, .fleft {
	display:block;
	overflow:hidden
}
.fright {
	float:right
}
.fleft {
	float:left
}
.alignleft {
	float: left;
	clear: left;
	margin: 0.38em 1.62em 0.38em 0;
}
.alignright {
	float: right;
	clear: right;
	margin: 0.38em 0 0.38em 1.62em;
}
.aligncenter {
	margin: 0 auto 1.62em;
	display: block;
}
/* -- MISC
------------------------------------------------------------- */
figure {
	max-height: 100%;
	overflow: hidden;
}
img {
	max-width: 100%;
	height: auto;
	width: auto;
}
a img {
	transition: opacity 1s ease;
}
a img:hover {
	opacity: 0.7;
}

/* -- Modal Container ------------------------------------------------------------- */
#imageModal {
  display: none; /* Hide the modal by default */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7); /* Semi-transparent black background */
}

/* Modal Content */
#modalImage {
  display: block;
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%; /* Adjust the width as needed */
  max-height: 90vh; /* Adjust the height as needed */
  box-shadow: 0 15px 20px rgba(110, 110, 110, 0.5);
  border: 2px solid #676767; /* Border properties */
  border-radius: 4px; /* Radius for rounded corners */
}

/* Styling specific to the iframe modal */
#iframeModal #modaliframe {
    display: block;
    position: fixed;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 85%;
    height: calc(85vw * 9 / 16); /* 16:9 aspect ratio */
    border: none;
}

/* Common styling for both modals */
.modal {
    display: none;
    position: fixed;
    z-index: 10;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.5);
}

.close {
  position: absolute;
  top: 50px;
  right: 40px;
  color: #fff;
  font-size: 30px;
  cursor: pointer;
}

/* -- HOME-PAGE
------------------------------------------------------------- */

/* Services */
.services aside
{
	color: #999;
	padding-top: 1em;
	border-top: 1px solid #DDD;
}

.services aside:after, .services h5:after
{
	content: "";
	display: block;
	height: 1px;
	width: 1em;
	background: #DDD;
	margin: 1em 0;
}
/* -------------------------------------------------------------
======	PAGES
------------------------------------------------------------- */
    
/* -- HEADER
------------------------------------------------------------- */
header#navtop {
	margin-bottom: 1em;
	clear: both;
	overflow: hidden;
}
header nav ul {
	float: left;
	overflow: hidden;
	padding: 0 3em 0 2em;
	border-left: 1px solid #ddd;
	line-height: 2em;
}
nav a, menu a {
	text-decoration: none;
	color: #555;
}
.navactive {
	color: #0078CF
}
.logo {
	margin-bottom: 0.3em;
}
.logo:hover {
	background: none;
}
/* -- GENERAL 
------------------------------------------------------------- */
.main > section {
	margin-bottom: 7em;
}
.main header {
	color: #555;
	margin-bottom: 3em;
}
.main header hr {
	border-top-color:#999;
}
.arrow:after {
	content:" \2192"; /* html unicode: &#x2192; */
}
.arrow:hover {
	color: #0078CF;
}
/* -- FOOTER
------------------------------------------------------------- */
footer {
	color: #555;
	margin-bottom: 7em;
}
footer p
{
	display: block;
	text-align: center;
}
footer nav ul {
	float: right;
	overflow: hidden;
}
footer a
{ 
	color: #999;
	font-weight: 500;
}

footer a:hover { text-decoration: none; }
footer a img:hover {
	opacity: 0.4;
}
footer li {
	float: left;
	margin-right: 1em;
	padding-right: 1em;
	border-right: 1px solid #DDD;
	font-size: 0.9em;
}
footer li:last-child {
	margin-right: 0;
	padding-right: 0;
	border-right: none;
}
.top-of-page {
    text-align: center;
}
.top-button { /* Button Styling */
    display: inline-block;
    color: #4e7b94;
    font-size: 1.2em;
    padding: .2em;
    border: none;
}
.top-button::before {
    content: "\2191";
    font-family: system-ui, -apple-system, sans-serif;
    display: inline-block;
}
/* desktop / mouse hover only */
@media (hover: hover) and (pointer: fine) {
.top-button:hover {
    color: #fff;
    background: #aeaeae;
}
}
.top-button:active {
    position: relative;
    top: 2px;
}
/* -- HOME-PAGE
------------------------------------------------------------- */
/* Services */
.services aside {
	color: #999;
	padding-top: 1em;
	border-top: 1px solid #DDD;
}
.services aside:after, .services h5:after {
	content: "";
	display: block;
	height: 1px;
	width: 1em;
	background: #DDD;
	margin: 1em 0;
}
iframe {border:none;}

/* -- WORKS / Home-page and Works-page
------------------------------------------------------------- */
.works figure > a 
{
	display: block;
	height: 100%;
	width: 100%;
	overflow: hidden;
	position: relative;
	border-top: 1px solid #DDD;
	padding-top: 1em;
}
.works figure .zoom,
.works figure .play {
  position: absolute;
  top: 10px; left: 0;
  width: 100%; height: 100%;
  opacity: 0;
  z-index: 2;              /* ← add this */
  background-repeat: no-repeat;
  background-position: center;
  /* optional: control icon size */
  /* background-size: 48px 48px; */
}

.works figure .zoom {
    background: url(../img/zoom.png) no-repeat center;
}

.works figure .play {
    background: url(../img/play.png) no-repeat center;
}
.works figure figcaption {
	margin-top: 0.1em;
	margin-bottom: 1em;
	padding: 0 0.5em;
	white-space: nowrap;
}
.works figure figcaption a {
	line-height:2em;
	color: #555;
	font-weight: 700;
}
.works figure figcaption p {
	margin: 0;
}
.works-page .works figure {
	margin-bottom: 2em;
}
.main aside {
	margin-bottom: 3em
}
.main aside menu {
	padding: 0 0 0 1em;
	line-height: 2em;
}
.main aside menu a {
	color: #999;
}
.main aside menu .buttonactive {
	color: #0078CF
}


/* -- SUBPAGES 
------------------------------------------------------------- */

/* Work-page (single) */
.work-page figure {
	margin-bottom: 3em;
}
.work-page figcaption {
	text-align: center;
	margin-top: 1em;
}
/* Services-page */
.warning {
	display: block;
	background: #F5F5F5;
	border: 1px solid #DDD;
	border-left: none;
	border-right: none;
	text-align: center;
	padding: 20px;
	margin: 20px 0px;
}
/* - Tabs */
.tabs {
	display: block;
	margin: 0;
	padding: 0;
	border-bottom: solid 1px #ddd;
}
.tabs li {
	display: inline-block;
	margin-bottom: -1px;
}
.tabs li a {
	display: block;
	text-decoration: none;
	line-height: 3em;
	color: #555;
	padding: 0 2em;
	margin: 0;
	background: #f5f5f5;
	font-size: 1.1em;
}
.tabs li a:hover {
	color: #000;
}
.tabs li.active a {
	background: #fff;
	position: relative;
	border: 1px solid #DDD;
	border-bottom-color: #FFF;
	color: #111;
	-webkit-border-top-left-radius: 2px;
	border-top-left-radius: 2px;
	-webkit-border-top-right-radius: 2px;
	border-top-right-radius: 2px;
}
.tab_container {
	margin-bottom: 1em;
	display: block;
	border-left: 1px solid #ddd;
	padding: 15px 15px 0;
}
.tab_container > article {
	display:none;
}
.tab_container > article:first-child {
	display: block;
}
/* -------------------------------------------------------------
======	MEDIA QUERIES
------------------------------------------------------------- */

/* -- Media query 1 (mq1)
------------------------------------------------------------- */
@media only screen and (max-width: 60em) { /* 16 / 960 */
 .mq1-col-full {
width: 100%;
}
 .mq1-col-one-half {
width: 50%;
}
 .mq1-col-one-third {
width: 33.333%;
}
 .mq1-col-two-thirds {
width: 66.666%;
}
 .mq1-col-one-quarter {
width: 25%;
}
 .mq1-col-three-quarters {
width: 75%;
}
	/**/
	h1 {
font-size: 3.1em;
}
 .slide figcaption {
width: 80%;
}
 footer li {
float: left;
margin-right: 0.5em;
padding-right: 0.5em;
border-right: 1px solid #DDD;
}
}
    
/* -- Media query 2 (mq2)
------------------------------------------------------------- */
@media only screen and (max-width: 48em) { /* 16 / 768 */
 .mq2-col-full {
width: 100%;
}
 .mq2-col-one-half {
width: 50%;
}
 .mq2-col-one-third {
width: 33.333%;
}
 .mq2-col-two-thirds {
width: 66.666%;
}
 .mq2-col-one-quarter {
width: 25%;
}
 .mq2-col-three-quarters {
width: 75%;
}
	/**/
	header nav {
width: 100%;
}
 header nav ul {
padding: 0;
border-left:none;
line-height: 2em;
}
 header nav ul li {
float: left;
padding: 0 1em;
border-left:1px solid #ddd;
}
 .slider {
margin-top: 3em;
}
}
    
/* -- Media query 3 (mq3)
------------------------------------------------------------- */
@media only screen and (max-width: 30em) {	/* 16 / 480 */
	.mq3-col-full { width: 100%; }
	.mq3-col-one-half { width: 50%; }
	.mq3-col-one-third { width: 33.333%; }
	.mq3-col-two-thirds { width: 66.666%; }
	.mq3-col-one-quarter { width: 25%; }
	.mq3-col-three-quarters { width: 75%; }
	.mq3-col-one-fifth { width: 20%; }
	.mq3-col-two-fifths { width: 40%; }
	.mq3-col-three-fifths { width: 60%; }
	.mq3-col-one-sixth { width: 16.666%; }
	.mq3-none { display: none; }
	h1 { padding: 0 0 0 .1em; }
	
	/**/
	header nav ul li { padding: 0 0.5em; }
	
	.mobile
	{
		letter-spacing: .05em;
		font-weight: 900;
		font-size: 1.3em;
		line-height: 1.7em;
	}
	
	footer img
	{
		height:3em;
		margin-top: 1em;
		margin-bottom: 1.5em;
		padding-left: 2em;
	}
	
	footer li
	{
		float: none;
		margin-top: -0.5em;
		margin-right: 0em;
		padding-right: 0em;
		border-right: none;
		line-height: 2.5em;
	}
	
	.services article { margin-top: 3em; }
	.services article:first-of-type { margin-top: 0; }
}

/* -- PRINT STYLES 
------------------------------------------------------------- */
@media print {
body {color: #000;}
a {text-decoration: underline;}
}
 
/* -------------------------------------------------------------
======	END
------------------------------------------------------------- */