/* =====================
   Mobile Defaults (before PC media query)
===================== */
.wn-profile-section-top__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.wn-profile-section-top__content {
  text-align: center;
  width: 100%;
}
.wn-profile-section-top__card-head {
  width: 100%;
  margin-bottom: 12px;
}
.wn-location-section__card { /* モバイルは透過ラッパー */ }
.wn-location-section__card-head { margin-bottom: 12px; }
.wn-location-info__name { text-align: center; }
.wn-location-info__item { justify-content: center; }
.wn-footer__separator { display: none; }

/* === モバイル: お知らせ詳細をPC版に近いカード表示に === */
.wn-single__card {
  padding: 24px 18px 32px;
  background: var(--color-white);
  border-radius: 12px;
  margin: 12px 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* === 料金案内・サービス内容ページ: タイトル色/サイズ === */
.wn-archive .wn-page-title {
  color: var(--color-primary);
}
.wn-inner--price .wn-page-title {
  color: var(--color-primary);
}
.wn-inner--service .wn-page-title {
  color: var(--color-primary);
}
.wn-inner--contact .wn-page-title {
  color: var(--color-primary);
}
.wn-inner--profile .wn-page-title {
  color: var(--color-primary);
}
.wn-price-intro,
.wn-svc-desc,
.wn-svc-card__prompt {
  font-size: 15px;
}
.wn-price-row__label { font-size: 15px; }
.wn-price-row__value { font-size: 14px; }
.wn-price-note { font-size: 13px; }
.wn-svc-box li,
.wn-svc-box p,
.wn-svc-box__list li { font-size: 16px; }
.wn-svc-items-box li { font-size: 14px; }

/* === モバイル: サービスページ新構造 === */
.wn-svc-article__header { margin-bottom: 0; }
.wn-svc-article__cols {
  display: flex;
  flex-direction: column;
}

/* === モバイル: プロフィールページ PC カード基本 === */
.wn-pc-card {
  background: var(--color-white);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.wn-pc-card__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 10px;
}
.wn-pc-card__divider {
  border: none;
  border-top: 2px solid var(--color-primary);
  margin: 0 0 20px;
}
.wn-greet-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wn-greet-img {
  width: 100%;
  height: 200px;
  background: var(--color-bg-hero);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  flex-shrink: 0;
  overflow: hidden;
}
.wn-greet-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wn-greet-text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wn-greet-text p { line-height: 1.8; font-size: 14px; }
.wn-profile-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.wn-profile-badge {
  display: inline-block;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 20px;
  padding: 4px 16px;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}
.wn-profile-col__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wn-profile-col__list {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-primary-dark);
}
.wn-profile-col__list--bullet li::before {
  content: '・';
  color: var(--color-primary);
}
.wn-profile-col__sub {
  font-size: 13px;
  color: var(--color-primary-dark);
}
.wn-profile-col__black {
  color: var(--color-text-dark);
}
.wn-access-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.wn-access-map-wrap .wn-map { height: 200px; }
.wn-access-info-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* =====================
   Tablet Responsive Styles (641px - 900px)
===================== */
@media (min-width: 641px) and (max-width: 900px) {
  .wn-news-section__header,
  .wn-news-section__card {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .wn-service-section__list {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =====================
   PC Responsive Styles (min-width: 901px)
===================== */
@media (min-width: 901px) {

  /* === Global === */
  body { max-width: none; }

  .wn-page {
    padding-top: 0;
    max-width: none;
  }

  .wn-inner,
  .wn-inner--service {
    max-width: 1140px;
    margin: 0 auto;
    padding: 48px 40px;
    box-sizing: border-box;
  }

  /* === Topbar === */
  .wn-topbar {
    display: flex;
    position: relative;
    width: 100%;
    height: 44px;
    background: var(--color-white);
    border-bottom: none;
    align-items: flex-end;
    z-index: 110;
    box-sizing: border-box;
  }
  .wn-topbar__inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    max-width: 1140px;
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
  }
  .wn-topbar__station {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-noto);
    font-size: 16px;
    color: var(--color-primary-dark);
    font-weight: 700;
  }
  .wn-topbar__right {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .wn-topbar__tel {
    font-family: var(--font-noto);
    font-size: 16px;
    font-weight: 700;
    color: #17B2C2;
    text-decoration: none;
  }
  .wn-topbar__msg {
    font-family: var(--font-noto);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-dark);
  }

  /* === Header === */
  .wn-header {
    position: relative;
    top: auto;
    max-width: none;
    transform: none;
    left: 0;
    height: 70px;
    padding: 0;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  }
  .wn-header__inner-wrap {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 40px;
  }
  .wn-header__logo {
    width: 52px;
    height: 40px;
  }
  .wn-header__name { font-size: 20px; }
  .wn-header__icons { display: none; }
  .wn-header__pc-cta {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .wn-header__pc-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 152px;
    padding: 10px 24px;
    border-radius: 25px;
    font-family: var(--font-noto);
    font-weight: 700;
    font-size: 15px;
    color: var(--color-white);
    text-decoration: none;
    white-space: nowrap;
  }
  .wn-header__pc-btn--tel { background: #17B2C2; }
  .wn-header__pc-btn--mail { background: #F5A524; }

  /* === PC Nav (スクロールで画面上部にスティッキー) === */
  .wn-pc-nav {
    display: block;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--color-primary-dark);
    z-index: 95;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  }
  .wn-pc-nav__inner {
    display: flex;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
  }
  .wn-pc-nav__item {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px 8px;
    color: var(--color-white);
    font-family: var(--font-noto);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border-right: 1px solid rgba(255,255,255,0.18);
    transition: background 0.15s;
  }
  .wn-pc-nav__item:first-child { border-left: 1px solid rgba(255,255,255,0.18); }
  .wn-pc-nav__item:hover { background: rgba(255,255,255,0.1); }

  #wn-hamburger { display: none; }
  .wn-nav { display: none !important; }

  .wn-scroll-top,
  body.has-float-nav .wn-scroll-top {
    right: 24px;
    bottom: 32px;
  }

  /* === PC用フローティング連絡アイコン (ヘッダーが画面外に出たら表示) === */
  .wn-float-contact {
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: fixed;
    right: 24px;
    bottom: 96px;
    z-index: 80;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.3s ease, visibility 0s linear 0.3s, transform 0.2s ease;
  }
  .wn-float-contact.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.3s ease, visibility 0s linear 0s, transform 0.2s ease;
  }
  .wn-float-contact__btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
  }
  .wn-float-contact__btn--tel  { background: #17B2C2; }
  .wn-float-contact__btn--mail { background: #F5A524; }

  /* === Front Page: Hero === */
  .wn-hero {
    height: auto;
    overflow: visible;
    display: flex;
    gap: 64px;
    padding: 64px 40px;
    max-width: 1140px;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    background: transparent;
  }
  .wn-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-hero);
    z-index: 0;
    pointer-events: none;
  }
  .wn-hero__col-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1;
  }
  .wn-hero__col-left-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 26px;
    max-width: 480px;
    width: 100%;
  }
  .wn-hero__col-right {
    flex: 1.15;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1;
  }
  .wn-hero__main-text,
  .wn-hero__free-btn,
  .wn-hero__tags,
  .wn-hero__btns {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
  }
  .wn-hero__main-text {
    text-align: center;
    font-size: clamp(15px, 11.7px + 0.43vw, 20px);
    line-height: 1.75;
    font-weight: 500;
  }
  .wn-hero__free-btn {
    display: inline-block;
    width: fit-content;
    align-self: center;
    font-size: clamp(19px, 17px + 0.26vw, 22px);
    padding: clamp(15px, 11.7px + 0.43vw, 20px) clamp(48px, 40px + 1.04vw, 60px);
  }
  .wn-hero__tags { justify-content: center; gap: 12px; }
  .wn-hero__tags .wn-tag {
    font-size: clamp(13px, 11.7px + 0.17vw, 15px);
    padding: clamp(8px, 6.7px + 0.17vw, 10px) clamp(14px, 11.3px + 0.35vw, 18px);
  }
  .wn-hero__btns { display: none; } /* PC時はセクション間のボタンを使用 */
  .wn-hero__station--pc { display: block; } /* PCは写真に重ねて表示 */
  .wn-hero__contact-banner--pc { display: inline-flex; }
  .wn-hero__station--mobile,
  .wn-hero__contact-banner--mobile { display: none; } /* モバイル専用(画像の外配置)はPCで非表示 */
  .wn-hero__photo {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    aspect-ratio: 14 / 9;
    height: auto;
    border-radius: 12px;
    margin: 0;
  }
  /* === PC用ヒーロー-ニュース間CTAボタン === */
  .wn-hero-between-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    position: relative;
  }
  .wn-hero-between-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-hero);
    z-index: 0;
    pointer-events: none;
  }
  .wn-hero-between-cta .wn-hero-btn {
    position: relative;
    z-index: 1;
    min-width: 240px;
    justify-content: center;
    font-size: 18px;
    padding: 17px 36px;
  }

  /* === Front Page: News === */
  .wn-news-section {
    height: auto;
    overflow: visible;
    padding: 0;
    position: relative;
  }
  .wn-news-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-hero);
    z-index: 0;
    pointer-events: none;
  }
  .wn-news-section__header {
    display: block;
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
    padding: 40px 0 16px;
  }
  .wn-news-section__title {
    display: block;
    font-size: 26px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
  }
  .wn-news-section__header::after {
    content: '';
    display: block;
    height: 2px;
    background: var(--color-primary);
    margin-top: 10px;
  }
  .wn-news-section__card {
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
    padding: 0 0 16px;
  }
  .wn-news-section__btn-wrap {
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
    padding: 0 0 40px;
  }
  .wn-news-item {
    padding: 16px 36px;
  }
  .wn-news-item__arrow {
    right: 48px;
  }
  .wn-news-item:not(:last-of-type)::after {
    left: 36px;
    right: 36px;
  }
  .wn-news-card__footer {
    padding: 14px 36px;
  }
  .wn-news-card__footer::before {
    left: 36px;
    right: 36px;
  }

  /* === Front Page: ご挨拶 (Profile Section) === */
  .wn-profile-section-top {
    padding: 48px 40px;
    position: relative;
  }
  .wn-profile-section-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-hero);
    z-index: 0;
    pointer-events: none;
  }
  .wn-profile-section-top__card {
    position: relative;
    z-index: 1;
    max-width: 1060px;
    margin: 0 auto;
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    gap: 0;
    padding: 32px;
  }
  .wn-profile-section-top__title {
    font-size: 26px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
    max-width: none;
    text-align: left;
  }
  .wn-profile-section-top__divider {
    border: none;
    border-top: 2px solid var(--color-primary);
    margin: 0 0 24px;
  }
  .wn-profile-section-top__inner {
    display: flex;
    flex-direction: row;
    gap: 32px;
    align-items: center;
  }
  .wn-profile-section-top__avatar {
    flex: 1;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    min-height: 0;
    border-radius: 8px;
    font-size: 64px;
  }
  .wn-profile-section-top__content {
    flex: 1;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .wn-profile-section-top__role {
    text-align: left;
    font-size: 16px;
  }
  .wn-profile-section-top__name {
    text-align: left;
    font-size: 30px;
  }
  .wn-profile-section-top__bio {
    text-align: left;
    font-size: 16px;
    line-height: 1.9;
  }
  .wn-profile-section-top__btn {
    margin: 16px 0 0;
    align-self: flex-start;
    display: inline-block;
    width: auto;
    max-width: 260px;
    text-align: center;
  }

  /* === Front Page: Service Section === */
  .wn-service-section {
    height: auto;
    overflow: visible;
    padding: 48px 0;
    position: relative;
  }
  .wn-service-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-service);
    z-index: 0;
    pointer-events: none;
  }
  .wn-service-section__title {
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto 24px;
    font-size: 26px;
    color: var(--color-primary);
  }
  .wn-service-section__title::after {
    content: '';
    display: block;
    height: 2px;
    background: var(--color-primary);
    margin-top: 10px;
  }
  .wn-service-section__list {
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* === Front Page: アクセス (Location) === */
  .wn-location-section {
    padding: 48px 40px;
    position: relative;
  }
  .wn-location-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: var(--color-bg-hero);
    z-index: 0;
    pointer-events: none;
  }
  .wn-location-section__card {
    position: relative;
    z-index: 1;
    background: var(--color-white);
    border-radius: 10px;
    padding: 32px;
    max-width: 1060px;
    margin: 0 auto;
  }
  .wn-location-section__title {
    font-size: 26px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
    max-width: none;
  }
  .wn-location-section__divider {
    border: none;
    border-top: 2px solid var(--color-primary);
    margin: 0 0 24px;
  }
  .wn-location-section__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .wn-location-info__name { text-align: left; }
  .wn-location-info__item { justify-content: flex-start; }
  .wn-location-section__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .wn-map {
    height: 360px;
    background: #cdd8e5;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--color-text-dark);
  }

  /* === CTA → Footer handles it on PC === */
  .wn-cta--sp { display: none; }

  /* === Footer (PC 3-col) === */
  .wn-footer {
    background: var(--color-primary-dark);
    min-height: auto;
    padding: 0;
    display: block;
  }
  .wn-footer__pc-body { display: block; }
  .wn-footer__pc-inner {
    display: grid;
    grid-template-columns: 2fr 1fr 1.2fr;
    gap: 0;
    max-width: 1140px;
    margin: 0 auto;
    padding: 48px 40px 40px;
    align-items: start;
  }
  .wn-footer__info {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .wn-footer__company-name {
    font-family: var(--font-noto);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: 8px;
  }
  .wn-footer__info-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-family: var(--font-noto);
    font-size: 13px;
    color: rgba(255,255,255,0.8);
    line-height: 1.5;
  }
  .wn-footer__nav-col {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-top: 4px;
    padding-left: 48px;
    border-left: 1px solid rgba(255,255,255,0.3);
  }
  .wn-footer__nav-col a {
    font-family: var(--font-noto);
    font-size: 14px;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    transition: color 0.15s;
  }
  .wn-footer__nav-col a:hover { color: var(--color-white); }
  /* 右CTAカラム: 白いカード */
  .wn-footer__cta-col {
    background: var(--color-white);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-left: auto;
    align-self: start;
    min-width: 260px;
  }
  .wn-footer__cta-col-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 16px;
    border-radius: 6px;
    font-family: var(--font-noto);
    font-weight: 700;
    font-size: 14px;
    color: var(--color-white);
    text-decoration: none;
    white-space: nowrap;
  }
  .wn-footer__cta-col-btn--tel { background: #17B2C2; }
  .wn-footer__cta-col-btn--web { background: var(--color-primary); }
  .wn-footer__cta-col-btn--line { background: var(--color-green); }
  /* コピーライト帯: 白背景・ダーク文字 */
  .wn-footer__copy {
    background: var(--color-white);
    color: var(--color-primary);
    font-size: 12px;
    text-align: center;
    padding: 14px 0;
    border-top: 1px solid #e0e8f0;
  }

  /* === Service Articles (PC: full-width header + 2-column) === */
  .wn-anchor-nav,
  .wn-svc-article {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
  }
  .wn-svc-article {
    padding: 28px 32px;
    margin-bottom: 24px;
    display: block;
  }
  .wn-svc-article__header {
    margin-bottom: 20px;
  }
  .wn-svc-article__head {
    display: inline-block;
    font-size: 24px;
  }
  .wn-svc-article__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 36px;
    align-items: center;
  }
  .wn-svc-article__img {
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    margin-bottom: 0;
    border-radius: 10px;
  }
  .wn-svc-article__body { min-width: 0; }

  /* === Inner Pages General === */
  .wn-page-title { font-size: 28px; }

  /* === Profile Page === */
  .wn-profile-card {
    max-width: 1140px;
    margin: 0 auto 32px;
    flex-direction: column;
    padding: 32px;
  }
  .wn-profile-card__inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 32px;
  }
  .wn-profile-card__avatar {
    flex-shrink: 0;
    width: 160px;
    height: 160px;
    border-radius: 80px;
    font-size: 56px;
  }
  .wn-profile-card__content {
    flex: 1;
    text-align: left;
  }
  .wn-profile-card__name { font-size: 26px; }
  .wn-profile-section { max-width: 1140px; margin: 0 auto 24px; }

  /* === Contact Form === */
  .wn-form {
    max-width: 600px;
    margin: 0 auto;
    background: var(--color-white);
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  }
  .wn-form__submit {
    width: auto;
    max-width: 280px;
    display: block;
    margin: 24px auto 0;
  }
  #contact_name,
  #contact_tel {
    max-width: 280px;
  }
  #contact_email {
    max-width: 400px;
  }
  #contact_category {
    max-width: 320px;
  }
  #contact_datetime {
    max-width: 320px;
  }

  /* === Archive (News List) === */
  .wn-archive { max-width: 760px; margin: 0 auto; }
  .wn-archive .wn-page-title { max-width: 760px; }

  /* === Single Post === */
  .wn-single { max-width: 760px; margin: 0 auto; }
  .wn-single__card {
    background: var(--color-white);
    padding: 40px 48px 32px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  }

  /* === Thanks Page === */
  .wn-thanks {
    max-width: 1060px;
    margin: 0 auto;
    background: var(--color-white);
    padding: 60px 48px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  }

  /* === Back Button === */
  .wn-back-btn { max-width: 300px; }

  /* === Price / Flow Section === */
  .wn-price-section,
  .wn-flow-section { max-width: 1140px; margin-left: auto; margin-right: auto; }
  .wn-flow-section { margin-top: 56px; padding-top: 40px; }
  .wn-section-title {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 28px;
    font-size: 28px;
  }
  .wn-page-title {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    font-size: 28px;
    margin-bottom: 28px;
  }
  .wn-price-intro,
  .wn-form-intro {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
  }
  .wn-inner--contact .wn-page-title,
  .wn-inner--contact .wn-form-intro {
    max-width: 600px;
  }
  .wn-price-section { margin-bottom: 0; }
  .wn-price-section + .wn-price-section { margin-top: 16px; }

  /* === Price TOC === */
  .wn-price-toc { max-width: 700px; margin: 32px auto 40px; }
  .wn-price-section-wrap { max-width: 1060px; margin: 0 auto 40px; scroll-margin-top: 70px; }

  /* === Anchor Nav (service2) === */
  .wn-float-nav { display: none !important; }
  .wn-anchor-nav {
    padding: 8px 0;
    margin-top: 32px;
    margin-bottom: 40px;
  }
  .wn-anchor-btn {
    font-size: 16px;
    padding: 12px 8px;
  }

  /* === Profile Page PC Cards === */
  .wn-pc-card {
    max-width: 1140px;
    margin: 0 auto 40px;
    padding: 36px 40px;
    background: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  }
  .wn-pc-card__title {
    font-size: 26px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 12px;
  }
  .wn-pc-card__divider {
    border: none;
    border-top: 2px solid var(--color-primary);
    margin: 0 0 28px;
  }
  /* ご挨拶 */
  .wn-greet-body {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: center;
  }
  .wn-greet-img {
    flex: 1 1 0;
    width: auto;
    height: 440px;
    min-width: 0;
  }
  .wn-greet-text {
    flex: 1 1 0;
    min-width: 0;
  }
  .wn-greet-text {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .wn-greet-text p {
    line-height: 1.85;
    font-size: 15px;
  }
  /* プロフィール grid (3列) */
  .wn-profile-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
  }
  .wn-profile-col {
    padding-left: 16px;
  }
  .wn-profile-badge {
    font-size: 14px;
  }
  .wn-profile-col__list {
    font-size: 16px;
    line-height: 1.8;
  }
  .wn-profile-col__sub {
    font-size: 14px;
  }
  /* アクセス */
  .wn-access-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 36px;
    align-items: start;
  }
  .wn-access-map-wrap .wn-map {
    height: 280px;
  }
  .wn-access-info-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

}

