@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/* ========================================
   A1. DESIGN TOKENS
   ======================================== */
:root {
	/* Colors — from Figma design export */
	--uplift-navy: #05143C;
	--uplift-navy-cta: #05143C;
	--uplift-text: #1E1E1E;
	--uplift-text-muted: #AAAAAA;
	--uplift-bg: #FFFFFF;
	--uplift-bg-alt: #F6FAFF;
	--uplift-bg-about: #DFE2F2;
	--uplift-border: #CECFD4;
	--uplift-accent: #466EDC;
	--uplift-required: #ED3333;
	--uplift-white: #FFFFFF;

	/* Typography — Figma specs */
	--uplift-font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
	--uplift-font-family-footer: "Inter", sans-serif;
	--uplift-font-size-xs: 0.75rem;    /* 12px */
	--uplift-font-size-sm: 0.875rem;   /* 14px */
	--uplift-font-size-old-base: 1rem;   /* 14px */
	--uplift-font-size-base: 1.125rem;     /* 16px — design body */
	--uplift-font-size-md: 0.9375rem;  /* 15px — body small */
	--uplift-font-size-lg: 1.125rem;   /* 18px — card title, hero lead */
	--uplift-font-size-xl: 1.5rem;     /* 24px — H3 service */
	--uplift-font-size-2xl: 2.25rem;   /* 36px — H2 sections */
	--uplift-font-size-3xl: 3.5rem;    /* 56px — H1 hero */
	--uplift-line-height: 1.8;         /* 180% — design body */
	--uplift-line-height-heading: 1.3; /* 130% — headings */

	/* Spacing */
	--uplift-space-xs: 0.25rem;  /* 4px */
	--uplift-space-sm: 0.5rem;   /* 8px */
	--uplift-space-md: 1rem;     /* 16px */
	--uplift-space-lg: 1.5rem;   /* 24px */
	--uplift-space-xl: 2.5rem;   /* 40px — design gap */
	--uplift-space-2xl: 5rem;    /* 80px */
	--uplift-space-3xl: 6rem;    /* 96px */
	--uplift-space-4xl: 10rem;   /* 160px */

	/* Radius — from Figma */
	--uplift-radius-btn: 2px;
	--uplift-radius-cta: 4px;
	--uplift-radius-sm: 0px;
	--uplift-radius-full: 9999px;

	/* Shadows (minimal — flat design) */
	--uplift-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
	--uplift-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);

	/* Layout — Figma: 1152px content area */
	--uplift-container-max: 1152px;
	--uplift-side-padding: 1.5rem; /* 24px mobile */

	/* Transitions */
	--uplift-transition-fast: 150ms ease-out;
	--uplift-transition-base: 250ms ease-out;
	--uplift-transition-slow: 350ms ease-out;
}

/* ========================================
   A2. BASE STYLES + COCOON OVERRIDES
   ======================================== */
body {
	font-family: var(--uplift-font-family);
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
	background-color: var(--uplift-bg-alt);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--uplift-accent);
	text-decoration: none;
	transition: color var(--uplift-transition-fast);
}

a:hover {
	color: var(--uplift-text);
}

a:focus-visible {
	outline: 2px solid var(--uplift-navy);
	outline-offset: 2px;
}

/* ========================================
   A3. TYPOGRAPHY SYSTEM
   ======================================== */

/* Mobile-first sizes (scaled down from desktop Figma values) */
h1, .uplift-h1 {
	font-size: 1.75rem;
	font-weight: 600;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-text);
	margin-top: 0;
}

h2, .uplift-h2 {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-text);
	margin-top: 0;
}

h3, .uplift-h3 {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-text);
	margin-top: 0;
}

.uplift-text-muted {
	color: var(--uplift-text-muted);
}

/* Desktop typography — matches Figma */
@media screen and (min-width: 1024px) {
	h1, .uplift-h1 {
		font-size: var(--uplift-font-size-3xl); /* 56px */
	}

	h2, .uplift-h2 {
		font-size: var(--uplift-font-size-2xl); /* 36px */
	}

	h3, .uplift-h3 {
		font-size: var(--uplift-font-size-xl); /* 24px */
	}
}

/* ========================================
   A4. LAYOUT UTILITIES
   ======================================== */

/* Container — 1152px content + safe padding */
.uplift-container {
	width: 100%;
	max-width: calc(var(--uplift-container-max) + var(--uplift-side-padding) * 2);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--uplift-side-padding);
	padding-right: var(--uplift-side-padding);
}

/* Section spacing */
.uplift-section {
	padding-top: var(--uplift-space-xl);
	padding-bottom: var(--uplift-space-xl);
}

.uplift-section--alt {
	background-color: var(--uplift-bg-alt);
}

.uplift-section--navy {
	background-color: var(--uplift-navy);
	color: var(--uplift-white);
}

/* Grid */
.uplift-grid {
	display: grid;
	gap: var(--uplift-space-md);
}

.uplift-grid--2col {
	grid-template-columns: 1fr;
}

.uplift-grid--3col {
	grid-template-columns: 1fr;
}

.uplift-grid--4col {
	grid-template-columns: 1fr;
}

@media screen and (min-width: 960px) {
	.uplift-grid--2col {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--uplift-space-xl);
	}

	.uplift-grid--3col {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--uplift-space-xl);
	}
}

@media screen and (min-width: 1024px) {
	.uplift-grid--3col {
		grid-template-columns: repeat(3, 1fr);
	}

	.uplift-grid--4col {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Image + Text Split */
.uplift-split {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-lg);
}

.uplift-split__media,
.uplift-split__content {
	width: 100%;
}
.uplift-split__media img {
	width: 100%;
	height: auto;
	display: block;
}

@media screen and (min-width: 960px) {
	.uplift-split {
		flex-direction: row;
		align-items: center;
		gap: var(--uplift-space-xl);
	}

	.uplift-split__media,
	.uplift-split__content {
		flex: 1;
	}

	.uplift-split--reverse {
		flex-direction: row-reverse;
	}
}

/* Visibility helpers */
.uplift-hide-mobile {
	display: none;
}

.uplift-hide-desktop {
	display: block;
}

@media screen and (min-width: 960px) {
	.uplift-hide-mobile {
		display: block;
	}

	.uplift-hide-desktop {
		display: none;
	}
}

/* Text alignment */
.uplift-text-center {
	text-align: center;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* ========================================
   B1. HEADER / NAVBAR
   Used on: ALL pages
   ======================================== */
.uplift-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background-color: transparent;
	transform: translateY(0);
	will-change: transform;
	transition: background-color var(--uplift-transition-base), box-shadow var(--uplift-transition-base), transform 300ms ease;
}

.uplift-header--scrolled {
	background-color: var(--uplift-bg-alt);
	box-shadow: var(--uplift-shadow-sm);
}

/* Hide on scroll down, show on scroll up */
.uplift-header--hidden {
	transform: translateY(-100%);
}

@media (prefers-reduced-motion: reduce) {
	.uplift-header {
		transition: background-color var(--uplift-transition-base), box-shadow var(--uplift-transition-base);
	}
	.uplift-header--hidden {
		transform: none;
	}
}

/* Inner pages: dark header from the start (light bg) */
.uplift-header--dark {
	background-color: var(--uplift-bg-alt);
}

/* Mobile: padding 15px 24px */
.uplift-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 24px;
	height: 72px;
}

/* Desktop: Figma padding 15px 40px, height 96px */
@media screen and (min-width: 960px) {
	.uplift-header__inner {
		padding: 15px 40px;
		height: 96px;
	}
}

/* Logo image — white on hero via filter, original when scrolled */
.uplift-header__logo {
	display: flex;
	align-items: center;
	text-decoration: none;
}

/* Logo.png is white — no filter needed on hero */
.uplift-header__logo-img {
	height: 40px;
	width: auto;
	transition: filter var(--uplift-transition-base);
}

/* Scroll / inner pages: invert white logo to dark for white bg */
.uplift-header--scrolled .uplift-header__logo-img,
.uplift-header--dark .uplift-header__logo-img {
	filter: brightness(0);
}

/* Desktop nav — Figma: gap 24px between links, 40px before CTA button */
.uplift-header__nav {
	display: none;
	align-items: center;
	gap: 8px;
}

.uplift-header__cta {
	margin-left: 32px;
}

/* Figma: padding 16px, 15px/600/140%, drop-shadow, white on hero */
.uplift-header__nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	height: 48px;
	font-size: var(--uplift-font-size-old-base);
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-white);
	text-decoration: none;
	transition: color var(--uplift-transition-fast), filter var(--uplift-transition-fast);
}

.uplift-header__nav a:hover {
	opacity: 0.8;
}

.uplift-header__nav .uplift-header__cta:hover {
	opacity: 1;
}

.uplift-header--scrolled .uplift-header__nav a,
.uplift-header--dark .uplift-header__nav a {
	color: var(--uplift-text);
	filter: none;
}

.uplift-header--scrolled .uplift-header__nav a:hover,
.uplift-header--dark .uplift-header__nav a:hover {
	color: var(--uplift-accent);
	opacity: 1;
}

/* Figma: border 1px white, radius 2px, padding 0 24px, 16px/600 */
.uplift-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 1.5rem;
	height: 48px;
	border: 1px solid var(--uplift-white);
	color: var(--uplift-white);
	font-size: var(--uplift-font-size-base);
	font-weight: 600;
	border-radius: var(--uplift-radius-btn);
	transition: all var(--uplift-transition-fast);
}

.uplift-header__cta:hover {
	background-color: var(--uplift-white);
	color: var(--uplift-navy);
	border-color: var(--uplift-white);
}

.uplift-header--scrolled .uplift-header__cta,
.uplift-header--dark .uplift-header__cta {
	border-color: var(--uplift-navy);
	color: var(--uplift-navy);
}

.uplift-header--scrolled .uplift-header__cta:hover,
.uplift-header--dark .uplift-header__cta:hover {
	background-color: var(--uplift-navy);
	color: var(--uplift-white) !important;
	border-color: var(--uplift-navy);
}

/* Hamburger (mobile) */
.uplift-header__hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 10px;
	background: none;
	border: none;
	cursor: pointer;
}

.uplift-header__hamburger span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--uplift-white);
	transition: transform var(--uplift-transition-base), opacity var(--uplift-transition-base), background-color var(--uplift-transition-base);
}

.uplift-header--scrolled .uplift-header__hamburger span,
.uplift-header--dark .uplift-header__hamburger span {
	background-color: var(--uplift-text);
}

/* Hamburger open state */
.uplift-header__hamburger[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.uplift-header__hamburger[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.uplift-header__hamburger[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Mobile menu panel */
.uplift-mobile-menu {
	position: fixed;
	top: 0;
	right: -100%;
	width: 80%;
	max-width: 320px;
	height: 100vh;
	background-color: var(--uplift-white);
	box-shadow: var(--uplift-shadow-md);
	z-index: 999;
	padding: 5rem var(--uplift-space-lg) var(--uplift-space-lg);
	transition: right var(--uplift-transition-slow);
	overflow-y: auto;
}

.uplift-mobile-menu[aria-hidden="false"] {
	right: 0;
}

.uplift-mobile-menu__link {
	display: block;
	padding: var(--uplift-space-md) 0;
	font-size: var(--uplift-font-size-lg);
	color: var(--uplift-text);
	text-decoration: none;
	border-bottom: 1px solid var(--uplift-border);
}

.uplift-mobile-menu__link:hover {
	color: var(--uplift-navy);
}

/* Mobile menu overlay */
.uplift-mobile-overlay {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: 998;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--uplift-transition-base), visibility var(--uplift-transition-base);
}

.uplift-mobile-overlay--active {
	opacity: 1;
	visibility: visible;
}

/* Body offset for fixed header — only on non-hero pages */
body.uplift-has-header {
	padding-top: 72px;
}

@media screen and (min-width: 960px) {
	body.uplift-has-header {
		padding-top: 96px;
	}
}

/* Homepage: header overlays hero, no offset */
body.uplift-page-top.uplift-has-header {
	padding-top: 0;
}

@media screen and (min-width: 960px) {
	.uplift-header__nav {
		display: flex;
	}

	.uplift-header__hamburger {
		display: none;
	}
}

/* ========================================
   B2. FOOTER (COPYRIGHT)
   Figma mobile: bg #F2F2F2, 12px Inter/400/160%, #AAAAAA, padding 16px 0 24px
   ======================================== */
.uplift-footer {
	padding: 1rem 0 1.5rem;
	text-align: center;
	font-family: var(--uplift-font-family-footer);
	font-size: var(--uplift-font-size-xs);
	font-weight: 400;
	line-height: 1.6;
	color: var(--uplift-text-muted);
	background-color: var(--uplift-bg-alt);
}

@media screen and (min-width: 960px) {
	.uplift-footer {
		background-color: var(--uplift-bg-alt); /* desktop: #F6FAFF */
	}
}

/* ========================================
   B3. CTA FOOTER BAR
   Figma mobile: padding 48px 24px, bg #05143C, no radius, stacked
   ======================================== */
.uplift-cta-bar {
	padding: 0;
}

.uplift-cta-bar__inner {
	background-color: var(--uplift-navy-cta);
	color: var(--uplift-white);
	padding: 48px 24px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 32px;
}

/* Figma mobile: 28px/600, white */
.uplift-cta-bar__heading {
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--uplift-white);
	margin: 0;
}

/* Figma: 16px/300/180%, white, gap 16px from heading */
.uplift-cta-bar__text {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-white);
	margin: 0;
}

/* Figma: button bg white, text #05143C */
.uplift-cta-bar .uplift-btn--white {
	color: var(--uplift-navy-cta);
}

/* Desktop: rounded card inside padded wrapper */
@media screen and (min-width: 960px) {
	.uplift-cta-bar {
		padding: 0 var(--uplift-side-padding) 128px;
	}

	.uplift-cta-bar__inner {
		max-width: var(--uplift-container-max);
		margin: 0 auto;
		border-radius: var(--uplift-radius-cta); /* 4px */
		flex-direction: row;
		align-items: center;
		padding: 0 80px;
		height: 240px;
		gap: 0;
	}

	.uplift-cta-bar__heading {
		font-size: var(--uplift-font-size-2xl); /* 36px */
		flex: 0 0 auto;
		margin-right: 40px;
		white-space: nowrap;
	}

	.uplift-cta-bar__text {
		flex: 1;
		max-width: 390px;
	}

	.uplift-cta-bar .uplift-btn--white {
		flex: 0 0 auto;
		margin-left: auto;
	}
}

/* ========================================
   B4. PAGE TITLE HEADER
   Used on: 事業紹介, 事例紹介, 会社情報, 採用情報, お問い合わせ
   ======================================== */
.uplift-page-title {
	padding-top: var(--uplift-space-xl);
	padding-bottom: var(--uplift-space-lg);
}

.uplift-page-title__heading {
	font-size: var(--uplift-font-size-2xl);
	font-weight: 700;
	line-height: var(--uplift-line-height-heading);
	margin-bottom: var(--uplift-space-md);
}

.uplift-page-title__description {
	font-size: var(--uplift-font-size-base);
	color: var(--uplift-text);
	line-height: var(--uplift-line-height);
	max-width: 65ch;
}

@media screen and (min-width: 960px) {
	.uplift-page-title {
		display: flex;
		align-items: flex-start;
		gap: var(--uplift-space-xl);
	}

	.uplift-page-title__heading {
		font-size: var(--uplift-font-size-3xl);
		white-space: nowrap;
		margin-bottom: 0;
	}
}

/* ========================================
   B5. BUTTONS
   ======================================== */

/* Button base — Figma: padding 16px 24px, radius 2px, 16px/600 */
.uplift-btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 1rem 1.5rem;
	min-width: 160px;
	font-family: var(--uplift-font-family);
	font-size: var(--uplift-font-size-base);
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--uplift-radius-btn);
	cursor: pointer;
	transition: all var(--uplift-transition-fast);
	line-height: 1;
}

.uplift-btn:focus-visible {
	outline: 2px solid var(--uplift-navy);
	outline-offset: 2px;
}

/* Primary — Figma: bg #05143C, text white */
.uplift-btn--primary {
	background-color: var(--uplift-navy);
	color: var(--uplift-white);
	border-color: var(--uplift-navy);
}

.uplift-btn--primary:hover {
	background-color: #466EDC;
	color: var(--uplift-white);
	border-color: var(--uplift-accent);
}

/* White filled — Figma CTA: bg white, text #05143C */
.uplift-btn--white {
	background-color: var(--uplift-white);
	color: var(--uplift-navy-cta);
	border-color: var(--uplift-white);
}

.uplift-btn--white:hover {
	background-color: #466EDC;
	color: var(--uplift-white);
	border-color: var(--uplift-accent);
}

/* Outlined on dark bg — header */
.uplift-btn--outline-white {
	background-color: transparent;
	color: var(--uplift-white);
	border-color: var(--uplift-white);
}

.uplift-btn--outline-white:hover {
	background-color: #466EDC;
	color: var(--uplift-white);
}

/* Small variant */
.uplift-btn--sm {
	padding: 0.5rem 1.25rem;
	font-size: var(--uplift-font-size-sm);
	min-width: auto;
}

/* ========================================
   B6. FORM STYLES
   Used on: お問い合わせ, 採用情報
   ======================================== */
.uplift-form {
	max-width: 520px;
	margin: 0 auto;
}

.uplift-form__group {
	margin-bottom: var(--uplift-space-lg);
}

.uplift-form__label {
	display: flex;
	align-items: center;
	gap: var(--uplift-space-xs);
	font-size: var(--uplift-font-size-sm);
	font-weight: 500;
	color: var(--uplift-text);
	margin-bottom: var(--uplift-space-sm);
}

.uplift-form__required {
	font-size: var(--uplift-font-size-xs);
	color: var(--uplift-required);
}

.uplift-form__input,
.uplift-form__textarea {
	width: 100%;
	padding: 0.75rem 0;
	font-family: var(--uplift-font-family);
	font-size: var(--uplift-font-size-base);
	color: var(--uplift-text);
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--uplift-border);
	border-radius: 0;
	transition: border-color var(--uplift-transition-fast);
	-webkit-appearance: none;
}

.uplift-form__input::placeholder,
.uplift-form__textarea::placeholder {
	color: var(--uplift-text-muted);
}

.uplift-form__input:focus,
.uplift-form__textarea:focus {
	outline: none;
	border-bottom-color: var(--uplift-navy);
}

.uplift-form__textarea {
	min-height: 120px;
	resize: vertical;
}

.uplift-form__submit {
	text-align: center;
	margin-top: var(--uplift-space-xl);
}

/* Entry form variant (light blue bg) */
.uplift-form-section {
	background-color: var(--uplift-bg-about);
	padding: var(--uplift-space-xl) var(--uplift-side-padding);
}

.uplift-form-section .uplift-form__input,
.uplift-form-section .uplift-form__textarea {
	background-color: var(--uplift-white);
	border: 1px solid var(--uplift-border);
	border-radius: var(--uplift-radius-btn);
	padding: 0.75rem 1rem;
}

.uplift-form-section .uplift-form__input:focus,
.uplift-form-section .uplift-form__textarea:focus {
	border-color: var(--uplift-navy);
}

/* ========================================
   C1. HOMEPAGE — HERO
   Figma: 1440x820, background image, fallback gradient
   ======================================== */
/* Figma mobile: 390x480, padding 96px 24px 48px */
.uplift-hero {
	position: relative;
	background-color: #1a3a5c;
	background-image: var(--uplift-hero-bg, none);
	background-size: cover;
	background-position: center;
	color: var(--uplift-white);
	padding: 96px 24px 48px;
	overflow: hidden;
	min-height: 480px;
	display: flex;
	align-items: flex-start;
}

.uplift-hero__inner {
	position: relative;
	width: 100%;
	max-width: var(--uplift-container-max);
	margin: 0 auto;
	z-index: 1;
}

/* Figma mobile: 32px/600/130% */
.uplift-hero__title {
	font-size: 2rem;
	font-weight: 600;
	line-height: var(--uplift-line-height-heading);
	letter-spacing: -0.03em;
	color: var(--uplift-white);
	margin: 0 0 var(--uplift-space-lg); /* gap 24px */
}

/* Figma mobile: 16px/600/180% */
.uplift-hero__lead {
	font-size: var(--uplift-font-size-base); /* 16px */
	font-weight: 600;
	line-height: var(--uplift-line-height); /* 180% */
	color: var(--uplift-white);
	margin: 0;
}

/* Hero logo watermark — bottom-right, cropped */
.uplift-hero__watermark {
	position: absolute;
	right: 0%;
	bottom: -6%;
	width: 65%;
	height: auto;
	opacity: 0.35;
	pointer-events: none;
	user-select: none;
	object-fit: contain;
}

@media screen and (min-width: 960px) {
	.uplift-hero {
		min-height: 680px;
		padding: 8rem 40px var(--uplift-space-2xl);
		align-items: center;
	}

	.uplift-hero__title {
		font-size: var(--uplift-font-size-3xl); /* 56px */
	}

	.uplift-hero__lead {
		font-size: var(--uplift-font-size-lg); /* 18px */
		line-height: 2; /* 200% desktop */
		max-width: 859px;
	}

	.uplift-hero__watermark {
		width: 45%;
		max-width: 550px;
		bottom: -10%;
	}
}

@media screen and (min-width: 1024px) {
	.uplift-hero__watermark {
		width: 45%;
		max-width: 650px;
		right: 0;
		bottom: -65px;
	}
}

/* ========================================
   C1. HOMEPAGE — SECTION HEADINGS
   Figma: 36px/600/130%
   ======================================== */
.uplift-section__heading {
	font-weight: 600;
	margin-bottom: var(--uplift-space-lg);
}

/* ========================================
   C1. HOMEPAGE — SERVICES (事業内容)
   Figma mobile: padding 48px 24px, gap 48px, stacked column
   ======================================== */
.uplift-section--services {
	padding: 48px 0;
}

.uplift-section--services .uplift-container {
	padding-left: 24px;
	padding-right: 24px;
}

@media screen and (min-width: 960px) {
	.uplift-section--services .uplift-container {
		padding-left: var(--uplift-side-padding);
		padding-right: var(--uplift-side-padding);
	}
}

/* Mobile: stacked, gap 48px between left block and service blocks */
.uplift-section--services .uplift-split {
	gap: 48px;
}

/* Figma mobile: H2 28px/600, gap 16px to desc, gap 32px to button */
.uplift-services-left .uplift-section__heading {
	font-size: 1.75rem;
	margin-bottom: 1rem; /* 16px */
}

.uplift-services-left {
	max-width: 420px;
}

.uplift-services-left p {
	font-size: var(--uplift-font-size-base); /* 16px */
	font-weight: 300;
	line-height: var(--uplift-line-height); /* 180% */
}

.uplift-services-left .uplift-btn {
	margin-top: 2rem; /* 32px */
}

/* Figma mobile: blocks with border-bottom, padding-bottom 16px before border, gap 32px between */
.uplift-service-block {
	padding-bottom: 1rem; /* 16px — space before border */
	border-bottom: 1px solid #B4B4B4;
}

.uplift-service-block + .uplift-service-block {
	margin-top: 2rem; /* 32px between blocks */
}

/* Figma mobile: H3 22px/600 */
.uplift-service-block__title {
	font-size: 1.375rem; /* 22px */
	font-weight: 600;
	line-height: 1.5;
	margin-bottom: 0.75rem; /* 12px */
}

/* Figma: 16px/300/180% */
.uplift-service-block__text {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	color: var(--uplift-text);
	line-height: var(--uplift-line-height);
	margin: 0;
}

/* Desktop */
@media screen and (min-width: 960px) {
	.uplift-section--services {
		padding: var(--uplift-space-2xl) var(--uplift-side-padding);
	}

	.uplift-section--services .uplift-split {
		gap: var(--uplift-space-xl);
	}

	.uplift-services-left .uplift-section__heading {
		font-size: var(--uplift-font-size-2xl); /* 36px */
	}

	.uplift-service-block__title {
		font-size: var(--uplift-font-size-xl); /* 24px */
	}
}

@media screen and (min-width: 1200px) {
	.uplift-section--services {
		padding-top: var(--uplift-space-4xl);
		padding-bottom: var(--uplift-space-2xl);
	}

	.uplift-section--services .uplift-split {
		gap: 10rem;
	}
}

/* ========================================
   C1. HOMEPAGE — ABOUT (私たちについて)
   Figma mobile: padding 48px 24px, gap 48px, stacked, image bg #E4E3E9
   ======================================== */
.uplift-section--about {
	padding: 48px 0;
}

.uplift-section--about .uplift-container {
	padding-left: 24px;
	padding-right: 24px;
}

/* Mobile: stacked, gap 48px */
.uplift-section--about .uplift-split {
	gap: 48px;
}

/* Figma mobile: image container bg #E4E3E9, 342x241.7 */
.uplift-about-image {
	background-color: #E4E3E9;
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 342 / 242;
}

.uplift-about-image img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/* Figma mobile: H2 28px/600, gap 16px to body, gap 32px to button */
.uplift-section--about h2 {
	font-size: 1.75rem; /* 28px */
	margin-bottom: 1rem; /* 16px */
}

.uplift-section--about p {
	font-size: var(--uplift-font-size-base); /* 16px */
	font-weight: 300;
	line-height: var(--uplift-line-height); /* 180% */
}

/* Figma mobile: button bg #1E1E1E */
.uplift-section--about .uplift-btn {
	margin-top: 2rem; /* 32px */
	/* background-color: var(--uplift-text); */
	/* border-color: var(--uplift-text); */
}

.uplift-section--about .uplift-btn:hover {
	background-color: #466EDC;
	border-color: #466EDC;
	color: var(--uplift-white);
}

/* Desktop */
@media screen and (min-width: 960px) {
	.uplift-section--about {
		padding: var(--uplift-space-2xl) 0;
	}

	.uplift-section--about .uplift-container {
		padding-left: var(--uplift-side-padding);
		padding-right: var(--uplift-side-padding);
	}

	.uplift-section--about .uplift-split {
		gap: var(--uplift-space-xl);
	}

	.uplift-about-image {
		background-color: var(--uplift-bg-about); /* desktop: #DFE2F2 */
		aspect-ratio: 566 / 400;
		max-width: 566px;
	}

	.uplift-section--about h2 {
		font-size: var(--uplift-font-size-2xl); /* 36px */
		margin-bottom: var(--uplift-space-lg); /* 24px */
	}

	.uplift-section--about .uplift-btn {
		background-color: var(--uplift-navy); /* desktop: #05143C */
		border-color: var(--uplift-navy);
	}

	.uplift-section--about .uplift-btn:hover {
		background-color: #466EDC;
		border-color: #466EDC;
	}

	.uplift-section--about .uplift-split__media {
		flex: 1 1 50%;
	}

	.uplift-section--about .uplift-split__content {
		flex: 1 1 50%;
	}
}

@media screen and (min-width: 1101px) {
	.uplift-section--about .uplift-split__media {
		flex: 0 0 566px;
	}

	.uplift-section--about .uplift-split__content {
		flex: 0 1 439px;
	}

	.uplift-section--about .uplift-split {
		gap: 9rem; /* ~147px */
	}
}

/* ========================================
   C1. HOMEPAGE — RECRUIT (採用情報)
   Figma mobile: padding 48px 24px, gap 48px, stacked (text→image)
   ======================================== */
.uplift-section--recruit {
	padding: 48px 0;
}

.uplift-section--recruit .uplift-container {
	padding-left: 24px;
	padding-right: 24px;
}

/* Mobile: stacked, gap 48px, text first then image */
.uplift-section--recruit .uplift-split {
	gap: 48px;
}

/* Figma mobile: H2 28px/600, gap 16px to body */
.uplift-section--recruit h2 {
	font-size: 1.75rem; /* 28px */
	margin-bottom: 1rem; /* 16px */
}

/* Figma mobile: 16px/300/180% */
.uplift-section--recruit p {
	font-size: var(--uplift-font-size-lg);
	font-weight: 300;
	line-height: var(--uplift-line-height);
}

/* Figma mobile: button bg #1E1E1E, gap 32px from body */
.uplift-section--recruit .uplift-btn {
	margin-top: 2rem; /* 32px */
	/* background-color: var(--uplift-text); */
	/* border-color: var(--uplift-text); */
}

.uplift-section--recruit .uplift-btn:hover {
	background-color: #466EDC;
	border-color: #466EDC;
	color: var(--uplift-white);
}

/* Figma mobile: image 342x190, bg #5B5B5B */
.uplift-section--recruit .uplift-split__media img {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 342 / 190;
}

/* Desktop */
@media screen and (min-width: 960px) {
	.uplift-section--recruit {
		padding: 53px 0 160px;
	}

	.uplift-section--recruit .uplift-container {
		padding-left: var(--uplift-side-padding);
		padding-right: var(--uplift-side-padding);
	}

	.uplift-section--recruit .uplift-split {
		justify-content: space-between;
		align-items: flex-start;
		gap: var(--uplift-space-xl);
	}

	.uplift-section--recruit h2 {
		font-size: var(--uplift-font-size-2xl); /* 36px */
		margin-bottom: var(--uplift-space-lg); /* 24px */
	}

	.uplift-section--recruit p {
		font-size: var(--uplift-font-size-lg); /* 15px */
	}

	.uplift-section--recruit .uplift-btn {
		background-color: var(--uplift-navy);
		border-color: var(--uplift-navy);
	}

	.uplift-section--recruit .uplift-btn:hover {
		background-color: #466EDC;
		border-color: #466EDC;
	}

	.uplift-section--recruit .uplift-split__content {
		flex: 0 0 440px;
	}

	.uplift-section--recruit .uplift-split__media {
		flex: 0 0 560px;
		max-width: 560px;
	}

	.uplift-section--recruit .uplift-split__media img {
		aspect-ratio: 560 / 336;
	}
}

/* ========================================
   C1. HOMEPAGE — ABOUT (私たちについて)
   Responsive fix
   ======================================== */
@media screen and (max-width: 959px) {
	.uplift-section--about .uplift-split__media {
		max-width: 100%;
	}

	.uplift-about-image {
		max-width: 100%;
		aspect-ratio: auto;
	}

	.uplift-section--about .uplift-split__content {
		flex: 1 1 auto;
	}
}

/* ========================================
   C1. HOMEPAGE — CASE STUDIES (事例)
   Figma: 1440x1103, cards 566px, gap 20px, shadow on first
   ======================================== */
.uplift-cases-section {
	padding-top: var(--uplift-space-3xl);
	padding-bottom: var(--uplift-space-2xl);
	overflow: hidden;
}

/* 2-column header: left 420px / right 566px, gap auto */
.uplift-cases-header {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-xl);
	margin-bottom: var(--uplift-space-xl);
}

@media screen and (min-width: 960px) {
	.uplift-cases-header {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
	}

	.uplift-cases-header__left {
		flex: 0 0 420px;
	}

	.uplift-cases-header__right {
		flex: 0 0 566px;
	}
}

/* Figma: description 16px/300/180%, max-width 420px */
.uplift-cases-description {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
	margin: 0 0 var(--uplift-space-xl);
}

/* Controls: button + arrows — Figma: gap ~70px between btn and arrows */
.uplift-cases-controls {
	display: flex;
	align-items: center;
	gap: var(--uplift-space-xl);
}

/* Nav arrows — Figma: 32x32 circles, border 1.5px #466EDC, gap 16px */
.uplift-cases-nav {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.uplift-cases-nav__btn {
	width: 32px;
	height: 32px;
	border: 1.5px solid var(--uplift-accent);
	border-radius: 50%;
	background: none;
	color: var(--uplift-accent);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--uplift-transition-fast);
	padding: 0;
}

.uplift-cases-nav__btn:hover {
	background-color: #466EDC;
	color: var(--uplift-white);
}

.uplift-cases-nav__btn svg {
	display: block;
}

/* Figma: 16px/600/180%, #466EDC */
.uplift-cases-nav__counter {
	font-size: var(--uplift-font-size-base);
	font-weight: 600;
	line-height: var(--uplift-line-height);
	color: var(--uplift-accent);
	min-width: 2em;
	text-align: center;
}

/* Tags — Figma: flex wrap, gap 8px 16px, 16px/#466EDC */
.uplift-cases-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}

.uplift-tag {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-accent);
	cursor: pointer;
	transition: all var(--uplift-transition-fast);
}

.uplift-tag:hover {
	font-weight: 600;
}

/* ---- Carousel ---- */
.uplift-cases-carousel {
	padding-left: calc((100% - var(--uplift-container-max)) / 2 + var(--uplift-side-padding));
}

@media screen and (min-width: 1200px) {
	.uplift-cases-carousel {
		padding-left: calc((100vw - var(--uplift-container-max)) / 2);
	}
}

.uplift-cases-carousel__track {
	display: flex;
	gap: 20px;
	transition: transform 0.4s ease-out;
	cursor: grab;
	user-select: none;
	will-change: transform;
}

.uplift-cases-carousel__track:active {
	cursor: grabbing;
}

/* Figma: card 566x661, padding 24px, gap 16px, bg #F6FAFF */
.uplift-case-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--uplift-text);
	background-color: var(--uplift-bg-alt);
	padding: 24px;
	gap: 16px;
	flex: 0 0 566px;
	min-width: 566px;
	transition: transform var(--uplift-transition-base), box-shadow var(--uplift-transition-base);
}

.uplift-case-card {
	cursor: pointer;
}

a.uplift-case-card:hover,
.uplift-case-card:hover {
	color: var(--uplift-text);
	transform: translateY(-4px);
	box-shadow: -30px 30px 80px rgba(20, 64, 108, 0.2);
	transition: transform var(--uplift-transition-base), box-shadow var(--uplift-transition-base);
}

/* Image — Figma: 518x345 inside card (566 - 24*2 = 518) */
.uplift-case-card__image {
	overflow: hidden;
}

.uplift-case-card__image img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 518 / 345;
	transition: transform var(--uplift-transition-base);
}

a.uplift-case-card:hover .uplift-case-card__image img {
	transform: scale(1.03);
}

.uplift-case-card__placeholder {
	width: 100%;
	aspect-ratio: 518 / 345;
	background-color: #e0e4ea;
}

/* Card body — Figma: gap 40px between meta group and date */
.uplift-case-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-xl);
	flex-grow: 1;
}

/* Meta group — Figma: gap 8px between elements */
.uplift-case-card__meta {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* Figma: 16px/300/180%, #466EDC */
.uplift-case-card__category {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-accent);
}

/* Figma: 18px/600/160%, #1E1E1E */
.uplift-case-card__title {
	font-size: var(--uplift-font-size-lg);
	font-weight: 600;
	line-height: 1.6;
	color: var(--uplift-text);
	margin: 0;
}

/* Figma: 16px/300/180%, #1E1E1E */
.uplift-case-card__excerpt {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	color: var(--uplift-text);
	line-height: var(--uplift-line-height);
	margin: 0;
}

/* Figma: 14px/300/160%, #1E1E1E */
.uplift-case-card__date {
	font-size: var(--uplift-font-size-sm);
	font-weight: 300;
	line-height: 1.6;
	color: var(--uplift-text);
}

/* ---- Mobile filter tabs (hidden on desktop) ---- */
.uplift-cases-title-mobile {
	display: block;
}

.uplift-cases-title-desktop {
	display: none;
}

.uplift-cases-filter-tabs {
	display: flex;
	align-items: center;
	gap: 18px;
	padding-bottom: var(--uplift-space-lg);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	position: relative;
}

.uplift-filter-tab {
	background: none;
	border: none;
	padding: 0 0 8px;
	font-family: var(--uplift-font-family);
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: 1.3;
	color: var(--uplift-white);
	cursor: pointer;
	white-space: nowrap;
	position: relative;
	transition: all var(--uplift-transition-fast);
}

.uplift-filter-tab--active::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: #DC460F;
}

/* ---- Mobile navigation (hidden on desktop) ---- */
.uplift-cases-nav-mobile {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding-top: var(--uplift-space-lg);
}

.uplift-cases-nav-mobile__counter {
	font-size: var(--uplift-font-size-base);
	font-weight: 600;
	line-height: var(--uplift-line-height);
	color: var(--uplift-accent);
	min-width: 2em;
	text-align: center;
}

/* ---- Mobile: light bg, centered cards ---- */
@media screen and (max-width: 959px) {
	/* Section: light bg */
	.uplift-cases-section {
		padding: 48px 0;
	}

	.uplift-cases-section .uplift-container {
		padding-left: 24px;
		padding-right: 24px;
	}

	/* Mobile title */
	.uplift-cases-title-mobile {
		color: var(--uplift-text);
		font-size: 1.75rem;
		margin-bottom: 1rem;
	}

	/* Mobile: show header in single-column layout */
	.uplift-cases-header {
		display: flex;
		flex-direction: column;
		gap: 0;
		margin-bottom: var(--uplift-space-xl);
	}

	/* Hide desktop title (use mobile title instead) */
	.uplift-cases-title-desktop {
		display: none;
	}

	/* Description: 32px margin to button */
	.uplift-cases-description {
		margin-bottom: 32px;
	}

	/* Hide desktop nav arrows inside header */
	.uplift-cases-nav {
		display: none;
	}

	/* Controls: 40px margin to tags */
	.uplift-cases-controls {
		gap: 0;
		margin-bottom: 40px;
	}

	/* Tags: vertical list on mobile */
	.uplift-cases-header__right {
		flex: auto;
	}

	.uplift-cases-tags {
		flex-direction: column;
		gap: 0.5rem;
	}

	/* Hide filter tabs (replaced by tags) */
	.uplift-cases-filter-tabs {
		display: none;
	}

	/* Carousel: centered peek — card in center, adjacent cards peek at edges */
	.uplift-cases-carousel {
		padding: 0;
		overflow: hidden;
	}

	.uplift-cases-carousel__track {
		gap: 12px;
		transition: transform 0.4s ease-out;
		cursor: grab;
		user-select: none;
		touch-action: pan-y;
		/* Offset so first card starts centered: (100vw - cardWidth) / 2 = 48px */
		padding-left: 48px;
	}

	.uplift-cases-carousel__track:active {
		cursor: grabbing;
	}

	/* Card: white bg, rounded, ~80vw */
	.uplift-case-card {
		flex: 0 0 calc(100vw - 96px);
		min-width: calc(100vw - 96px);
		background-color: var(--uplift-white, #fff);
		border: none;
		color: var(--uplift-text);
		padding: 20px;
		gap: 12px;
		border-radius: 8px;
	}

	/* Image */
	.uplift-case-card__image img,
	.uplift-case-card__placeholder {
		aspect-ratio: 3 / 2;
		border-radius: 4px;
	}

	/* Category visible */
	.uplift-case-card__category {
		display: block;
		color: var(--uplift-accent);
	}

	/* Text dark */
	.uplift-case-card__title {
		color: var(--uplift-text);
		font-size: 1.125rem;
	}

	.uplift-case-card__excerpt {
		color: var(--uplift-text);
		display: -webkit-box;
		-webkit-line-clamp: 4;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.uplift-case-card__date {
		color: var(--uplift-text);
		opacity: 0.5;
	}
}

/* Hide mobile nav on desktop */
@media screen and (min-width: 960px) {
	.uplift-cases-nav-mobile {
		display: none;
	}
}

/* ---- Desktop: show desktop header, hide mobile elements ---- */
@media screen and (min-width: 960px) {
	.uplift-cases-title-mobile {
		display: none;
	}

	.uplift-cases-title-desktop {
		display: block;
	}

	.uplift-cases-filter-tabs {
		display: none;
	}
}

/* ========================================
   C1. HOMEPAGE — COCOON OVERRIDES
   Disable default Cocoon layout on front page
   ======================================== */
.uplift-page-top #container,
.uplift-page-top #content,
.uplift-page-top #main,
.uplift-page-top .content,
.uplift-page-top .wrap {
	max-width: none;
	padding: 0;
	margin: 0;
}

.uplift-page-top #sidebar,
.uplift-page-top .sidebar,
.uplift-page-top .breadcrumb,
.uplift-page-top .article-header,
.uplift-page-top .article-footer,
.uplift-page-top .under-entry-content,
.uplift-page-top .pager-post-navi,
.uplift-page-top .comment-area,
.uplift-page-top #navi,
.uplift-page-top .navi,
.uplift-page-top .header,
.uplift-page-top .appeal,
.uplift-page-top .footer {
	display: none;
}

/* ========================================
   C0. COCOON OVERRIDES — INNER PAGES
   Applied to all pages using get_header()/get_footer()
   (front-page.php bypasses Cocoon entirely)
   ======================================== */

/* Hide Cocoon default header/nav — we use uplift-header instead */
.header-container,
.header,
#navi,
.navi,
.mobile-menu-buttons,
.menu-mobile,
.appeal,
.recommended-cards,
.carousel,
.notice-area {
	display: none !important;
}

/* Hide sidebar on inner pages */
#sidebar,
.sidebar {
	display: none !important;
}

/* Make main content full-width (no sidebar layout) */
/* Cocoon inline CSS sets .main{width:860px} — must use !important */
.content {
	margin: 0 !important;
	width: 100% !important;
}

.content-in,
.content-in.wrap {
	display: block;
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
}

.main {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	float: none !important;
}

/* Hide Cocoon mobile footer buttons + go-to-top */
.mobile-footer-menu-buttons,
.go-to-top,
.go-to-top-button {
	display: none !important;
}

/* Hide Cocoon article wrapper on custom page templates —
   but NOT the .uplift-page div itself which is inside <main> */
.uplift-page ~ .article,
.page-template .article-header,
.page-template .article-footer,
.page-template .entry-content,
.page-template .entry-title,
.page-template .eye-catch,
.page-template .date-tags,
.page-template .sns-share,
.page-template .sns-follow,
.page-template .under-entry-content,
.page-template .pager-post-navi,
.page-template .comment-area,
.page-template .footer-meta,
.page-template .publisher,
.page-template .read-time,
.page-template .copy-info {
	display: none !important;
}

/* Cocoon breadcrumb restyle */
.breadcrumb {
	max-width: var(--uplift-container-max);
	margin: 0 auto;
	padding: var(--uplift-space-md) var(--uplift-side-padding);
	font-size: var(--uplift-font-size-xs);
	color: var(--uplift-text-muted);
	background: transparent;
	border: none;
}

.breadcrumb .fa {
	display: none;
}

.breadcrumb a {
	color: var(--uplift-text-muted);
	text-decoration: none;
}

.breadcrumb a:hover {
	color: var(--uplift-navy);
}

.breadcrumb .sp {
	margin: 0 0.25rem;
}

/* Cocoon footer restyle for inner pages */
.uplift-has-header #footer,
.uplift-has-header .footer,
.uplift-has-header .footer-widgets,
.uplift-has-header .footer-widgets-mobile {
	display: none !important;
}

/* Reset Cocoon's .body .article p and similar deep selectors
   that leak into uplift-page content */
.uplift-page p,
.uplift-page h1,
.uplift-page h2,
.uplift-page h3,
.uplift-page h4,
.uplift-page ul,
.uplift-page ol,
.uplift-page dl {
	margin-bottom: 0;
}

.uplift-page p {
	line-height: var(--uplift-line-height);
}

/* Cocoon .wrap max-width conflicts */
.page-template .wrap {
	max-width: 100% !important;
	width: 100% !important;
}

/* ========================================
   C2. 事業紹介 (SERVICES PAGE)
   ======================================== */

/* Services page title — Figma: space-between, py 120px 90px */
@media screen and (max-width: 959px) {
	.uplift-page--services .uplift-page-title {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}

@media screen and (max-width: 959px) {
	.uplift-page--services .uplift-container {
		padding-left: 24px;
		padding-right: 24px;
	}
}

.uplift-page--services {
  background-color: var(--uplift-bg-alt);
}

.uplift-page--services .uplift-page-title__heading {
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 16px;
}

@media screen and (max-width: 959px) {
	.uplift-page--services .uplift-page-title__heading {
		font-size: 32px;
	}
}

.uplift-page--services .uplift-page-title__description p {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	margin: 0;
}

@media screen and (min-width: 960px) {
	.uplift-page--services .uplift-page-title {
		padding-top: 120px;
		padding-bottom: 90px;
	}

	.uplift-page--services .uplift-page-title .uplift-container {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 64px;
	}

	.uplift-page--services .uplift-page-title__heading {
		font-size: 36px;
		white-space: nowrap;
		flex-shrink: 0;
		margin-bottom: 0;
	}

	.uplift-page--services .uplift-page-title__description {
		max-width: 712px;
	}
}

/* ---- Strengths section (#05143C bg, white text) ---- */
.uplift-section--strengths {
	position: relative;
	background-color: #05143C;
	color: var(--uplift-white);
	padding: 96px 24px;
	overflow: hidden;
}

@media screen and (max-width: 959px) {
	.uplift-section--strengths {
		padding: 48px 24px;
	}
}

.uplift-strengths-bg {
	position: absolute;
	inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	pointer-events: none;
}

.uplift-strengths-inner {
	position: relative;
	z-index: 1;
	max-width: 1152px;
	margin: 0 auto;
}

.uplift-section--strengths .uplift-h2 {
	color: var(--uplift-white);
	text-align: center;
	margin-bottom: 40px;
}

@media screen and (max-width: 959px) {
	.uplift-section--strengths .uplift-h2 {
		text-align: left;
	}
}

.uplift-strengths-grid {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

@media screen and (max-width: 959px) {
	.uplift-strengths-grid {
		padding-left: 11px;
		padding-right: 11px;
	}
}

.uplift-strength-item {
	text-align: left;
}

.uplift-strength-item__icon {
	margin-bottom: 32px;
	color: var(--uplift-white);
}

.uplift-strength-item__icon svg {
	width: 32px;
	height: 32px;
}

.uplift-strength-item__title {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 0;
	color: var(--uplift-white);
}

.uplift-strength-item__text {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.8;
	color: var(--uplift-white);
	margin: 16px 0 0;
}

@media screen and (min-width: 960px) {
	.uplift-section--strengths {
		padding: 96px 144px;
	}

	.uplift-strengths-grid {
		flex-direction: row;
		gap: 96px;
		max-width: 1152px;
		margin: 0 auto;
	}

	.uplift-strength-item {
		flex: 1;
	}
}

/* ---- Support style section (4-col grid, #E1E7F0 bg) ---- */
.uplift-section--support-style {
	background-color: #E1E7F0;
	padding: 96px 0;
	position: relative;
}

@media screen and (max-width: 959px) {
	.uplift-section--support-style {
		padding: 48px 0;
	}
}

.uplift-section--support-style .uplift-h2 {
	color: #05143C;
	margin-bottom: 0;
}

@media screen and (max-width: 959px) {
	.uplift-section--support-style .uplift-h2 {
		font-size: 28px;
		text-align: left;
	}
}

/* Mobile: stacked column */
.uplift-support-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

@media screen and (max-width: 959px) {
	.uplift-support-grid {
		margin-top: 48px;
		position: relative;
	}
}

.uplift-support-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

@media screen and (max-width: 959px) {
	/* Mobile: row layout with vertical timeline */
	.uplift-support-item {
		position: relative;
		flex-direction: row;
		gap: 16px;
	}

	.uplift-support-item:not(:last-child)::after {
		content: '';
		position: absolute;
		top: 26px;
		bottom: -40px;
		left: 12px;
		width: 1px;
		background-color: #1E1E1E;
		opacity: 0.3;
		z-index: 0;
	}
}

.uplift-support-item__number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 9999px;
	background-color: #05143C;
	color: var(--uplift-white);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	position: relative;
	z-index: 1;
	margin-bottom: 40px;
}

@media screen and (max-width: 959px) {
	.uplift-support-item__number {
		flex-shrink: 0;
		margin-top: 2px;
		margin-bottom: 0;
	}
}

.uplift-support-item__content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex-grow: 1;
}

.uplift-support-item__title {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	color: #05143C;
	margin-bottom: 0;
}

.uplift-support-item__text {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.8;
	color: #05143C;
	margin: 0;
}

/* Desktop: 4-column grid with connecting line */
@media screen and (min-width: 960px) {
	.uplift-section--support-style .uplift-h2 {
		margin-bottom: 60px;
	}

	.uplift-support-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 20px;
		position: relative;
	}

	/* Full-width line through number circles */
	.uplift-support-grid::before {
		content: '';
		position: absolute;
		top: 12px;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		height: 1px;
		background-color: #1E1E1E;
		opacity: 0.3;
		z-index: 0;
	}
}

/* ---- Business sections (Consulting & IT) ---- */
.uplift-section--consulting,
.uplift-section--it {
	padding: 96px 0;
	position: relative;
}

@media screen and (max-width: 959px) {
	.uplift-section--consulting,
	.uplift-section--it {
		padding: 48px 0;
	}
}

.uplift-section--consulting .uplift-biz-deco {
	position: absolute;
	top: -80px;
	right: 0;
	width: 60%;
	height: calc(100% + 80px);
	background-position: top right;
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
}

.uplift-section--consulting .uplift-container {
	position: relative;
	z-index: 1;
}

.uplift-biz-section {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.uplift-biz-section__header {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 80px;
}

.uplift-biz-section__header .uplift-h2 {
	font-size: var(--uplift-font-size-2xl);
	margin-bottom: 16px;
}

@media screen and (max-width: 959px) {
	.uplift-biz-section__header .uplift-h2 {
		font-size: 28px;
		margin-bottom: 24px;
	}
}

.uplift-biz-section__desc {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	max-width: 600px;
	margin: 0;
}

.uplift-biz-section__image {
}

.uplift-biz-section__image img {
	width: 100%;
	height: auto;
	display: block;
}

@media screen and (max-width: 959px) {
	.uplift-biz-section__header {
		gap: 48px;
	}
}

.uplift-biz-section__icon {
	display: none;
}

.uplift-biz-section__services {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.uplift-service-detail {
	padding: 24px 0;
	border-bottom: 1px solid #AAAAAA;
}

.uplift-service-detail:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

@media screen and (max-width: 959px) {
	.uplift-service-detail {
		border-bottom: 1px solid #AAAAAA;
		border-top: 1px solid #AAAAAA;
	}

	.uplift-service-detail + .uplift-service-detail {
		border-top: none;
	}

	.uplift-service-detail:last-child {
		border-bottom: 1px solid #AAAAAA;
		padding-bottom: 24px;
	}
}

.uplift-service-detail .uplift-h3 {
	font-size: var(--uplift-font-size-lg);
	font-weight: 600;
	margin-bottom: 8px;
}

.uplift-service-detail p {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
	margin: 0;
}

@media screen and (min-width: 960px) {
	.uplift-biz-section {
		flex-direction: row;
		gap: 64px;
		align-items: flex-start;
	}

	.uplift-biz-section__header {
		flex: 0 0 380px;
		position: sticky;
		top: 120px;
	}

	.uplift-biz-section__icon {
		display: block;
		margin-top: 32px;
		color: var(--uplift-text);
		opacity: 0.15;
	}

	.uplift-biz-section__services {
		flex: 1;
	}

	.uplift-service-detail .uplift-h3 {
		font-size: var(--uplift-font-size-xl);
	}
}

@media screen and (min-width: 1200px) {
	.uplift-biz-section {
		gap: 96px;
	}

	.uplift-biz-section__header {
		flex: 0 0 420px;
	}
}

/* ========================================
   C3. 会社概要 (COMPANY PAGE)
   ======================================== */

.uplift-page--company {
	background-color: var(--uplift-bg-alt);
}

/* ---- Page title — identical to services pattern ---- */
.uplift-page--company .uplift-page-title {
	padding-top: 48px;
	padding-bottom: 19px;
}

.uplift-page--company .uplift-page-title__heading {
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 24px;
}

.uplift-page--company .uplift-page-title__description p {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
	margin: 0;
}

@media screen and (min-width: 960px) {
	.uplift-page--company .uplift-page-title {
		padding-top: 120px;
		padding-bottom: 32px;
	}

	.uplift-page--company .uplift-page-title .uplift-container {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 64px;
	}

	.uplift-page--company .uplift-page-title__heading {
		font-size: 36px;
		white-space: nowrap;
		flex-shrink: 0;
		margin-bottom: 0;
	}

	.uplift-page--company .uplift-page-title__description {
		max-width: 761px;
	}
}

/* ---- Company overview table ---- */
/* Figma: Frame 48095786 — flex-row, space-between, padding 96px 144px 0, gap 295px */

.uplift-company-overview {
	padding: 48px 0;
}
.uplift-company-overview .uplift-company-table {
	max-width: 761px;
  flex: 0 1 761px;
}

.uplift-company-overview__heading {
	font-size: 28px;
	font-weight: 600;
	line-height: 42px;
	color: #1E1E1E;
	margin: 0 0 24px;
}

.uplift-company-table__dl {
	margin: 0;
}

/* Mobile: two-column rows (Figma: head 96px + body) */
.uplift-company-table__row {
	display: flex;
	flex-direction: row;
	align-items: center;
	border-bottom: 1px solid #CECFD4;
}

.uplift-company-table__row--no-border-group {
	border-bottom: none;
}

.uplift-company-table__row--no-border-group .uplift-company-table__head,
.uplift-company-table__row--no-border-group .uplift-company-table__body {
	padding-bottom: 10px;
}

.uplift-company-table__row--sub {
	border-bottom: none;
	align-items: flex-start;
}

.uplift-company-table__row--sub .uplift-company-table__head,
.uplift-company-table__row--sub .uplift-company-table__body {
	padding: 10px 24px 10px 0;
}

.uplift-company-table__row--sub .uplift-company-table__body {
	padding: 10px 24px;
}

.uplift-company-table__row--audit {
	border-bottom: 1px solid #CECFD4;
	align-items: flex-start;
}

.uplift-company-table__row--audit .uplift-company-table__head,
.uplift-company-table__row--audit .uplift-company-table__body {
	padding: 10px 24px 20px 0;
}

.uplift-company-table__row--audit .uplift-company-table__body {
	padding: 10px 24px 20px;
}

.uplift-company-table__row--last {
	border-bottom: 1px solid #CECFD4;
}

.uplift-company-table__head {
	flex: 0 0 96px;
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: 18px;
	line-height: 180%;
	color: #1E1E1E;
	padding: 20px 24px 20px 0;
	margin: 0;
}

.uplift-company-table__body {
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	align-items: center;
	flex: 1;
	gap: 10px;
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: 18px;
	line-height: 180%;
	color: #1E1E1E;
	padding: 20px 24px;
	margin: 0;
}

/* Desktop: Figma pixel-perfect */
@media screen and (min-width: 960px) {
	.uplift-company-overview {
		padding: 96px 0 0;
	}

	.uplift-company-overview .uplift-container {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 64px;
	}

	.uplift-company-overview__heading {
		font-size: 36px;
		font-weight: 600;
		line-height: 130%;
		white-space: nowrap;
		flex-shrink: 0;
		margin-bottom: 0;
	}

	/* Figma: Frame 48095752 — flex-row, 713px (160 + 553) */
	.uplift-company-table {
		flex: 0 1 713px;
		max-width: 713px;
	}

	.uplift-company-table__dl {
		display: block;
	}

	/* Each row: Head (160px) + Body (553px) side by side */
	.uplift-company-table__row {
		display: flex;
		flex-direction: row;
		align-items: center;
		border-bottom: 1px solid #CECFD4;
	}

	/* Figma Head cell: flex: 0 0 160px, padding 20px 24px */
	.uplift-company-table__head {
		flex: 0 0 160px;
		padding: 20px 24px;
	}

	/* Figma Body cell: width 553px, padding 20px 24px */
	.uplift-company-table__body {
		flex: 1;
		padding: 14px 24px;
	}

	/* Row: 代表取締役 — padding-bottom 10px, no border */
	.uplift-company-table__row--no-border-group {
		border-bottom: none;
	}

	.uplift-company-table__row--no-border-group .uplift-company-table__head,
	.uplift-company-table__row--no-border-group .uplift-company-table__body {
		padding: 14px 24px 10px;
	}

	/* Row: 取締役 — padding 10px 24px, no border, align-items flex-start (multiline) */
	.uplift-company-table__row--sub {
		border-bottom: none;
		align-items: flex-start;
	}

	.uplift-company-table__row--sub .uplift-company-table__head,
	.uplift-company-table__row--sub .uplift-company-table__body {
		padding: 10px 24px;
	}

	/* Row: 監査役 — padding 10px 24px 20px, border-bottom restored */
	.uplift-company-table__row--audit {
		border-bottom: 1px solid #CECFD4;
		align-items: flex-start;
	}

	.uplift-company-table__row--audit .uplift-company-table__head,
	.uplift-company-table__row--audit .uplift-company-table__body {
		padding: 10px 24px 14px;
	}

	/* Row: 主要株主 — last row, border-bottom (Figma has it), then no more */
	.uplift-company-table__row--last {
		border-bottom: 1px solid #CECFD4;
	}

	.uplift-company-table__row--last .uplift-company-table__head,
	.uplift-company-table__row--last .uplift-company-table__body {
		padding: 14px 24px;
	}
}

/* ---- Management team section ---- */
/* Figma: Frame 48095785 — flex-column, align-items center, padding 96px 144px */
/* Inner: Frame 48095783 — flex-column, gap 64px, width 1160px */

.uplift-company-team {
	padding: 48px 0;
}

/* Figma heading: 36px/600/130%, color #1E1E1E, align-self stretch */
.uplift-page .uplift-company-team__heading {
	font-family: var(--uplift-font-family);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 130%;
	color: #1E1E1E;
	margin: 0;
}

/* Figma: Frame 48095749 — flex-column, gap 40px */
.uplift-team-grid {
	display: flex;
	flex-direction: column;
	gap: 16px;
	row-gap: 40px;
}

/* Mobile: flatten rows so cards stack evenly */
.uplift-team-grid__row {
	display: contents;
}

/* Figma: Introduction — flex-column, gap 16px, width 381.33px */
.uplift-team-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 0;
	gap: 16px;
}

/* Figma: Frame 48095743 — 381.33 x 381.33, align-self stretch */
.uplift-team-card__photo {
	align-self: stretch;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background-color: #E0E0E0;
}

.uplift-team-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Figma: Frame 48095715 — flex-column, gap 2px, align-self stretch */
.uplift-team-card__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	align-self: stretch;
	padding: 0;
	gap: 2px;
}

/* Figma: 13px/300/160%, rgba(30,30,30,0.7), align-self stretch */
.uplift-team-card__role {
	align-self: stretch;
	font-family: var(--uplift-font-family);
	font-style: normal;
	font-size: 13px;
	font-weight: 300;
	line-height: 160%;
	color: rgba(30, 30, 30, 0.7);
}

/* Figma: 16px/600/160%, rgba(30,30,30,0.7), align-self stretch */
.uplift-team-card__name {
	align-self: stretch;
	font-family: var(--uplift-font-family);
	font-style: normal;
	font-size: 16px;
	font-weight: 600;
	line-height: 160%;
	color: rgba(30, 30, 30, 0.7);
}

/* Figma: 14px/300/160%, rgba(30,30,30,0.7), align-self stretch */
.uplift-team-card__bio,
.uplift-page .uplift-team-card__bio {
	align-self: stretch;
	font-family: var(--uplift-font-family);
	font-style: normal;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.6;
	color: rgba(30, 30, 30, 0.7);
	margin: 0;
}

@media screen and (min-width: 960px) {
	.uplift-company-team {
		padding: 96px 0;
	}

	.uplift-company-team .uplift-container {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 64px;
	}

	/* Figma: heading 36px/600/130%, align-self stretch */
	.uplift-company-team__heading {
		font-size: 36px;
		margin-bottom: 0;
	}

	/* Figma: rows — flex-row, gap 8px */
	.uplift-team-grid__row {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: 16px;
	}

	/* Figma: each card 381.33px in 1160px row (3 cards + 2*8px gap) */
	.uplift-team-card {
		flex: 1;
		min-width: 0;
	}
}

/* ========================================
   CASES PAGE — 事例紹介
   ======================================== */

/* ---- Page title — same pattern as services/company ---- */
.uplift-page--cases {
  background-color: var(--uplift-bg-alt);
}

.uplift-page--cases .uplift-page-title {
	padding-top: 48px;
	padding-bottom: 48px;
}

.uplift-page--cases .uplift-page-title__heading {
	font-size: 2rem; /* 32px */
	font-weight: 600;
	line-height: var(--uplift-line-height-heading);
	margin-bottom: 24px;
}

.uplift-page--cases .uplift-page-title__description p {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: var(--uplift-line-height);
}

@media screen and (min-width: 960px) {
	.uplift-page--cases .uplift-page-title {
		padding-top: 120px;
		padding-bottom: 90px;
	}

	.uplift-page--cases .uplift-page-title .uplift-container {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: var(--uplift-space-xl);
	}

	.uplift-page--cases .uplift-page-title__heading {
		font-size: 36px;
		white-space: nowrap;
		flex-shrink: 0;
	}

	.uplift-page--cases .uplift-page-title__description {
		max-width: 712px;
	}
}

/* ---- 取引先企業様一覧 ---- */
.uplift-cases-clients {
	background-color: #E1E7F0;
	padding-top: 48px;
	padding-bottom: 48px;
}

.uplift-cases-clients .uplift-container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 40px;
}

.uplift-cases-clients__heading {
	font-size: var(--uplift-font-size-xl);
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-text);
	margin: 0;
}

.uplift-cases-clients__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--uplift-space-lg);
	width: 100%;
	max-width: 998px;
}

.uplift-cases-clients__col p {
	font-size: var(--uplift-font-size-lg);
	font-weight: 300;
	line-height: 1.8;
	margin: 0;
	color: var(--uplift-text);
}

@media screen and (min-width: 960px) {
	.uplift-cases-clients .uplift-container {
		align-items: center;
	}

	.uplift-cases-clients__heading {
		text-align: center;
	}

	.uplift-cases-clients__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 48px;
	}
}

/* ---- Case study tags / filter ---- */
.uplift-cases-archive {
	padding-top: 48px;
	padding-bottom: 48px;
}

@media screen and (min-width: 960px) {
	.uplift-cases-archive {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

.uplift-cases-archive .uplift-container {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-xl);
}

.uplift-cases-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	max-width: 1128px;
	text-align: left;
}

.uplift-cases-tag {
	background: none;
	border: none;
	padding: 0;
	font-family: var(--uplift-font-family);
	font-size: var(--uplift-font-size-lg);
	font-weight: 300;
	line-height: 1.8;
	color: var(--uplift-accent);
	cursor: pointer;
	transition: opacity var(--uplift-transition-fast);
	text-align: left;
}

.uplift-cases-tag:hover {
	opacity: 0.7;
}

.uplift-cases-tag--active {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ---- Case study card grid ---- */
.uplift-cases-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media screen and (min-width: 960px) {
	.uplift-cases-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---- Individual card ---- */
a.uplift-cases-card,
a.uplift-cases-card:hover {
	text-decoration: none;
	color: inherit;
}

.uplift-cases-card {
	background: var(--uplift-bg-alt);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-md);
	transition: transform var(--uplift-transition-base), box-shadow var(--uplift-transition-base);
}

.uplift-cases-card:hover {
	transform: translateY(-4px);
	box-shadow: -30px 30px 80px 0 rgba(20, 64, 108, 0.2);
}

/* Card image */
.uplift-cases-card__image {
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #d0d5dd;
}

.uplift-cases-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.uplift-cases-card__placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #c8d6e5 0%, #dfe6ed 100%);
}

@media screen and (min-width: 960px) {
	.uplift-cases-card__image {
		height: 345px;
		aspect-ratio: unset;
	}
}

/* Card body */
.uplift-cases-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-xl);
	flex: 1;
}

.uplift-cases-card__content {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-sm);
}

.uplift-cases-card__tag {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: 1.8;
	color: var(--uplift-accent);
}

.uplift-cases-card__title {
	font-size: var(--uplift-font-size-lg);
	font-weight: 600;
	line-height: 1.6;
	color: var(--uplift-text);
	margin: 0;
}

.uplift-cases-card__excerpt {
	font-size: var(--uplift-font-size-base);
	font-weight: 300;
	line-height: 1.8;
	color: var(--uplift-text);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.uplift-cases-card__date {
	font-size: var(--uplift-font-size-sm);
	font-weight: 300;
	line-height: 1.6;
	color: var(--uplift-text);
}

/* ---- Empty state ---- */
.uplift-cases-empty {
	text-align: center;
	color: var(--uplift-text-muted);
	padding: var(--uplift-space-2xl) 0;
	font-size: var(--uplift-font-size-lg);
}

/* ---- Hidden card (JS filter) ---- */
.uplift-cases-card[hidden] {
	display: none;
}

/* ========================================
   CASE STUDY DETAIL — 事例詳細
   Figma: 1440px frame, container 1152px (144px side padding)
   ======================================== */

/* ---- Page wrapper ---- */
.uplift-cs-detail {
	background: var(--uplift-bg-alt);
}

/* ---- Header: title + date ---- */
.uplift-cs-detail__header {
	padding-top: 48px;
	padding-bottom: 48px;
}

.uplift-cs-detail__title {
	font-size: 22px;
	font-weight: 600;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-text);
	margin: 0;
}

.uplift-cs-detail__date {
	display: block;
	font-size: 15px;
	font-weight: 300;
	line-height: 1.6;
	color: #505050;
	margin-top: 16px;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__header {
		padding-top: 114px;
		padding-bottom: 16px;
	}

	.uplift-cs-detail__title {
		font-size: 36px;
		line-height: 1.3;
	}
}

/* ---- Hero image ---- */
.uplift-cs-detail__hero {
	margin-bottom: 0;
}

.uplift-cs-detail__hero .uplift-container {
	padding-left: 0;
	padding-right: 0;
	max-width: 100%;
}

.uplift-cs-detail__hero-img {
	width: 100%;
	height: auto;
	aspect-ratio: 1152 / 420;
	object-fit: cover;
	display: block;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__hero .uplift-container {
		padding-left: var(--uplift-side-padding);
		padding-right: var(--uplift-side-padding);
		max-width: calc(var(--uplift-container-max) + var(--uplift-side-padding) * 2);
	}
}

/* ---- Body: sidebar + content ---- */
.uplift-cs-detail__body {
	padding-top: 48px;
	padding-bottom: 20px;
}

.uplift-cs-detail__grid {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__body {
		padding-top: 114px;
		padding-bottom: 114px;
	}

	.uplift-cs-detail__grid {
		flex-direction: row;
		justify-content: space-between;
		gap: 0;
	}
}

/* ---- Sidebar metadata ---- */
.uplift-cs-detail__sidebar {
	flex-shrink: 0;
	padding-top: 16px;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__sidebar {
		width: 273px;
		position: sticky;
		top: 96px;
		align-self: flex-start;
	}
}

/* Metadata definition list */
.uplift-cs-meta {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.uplift-cs-meta__item {
	display: flex;
	align-items: baseline;
	gap: 4px;
}

.uplift-cs-meta__label {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--uplift-text);
	flex-shrink: 0;
	width: 96px;
}

.uplift-cs-meta__value {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.5;
	color: var(--uplift-text);
	margin: 0;
}

.uplift-cs-meta__value a {
	color: var(--uplift-text);
	text-decoration: none;
	word-break: break-all;
}

.uplift-cs-meta__value a:hover {
	text-decoration: underline;
}

/* Tags — below metadata */
.uplift-cs-meta__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 24px;
}

.uplift-cs-meta__tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 14px;
	font-weight: 350;
	line-height: 1.75;
	color: var(--uplift-text);
}

/* Tag hash icon — matching Figma 14x14 */
.uplift-cs-meta__tag::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	background: rgba(30, 30, 30, 0.8);
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cline x1='0' y1='5' x2='14' y2='5' stroke='black' stroke-width='1'/%3E%3Cline x1='0' y1='9' x2='14' y2='9' stroke='black' stroke-width='1'/%3E%3Cline x1='5' y1='0' x2='5' y2='14' stroke='black' stroke-width='1'/%3E%3Cline x1='9' y1='0' x2='9' y2='14' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	mask-size: contain;
	mask-repeat: no-repeat;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cline x1='0' y1='5' x2='14' y2='5' stroke='black' stroke-width='1'/%3E%3Cline x1='0' y1='9' x2='14' y2='9' stroke='black' stroke-width='1'/%3E%3Cline x1='5' y1='0' x2='5' y2='14' stroke='black' stroke-width='1'/%3E%3Cline x1='9' y1='0' x2='9' y2='14' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	flex-shrink: 0;
}

/* ---- Content area ---- */
.uplift-cs-detail__content {
	min-width: 0;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__content {
		width: 714px;
		flex-shrink: 0;
	}
}

/* Typography inside content — Figma specs */
.uplift-cs-detail__content h1 {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-text);
	margin: 0;
	padding-bottom: 40px;
}

.uplift-cs-detail__content h2 {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-text);
	margin: 0;
	padding-bottom: 40px;
}

.uplift-cs-detail__content h3 {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--uplift-text);
	margin: 0;
	padding-bottom: 24px;
}

.uplift-cs-detail__content p {
	font-size: 16px;
	font-weight: 300;
	line-height: 2;
	color: var(--uplift-text);
	margin: 0;
	padding-bottom: 40px;
}

.uplift-cs-detail__content img {
	width: 100%;
	height: auto;
	display: block;
	padding-bottom: 40px;
}

.uplift-cs-detail__content .wp-block-heading {
	font-size: 28px;
}

.uplift-cs-detail__content .wp-block-image {
	margin: 0;
	padding-bottom: 40px;
}

.uplift-cs-detail__content .wp-block-image.size-large {
	margin-left: calc(-1 * var(--uplift-side-padding));
	margin-right: calc(-1 * var(--uplift-side-padding));
	width: calc(100% + var(--uplift-side-padding) * 2);
	max-width: none;
}

.uplift-cs-detail__content .wp-block-image.size-large img {
	width: 100%;
	height: auto;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__content .wp-block-image.size-large {
		margin-left: 0;
		margin-right: 0;
		width: 100%;
		max-width: 100%;
	}
}

.uplift-cs-detail__content .wp-block-image img {
	padding-bottom: 0;
}

.uplift-cs-detail__content ul,
.uplift-cs-detail__content ol {
	font-size: 16px;
	font-weight: 300;
	line-height: 2;
	color: var(--uplift-text);
	margin: 0;
	padding-bottom: 40px;
	padding-left: 1.5em;
}

.uplift-cs-detail__content blockquote {
	border-left: 3px solid var(--uplift-accent);
	margin: 0;
	padding: 16px 24px;
	padding-bottom: 40px;
	background: var(--uplift-bg);
}

.uplift-cs-detail__content blockquote p {
	padding-bottom: 0;
}

/* Remove extra bottom padding on last element */
.uplift-cs-detail__content > *:last-child {
	padding-bottom: 0;
}

@media screen and (min-width: 960px) {
	.uplift-cs-detail__content h1 {
		font-size: 32px;
		line-height: 1.4;
	}

	.uplift-cs-detail__content h2 {
		font-size: 24px;
		line-height: 1.4;
	}

	.uplift-cs-detail__content h3 {
		font-size: 20px;
	}

	.uplift-cs-detail__content p {
		font-size: 18px;
		line-height: 2;
	}

	.uplift-cs-detail__content ul,
	.uplift-cs-detail__content ol {
		font-size: 18px;
	}
}

/* ========================================
   D5. CONTACT PAGE — お問い合わせ
   Figma: 662:2231
   ======================================== */
.uplift-page--contact {
	background-color: var(--uplift-bg-alt);
}

.uplift-contact {
	padding: 33px 0;
}

.uplift-contact__inner {
	width: 100%;
	max-width: 568px;
	margin: 0 auto;
	padding: 0 var(--uplift-side-padding);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 48px;
	box-sizing: border-box;
}

/* Header */
.uplift-contact__header {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-sm);
	text-align: center;
}

.uplift-contact__title {
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: var(--uplift-font-size-2xl);
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-navy-cta);
	margin: 0;
}

.uplift-contact__lead {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-md);
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
	margin: 0;
}

/* Form container */
.uplift-contact__form {
	width: 100%;
}

/* MW WP Form overrides for contact page */
.uplift-contact-form {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-lg);
}

.uplift-form-group {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-sm);
}

.uplift-form-label {
	display: flex;
	align-items: center;
	gap: var(--uplift-space-xs);
}

.uplift-contact-form .uplift-form-label__text {
	color: #1E1E1E;
}
.uplift-contact-form .uplift-form-label__required {
	color: #ED3333;
}

.uplift-form-label__text {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-sm);
	line-height: 1.2;
	color: #FFFFFF;
}

.uplift-form-label__required {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-xs);
	line-height: 1.2;
	color: #FFBEBE;
}

/* Input fields */
.uplift-contact-form .uplift-form-group input[type="text"],
.uplift-contact-form .uplift-form-group input[type="email"],
.uplift-contact-form .uplift-form-group textarea {
	width: 100%;
	padding: 14px 16px;
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-base);
	line-height: 1.2;
	color: var(--uplift-text);
	background-color: var(--uplift-white);
	border: 1px solid var(--uplift-text-muted);
	border-radius: 2px;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color var(--uplift-transition-fast);
}

.uplift-contact-form .uplift-form-group input::placeholder,
.uplift-contact-form .uplift-form-group textarea::placeholder {
	color: var(--uplift-text-muted);
}

.uplift-contact-form .uplift-form-group input:focus,
.uplift-contact-form .uplift-form-group textarea:focus {
	outline: none;
	border-color: var(--uplift-navy-cta);
}

/* Textarea — お問い合わせ内容 */
.uplift-contact-form .uplift-form-group textarea {
	background-color: #FFFFFF;
	min-height: 180px;
	resize: vertical;
}

/* Submit button */
.uplift-contact__form input[type="submit"],
.uplift-contact-form input[type="submit"] {
	display: block;
	width: 160px;
	height: 58px;
	margin: 24px auto 0;
	padding: 16px 24px;
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: var(--uplift-font-size-base);
	line-height: 1;
	color: var(--uplift-white);
	background-color: var(--uplift-navy);
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: opacity var(--uplift-transition-fast);
	box-sizing: border-box;
}

.uplift-contact__form input[type="submit"]:hover,
.uplift-contact-form input[type="submit"]:hover {
	background-color: #466EDC;
}

/* Submit button — disabled state */
.uplift-contact__form input[type="submit"]:disabled,
.uplift-contact-form input[type="submit"]:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.uplift-contact__form input[type="submit"]:disabled:hover,
.uplift-contact-form input[type="submit"]:disabled:hover {
	opacity: 0.4;
}

/* Validation errors */
.uplift-contact-form .error {
	color: #D52323;
	font-size: var(--uplift-font-size-xs);
	margin-top: var(--uplift-space-xs);
}

/* Consent / Privacy agreement block
   Figma: Frame 48095871 */
.uplift-consent {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}

.uplift-consent__checkbox {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

/* Default — unchecked */
.uplift-consent__checkbox input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	min-width: 16px;
	background: #FFFFFF;
	border: 1px solid #CECFD4;
	border-radius: 2px;
	cursor: pointer;
	position: relative;
	margin: 0;
	transition: background-color var(--uplift-transition-fast),
	            border-color var(--uplift-transition-fast);
}

/* Checked */
.uplift-consent__checkbox input[type="checkbox"]:checked {
	background: #05143C;
	border-color: #05143C;
}

/* Checkmark */
.uplift-consent__checkbox input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	width: 5px;
	height: 8px;
	left: 4.5px;
	top: 2px;
	border: solid #FFFFFF;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}

/* Focus — unchecked */
.uplift-consent__checkbox input[type="checkbox"]:focus-visible {
	border-color: #466EDC;
	outline: none;
}

/* Focus — checked */
.uplift-consent__checkbox input[type="checkbox"]:checked:focus-visible {
	border-color: #466EDC;
}

/* Disabled — unchecked */
.uplift-consent__checkbox input[type="checkbox"]:disabled {
	background: #ECECEC;
	border-color: #F6FAFF;
	cursor: not-allowed;
}

/* Disabled — checked */
.uplift-consent__checkbox input[type="checkbox"]:checked:disabled {
	background: #CCCCCC;
	border-color: #CCCCCC;
}

.uplift-consent__label {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: 14px;
	line-height: 180%;
	color: #1E1E1E;
	cursor: pointer;
	user-select: none;
}

.uplift-consent__notes {
	padding: 0;
	margin: 0;
	list-style: none;
	align-self: stretch;
}

.uplift-consent__notes li {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: 14px;
	line-height: 180%;
	color: #1E1E1E;
}

.uplift-consent__notes li::before {
	content: '・';
}

.uplift-consent__notes a {
	color: var(--uplift-navy-cta);
	text-decoration: underline;
}

/* ========================================
   確認画面 (Confirmation) — お問い合わせ内容確認
   Figma: 1013:3160
   ======================================== */

/* Hide consent on confirm */
.uplift-page--contact .mw_wp_form_confirm .uplift-consent {
	display: none;
}

/* Confirm table — Frame 48095752
   Two-column layout: labels (200px) | values (flex:1)
   Total max-width 761px set via JS on .uplift-contact__inner */
.uplift-page--contact .mw_wp_form_confirm .uplift-contact-form {
	gap: 0;
}

/* Reset wpautop spacing inside confirm form */
.mw_wp_form_confirm p {
	margin: 0;
	padding: 0;
	line-height: inherit;
	font-size: 18px;
}

.mw_wp_form_confirm .uplift-contact-form > br,
.mw_wp_form_confirm .uplift-form-group > br {
	display: none;
}

/* Each row — horizontal, border-bottom */
.mw_wp_form_confirm .uplift-form-group {
	flex-direction: row;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #CECFD4;
}

.mw_wp_form_confirm .uplift-form-group:first-child {
	border-top: 1px solid #CECFD4;
}

/* Label column — Frame 48095751: fixed 200px, top-aligned */
.mw_wp_form_confirm .uplift-form-label {
	min-width: 200px;
	max-width: 200px;
	padding: 20px 24px;
	gap: 10px;
	background-color: transparent;
	align-items: flex-start;
}

.mw_wp_form_confirm .uplift-form-label__text {
	font-family: 'Hiragino Kaku Gothic ProN', var(--uplift-font-family);
	font-weight: 300;
	font-size: 18px;
	line-height: 180%;
	color: #1E1E1E;
}

/* Hide required badge on confirm */
.mw_wp_form_confirm .uplift-form-label__required {
	display: none;
}

/* Value column — Frame 48095750: flex:1, vertically centered
   JS wraps text nodes in .uplift-confirm-value */
.mw_wp_form_confirm .uplift-confirm-value {
	display: flex;
	flex-direction: row;
	align-items: center;
	padding: 20px 24px;
	gap: 10px;
	font-family: 'Hiragino Kaku Gothic ProN', var(--uplift-font-family);
	font-weight: 300;
	font-size: 18px;
	line-height: 180%;
	color: #1E1E1E;
	flex: 1;
	word-break: break-word;
}

/* Hidden inputs stay hidden */
.mw_wp_form_confirm .uplift-form-group input[type="hidden"] {
	display: none;
}

/* Submit button on confirm — 送信 */
.mw_wp_form_confirm .uplift-contact-form input[type="submit"],
.mw_wp_form_confirm .uplift-contact__form input[type="submit"] {
	display: block;
	width: 160px;
	height: 58px;
	margin: 48px auto 0;
	padding: 16px 24px;
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	background-color: var(--uplift-navy);
	color: var(--uplift-white);
	border-color: var(--uplift-navy);
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: opacity var(--uplift-transition-fast);
	box-sizing: border-box;
}

.mw_wp_form_confirm .uplift-contact-form input[type="submit"]:hover,
.mw_wp_form_confirm .uplift-contact__form input[type="submit"]:hover {
	background-color: #466EDC;
}

/* ---- Contact page: header bg transparent (white on scroll) ---- */
body.page-template-page-contact .uplift-header--dark:not(.uplift-header--scrolled) {
	background-color: transparent;
}

/* ---- Mobile menu open: force header into solid-light state on every page ----
   Beats both the default transparent header (Top) and the contact-specific
   transparent override above, so the sidebar reads as continuous with a
   proper header bar regardless of page. */
html.uplift-menu-open .uplift-header,
html.uplift-menu-open body.page-template-page-contact .uplift-header--dark:not(.uplift-header--scrolled) {
	background-color: var(--uplift-bg-alt);
	box-shadow: var(--uplift-shadow-sm);
}
html.uplift-menu-open .uplift-header__logo-img {
	filter: brightness(0);
}
html.uplift-menu-open .uplift-header__hamburger span {
	background-color: var(--uplift-text);
}

/* ---- Contact page: push footer to bottom ---- */
.uplift-page--contact .uplift-contact {
	min-height: calc(100vh - 96px - 59px);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

/* ---- Complete page (送信完了) ---- */
.mw_wp_form_complete {
	text-align: center;
}

.mw_wp_form_complete p {
	font-family: 'Hiragino Kaku Gothic ProN', var(--uplift-font-family);
	font-weight: 300;
	font-size: 15px;
	line-height: 180%;
	letter-spacing: 0;
	color: #1E1E1E;
	text-align: center;
	margin: 0;
}

.uplift-contact-complete__top-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 160px;
	height: 58px;
	margin-top: 48px;
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	color: #FFFFFF;
	background-color: #05143C;
	border: none;
	border-radius: 2px;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--uplift-transition-fast);
}

.uplift-contact-complete__top-btn:hover {
	background-color: #466EDC;
	color: #FFFFFF;
}

/* Responsive — confirm & complete (breakpoint: 960px)
   Mobile keeps the same 2-column layout as PC (label left, value right),
   but with a narrower label column and tighter spacing. */
@media screen and (max-width: 960px) {
	.uplift-contact__inner--complete {
		max-width: 350px;
	}

	.mw_wp_form_confirm .uplift-form-label {
		min-width: 96px;
		max-width: 96px;
		padding: 16px 12px 16px 0;
		align-items: flex-start;
	}

	.mw_wp_form_confirm .uplift-form-label__text {
		font-size: 18px;
		line-height: 180%;
	}

	.mw_wp_form_confirm .uplift-confirm-value {
		padding: 16px 12px;
		font-size: 14px;
		line-height: 160%;
		align-items: flex-start;
	}

	.mw_wp_form_confirm .uplift-contact-form input[type="submit"],
	.mw_wp_form_confirm .uplift-contact__form input[type="submit"] {
		margin-top: 32px;
	}
}

/* Responsive */
@media screen and (max-width: 959px) {
	.uplift-contact__title {
		color: var(--uplift-text);
	}
}

@media screen and (max-width: 480px) {
	.uplift-contact__title {
		font-size: 1.75rem;
	}

	.uplift-contact__lead {
		font-size: var(--uplift-font-size-xs);
	}

	.uplift-contact__inner {
		gap: 32px;
	}

	.uplift-contact__form input[type="submit"],
	.uplift-contact-form input[type="submit"] {
		width: 160px;
	}

}

/* ========================================
   D6. RECRUITMENT PAGE — 採用情報
   Figma: 662:2167
   ======================================== */
.uplift-page--recruit {
	background-color: var(--uplift-bg-alt);
}

/* ---- Hero Section ---- */
.uplift-recruit-hero {
	padding: 40px var(--uplift-side-padding) 0;
}

.uplift-recruit-hero__inner {
	max-width: var(--uplift-container-max);
	margin: 0 auto;
}

.uplift-recruit-hero__text {
	display: flex;
	flex-direction: column;
	gap: var(--uplift-space-lg);
	margin-bottom: 48px;
}

.uplift-recruit-hero__title {
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: 1.75rem;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-text);
	margin: 0;
}

.uplift-recruit-hero__body {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-base);
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
}

.uplift-recruit-hero__body p {
	margin: 0;
}

.uplift-recruit-hero__images {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 24px;
	height: 232px;
	margin-left: -24px;
	margin-right: -24px;
}

.uplift-recruit-hero__img {
	height: 100%;
	overflow: hidden;
}

.uplift-recruit-hero__img img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.uplift-recruit-hero__img--large {
	width: 273px;
	flex-shrink: 0;
}

.uplift-recruit-hero__img--small {
	flex: 1;
}

@media screen and (min-width: 960px) {
	.uplift-recruit-hero {
		padding: 120px 144px 0;
	}

	.uplift-recruit-hero__text {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
		gap: 80px;
		margin-bottom: 52px;
	}

	.uplift-recruit-hero__title {
		font-size: var(--uplift-font-size-2xl);
		flex-shrink: 0;
	}

	.uplift-recruit-hero__body {
		flex: 1;
		max-width: 712px;
	}

	.uplift-recruit-hero__images {
		gap: 40px;
		height: 387px;
		margin-left: 0;
		margin-right: 0;
	}

	.uplift-recruit-hero__img--large {
		width: auto;
		flex: 879;
	}

	.uplift-recruit-hero__img--small {
		flex: 377;
	}
}

/* ---- 募集要項 Section ---- */
.uplift-recruit-requirements {
	position: relative;
	padding: 48px var(--uplift-side-padding);
	overflow: hidden;
}

.uplift-recruit-requirements::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url('images/consulting-deco.png') left bottom / auto no-repeat;
	pointer-events: none;
}

.uplift-recruit-requirements__inner {
	max-width: var(--uplift-container-max);
	margin: 0 auto;
}

.uplift-recruit-requirements__title {
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: 1.75rem;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-text);
	margin: 0 0 40px;
}

.uplift-recruit-requirements__content {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.uplift-recruit-requirements__job-title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: var(--uplift-font-size-lg);
	line-height: 1.6;
	color: var(--uplift-text);
}

.uplift-recruit-requirements__bullet {
	display: inline-block;
	width: 8px;
	height: 8px;
	background-color: var(--uplift-text);
	flex-shrink: 0;
}

.uplift-recruit-requirements__block {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.uplift-recruit-requirements__heading {
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: var(--uplift-font-size-lg);
	line-height: 1.6;
	color: var(--uplift-text);
	margin: 0;
}

.uplift-recruit-requirements__block p,
.uplift-recruit-requirements__block ul {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-base);
	line-height: var(--uplift-line-height);
	color: var(--uplift-text);
	margin: 0;
}

.uplift-recruit-requirements__block ul {
	padding-left: 1.5em;
	list-style-type: disc;
}

.uplift-recruit-requirements__block li {
	margin-bottom: 0.5em;
}

.uplift-recruit-requirements__block li:last-child {
	margin-bottom: 0;
}

@media screen and (min-width: 960px) {
	.uplift-recruit-requirements {
		padding: 96px 144px;
	}

	.uplift-recruit-requirements__inner {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 80px;
	}

	.uplift-recruit-requirements__title {
		font-size: var(--uplift-font-size-2xl);
		flex-shrink: 0;
		margin-bottom: 0;
	}

	.uplift-recruit-requirements__content {
		flex: 1;
		max-width: 712px;
	}
}

/* ---- エントリー Form Section ---- */
.uplift-recruit-entry {
	position: relative;
	padding: 64px var(--uplift-side-padding);
	overflow: hidden;
}

.uplift-recruit-entry__bg {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 880px;
	height: 100%;
	background: url('images/bg-form-recruitment.webp') center / cover no-repeat;
	pointer-events: none;
}

.uplift-recruit-entry__inner {
	position: relative;
	z-index: 1;
	max-width: 640px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.uplift-recruit-entry__title {
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: 1.75rem;
	line-height: var(--uplift-line-height-heading);
	color: var(--uplift-white);
	text-align: center;
	margin: 0;
}

.uplift-recruit-entry__form {
	width: 100%;
}

@media screen and (min-width: 960px) {
	.uplift-recruit-entry {
		padding: 96px 144px;
	}

	.uplift-recruit-entry__title {
		font-size: var(--uplift-font-size-2xl);
	}
}

/* MW WP Form overrides for recruitment entry form */
.uplift-recruit-entry .mw_wp_form form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Reset ALL p/br margins inside form */
.uplift-recruit-entry .mw_wp_form form p {
	margin: 0;
	padding: 0;
}

.uplift-recruit-entry .mw_wp_form form br {
	display: none;
}

/* Each field group */
.uplift-recruit-entry .uplift-form-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* Label row */
.uplift-recruit-entry .uplift-form-label {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 4px;
}

/* Submit button wrapper — extra top spacing + center */
.uplift-recruit-entry .mw_wp_form form > p {
	margin-top: 24px;
	text-align: center;
}

.uplift-recruit-entry .uplift-form-label__text {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-sm);
	line-height: 1.2;
}

.uplift-recruit-entry .uplift-form-label__required {
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-xs);
	line-height: 1.2;
}

/* Input fields — white bg on gradient */
.uplift-recruit-entry .uplift-form-group input[type="text"],
.uplift-recruit-entry .uplift-form-group input[type="email"],
.uplift-recruit-entry .uplift-form-group input[type="tel"],
.uplift-recruit-entry .uplift-form-group input[type="number"],
.uplift-recruit-entry .uplift-form-group input[type="url"],
.uplift-recruit-entry .uplift-form-group textarea {
	width: 100%;
	max-width: 100%;
	padding: 14px 16px;
	font-family: var(--uplift-font-family);
	font-weight: 300;
	font-size: var(--uplift-font-size-base);
	line-height: 1.2;
	color: var(--uplift-text);
	background-color: var(--uplift-white);
	border: 1px solid var(--uplift-text-muted);
	border-radius: 2px;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color var(--uplift-transition-fast);
	box-sizing: border-box;
}

.uplift-recruit-entry .uplift-form-group input::placeholder,
.uplift-recruit-entry .uplift-form-group textarea::placeholder {
	color: var(--uplift-text-muted);
}

.uplift-recruit-entry .uplift-form-group input:focus,
.uplift-recruit-entry .uplift-form-group textarea:focus {
	outline: none;
	border-color: var(--uplift-white);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.3);
}

/* Textarea — 経歴詳細 */
.uplift-recruit-entry .uplift-form-group textarea {
	background-color: #FFFFFF;
	min-height: 160px;
	resize: vertical;
}

/* Submit button */
.uplift-recruit-entry input[type="submit"] {
	display: block;
	width: 160px;
	min-width: 160px;
	height: 58px;
	margin: 0 auto;
	padding: 16px 24px;
	font-family: var(--uplift-font-family);
	font-weight: 600;
	font-size: var(--uplift-font-size-base);
	line-height: 1;
	color: #05143C;
	background-color: #FFFFFF;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: background-color var(--uplift-transition-fast);
	box-sizing: border-box;
}

.uplift-recruit-entry input[type="submit"]:hover {
	background-color: #466EDC;
	color: #FFFFFF;
}

/* Submit — disabled */
.uplift-recruit-entry input[type="submit"]:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.uplift-recruit-entry input[type="submit"]:disabled:hover {
	background-color: #FFFFFF;
	color: #05143C;
	opacity: 0.4;
}

/* Consent on dark background */
.uplift-recruit-entry .uplift-consent__label {
	color: var(--uplift-white);
}

.uplift-recruit-entry .uplift-consent__notes li {
	color: var(--uplift-white);
}

.uplift-recruit-entry .uplift-consent__notes a {
	color: var(--uplift-white);
}

/* Validation errors */
.uplift-recruit-entry .error {
	color: #FFDBDB;
	font-size: var(--uplift-font-size-xs);
	margin-top: var(--uplift-space-xs);
}

/* 確認画面 (Confirmation screen) */
.uplift-recruit-entry .uplift-form-group .mw-wp-form_preview {
	padding: 14px 16px;
	background-color: rgba(255, 255, 255, 0.9);
	border: 1px solid var(--uplift-border);
	border-radius: 2px;
	font-size: var(--uplift-font-size-base);
	color: var(--uplift-text);
}

/* Responsive form */
@media screen and (max-width: 480px) {
	.uplift-recruit-entry__title {
		font-size: 1.5rem;
	}

	.uplift-recruit-entry input[type="submit"] {
		width: 160px;
	}
}

/* Toast notification (recruit AJAX submit) */
.uplift-toast {
	position: fixed;
	left: 50%;
	bottom: 32px;
	z-index: 9999;
	max-width: calc(100vw - 32px);
	padding: 14px 24px;
	border-radius: 4px;
	color: #fff;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.5;
	background-color: #1a1a2e;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
	opacity: 0;
	transform: translate(-50%, 16px);
	transition: opacity 220ms ease-out, transform 220ms ease-out;
	pointer-events: none;
}

.uplift-toast--success {
	color: #1f7a4d;
	background-color: var(--uplift-bg-alt);
}

.uplift-toast--error {
	background-color: #b54141;
}

.uplift-toast--show {
	opacity: 1;
	transform: translate(-50%, 0);
}

@media (prefers-reduced-motion: reduce) {
	.uplift-toast {
		transition: opacity 0.01ms;
		transform: translate(-50%, 0);
	}
}

/* CTA footer bar — reuses shared template-parts/uplift-cta-bar */