/* =========================================================
   LP Layouts — 5 pattern overrides
   Pattern A: default (no class needed, uses lp-base.css as-is)
   Pattern B: .lp-pattern-b  — Ceremony Scroll
   Pattern C: .lp-pattern-c  — Gallery Immersive
   Pattern D: .lp-pattern-d  — Compact Informational
   Pattern E: .lp-pattern-e  — Poetic Experiential
   ========================================================= */


/* =============================================================
   PATTERN B — Ceremony Scroll
   ============================================================= */

/* Hero: 100vh centered title with gold rule + radial vignette */
.lp-pattern-b .lp-hero{height:100vh;min-height:700px;}
.lp-pattern-b .lp-hero__image{top:0;}
.lp-pattern-b .lp-hero__scrim{
  top:0;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(11,22,32,.15) 0%,rgba(11,22,32,.7) 70%,rgba(11,22,32,.85) 100%),
    linear-gradient(180deg,rgba(11,22,32,.4) 0%,rgba(11,22,32,.1) 40%,rgba(11,22,32,.5) 100%);
}
.lp-pattern-b .lp-hero__content{
  align-items:center;justify-content:center;text-align:center;
  padding:0 clamp(28px,6vw,96px);
}
.lp-pattern-b .lp-hero__title{
  letter-spacing:.28em;
}
.lp-pattern-b .lp-hero__title::before{
  content:"";display:block;width:48px;height:.5px;background:var(--gold);
  margin:0 auto clamp(18px,2.4vh,28px);
}
.lp-pattern-b .lp-hero__crumb{
  top:auto;bottom:clamp(36px,5vh,60px);left:clamp(24px,6vw,80px);
}
@media(max-width:767px){
  .lp-pattern-b .lp-hero{height:100svh;min-height:600px;}
  .lp-pattern-b .lp-hero__image,.lp-pattern-b .lp-hero__scrim{top:0;}
  .lp-pattern-b .lp-hero__content{padding:0 20px;}
  .lp-pattern-b .lp-hero__title{font-size:clamp(16px,4.2vw,22px);letter-spacing:.2em;}
  .lp-pattern-b .lp-hero__crumb{top:auto;bottom:24px;left:20px;}
}

/* Prologue: vertical heading + centered prose, no image */
.lp-pattern-b .lp-prologue{padding:clamp(120px,16vh,200px) 0 clamp(60px,8vh,100px);}
.lp-pattern-b .lp-prologue .sig-intro{
  grid-template-columns:1fr;text-align:center;
  justify-items:center;gap:0;
}
.lp-pattern-b .lp-prologue .sig-intro__copy{
  display:flex;flex-direction:column;align-items:center;
}
.lp-pattern-b .lp-prologue .sig-intro__title{
  writing-mode:vertical-rl;
  max-height:clamp(280px,36vh,420px);
  font-size:var(--fs-h2-section);letter-spacing:.3em;
  margin-bottom:clamp(40px,6vh,64px);
}
.lp-pattern-b .lp-prologue .sig-intro__desc{
  writing-mode:horizontal-tb;text-align:center;max-width:32em;
}
.lp-pattern-b .lp-prologue .sig-intro__img{display:none;}
@media(max-width:767px){
  .lp-pattern-b .lp-prologue .sig-intro__title{
    writing-mode:horizontal-tb;max-height:none;
    font-size:clamp(18px,4.5vw,24px);letter-spacing:.2em;
  }
}

/* Interstitial image (full-bleed between prologue and timeline) */
.lp-interstitial-img{
  width:100%;height:clamp(300px,45vh,500px);
  background-size:cover;background-position:center;
  filter:saturate(.88) brightness(.88);
  margin-bottom:clamp(80px,12vh,140px);
}

/* Timeline (replaces pillar grid) */










/* Photo strip (horizontal scroll) */






/* B pattern: 1-col concerns, 2-col plans */
.lp-pattern-b .lp-concerns-grid{grid-template-columns:1fr;max-width:800px;}
.lp-pattern-b .lp-plans-deck{grid-template-columns:repeat(2,1fr);}
@media(max-width:767px){
  .lp-pattern-b .lp-plans-deck{grid-template-columns:1fr;}
}


/* =============================================================
   PATTERN C — Gallery Immersive
   ============================================================= */

/* Hero: full-bleed, title bottom-left, horizontal gradient scrim */
.lp-pattern-c .lp-hero{height:100vh;min-height:700px;}
.lp-pattern-c .lp-hero__image{top:0;}
.lp-pattern-c .lp-hero__scrim{
  top:0;
  background:
    linear-gradient(90deg,rgba(11,22,32,.72) 0%,rgba(11,22,32,.3) 40%,rgba(11,22,32,0) 70%),
    linear-gradient(180deg,rgba(11,22,32,.2) 0%,rgba(11,22,32,0) 30%,rgba(11,22,32,.45) 100%);
}
.lp-pattern-c .lp-hero__content{
  align-items:flex-start;justify-content:flex-end;text-align:left;
  padding:0 clamp(28px,6vw,96px) clamp(60px,10vh,120px);
}
.lp-pattern-c .lp-hero__crumb{
  top:clamp(120px,16vh,180px);
}
@media(max-width:767px){
  .lp-pattern-c .lp-hero{height:100svh;min-height:600px;}
  .lp-pattern-c .lp-hero__image,.lp-pattern-c .lp-hero__scrim{top:0;}
  .lp-pattern-c .lp-hero__content{padding:0 20px clamp(40px,8vh,80px);}
  .lp-pattern-c .lp-hero__title{font-size:clamp(16px,4.2vw,22px);letter-spacing:.18em;}
  .lp-pattern-c .lp-hero__crumb{top:auto;top:clamp(80px,12vh,120px);left:20px;}
}

/* Prologue: image LEFT (1.2fr), text right, image bleeds left */
.lp-pattern-c .lp-prologue .sig-intro{
  grid-template-columns:1.2fr 1fr;direction:ltr;
}
.lp-pattern-c .lp-prologue .sig-intro__img{
  order:-1;aspect-ratio:3/4;
  margin-left:calc(-1 * clamp(24px,5vw,80px));
}
.lp-pattern-c .lp-prologue .sig-intro__copy{order:1;}
@media(max-width:900px){
  .lp-pattern-c .lp-prologue .sig-intro{grid-template-columns:1fr;}
  .lp-pattern-c .lp-prologue .sig-intro__img{margin-left:0;aspect-ratio:16/9;}
}

/* Staggered pillar grid */
.lp-pattern-c .lp-pillars .pillar-grid{
  grid-template-columns:1.2fr 1fr;
  gap:clamp(24px,2.6vw,40px);
}
.lp-pattern-c .lp-pillars .pillar:nth-child(odd) .pillar__img{aspect-ratio:3/4;}
.lp-pattern-c .lp-pillars .pillar:nth-child(even){
  margin-top:clamp(60px,8vh,120px);
}
.lp-pattern-c .lp-pillars .pillar:nth-child(even) .pillar__img{aspect-ratio:4/3;}
@media(max-width:767px){
  .lp-pattern-c .lp-pillars .pillar-grid{grid-template-columns:1fr;}
  .lp-pattern-c .lp-pillars .pillar:nth-child(even){margin-top:0;}
}

/* Atmosphere section (full-viewport image + vertical text overlay) */









/* Plans: horizontal scroll on desktop */
.lp-pattern-c .lp-plans-deck{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  gap:clamp(24px,2.6vw,40px);padding-bottom:20px;
  scrollbar-width:none;
}
.lp-pattern-c .lp-plans-deck::-webkit-scrollbar{display:none;}
.lp-pattern-c .lp-plans-deck .lp-plan{
  flex:0 0 auto;min-width:clamp(300px,32vw,400px);
  scroll-snap-align:start;
}
@media(max-width:767px){
  .lp-pattern-c .lp-plans-deck .lp-plan{min-width:85vw;}
}

/* CTA: taller with ken-burns */
.lp-pattern-c .lp-cta__link{height:clamp(480px,70vh,640px);}
@keyframes kenBurns{
  0%{transform:scale(1.0);}
  50%{transform:scale(1.08);}
  100%{transform:scale(1.02);}
}
.lp-pattern-c .lp-cta__bg{
  animation:kenBurns 20s var(--ease) infinite alternate;
}
.lp-pattern-c .lp-cta.is-in .lp-cta__bg{transform:none;}


/* =============================================================
   PATTERN D — Compact Informational
   ============================================================= */

/* Hero: compact 70vh, left-aligned, image at 20vh */
.lp-pattern-d .lp-hero{height:70vh;min-height:540px;}
.lp-pattern-d .lp-hero__image{top:20vh;}
.lp-pattern-d .lp-hero__scrim{
  top:20vh;
  background:linear-gradient(180deg,rgba(11,22,32,.55) 0%,rgba(11,22,32,.18) 30%,rgba(11,22,32,0) 55%,rgba(11,22,32,.4) 100%);
}
.lp-pattern-d .lp-hero__content{
  align-items:flex-end;justify-content:flex-end;text-align:right;
  padding:0 clamp(28px,6vw,96px) clamp(32px,4vh,60px);
}
.lp-pattern-d .lp-hero__title{
  font-size:var(--fs-h3);letter-spacing:.18em;line-height:1.8;
}
.lp-pattern-d .lp-hero__crumb{
  top:calc(20vh - clamp(30px,3.8vh,48px));
  left:auto;right:clamp(24px,6vw,80px);
}
@media(max-width:767px){
  .lp-pattern-d .lp-hero{height:65svh;min-height:460px;}
  .lp-pattern-d .lp-hero__image,.lp-pattern-d .lp-hero__scrim{top:16vh;}
  .lp-pattern-d .lp-hero__content{padding:0 20px clamp(24px,3vh,40px);}
  .lp-pattern-d .lp-hero__title{font-size:clamp(15px,3.8vw,20px);letter-spacing:.14em;}
  .lp-pattern-d .lp-hero__crumb{top:calc(16vh - 24px);left:auto;right:20px;}
}

/* Prologue: no image, gold left border, 2-col text */
.lp-pattern-d .lp-prologue{padding:clamp(80px,10vh,140px) 0 clamp(60px,8vh,100px);}
.lp-pattern-d .lp-prologue .sig-intro{
  grid-template-columns:auto 1fr;gap:clamp(40px,4vw,80px);
  border-left:3px solid var(--gold);padding-left:clamp(24px,3vw,48px);
  align-items:start;
}
.lp-pattern-d .lp-prologue .sig-intro__title{
  font-size:var(--fs-h3);max-width:12em;margin-bottom:0;
}
.lp-pattern-d .lp-prologue .sig-intro__img{display:none;}
@media(max-width:900px){
  .lp-pattern-d .lp-prologue .sig-intro{grid-template-columns:1fr;}
  .lp-pattern-d .lp-prologue .sig-intro__title{max-width:none;margin-bottom:20px;}
}

/* Pillars: text-only numbered list, 2-col */
.lp-pattern-d .lp-pillars .pillar__img{display:none;}
.lp-pattern-d .lp-pillars .pillar-grid{
  grid-template-columns:1fr 1fr;gap:clamp(20px,2vw,36px);
}
.lp-pattern-d .lp-pillars .pillar{
  flex-direction:row;gap:20px;align-items:flex-start;
  padding:clamp(20px,2vw,30px);
  background:rgba(21,21,21,.3);border:.5px solid rgba(184,147,90,.15);
}
.lp-pattern-d .lp-pillars .pillar__no{
  flex-shrink:0;width:48px;height:48px;
  border-radius:50%;border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;
}
.lp-pattern-d .lp-pillars .pillar__no .kanji{font-size:18px;}
.lp-pattern-d .lp-pillars .pillar__no .en{display:none;}
@media(max-width:767px){
  .lp-pattern-d .lp-pillars .pillar-grid{grid-template-columns:1fr;}
}

/* Comparison table (replaces plans + sim) */
.lp-comparison-table{
  width:100%;min-width:640px;border-collapse:collapse;
  font-family:var(--serif);font-size:13px;letter-spacing:.08em;
}
.lp-comparison-table thead th{
  font-family:var(--serif-display);font-weight:500;
  font-size:clamp(15px,1.3vw,18px);letter-spacing:.16em;
  color:var(--gold);padding:clamp(16px,2vw,24px) clamp(12px,1.5vw,20px);
  border-bottom:1px solid var(--gold);text-align:center;
}
.lp-comparison-table thead th:first-child{text-align:left;color:var(--mute);}
.lp-comparison-table tbody td{
  padding:clamp(14px,1.6vw,20px) clamp(12px,1.5vw,20px);
  border-bottom:.5px dotted rgba(184,147,90,.22);color:var(--mute);
  text-align:center;vertical-align:top;
}
.lp-comparison-table tbody td:first-child{
  text-align:left;font-weight:500;color:rgba(232,226,212,.9);white-space:nowrap;
}
.lp-comparison-table tbody tr:last-child td{border-bottom:1px solid rgba(184,147,90,.35);}
.lp-comparison-table tfoot td{
  padding:clamp(16px,2vw,24px) clamp(12px,1.5vw,20px);
  font-family:var(--serif-display);font-weight:500;
  font-size:16px;letter-spacing:.08em;color:var(--gold-hi);
  text-align:center;
}
.lp-comparison-table tfoot td:first-child{text-align:left;color:var(--mute);}

/* Flow: horizontal bar with numbered stops */
.lp-pattern-d .lp-flow .pillar-grid{
  position:relative;
  grid-template-columns:repeat(4,1fr);gap:0;
  padding-top:40px;
}
.lp-pattern-d .lp-flow .pillar-grid::before{
  content:"";position:absolute;top:20px;left:0;right:0;
  height:1px;background:var(--gold);
}
.lp-pattern-d .lp-flow .lp-step{
  border-top:none;padding:0 clamp(12px,1.4vw,20px);
  text-align:center;align-items:center;
}
.lp-pattern-d .lp-flow .lp-step::before{
  content:"";display:block;width:12px;height:12px;
  border-radius:50%;background:var(--gold);
  margin:-26px auto 20px;
  position:relative;z-index:1;
}
.lp-pattern-d .lp-flow .lp-step .kanji{font-size:24px;}

/* FAQ: 2-column */
.lp-pattern-d .lp-faq .lp-faq__list{
  max-width:none;
  display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(30px,3vw,56px);
}
@media(max-width:767px){
  .lp-pattern-d .lp-faq .lp-faq__list{grid-template-columns:1fr;}
  .lp-pattern-d .lp-flow .pillar-grid{grid-template-columns:1fr;padding-top:0;}
  .lp-pattern-d .lp-flow .pillar-grid::before{display:none;}
  .lp-pattern-d .lp-flow .lp-step{text-align:left;align-items:flex-start;border-top:.5px solid var(--gold);padding:30px 4px 0;}
  .lp-pattern-d .lp-flow .lp-step::before{display:none;}
}


/* =============================================================
   PATTERN E — Poetic Experiential
   ============================================================= */

/* Hero: 100vh, desaturated, centered floating title, extra letter-spacing */
.lp-pattern-e .lp-hero{height:100vh;min-height:700px;}
.lp-pattern-e .lp-hero__image{
  top:0;
  filter:saturate(.55) brightness(.65);
}
.lp-pattern-e .lp-hero__scrim{
  top:0;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(11,22,32,.2) 0%,rgba(11,22,32,.6) 60%,rgba(11,22,32,.8) 100%);
}
.lp-pattern-e .lp-hero__content{
  align-items:center;justify-content:center;text-align:center;
  padding:0 clamp(28px,6vw,96px);
}
.lp-pattern-e .lp-hero__title{
  font-size:var(--fs-h2-section);letter-spacing:.4em;line-height:1.8;
}
.lp-pattern-e .lp-hero__title::after{
  content:"";display:block;width:48px;height:.5px;background:var(--gold);
  margin:clamp(18px,2.4vh,28px) auto 0;
}
.lp-pattern-e .lp-hero__sub{display:none;}
.lp-pattern-e .lp-hero__crumb{
  top:auto;bottom:clamp(36px,5vh,60px);left:clamp(24px,6vw,80px);
  opacity:0;animation:fadeInDelayed 1.5s var(--bezier-quart) 1.5s forwards;
}
@keyframes fadeInDelayed{to{opacity:1;}}
@media(max-width:767px){
  .lp-pattern-e .lp-hero{height:100svh;min-height:600px;}
  .lp-pattern-e .lp-hero__image,.lp-pattern-e .lp-hero__scrim{top:0;}
  .lp-pattern-e .lp-hero__content{padding:0 20px;}
  .lp-pattern-e .lp-hero__title{font-size:clamp(17px,4.5vw,24px);letter-spacing:.28em;}
  .lp-pattern-e .lp-hero__crumb{bottom:24px;left:20px;}
}

/* Prologue: centered prose, no image, gold dot separator */
.lp-pattern-e .lp-prologue{padding:clamp(160px,20vh,280px) 0 clamp(100px,14vh,180px);}
.lp-pattern-e .lp-prologue .sig-intro{
  grid-template-columns:1fr;text-align:center;
  justify-items:center;max-width:28em;margin:0 auto;gap:0;
}
.lp-pattern-e .lp-prologue .sig-intro__title{
  font-size:var(--fs-h2-section);letter-spacing:.3em;margin-bottom:0;
}
.lp-pattern-e .lp-prologue .sig-intro__title::after{
  content:"";display:block;width:6px;height:6px;border-radius:50%;
  background:var(--gold);margin:clamp(24px,3vh,40px) auto;
}
.lp-pattern-e .lp-prologue .sig-intro__desc{
  line-height:2.5;max-width:28em;
}
.lp-pattern-e .lp-prologue .sig-intro__img{display:none;}

/* Pillars: single column, full-bleed images (21:9) + centered text */
.lp-pattern-e .lp-pillars .pillar-grid{
  grid-template-columns:1fr;gap:0;
}
.lp-pattern-e .lp-pillars .pillar{
  margin-bottom:clamp(80px,12vh,160px);
  align-items:center;text-align:center;
}
.lp-pattern-e .lp-pillars .pillar__img{
  aspect-ratio:21/9;width:100vw;margin-left:calc(-50vw + 50%);
  margin-bottom:clamp(40px,6vh,64px);
  filter:saturate(.8) brightness(.82);
}
.lp-pattern-e .lp-pillars .pillar__body{
  max-width:36em;text-align:center;
}
.lp-pattern-e .lp-pillars .pillar__title{margin-bottom:14px;}
.lp-pattern-e .lp-pillars .pillar__desc{text-align:center;}
.lp-pattern-e .lp-pillars .pillar::after{
  content:"";display:block;width:6px;height:6px;border-radius:50%;
  background:var(--gold);margin:clamp(30px,4vh,60px) auto 0;
}
.lp-pattern-e .lp-pillars .pillar:last-child::after{display:none;}

/* Seasonal Note (paper-color band) */





/* Concerns: 1-col, spacious */
.lp-pattern-e .lp-concerns-grid{grid-template-columns:1fr;max-width:800px;}
.lp-pattern-e .lp-qa{padding:clamp(30px,3vw,44px);}
.lp-pattern-e .lp-qa__q{font-size:clamp(15px,1.2vw,17px);}

/* CTA: text-only, no image, gold hairlines */
.lp-pattern-e .lp-cta{margin-top:clamp(100px,14vh,180px);}
.lp-pattern-e .lp-cta__link{
  height:auto;padding:clamp(80px,12vh,140px) clamp(24px,8vw,120px);
  background:var(--ink);
}
.lp-pattern-e .lp-cta__bg{display:none;}
.lp-pattern-e .lp-cta__overlay{display:none;}
.lp-pattern-e .lp-cta__inner{height:auto;}
.lp-pattern-e .lp-cta__inner::before,
.lp-pattern-e .lp-cta__inner::after{
  content:"";display:block;width:80px;height:.5px;
  background:var(--gold);margin:0 auto;
}
.lp-pattern-e .lp-cta__inner::before{margin-bottom:clamp(40px,6vh,64px);}
.lp-pattern-e .lp-cta__inner::after{margin-top:clamp(40px,6vh,64px);}

/* ── 慶事の下層ページ「オプションメニュー」の表（スマホ）2026-09-28 ──────────────
   オプションの表は23種類（*-options__table）。慶事の下層12ページ分は style.css の「最低幅560px＋横スクロール」
   の一覧から漏れていて、項目名（200px・折り返さない）と料金に押されて説明の列が極端に狭く、
   表によっては1,300px超の横スクロールになっていた。一覧に入っている11種類も横スクロールで読みにくい。
   スマホでは**23種類すべて**を「項目名 ……… 料金 ／ 説明」の2段に組み替え、横スクロールをなくす
   （最低幅も解除。見出し行はそのまま全幅）。PC は従来どおりの表。 */
@media (max-width:767px){
  table[class*="-options__table"],
  table[class*="-options__table"] tbody{display:block;width:100%;min-width:0 !important;}
  table[class*="-options__table"] tr{display:grid;grid-template-columns:1fr auto;column-gap:14px;row-gap:2px;
    padding:12px 0;border-bottom:1px dotted rgba(184,147,90,.18);}
  table[class*="-options__table"] tr:first-child{border-top:.5px solid rgba(184,147,90,.35);}
  table[class*="-options__table"] th,
  table[class*="-options__table"] td{display:block;width:auto !important;padding:0 !important;border:0 !important;
    white-space:normal !important;text-align:left !important;min-width:0;overflow-wrap:anywhere;}
  table[class*="-options__table"] th{grid-column:1;grid-row:1;}
  /* 料金は「項目名｜説明｜料金」の3列の行の3列目だけ。「項目名｜説明」の2列の行もある（お食い初め等） */
  table[class*="-options__table"] th ~ td:nth-child(3){grid-column:2;grid-row:1;text-align:right !important;white-space:nowrap !important;}
  table[class*="-options__table"] th + td{grid-column:1 / -1;grid-row:2;font-size:12.5px;line-height:1.8;}
  table[class*="-options__table"] td:only-child{grid-column:1 / -1;}
  /* クリーム地の慶事ページ（le-day.css がセルごとに点線を付ける）: セルの線は消し、行の線を地の色に合わせる */
  body.le-day table[class*="-options__table"] th,
  body.le-day table[class*="-options__table"] td{border:0 !important;}
  body.le-day table[class*="-options__table"] tr{border-bottom-color:rgba(31,27,22,.3);}
  body.le-day table[class*="-options__table"] tr:first-child{border-top:1px solid rgba(31,27,22,.45);}
}
