@charset "utf-8";

:root {
    --lp-blue: #d9a7a7;
    --lp-blue-dark: #bd7f7f;
    --lp-blue-soft: #f8eaea;
    --lp-blue-pale: #fff8f8;
    --lp-mint: #ebcaca;
    --lp-navy: #806565;
    --lp-line: #eedada;
    --lp-text: #554848;
    --lp-muted: #786a6a;
    --lp-white: #fff;
    --lp-pink: #d9a7a7;
    --lp-pink-dark: #bd7f7f;
}

/* =========================================
   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, #fffdfd 0%, #f8eaea 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:1.05rem;margin-bottom:10px;}
    .lp-hero-copy h1 {font-size: 1.45rem;line-height: 1.5;}
    .lp-hero-term {font-size:1.05rem;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:1.05rem;}
}

.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);min-height: 720px;overflow: hidden;}
.lp-main-visual > img {width: 100%;height: 720px;display: block;object-fit: cover;object-position: 56% center;}
.lp-hero-shade {position:absolute;inset:0;background:linear-gradient(180deg,rgba(217,167,167,0.03) 0%,rgba(217,167,167,0.09) 38%,rgba(119,78,78,0.52) 100%);}
.lp-hero-copy {position:absolute;left:0;right:0;bottom:0;padding:48px 42px 54px;color:#fff;text-align:center;text-shadow:0 2px 12px rgba(91,59,59,0.2);}
.lp-hero-season {margin:0 0 14px;font-family:'Centaur',serif;font-size:1.05rem;letter-spacing:0.23em;}
.lp-hero-copy h1 {margin:0;font-family:"Noto Serif JP",serif;font-size:2rem;font-weight:500;line-height:1.6;letter-spacing:0.08em;}
.lp-hero-term {display:inline-block;margin:24px 0 0;padding:10px 22px;border-top:1px solid rgba(255,255,255,0.72);border-bottom:1px solid rgba(255,255,255,0.72);font-size:1.05rem;line-height:1.8;letter-spacing:0.08em;}
.lp-hero-term strong {font-size:1.12rem;font-weight:500;}
.lp-hero-benefit {margin:18px 0 0;font-size:1.05rem;line-height:1.65;letter-spacing:0.05em;}
.lp-hero-benefit span {font-size:1.32rem;color:#ffeaea;}
@media screen and (max-width: 639px) {
    .lp-main-visual {min-height: 620px;}
    .lp-main-visual > img {height: 620px;object-position: 58% center;}
    .lp-hero-copy {bottom: 0;padding: 38px 22px 42px;}
    .lp-hero-season {font-size:1.05rem;margin-bottom:10px;}
    .lp-hero-copy h1 {font-size: 1.45rem;line-height: 1.55;}
    .lp-hero-term {font-size:1.05rem;padding:7px 12px;margin-top:18px;}
    .lp-hero-term strong {font-size:1.08rem;}
    .lp-hero-benefit {font-size:1.05rem;margin-top:14px;}
    .lp-hero-benefit span {font-size: 1.14rem;}
}
.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 {position:relative;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(189,127,127,0.24);pointer-events:auto;overflow:hidden;isolation:isolate;}
.lp-sticky-cta a::after {content:"";position:absolute;z-index:1;top:-55%;left:-36%;width:18%;height:210%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.62),transparent);transform:rotate(18deg) translateX(0);pointer-events:none;animation:cta-shine 4.8s ease-in-out infinite;}
@keyframes cta-shine {
    0%, 68% {left:-36%;opacity:0;}
    72% {opacity:1;}
    88% {left:118%;opacity:1;}
    92%, 100% {left:118%;opacity:0;}
}
@media (prefers-reduced-motion: reduce) {
    .lp-sticky-cta a::after {animation:none;display:none;}
}
.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: 1.05rem !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:1.05rem;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: 1.05rem;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, #f8eaea 0%, #fff8f8 52%, #ffffff 100%);position: relative;overflow: hidden;}
.plan-section::before {content: "Autumn Wedding";position: absolute;top: 38px;right: -28px;font-family: 'Allura', cursive;color: rgba(189,127,127,0.09);font-size: 6.4rem;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(217,167,167,0.16);border-radius: 50%;box-shadow: 80px 120px 0 rgba(235,202,202,0.1);pointer-events: none;}
.plan-header {max-width:540px;margin:0 auto 44px;padding:38px 46px 36px;position:relative;z-index:1;text-align:center;background:transparent;border:0;box-shadow:none;overflow:visible;}
.plan-header::before,.plan-header::after {content:"";position:absolute;width:108px;height:42px;opacity:0.34;pointer-events:none;background:radial-gradient(ellipse at center,rgba(217,167,167,0.72) 0 42%,transparent 46%) 0 50% / 27px 15px repeat-x;}
.plan-header::before {top:15px;left:-15px;transform:rotate(-24deg);}
.plan-header::after {right:-15px;bottom:15px;transform:rotate(156deg);}
.plan-en-title {position:relative;z-index:1;font-family:"Noto Serif JP",serif;color:#514747;font-size:2rem;margin:0;letter-spacing:0.06em;line-height:1.5;font-weight:500;}
.plan-limit-title {display:block;width:max-content;margin:0 auto 18px;padding:6px 22px;border-radius:999px;background:var(--lp-blue);color:#fff;font-size:1.05rem;line-height:1.5;letter-spacing:0.12em;box-shadow:none;}
.plan-period-title {display:flex;align-items:center;justify-content:center;gap:13px;color:#786565;font-size:1.4rem;line-height:1.55;letter-spacing:0.08em;}
.plan-period-title::before,.plan-period-title::after {content:"";width:34px;height:1px;background:var(--lp-blue);opacity:0.72;}
.plan-main-title-text {display:block;margin-top:8px;color:#514747;font-size:2.72rem;line-height:1.4;letter-spacing:0.035em;white-space:nowrap;text-shadow:none;}
.plan-main-title-text::before,.plan-main-title-text::after {content:none;}
.plan-campaign-title {display:block;margin-top:1px;color:#786565;font-size:1.48rem;line-height:1.5;letter-spacing:0.24em;}
.plan-season-label {position:relative;z-index:1;display:inline-block;margin:0 0 22px;padding:0 0 8px;border-bottom:1px solid var(--lp-blue);color:#786565;font-family:'Centaur',serif;font-size:1.05rem;letter-spacing:0.16em;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 {position:relative;z-index:1;margin:25px auto 0;color:#685c5c;font-size:1.05rem;line-height:2.1;max-width:390px;text-align:center;}
.title-underline {position:relative;z-index:1;width:74px;height:1px;background-color:rgba(217,167,167,0.82);margin:21px auto 0;transform:none;box-shadow:none;}
.title-underline::after {content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;background:#fff;border:1px solid var(--lp-blue);transform:translate(-50%,-50%) rotate(45deg);}
.plan-card-box {max-width: 780px;margin: 0 auto;background: rgba(255,255,255,0.96);box-shadow: 0 24px 70px rgba(189,127,127,0.12);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:1.05rem;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:1.05rem;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(217,167,167,0.52);}
.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, #fff8f8 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:1.05rem;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:1.05rem;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:1.05rem;letter-spacing:0.08em;color:var(--lp-blue);}
.plan-included-box p {margin: 0;font-size: 1.05rem;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:1.05rem;letter-spacing:0.14em;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;}
.benefit-proof-gallery {display:grid;grid-template-columns:1fr;gap:58px;margin:0 0 44px;padding:44px 7px 0;}
.benefit-proof {position:relative;width:calc(100% - 10px);margin:0;overflow:visible;isolation:isolate;background:#fff;box-shadow:0 8px 22px rgba(189,127,127,0.12);}
.benefit-proof:nth-child(odd) {margin-right:auto;}
.benefit-proof:nth-child(even) {margin-left:auto;}
.benefit-proof::before {content:"";position:absolute;z-index:-1;inset:7px -7px -7px 7px;border:1px solid rgba(189,127,127,0.42);background:#fff8f8;pointer-events:none;}
.benefit-proof:nth-child(even)::before {inset:7px 7px -7px -7px;}
.benefit-proof-image {position:relative;z-index:1;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--lp-blue-soft);}
.benefit-proof-image img {display:block;width:100%;height:100%;object-fit:cover;}
.benefit-proof-script {position:absolute;z-index:3;top:0;right:8px;padding:0;color:#8f7773;font-family:'Allura',cursive;font-size:3.65rem;font-weight:400;line-height:1;letter-spacing:0.015em;text-shadow:0 1px 0 rgba(255,255,255,0.9),0 3px 8px rgba(255,255,255,0.65);transform:translateY(-58%) rotate(-3deg);transform-origin:center;pointer-events:none;}
.benefit-proof:nth-child(even) .benefit-proof-script {right:auto;left:8px;transform:translateY(-58%) rotate(3deg);}
.benefit-proof figcaption {position:absolute;z-index:2;left:0;right:0;bottom:0;width:auto;min-height:0;padding:30px 18px 12px;background:linear-gradient(180deg,rgba(43,31,34,0) 0%,rgba(43,31,34,0.14) 34%,rgba(43,31,34,0.72) 100%);border:0;color:#fff;text-align:left;text-shadow:0 2px 7px rgba(0,0,0,0.38);box-shadow:none;backdrop-filter:none;pointer-events:none;}
.benefit-proof figcaption small {display:block;margin-bottom:4px;color:#fff;font-family:"Noto Serif JP",serif;font-size:0.92rem;letter-spacing:0.05em;line-height:1.45;}
.benefit-proof figcaption strong {display:block;color:#fff;font-size:1.08rem;font-weight:500;line-height:1.5;letter-spacing:0.035em;}
.benefit-proof figcaption b {color:inherit;font-size:1.2em;font-weight:500;}
.offer-benefits {display:block;margin:0 0 42px;width:100%;border-top:1px solid rgba(217,167,167,0.72);}
.offer-benefit {display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:24px;align-items:stretch;padding:32px 7px 30px;background:transparent;border:0;border-bottom:1px solid var(--lp-line);box-shadow:none;text-align:left;}
.offer-benefit .benefit-number {position:static;display:block;margin:0;padding:4px 16px 0 0;border-right:1px solid rgba(217,167,167,0.58);color:rgba(189,127,127,0.68);font-family:'Centaur',serif;font-size:3.35rem;line-height:0.92;letter-spacing:-0.03em;transform:none;}
.benefit-content {display:block;min-width:0;}
.benefit-value {display:block;width:max-content;max-width:100%;margin:7px 0 0;padding:0;color:#a07171;font-family:"Noto Serif JP",serif;font-size:1.05rem;font-weight:500;line-height:1.55;letter-spacing:0.04em;white-space:normal;}
.benefit-content strong {display:block;color:#403737;font-size:1.24rem;font-weight:600;line-height:1.5;letter-spacing:0.025em;}
.benefit-content small {display:block;max-width:38em;margin-top:23px;color:#786f6f;font-size:1.05rem;line-height:1.9;letter-spacing:0.015em;}
.plan-footer {border-top: 0;padding-top: 0;max-width: 520px;margin: 0 auto;}
.plan-includes {margin:0 0 26px;padding:18px;background:var(--lp-blue-soft);color:var(--lp-blue-dark);font-size:1.05rem;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(189,127,127,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:1.05rem;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 {width:calc(100% - 28px);padding:32px 12px 30px;margin:0 auto 34px;}
    .plan-header::before,.plan-header::after {width:82px;height:34px;background-size:22px 13px;}
    .plan-en-title {font-size: 1.7rem;}
    .plan-limit-title {font-size:1.05rem;margin-bottom:15px;padding:6px 19px;}
    .plan-period-title {gap:8px;font-size:1.25rem;}
    .plan-period-title::before,.plan-period-title::after {width:20px;}
    .plan-main-title-text {font-size:clamp(1.92rem, 8.4vw, 2.18rem);letter-spacing:0;}
    .plan-main-title-text::before,.plan-main-title-text::after {display:none;}
    .plan-campaign-title {font-size:1.3rem;letter-spacing:0.18em;}
    .plan-main-copy {max-width:310px;font-size:1.05rem;}
    .plan-season-label {margin: 16px 0 22px;}
    .plan-main-title {font-size: 1.32rem;line-height: 1.8;}
    .plan-main-copy {font-size:1.05rem;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(189,127,127,0.12);padding:0;width:95%;}
    .offer-head {padding-bottom: 30px;}
    .campaign-period {font-size:1.05rem;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:1.05rem;}
    .plan-style-sub {font-size:1.05rem;}
    .price-num {font-size:3.7rem;}
    .price-suffix {font-size: 1.05rem;white-space: nowrap;}
    .tax-note {font-size:1.05rem;white-space:nowrap;}
    .price-before {margin-bottom:16px;font-size:1.05rem;}
    .price-before:before,.price-before:after {width: 22px;}
    .benefit-heading {margin: 30px 0 26px;}
    .benefit-heading-title {font-size: 1.1rem;}
    .benefit-proof-gallery {gap:46px;margin-bottom:40px;padding:35px 4px 0;}
    .benefit-proof {width:calc(100% - 7px);}
    .benefit-proof::before {inset:5px -5px -5px 5px;}
    .benefit-proof:nth-child(even)::before {inset:5px 5px -5px -5px;}
    .benefit-proof-script {top:0;right:6px;font-size:2.85rem;}
    .benefit-proof:nth-child(even) .benefit-proof-script {right:auto;left:6px;}
    .benefit-proof figcaption {left:0;right:0;bottom:0;width:auto;padding:24px 12px 9px;}
    .benefit-proof figcaption small {font-size:0.82rem;}
    .benefit-proof figcaption strong {font-size:0.96rem;}
    .offer-benefits {margin:0 0 34px;max-width:none;}
    .offer-benefit {grid-template-columns:54px minmax(0,1fr);column-gap:16px;padding:28px 2px 27px;}
    .offer-benefit .benefit-number {padding-right:11px;font-size:2.65rem;}
    .benefit-content strong {font-size:1.16rem;}
    .benefit-value {margin-top:7px;font-size:1.05rem;}
    .benefit-content small {margin-top:20px;font-size:1.05rem;line-height:1.85;}
    .plan-included-box {padding-bottom: 26px;}
    .plan-included-title {font-size:1.05rem;}
    .plan-included-box p {font-size:1.05rem;}
    .plan-footer {padding-top: 0;}
    .plan-includes {font-size:1.05rem;line-height:1.95;}
    .plan-offer-cta {padding:17px 18px;font-size:1.05rem;}
    .plan-disclaimer{color:#666;margin: 20px 24px 0;}
}

/* --- Campaign Option Slider --- */
.campaign-options {padding:108px 0 124px;background:linear-gradient(180deg,#fff8f8 0%,#fff 88%,#fff8f8 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:1.05rem;color:#555;line-height:2;margin:0 0 64px;}
.option-slider {width:100%;padding:0 0 64px;}
.option-slider .swiper-wrapper {align-items:flex-start;}
.option-slider .swiper-slide {height: auto;}
.option-card {height:auto;min-height:0;background:#fff;border:1px solid #f0dddd;padding:24px 0 30px;box-shadow:0 14px 34px rgba(189,127,127,0.08);overflow:hidden;display:flex;flex-direction:column;}
.option-card__image {display: block;width: calc(100% - 56px);aspect-ratio: 4 / 3;overflow: hidden;background: #fff8f8;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:1.05rem;}
.option-card h3 {font-size: 1.2rem;color: #333;font-weight: 500;margin: 0 28px 16px;}
.option-card p {font-size:1.05rem;color:#555;line-height:1.9;margin:0;}
.option-card .option-card__tag {margin:0 28px 18px;color:var(--lp-blue);font-size:1.05rem;line-height:1.2;}
.option-price-list {display:grid;gap:14px;margin:20px 28px 0;padding:0;background:transparent;border:0;}
.option-price-list p {display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:6px 10px;padding:14px 0 0;border-top:1px solid #eedde3;color:#444;}
.option-price-list p:first-child {padding-top: 0;border-top: 0;}
.option-price-list span {font-size:1.05rem;line-height:1.6;color:#333;}
.option-price-list--canvas em {grid-column:2/-1;justify-self:end;}
.option-price-list--single {display:block;}
.option-price-list--single p {display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;padding:0;border:0;}
.option-regular-price {display: flex;flex-direction: column;align-items: flex-end;gap: 2px;}
.option-price-list del {font-size:1.05rem;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-price-list em {color:#bd7f7f;font-style:normal;font-size:1.05rem;line-height:1.1;letter-spacing:0.03em;white-space:nowrap;}
.option-note {max-width:560px;margin:32px auto 0;color:#777;font-size:1.05rem;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 100px;}
    .option-jp-title {font-size: 1.05rem;}
    .option-lead {margin-bottom: 52px;}
    .option-slider {padding:0 0 58px;}
    .option-card {min-height:0;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:18px 24px 0;padding:0;}
    .option-price-list p {grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;}
    .option-price-list--canvas strong {justify-self:end;}
    .option-price-list--canvas em {grid-column:2;}
    .option-price-list--single p {display:flex;gap:6px 10px;}
    .option-regular-price {align-items: flex-start;}
    .option-price-list del {font-size:1.05rem;}
    .option-price-list strong {font-size: 1.06rem;}
}

/* --- Map --- */
.map-square-box {width: 100%;aspect-ratio: 16 / 10;margin: 0;overflow: hidden;background: #fff8f8;}
.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: 1.05rem;color: #888;margin: 10px 0 20px;letter-spacing: 0.2em;}
.reserve-intro {font-size: 1.05rem;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:1.05rem;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: 1.05rem;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:1.05rem;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(189,127,127,0.22);}
.error-message {color:var(--lp-blue);font-size:1.05rem;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:1.05rem;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:1.05rem;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); }
