:root{
	--white:#ffffff;
	--red:#c62828;
	--red-dark:#9e1f1f;
	--black:#222222;
	--gray:#666666;
	--light:#f7f7f7;
	--line:#dddddd;
}
*{
	box-sizing:border-box;
}
html{
	scroll-behavior:smooth;
}
body{
	margin:0;
	background:var(--white);
	color:var(--black);
	font-family:"Open Sans",sans-serif;
	line-height:1.6;
}
.container{
	width:min(1180px,calc(100% - 48px));
	margin:0 auto;
}
.site-header{
	position:relative;
	z-index:10;
	padding:22px 0;
	border-bottom:1px solid var(--line);
	background:rgba(255,255,255,.96);
}
.header-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.brand{
	display:flex;
	align-items:center;
	gap:14px;
	color:var(--black);
	text-decoration:none;
}
.brand img{
	width:54px;
	height:54px;
	object-fit:contain;
	border-radius:0;
}
.brand-text{
	display:flex;
	flex-direction:column;
	line-height:1.1;
}
.brand-text strong{
	font-family:"Montserrat",sans-serif;
	font-size:20px;
	letter-spacing:.12em;
}
.brand-text span{
	margin-top:5px;
	color:var(--gray);
	font-size:9px;
	letter-spacing:.12em;
}
.header-contact{
	display:flex;
	align-items:center;
	gap:8px;
	padding-bottom:4px;
	border-bottom:1px solid var(--red);
	color:var(--red);
	font-size:13px;
	font-weight:700;
	text-decoration:none;
}
.header-contact span{
	font-size:16px;
}
.hero{
	position:relative;
	min-height:680px;
	padding:80px 0 100px;
	overflow:hidden;
	background:
		radial-gradient(circle at 78% 48%,rgba(198,40,40,.08),transparent 28%),
		var(--white);
}
.hero-decoration{
	position:absolute;
	border:1px solid rgba(198,40,40,.12);
	border-radius:50%;
	pointer-events:none;
}
.hero-decoration-top{
	width:700px;
	height:700px;
	right:-300px;
	top:-240px;
}
.hero-decoration-bottom{
	width:420px;
	height:420px;
	left:-280px;
	bottom:-300px;
}
.hero-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:50px;
	align-items:center;
}
.hero-content{
	position:relative;
	z-index:2;
	max-width:620px;
}
.hero-kicker{
	display:flex;
	align-items:center;
	gap:14px;
	color:var(--red);
	font-size:11px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.18em;
}
.kicker-line{
	width:38px;
	height:1px;
	background:var(--red);
}
.hero h1{
	margin:22px 0 24px;
	font-family:"Montserrat",sans-serif;
	font-size:clamp(46px,5.5vw,78px);
	line-height:1.02;
	letter-spacing:-.05em;
	font-weight:600;
}
.hero h1 span{
	display:block;
	color:var(--red);
}
.hero-lead{
	margin:0 0 18px;
	font-family:"Montserrat",sans-serif;
	font-size:21px;
	font-weight:600;
}
.hero-text{
	max-width:570px;
	margin:0 0 34px;
	color:var(--gray);
	font-size:16px;
	line-height:1.7;
}
.hero-button,
.mail-button{
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:30px;
	min-width:190px;
	padding:15px 18px;
	background:var(--red);
	color:var(--white);
	font-size:11px;
	font-weight:700;
	text-decoration:none;
	text-transform:uppercase;
	letter-spacing:.1em;
	transition:background .25s ease,transform .25s ease,box-shadow .25s ease;
}
.hero-button strong,
.mail-button strong{
	font-size:19px;
	line-height:1;
}
.hero-button:hover,
.mail-button:hover{
	background:var(--red-dark);
	transform:translateY(-3px);
	box-shadow:0 10px 25px rgba(198,40,40,.18);
}
.hero-mark{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	min-height:540px;
}
.quadrant-intro{
	display:flex;
	flex-direction:column;
	align-items:center;
	margin-bottom:18px;
	text-align:center;
}
.quadrant-intro strong{
	color:var(--black);
	font-family:"Montserrat",sans-serif;
	font-size:18px;
	font-weight:700;
	letter-spacing:.13em;
}
.quadrant-intro span{
	margin-top:4px;
	color:var(--red);
	font-family:"Montserrat",sans-serif;
	font-size:9px;
	font-weight:600;
	letter-spacing:.12em;
}
.quadrant-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	width:min(500px,36vw);
	margin-bottom:15px;
}
.quadrant-counter{
	color:var(--red);
	font-family:"Montserrat",sans-serif;
	font-size:10px;
	font-weight:700;
	letter-spacing:.15em;
}
.quadrant-title{
	color:var(--gray);
	font-family:"Montserrat",sans-serif;
	font-size:8px;
	font-weight:600;
	letter-spacing:.12em;
}
.quadrant-stage{
	position:relative;
	width:min(500px,36vw);
	aspect-ratio:1;
}
.quadrant-grid{
	position:absolute;
	inset:0;
	display:grid;
	grid-template-columns:1fr 1fr;
	grid-template-rows:1fr 1fr;
	gap:5px;
	padding:5px;
	background:var(--black);
	box-shadow:0 25px 60px rgba(0,0,0,.14);
	overflow:hidden;
}
.quadrant{
	position:relative;
	display:block;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	border:0;
	border-radius:0;
	overflow:hidden;
	background:var(--white);
	cursor:pointer;
	-webkit-appearance:none;
	appearance:none;
}
.quadrant img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	transform:scale(1);
	transition:transform .85s cubic-bezier(.22,.61,.36,1),filter .85s ease,opacity .85s ease;
}
.quadrant:not(.active) img{
	filter:grayscale(.35) blur(3px);
	opacity:.48;
	transform:scale(1.03);
}
.quadrant.active img{
	transform:scale(1.055);
	filter:grayscale(0) blur(0);
	opacity:1;
}
.quadrant:hover img{
	opacity:.85;
}
.quadrant.active:hover img{
	opacity:1;
}
.quadrant:after{
	content:"";
	position:absolute;
	inset:0;
	border:1px solid rgba(255,255,255,.15);
	pointer-events:none;
}
.quadrant:focus-visible{
	outline:3px solid var(--red);
	outline-offset:-3px;
}
.quadrant-center{
	position:absolute;
	z-index:5;
	top:50%;
	left:50%;
	width:calc(50% - 7.5px);
	aspect-ratio:1;
	transform:translate(-50%,-50%);
	display:flex;
	align-items:center;
	justify-content:center;
	background:transparent;
	box-shadow:none;
	overflow:visible;
	pointer-events:none;
}
.quadrant-center img{
	display:block;
	width:54px;
	height:54px;
	object-fit:contain;
	background:transparent;
}
.quadrant-marker{
	position:absolute;
	z-index:6;
	width:13px;
	height:13px;
	border:2px solid var(--red);
	background:var(--white);
	border-radius:50%;
	pointer-events:none;
	transition:top .7s cubic-bezier(.22,.61,.36,1),left .7s cubic-bezier(.22,.61,.36,1),right .7s cubic-bezier(.22,.61,.36,1),bottom .7s cubic-bezier(.22,.61,.36,1);
}
.marker-1{
	top:-7px;
	right:-7px;
}
.marker-2{
	bottom:-7px;
	right:-7px;
}
.marker-3{
	bottom:-7px;
	left:-7px;
}
.marker-4{
	top:-7px;
	left:-7px;
}
.quadrant-footer{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:17px;
	color:var(--gray);
	font-family:"Montserrat",sans-serif;
	font-size:8px;
	font-weight:600;
	letter-spacing:.1em;
}
.quadrant-footer i{
	display:block;
	width:22px;
	height:1px;
	background:var(--line);
}
.quadrant-subtitle{
	margin-top:15px;
	color:var(--gray);
	font-family:"Montserrat",sans-serif;
	font-size:8px;
	font-weight:600;
	letter-spacing:.18em;
	opacity:.7;
}
.quadrant-description{
	position:relative;
	display:grid;
	grid-template-columns:45px 1fr 30px;
	gap:18px;
	width:min(500px,36vw);
	margin-top:25px;
	padding:22px 20px;
	border-top:2px solid var(--red);
	background:rgba(255,255,255,.97);
	box-shadow:0 15px 35px rgba(0,0,0,.08);
	opacity:0;
	visibility:hidden;
	transform:translateY(-10px);
	pointer-events:none;
	transition:opacity .35s ease,transform .35s ease,visibility .35s ease;
}
.quadrant-description.visible{
	opacity:1;
	visibility:visible;
	transform:translateY(0);
	pointer-events:auto;
}
.quadrant-description-number{
	color:var(--red);
	font-family:"Montserrat",sans-serif;
	font-size:11px;
	font-weight:700;
	letter-spacing:.1em;
	padding-top:3px;
}
.quadrant-description-content{
	min-width:0;
}
.quadrant-description-title{
	margin:0 0 9px;
	color:var(--black);
	font-family:"Montserrat",sans-serif;
	font-size:15px;
	font-weight:700;
	line-height:1.2;
	letter-spacing:.06em;
}
.quadrant-description-text{
	margin:0;
	color:var(--gray);
	font-size:12px;
	line-height:1.65;
}
.quadrant-description-close{
	display:flex;
	align-items:center;
	justify-content:center;
	width:28px;
	height:28px;
	padding:0;
	border:0;
	background:transparent;
	color:var(--gray);
	font-family:"Montserrat",sans-serif;
	font-size:25px;
	line-height:1;
	cursor:pointer;
	transition:color .2s ease,transform .2s ease;
}
.quadrant-description-close:hover{
	color:var(--red);
	transform:rotate(90deg);
}
.intro-section{
	padding:120px 0;
}
.section-heading{
	display:grid;
	grid-template-columns:80px 1fr;
	gap:25px;
	align-items:start;
	margin-bottom:65px;
}
.section-number{
	padding-top:8px;
	color:var(--red);
	font-family:"Montserrat",sans-serif;
	font-size:13px;
	font-weight:700;
}
.eyebrow{
	display:inline-block;
	color:var(--red);
	font-size:10px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.18em;
}
.section-heading h2{
	margin:12px 0 0;
	font-family:"Montserrat",sans-serif;
	font-size:clamp(38px,4.5vw,62px);
	line-height:1.06;
	letter-spacing:-.045em;
	font-weight:600;
}
.section-heading h2 em,
.contact-section h2 em{
	color:var(--red);
	font-style:normal;
}
.intro-grid{
	display:grid;
	grid-template-columns:1.5fr 1fr;
	gap:90px;
}
.large-text{
	margin:0;
	color:#393939;
	font-size:25px;
	line-height:1.55;
}
.intro-side{
	padding:5px 0 0 40px;
	border-left:1px solid var(--line);
}
.quote-mark{
	color:var(--red);
	font-family:Georgia,serif;
	font-size:70px;
	line-height:.7;
}
.intro-side p{
	margin-top:25px;
	font-family:"Montserrat",sans-serif;
	font-size:18px;
	line-height:1.5;
	font-weight:500;
}
.activities-section{
	position:relative;
	padding:120px 0;
	background:var(--red);
	color:var(--white);
	overflow:hidden;
}
.activities-section:after{
	content:"";
	position:absolute;
	width:500px;
	height:500px;
	right:-250px;
	bottom:-300px;
	border:1px solid rgba(255,255,255,.15);
	border-radius:50%;
}
.section-heading-light .section-number,
.section-heading-light .eyebrow{
	color:var(--white);
}
.section-heading-light h2 em{
	color:var(--white);
}
.activity-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}
.activity-card{
	position:relative;
	display:flex;
	flex-direction:column;
	min-height:300px;
	padding:32px;
	border:1px solid rgba(255,255,255,.45);
	overflow:hidden;
	transition:background .3s ease,transform .3s ease;
}
.activity-card:after{
	content:"";
	position:absolute;
	right:-45px;
	bottom:-45px;
	width:130px;
	height:130px;
	border:1px solid rgba(255,255,255,.2);
	border-radius:50%;
}
.activity-card:hover{
	background:rgba(255,255,255,.08);
	transform:translateY(-5px);
}
.card-number{
	font-size:10px;
	font-weight:700;
	letter-spacing:.15em;
	opacity:.75;
}
.card-icon{
	margin-top:25px;
	font-family:"Montserrat",sans-serif;
	font-size:32px;
	font-weight:500;
}
.activity-card h3{
	margin:auto 0 12px;
	font-family:"Montserrat",sans-serif;
	font-size:29px;
	font-weight:600;
}
.activity-card p{
	margin:0;
	max-width:280px;
	color:rgba(255,255,255,.85);
	font-size:14px;
}
.project-section{
	padding:120px 0;
	background:var(--white);
}
.project-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:80px;
	align-items:start;
}
.project-image-frame{
	position:relative;
	overflow:hidden;
}
.project-image-frame img{
	display:block;
	width:100%;
	height:auto;
}
.image-caption{
	position:absolute;
	right:0;
	bottom:0;
	padding:10px 14px;
	background:var(--red);
	color:var(--white);
	font-size:9px;
	font-weight:700;
	letter-spacing:.15em;
}
.project-content>p{
	margin:0 0 28px;
	color:var(--gray);
}
.values-list{
	margin:0 0 30px;
	padding:0;
	border-top:1px solid var(--line);
	list-style:none;
}
.values-list li{
	display:grid;
	grid-template-columns:150px 1fr;
	gap:20px;
	padding:17px 0;
	border-bottom:1px solid var(--line);
}
.values-list strong{
	font-family:"Montserrat",sans-serif;
	font-size:11px;
	letter-spacing:.08em;
}
.values-list span{
	color:var(--gray);
	font-size:14px;
}
.contact-section{
	padding:120px 0;
	background:var(--light);
}
.contact-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:100px;
}
.contact-section h2{
	margin:14px 0 25px;
	font-family:"Montserrat",sans-serif;
	font-size:clamp(48px,5vw,72px);
	line-height:1.02;
	letter-spacing:-.045em;
	font-weight:600;
}
.contact-intro{
	max-width:520px;
	margin:0 0 30px;
	color:var(--gray);
}
.contact-details{
	display:grid;
	grid-template-columns:1fr;
	gap:30px;
}
.contact-block{
	padding-bottom:25px;
	border-bottom:1px solid var(--line);
}
.contact-block span{
	color:var(--red);
	font-size:9px;
	font-weight:700;
	letter-spacing:.16em;
}
.contact-block p{
	margin:10px 0 0;
	color:var(--gray);
	font-size:14px;
}
.contact-block a{
	color:var(--black);
	text-decoration:none;
}
.contact-block a:hover{
	color:var(--red);
	text-decoration:underline;
}
.five-section{
	padding:55px 0;
	background:var(--white);
}
.five-card{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:25px;
	padding:32px;
	border:1px solid var(--line);
	color:var(--black);
	text-decoration:none;
	transition:background .25s ease,transform .25s ease,border-color .25s ease;
}
.five-card:hover{
	background:var(--light);
	border-color:var(--red);
	transform:translateY(-2px);
}
.five-mark{
	display:flex;
	align-items:center;
	justify-content:center;
	width:70px;
	height:70px;
	background:var(--red);
	color:var(--white);
	font-family:"Montserrat",sans-serif;
	font-size:24px;
	font-weight:600;
}
.five-card div:last-child{
	display:flex;
	flex-direction:column;
}
.five-card span{
	color:var(--gray);
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:.12em;
}
.five-card strong{
	margin-top:5px;
	font-family:"Montserrat",sans-serif;
	font-size:20px;
}
.five-card strong b{
	color:var(--red);
}
.site-footer{
	padding:25px 0;
	background:var(--black);
	color:rgba(255,255,255,.75);
	font-size:11px;
}
.site-footer .container{
	display:flex;
	justify-content:space-between;
	gap:20px;
}
@media (max-width:900px){
	.hero{
		padding:70px 0 80px;
	}
	.hero-grid,
	.project-grid,
	.contact-grid{
		grid-template-columns:1fr;
	}
	.hero-content{
		max-width:700px;
	}
	.hero-mark{
		min-height:500px;
		margin-top:20px;
	}
	.quadrant-stage,
	.quadrant-header,
	.quadrant-description{
		width:min(70vw,440px);
	}
	.intro-grid{
		grid-template-columns:1fr;
		gap:45px;
	}
	.intro-side{
		padding-left:25px;
	}
	.activity-grid{
		grid-template-columns:1fr;
	}
	.project-grid,
	.contact-grid{
		gap:55px;
	}
}
@media (max-width:600px){
	.container{
		width:min(100% - 32px,1180px);
	}
	.site-header{
		padding:16px 0;
	}
	.brand img{
		width:45px;
		height:45px;
		object-fit:contain;
		border-radius:0;
	}
	.brand-text strong{
		font-size:17px;
	}
	.brand-text span{
		font-size:7px;
	}
	.header-contact{
		font-size:11px;
	}
	.hero{
		min-height:0;
		padding:55px 0 70px;
	}
	.hero-grid{
		gap:20px;
	}
	.hero h1{
		font-size:clamp(40px,11vw,58px);
	}
	.hero-text{
		font-size:15px;
	}
	.hero-mark{
		min-height:410px;
		margin-top:15px;
	}
	.quadrant-stage,
	.quadrant-header,
	.quadrant-description{
		width:min(86vw,360px);
	}
	.quadrant-intro strong{
		font-size:15px;
	}
	.quadrant-intro span{
		font-size:7px;
	}
	.quadrant-header{
		margin-bottom:12px;
	}
	.quadrant-title{
		font-size:7px;
	}
	.quadrant-grid{
		gap:3px;
		padding:3px;
	}
	.quadrant-center{
		width:calc(50% - 4.5px);
	}
	.quadrant-center img{
		width:54px;
		height:54px;
	}
	.quadrant-footer{
		gap:7px;
		font-size:7px;
	}
	.quadrant-footer i{
		width:14px;
	}
	.quadrant-subtitle{
		font-size:7px;
	}
	.quadrant-description{
		grid-template-columns:32px 1fr 25px;
		gap:10px;
		margin-top:20px;
		padding:18px 14px;
	}
	.quadrant-description-number{
		font-size:9px;
	}
	.quadrant-description-title{
		font-size:12px;
	}
	.quadrant-description-text{
		font-size:11px;
		line-height:1.55;
	}
	.quadrant-description-close{
		width:24px;
		height:24px;
		font-size:22px;
	}
	.section-heading{
		grid-template-columns:45px 1fr;
		gap:15px;
		margin-bottom:45px;
	}
	.section-heading h2{
		font-size:clamp(34px,9vw,48px);
	}
	.large-text{
		font-size:21px;
	}
	.intro-section,
	.activities-section,
	.project-section,
	.contact-section{
		padding:80px 0;
	}
	.values-list li{
		grid-template-columns:1fr;
		gap:5px;
	}
	.five-card{
		padding:20px;
		gap:15px;
	}
	.five-mark{
		width:55px;
		height:55px;
		font-size:19px;
	}
	.five-card strong{
		font-size:16px;
	}
	.site-footer .container{
		flex-direction:column;
		gap:5px;
	}
}
@media (prefers-reduced-motion:reduce){
	html{
		scroll-behavior:auto;
	}
	.quadrant img{
		transition:none;
	}
	.quadrant-marker{
		transition:none;
	}
	.quadrant-description{
		transition:none;
	}
}
