@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.1
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* 固定ページ h2 マージンリセット（Extension の data-hdg-id 付きは除外） */
.page .post_content h2:not([data-hdg-id]),
.page .post_content h3:not([data-hdg-id]) {
	margin: 0;
}

/* SWELL の section_ttl ::after/::before リセットを解除（カスタムCSS側で装飾を定義） */
.post_content .is-style-section_ttl::after {
	content: "";
	border: none;
}
.post_content .is-style-section_ttl::before {
	content: none;
}

[data-block-link] {
	cursor: pointer;
}

/* SWELL 標準の .has-border/.has-background box_padding を UB でリセット
   Extension が spacingPadding で個別管理するため */
.wp-block-flavor-universal-block.has-border,
.wp-block-flavor-universal-block.has-background {
	padding: 0;
}

/* コンテナ余白の制御はフロントページのコンテンツ領域のみ estate-top.css 側で行う
   （ヘッダー/フッターは Figma 通り内容をインセットさせるため、ここではグローバル指定しない） */

/* ヘッダーのお問い合わせCTAボタン：ヘッダー全高に伸びないようコンパクトに（Figma準拠） */
.l-header__gnav .c-gnav .p-gnavCta {
	display: flex;
	align-items: center;
}
.l-header__gnav .c-gnav .p-gnavCta > a {
	height: auto;
	min-height: 0;
	padding: 12px 26px;
	border-radius: 4px;
	line-height: 1.3;
	color: #fff !important;
}

/* 追従（固定）ヘッダーを主ヘッダーと同じ navy + 白文字に統一 */
.l-fixHeader {
	background-color: #1b2a4a !important;
}
.l-fixHeader .c-headLogo a,
.l-fixHeader .c-headLogo span,
.l-fixHeader .c-headLogo__title,
.l-fixHeader .c-gnav > li > a,
.l-fixHeader nav a,
.l-fixHeader__cta a {
	color: #fff !important;
}
.l-fixHeader .c-gnav .p-gnavCta {
	display: flex;
	align-items: center;
}
.l-fixHeader .c-gnav .p-gnavCta > a {
	height: auto;
	min-height: 0;
	padding: 12px 26px;
	border-radius: 4px;
	line-height: 1.3;
	background-color: #c8a96a !important;
	color: #fff !important;
}

/* ===== フッター（Figma準拠：navy背景＋ブランド＋BUSINESS/SITE MAP/LEGAL の4カラム） ===== */
.l-footer {
	background-color: #1b2a4a !important;
}
.l-footer .c-copyright,
.l-footer__copyright,
.l-footer [class*="copyright"] {
	color: rgba(255,255,255,0.45) !important;
}
.p-ftr {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 40px;
	align-items: start;
}
.p-ftr__logo { width: 52px; height: auto; margin-bottom: 14px; display: block; }
.p-ftr__name { font-weight: 700; color: #fff; font-size: 1.05rem; letter-spacing: 0.06em; }
.p-ftr__en { font-family: "Cormorant Garamond", serif; font-size: 0.75rem; color: #c8a96a; letter-spacing: 0.08em; margin-top: 2px; }
.p-ftr__desc { font-size: 0.75rem; color: rgba(255,255,255,0.7); line-height: 1.9; margin: 14px 0 0; }
.p-ftr__h { font-family: "Cormorant Garamond", serif; font-size: 0.9rem; color: #c8a96a; letter-spacing: 0.1em; margin: 0 0 14px; font-weight: 600; }
.p-ftr__col a { display: block; font-size: 0.85rem; color: rgba(255,255,255,0.8); margin-bottom: 10px; text-decoration: none; }
.p-ftr__col a:hover { color: #c8a96a; }
@media (max-width: 767px) {
	.p-ftr { grid-template-columns: 1fr 1fr; gap: 24px; }
	.p-ftr__brand { grid-column: 1 / 3; }
}

/* ===== ヘッダーの電話番号 ===== */
.l-header__gnav .c-gnav .p-headerTel {
	display: flex;
	align-items: center;
}
.l-header__gnav .c-gnav .p-headerTel .p-headerTel__link,
.l-fixHeader .c-gnav .p-headerTel .p-headerTel__link {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	color: #fff !important;
}
.p-headerTel__num {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.03em;
}
.p-headerTel__note {
	font-size: 10px;
	color: #c8a96a;
	letter-spacing: 0.04em;
}
@media (max-width: 1023px) {
	.l-header__gnav .p-headerTel { display: none; }
}

/* ===== タブレット・スマホのヘッダーロゴ崩れ修正 ===== */
@media (max-width: 1023px) {
	.l-header__logo .c-headLogo,
	.l-header__logo .c-headLogo__link {
		display: flex;
		align-items: center;
		gap: 8px;
	}
	.l-header__logo .c-headLogo__img,
	.l-header__logo .p-headLogo__mark {
		width: 30px !important;
		height: auto !important;
		flex: 0 0 auto;
	}
	.l-header__logo .p-headLogo__name { line-height: 1.25; }
	.l-header__logo .p-headLogo__ja { font-size: 13px !important; white-space: nowrap; }
	.l-header__logo .p-headLogo__en { font-size: 9px !important; white-space: nowrap; }
}
@media (max-width: 480px) {
	.l-header__logo .p-headLogo__en { display: none; }
}

/* ============================================================
   全ボタン：リッチなホバー（光沢スイープ＋グロー／上移動アニメは廃止）
   ============================================================ */
.p-btn,
.wp-block-button__link,
.l-header__gnav .c-gnav .p-gnavCta > a,
.l-fixHeader .c-gnav .p-gnavCta > a,
.snow-monkey-form button[type="submit"],
.smf-button__btn {
	position: relative;
	overflow: hidden;
	z-index: 0;
	transition: box-shadow .5s cubic-bezier(.16,1,.3,1), background-color .35s ease, color .35s ease, filter .35s ease;
}
.p-btn::after,
.wp-block-button__link::after,
.l-header__gnav .c-gnav .p-gnavCta > a::after,
.l-fixHeader .c-gnav .p-gnavCta > a::after,
.snow-monkey-form button[type="submit"]::after,
.smf-button__btn::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -90%;
	width: 60%;
	background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.5) 50%, transparent 100%);
	transform: skewX(-20deg);
	pointer-events: none;
	z-index: 2;
	transition: left .7s cubic-bezier(.16,1,.3,1);
}
.p-btn:hover,
.wp-block-button__link:hover,
.l-header__gnav .c-gnav .p-gnavCta > a:hover,
.l-fixHeader .c-gnav .p-gnavCta > a:hover,
.snow-monkey-form button[type="submit"]:hover,
.smf-button__btn:hover {
	transform: none !important;
	box-shadow: 0 12px 32px rgba(27,42,74,.28);
	filter: saturate(1.08) brightness(1.05);
}
.p-btn:hover::after,
.wp-block-button__link:hover::after,
.l-header__gnav .c-gnav .p-gnavCta > a:hover::after,
.l-fixHeader .c-gnav .p-gnavCta > a:hover::after,
.snow-monkey-form button[type="submit"]:hover::after,
.smf-button__btn:hover::after {
	left: 135%;
}

/* カード等の「上に移動」ホバーを廃止（影・ボーダーは維持） */
.p-card:hover,
.p-biz__cell:hover,
.p-prop__card:hover {
	transform: none !important;
}
