/* 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;
    }

    * { box-sizing:border-box; }
    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);
}
    body { color:var(--charcoal); font-family:var(--sans-jp); }
    h1, h2, h3, p, ul, ol { margin:0; }
    ul, ol { padding:0; }
    .pf-page { overflow:hidden; }
    .pf-container { width:min(100% - 12vw, 1080px); margin:0 auto; }
    .pf-section { padding:104px 0; }
    .pf-section--bg { position:relative; }
    .pf-section--bg::before { content:''; position:absolute; z-index:0; top:0; right:calc(-50vw + 50%); bottom:0; left:calc(-50vw + 50%); background:var(--white); }
    .pf-section--bg > .pf-container { position:relative; z-index:1; }
    .pf-label { display:flex; align-items:center; gap:18px; }
    .pf-label-en { color:var(--teal-main); font-family:var(--serif-en); font-size:14px; font-style:italic; letter-spacing:.3em; text-transform:uppercase; }
    .pf-label-line { width:48px; height:1px; background:var(--teal-light); }
    .pf-heading { margin-top:24px; color:var(--charcoal); font-family:var(--serif-jp); font-size:32px; font-weight:300; line-height:1.55; }
    .pf-copy { color:var(--gray-mid); font-size:15px; line-height:2; }
    .pf-copy + .pf-copy { margin-top:18px; }
    .pf-fade { opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease; }
    .pf-fade.pf-visible { opacity:1; transform:translateY(0); }
    .br-pc { display:block; }
    .br-sp { display:none; }

    .pf-hero { position:relative; width:100vw; min-height:510px; margin-left:calc(50% - 50vw); padding:108px 0 94px; 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:'ONLINE'; position:absolute; right:-.12em; bottom:-.32em; color:rgba(255,255,255,.05); font-family:var(--serif-en); font-size:clamp(100px,15vw,190px); font-style:italic; letter-spacing:.15em; line-height:1; }
    .pf-hero-rule { position:absolute; top:92px; bottom:82px; left:calc(50% - 540px); width:1px; background:linear-gradient(180deg, transparent, rgba(255,255,255,.14), transparent); }
    .pf-hero .pf-container { position:relative; z-index:1; }
    .pf-hero-en { color:var(--teal-light); font-family:var(--serif-en); font-size:14px; font-style:italic; letter-spacing:.3em; text-transform:uppercase; }
    .pf-hero-title { margin-top:22px; color:var(--white); font-family:var(--serif-jp); font-size:46px; font-weight:300; line-height:1.35; }
    .pf-hero-copy { max-width:500px; margin-top:25px; color:rgba(255,255,255,.82); font-size:16px; line-height:2; }
    .pf-hero-note { display:inline-block; margin-top:25px; padding:8px 14px; border:1px solid rgba(200,230,230,.45); color:var(--teal-light); font-size:12px; letter-spacing:.1em; }

    .pf-check-grid { display:grid; grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr); gap:70px; align-items:start; }
    .pf-check-list { display:grid; gap:0; margin-top:26px; border-top:1px solid var(--gray-light); }
    .pf-check-list li { display:grid; grid-template-columns:38px 1fr; align-items:center; min-height:58px; border-bottom:1px solid var(--gray-light); color:var(--charcoal); font-family:var(--serif-jp); font-size:16px; font-weight:300; line-height:1.7; list-style:none; }
    .pf-check-list li::before { content:'01'; color:var(--teal-main); font-family:var(--serif-en); font-size:16px; font-style:italic; }
    .pf-check-list li:nth-child(2)::before { content:'02'; }
    .pf-check-list li:nth-child(3)::before { content:'03'; }
    .pf-check-list li:nth-child(4)::before { content:'04'; }
    .pf-check-list li:nth-child(5)::before { content:'05'; }
    .pf-check-side { padding:34px 38px; border-left:1px solid var(--teal-light); }
    .pf-check-side .pf-copy { max-width:560px; }

    .pf-benefit-grid { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); margin-top:46px; border-top:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); }
    .pf-benefit { min-height:214px; padding:28px 22px; border-right:1px solid var(--gray-light); }
    .pf-benefit:last-child { border-right:0; }
    .pf-benefit-number { color:var(--teal-light); font-family:var(--serif-en); font-size:37px; font-style:italic; line-height:1; }
    .pf-benefit-text { margin-top:31px; color:var(--teal-deep); font-family:var(--serif-jp); font-size:17px; font-weight:300; line-height:1.75; }
    .pf-benefit-summary { max-width:720px; margin-top:40px; color:var(--gray-mid); font-size:15px; line-height:2; }
    .pf-benefit-summary + .pf-benefit-summary { margin-top:12px; }

    .pf-rate-layout { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; margin-top:42px; }
    .pf-rate-card { background:var(--white); border:1px solid var(--gray-light); }
    .pf-rate-card--wide { grid-column:1 / -1; }
    .pf-rate-card-head { min-height:230px; display:flex; flex-direction:column; align-items:flex-start; padding:29px 34px 26px; border-bottom:1px solid var(--gray-light); }
    .pf-rate-card--primary .pf-rate-card-head { background:var(--teal-pale); border-top:2px solid var(--teal-main); }
    .pf-rate-kicker { color:var(--teal-main); font-family:var(--serif-en); font-size:13px; font-style:italic; letter-spacing:.2em; text-transform:uppercase; }
    .pf-rate-title { margin-top:11px; font-family:var(--serif-jp); font-size:23px; font-weight:300; line-height:1.6; }
    .pf-rate-price { margin-top:19px; color:var(--teal-main); font-family:var(--serif-jp); font-size:30px; font-weight:300; line-height:1.3; }
    .pf-price-keep { display:inline-block; white-space:nowrap; }
    .pf-rate-card-body { padding:29px 34px 34px; }
    .pf-rate-card-body .pf-copy { font-size:14px; }
    .pf-plan-list { display:grid; gap:0; }
    .pf-plan-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:end; padding:18px 0; border-top:1px solid var(--gray-light); }
    .pf-plan-row:first-child { padding-top:0; border-top:0; }
    .pf-plan-name { color:var(--charcoal); font-family:var(--serif-jp); font-size:18px; font-weight:300; line-height:1.65; }
    .pf-plan-time { margin-top:4px; color:var(--gray-mid); font-size:13px; }
    .pf-plan-price { color:var(--teal-main); font-family:var(--serif-jp); font-size:23px; font-weight:300; text-align:right; }
    .pf-rate-note { margin-top:27px; color:var(--gray-mid); font-size:14px; line-height:2; }

    .pf-child-card { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:0; margin-top:42px; background:var(--white); border:1px solid var(--gray-light); }
    .pf-child-card-head { padding:33px 36px; background:var(--teal-pale); border-right:1px solid var(--gray-light); }
    .pf-child-card-body { padding:33px 36px; }
    .pf-child-card .pf-rate-price { margin-top:18px; }

    .pf-equipment-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; align-items:start; }
    .pf-equipment-list { display:grid; gap:0; margin-top:29px; border-top:1px solid var(--gray-light); }
    .pf-equipment-list li { position:relative; padding:18px 0 18px 23px; border-bottom:1px solid var(--gray-light); color:var(--charcoal); font-size:15px; line-height:1.8; list-style:none; }
    .pf-equipment-list li::before { content:''; position:absolute; top:31px; left:2px; width:5px; height:5px; border-radius:50%; background:var(--teal-main); }
    .pf-camera-panel { position:relative; min-height:292px; padding:38px 40px; overflow:hidden; background:var(--teal-deep); }
    .pf-camera-panel::before { content:'CAMERA'; position:absolute; right:-.2em; bottom:-.12em; color:rgba(255,255,255,.05); font-family:var(--serif-en); font-size:84px; font-style:italic; letter-spacing:.1em; }
    .pf-camera-panel > * { position:relative; z-index:1; }
    .pf-camera-title { color:var(--white); font-family:var(--serif-jp); font-size:23px; font-weight:300; line-height:1.65; }
    .pf-camera-copy { margin-top:22px; color:rgba(255,255,255,.76); font-size:14px; line-height:2; }

    .pf-flow { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); margin:43px 0 0; padding:0; border-top:1px solid var(--gray-light); border-left:1px solid var(--gray-light); list-style:none; }
    .pf-flow-item { position:relative; min-height:157px; padding:21px 17px; border-right:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); background:var(--white); }
    .pf-flow-item:not(:first-child)::before { content:'→'; position:absolute; top:50%; left:-16px; z-index:2; display:grid; width:32px; height:32px; 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:23px; color:var(--teal-main); font-family:var(--serif-en); font-size:19px; font-style:italic; }
    .pf-flow-text { color:var(--charcoal); font-family:var(--serif-jp); font-size:14px; font-weight:300; line-height:1.75; }
    .pf-flow-note { margin-top:25px; padding-left:15px; border-left:2px solid var(--teal-main); color:var(--gray-mid); font-size:14px; line-height:1.9; }

    .pf-local-notice { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:64px; align-items:start; margin-top:42px; padding:38px 40px; border:1px solid var(--gray-light); background:var(--white); }
    .pf-local-title { color:var(--charcoal); font-family:var(--serif-jp); font-size:23px; font-weight:300; line-height:1.65; }
    .pf-local-copy { color:var(--gray-mid); font-size:15px; line-height:2; }
    .pf-local-guide { margin-top:15px; padding-left:16px; border-left:2px solid var(--teal-main); color:var(--teal-deep); font-size:14px; line-height:1.9; }

    .pf-cta-section { position:relative; width:100vw; margin-left:calc(50% - 50vw); padding:101px 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:'ONLINE'; position:absolute; right:-.08em; bottom:-.32em; 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-section .pf-label { justify-content:center; }
    .pf-cta-section .pf-label-en { color:var(--teal-light); }
    .pf-cta-section .pf-label-line { background:rgba(255,255,255,.45); }
    .pf-cta-title { margin-top:24px; color:var(--white); font-family:var(--serif-jp); font-size:32px; font-weight:300; line-height:1.55; }
    .pf-cta-title__mobile-line { display:inline; }
    .pf-line-button { display:inline-flex; align-items:center; justify-content:center; min-width:310px; margin-top:29px; padding:17px 29px; border-radius:999px; background:var(--line-green); color:var(--white); font-size:14px; font-weight:700; letter-spacing:.08em; text-decoration:none; }
    .pf-cta-note { margin-top:10px; color:rgba(255,255,255,.65); font-size:11px; letter-spacing:.08em; }
    .pf-equipment-link { display:inline-flex; align-items:center; justify-content:center; min-width:250px; margin-top:24px; padding:14px 22px; border:1px solid var(--teal-main); border-radius:999px; color:var(--teal-main); font-size:13px; text-decoration:none; }

    /* 暗いCTAセクション内の副リンク */
    .pf-cta-section .pf-cta-sub { display:inline-flex; align-items:center; justify-content:center; min-width:250px; padding:14px 22px; border:1px solid rgba(255,255,255,.45); border-radius:999px; color:var(--white); font-size:13px; text-decoration:none; transition:background .25s ease; }
    .pf-cta-section .pf-cta-sub:hover { background:rgba(255,255,255,.1); }

    @media (max-width:760px) {
      .pf-container { width:min(100% - 42px, 600px); }
      .pf-section { padding:72px 0; }
      .pf-heading { font-size:26px; }
      .pf-copy { font-size:14px; }
      .br-pc { display:none; }
      .br-sp { display:block; }
      .pf-hero { min-height:440px; padding:74px 0 68px; }
      .pf-hero-rule { top:57px; bottom:50px; left:21px; }
      .pf-hero-en { font-size:12px; }
      .pf-hero-title { margin-top:17px; font-size:35px; }
      .pf-hero-copy { margin-top:19px; font-size:14px; line-height:1.9; }
      .pf-hero-note { margin-top:19px; }
      .pf-check-grid, .pf-equipment-layout, .pf-child-card { grid-template-columns:1fr; gap:32px; }
      .pf-check-side { padding:0; border-top:1px solid var(--teal-light); border-left:0; }
      .pf-check-list li { min-height:55px; font-size:15px; }
      .pf-benefit-grid { grid-template-columns:1fr; margin-top:33px; }
      .pf-benefit { display:grid; grid-template-columns:54px 1fr; align-items:center; min-height:0; padding:19px 0; border-right:0; border-bottom:1px solid var(--gray-light); }
      .pf-benefit:last-child { border-bottom:0; }
      .pf-benefit-number { font-size:29px; }
      .pf-benefit-text { margin:0; font-size:16px; }
      .pf-benefit-summary { margin-top:30px; font-size:14px; }
      .pf-rate-layout { grid-template-columns:1fr; margin-top:32px; }
      .pf-rate-card--wide { grid-column:auto; }
      .pf-rate-card-head, .pf-rate-card-body, .pf-child-card-head, .pf-child-card-body { padding:26px 23px; }
      .pf-rate-card-head { min-height:0; }
      .pf-rate-title { font-size:21px; }
      .pf-rate-price { font-size:27px; }
      .pf-plan-row { grid-template-columns:1fr; gap:8px; align-items:start; }
      .pf-plan-price { font-size:22px; text-align:left; }
      .pf-child-card { margin-top:32px; }
      .pf-child-card-head { border-right:0; border-bottom:1px solid var(--gray-light); }
      .pf-camera-panel { min-height:0; padding:31px 25px; }
      .pf-camera-title { font-size:21px; }
      .pf-flow { grid-template-columns:1fr; margin-top:33px; }
      .pf-flow-item { display:grid; grid-template-columns:58px 1fr; align-items:center; min-height:0; padding:18px; }
      .pf-flow-item:not(:first-child)::before { content:'↓'; top:-16px; left:50%; transform:translateX(-50%); }
      .pf-flow-number { margin:0; }
      .pf-local-notice { grid-template-columns:1fr; gap:18px; margin-top:32px; padding:27px 23px; }
      .pf-local-title { font-size:21px; }
      .pf-local-copy { font-size:14px; }
      .pf-line-button, .pf-equipment-link, .pf-cta-section .pf-cta-sub { display:flex; width:100%; min-width:0; }
      .pf-cta-section { padding:76px 0; }
      .pf-cta-title { font-size:26px; }
      .pf-cta-title__mobile-line { display:block; }
    }

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