/*
Theme Name: LikeC
Theme URI: https://likec.net 
Description: スマートフォン特化型LPビルダーテーマ
Author: Affiliencer. LLC
Author URI: https://affiliencer.com
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: likec
License: Proprietary / Split License
License URI: https://likec.net/license

Copyright 2026 Affiliencer. LLC
Unauthorized copying of this file is strictly prohibited.
*/

/* ==========================================================================
   目次（Table of Contents）
   ==========================================================================
   1. ベーススタイル（リセット・アクセシビリティ）
   2. LP専用ページスタイル
   ========================================================================== */

:root {
	--bks-main-color: #673AB7;
	--bks-accent-color: #9C27B0;
	--bks-text-color: #202124;
	--bks-border-color: #dadce0;
	--bks-bg-color: #f8f9fa;
	--bks-white: #ffffff;
	--bks-border-radius: 8px;
	--bks-font-size-base: 16px;
	--bks-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--bks-shadow-sm: 0 1px 2px rgba(60, 64, 67, 0.3);
}



/* ==========================================================================
   1. ベーススタイル（リセット・アクセシビリティ）
   ========================================================================== */

/**
 * スクリーンリーダー専用テキスト
 */
.screen-reader-text,
.visually-hidden {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
}

/**
 * ブラウザのデフォルトマージンをリセット
 */
html,
body {
	margin: 0;
	padding: 0;
}

/**
 * 流動的フォントサイズ（Fluid Typography）
 */
html {
	font-size: clamp(10px, 1.3333vw, 18.67px);
}

/**
 * 非LP用の最小限ヘッダー・フッタースタイル
 */
.site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.site-content {
	flex: 1;
}

.site-header {
	background-color: #ffffff;
	border-bottom: 1px solid #e5e5e5;
	padding: 20px;
}

.site-header__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.site-header__title {
	font-size: 24px;
	font-weight: bold;
	color: #333;
	text-decoration: none;
}

.site-footer {
	background-color: #1a1a1a;
	color: #ffffff;
	padding: 20px;
	text-align: center;
}

.site-footer__copy {
	margin: 0;
	font-size: 14px;
}


/* ==========================================================================
   LP専用ページ全体レイアウト（コンテナ・サイドバー・コンテンツ）
   ========================================================================== */

/**
 * LP専用ページ全体（page-lp.php）で使用するベースレイアウト
 * - PC：画面全体の高さを確保して余白を整える
 * - SP：他レイアウトと共通のベース
 */
body.lp-page {
	margin: 0;
	padding: 0;
	min-height: 100vh;
	opacity: 0;
	transition: opacity 0.6s ease-out;
}

/* 背景画像・オーバーレイ・サイドバー画像の読み込み完了後に一括フェードイン */
body.lp-page.lp-page-ready {
	opacity: 1;
}

body.lp-page .lp-main {
	position: relative;
	z-index: 2;
}

/**
	 * LPメインカラム（中央のLP本体）のレイアウト
	 * - PC：幅450pxのボックスを中央に配置
	 * - SP：画面幅いっぱいに表示
	 */

/**
	 * LPコンテンツ全体のラッパー
	 * - LP本体ボックス＋サイドバナーなどをまとめるコンテナ
	 */
body.lp-page .lp-content-wrapper {
	position: relative;
	width: 100%;
	padding: 50px 20px 0;
	box-sizing: border-box;
}

/* 451〜490px幅の端末で左右の余白をなくし、LP本体ボックスを画面端まで広げる */
@media screen and (max-width: 490px) and (min-width: 451px) {
	body.lp-page .lp-content-wrapper {
		padding-left: 0;
		padding-right: 0;
	}
}

body.lp-page .lp-container {
	width: 450px;
	max-width: 100%;
	margin: 0 auto;
	background-color: #fff;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	overflow: hidden;
}

/* LPコンテナ内の画像がはみ出さないように調整 */
body.lp-page .lp-container img {
	max-width: 100%;
	height: auto;
}

/**
	 * LPサイドバナー（左右に表示する画像やバナー）のレイアウト
	 */
body.lp-page .lp-sidebar {
	position: fixed;
	top: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
	z-index: 10;
}

body.lp-page .lp-sidebar--left {
	left: 30px;
	align-items: flex-start;
}

body.lp-page .lp-sidebar--right {
	right: 30px;
	align-items: flex-end;
}

body.lp-page .lp-sidebar-item {
	display: block;
}

body.lp-page .lp-sidebar-image {
	display: block;
	width: auto;
	height: auto;
	max-width: 250px;
	border-radius: 8px;
}

/* サイドバナーは画面幅1100px以下では非表示にする（狭い画面対策） */
@media screen and (max-width: 1100px) {
	body.lp-page .lp-sidebar {
		display: none;
	}
}

/**
	 * LPコンテンツブロック（画像・フォームなど各セクション用のラッパー）
	 */
/**
		 * スマホ幅（〜450px）でのLP全体レイアウト調整
		 */
@media screen and (max-width: 450px) {
	body.lp-page {
		background-color: #fff !important;
		background-image: none !important;
	}

	body.lp-page .lp-content-wrapper {
		padding: 0;
		gap: 0;
	}

	body.lp-page .lp-container {
		box-shadow: none;
		border-radius: 0;
	}

	body.lp-page .lp-sidebar {
		display: none;
	}
}

/**
 * LP固定フッターCTA（画面下に表示するボタンエリア）
 */
/**
 * LP Text Content Block
 * Override line-height: 0 from .lp-content-block for text content
 */


/* ==========================================================================
   LP Content Blocks (Shared with Editor)
   The styles for Reviews, Balloons, etc. are now loaded from lp-content-blocks.css
   to ensure consistency between Editor and Frontend.
   ========================================================================== */
/* Footer Buttons (Text Mode) */
body.lp-page .lp-fixed-footer-item {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	padding: 10px;
	box-sizing: border-box;
	height: 100%;
	width: 100%;
}

body.lp-page .lp-fixed-footer-item.is-image-btn {
	padding: 0;
}

body.lp-page .lp-fixed-footer-item img {
	max-height: 100%;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	vertical-align: bottom;
}

/* Text Button Layout */
body.lp-page .lp-btn-icon {
	font-size: 24px;
	margin-right: 8px;
	line-height: 1;
}

body.lp-page .lp-btn-text-group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.2;
}

body.lp-page .lp-btn-main-text {
	font-size: 16px;
	font-weight: bold;
}

body.lp-page .lp-btn-sub-text {
	font-size: 10px;
	opacity: 0.9;
}

/* Adjustments for multiple buttons */
body.lp-page .lp-fixed-footer-inner.col-2 .lp-btn-main-text {
	font-size: 14px;
}

body.lp-page .lp-fixed-footer-inner.col-3 .lp-btn-main-text {
	font-size: 12px;
}

body.lp-page .lp-fixed-footer-inner.col-3 .lp-btn-icon {
	font-size: 20px;
	margin-right: 4px;
}


/* ===========================================================================
   LP Heading Block (Frontend)
   Override line-height: 0 from .lp-content-block for heading content
   ========================================================================== */
body.lp-page .lp-content-block.lp-heading-block {
	line-height: 1.4;
}

body.lp-page .lp-content-block.lp-heading-block a {
	line-height: inherit;
	display: inline;
}

body.lp-page .lp-heading-content {
	margin: 0;
	font-weight: bold;
}

/* Editor Placeholder Area */
.lp-shortcode-placeholder {
	padding: 60px 20px;
	background: #f8f9fa;
	border: 2px dashed var(--bks-border-color);
	text-align: center;
	color: #5f6368;
	border-radius: var(--bks-border-radius);
	font-weight: 500;
}

.lp-shortcode-loading {
	padding: 40px;
	text-align: center;
	color: #666;
}

.spin {
	animation: lp-spin 2s linear infinite;
}

@keyframes lp-spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* Mobile 450px Mobile-first already */
@media screen and (max-width: 450px) {

	.lp-container .wpforms-container,
	.lp-container .wpcf7 {
		padding: 0 5px;
	}
}