@charset "utf-8";
/* Footer: premium corporate footer and CTA system */
#devm01-footer{
	position: relative;
	background: var(--c-primary);
	color: rgba(255,255,255,.76);
}
.devm01-footer-cta{
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg,
var(--c-deep),
var(--c-primary));
	border-top: 1px solid rgba(255,255,255,.08);
}
.devm01-footer-cta::before{
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 78% 30%,
rgba(30,136,229,.28),
transparent 34%);
}
.devm01-footer-cta__inner{
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	padding: 72px 0;
}
.devm01-footer-cta h2{
	margin: 0;
	color: var(--c-bg);
	font-size: 38px;
	line-height: 1.25;
	font-weight:bold;
	letter-spacing: -.05em;
}
.devm01-footer-cta p{
	margin: 16px 0 0;
	max-width: 680px;
	color: rgba(255,255,255,.72);
	font-size: 17px;
	line-height: 1.75;
}
.devm01-footer-cta__actions{
	display: flex;
	flex-shrink: 0;
	gap: 12px;
}
.devm01-footer-cta .devm01-btn-primary{
	border-color: var(--c-bg);
	background: var(--c-bg);
	color: var(--c-primary);
}
.devm01-footer-cta .devm01-btn-primary:hover{
	border-color: var(--c-accent-light);
	background: var(--c-accent-light);
	color: var(--c-primary);
}
.devm01-footer-cta .devm01-btn-secondary{
	border-color: rgba(255,255,255,.42);
	background: transparent;
	color: var(--c-bg);
}
.devm01-footer-cta .devm01-btn-secondary:hover{
	background: var(--c-bg);
	color: var(--c-primary);
}
.devm01-footer__main{
	display: grid;
	grid-template-columns: 1.15fr 1.6fr .8fr;
	gap: 64px;
	padding: 76px 0 62px;
}
.devm01-footer__logo{
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--c-bg);
	font-family: var(--devm01-font-en);
	font-size: 22px;
	letter-spacing: -.04em;
}
.devm01-footer__brand p{
	margin: 22px 0 30px;
	max-width: 360px;
	color: rgba(255,255,255,.68);
	line-height: 1.8;
}
.devm01-footer__family label{
	display: block;
	margin-bottom: 10px;
	color: rgba(255,255,255,.52);
	font-family: var(--devm01-font-en);
	font-size: 16px;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.devm01-footer__family select{
	width: 260px;
	height: 48px;
	padding: 0 16px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: var(--devm01-radius-btn);
	background: rgba(255,255,255,.06);
	color: var(--c-bg);
}
.devm01-footer__family option{
	color: var(--c-fg);
}
.devm01-footer__cs{
	padding: 30px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--devm01-radius-lg);
	background: rgba(255,255,255,.05);
}
.devm01-footer__cs span{
	display: block;
	color: rgba(255,255,255,.5);
	font-family: var(--devm01-font-en);
	font-size: 16px;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.devm01-footer__cs strong{
	display: block;
	margin: 18px 0 10px;
	color: var(--c-bg);
	font-family: var(--devm01-font-en);
	font-size: 30px;
	letter-spacing: -.05em;
}
.devm01-footer__cs p{
	margin: 0 0 16px;
	color: rgba(255,255,255,.64);
	line-height: 1.65;
}
.devm01-footer__cs a{
	color: var(--c-accent-light);
}
.devm01-footer__bottom{
	border-top: 1px solid rgba(255,255,255,.1);
	padding: 28px 0 34px;
	background: rgba(0,0,0,.12);
}
.devm01-footer__policy{
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 18px;
}
.devm01-footer__policy a{
	color: rgba(255,255,255,.84);
	font-size: 16px;
}
.devm01-footer__bottom address{
	margin: 0;
	color: rgba(255,255,255,.52);
	font-style: normal;
	font-size: 16px;
	line-height: 1.8;
}
.devm01-footer__copy{
	margin: 14px 0 0;
	color: rgba(255,255,255,.38);
	font-family: var(--devm01-font-en);
	font-size: 16px;
}
.devm01-quick-cta{
	position: fixed;
	right: 24px;
	bottom: var(--devm-qmenu-bottom, 32px);
	z-index: 1000;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.devm01-quick-cta a,
.devm01-quick-cta button{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border: 0;
	border-radius: 50%;
	background: var(--c-primary);
	color: var(--c-bg);
	font-size: 16px;
	cursor: pointer;
	transition: transform var(--devm01-duration) var(--devm01-ease),
background var(--devm01-duration) var(--devm01-ease),
color var(--devm01-duration) var(--devm01-ease);
}
.devm01-quick-cta a:first-child{
	background: var(--c-accent);
	color: var(--c-bg);
}
.devm01-quick-cta a:hover,
.devm01-quick-cta button:hover{
	transform: translateY(-4px);
	background: var(--c-accent);
	color: var(--c-bg);
}
@media (max-width: 1180px){
	.devm01-footer__main{
		grid-template-columns: 1fr 1.4fr;
	}
	.devm01-footer__cs{
		grid-column: 1 / -1;
	}
}
@media (max-width: 900px){
	.devm01-footer-cta__inner{
		display: block;
		padding: 56px 0;
	}
	.devm01-footer-cta h2{
		font-size: 30px;
	}
	.devm01-footer-cta__actions{
		margin-top: 28px;
	}
	.devm01-footer__main{
		grid-template-columns: 1fr;
		gap: 42px;
		padding: 58px 0;
	}
}
@media (max-width: 768px){
	.devm01-footer-cta__actions{
		display: grid;
		grid-template-columns: 1fr;
	}
	.devm01-footer__family select{
		width: 100%;
	}
	/* 좁은 화면에서는 빠른 메뉴를 화면 오른쪽 아래에 세로로 모아 표시합니다.
	   표시되는 항목은 테마 설정에 등록하신 값에 따라 정해집니다. */
	.devm01-quick-cta{
		right: 12px;
		bottom: var(--devm-qmenu-bottom, 12px);
		gap: 0;
	}
	.devm01-quick-cta a,
	.devm01-quick-cta button{
		flex-direction: column;
		gap: 4px;
		width: 58px;
		height: 56px;
		padding: 7px 2px;
		border-radius: 0;
		border-bottom: 1px solid rgba(255,255,255,.16);
		background: var(--c-primary);
		box-shadow: none;
		color: var(--c-bg);
		justify-content: center;
	}
	/* 좁은 화면에서는 아이콘만 표시하고 이름은 읽어 주는 화면에만 남깁니다. */
	.devm01-quick-cta a span,
	.devm01-quick-cta button span{
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.devm01-quick-cta a:first-child{
		background: var(--c-accent);
	}
	.devm01-quick-cta a:last-child,
	.devm01-quick-cta button:last-child{
		border-bottom: 0;
	}
	.devm01-quick-cta a .fa,
	.devm01-quick-cta button .fa{
		font-size: 17px;
		line-height: 1;
	}
	.devm01-quick-cta a:hover,
	.devm01-quick-cta button:hover{
		transform: none;
		background: var(--c-accent);
		color: var(--c-bg);
	}
}
@media (max-width: 480px){
	.devm01-footer-cta h2{
		font-size: 26px;
	}
	.devm01-footer__cs strong{
		font-size: 25px;
	}
}
/* Sub/Page breathing space polish */
.devm01-footer-breathing{
	height:140px;
	background:var(--c-bg);
}
.devm01-footer-cta{
	background:linear-gradient(135deg,var(--c-deep),var(--c-primary));
	border-top:0;
}
.devm01-footer-cta::before{
	opacity:.18;
	background:radial-gradient(circle at 84% 26%,
var(--c-accent-light),
transparent 30%);
}
.devm01-footer-cta__inner{
	padding:54px 0;
}
.devm01-footer-cta h2{
	font-size:30px;
	letter-spacing:-.045em;
}
.devm01-footer-cta p{
	max-width:620px;
	font-size:16px;
	line-height:1.7;
}
.devm01-footer-cta .devm01-btn{
	height:44px;
	padding:0 18px;
	font-size:16px;
}
@media (max-width:900px){
	.devm01-footer-breathing{
		height:96px;
	}
	.devm01-footer-cta__inner{
		padding:44px 0;
	}
	.devm01-footer-cta h2{
		font-size:26px;
	}
}
@media (max-width:768px){
	.devm01-footer-breathing{
		height:76px;
	}
	.devm01-footer-cta__inner{
		padding:38px 0;
	}
}
/* Full Theme QA: footer menu from DB,
contact nowrap and CTA spacing */
.devm01-footer-breathing{
	height:120px;
}
.devm01-footer__main{
	grid-template-columns:1fr 1.65fr .86fr;
}
.devm01-footer__cs strong{
	white-space:nowrap;
}
.devm01-footer__bottom address{
	white-space:normal;
	word-break:keep-all;
	overflow-wrap:anywhere;
}
.devm01-footer__logo .devm01-logo__mark{
	flex-shrink:0;
}
@media (max-width:1180px){
	.devm01-footer__main{
		grid-template-columns:1fr;
	}
	.devm01-footer__cs{
		max-width:420px;
	}
	.devm01-footer__bottom address{
		white-space:normal;
	}
}
@media (max-width:768px){
	.devm01-footer-breathing{
		height:88px;
	}
	.devm01-footer__cs strong{
		font-size:24px;
	}
	.devm01-footer__cs a{
		font-size:16px;
	}
}
/* Additional QA polish: footer harmony,
one-line PC menu,
compact contact */
.devm01-footer-breathing{
	height:96px;
	background:linear-gradient(180deg,var(--c-bg) 0%,var(--devm01-gray-100) 100%);
}
.devm01-footer-cta{
	background:linear-gradient(135deg,var(--c-deep) 0%,var(--c-primary) 100%);
}
.devm01-footer-cta__inner{
	padding:48px 0;
}
.devm01-footer__main{
	grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);
	gap:42px;
	align-items:start;
	padding:58px 0 50px;
}
.devm01-footer__brand p{
	margin:18px 0 24px;
	font-size:16px;
	line-height:1.75;
}
.devm01-footer__family select{
	height:42px;
	width:220px;
}
.devm01-footer__cs{
	min-height:0;
	padding:20px 22px;
	border-radius:18px;
	background:rgba(255,255,255,.045);
}
.devm01-footer__cs span{
	font-size:16px;
	letter-spacing:.1em;
}
.devm01-footer__cs strong{
	margin:10px 0 8px;
	font-size:23px;
	line-height:1.05;
	letter-spacing:-.03em;
}
.devm01-footer__cs p{
	margin:0 0 10px;
	font-size:16px;
	line-height:1.55;
}
.devm01-footer__cs a{
	display:inline-block;
	max-width:100%;
	overflow-wrap:anywhere;
	font-size:16px;
}
.devm01-footer__bottom{
	padding:22px 0 28px;
}
.devm01-footer__policy{
	margin-bottom:12px;
}
.devm01-footer__copy{
	margin-top:10px;
}
@media (max-width:1180px){

	.devm01-footer__main{
		grid-template-columns:1fr;
		gap:34px;
	}
	.devm01-footer__cs{
		max-width:none;
		display:grid;
		grid-template-columns:auto auto 1fr;
		align-items:center;
		gap:10px 16px;
	}
	.devm01-footer__cs span{
		grid-column:1/-1;
	}
	.devm01-footer__cs strong,.devm01-footer__cs p,.devm01-footer__cs a{
		margin:0;
	}
}
@media (max-width:900px){
	.devm01-footer-cta__inner{
		padding:42px 0;
	}
}
@media (max-width:768px){
	.devm01-footer-breathing{
		height:70px;
	}
	.devm01-footer__main{
		padding:44px 0;
	}
	.devm01-footer__cs{
		display:block;
		padding:20px;
	}
	.devm01-footer__cs strong{
		margin:10px 0 8px;
		font-size:22px;
	}
}
/* QA polish: breathing belongs above CTA; CTA and footer main stay attached */
.devm01-footer-breathing{
	height:112px;
	background:linear-gradient(180deg,var(--c-bg) 0%,var(--devm01-gray-100) 100%);
}
.devm01-footer-cta{
	margin:0;
}
.devm01-footer-cta + .devm01-footer__main{
	margin-top:0;
	padding-top:42px;
}
@media (max-width:900px){
	.devm01-footer-breathing{
		height:84px;
	}
	.devm01-footer-cta + .devm01-footer__main{
		padding-top:34px;
	}
}
@media (max-width:768px){
	.devm01-footer-breathing{
		height:64px;
	}
	.devm01-footer-cta + .devm01-footer__main{
		padding-top:28px;
	}
}
.devm01-main-contact + .devm01-footer-breathing{
	display:none;
}
.devm01-main-contact + .devm01-footer{
	margin-top:0;
}
/* Mobile QA: footer CTA/menu breathing */
@media (max-width:768px){

	.devm01-footer-breathing{
		height:58px;
	}
	.devm01-footer-cta__inner{
		padding:34px 0 32px !important;
	}
	.devm01-footer-cta h2{
		font-size:24px;
		line-height:1.34;
	}
	.devm01-footer-cta p{
		margin-top:10px;
		font-size:16px;
		line-height:1.65;
	}
	.devm01-footer-cta__actions{
		margin-top:20px;
		gap:8px;
	}
	.devm01-footer-cta .devm01-btn{
		height:44px;
	}
	.devm01-footer__main{
		gap:30px;
		padding-top:38px !important;
		padding-bottom:36px !important;
	}
	.devm01-footer__brand p{
		margin:14px 0 18px;
	}
	.devm01-footer__bottom{
		padding:20px 0 24px;
	}
}
/* QA: PC quick menu expands on hover,
mobile keeps sticky/simple controls */
@media (min-width:769px){

	.devm01-quick-cta{
		right:24px;
		bottom:32px;
		z-index:1240;
		align-items:flex-end;
		gap:10px;
	}
	.devm01-quick-cta a,
.devm01-quick-cta button,
.devm01-quick-cta__item{

			width:54px;

			min-width:54px;

			height:54px;

			padding:0;

			justify-content:flex-start;

			gap:9px;

			overflow:hidden;

			border-radius:999px;

			white-space:nowrap;

			transform:translateX(0);

			transition:width .28s var(--devm01-ease),
padding .28s var(--devm01-ease),
transform .24s var(--devm01-ease),
background .24s var(--devm01-ease),
color .24s var(--devm01-ease),
box-shadow .24s var(--devm01-ease);

	}
	.devm01-quick-cta a .fa,
.devm01-quick-cta button .fa{
		flex:0 0 54px;
		width:54px;
		text-align:center;
		font-size:18px;
		line-height:54px;
	}
	.devm01-quick-cta a span,
.devm01-quick-cta button span{
		opacity:0;
		max-width:0;
		transform:translateX(8px);
		transition:opacity .2s var(--devm01-ease),
max-width .28s var(--devm01-ease),
transform .28s var(--devm01-ease);
	}
	.devm01-quick-cta a:hover,
.devm01-quick-cta button:hover{
		width:146px;
		padding-right:20px;
		transform:translateX(-4px);
	}
	.devm01-quick-cta a:hover span,
.devm01-quick-cta button:hover span{
		opacity:1;
		max-width:60px;
		transform:translateX(0);
	}
}


/* 테마 설정에 주소를 입력하신 SNS 채널입니다. 입력하지 않으시면 표시되지 않습니다. */
.devm01-footer__sns{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}
.devm01-footer__sns a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 50%;
	background: rgba(255,255,255,.06);
	color: rgba(255,255,255,.72);
	font-size: 16px;
	transition: border-color var(--devm01-duration) var(--devm01-ease),
background var(--devm01-duration) var(--devm01-ease),
color var(--devm01-duration) var(--devm01-ease);
}
.devm01-footer__sns a:hover{
	border-color: var(--c-accent);
	background: rgba(255,255,255,.12);
	color: var(--c-bg);
}
.devm01-footer__sns-svg{
	display: block;
}
