/* shared header / footer */
.sr_only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.header{position:fixed;inset:0 0 auto;z-index:100;color:var(--ink,#111315);transition:.3s ease;background:transparent;border-bottom:0;backdrop-filter:none}
.header{--scroll-progress:0}
.header:before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:var(--blue,#1f6dff);transform:scaleX(var(--scroll-progress));transform-origin:left center;pointer-events:none;z-index:2}
.header.scrolled{background:#fff;color:var(--ink,#111315);backdrop-filter:blur(14px);border-bottom:1px solid rgba(17,19,21,.14)}
.header .nav{height:90px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.header .logo{display:inline-flex;align-items:center;line-height:0}
.header .logo img{display:block;width:171px;height:54px;max-width:none;object-fit:contain;object-position:left center;image-rendering:-webkit-optimize-contrast;backface-visibility:hidden}

.header .navlinks{display:flex !important;justify-content:center;align-items:center;gap:clamp(18px,2.2vw,36px);font-size:15px;letter-spacing:.02em;text-transform:uppercase}
.header .nav_link{opacity:.86;position:relative;white-space:nowrap;display:inline-flex;align-items:center;height:90px}
.header .nav_link:after{content:'';position:absolute;left:0;right:100%;bottom:32px;height:1.5px;background:currentColor;transition:.25s}
.header .nav_link:hover{opacity:1}
.header .nav_link:hover:after,
.header .nav_item:hover > .nav_link:after,
.header .nav_link.is_current:after,
.header .nav_item.is_current > .nav_link:after{right:0}
.header .nav_link.is_current,
.header .nav_item.is_current > .nav_link{opacity:1;font-weight:600}

.header .nav_item{position:relative;display:flex;align-items:center;height:90px}
.header .nav_drop{
	position:absolute;
	left:50%;
	top:74px;
	transform:translateX(-50%) translateY(8px);
	min-width:260px;
	padding:0;
	background:rgba(249,247,241,.98);
	border:1px solid rgba(17,19,21,.14);
	box-shadow:0 18px 48px rgba(0,0,0,.08);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity .22s ease,transform .22s ease,visibility .22s;
	z-index:120;
	text-transform:none;
	letter-spacing:0;
	overflow:hidden;
}
.header .nav_drop_right{left:auto;right:0;transform:translateY(8px)}
.header .nav_item:hover > .nav_drop,
.header .nav_item:focus-within > .nav_drop{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:translateX(-50%) translateY(0);
}
.header .nav_item_b2b:hover > .nav_drop_right,
.header .nav_item_b2b:focus-within > .nav_drop_right{
	transform:translateY(0);
}
.header .nav_drop a{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:18px;
	margin:0;
	padding:13px 18px;
	border:0;
	border-bottom:1px solid rgba(17,19,21,.12);
	border-radius:0;
	font-size:13px;
	line-height:1.3;
	color:var(--ink,#111315);
	opacity:1;
	white-space:nowrap;
	background:transparent;
	transition:color .2s ease,background .2s ease;
	position:relative;
}
.header .nav_drop a:last-child{border-bottom:0}
.header .nav_drop a:before,
.header .nav_drop a:after{
	content:none !important;
	display:none !important;
	width:0 !important;
	height:0 !important;
	border:0 !important;
	background:none !important;
}
.header .nav_drop a span:last-child{opacity:.35;font-size:12px;color:inherit}
.header .nav_drop a:hover,
.header .nav_drop a:focus-visible{
	padding-left:18px !important;
	color:var(--ink,#111315) !important;
	background:rgba(31,109,255,.12) !important;
	border-bottom-color:rgba(17,19,21,.08) !important;
	box-shadow:none !important;
	outline:0 !important;
}
.header .nav_drop a:hover span:last-child,
.header .nav_drop a:focus-visible span:last-child{
	opacity:.7 !important;
	color:var(--ink,#111315) !important;
}
.header .nav_drop a.is_current{
	padding-left:18px !important;
	color:#fff !important;
	background:var(--blue,#1f6dff) !important;
	border-bottom-color:var(--blue,#1f6dff) !important;
	box-shadow:none !important;
	outline:0 !important;
}
.header .nav_drop a.is_current span:last-child{
	opacity:1 !important;
	color:#fff !important;
}
.header .nav_drop a.is_current:hover,
.header .nav_drop a.is_current:focus-visible{
	color:#fff !important;
	background:var(--blue,#1f6dff) !important;
	border-bottom-color:var(--blue,#1f6dff) !important;
}
.header .nav_drop a.is_current:hover span:last-child,
.header .nav_drop a.is_current:focus-visible span:last-child{
	opacity:1 !important;
	color:#fff !important;
}

.header .navright{display:flex !important;justify-content:flex-end;align-items:center;gap:10px;font-size:13px}
.select_lang{appearance:none;-webkit-appearance:none;border:1px solid currentColor;border-radius:4px;padding:9px 34px 9px 14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23111315' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 14px center;color:inherit;font:inherit;cursor:pointer;min-width:88px}
.btn_b2b,.btn_contact{border:1px solid currentColor;border-radius:4px;padding:9px 16px;font-size:13px;letter-spacing:.02em;white-space:nowrap;transition:.25s}
.btn_b2b:hover,.btn_contact:hover{background:var(--ink,#111315);color:#fff;border-color:var(--ink,#111315)}
.btn_contact{background:var(--ink,#111315);color:#fff;border-color:var(--ink,#111315)}
.btn_contact:hover{background:transparent;color:var(--ink,#111315)}
.header .nav_item.is_current > .btn_b2b,
.btn_b2b.is_current,.btn_contact.is_current{opacity:1}

/* hamburger */
.menu_btn{
	display:none;
	width:42px;
	height:42px;
	border:1px solid currentColor;
	border-radius:4px;
	background:transparent;
	align-items:center;
	justify-content:center;
	padding:0;
	cursor:pointer;
	color:inherit;
	flex-shrink:0;
}
.menu_btn_bar,
.menu_btn_bar:before,
.menu_btn_bar:after{
	display:block;
	width:18px;
	height:1.5px;
	background:currentColor;
	position:relative;
	transition:.25s ease;
}
.menu_btn_bar:before,
.menu_btn_bar:after{
	content:'';
	position:absolute;
	left:0;
}
.menu_btn_bar:before{top:-6px}
.menu_btn_bar:after{top:6px}
.menu_btn.is_open .menu_btn_bar{background:transparent}
.menu_btn.is_open .menu_btn_bar:before{top:0;transform:rotate(45deg)}
.menu_btn.is_open .menu_btn_bar:after{top:0;transform:rotate(-45deg)}

/* mobile menu panel */
.mobile_menu{
	display:none;
	position:fixed;
	left:0;
	right:0;
	top:90px;
	bottom:0;
	z-index:99;
	background:rgba(247,244,238,.98);
	backdrop-filter:blur(16px);
	overflow:auto;
	-webkit-overflow-scrolling:touch;
	border-top:1px solid rgba(17,19,21,.1);
}
.mobile_menu.is_open{display:block}
.mobile_menu_inner{
	width:min(1600px,calc(100% - clamp(20px,4vw,56px) * 2));
	margin:0 auto;
	padding:28px 0 60px;
}
.mobile_lang{margin-bottom:22px}
.mobile_lang .select_lang{min-width:120px;background-color:transparent}
.mobile_nav{display:grid;gap:0;border-top:1px solid rgba(17,19,21,.12)}
.mobile_link,
.mobile_toggle{
	width:100%;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:16px;
	padding:18px 0;
	border:0;
	border-bottom:1px solid rgba(17,19,21,.12);
	background:transparent;
	color:var(--ink,#111315);
	font-size:28px;
	line-height:1.15;
	letter-spacing:-.03em;
	text-align:left;
	text-transform:none;
	cursor:pointer;
}
.mobile_toggle span{font-size:22px;opacity:.55;line-height:1}
.mobile_sub{display:none;padding:0 0 16px 8px}
.mobile_group.is_open .mobile_sub{display:grid}
.mobile_sub a{
	display:block;
	padding:12px 0;
	font-size:16px;
	color:rgba(17,19,21,.62);
	border-bottom:1px solid rgba(17,19,21,.08);
}
.mobile_sub a:last-child{border-bottom:0}
.mobile_sub a.is_current,
.mobile_link.is_current,
.mobile_group.is_current > .mobile_toggle{color:var(--blue,#1f6dff)}
.mobile_actions{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
	margin-top:28px;
}
.mobile_actions .btn_b2b,
.mobile_actions .btn_contact{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:14px 16px;
	text-align:center;
}
body.menu_open{overflow:hidden}
body.menu_open .header{
	background:#fff;
	color:var(--ink,#111315);
	border-bottom:1px solid rgba(17,19,21,.1);
}

/* ---------- Sub page: white header + breadcrumb + visual ---------- */
body.is_sub .header{
	background:#fff;
	color:var(--ink,#111315);
	border-bottom:1px solid rgba(17,19,21,.08);
	backdrop-filter:none;
}
body.is_sub .header.scrolled{
	background:#fff;
	backdrop-filter:none;
	border-bottom:1px solid rgba(17,19,21,.08);
}

.page_head{
	padding-top:90px;
	background:#17191c;
	color:#fff;
}
.page_head .container,
.sub_visual .container{
	width:min(1600px,calc(100% - clamp(20px,4vw,56px) * 2));
	margin:auto;
}
.breadcrumb{
	height:52px;
	display:flex;
	align-items:center;
	gap:10px;
	font-size:12px;
	letter-spacing:.02em;
	color:rgba(255,255,255,.6);
}
.breadcrumb a{color:rgba(255,255,255,.6);text-decoration:none}
.breadcrumb a:hover{color:#fff}
.breadcrumb b{color:#fff;font-weight:600}

.sub_visual{
	position:relative;
	min-height:820px;
	overflow:hidden;
	background:#d9c8b5;
}
.sub_visual_media{
	position:absolute;
	inset:0;
	overflow:hidden;
}
.sub_visual_media img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	max-width:none;
	object-fit:cover;
	object-position:right center;
	transform-origin:right center;
	will-change:transform;
}
.sub_visual_media:after{
	content:'';
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,rgba(244,241,234,.83) 0%,rgba(244,241,234,.56) 28%,rgba(244,241,234,.11) 55%,rgba(244,241,234,0) 75%);
	pointer-events:none;
}
.sub_visual_inner{
	position:relative;
	z-index:2;
	min-height:730px;
	display:flex;
	align-items:flex-end;
	padding:0 0 76px;
}
.sub_visual_copy{max-width:800px}
.sub_visual_kicker{
	color:var(--blue,#1f6dff);
	margin-bottom:20px;
	font-size:11px;
	line-height:1.2;
	letter-spacing:.17em;
	text-transform:uppercase;
}
.sub_visual_copy h3{
	font-size:clamp(66px,7.1vw,132px);
	line-height:.86;
	letter-spacing:-.07em;
	font-weight:500;
	margin:0;
	max-width:960px;
	color:var(--ink,#111315);
}
.sub_visual_copy h3 .serif{
	color:var(--blue,#1f6dff);
	font-size:.84em;
	font-family:Georgia,"Times New Roman",serif;
	font-style:italic;
	font-weight:400;
}
.sub_visual_copy p{
	font-size:17px;
	line-height:1.7;
	color:rgba(17,19,21,.72);
	max-width:540px;
	margin:28px 0 0;
}

/* reveal compatibility: pages use either .in or .is-in */
.reveal.in,
.reveal.is-in{
	opacity:1 !important;
	transform:none !important;
}

/* Subpage bottom CTA — square box buttons */
.cta-links{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	margin-top:24px;
}
.cta-link{
	display:inline-flex;
	align-items:center;
	gap:10px;
	border:1px solid var(--ink,#111315);
	padding:13px 16px;
	font-size:13px;
	line-height:1;
	transition:.25s;
}
.cta-link.primary{
	background:var(--ink,#111315);
	color:#fff;
}
.cta-link:hover,
.cta-link.primary:hover{
	background:var(--blue,#1f6dff);
	color:#fff;
	border-color:var(--blue,#1f6dff);
}
.cta-links.on_dark .cta-link{
	border-color:rgba(255,255,255,.38);
	color:#fff;
}
.cta-links.on_dark .cta-link.primary{
	background:#fff;
	color:var(--ink,#111315);
	border-color:#fff;
}
.cta-links.on_dark .cta-link:hover,
.cta-links.on_dark .cta-link.primary:hover{
	background:var(--blue,#1f6dff);
	color:#fff;
	border-color:var(--blue,#1f6dff);
}

@media(max-width:900px){
	.sub_visual{min-height:380px}
	.sub_visual_inner{display:none}
	.sub_visual_media img{object-fit:cover;object-position:center center}
	.sub_visual_media:after{display:none}
}
@media(max-width:680px){
	.page_head{padding-top:68px}
	.breadcrumb{
		height:auto;
		min-height:40px;
		padding:8px 0;
		overflow-x:auto;
		overflow-y:hidden;
		white-space:nowrap;
		-webkit-overflow-scrolling:touch;
		font-size:11px;
	}
	.sub_visual{min-height:300px}
	.cta-links{margin-top:16px}
	.cta-link{padding:12px 14px;font-size:12px}
}

.footer{background:#161719;color:rgba(255,255,255,.72);padding:54px 0 42px}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,.6fr);gap:40px}
.footer h4{font-size:12px;color:#fff;margin:0 0 14px}
.footer a,.footer p{font-size:12px;line-height:1.9;margin:0}
.footer-brand{display:inline-flex;align-items:center}
.footer-brand img{width:170px;height:auto;object-fit:contain}
.footer_bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:42px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.btn_top{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:10px 16px;color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:.25s}
.btn_top:hover{background:#fff;color:var(--ink,#111315);border-color:#fff}

/* global mobile safety */
/* global mobile safety — exclude full-bleed cover images */
img,video,iframe,svg{max-width:100%}
.sub_visual_media img,
.header .logo img,
.footer-brand img,
.hero-bg img,
.hero_slide img,
.stage-img img,
.auto-main img,
.state-card img,
.pure-media img,
.project-img img{
	max-width:none;
}
@media(max-width:1100px){
	.header .navlinks{gap:14px;font-size:13px}
	.header .navright{gap:8px}
	.header .btn_b2b,.header .btn_contact,.header .select_lang{padding:8px 12px;font-size:12px}
	.header .select_lang{padding-right:28px;min-width:72px}
	.header .nav_drop{min-width:230px}
}
@media(max-width:1000px){
	html,body{overflow-x:hidden}
	.header .nav{grid-template-columns:1fr auto !important;gap:16px}
	.header .navlinks{display:none !important}
	.header .menu_btn{display:inline-flex !important}
	.header .navright{
		display:flex !important;
		justify-content:flex-end;
		align-items:center;
		gap:8px;
	}
	.header .navright .select_lang,
	.header .navright .nav_item_b2b,
	.header .navright > .btn_contact{display:none !important}
	.mobile_menu{top:90px}
	.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
	.header .nav{height:68px}
	.header .logo img{width:126px;max-height:46px}
	.header .nav_link,.header .nav_item{height:68px}
	.header .nav_link:after{bottom:22px}
	.header .nav_drop{top:58px}
	.mobile_menu{top:68px}
	.mobile_link,
	.mobile_toggle{font-size:24px;padding:16px 0}
	.mobile_menu_inner{padding:22px 0 48px}
	.footer{padding:42px 0 34px}
	.footer-grid{grid-template-columns:1fr 1fr;gap:28px}
	.footer_bottom{flex-direction:column;align-items:flex-start}
	.footer-brand img{width:140px}
}

/* shared content helpers for sub pages on small screens */
@media(max-width:1000px){
	:root{--side:20px}
	.container{width:min(1600px,calc(100% - 40px)) !important}
	.page_head .container,
	.sub_visual .container{width:min(1600px,calc(100% - 40px))}
	main{overflow-x:hidden}
	.form-panel,
	.form-area,
	.app-shell,
	.portfolio-stage,
	.board-section,
	.faq-content{max-width:100%}
	.office-map,
	iframe{max-width:100%}
}
@media(max-width:680px){
	:root{--side:16px}
	.container{width:min(1600px,calc(100% - 32px)) !important}
	.page_head .container,
	.sub_visual .container{width:min(1600px,calc(100% - 32px))}
	h2,h3{overflow-wrap:break-word}
	.compare-table,
	.board-section,
	.portfolio-stage,
	.size-stage,
	.form-shell{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

.hp_field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.submit-note.is_error,.form_error{color:#c0392b}
.application .consent,.form-step .consent{display:flex;gap:10px;align-items:flex-start;margin-top:26px;font-size:13px;color:var(--muted,#66635e);line-height:1.55;text-transform:none;letter-spacing:0;font-weight:400}
.application .consent input,.form-step .consent input{margin-top:3px;accent-color:var(--blue,#1f6dff);width:auto;height:auto;padding:0;border:0}
.consent a{text-decoration:underline}
.download.is_disabled{opacity:.35;pointer-events:none;cursor:not-allowed}
.resource-row.is_unavailable{cursor:default}

