/* Contact Us 2 page custom styles */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

.contact-us-2 {
    font-family: "Noto Sans JP", sans-serif;
}

/* Elementorのグローバルフォント（IBM Plex Sans等）を上書きしてNoto Sans JPを強制適用 */
.contact-us-2 h1,
.contact-us-2 h2,
.contact-us-2 h3,
.contact-us-2 h4,
.contact-us-2 h5,
.contact-us-2 h6,
.contact-us-2 p,
.contact-us-2 .hero-title,
.contact-us-2 .hero-description,
.contact-us-2 .elementor-heading-title,
.contact-us-2 .elementor-widget-container {
    font-family: "Noto Sans JP", sans-serif !important;
}

/* hero-titleに直接指定（@importで読み込んだフォントを確実に適用） */
h1.hero-title,
.hero-title {
    font-family: "Noto Sans JP", sans-serif !important;
}

.follow-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	background: rgba(255,255,255,0.95);
	box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
	border-top: 1px solid #eee;
}

.follow-cta__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 16px;
}

.follow-cta__text {
	font-weight: 700;
	color: #333;
}

.follow-cta__button {
	display: inline-block;
	background: #007cba;
	color: #fff;
	padding: 10px 18px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 700;
}

/* Success/error messages vertical centering */
.form-message { display:flex; align-items:center; }

/* Force hero background on contact-us-2 */
/* Apply broadly to ensure the rule hits */
section.hero-section {
    position: relative !important;
    color: #fff;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
    max-height: 420px !important;
    min-height: 375px !important;
    height: auto !important;
    margin-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    left: 0 !important;
    right: 0 !important;
}

/* Hero top image as background */
section.hero-section .hero-top-image {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    z-index: 0;
    overflow: hidden;
}

section.hero-section .hero-top-image img {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    /* Brighten the image */
    filter: brightness(1.3) contrast(1.1);
}

/* Add lighter overlay for text readability (reduced darkness) */
section.hero-section .hero-top-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.3)) !important;
    z-index: 1;
}

/* Ensure hero content is above the image */
section.hero-section .hero-content,
section.hero-section .container {
    position: relative;
    z-index: 2 !important;
    text-align: center !important;
    width: 100%;
    padding: 60px 20px !important;
}

section.hero-section h1,
section.hero-section .hero-title {
    position: relative;
    z-index: 2 !important;
    color: #fff !important;
    text-shadow: none !important;
    font-weight: bold !important;
    font-size: 4rem !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    text-align: center !important;
}

section.hero-section .hero-description,
section.hero-section p {
    position: relative;
    z-index: 2 !important;
    color: #fff !important;
    font-size: 1.5rem !important;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 1), 0 0 10px rgba(0, 0, 0, 0.8), 1px 1px 2px rgba(0, 0, 0, 1) !important;
    line-height: 1.6 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* Expand hero description container width */
section.hero-section .hero-content,
section.hero-section .container {
    max-width: 95% !important;
    margin: 0 auto !important;
}

section.hero-section .hero-description {
    max-width: 100% !important;
    width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    margin: 0 auto !important;
    position: relative !important;
    z-index: 2 !important;
}

@media (max-width: 768px) {
	.follow-cta__inner { padding: 12px; }
	.follow-cta__text { font-size: 14px; }

	section.hero-section {
		max-height: none !important;
		min-height: 260px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin-bottom: 0 !important;
		overflow: hidden !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	section.hero-section h1,
	section.hero-section .hero-title {
		font-size: 2rem !important;
		margin-bottom: 12px !important;
	}

	section.hero-section .hero-description,
	section.hero-section p {
		font-size: 1rem !important;
		line-height: 1.6 !important;
	}

	section.hero-section + section,
	section.hero-section + .company-logos-section,
	section.hero-section + section.company-logos-section {
		padding-top: 40px !important;
		margin-top: 0 !important;
	}

	.company-logos-section,
	section.company-logos-section {
		padding-top: 40px !important;
	}

	section.hero-section .hero-content,
	section.hero-section .container {
		padding: 30px 15px !important;
	}

	section.hero-section .hero-top-image img {
		max-height: 400px;
	}

	.download-form-container {
		padding: 24px 16px;
	}

	.form-row {
		flex-direction: column;
		gap: 0;
	}
}

@media (max-width: 480px) {
	section.hero-section h1,
	section.hero-section .hero-title {
		font-size: 1.6rem !important;
	}

	section.hero-section .hero-description,
	section.hero-section p {
		font-size: 0.9rem !important;
	}

	section.hero-section .hero-content,
	section.hero-section .container {
		padding: 24px 12px !important;
	}

	.follow-cta__text { font-size: 13px; }
	.follow-cta__button { padding: 8px 14px; font-size: 13px; }
}

/* Reduce spacing between hero section and company logos section */
section.hero-section + section,
section.hero-section + .company-logos-section,
section.hero-section + section.company-logos-section {
    padding-top: 40px !important;
    padding: 40px 0 30px 0 !important;
    margin-top: 0 !important;
}

/* Override company-logos-section padding from other CSS files */
.company-logos-section,
section.company-logos-section,
.contact-us-2 .company-logos-section,
.contact-us-2 section.company-logos-section {
    padding-top: 40px !important;
    padding: 40px 0 30px 0 !important;
}

/* Increase top margin for section-title in company logos section */
.company-logos-section .section-title,
section.company-logos-section .section-title,
.company-logos-section h2.section-title,
section.company-logos-section h2.section-title,
.contact-us-2 .company-logos-section .section-title,
.contact-us-2 section.company-logos-section .section-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Add bottom padding so content above isn't hidden by CTA */
.contact-us-2 { padding-bottom: 72px; }

/* ヒーローの100vw設定による横スクロール防止 */
html, body { overflow-x: hidden; }

/* Elementorポップアップをデフォルトで非表示（JSがトリガー時に表示） */
.elementor-location-popup { display: none; }

/* wp_body_open で出力されたhero画像divをJSが移動するまで非表示 */
body > .hero-top-image {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    left: -9999px;
}

/* 相談事例セクション */
.consultation-examples-section {
    background-color: #ffffff;
    padding: 40px 0;
}

.consultation-examples { margin-top: 24px; }

.consultation-item {
    background-color: #ffffff;
    padding: 24px;
    margin-bottom: 16px;
    border-radius: 8px;
    border-left: 4px solid #007cba;
    word-break: break-word;
    overflow-wrap: break-word;
}

.consultation-item h3 {
    color: #007cba;
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.consultation-item p {
    color: #666;
    line-height: 1.6;
    font-size: 0.95rem;
}

/* FAQセクション */
.faq-section {
    background-color: #ffffff;
    padding: 40px 0;
}

.faq-list {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
}

.faq-item {
    background-color: #ffffff;
    border-radius: 8px;
    margin-bottom: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    overflow: hidden;
}

.faq-question {
    font-size: 1rem;
    font-weight: bold;
    color: #333;
    padding: 16px 44px 16px 20px;
    margin: 0;
    border: none;
    background: #ffffff;
    width: 100%;
    text-align: left;
    cursor: pointer;
    display: block;
    position: relative;
    box-sizing: border-box;
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal !important;
    line-height: 1.5;
}

.faq-icon {
    font-size: 1.2rem;
    font-weight: bold;
    color: #007cba;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding: 0 20px;
}

.faq-answer p {
    color: #666;
    line-height: 1.6;
    margin: 0;
    padding: 0 0 16px 0;
    font-size: 0.95rem;
}

/* Ensure anchor jumps leave space for the heading */
#contact-form-start { scroll-margin-top: 140px; }

/* HIDE PRIVACY POLICY FIELDS (Elementor) - ADDED FIX */
.elementor-field-type-acceptance,
.elementor-field-type-privacy,
.elementor-field-group-acceptance,
.elementor-field-group-privacy {
    display: none !important;
}

/* Hide inputs by name/id attributes commonly used for privacy */
input[name*="privacy"],
input[name*="acceptance"],
input[name*="consent"],
input[id*="privacy"],
input[id*="acceptance"] {
    display: none !important;
}

/* Hide labels associated with privacy inputs - targeting siblings */
input[name*="privacy"] + label,
input[name*="acceptance"] + label,
input[id*="privacy"] + label {
    display: none !important;
}
