@charset "UTF-8";

/**
 * SUNSINS Corporate Front Page v5
 * sunsins.co.jp / SWELL child theme
 */

.ssco-front {
	--ssco-ink: #282b31;
	--ssco-sub: #626873;
	--ssco-line: #ece5dc;
	--ssco-paper: #ffffff;
	--ssco-soft: #fbf8f4;
	--ssco-warm: #fff8f2;
	--ssco-accent: #ed7665;
	--ssco-accent-dark: #d85f50;
	--ssco-radius: 20px;
	--ssco-shadow: 0 8px 28px rgba(42,34,27,.07);
	color: var(--ssco-ink);
	background: var(--ssco-paper);
	font-feature-settings: "palt";
}

.ssco-front * { box-sizing: border-box; }
.ssco-front img { max-width: 100%; }

.ssco-container {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
}

.ssco-kicker {
	margin: 0 0 12px;
	color: var(--ssco-accent-dark);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
}

.ssco-pc-only { display: inline; }

.ssco-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 24px;
	border-radius: 999px;
	text-decoration: none !important;
	font-weight: 700;
	transition: transform .2s ease, background-color .2s ease;
}

.ssco-btn:hover { transform: translateY(-1px); }

.ssco-btn--primary {
	background: var(--ssco-accent);
	color: #fff !important;
}

.ssco-btn--primary:hover { background: var(--ssco-accent-dark); }

/* Hero */
.ssco-hero {
	padding: 38px 0 52px;
	background: linear-gradient(105deg,#fffaf5 0%,#fff 48%,#f8f5ef 100%);
}

.ssco-hero__grid {
	display: grid;
	grid-template-columns: .82fr 1.35fr;
	align-items: center;
	gap: 44px;
}

.ssco-hero__copy h1 {
	margin: 0 0 22px;
	font-size: clamp(36px,4vw,54px);
	line-height: 1.22;
	letter-spacing: -.025em;
}

.ssco-lead {
	max-width: 520px;
	margin: 0 0 30px;
	font-size: 18px;
	line-height: 2;
}

.ssco-hero__media {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 26px;
	box-shadow: var(--ssco-shadow);
	background: #f4eee7;
}

.ssco-hero__media::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	z-index: 1;
	width: 24%;
	pointer-events: none;
	background: linear-gradient(
		to right,
		rgba(255,255,255,.98) 0%,
		rgba(255,255,255,.78) 30%,
		rgba(255,255,255,.35) 65%,
		rgba(255,255,255,0) 100%
	);
}

.ssco-hero__img {
	display: block;
	width: 100%;
	height: 440px;
	object-fit: cover;
	object-position: center;
}

/* Three points */
.ssco-points {
	border-block: 1px solid var(--ssco-line);
	background: var(--ssco-soft);
}

.ssco-points__grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	padding-block: 30px;
}

.ssco-point {
	display: flex;
	gap: 18px;
	padding: 8px 30px;
	border-right: 1px dashed #e2d5ca;
}

.ssco-point:last-child { border-right: 0; }

.ssco-point__mark {
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border: 1px solid var(--ssco-accent);
	border-radius: 50%;
	color: var(--ssco-accent-dark);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
}

.ssco-point h2 {
	margin: 0 0 6px;
	font-size: 17px;
}

.ssco-point p {
	margin: 0;
	color: var(--ssco-sub);
	font-size: 13px;
	line-height: 1.8;
}

/* Sections */
.ssco-section {
	padding: clamp(68px,8vw,112px) 0;
}

.ssco-section--soft { background: var(--ssco-soft); }
.ssco-section--warm { background: var(--ssco-warm); }

.ssco-split {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 64px;
	align-items: start;
}

.ssco-section__intro h2,
.ssco-company h2 {
	margin: 0 0 18px;
	font-size: clamp(30px,3vw,42px);
	line-height: 1.25;
}

.ssco-section__intro > p:last-child,
.ssco-company p {
	color: var(--ssco-sub);
	line-height: 1.9;
}

/* Making */
.ssco-process {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 18px;
}

.ssco-process article h3 {
	margin: 14px 0 6px;
	font-size: 16px;
}

.ssco-process article p {
	margin: 0;
	color: var(--ssco-sub);
	font-size: 13px;
	line-height: 1.75;
}

.ssco-card-media,
.ssco-scene__media,
.ssco-brand__media {
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
	background: #f4eee7;
}

.ssco-card-media { aspect-ratio: 4 / 3; }

.ssco-card-media img,
.ssco-scene__media img,
.ssco-brand__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Brands */
.ssco-brands {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.ssco-brand {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ssco-line);
	border-radius: var(--ssco-radius);
	box-shadow: var(--ssco-shadow);
}

.ssco-brand__media {
	aspect-ratio: 853 / 409;
	border-radius: 0;
}

.ssco-brand__body {
	padding: 24px 26px 28px;
}

.ssco-brand__en {
	margin: 0;
	font-family: Georgia,serif;
	font-size: 34px;
	color: var(--ssco-ink);
	line-height: 1;
}

.ssco-brand h3 {
	margin: 7px 0 12px;
	font-size: 18px;
}

.ssco-brand__tagline {
	margin: 0 0 8px;
	font-weight: 700;
	color: var(--ssco-ink) !important;
}

.ssco-brand__body > p:last-child {
	margin: 0;
	color: var(--ssco-sub);
	line-height: 1.8;
}

/* Works - always 3 columns */
.ssco-scenes {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 22px 18px;
}

.ssco-scene__media {
	aspect-ratio: 1 / 1;
}

.ssco-scene h3 {
	margin: 12px 0 0;
	font-size: 14px;
	text-align: center;
	line-height: 1.45;
}

.ssco-scene__link {
	display: block;
	color: inherit !important;
	text-decoration: none !important;
}

.ssco-scene__link:hover h3 {
	color: var(--ssco-accent-dark);
}

/* Shops */
.ssco-shops {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 18px;
}

.ssco-shop {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 190px;
	padding: 28px;
	border: 1px solid var(--ssco-line);
	border-radius: var(--ssco-radius);
	background: #fff;
	box-shadow: var(--ssco-shadow);
	text-align: center;
	text-decoration: none !important;
	color: var(--ssco-ink) !important;
	transition: transform .2s ease, box-shadow .2s ease;
}

.ssco-shop:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 34px rgba(42,34,27,.11);
}

.ssco-shop__label {
	margin-bottom: 12px !important;
	color: var(--ssco-accent-dark) !important;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
}

.ssco-shop strong { font-size: 18px; }

.ssco-shop span {
	margin-top: 8px;
	color: var(--ssco-sub);
}

.ssco-shop em {
	margin-top: 18px;
	color: var(--ssco-accent-dark);
	font-style: normal;
	font-weight: 700;
}

/* Company */
.ssco-company {
	padding: 74px 0;
	background: #fff;
	border-top: 1px solid var(--ssco-line);
}

.ssco-company__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 80px;
	align-items: start;
}

.ssco-company__info {
	padding: 28px 30px;
	border: 1px solid var(--ssco-line);
	border-radius: var(--ssco-radius);
	background: var(--ssco-soft);
}

.ssco-company__info dl {
	display: grid;
	grid-template-columns: 80px 1fr;
	margin: 0 0 14px;
	font-size: 14px;
}

.ssco-company__info dt { font-weight: 700; }
.ssco-company__info dd { margin: 0; }

.ssco-note {
	margin: 22px 0 0;
	font-size: 12px !important;
}

/* Tablet */
@media (max-width: 900px) {
	.ssco-hero__grid,
	.ssco-split,
	.ssco-company__grid {
		grid-template-columns: 1fr;
	}

	.ssco-hero__grid { gap: 30px; }
	.ssco-hero__media { order: -1; }
	.ssco-hero__img { height: 330px; }
	.ssco-split { gap: 34px; }

	.ssco-process {
		grid-template-columns: repeat(2,1fr);
	}

	.ssco-brands { grid-template-columns: 1fr; }
	.ssco-company__grid { gap: 32px; }
}

/* Mobile */
@media (max-width: 600px) {
	.ssco-container {
		width: min(100% - 32px,1180px);
	}

	.ssco-hero {
		padding: 14px 0 42px;
	}

	.ssco-hero__grid { gap: 24px; }

	.ssco-hero__media {
		border-radius: 18px;
	}

	.ssco-hero__media::before {
		width: 14%;
		background: linear-gradient(
			to right,
			rgba(255,255,255,.72) 0%,
			rgba(255,255,255,.28) 55%,
			rgba(255,255,255,0) 100%
		);
	}

	.ssco-hero__img {
		height: 220px;
		object-position: center;
	}

	.ssco-kicker {
		font-size: 10px;
		margin-bottom: 9px;
	}

	.ssco-hero__copy h1 {
		margin-bottom: 14px;
		font-size: 28px;
		line-height: 1.35;
		letter-spacing: -.015em;
	}

	.ssco-lead {
		margin-bottom: 24px;
		font-size: 14px;
		line-height: 1.9;
	}

	.ssco-pc-only { display: none; }

	.ssco-btn {
		min-height: 44px;
		padding-inline: 20px;
		font-size: 14px;
	}

	.ssco-points__grid {
		grid-template-columns: 1fr;
		padding-block: 10px;
	}

	.ssco-point {
		border-right: 0;
		border-bottom: 1px dashed #e2d5ca;
		padding: 17px 2px;
	}

	.ssco-point:last-child { border-bottom: 0; }

	.ssco-point__mark {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}

	.ssco-point h2 { font-size: 15px; }
	.ssco-point p { font-size: 12px; }

	.ssco-section { padding: 62px 0; }

	.ssco-section__intro h2,
	.ssco-company h2 {
		font-size: 28px;
	}

	.ssco-process {
		grid-template-columns: 1fr 1fr;
		gap: 20px 14px;
	}

	.ssco-process article h3 { font-size: 14px; }
	.ssco-process article p { font-size: 12px; }

	.ssco-brand__body {
		padding: 20px 20px 24px;
	}

	.ssco-brand__en { font-size: 30px; }

	/* 3 columns retained on mobile */
	.ssco-scenes {
		grid-template-columns: repeat(3,1fr);
		gap: 16px 8px;
	}

	.ssco-scene h3 {
		margin-top: 8px;
		font-size: 11px;
		line-height: 1.35;
	}

	.ssco-shops { grid-template-columns: 1fr; }

	.ssco-shop {
		min-height: 150px;
		padding: 22px;
	}

	.ssco-company { padding: 62px 0; }

	.ssco-company__info {
		padding: 22px;
	}
}

@media (max-width: 390px) {
	.ssco-scenes {
		gap: 14px 6px;
	}

	.ssco-scene h3 {
		font-size: 10.5px;
	}
}
.ssco-scene__link{
	display:block;
	color:inherit !important;
	text-decoration:none !important;
}

.ssco-scene__media{
	position:relative;
	overflow:hidden;
}

.ssco-scene__media::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(255,255,255,0);
	transition:background .25s ease;
	pointer-events:none;
}

.ssco-scene__link:hover .ssco-scene__media::after{
	background:rgba(255,255,255,.28);
}

.ssco-scene__link:hover h3{
	color:var(--ssco-accent-dark);
}

.ssco-scene__media img{
	transition:transform .3s ease;
}

.ssco-scene__link:hover .ssco-scene__media img{
	transform:scale(1.025);
}