/* 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 { background:var(--white); color:var(--charcoal); font-family:var(--sans-jp); }
    h1, h2, h3, p, ul { margin:0; }
    ul { padding:0; }
    .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:500px;
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
      padding:108px 0 95px;
      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:'CONTACT';
      position:absolute;
      right:-.1em;
      bottom:-.3em;
      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:87px;
      bottom:75px;
      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-title {
      margin:0;
      color:var(--teal-light);
      font-family:var(--serif-en);
      font-size:15px;
      font-style:italic;
      font-weight:400;
      letter-spacing:.3em;
      text-transform:uppercase;
    }
    .pf-hero-copy {
      max-width:720px;
      margin-top:27px;
      color:var(--white);
      font-family:var(--serif-jp);
      font-size:41px;
      font-weight:300;
      line-height:1.55;
    }
    .pf-hero-intro {
      max-width:600px;
      margin-top:23px;
      color:rgba(255,255,255,.82);
      font-size:16px;
      line-height:2;
    }

    .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(--off-white);
    }
    .pf-section--bg > .pf-container { position:relative; z-index:1; }
    .pf-section-heading {
      margin:0;
      color:var(--charcoal);
      font-family:var(--serif-jp);
      font-size:32px;
      font-weight:300;
      line-height:1.55;
    }
    .pf-section-heading::after {
      content:'';
      display:block;
      width:48px;
      height:1px;
      margin-top:19px;
      background:var(--teal-light);
    }
    .pf-copy {
      margin-top:30px;
      color:var(--gray-mid);
      font-size:15px;
      line-height:2.05;
    }

    .pf-contact-grid {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:20px;
      margin-top:46px;
    }
    .pf-contact-card {
      display:flex;
      flex-direction:column;
      min-height:286px;
      padding:37px 38px 34px;
      border:1px solid var(--gray-light);
      background:var(--white);
    }
    .pf-contact-card:nth-child(odd) { background:var(--teal-pale); }
    .pf-contact-card-title {
      color:var(--teal-deep);
      font-family:var(--serif-jp);
      font-size:24px;
      font-weight:300;
      line-height:1.6;
    }
    .pf-contact-card-copy {
      margin-top:23px;
      color:var(--gray-mid);
      font-size:14px;
      line-height:2;
    }
    .pf-contact-card-action { margin-top:auto; padding-top:26px; }
    /* 1枚のカードにボタンが複数ある場合は縦積みにする */
    .pf-contact-card-action .pf-line-button { width:100%; }
    .pf-contact-card-action .pf-line-button + .pf-line-button { margin-top:.6rem; }
    .pf-line-button {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:54px;
      padding:15px 25px;
      border-radius:999px;
      background:var(--line-green);
      color:var(--white);
      font-size:13px;
      font-weight:700;
      letter-spacing:.06em;
      line-height:1.45;
      text-align:center;
      text-decoration:none;
    }
    .pf-cta-note { margin:10px 0 0; color:var(--gray-mid); font-size:11px; letter-spacing:.08em; }
    .pf-schedule-note {
      display:grid;
      grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr);
      gap:34px;
      align-items:center;
      margin-top:20px;
      padding:25px 28px;
      border-left:2px solid var(--teal-main);
      background:var(--off-white);
    }
    .pf-schedule-note-title {
      color:var(--teal-deep);
      font-family:var(--serif-jp);
      font-size:18px;
      font-weight:300;
      line-height:1.7;
    }
    .pf-schedule-note-copy { color:var(--gray-mid); font-size:14px; line-height:1.95; }

    .pf-consult-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:76px; align-items:start; }
    .pf-consult-list {
      margin:29px 0 0;
      border-top:1px solid var(--gray-light);
      list-style:none;
    }
    .pf-consult-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;
    }
    .pf-consult-list li::before {
      content:'';
      position:absolute;
      top:30px;
      left:2px;
      width:5px;
      height:5px;
      border-radius:50%;
      background:var(--teal-main);
    }
    .pf-consult-action { margin-top:31px; }

    .pf-reply-panel {
      position:relative;
      min-height:100%;
      padding:43px 46px;
      overflow:hidden;
      background:var(--teal-deep);
    }
    .pf-reply-panel::before {
      content:'CONTACT';
      position:absolute;
      right:-.17em;
      bottom:-.26em;
      color:rgba(255,255,255,.05);
      font-family:var(--serif-en);
      font-size:clamp(72px,10vw,122px);
      font-style:italic;
      letter-spacing:.12em;
      line-height:1;
      white-space:nowrap;
    }
    .pf-reply-panel > * { position:relative; z-index:1; }
    .pf-reply-heading {
      color:var(--white);
      font-family:var(--serif-jp);
      font-size:26px;
      font-weight:300;
      line-height:1.55;
    }
    .pf-reply-heading::after { content:''; display:block; width:48px; height:1px; margin-top:19px; background:rgba(255,255,255,.45); }
    .pf-reply-copy { margin-top:27px; color:rgba(255,255,255,.82); font-size:14px; line-height:2.05; }
    .pf-reply-copy + .pf-reply-copy { margin-top:16px; }

    .pf-fade { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
    .pf-fade.pf-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-title { font-size:12px; }
      .pf-hero-copy { margin-top:21px; font-size:28px; line-height:1.65; text-wrap:pretty; }
      .pf-hero-intro { margin-top:20px; font-size:14px; line-height:1.9; text-wrap:pretty; }
      .pf-section { padding:72px 0; }
      .pf-section-heading { font-size:26px; }
      .pf-copy { margin-top:24px; font-size:14px; text-wrap:pretty; }
      .pf-contact-grid { grid-template-columns:1fr; gap:14px; margin-top:34px; }
      .pf-contact-card { min-height:0; padding:29px 25px 26px; }
      .pf-contact-card-title { font-size:21px; }
      .pf-contact-card-copy { margin-top:15px; font-size:14px; text-wrap:pretty; }
      .pf-contact-card-action { margin-top:0; padding-top:23px; }
      .pf-line-button { display:flex; width:100%; min-width:0; padding-right:16px; padding-left:16px; }
      .pf-schedule-note { grid-template-columns:1fr; gap:9px; margin-top:14px; padding:23px 21px; }
      .pf-schedule-note-title { font-size:17px; }
      .pf-schedule-note-copy { font-size:14px; text-wrap:pretty; }
      .pf-consult-layout { grid-template-columns:1fr; gap:42px; }
      .pf-consult-list { margin-top:25px; }
      .pf-consult-list li { padding-top:15px; padding-bottom:15px; font-size:14px; text-wrap:pretty; }
      .pf-consult-list li::before { top:27px; }
      .pf-consult-action { margin-top:26px; }
      .pf-reply-panel { padding:34px 25px; }
      .pf-reply-heading { font-size:23px; }
      .pf-reply-copy { margin-top:22px; font-size:14px; text-wrap:pretty; }
    }

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