@charset "utf-8";

:root {
    --lp-blue: #2f8fa3;
    --lp-blue-dark: #176579;
    --lp-blue-soft: #eaf7f9;
    --lp-blue-pale: #f5fbfc;
    --lp-mint: #72c4c7;
    --lp-navy: #243f4b;
    --lp-line: #cfe9ed;
    --lp-text: #33464d;
    --lp-muted: #66777d;
    --lp-white: #fff;
    --lp-pink: #d9a7a7;
    --lp-pink-dark: #bf8069;
}

/* =========================================
   1. フォント定義
   ========================================= */
@font-face {font-family: 'Centaur';src: url('../fonts/CENTAUR.woff') format('woff'), url('../fonts/CENTAUR.TTF') format('truetype');font-display: swap;font-style: normal;}

/* 筆記体用共通クラス */
.font-allura {font-family: 'Allura', cursive !important;text-transform: none !important;}

/* =========================================
   2. 全体構造・PC用レイアウト
   ========================================= */
body { margin: 0; padding: 0; color: var(--lp-text); }
#summer-light-canvas { display: none; }
.sp-only { display: none; }
.lp-page a { transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease; }

@media screen and (min-width: 641px) {
    #summer-light-canvas {display: block; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; pointer-events: none;background: linear-gradient(135deg, #f7fcfd 0%, #eaf7f9 100%);}
    .lp-main-container {width: 640px; margin: 0 auto;box-shadow: 0 0 30px rgba(0,0,0,0.1); position: relative;z-index: 100; min-height: 100vh; overflow: hidden;}
    header {width: 100% !important; position: sticky !important; top: 0; left: 0;z-index: 9999 !important; background-color: rgba(255, 255, 255, 0.95);box-shadow: 0 2px 10px rgba(0,0,0,0.05);}
    footer { width: 100% !important; position: relative; z-index: 10; background-color: #fff; }
}

@media screen and (max-width: 639px) {
    .lp-main-visual {min-height: auto;}
    .lp-main-visual img {object-position: center top;}
    .lp-hero-copy {bottom: 6%;padding: 0 22px;}
    .lp-hero-season {font-size: 0.86rem;margin-bottom: 10px;}
    .lp-hero-copy h1 {font-size: 1.45rem;line-height: 1.5;}
    .lp-hero-term {font-size: 0.76rem;padding: 7px 12px;}
}
@media screen and (max-width: 639px) {
    header { position: sticky !important; top: 0; z-index: 9999 !important; background-color: #fff; }
}

@media screen and (max-width: 767px) {
    .lp-sticky-cta {bottom: 10px;width: calc(100% - 24px);}
    .lp-sticky-cta a {padding: 14px 16px;font-size: 0.92rem;}
}

.lp-main-container main {display: flex;flex-direction: column;}
.hamburger-wrap {z-index: 10001 !important;}
#mobileNav {z-index: 10000 !important;}
.lp-main-visual {position: relative;order: 1;background: var(--lp-navy);}
.lp-main-visual img { width: 100%; height: auto; display: block; }
.plan-section {order: 2;}
.campaign-options {order: 3;}
.lp-dress {order: 4;}
.lp-concept {order: 5;}
.lp-inline-video {order: 6;}
.studio-booth {order: 7;}
.lp-team {order: 8;}
.plan-reserve {order: 9;}
.map-square-box {order: 10;}
.lp-sticky-cta {position: fixed;left: 50%;bottom: 16px;transform: translateX(-50%);width: min(590px, calc(100% - 32px));z-index: 9998;pointer-events: none;}
.lp-sticky-cta a {display: block;padding: 15px 20px;background: var(--lp-blue-dark);color: #fff;text-align: center;text-decoration: none;letter-spacing: 0.08em;box-shadow: 0 14px 34px rgba(23,101,121,0.32);pointer-events: auto;}
.lp-sticky-cta a:hover {background: var(--lp-blue);}

/* =========================================
   3. Concept Section
   ========================================= */
.lp-concept {width: 100%; padding: 120px 20px 180px; text-align: center; position: relative;background-image: url('../images/concept-back.webp'); background-size: cover; background-position: center; background-color: rgba(255, 255, 255, 0.4); background-blend-mode: overlay;}
.lp-contents-title {font-family: 'Centaur', serif; font-size: 1.6rem; color: var(--lp-pink-dark);letter-spacing: 0.15rem; margin-bottom: 20px;}
.lp-contents-title2 {font-family: "Noto Serif JP", serif; font-size: 2.2rem; line-height: 1.6; font-weight: 500; margin-bottom: 40px;}

/* ★縦線を横線へ修正 */
.concept-line { width: 100px; height: 1px; background-color: var(--lp-pink); margin: 0 auto 40px;}
.lp-contents-caption {font-family: "Noto Serif JP", serif !important;font-size: 1.15rem !important; line-height: 3.0 !important;letter-spacing: 0.1rem; color: #444; position: relative; z-index: 5;}
.lp-contents-caption span { color: var(--lp-pink-dark);}

/* ★透かし文字 THE DAY の位置と重なり調整 */
.lp-concept-watermark {position: absolute; bottom:18px; right:20px;left:20px;opacity: 0.12; color: var(--lp-pink-dark); z-index: 1; pointer-events: none; text-align: right;}
.lp-concept-watermark .wm-small { font-family: 'Centaur', serif;  font-size: 2.5rem; margin-right: 40px; margin-bottom:-50px;}
.lp-concept-watermark .wm-large { font-family: 'Centaur', serif; font-size: 7.4rem; display: block; line-height: 1; white-space: nowrap; }

@media screen and (max-width: 639px) {
    .lp-concept { padding: 80px 20px 120px; }
    .lp-contents-title2 { font-size: 1.6rem; }
    .lp-contents-caption { font-size: 1rem !important; line-height: 2.5 !important; }
    .lp-concept-watermark {position: absolute; bottom:18px; right:10px;left:10px;}
    .lp-concept-watermark .wm-large { font-size: 4.4rem; }
    .lp-concept-watermark .wm-small {margin-right:10px; margin-bottom:-25px;}

}

/* =========================================
   4. Team Section (About Us)
   ========================================= */
.lp-team { padding:5rem 0;overflow: hidden;
    background: rgba(255, 255, 255, 0.01); 
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.03);
}

.team-main-photo { position: relative; padding: 0 50px; margin-bottom: 80px; }
.team-main-photo img { width: 100%; }
.team-main-photo .sc-tt { position: absolute; top: 10%; left: 10px; color: var(--lp-blue); font-size: 3rem; z-index: 2;transform: rotate(-15deg);}
.team-staff-list { display: flex; flex-direction: column; gap: 120px; margin-top: 80px; }
.team-staff-item { display: flex; width: 100%; }

.team-lead{ display: flex; flex-direction: column; gap: 20px;padding:0 50px;text-align: center;}
.team-lead .en-tt{ font-family: 'Centaur', serif; color: var(--lp-blue); font-size: 1.5rem; }
.team-lead .main-tt{font-family: "Noto Serif JP", serif; font-size: 2.2rem; line-height: 1.6; font-weight: 500; margin-bottom: 40px;}

/* ★スタッフ写真のサイズ感を修正（80%→65%） */
.team-staff-photo { position: relative; width:100%; }
.team-staff-photo img { width:65%; display: block; }
.team-staff-photo .sc-tt { position: absolute; color: var(--lp-blue); z-index: 2; pointer-events: none; white-space: nowrap;}
.staff-modal-open {position: absolute; bottom: 20px; background: none; border: none; cursor: pointer; z-index: 5;}
.btn-txt {font-family: 'Centaur', serif; color: var(--lp-blue); font-size: 1.3rem;padding-bottom: 8px; position: relative;}
.btn-txt span {color: var(--lp-blue);}
.btn-txt::after { content: ""; position: absolute; bottom: 0; height: 1px; background-color: var(--lp-blue); width:100%;}

/* 段違いレイアウトと役職テキスト位置の微調整 */

.left-style .sc-tt { top: 25%; left:50%; font-size: 3.5rem;transform: rotate(-10deg); }
.left-style .staff-modal-open {width:100%;right:0;text-align: end;}
.left-style .btn-txt{display: block;width:50%;margin-left:50%;padding-right:5%;}
.left-style .btn-txt::after { left: 0;}

.right-style .team-staff-photo img {margin-left:35%;}
.right-style .sc-tt { top: 20%; left:5%; font-size: 3rem; transform: rotate(-10deg); }
.right-style .staff-modal-open {width:100%;left:0;}
.right-style .btn-txt{display: block;width:50%;margin-right:50%;padding-left:5%;text-align: left;}
.right-style .btn-txt::after { right: 0; }
@media screen and (max-width: 639px) {
    .team-main-photo {width:90%; padding: 0; margin:0 auto 80px; }
    .team-main-photo .sc-tt {font-size:1.5rem;top:-3%;}
    .team-lead .main-tt{font-size: 1.6rem;}
    .left-style .sc-tt {font-size: 2rem;left:55%;}
    .right-style .sc-tt {font-size:2rem;}





}
/* =========================================
   5. Modal (Popup)
   ========================================= */
.staff-modal {position: fixed; top: 0; left: 0; width: 100%; height: 100%;display: none; align-items: center; justify-content: center; z-index: 10000;}
.modal-overlay { position: absolute; width: 100%; height: 100%; background: rgba(0,0,0,0.7); }
.modal-content {position: relative; width: 90%; max-width: 450px; background: #fff;padding: 50px 30px; z-index: 10001;}
.modal-close { position: absolute; top: 15px; right: 20px; font-size: 2rem; background: none; border: none; cursor: pointer; }
.modal-img img { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; margin: 0 auto 20px; display: block; }
.modal-text h3 { font-family: "Noto Serif JP", serif; color: var(--lp-blue); text-align: center; margin-bottom: 15px; }
.modal-text p { font-size: 0.9rem; line-height: 1.8; text-align: justify; }

/* =========================================
   5. Inline Video Section (修正版)
   ========================================= */
.lp-inline-video {width: 100%;background-color: var(--lp-blue-pale);position: relative;z-index: 10;padding:5rem 0;}

/* PC時（640px固定幅）の制御 */
@media screen and (min-width: 641px) {
    .lp-inline-video {width: 640px;margin-left: auto; margin-right: auto; }
}

.video-wrapper { width: 100%; height: 0;padding-bottom: 56.25%; position: relative;overflow: hidden;}
.video-wrapper video,
.video-wrapper img {position: absolute;top: 0;left: 0; width: 100%; height: 100%; object-fit: contain; }

/* ポスター画像が動かない場合の保険（imgタグとして扱う場合） */
.video-poster-img {width: 100%; height: auto; display: block;}

/* スマホ調整 */
@media screen and (max-width: 639px) {
    .lp-inline-video { margin-top: 60px; margin-bottom: 80px; }
}

/* =========================================
   6. Studio Photo Booth (ちりばめ & 拡大版)
   ========================================= */
.studio-booth {padding: 120px 0;background-color: #fff;position: relative;overflow: hidden;}

/* ★ 背景の影（ちりばめ配置） ★ 完全上書き */
.booth-bg-shadow-wrap {position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 1; pointer-events: none;}
.bg-shadow-el {position: absolute;opacity: 0.15; height: auto;}

/* 笹の影 */
.bg-s01 {top: 50px;right: -100px;width: 450px;transform: rotate(20deg);}
.bg-s02 {top: 35%;left: -80px;width: 400px;transform: rotate(-10deg);}
.bg-s03 {bottom: -150px;right: -120px; width: 600px; transform: rotate(10deg);}

/* コンテンツレイアウト */
.booth-container {max-width: 1000px;margin: 0 auto;padding: 0 5%;display: flex;flex-direction: column;position: relative;z-index: 10;}
/* タイトルエリア（左寄せ） */
.booth-title-group {align-self: flex-start;width: 60%;margin-bottom: 10px;border-bottom: 1px solid var(--lp-blue); padding-bottom: 15px;}
.booth-en-title {font-family: 'Centaur', serif;font-size: 2.2rem;color: #444;margin: 0;letter-spacing: 0.1rem;}
.booth-jp-title {font-size: 1.1rem;color: #444;font-weight: 500;margin: 8px 0 0 0;}
.booth-jp-cap {font-size: 1rem;color: #666;margin-top: 10px;margin-bottom:100px;}

/* 画像アイテムの共通設定 */
.booth-item {position: relative; margin-bottom: 150px;}
.booth-item img { width: 100%;height: auto;display: block;box-shadow: 0 15px 40px rgba(0,0,0,0.12);position: relative;z-index: 2;}

.item-right {align-self: flex-end;width: 65%;}
.item-left {align-self: flex-start;width: 50%;max-width: 450px;}

/* 金色の装飾線（突き出し） */
.deco-line {position: absolute;width: 100px;height: 100px;border: 1px solid var(--lp-blue);z-index: 1;}
.top-left {top: -25px;left: -25px;border-right: none;border-bottom: none;}
.bottom-right {bottom: -25px;right: -25px;border-left: none;border-top: none;}

/* レスポンシブ：スマホ対応 */
@media screen and (max-width: 767px) {
    .studio-booth {padding:80px 0;}
    .booth-item {width: 90%;align-self: center !important;margin-bottom: 80px;}
    .booth-title-group { width: 100%; }
    .deco-line { width: 60px; height: 60px; }
       /* スマホでは影を絞る */
    .bg-s01 { width: 200px; right: -50px; }
    .bg-s02 { display: none; } /* 笹02は隠す */
    .bg-s03 { width: 350px; bottom: -80px; }
}


/* =========================================
   7. Plan Section (余白 & 出し分け最適化)
   ========================================= */
.plan-section {padding: 112px 0 108px;background: linear-gradient(180deg, #eaf7f9 0%, #f9fdfe 52%, #ffffff 100%);position: relative;overflow: hidden;}
.plan-section::before {content: "Summer Gift";position: absolute;top: 38px;right: -18px;font-family: 'Allura', cursive;color: rgba(47,143,163,0.1);font-size: 7rem;line-height: 1;transform: rotate(-8deg);pointer-events: none;}
.plan-section::after {content: "";position: absolute;left: -110px;top: 210px;width: 300px;height: 300px;border: 1px solid rgba(47,143,163,0.16);border-radius: 50%;box-shadow: 80px 120px 0 rgba(114,196,199,0.08);pointer-events: none;}
.plan-header {margin-bottom: 44px;padding:0 46px;position: relative;z-index: 1;text-align: center;}
.plan-en-title {font-family: "Noto Serif JP", serif;color: var(--lp-blue);font-size: 1.5rem;margin: 0;letter-spacing: 0.08em;line-height: 1.7;font-weight: 500;}
.plan-season-label {display: inline-block;margin: 18px 0 24px;padding: 8px 16px;background: rgba(255,255,255,0.82);border: 1px solid var(--lp-line);color: var(--lp-blue);font-size: 0.78rem;letter-spacing: 0.04em;line-height: 1.6;}
.plan-main-title {color: var(--lp-blue-dark);font-size: 1.68rem;line-height: 1.75;font-weight: 500;margin: 0;}
.plan-main-copy {margin: 24px auto 0;color: var(--lp-muted);font-size: 1.05rem;line-height: 2.1;max-width: 450px;text-align: left;}
.title-underline {width: 72px;height: 1px;background-color: var(--lp-blue);margin: 18px auto 0;}
.plan-card-box {max-width: 780px;margin: 0 auto;background: rgba(255,255,255,0.96);box-shadow: 0 24px 70px rgba(47,143,163,0.18);padding:0;width:90%;position: relative;z-index: 1;border: 1px solid rgba(255,255,255,0.8);overflow: hidden;}
.plan-card-box::before {content: "";position: absolute;top: 0;left: 0;width: 100%;height: 7px;background: linear-gradient(90deg, var(--lp-blue-dark), var(--lp-mint));z-index: 2;}
.plan-image-wrap img {width: 100%;display: block;}
.plan-body {padding: 44px 46px 84px;text-align: center;position: relative;}
.offer-head {padding: 0 0 36px;border-bottom: 0;}
.campaign-period {display: inline-block;margin: 20px 0 0;padding: 0;color: var(--lp-blue-dark);font-size: 0.94rem;letter-spacing: 0.05em;line-height: 1.6;border: 0;background: transparent;}
.price-before {display: inline-flex;align-items: center;justify-content: center;gap: 10px;color: var(--lp-blue);font-size: 0.91rem;text-decoration: none;margin: 0 0 18px;letter-spacing: 0.14em;line-height: 1.45;}
.price-before:before,.price-before:after {content: "";display: block;width: 34px;height: 1px;background: rgba(47,143,163,0.34);}
.plan-price-list {display: grid;grid-template-columns: minmax(0, 1fr);gap: 14px;align-items: stretch;max-width: 470px;margin: 0 auto;}
.plan-price-item {padding: 24px 18px 22px;background: linear-gradient(180deg, #f5fbfc 0%, #fff 100%);border: 1px solid var(--lp-line);color: var(--lp-blue-dark);}
.plan-price-main {display: flex;align-items: center;justify-content: center;gap: 12px;}
.plan-style {display: flex;flex-direction: column;align-items: center;justify-content: center;flex: 0 0 72px;width: 72px;height: 72px;border-radius: 50%;background: var(--lp-blue-dark);color: #fff;line-height: 1.2;letter-spacing: 0.06em;margin-right: 2px;}
.plan-style-main {display: block;font-size: 1.18rem;font-weight: 500;color: inherit;}
.plan-style-sub {display: block;font-size: 0.84rem;color: inherit;}
.price-value {display: flex;align-items: flex-end;gap: 6px;}
.price-num {font-size: 5.52rem;font-family: 'Centaur', serif;color: var(--lp-blue-dark);line-height: 0.88;}
.price-suffix {display: inline-flex;align-items: baseline;gap: 4px;color: var(--lp-blue-dark);font-family: "Noto Serif JP", serif;font-size: 1.37rem;line-height: 1.1;margin-bottom: 0.12em;}
.tax-note {font-size: 0.91rem;line-height: 1.2;color: inherit;font-family: inherit;}
.plan-included-box {margin: 34px 0 0;padding: 0 0 30px;color: var(--lp-blue-dark);text-align: left;border-bottom: 1px solid var(--lp-line);}
.plan-included-title {margin: 0 0 10px;font-size: 0.94rem;letter-spacing: 0.08em;color: var(--lp-blue);}
.plan-included-box p {margin: 0;font-size: 1rem;line-height: 1.95;}
.benefit-heading {margin: 34px 0 28px;text-align: center;}
.benefit-heading-en {margin: 0 0 8px;color: var(--lp-blue);font-size: 0.76rem;letter-spacing: 0.16em;line-height: 1.4;}
.benefit-heading-title {margin: 0;color: var(--lp-blue-dark);font-size: 1.24rem;letter-spacing: 0.08em;line-height: 1.7;}
.offer-benefits {display: grid;grid-template-columns: 1fr;gap: 20px;margin: 0 0 40px;width: 100%;}
.offer-benefit {position: relative;display: grid;grid-template-columns: minmax(90px, 0.28fr) minmax(0, 1fr);align-items: center;column-gap: 22px;padding: 30px 34px 28px;background: linear-gradient(180deg, #f5fbfc 0%, #fff 100%);border: 1px solid var(--lp-line);box-shadow: 0 10px 24px rgba(47,143,163,0.07);overflow: visible;text-align: left;}
.offer-benefit .benefit-number {position: static;display: block;margin: 0;color: rgba(47,143,163,0.34);font-family: 'Allura', cursive;font-size: 5.2rem;line-height: 0.82;letter-spacing: 0;transform: translateY(-8px);}
.benefit-content strong {display: block;color: var(--lp-blue-dark);font-size: 1.08rem;font-weight: 500;line-height: 1.6;}
.benefit-content small {display: block;margin-top: 8px;color: var(--lp-muted);font-size: 0.82rem;line-height: 1.75;}
.plan-footer {border-top: 0;padding-top: 0;max-width: 520px;margin: 0 auto;}
.plan-includes {margin: 0 0 26px;padding: 18px 18px;background: var(--lp-blue-soft);color: var(--lp-blue-dark);font-size: 0.86rem;line-height: 1.95;}
.plan-offer-cta {display: block;padding: 19px 20px;background: var(--lp-blue-dark);color: #fff;text-decoration: none;font-weight: 500;letter-spacing: 0.08em;box-shadow: 0 12px 26px rgba(23,101,121,0.22);line-height: 1.6;}
.plan-offer-cta:hover {background: var(--lp-blue);transform: translateY(-2px);}
.plan-disclaimer{color:#666;margin: 24px 50px 0;font-size: 0.86rem;line-height: 1.9;position: relative;z-index: 1;}
/* スマホ */
@media screen and (max-width: 767px) {
    .sp-only { display: block; }
    .plan-section {padding: 92px 0 70px;}
    .plan-section::before {font-size: 4.6rem;top: 28px;right: -22px;}
    .plan-section::after {right: -130px;bottom: 20px;}
    .plan-header {padding: 0 25px;margin-bottom: 34px;}
    .plan-en-title {font-size: 1.3rem;}
    .plan-season-label {margin: 16px 0 22px;}
    .plan-main-title {font-size: 1.32rem;line-height: 1.8;}
    .plan-main-copy {font-size: 0.96rem;line-height: 2.05;margin-top: 22px;}
    .plan-body { padding: 32px 18px 58px; }
    .plan-card-box {max-width: 780px;margin: 0 auto;box-shadow: 0 15px 36px rgba(72,130,143,0.12);padding:0;width:95%;}
    .offer-head {padding-bottom: 30px;}
    .campaign-period {font-size: 0.86rem;line-height: 1.6;margin: 16px 0 0;padding: 0;}
    .plan-price-list {grid-template-columns: 1fr;gap: 12px;}
    .plan-price-item {padding: 22px 10px 20px;}
    .plan-price-main {gap: 6px;}
    .plan-style {flex-basis: 56px;width: 56px;height: 56px;margin-right: 0;}
    .plan-style-main {font-size: 0.94rem;}
    .plan-style-sub {font-size: 0.68rem;}
    .price-num { font-size: 4.1rem; }
    .price-suffix {font-size: 1rem;white-space: nowrap;}
    .tax-note {font-size: 0.72rem;white-space: nowrap;}
    .price-before {margin-bottom: 16px;font-size: 0.86rem;}
    .price-before:before,.price-before:after {width: 22px;}
    .benefit-heading {margin: 30px 0 26px;}
    .benefit-heading-title {font-size: 1.1rem;}
    .offer-benefits {grid-template-columns: 1fr;gap: 18px;margin: 0 0 32px;max-width: none;}
    .offer-benefit {grid-template-columns: 72px minmax(0, 1fr);column-gap: 14px;padding: 24px 18px 22px;}
    .offer-benefit .benefit-number {font-size: 4rem;transform: translateY(-6px);}
    .benefit-content strong {font-size: 0.98rem;}
    .benefit-content small {font-size: 0.78rem;line-height: 1.7;}
    .plan-included-box {padding-bottom: 26px;}
    .plan-included-title {font-size: 0.88rem;}
    .plan-included-box p {font-size: 0.92rem;}
    .plan-footer {padding-top: 0;}
    .plan-includes {font-size: 0.82rem;line-height: 1.95;}
    .plan-offer-cta {padding: 17px 18px;font-size: 0.92rem;}
    .plan-disclaimer{color:#666;margin: 20px 24px 0;}
}

/* --- Campaign Option Slider --- */
.campaign-options {padding: 108px 0 96px;background: linear-gradient(180deg, #f4fbfc 0%, #ffffff 100%);overflow: hidden;border-top: 1px solid var(--lp-line);position: relative;}
.campaign-options::before {content: "";position: absolute;top: 0;left: 50%;width: 72px;height: 3px;background: var(--lp-blue);transform: translateX(-50%);}
.campaign-options__inner {max-width: 100%;margin: 0 auto;}
.option-title-group {max-width: 560px;margin: 0 auto;text-align: center;padding: 0 28px;}
.option-en-title {font-family: "Noto Serif JP", serif;font-size: 1.28rem;color: var(--lp-blue);letter-spacing: 0.08em;margin: 0;font-weight: 500;}
.option-jp-title {font-size: 1.2rem;color: #333;font-weight: 500;line-height: 1.8;margin: 8px 0 0;}
.option-line {width: 72px;height: 1px;background: var(--lp-blue);margin: 20px auto 28px;}
.option-lead {font-size: 0.94rem;color: #555;line-height: 2;margin: 0 0 64px;}
.option-slider {width: 100%;padding: 0 0 52px;}
.option-slider .swiper-wrapper {align-items: stretch;}
.option-slider .swiper-slide {height: auto;}
.option-card {height: 100%;min-height: 430px;background: #fff;border: 1px solid #dceff2;padding: 24px 0 30px;box-shadow: 0 14px 34px rgba(72,130,143,0.1);overflow: hidden;display: flex;flex-direction: column;}
.option-card__image {display: block;width: calc(100% - 56px);aspect-ratio: 4 / 3;overflow: hidden;background: #f4fbfc;margin: 0 28px 26px;border-radius: 4px;}
.option-card__image img {width: 100%;height: 100%;object-fit: cover;display: block;}
.option-card__tag {display: inline-block;margin: 0 0 18px;padding: 5px 10px;background: var(--lp-blue-soft);color: var(--lp-blue);font-family: "Noto Serif JP", serif;letter-spacing: 0.04em;font-size: 0.78rem;}
.option-card h3 {font-size: 1.2rem;color: #333;font-weight: 500;margin: 0 28px 16px;}
.option-card p {font-size: 0.92rem;color: #555;line-height: 1.9;margin: 0;}
.option-card .option-card__tag {margin: 0 28px 18px;color: var(--lp-blue);font-size: 0.82rem;line-height: 1.2;}
.option-price-list {display: grid;gap: 14px;margin: 36px 28px 0;padding: 24px 24px;background: #f8fcfd;border: 1px solid #e8f2f4;}
.option-price-list p {display: grid;grid-template-columns: minmax(0, 1fr) auto auto;align-items: baseline;gap: 12px;padding: 14px 0 0;border-top: 1px solid #e0eef1;color: #444;}
.option-price-list p:first-child {padding-top: 0;border-top: 0;}
.option-price-list span {font-size: 0.9rem;line-height: 1.6;color: #333;}
.option-price-list del {font-size: 0.82rem;line-height: 1.4;color: #999;text-decoration-thickness: 1px;}
.option-price-list strong {font-size: 1.08rem;line-height: 1.4;color: var(--lp-blue-dark);font-weight: 500;white-space: nowrap;}
.option-note {max-width: 560px;margin: 22px auto 0;color: #777;font-size: 0.82rem;line-height: 1.8;padding: 0 28px;}
.option-pagination .swiper-pagination-bullet-active {background: var(--lp-blue);}

@media screen and (max-width: 767px) {
    .campaign-options {padding: 84px 0 76px;}
    .option-jp-title {font-size: 1.05rem;}
    .option-lead {margin-bottom: 52px;}
    .option-slider {padding: 0 0 48px;}
    .option-card {min-height: 420px;padding: 22px 0 28px;}
    .option-card__image {width: calc(100% - 48px);margin: 0 24px 24px;}
    .option-card h3 {margin: 0 24px 16px;}
    .option-card .option-card__tag {margin: 0 24px 18px;}
    .option-price-list {margin: 34px 24px 0;padding: 22px 20px;}
    .option-price-list p {grid-template-columns: 1fr;gap: 4px;}
    .option-price-list del {font-size: 0.8rem;}
    .option-price-list strong {font-size: 1.06rem;}
}

/* --- Map --- */
.map-square-box {width: 100%;aspect-ratio: 16 / 10;margin: 0;overflow: hidden;background: #f5fbfc;}
.map-square-box iframe {display: block;width: 100%;height: 100%;border: 0;}
@media screen and (max-width: 767px) {
    .map-square-box {aspect-ratio: 1 / 1;}
}

/* --- Reserve Form Section --- */
.plan-reserve {padding: 110px 0 130px;background: linear-gradient(180deg, #fff 0%, var(--lp-blue-pale) 100%);margin-bottom:0;}
.reserve-header {text-align: center; margin-bottom: 60px;}
.reserve-en-title {font-family: 'Centaur', serif;color: var(--lp-blue);font-size: 2.2rem;letter-spacing: 0.1em;}
.reserve-jp-title {font-size: 1rem;color: #888;margin: 10px 0 20px;letter-spacing: 0.2em;}
.reserve-intro {font-size: 1rem;line-height: 1.8;color: #444;}

/* フォームのレイアウト */
.reserve-form-wrap {max-width: 800px;margin: 0 auto;padding: 60px;}
.form-grid {display: grid;gap: 30px 40px;margin-bottom: 30px;}
.form-item {display: flex;flex-direction: column;}
.form-item label {font-size: 0.9rem;color: #333;margin-bottom: 10px;font-weight: 500;}
.form-item label .required {color: var(--lp-blue);margin-left: 4px;}

/* 入力要素の装飾 */
.form-item input[type="text"],
.form-item input[type="email"],
.form-item input[type="tel"],
.form-item select,
.form-item textarea {width: 100%;padding: 12px 15px;border: 1px solid #e0e0e0;background: #fff;font-size: 1rem;color: #444;outline: none;transition: border-color 0.3s;}
.form-item input:focus,
.form-item select:focus,
.form-item textarea:focus {border-color: var(--lp-blue);}

.form-item textarea {height: 120px; resize: none;}
.full-width {grid-column: span 2;}

/* 同意チェック */
.privacy-wrap {text-align: center;margin: 40px 0;}
.checkbox-label {font-size: 0.9rem;cursor: pointer;display: flex;align-items:center;justify-content:flex-end; gap: 10px;}
.checkbox-label a {color: var(--lp-blue);text-decoration: underline;}
.checkbox-label span{width:100%;text-align: left;}
/* 送信ボタン（プランの価格色に合わせる） */
.submit-area {text-align: center;}
.btn-submit {background-color: var(--lp-blue-dark);color: #fff;border: none;padding: 20px 80px;font-size: 1.1rem;letter-spacing: 0.1em;cursor: pointer;transition: all 0.3s ease;}
.btn-submit:hover {background-color: var(--lp-blue);transform: translateY(-2px);box-shadow: 0 8px 20px rgba(47,143,163,0.28);}
.error-message {color: var(--lp-blue);font-size: 0.8rem;margin-top: 5px;}

/* スマホ対応 */
@media screen and (max-width: 767px) {
    .plan-reserve {padding: 90px 0 118px;background: linear-gradient(180deg, #fff 0%, var(--lp-blue-pale) 100%);margin-bottom:0;}
    .reserve-form-wrap { padding: 40px 20px; }
    .form-grid { grid-template-columns: 1fr; gap: 20px; }
    .full-width { grid-column: auto; }
    .btn-submit { width: 100%; padding: 18px; }
    /* 同意チェック */
.privacy-wrap {text-align:left;margin: 40px 0;}
.checkbox-label {font-size: 0.9rem;cursor: pointer;display: flex;align-items:center;justify-content:center; gap: 10px;}
.checkbox-label input{width:10%;}
.checkbox-label a {color: var(--lp-blue);text-decoration: underline;}
.checkbox-label span{width:100%;text-align: left;}

}
/* =========================================
   8. Dress Collection Section (Adjusted)
   ========================================= */
.lp-dress {
    padding: 120px 0;
    overflow: hidden; /* ★重要：スライダーがはみ出さないように */
    position: relative;
    z-index: 10;box-shadow: 0 5px 20px rgba(0,0,0,0.05);
}

.lp-dress__inner {
    max-width: 100% !important; /* ★重要：横幅いっぱいまで使う */
    margin: 0 auto;
    padding: 0;
}

/* タイトルとボタンは中央のインナー幅（例: 640px）に合わせる */
.dress-title-group,
.dress-footer {
    max-width: 640px; /* bodyのlp-main-container幅に合わせる */
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
    text-align: center;
}

/* 既存のタイトル・線幅設定 */
.dress-en-title { font-family: "Noto Serif JP", serif; font-size: 1.28rem; color: var(--lp-blue); margin: 0; letter-spacing: 0.08em; font-weight: 500; }
.dress-jp-title { font-size: 1.1rem; color: #444; font-weight: 500; margin: 8px 0 0 0; }
.dress-line { width: 80px; height: 1px; background-color: var(--lp-blue); margin: 20px auto 60px; }

/* --- スライダー本体の調整 --- */
.dress-slider {
    width: 100%;
    padding: 20px 0 50px; /* ★上下にマージンを作る */
}

.dress-card {
    background: #fff;
    padding-bottom: 30px;
    
    
    /* ★初期状態は少し小さく、薄く */
    transform: scale(0.9);
    opacity: 0.6;
    transition: all 0.4s ease; /* なめらかに動かす */
}

/* ★中央（アクティブ）のカードだけを大きく、くっきり見せる */
.swiper-slide-active .dress-card {
    transform: scale(1);
    opacity: 1;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}

.dress-image-wrap img { width: 100%; height: auto; display: block; }

/* 文字情報：画像の下 */
.dress-info { padding: 25px 20px 0; text-align: center; }
.dress-info h3 { font-family: 'Centaur', serif; color: var(--lp-blue); font-size: 1.4rem; margin-bottom: 10px; }
.dress-info p { font-size: 0.9rem; color: #666; line-height: 1.6; margin: 0; }

/* 既存のボタン設定 */
.dress-footer { margin-top: 50px; }
.btn-view-all { display: inline-block; background-color: var(--lp-blue-dark); color: #fff; padding: 20px 80px; font-size: 1.1rem; letter-spacing: 0.15em; text-decoration: none; transition: all 0.3s ease; font-family: 'Centaur', serif; }

/* paginationカラー */
.swiper-pagination-bullet-active { background: var(--lp-blue); }
