/* 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);
}
    body { background:var(--white); color:var(--charcoal); font-family:var(--sans-jp); }
    * { box-sizing:border-box; }
    .pf-page { overflow:hidden; }
    .pf-container { width:min(calc(100% - 12vw), 1040px); margin:0 auto; }
    .br-pc { display:block; }
    .br-sp { display:none; }

    .pf-hero {
      position:relative;
      width:100vw;
      min-height:520px;
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
      padding:104px 0 100px;
      overflow:hidden;
      background:var(--teal-deep);
      color:var(--white);
    }
    .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:'UTSUNOMIYA';
      position:absolute;
      right:-.12em;
      bottom:-.27em;
      color:rgba(255,255,255,.05);
      font-family:var(--serif-en);
      font-size:clamp(92px,14vw,174px);
      font-style:italic;
      letter-spacing:.16em;
      line-height:1;
      white-space:nowrap;
    }
    .pf-hero-rule {
      position:absolute;
      top:86px;
      bottom:76px;
      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 { margin:0; 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:22px 0 0; color:var(--white); font-family:var(--serif-jp); font-size:46px; font-weight:300; line-height:1.35; }
    .pf-hero-copy { max-width:540px; margin:25px 0 0; color:rgba(255,255,255,.82); font-size:16px; line-height:2; }
    .pf-hero-copy + .pf-hero-copy { margin-top:0; }

    .pf-section { padding:104px 0; }
    .pf-section--bg { position:relative; }
    .pf-section--bg::before {
      content:'';
      position:absolute;
      z-index:-1;
      top:0;
      right:calc(-50vw + 50%);
      bottom:0;
      left:calc(-50vw + 50%);
      background:var(--off-white);
    }
    .pf-label { display:flex; align-items:center; gap:16px; }
    .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 { max-width:800px; margin:23px 0 0; color:var(--charcoal); font-family:var(--serif-jp); font-size:32px; font-weight:300; line-height:1.65; }
    .pf-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0; }
    .pf-copy { max-width:790px; margin:0; color:var(--charcoal); font-size:15px; line-height:2.05; }
    .pf-copy + .pf-copy { margin-top:16px; }
    .pf-copy-muted { color:var(--gray-mid); }

    .pf-intro-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:70px; align-items:start; }
    .pf-intro-side { padding:35px 0 35px 38px; border-left:1px solid var(--teal-light); }
    .pf-point-list { display:grid; gap:0; margin:27px 0; padding:0; border-top:1px solid var(--gray-light); }
    .pf-point-list li { position:relative; padding:17px 0 17px 24px; border-bottom:1px solid var(--gray-light); color:var(--charcoal); font-size:15px; line-height:1.85; list-style:none; }
    .pf-point-list li::before { content:''; position:absolute; top:30px; left:2px; width:5px; height:5px; border-radius:50%; background:var(--teal-main); }

    .pf-first-panel { margin-top:44px; border:1px solid var(--gray-light); background:var(--white); }
    .pf-first-head { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:54px; padding:34px 38px; border-bottom:1px solid var(--gray-light); background:var(--teal-pale); }
    .pf-first-title { margin:0; color:var(--charcoal); font-family:var(--serif-jp); font-size:25px; font-weight:300; line-height:1.65; }
    .pf-first-copy { margin:0; color:var(--gray-mid); font-size:14px; line-height:2; }
    .pf-first-list { margin:0; padding:0 38px; list-style:none; }
    .pf-first-row { display:grid; grid-template-columns:minmax(0,1fr) 90px 150px; gap:24px; align-items:center; padding:25px 0; border-bottom:1px solid var(--gray-light); }
    .pf-first-row:last-child { border-bottom:0; }
    .pf-first-audience { display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:var(--charcoal); font-family:var(--serif-jp); font-size:18px; font-weight:300; line-height:1.6; }
    .pf-first-badge { padding:4px 9px; background:var(--teal-main); color:var(--white); font-family:var(--sans-jp); font-size:10px; font-weight:500; letter-spacing:.08em; }
    .pf-first-time { margin:0; color:var(--gray-mid); font-size:14px; white-space:nowrap; }
    .pf-first-price { margin:0; color:var(--teal-main); font-family:var(--serif-jp); font-size:26px; font-weight:300; line-height:1.3; text-align:right; white-space:nowrap; }
    .pf-first-notes { display:grid; gap:7px; margin-top:22px; }
    .pf-first-note { margin:0; padding-left:15px; border-left:2px solid var(--teal-main); color:var(--gray-mid); font-size:13px; line-height:1.9; }

    .pf-course-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; margin-top:46px; }
    .pf-course { display:flex; flex-direction:column; min-height:100%; background:var(--white); border:1px solid var(--gray-light); }
    .pf-course--accent { border-top:2px solid var(--teal-main); }
    .pf-course--wide { grid-column:1 / -1; }
    .pf-course-head { min-height:177px; padding:29px 34px 26px; border-bottom:1px solid var(--gray-light); background:var(--off-white); }
    .pf-course--accent .pf-course-head { background:var(--teal-pale); }
    .pf-course-kicker { margin:0; color:var(--teal-main); font-family:var(--serif-en); font-size:13px; font-style:italic; letter-spacing:.2em; text-transform:uppercase; }
    .pf-course-title { margin:11px 0 0; color:var(--charcoal); font-family:var(--serif-jp); font-size:24px; font-weight:300; line-height:1.6; }
    .pf-course-lead { margin:10px 0 0; color:var(--teal-deep); font-family:var(--serif-jp); font-size:15px; font-weight:300; line-height:1.8; }
    .pf-course-body { display:flex; flex:1; flex-direction:column; padding:30px 34px 34px; }
    .pf-course-body .pf-copy { font-size:14px; }
    .pf-time-guide { margin:23px 0 0; padding:14px 0 14px 17px; border-left:2px solid var(--teal-main); color:var(--gray-mid); font-size:13px; line-height:1.9; }
    .pf-rate-table { width:100%; margin-top:auto; padding-top:28px; border-collapse:separate; border-spacing:0; }
    .pf-rate-table th, .pf-rate-table td { padding:15px 12px; border-bottom:1px solid var(--gray-light); text-align:left; }
    .pf-rate-table th { color:var(--gray-mid); font-size:12px; font-weight:500; }
    .pf-rate-table td { color:var(--charcoal); font-size:14px; line-height:1.6; }
    .pf-rate-table th:first-child, .pf-rate-table td:first-child { padding-left:0; }
    .pf-rate-table th:last-child, .pf-rate-table td:last-child { padding-right:0; }
    .pf-rate-table .pf-price-cell { color:var(--teal-main); font-family:var(--serif-jp); font-size:20px; font-weight:300; text-align:right; white-space:nowrap; }
    .pf-course-note { margin:20px 0 0; color:var(--gray-mid); font-size:12px; line-height:1.9; }
    .pf-course-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:52px; align-items:start; }
    .pf-track-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); border-top:1px solid var(--gray-light); }
    .pf-track { padding-top:4px; }
    .pf-track + .pf-track { margin-left:30px; padding-left:30px; border-left:1px solid var(--gray-light); }
    .pf-track-title { margin:0; color:var(--teal-deep); font-family:var(--serif-jp); font-size:18px; font-weight:300; line-height:1.7; }
    .pf-track-title span { display:block; color:var(--gray-mid); font-family:var(--sans-jp); font-size:12px; }
    .pf-track .pf-rate-table { padding-top:9px; }
    .pf-spot-note { margin:25px 0 0; padding:16px 0 0 18px; border-top:1px solid var(--gray-light); border-left:2px solid var(--teal-main); color:var(--gray-mid); font-size:13px; line-height:1.9; }
    .pf-spot-note strong { display:block; margin-bottom:4px; color:var(--teal-deep); font-family:var(--serif-jp); font-size:16px; font-weight:300; }

    .pf-common-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); margin-top:42px; border-top:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); }
    .pf-common-item { min-height:184px; padding:27px 24px; border-right:1px solid var(--gray-light); }
    .pf-common-item:last-child { border-right:0; }
    .pf-common-number { color:var(--teal-light); font-family:var(--serif-en); font-size:36px; font-style:italic; line-height:1; }
    .pf-common-text { margin:29px 0 0; color:var(--teal-deep); font-family:var(--serif-jp); font-size:17px; font-weight:300; line-height:1.8; }

    .pf-cta-section {
      position:relative;
      width:100vw;
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
      padding:100px 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:'UTSUNOMIYA'; position:absolute; right:-.11em; bottom:-.31em; 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; white-space:nowrap; }
    .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:24px 0 0; color:var(--white); font-family:var(--serif-jp); font-size:32px; font-weight:300; line-height:1.65; }
    .pf-line-button { display:inline-flex; align-items:center; justify-content:center; min-width:330px; margin-top:30px; 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:10px 0 0; color:rgba(255,255,255,.65); font-size:11px; letter-spacing:.08em; }

    /* 暗いCTAセクション内の副リンク */
    .pf-cta-section .pf-cta-sub { display:inline-flex; align-items:center; justify-content:center; min-width:250px; margin-top:18px; 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); }

    .pf-fade { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
    .pf-fade.visible { opacity:1; transform:none; }

    @media (max-width:760px) {
      .pf-container { width:min(calc(100% - 42px), 600px); }
      .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; text-wrap:pretty; }
      .pf-section { padding:72px 0; }
      .pf-heading { font-size:26px; }
      .pf-copy { font-size:14px; text-wrap:pretty; }
      .pf-intro-layout { grid-template-columns:1fr; gap:32px; }
      .pf-intro-side { padding:0; border-top:1px solid var(--teal-light); border-left:0; }
      .pf-point-list li { font-size:14px; }
      .pf-first-panel { margin-top:33px; }
      .pf-first-head { grid-template-columns:1fr; gap:15px; padding:27px 22px; }
      .pf-first-title { font-size:22px; }
      .pf-first-list { padding:0 22px; }
      .pf-first-row { grid-template-columns:minmax(0,1fr) auto; gap:8px 18px; padding:22px 0; }
      .pf-first-audience { grid-column:1 / -1; font-size:17px; }
      .pf-first-time { grid-column:1; font-size:13px; }
      .pf-first-price { grid-column:2; font-size:23px; }
      .pf-course-grid { grid-template-columns:1fr; margin-top:33px; }
      .pf-course--wide { grid-column:auto; }
      .pf-course-head, .pf-course-body { padding:26px 23px; }
      .pf-course-head { min-height:0; }
      .pf-course-title { font-size:21px; }
      .pf-course-layout, .pf-track-grid { grid-template-columns:1fr; gap:27px; }
      .pf-track + .pf-track { margin-left:0; padding-top:24px; padding-left:0; border-top:1px solid var(--gray-light); border-left:0; }
      .pf-rate-table th, .pf-rate-table td { padding-right:7px; padding-left:7px; }
      .pf-rate-table .pf-price-cell { font-size:18px; }
      .pf-common-grid { grid-template-columns:1fr; margin-top:33px; }
      .pf-common-item { 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-common-item:last-child { border-bottom:0; }
      .pf-common-number { font-size:29px; }
      .pf-common-text { margin:0; font-size:16px; }
      .pf-cta-section { padding:76px 0; }
      .pf-cta-title { font-size:26px; }
      .pf-line-button, .pf-cta-section .pf-cta-sub { display:flex; width:100%; min-width:0; padding-right:16px; padding-left:16px; }
    }

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