/*
Theme Name:     Lightning-child
Description:    Lightningの子テーマ
Author:         login_user
Template:       lightning

(optional values you can add: Theme URI, Author URI, Version, License, License URI, Tags, Text Domain)
*/

/* =========================
   Lightningのh2の横棒を消す
========================= */

h2 {
	border-top: none !important;
	padding-top: 0 !important;
}

/* -----------------------------
	改行
----------------------------- */

.hidden {
	display: none;
}

.hidden.pcBlock {
	display: inline;
}

@media screen and (max-width: 640px) {
	.hidden.pcBlock {
		display: none;
	}

	.hidden.spBlock {
		display: inline;
	}
}

/*スマホcenter⇒left*/
@media screen and (max-width: 800px) {
	.mobile-left {
		text-align:left;
	}
}

/* -----------------------------
	汎用
----------------------------- */

.clear {
    clear:both;
}

.floatL{
	float:left;
	margin: 0;
}

.floatR{
	float:right;
	margin: -15px 0 0 20px;
}

.center{
	text-align:center;
}

.right{
	text-align:right;
}

.left{
	text-align:left;
}

.underline {
    text-decoration:underline;
}

strong {
	font-weight:bold;
}

em {
	font-weight:bold;
}

.font-bold {
	font-weight:bold;
}

.font-normal {
	font-weight:normal;
}

.indent-1 {
	margin:0 0 0 1em;
	text-indent: -1em;
}

.indent1 {
	text-indent: 1em;
}




/* =====================================================
プラグインストア 共通ページ
お問い合わせ / thanks / プライバシーポリシー / 特商法
===================================================== */

:root {
--ps-blue: #2563eb;
--ps-blue-dark: #1e40af;
--ps-blue-deep: #0f172a;
--ps-blue-soft: #eff6ff;
--ps-blue-soft-2: #f8fbff;
--ps-sky: #e0f2fe;
--ps-border: #dbeafe;
--ps-text: #334155;
--ps-muted: #64748b;
--ps-white: #ffffff;
}

/* Lightning見出し線対策 */
.contact-page h1,
.contact-page h2,
.contact-page h3,
.reservation-privacy-page h1,
.reservation-privacy-page h2,
.reservation-privacy-page h3,
.tokushoho-page h1,
.tokushoho-page h2,
.tokushoho-page h3 {
border-top: none !important;
padding-top: 0 !important;
}

.contact-page h1::before,
.contact-page h2::before,
.contact-page h3::before,
.reservation-privacy-page h1::before,
.reservation-privacy-page h2::before,
.reservation-privacy-page h3::before,
.tokushoho-page h1::before,
.tokushoho-page h2::before,
.tokushoho-page h3::before {
display: none !important;
content: none !important;
}

/* 改行制御 */
.hidden {
display: none;
}

.hidden.pcBlock {
display: inline;
}

@media screen and (max-width: 640px) {
.hidden.pcBlock {
display: none;
}

.hidden.spBlock {
display: inline;
}
}

/* =====================================================
お問い合わせページ / thanks 共通
===================================================== */

.contact-page {
color: var(--ps-text);
font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
line-height: 1.9;
background: #ffffff;
}

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

.contact-container {
width: min(1080px, calc(100% - 32px));
margin: 0 auto;
}

/* ヒーロー */
.contact-hero {
padding: 76px 0 70px;
background:
radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 34%),
radial-gradient(circle at bottom right, rgba(56, 189, 248, 0.14), transparent 32%),
linear-gradient(135deg, #ffffff 0%, #eff6ff 54%, #e0f2fe 100%);
border-bottom: 1px solid var(--ps-border);
text-align: center;
}

.contact-eyecatch {
display: inline-flex;
align-items: center;
justify-content: center;
margin: 0 0 18px;
padding: 7px 18px;
border-radius: 999px;
background: #ffffff;
color: var(--ps-blue);
font-size: 14px;
font-weight: 800;
letter-spacing: 0.08em;
box-shadow: 0 10px 28px rgba(37, 99, 235, 0.14);
}

.contact-hero h1 {
margin: 0 !important;
color: var(--ps-blue-deep) !important;
font-size: clamp(28px, 4vw, 42px) !important;
font-weight: 900 !important;
line-height: 1.35 !important;
letter-spacing: 0.03em;
}

.contact-lead {
max-width: 760px;
margin: 22px auto 0;
color: #475569;
font-size: 17px;
font-weight: 500;
line-height: 2;
}

/* 本文 */
.contact-main {
padding: 58px 0 84px;
background:
linear-gradient(180deg, #ffffff 0%, #f8fbff 52%, #eef8ff 100%);
}

/* contact-info が親になっている場合でもきれいに並べる */
.contact-info {
display: grid;
gap: 28px;
}

/* thanksページで contact-layout がある場合 */
.contact-layout {
display: grid;
grid-template-columns: 0.95fr 1.05fr;
gap: 28px;
align-items: stretch;
}

.contact-info-card,
.contact-form-card {
background: #ffffff;
border: 1px solid var(--ps-border);
border-radius: 24px;
padding: 36px 38px;
box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
}

.contact-info-card h2,
.contact-form-card h2 {
position: relative;
margin: 0 0 18px !important;
padding-left: 18px !important;
color: var(--ps-blue-deep) !important;
font-size: clamp(22px, 2.7vw, 30px) !important;
font-weight: 900 !important;
line-height: 1.45 !important;
}

.contact-info-card h2::after,
.contact-form-card h2::after {
content: "";
position: absolute;
left: 0;
top: 0.34em;
width: 5px;
height: 1.3em;
border-radius: 999px;
background: linear-gradient(180deg, var(--ps-blue), #38bdf8);
}

.contact-info-card p,
.contact-form-text {
margin: 0 0 18px;
color: #475569;
font-size: 16px;
line-height: 1.9;
}

.contact-note {
margin-top: 24px;
padding: 20px 22px;
background: var(--ps-blue-soft-2);
border: 1px solid var(--ps-border);
border-radius: 18px;
}

.contact-note p {
position: relative;
margin: 0 0 10px;
padding-left: 26px;
color: #475569;
font-size: 15px;
line-height: 1.8;
}

.contact-note p:last-child {
margin-bottom: 0;
}

.contact-note p::before {
content: "";
position: absolute;
left: 0;
top: 0.62em;
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--ps-blue);
box-shadow: 0 0 0 4px #dbeafe;
}

/* フォームまわり */
.contact-form-card .efm-form-wrap,
.contact-form-card .efm-form-card,
.contact-form-card form {
margin-top: 24px;
}

.contact-form-card input[type="text"],
.contact-form-card input[type="email"],
.contact-form-card input[type="tel"],
.contact-form-card input[type="url"],
.contact-form-card textarea,
.contact-form-card select {
max-width: 100%;
}

/* thanks ボタン */
.contact-thanks-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 220px;
min-height: 52px;
padding: 13px 28px;
border-radius: 999px;
background: linear-gradient(135deg, var(--ps-blue), #1d4ed8);
color: #ffffff !important;
font-size: 16px;
font-weight: 800;
text-decoration: none !important;
box-shadow: 0 12px 28px rgba(37, 99, 235, 0.28);
transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.contact-thanks-button::after {
content: "→";
margin-left: 10px;
font-size: 17px;
}

.contact-thanks-button:hover {
color: #ffffff !important;
transform: translateY(-2px);
box-shadow: 0 16px 34px rgba(37, 99, 235, 0.34);
opacity: 0.95;
}

.contact-note p:empty {
display: none !important;
}

.contact-note p:empty::before {
display: none !important;
}

/* =====================================================
プライバシーポリシー
※HTMLは reservation-privacy-page のままでOK
===================================================== */

.reservation-privacy-page {
--privacy-blue: var(--ps-blue);
--privacy-blue-dark: var(--ps-blue-dark);
--privacy-blue-light: var(--ps-border);
--privacy-sky: var(--ps-blue-soft-2);
--privacy-text: var(--ps-text);
--privacy-heading: var(--ps-blue-deep);
--privacy-border: var(--ps-border);
--privacy-card: #ffffff;

color: var(--privacy-text);
font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
line-height: 1.9;
background: #ffffff;
}

.reservation-privacy-page,
.reservation-privacy-page *,
.reservation-privacy-page *::before,
.reservation-privacy-page *::after {
box-sizing: border-box;
}

.reservation-privacy-container {
width: min(1080px, calc(100% - 32px));
margin: 0 auto;
}

.reservation-privacy-hero {
padding: 76px 0 70px;
background:
radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 34%),
radial-gradient(circle at bottom right, rgba(56, 189, 248, 0.14), transparent 32%),
linear-gradient(135deg, #ffffff 0%, #eff6ff 54%, #e0f2fe 100%);
border-bottom: 1px solid var(--privacy-border);
text-align: center;
}

.reservation-privacy-eyecatch {
display: inline-flex;
align-items: center;
justify-content: center;
margin: 0 0 18px;
padding: 7px 18px;
border-radius: 999px;
background: #ffffff;
color: var(--privacy-blue);
font-size: 14px;
font-weight: 800;
letter-spacing: 0.08em;
box-shadow: 0 10px 28px rgba(37, 99, 235, 0.14);
}

.reservation-privacy-hero h1 {
margin: 0 !important;
color: var(--privacy-heading) !important;
font-size: clamp(28px, 4vw, 42px) !important;
font-weight: 900 !important;
line-height: 1.35 !important;
letter-spacing: 0.03em;
}

.reservation-privacy-lead {
max-width: 820px;
margin: 22px auto 0;
color: #475569;
font-size: 17px;
font-weight: 500;
line-height: 2;
}

.reservation-privacy-main {
padding: 58px 0 84px;
background:
linear-gradient(180deg, #ffffff 0%, #f8fbff 52%, #eef8ff 100%);
}

.reservation-privacy-card {
margin: 0 0 24px;
padding: 34px 38px;
background: var(--privacy-card);
border: 1px solid var(--privacy-border);
border-radius: 24px;
box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
}

.reservation-privacy-card h2 {
position: relative;
margin: 0 0 18px !important;
padding-left: 18px !important;
color: var(--privacy-heading) !important;
font-size: clamp(21px, 2.4vw, 28px) !important;
font-weight: 900 !important;
line-height: 1.45 !important;
}

.reservation-privacy-card h2::before {
content: "";
position: absolute;
left: 0;
top: 0.34em;
width: 5px;
height: 1.3em;
border-radius: 999px;
background: linear-gradient(180deg, var(--privacy-blue), #38bdf8);
}

.reservation-privacy-card p {
margin: 0 0 14px;
color: #475569;
font-size: 16px;
line-height: 1.9;
}

.reservation-privacy-card p:last-child {
margin-bottom: 0;
}

.reservation-privacy-card ul {
margin: 16px 0 0;
padding: 0;
list-style: none;
}

.reservation-privacy-card li {
position: relative;
margin: 0 0 10px;
padding-left: 30px;
color: #475569;
font-size: 16px;
line-height: 1.8;
}

.reservation-privacy-card li::before {
content: "\2713";
position: absolute;
left: 0;
top: 0.05em;
color: var(--privacy-blue);
font-weight: 900;
}

.reservation-privacy-contact {
border-color: rgba(37, 99, 235, 0.32);
}

.reservation-privacy-contact-box {
margin-top: 22px;
padding: 22px 24px;
border-radius: 18px;
background: var(--ps-blue-soft-2);
border: 1px solid var(--privacy-border);
}

.reservation-privacy-contact-box p {
margin: 0 0 14px;
}

.reservation-privacy-contact-box p:last-child {
margin-bottom: 0;
}

.reservation-privacy-contact-box strong {
color: var(--privacy-blue-dark);
}

.reservation-privacy-date {
margin-top: 34px;
text-align: right;
color: var(--ps-muted);
font-size: 15px;
}

/* =====================================================
特定商取引法に基づく表記
===================================================== */

.tokushoho-page {
color: var(--ps-text);
font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
line-height: 1.9;
background:
linear-gradient(180deg, #ffffff 0%, #f8fbff 52%, #eef8ff 100%);
padding-bottom: 84px;
}

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

.tokushoho-hero {
width: min(1080px, calc(100% - 32px));
margin: 0 auto 34px;
padding: 76px 34px 70px;
background:
radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 34%),
radial-gradient(circle at bottom right, rgba(56, 189, 248, 0.14), transparent 32%),
linear-gradient(135deg, #ffffff 0%, #eff6ff 54%, #e0f2fe 100%);
border: 1px solid var(--ps-border);
border-radius: 28px;
text-align: center;
box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
}

.tokushoho-eyecatch {
display: inline-flex;
align-items: center;
justify-content: center;
margin: 0 0 18px;
padding: 7px 18px;
border-radius: 999px;
background: #ffffff;
color: var(--ps-blue);
font-size: 14px;
font-weight: 800;
letter-spacing: 0.08em;
box-shadow: 0 10px 28px rgba(37, 99, 235, 0.14);
}

.tokushoho-hero h2 {
margin: 0 !important;
color: var(--ps-blue-deep) !important;
font-size: clamp(28px, 4vw, 42px) !important;
font-weight: 900 !important;
line-height: 1.35 !important;
letter-spacing: 0.03em;
}

.tokushoho-hero p {
max-width: 820px;
margin: 22px auto 0;
color: #475569;
font-size: 17px;
font-weight: 500;
line-height: 2;
}

.tokushoho-box {
width: min(1080px, calc(100% - 32px));
margin: 0 auto;
padding: 34px 38px;
background: #ffffff;
border: 1px solid var(--ps-border);
border-radius: 24px;
box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
overflow-x: auto;
}

.tokushoho-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
border: 1px solid var(--ps-border);
border-radius: 18px;
background: #ffffff;
}

.tokushoho-table th,
.tokushoho-table td {
padding: 20px 22px;
border-bottom: 1px solid var(--ps-border);
vertical-align: top;
font-size: 15.5px;
line-height: 1.9;
}

.tokushoho-table tr:last-child th,
.tokushoho-table tr:last-child td {
border-bottom: none;
}

.tokushoho-table th {
width: 260px;
background: #eff6ff;
color: var(--ps-blue-deep);
font-weight: 900;
text-align: left;
border-right: 1px solid var(--ps-border);
}

.tokushoho-table td {
background: #ffffff;
color: #475569;
}

.tokushoho-table a {
color: var(--ps-blue-dark);
font-weight: 700;
text-decoration: underline;
text-underline-offset: 3px;
}

/* =====================================================
スマホ調整
===================================================== */

@media (max-width: 900px) {
.contact-layout {
grid-template-columns: 1fr;
}

.contact-hero,
.reservation-privacy-hero {
padding: 54px 0 48px;
}

.contact-main,
.reservation-privacy-main {
padding: 40px 0 58px;
}

.contact-info-card,
.contact-form-card,
.reservation-privacy-card,
.tokushoho-box {
padding: 26px 22px;
border-radius: 20px;
}

.tokushoho-hero {
padding: 54px 22px 48px;
border-radius: 22px;
}

.contact-lead,
.reservation-privacy-lead,
.tokushoho-hero p {
font-size: 15px;
text-align: left;
}
}

@media (max-width: 640px) {
.contact-container,
.reservation-privacy-container,
.tokushoho-hero,
.tokushoho-box {
width: min(100% - 24px, 1080px);
}

.contact-hero h1,
.reservation-privacy-hero h1,
.tokushoho-hero h2 {
font-size: 29px !important;
}

.contact-info-card h2,
.contact-form-card h2,
.reservation-privacy-card h2 {
font-size: 21px !important;
}

.contact-info-card,
.contact-form-card,
.reservation-privacy-card,
.tokushoho-box {
padding: 24px 18px;
}

.contact-note,
.reservation-privacy-contact-box {
padding: 18px;
}

.contact-thanks-button {
width: 100%;
}

.reservation-privacy-date {
text-align: left;
}

.tokushoho-box {
overflow: visible;
}

.tokushoho-table,
.tokushoho-table tbody,
.tokushoho-table tr,
.tokushoho-table th,
.tokushoho-table td {
display: block;
width: 100%;
}

.tokushoho-table {
border: none;
border-radius: 0;
background: transparent;
}

.tokushoho-table tr {
margin-bottom: 16px;
border: 1px solid var(--ps-border);
border-radius: 16px;
overflow: hidden;
background: #ffffff;
}

.tokushoho-table th {
width: 100%;
border-right: none;
border-bottom: 1px solid var(--ps-border);
padding: 14px 16px;
background: #eff6ff;
}

.tokushoho-table td {
padding: 16px;
border-bottom: none;
}
}