/* Generated from the approved Piano Flex demo. */
:root {
      --teal-deep:#1A5F6A; --teal-main:#2A7A7A; --teal-mid:#4A9A9A;
      --teal-light:#C8E6E6; --teal-pale:#EAF5F5; --off-white:#F8F7F4;
      --white:#FFFFFF; --charcoal:#2C2C2C; --gray-mid:#6B6B6B; --gray-light:#E8E4DF;
      --line-green:#06C755;
      --serif-jp:'Noto Serif JP',serif;
      --sans-jp:'Zen Kaku Gothic New',sans-serif;
      --serif-en:'Cormorant Garamond',serif;
    }

    html, body {
  overflow-x: hidden;
}

/*
 * This stylesheet is loaded only by the matching page template.
 * Keep the layout independent of WordPress body classes.
 */
#content.l-content,
#content,
.l-content,
.l-mainContent {
  width: 100%;
  max-width: none;
  margin-top: 0;
  padding-top: 0;
}

#content.l-content,
#content {
  margin-bottom: 0;
}

.pf-page {
  width: 100vw;
  max-width: none;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
}
    .pf-page, .pf-page * { box-sizing:border-box; }
    .pf-page { color:var(--charcoal); font-family:var(--sans-jp); font-weight:300; }
    .pf-page a { color:inherit; }
    .pf-page h1, .pf-page h2, .pf-page h3, .pf-page p { margin-top:0; }
    .pf-container { width:100%; max-width:1040px; margin:0 auto; padding:0 6vw; }
    .pf-section { padding:5.5rem 0; }
    .pf-section--bg { position:relative; }
    .pf-section--bg::before { content:''; position:absolute; z-index:0; top:0; bottom:0; left:calc(-50vw + 50%); right:calc(-50vw + 50%); background:var(--off-white); }
    .pf-section--bg > * { position:relative; z-index:1; }
    .pf-label { display:flex; align-items:center; gap:1rem; margin-bottom:1.6rem; }
    .pf-label-en { color:var(--teal-main); font-family:var(--serif-en); font-size:13px; font-style:italic; letter-spacing:.3em; text-transform:uppercase; }
    .pf-label-line { width:48px; height:1px; background:var(--teal-light); }
    .pf-heading { margin:0 0 1.5rem; color:var(--charcoal); font-family:var(--serif-jp); font-size:clamp(23px,3vw,34px); font-weight:300; line-height:1.55; }
    .pf-heading-line { display:block; }
    .pf-copy { margin:0; color:var(--gray-mid); font-size:14px; line-height:2; }
    .pf-lead { max-width:720px; margin:0; color:var(--charcoal); font-family:var(--serif-jp); font-size:clamp(19px,2.35vw,26px); font-weight:300; line-height:1.75; }
    .pf-fade { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
    .pf-fade.visible { opacity:1; transform:none; }
    .br-pc { display:block; }
    .br-sp { display:none; }

    .pf-hero { position:relative; width:100vw; margin-left:calc(50% - 50vw); padding:5.5rem 0 5.75rem; overflow:hidden; background:var(--teal-deep); }
    .pf-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 90% at 18% 0%, rgba(200,230,230,.10) 0%, transparent 60%); }
    .pf-hero::after { content:'TOKYO'; position:absolute; top:50%; right:-.1em; color:rgba(255,255,255,.05); font-family:var(--serif-en); font-size:clamp(100px,15vw,180px); font-style:italic; letter-spacing:.18em; line-height:1; transform:translateY(-50%); }
    .pf-hero .pf-container { position:relative; z-index:1; }
    .pf-page .pf-hero-back { display:inline-flex; gap:.5rem; margin-bottom:1.65rem; color:var(--teal-light); font-size:12px; letter-spacing:.14em; text-decoration:none; }
    .pf-hero-back::before { content:'←'; }
    .pf-hero-en { margin:0 0 .9rem; color:var(--teal-light); font-family:var(--serif-en); font-size:13px; font-style:italic; letter-spacing:.35em; text-transform:uppercase; }
    .pf-hero-title { margin:0 0 1rem; color:var(--white); font-family:var(--serif-jp); font-size:clamp(30px,4vw,46px); font-weight:300; line-height:1.4; }
    .pf-hero-copy { max-width:540px; margin:0; color:rgba(255,255,255,.78); font-size:14px; line-height:2; }
    .pf-hero-place { margin:1.6rem 0 0; color:var(--teal-light); font-family:var(--serif-jp); font-size:15px; letter-spacing:.12em; }

    .pf-pain-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:0; margin:2.5rem 0 0; border-top:1px solid var(--gray-light); border-left:1px solid var(--gray-light); }
    .pf-pain-item { min-height:116px; padding:1.45rem 1.4rem; border-right:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); background:var(--white); }
    .pf-pain-number { display:block; margin-bottom:.55rem; color:var(--teal-main); font-family:var(--serif-en); font-size:19px; font-style:italic; }
    .pf-pain-text { margin:0; color:var(--charcoal); font-family:var(--serif-jp); font-size:15px; line-height:1.8; }

    .pf-detail-grid { display:grid; grid-template-columns:minmax(260px, .72fr) minmax(0, 1.28fr); gap:clamp(2.5rem, 6vw, 5rem); align-items:start; }
    .pf-detail-content { padding-left:clamp(2rem, 4vw, 4rem); border-left:1px solid var(--teal-light); }
    .pf-detail-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 2rem; margin:2rem 0 0; padding:0; list-style:none; border-top:1px solid var(--gray-light); }
    .pf-detail-list li { display:flex; gap:.8rem; padding:1rem 0; border-bottom:1px solid var(--gray-light); color:var(--charcoal); font-size:14px; line-height:1.8; }
    .pf-detail-list li::before { content:'·'; color:var(--teal-main); font-size:24px; line-height:.95; }
    .pf-detail-panel { position:relative; min-height:100%; padding:2rem 2.1rem; overflow:hidden; background:var(--teal-deep); }
    .pf-detail-panel::before { content:'SOUND'; position:absolute; right:-.2em; bottom:-.37em; color:rgba(255,255,255,.055); font-family:var(--serif-en); font-size:clamp(74px,11vw,130px); font-style:italic; letter-spacing:.08em; line-height:1; }
    .pf-detail-panel > * { position:relative; z-index:1; }
    .pf-detail-panel-title { margin:0 0 1.2rem; color:var(--teal-light); font-family:var(--serif-en); font-size:13px; font-style:italic; letter-spacing:.25em; text-transform:uppercase; }
    .pf-detail-panel-copy { margin:0; color:rgba(255,255,255,.88); font-size:13px; line-height:2; }

    .pf-venue-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.2rem; margin:2.3rem 0 0; }
    .pf-venue-card { padding:2rem; border-top:2px solid var(--teal-main); background:var(--white); }
    .pf-venue-name { margin:0 0 .7rem; color:var(--teal-deep); font-family:var(--serif-jp); font-size:23px; font-weight:300; }
    .pf-venue-day { margin:0; color:var(--gray-mid); font-size:14px; line-height:1.9; }
    .pf-venue-note { margin:1.7rem 0 0; color:var(--gray-mid); font-size:13px; line-height:1.9; }

    .pf-rate-title { margin:3.25rem 0 1.25rem; color:var(--teal-deep); font-family:var(--serif-jp); font-size:clamp(20px,2.6vw,28px); font-weight:300; line-height:1.55; }
    .pf-rate-title:first-of-type { margin-top:0; }
    .pf-rate-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.2rem; }
    .pf-rate-card { display:flex; flex-direction:column; border:1px solid var(--gray-light); background:var(--white); }
    .pf-rate-card--primary { border:2px solid var(--teal-main); }
    .pf-rate-card-head { min-height:210px; display:flex; flex-direction:column; align-items:flex-start; padding:1.45rem 1.5rem; border-bottom:1px solid var(--gray-light); background:var(--off-white); }
    .pf-rate-card--primary .pf-rate-card-head { background:var(--teal-pale); }
    .pf-rate-badge { display:inline-block; margin-bottom:.7rem; padding:.25rem .7rem; color:var(--white); background:var(--teal-main); font-size:10px; letter-spacing:.14em; }
    .pf-rate-name { margin:0; color:var(--charcoal); font-family:var(--serif-jp); font-size:18px; font-weight:400; line-height:1.55; }
    .pf-rate-price { margin:.75rem 0 0; color:var(--teal-main); font-size:clamp(22px,2.5vw,28px); font-weight:300; line-height:1.25; }
    .pf-price-keep { display:inline-block; white-space:nowrap; }
    .pf-rate-body { flex:1; padding:1.45rem 1.5rem 1.6rem; }
    .pf-rate-copy { margin:0; color:var(--gray-mid); font-size:13px; line-height:1.95; }
    .pf-rate-rows { display:grid; margin:0; border-top:1px solid var(--gray-light); }
    .pf-rate-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:baseline; padding:1rem 0; border-bottom:1px solid var(--gray-light); }
    .pf-rate-row-label { color:var(--charcoal); font-size:14px; line-height:1.8; }
    .pf-rate-row-label small { display:block; }
    .pf-rate-row-price { color:var(--teal-main); font-size:20px; font-weight:300; white-space:nowrap; }
    .pf-rate-note { margin:1.2rem 0 0; color:var(--gray-mid); font-size:13px; line-height:1.9; }

    .pf-children-panel { padding:2rem; border:1px solid rgba(42,122,122,.2); background:var(--white); }
    .pf-children-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.8rem 2.5rem; }
    .pf-children-section + .pf-children-section { border-left:1px solid var(--gray-light); padding-left:2.5rem; }
    .pf-children-name { margin:0 0 .8rem; color:var(--teal-deep); font-family:var(--serif-jp); font-size:20px; font-weight:300; }
    .pf-children-price { margin:0 0 1rem; color:var(--teal-main); font-size:25px; font-weight:300; }
    .pf-children-copy { margin:0; color:var(--gray-mid); font-size:13px; line-height:1.95; }

    .pf-flow { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:0; margin:2.25rem 0 0; border-top:1px solid var(--gray-light); border-left:1px solid var(--gray-light); }
    .pf-flow-item { min-height:148px; position:relative; padding:1.35rem 1.15rem; border-right:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); background:var(--white); }
    .pf-flow-item:not(:last-child)::after { content:'→'; width:32px; height:32px; position:absolute; top:50%; right:-16px; z-index:2; display:grid; place-items:center; border:1px solid var(--teal-light); border-radius:50%; background:var(--off-white); color:var(--teal-main); font-size:17px; line-height:1; transform:translateY(-50%); }
    .pf-flow-number { display:block; margin-bottom:1.35rem; color:var(--teal-main); font-family:var(--serif-en); font-size:20px; font-style:italic; }
    .pf-flow-text { margin:0; color:var(--charcoal); font-family:var(--serif-jp); font-size:14px; line-height:1.75; }
    .pf-flow-note { margin:1.7rem 0 0; padding-left:1rem; border-left:2px solid var(--teal-main); color:var(--gray-mid); font-size:13px; line-height:1.9; }

    .pf-cta-section { position:relative; width:100vw; margin-left:calc(50% - 50vw); padding:5.5rem 0; overflow:hidden; background:var(--teal-deep); text-align:center; }
    .pf-cta-section::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 90% at 18% 0%, rgba(200,230,230,.10) 0%, transparent 60%); }
    .pf-cta-section::after { content:'TOKYO'; position:absolute; right:-.08em; bottom:-.35em; color:rgba(255,255,255,.05); font-family:var(--serif-en); font-size:clamp(90px,14vw,170px); font-style:italic; letter-spacing:.16em; line-height:1; }
    .pf-cta-section .pf-container { position:relative; z-index:1; }
    .pf-cta-title { margin:0 0 1rem; color:var(--white); font-family:var(--serif-jp); font-size:clamp(23px,3vw,34px); font-weight:300; line-height:1.55; }
    .pf-cta-copy { max-width:570px; margin:0 auto 2rem; color:rgba(255,255,255,.72); font-size:13px; line-height:2; }
    .pf-cta-actions { display:grid; justify-content:center; gap:1rem; }
    .pf-cta-action { display:grid; justify-items:center; }
    .pf-page .pf-cta-btn { display:inline-flex; align-items:center; justify-content:center; min-width:290px; padding:1rem 2rem; border:1px solid var(--teal-light); border-radius:999px; color:var(--white); font-size:13px; letter-spacing:.12em; text-decoration:none; }
    .pf-cta-btn--primary { border-color:var(--line-green); background:var(--line-green); }
    .pf-cta-note { margin:.65rem 0 0; color:rgba(255,255,255,.58); font-size:11px; letter-spacing:.08em; }

    /* 明るいセクション内に置く申込ボタン */
    .pf-page .pf-inline-cta { display:inline-flex; align-items:center; justify-content:center; min-width:290px; padding:1rem 2rem; border:1px solid var(--teal-main); border-radius:999px; background:var(--white); color:var(--teal-main); font-size:13px; letter-spacing:.12em; text-decoration:none; transition:background .25s ease, color .25s ease; }
    .pf-page .pf-inline-cta:hover { background:var(--teal-main); color:var(--white); }

    @media (max-width:768px) {
      .pf-container { padding-right:7vw; padding-left:7vw; }
      .pf-section { padding:4.25rem 0; }
      .pf-hero { padding:4.6rem 0; }
      .pf-pain-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
      .pf-detail-grid, .pf-rate-grid, .pf-children-grid { grid-template-columns:1fr; }
      .pf-detail-content { padding-left:0; border-left:0; }
      .pf-detail-list { grid-template-columns:1fr; }
      .pf-rate-card-head { min-height:0; }
      .pf-venue-grid { grid-template-columns:1fr; }
      .pf-children-section + .pf-children-section { padding-top:1.8rem; padding-left:0; border-top:1px solid var(--gray-light); border-left:0; }
      .pf-flow { grid-template-columns:1fr; }
      .pf-flow-item:not(:last-child)::after { content:'↓'; top:auto; right:auto; bottom:-16px; left:50%; transform:translateX(-50%); }
      .pf-cta-btn { width:100%; min-width:0; }
      .pf-page .pf-inline-cta { width:100%; min-width:0; }
      .br-pc { display:none; }
      .br-sp { display:block; }
    }

    @media (max-width:480px) {
      .pf-heading { font-size:25px; }
      .pf-hero-copy { font-size:13px; }
      .pf-pain-grid { grid-template-columns:1fr; }
      .pf-pain-item, .pf-flow-item { min-height:0; }
      .pf-detail-panel, .pf-venue-card, .pf-children-panel { padding:1.6rem 1.4rem; }
      .pf-rate-card-head, .pf-rate-body { padding-right:1.35rem; padding-left:1.35rem; }
      .pf-rate-name { font-size:17px; }
      .pf-rate-row { grid-template-columns:1fr; gap:.25rem; }
      .pf-rate-row-price { font-size:21px; }
    }

    @media (prefers-reduced-motion: reduce) {
      .pf-fade { opacity:1; transform:none; transition:none; }
    }
