/* =============================================================
   真栄海運株式会社 — メインスタイルシート
   ============================================================= */

   *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

   :root {
     --blue:        #0095d9;
     --shadow-text: 3px 3px 3px rgba(0,0,0,0.63);
     --shadow-btn:  3px 3px 3px rgba(0,0,0,0.26);
     --radius-card: 10px;
     --radius-btn:  22px;
     /* --max-w:       1280px; */
     /* 固定ヘッダー（top:12px + height:60px）＋少し余白 — サブページFV共通 */
     --subpage-hero-header-offset: calc(12px + 60px + 20px);
   }
   
   html {
     scroll-behavior: smooth;
     overflow-x: clip;
   }
   
   body {
     font-family: 'Noto Sans JP', 'Inter', sans-serif;
     background: var(--blue);
     color: #fff;
     overflow-x: hidden;
     margin: 0;
   }
   
   img { display: block; max-width: 100%; }
   a   { text-decoration: none; color: inherit; }
   
   /* ─────────────────────────────────────────
      共通ボタン
   ───────────────────────────────────────── */
   .btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: #fff;
     color: var(--blue);
     border-radius: var(--radius-btn);
     padding: 10px 22px;
     font-size: 20px;
     font-weight: 600;
     box-shadow: var(--shadow-btn);
     white-space: nowrap;
     transition: opacity .2s;
     cursor: pointer;
     border: none;
   }
   .btn:hover { opacity: .82; }
   
   .btn--ghost {
     background: #fff;
     color: var(--blue);
     border: 2px solid rgba(255,255,255,.65);
     box-shadow: none;
   }
   .btn--ghost:hover { opacity: .8; }
   
   .btn__arrow {
    width: 24px;
    height: 24px;
     fill: currentColor;
   }
   
   .btn__circle-icon {
     width: 30px;
     height: 30px;
     border-radius: 50%;
     background: var(--blue);
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
   }
   .btn__circle-icon svg {
     width: 16px;
     height: 16px;
     fill: #fff;
   }
   
  /* ─────────────────────────────────────────
     表示切り替えユーティリティ（PC / SP）
     - HTML では <span class="pc-only"> / <span class="sp-only"> などで使用
   ───────────────────────────────────────── */
  .pc-only,
  .sp-only {
    display: none;
  }
  @media (min-width: 769px) {
    .pc-only { display: inline; }
    p.pc-only { display: block; }
  }
  @media (max-width: 768px) {
    .sp-only { display: inline; }
    p.sp-only { display: block; }
  }

  /* ─────────────────────────────────────────
     セクション見出し
   ───────────────────────────────────────── */
   .section-heading { text-align: center; }
   .section-heading--left  { text-align: left; }
   .section-heading--right { text-align: right; }
   
   .section-heading__en {
     display: block;
     font-size: clamp(44px, 5.5vw, 76px);
     font-weight: 700;
     line-height: 1;
   }
   .section-heading__ja {
     display: block;
     font-size: 23px;
     font-weight: 300;
     margin-top: 6px;
   }
   
   /* ─────────────────────────────────────────
      HEADER (固定ナビゲーション)
   ───────────────────────────────────────── */
   .site-header {
     position: fixed;
     top: 12px;
     left: 50%;
     transform: translateX(-50%);
     width: calc(100vw - 40px);
     background: #fff;
     border-radius: var(--radius-card);
     box-shadow: 3px 3px 3px rgba(0,0,0,.32);
     display: flex;
     align-items: center;
     padding: 0 28px;
     height: 60px;
     z-index: 1000;
   }
   
   .site-header__logo {
     font-size: 24px;
     font-weight: 600;
     color: var(--blue);
     margin-right: auto;
     white-space: nowrap;
   }
   .site-header__logo a { color: inherit; }
   
   .site-header__nav { display: flex; align-items: center; gap: 0; }
   
   .site-header__nav ul {
     list-style: none;
     display: flex;
     align-items: center;
     gap: 4rem;
   }
   
   .site-header__nav a {
     position: relative;
     font-size: 18px;
     font-weight: 600;
     color: var(--blue);
     transition: opacity .2s;
   }
   .site-header__nav a::after {
     content: '';
     position: absolute;
     left: 0;
     bottom: -4px;
     width: 0;
     height: 2px;
     background: var(--blue);
     transition: width .25s ease;
   }
   .site-header__nav a:hover { opacity: .85; }
   .site-header__nav a:hover::after { width: 100%; }
   
   .nav-divider {
     width: 1px;
     height: 26px;
     background: #ccc;
     margin: 0 4px;
   }
   
   /* ─────────────────────────────────────────
      HERO
   ───────────────────────────────────────── */
   .hero {
     position: relative;
     min-height: 100vh;
     min-height: 100svh;
     display: flex;
     flex-direction: column;
     justify-content: flex-end;
     /* padding: 97px 80px 100px; */
     overflow: hidden;
   }
   
   .hero__bg {
     position: absolute;
     top: 0;
    bottom: 0;
     left: -64px;
     width: 100vw;
    height: auto;
     opacity: 1;
   }
  .hero__bg picture,
  .hero__bg img {
    display: block;
    width: 100%;
    height: 100%;
  }
  .hero__bg img {
    object-fit: cover;
    object-position: center;
  }
   
   .hero__content { z-index: 1; display: flex; flex-direction: column-reverse; }
   
   .hero__sub {
     font-family: 'Noto Sans JP', sans-serif;
     font-size: 26px;
     font-weight: lighter;
     order: 2;
     align-self: flex-end;
     margin-bottom: 40px;
     position: absolute;
     top: 310px;
     left: 80px;
     text-shadow: 3px 3px 6px black;
     opacity: 0.85;
   }
   
   .hero__title {
     font-family: 'Noto Sans JP', sans-serif;
     font-size: clamp(44px, 6vw, 75px);
     font-weight: 900;
     line-height: 1.14;
     margin-bottom: 20px;
     order: 1;
     position: absolute;
     top: 120px;
     left: 80px;
     text-shadow: 3px 3px 6px black;
     opacity: 0.85;
   }
   
   .hero__buttons { display: flex; gap: 20px; flex-wrap: wrap; order: 3; }
   
   .hero__btn-icon {
     width: 30px;
     height: 30px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
   }
   .hero__btn-icon--dark  { background: var(--blue); }
   .hero__btn-icon--light { background: var(--blue); }
   .hero__btn-icon svg    { fill: #fff; width: 16px; height: 16px; }
   
   .scroll-hint {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     z-index: 2;
   }
   .scroll-hint__label {
     position: absolute;
     top: 95vh;
     left: 95vw;
     color: #fff;
     font-family: "Noto Sans JP", sans-serif;
     font-size: 15px;
     font-style: normal;
     font-weight: 300;
     line-height: normal;
     transform: rotate(90deg);
     transform-origin: left top;
   }
   .scroll-hint__line {
     position: absolute;
     top: 87vh;
     left: 95vw;
     width: 112px;
     height: 1px;
     background: #fff;
     transform: rotate(90deg);
     transform-origin: left top;
   }
   
   /* ─────────────────────────────────────────
      ABOUT US
   ───────────────────────────────────────── */
  .about {
    padding: 100px 80px 80px;
    display: flex;
    gap: 60px;
    align-items: flex-start;
    max-width: calc(var(--max-w) + 160px);
    /* margin: 80px auto 0; */
  }
   
   .about__heading { flex: 1; }
   .about__content { flex: 1; }
   
   .about__subtitle {
     font-size: 28px;
     font-weight: 700;
     margin: 28px 0 16px;
   }
   
   .about__body {
     font-size: 20px;
     font-weight: 300;
     line-height: 1.85;
   }
   
   .about__buttons {
     display: flex;
     gap: 16px;
     flex-wrap: wrap;
     margin-top: 36px;
   }
   
   .about__image { flex-shrink: 0; }
   
   /* PC：ABOUT グリッドで左にテキスト・右に画像、白丸は円形画像の右下に重ねる */
   @media (min-width: 769px) {
     .home .about {
       display: grid;
       grid-template-columns: 1fr auto;
       grid-template-areas: "heading image" "content image";
       position: relative;
     }
    .home .about__heading { grid-area: heading; }
    .home .about__content {
      grid-area: content;
    }
     .home .about__image {
       grid-area: image;
       position: relative;
      z-index: 2;
     }
    .home .about__image .circle-img {
      border: none;
    }
    .home .about__buttons {
      justify-content: flex-end;
    }
    .home .about__ellipse {
      grid-area: image;
      position: relative;
      justify-self: end;
      align-self: end;
      width: 160px;
      height: 160px;
      margin: 0;
      transform: translate(10%, 10%);
      pointer-events: none;
      object-fit: contain;
      z-index: 1;
    }
   }
   
   /* ── フロントページ：ビューポートに合わせてスケーリング ── */
   .home {
     zoom: calc(100vw / 1440);
     /* width: 1440px; */
     margin: 0 auto;
     position: relative;
   }
   @supports not (zoom: 1) {
     .home {
      /*
       transform: scale(calc(100vw / 1440));
       transform-origin: top left;
       width: 1440px;
       */
     }
   }
   @media (min-width: 1440px) {
     .home {
       zoom: 1;
     }
     @supports not (zoom: 1) {
       .home {
         transform: none;
         width: auto;
       }
     }
   }
   /* TOPページ：ヒーローはビューポート高さで十分（PCのみ。SP は 100vh がアドレスバーで変動するため下層メディアで上書き） */
   @media (min-width: 769px) {
     .home .hero {
      min-height: 0;
      padding-top: 84px;
      overflow: visible;
     }
    .home .hero__bg {
      position: relative;
      top: -13vw;
      bottom: auto;
      right: auto;
      width: auto;
      margin: 0 40px -40px;
      clip-path: none;
      -webkit-clip-path: none;
    }
    .home .hero__bg picture,
    .home .hero__bg img {
      height: auto;
    }
    .home .hero__bg img {
      object-fit: contain;
      object-position: center top;
    }
   }
   /* ヒーロー内のボタンは非表示（追従ボタンに置換） */
   .home .hero__buttons {
     display: none;
   }
   
   /* ── サブページ：ビューポートに合わせてスケーリング ── */
   @media (min-width: 769px) {
     .page-template-page-about,
     .page-template-page-recruit,
     .page-template-page-company,
     .page-template-page-service,
     .page-template-page-contact,
     .post-type-archive-news,
     .post-type-archive-blog,
     body.blog {
       zoom: calc(100vw / 1440);
       /* width: 1440px; */
       margin: 0 auto;
       position: relative;
     }
     @supports not (zoom: 1) {
       .page-template-page-about,
       .page-template-page-recruit,
       .page-template-page-company,
       .page-template-page-service,
       .page-template-page-contact,
       .post-type-archive-news,
       .post-type-archive-blog,
       body.blog {
         transform: scale(calc(100vw / 1440));
         transform-origin: top left;
         width: 1440px;
       }
     }
   }
   @media (min-width: 1440px) {
     .page-template-page-about,
     .page-template-page-recruit,
     .page-template-page-company,
     .page-template-page-service,
     .page-template-page-contact,
     .post-type-archive-news,
     .post-type-archive-blog,
     body.blog {
       zoom: 1;
     }
     @supports not (zoom: 1) {
       .page-template-page-about,
       .page-template-page-recruit,
       .page-template-page-company,
       .page-template-page-service,
       .page-template-page-contact,
       .post-type-archive-news,
       .post-type-archive-blog,
       body.blog {
         transform: none;
         width: auto;
       }
     }
   }
   
   /* ── 追従ボタン（PC：左下・横並び・白背景・青文字） ── */
   .home-fixed-buttons {
     position: fixed;
     bottom: 24px;
     left: 24px;
     display: flex;
     align-items: center;
     gap: 16px;
     z-index: 999;
   }
   .home-fixed-buttons .btn {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     background: #fff;
     color: var(--blue);
     border-radius: 999px;
     padding: 12px 20px;
     font-size: 16px;
     font-weight: 600;
     box-shadow: 3px 3px 6px rgba(0,0,0,.2);
     white-space: nowrap;
     transition: opacity .2s, box-shadow .2s;
   }
   .home-fixed-buttons .btn:hover {
     opacity: .9;
     box-shadow: 3px 3px 10px rgba(0,0,0,.25);
   }
   .home-fixed-buttons .btn__circle-icon,
   .home-fixed-buttons .hero__btn-icon {
     width: 32px;
     height: 32px;
     min-width: 32px;
     min-height: 32px;
     border-radius: 50%;
     background: var(--blue);
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
   }
   .home-fixed-buttons .hero__btn-icon svg {
     width: 16px;
     height: 16px;
     fill: #fff;
   }
   .home-fixed-buttons .btn__circle-icon svg {
     width: 16px;
     height: 16px;
     fill: #fff;
   }
  .home-fixed-buttons__label {
    /* PCでは横書きのまま */
  }
  /* PC：相談ボタンの表示切り替え（PCではSP用テキストを非表示） */
  .home-fixed-buttons__label-sp {
    display: none;
  }
   .home-fixed-buttons__contact,
   .home-fixed-buttons__consult {
     position: static;
   }
   
   /* TOPページ：about / service / recruit / news / blog / cta は通常フロー（min-height なし） */
   
   .circle-img {
     border-radius: 50%;
     overflow: hidden;
   }
   .circle-img--lg { width: 589px; height: 589px; }
   .circle-img--md { width: 589px; height: 589px; }
   .circle-img img { width: 100%; height: 100%; object-fit: cover; }
   
   .about__ellipse {
     display: none;
   }
   .home .about__ellipse {
     display: block;
   }
   
  .service {
    margin-top: 80px;
    padding: 80px 80px;
  }
   
   .service__cards {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 42px;
     max-width: var(--max-w);
     margin: 48px auto 36px;
   }
   
   .service-card {
     position: relative;
     border-radius: var(--radius-card);
     overflow: hidden;
     height: 411px;
   }
   .service-card img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   .service-card__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0,0,0,.5);
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     padding: 32px 24px;
     gap: 12px;
   }
   .service-card__title {
     font-size: 35px;
     font-weight: 700;
     text-align: center;
   }
   .service-card__desc {
     font-size: 20px;
     font-weight: 500;
     text-align: center;
     max-width: 450px;
     line-height: 1.65;
   }
   
   .service__footer { text-align: right; max-width: var(--max-w); margin: 0 auto; }
   
   /* ─────────────────────────────────────────
      RECRUIT
   ───────────────────────────────────────── */
 .recruit {
    position: relative;
    padding: 80px 80px;
    display: flex;
    flex-direction: column;
    gap: 50px;
    align-items: flex-start;
    max-width: calc(var(--max-w) + 160px);
    margin: 80px auto 0;
    background-image: url('../images/recruit-bg-shape.svg');
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 100% 100%;
  }

  @media (min-width: 1025px) {
    .recruit {
      display: grid;
      grid-template-columns: auto 1fr;
      grid-template-rows: auto 1fr;
      align-items: start;
      margin-left: 80px;
    }
    .recruit__img { grid-column: 1; grid-row: 1 / -1; }
    .recruit__heading { grid-column: 2; grid-row: 1; }
    .recruit__content { grid-column: 2; grid-row: 2; }
  }

  @media (min-width: 769px) and (max-width: 1024px) {
    .recruit {
      margin-left: 80px;
    }
  }
   
   .recruit > * {
     position: relative;
     z-index: 1;
   }

   .recruit__img { flex-shrink: 0; }
   
  /* SP: タイトル → 画像 → 本文 の順に表示 */
  .recruit__heading { order: 1; }
  .recruit__img { order: 2; }
  .recruit__content { order: 3; }

  @media (min-width: 769px) {
    .recruit__content { padding-top: 32px; }
  }
  @media (max-width: 768px) {
    .recruit__content { padding-left: 20px; padding-right: 20px; }
  }
   
   .recruit__subtitle {
     font-size: 28px;
     font-weight: 700;
     text-align: right;
     margin: 24px 0 18px;
   }
   
   .recruit__body {
     font-size: 20px;
     font-weight: 300;
     line-height: 1.9;
     text-align: right;
   }
   
   .recruit__footer { text-align: right; margin-top: 32px; }
   
   .recruit .section-heading__en,
   .recruit .section-heading__ja,
   .recruit__subtitle,
   .recruit__body { color: #0095D9; }
   
   /* ─────────────────────────────────────────
      NEWS
   ───────────────────────────────────────── */
  .news {
    margin-top: 80px;
    padding: 80px 80px;
    background-color: #0095D9;
  }
  
  .news__list {
    max-width: var(--max-w);
    margin: 48px auto 0;
  }
  
  .news-item {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px 0;
    border-bottom: 1px solid rgba(255,255,255,.4);
    text-decoration: none;
    color: #fff;
    transition: opacity .2s;
  }
  .news-item:hover { opacity: .8; }
  
  .news-item__thumb {
    width: 259px;
    height: 172px;
    border-radius: var(--radius-card);
    border: 2px solid var(--blue);
    overflow: hidden;
    flex-shrink: 0;
    background: #9d9d9d;
  }
  .news-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
  
  .news-item__body { flex: 1; }
  
  .news-item__date {
    font-size: 23px;
    font-weight: 300;
    margin-bottom: 8px;
  }
  
  .news-item__title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 10px;
  }
  
  .news-item__excerpt {
    font-size: 20px;
    font-weight: 300;
    line-height: 1.75;
  }
  
  .news-item__arrow { flex-shrink: 0; fill: #fff; }
  
  .news__footer {
    max-width: var(--max-w);
    margin: 32px auto 0;
    text-align: right;
  }
   
   /* ─────────────────────────────────────────
      BLOG
   ───────────────────────────────────────── */
  .blog {
    margin-top: 80px;
    padding: 80px 80px;
  }
   
   .blog__cards {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 20px;
     max-width: var(--max-w);
     margin: 48px auto 32px;
   }
   
   .blog-card {
     background: rgba(255, 255, 255, .85);
     border-radius: var(--radius-card);
     overflow: clip;
     display: flex;
     flex-direction: column;
     text-decoration: none;
     color: var(--blue);
    transition: opacity .2s;
   padding: 25px;
   box-sizing: border-box;
   }
   .blog-card:hover { opacity: .82; }
   
   .blog-card__thumb {
     width: 100%;
     height: 196px;
     background: #9d9d9d;
     overflow: clip;
     flex-shrink: 0;
     border-radius: 8px;
   }
   .blog-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
   
   .blog-card__thumb-placeholder {
     width: 100%;
     height: 100%;
     background: #9d9d9d;
   }
   
   .blog-card__body {
     padding: 18px 6px 8px;
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 0;
   }
   
   .blog-card__date {
     font-size: 21px;
     font-weight: 300;
     margin-bottom: 10px;
   }
   
   .blog-card__title {
     font-size: 26px;
     font-weight: 700;
     line-height: 1.4;
     margin-bottom: 10px;
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   .blog-card__divider {
     height: 1px;
     background: var(--blue);
     margin-bottom: 12px;
   }
   
   .blog-card__excerpt {
     font-size: 20px;
     font-weight: 300;
     line-height: 1.65;
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   .blog__footer { text-align: center; }
   
   /* ─────────────────────────────────────────
      CTA（お問い合わせ・採用情報）
   ───────────────────────────────────────── */
  .cta { margin: 80px auto; padding: 60px 80px; }
   
  .cta__panels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 42px;
    border-radius: var(--radius-card);
    overflow: hidden;
    max-width: var(--max-w);
    margin: 0 auto;
    height: 579px;
  }
   
  .cta-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 40px 32px 56px;
    text-align: center;
    text-decoration: none;
    color: #fff;
    cursor: pointer;
  }
   
   .cta-panel__bg {
     position: absolute;
     inset: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .cta-panel__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0,0,0,.47);
   }
   
   .cta-panel__content {
     position: relative;
     z-index: 1;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 0;
   }
   
  .cta-panel__icon {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
  }
  .cta-panel__icon svg {
    width: 52px;
    height: 52px;
    fill: #0095D9;
  }
   
  .cta-panel__title {
    font-size: 35px;
    font-weight: 700;
    margin-bottom: 18px;
    display: inline-block;
    position: relative;
  }
  .cta-panel__title::after {
    content: "";
    display: block;
    width: 400px;
    max-width: 80%;
    height: 2px;
    margin: 14px auto 0;
    background: #fff;
  }
   
   .cta-panel__desc {
     font-size: 20px;
     font-weight: 500;
     line-height: 1.7;
     margin-bottom: 28px;
   }
  
  @media (min-width: 1025px) {
    .cta {
      padding-top: 40px;
      padding-bottom: 40px;
    }
    .cta__panels {
      height: 500px;
    }
    .cta-panel {
      padding: 32px 28px 40px;
    }
  }

  @media (max-width: 768px) {
    .cta-panel__title {
      margin-bottom: 12px;
    }
    .cta-panel__desc {
      font-size: 15px;
    }
    .cta-panel__title::after {
      width: 250px;
      max-width: 85%;
      margin: 10px auto 0;
    }
  }
   
   /* ─────────────────────────────────────────
      FOOTER
   ───────────────────────────────────────── */
   .site-footer-wrap {
     padding: 0 40px 48px;
     position: relative;
   }
   
   .site-footer {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 56px 80px 28px;
     max-width: 1360px;
     margin: 0 auto 80px auto;
   }
   
   .site-footer__main {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 60px;
     margin-bottom: 40px;
   }
   
   .site-footer__company h2 {
     font-size: 20px;
     font-weight: lighter;
     color: var(--blue);
     margin-bottom: 16px;
   }
   
   .site-footer__address {
     font-style: normal;
     font-size: 15px;
     font-weight: lighter;
     color: var(--blue);
     line-height: 1.85;
   }
   
   .footer-nav {
     list-style: none;
     display: grid;
     grid-template-columns: 1fr;
     gap: 0 40px;
   }
   
   .footer-nav__item a {
     display: flex;
     align-items: center;
     gap: 8px;
     padding: 10px 0;
     transition: opacity .2s;
   }
   .footer-nav__item a:hover { opacity: .7; }
   
   .footer-nav__en {
     font-family: 'Inter', sans-serif;
     font-size: 22px;
     font-weight: 400;
     color: var(--blue);
   }
   .footer-nav__en::before {
     content: '-';
   }
   
   .footer-nav__ja {
     font-size: 15px;
     font-weight: 300;
     color: var(--blue);
   }
   
   .site-footer__bottom {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding-top: 20px;
     border-top: 1px solid #eee;
     flex-wrap: wrap;
     gap: 12px;
   }
   
   .footer-privacy {
     font-family: 'Inter', sans-serif;
     font-size: 15px;
     color: var(--blue);
     transition: opacity .2s;
   }
   .footer-privacy:hover { opacity: .7; }
   
   .footer-logo-text {
     font-size: 18px;
     font-weight: 500;
     color: var(--blue);
   }
   
   .footer-copyright {
     font-size: 13px;
     font-weight: 300;
     color: var(--blue);
   }
   
  .back-to-top {
    position: fixed;
    right: 32px;
    bottom: 40px;
    width: 86px;
    height: 86px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1000;
  }

  .back-to-top__inner {
    position: relative;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-align: center;
  }

  .back-to-top__icon {
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-bottom: 18px solid var(--blue);
    margin-bottom: 6px;
  }

  .back-to-top__label {
    font-size: 14px;
    line-height: 1;
  }

  .back-to-top:hover .back-to-top__inner {
    box-shadow: 0 0 0 4px rgba(255,255,255,.4);
  }
   
   /* ─────────────────────────────────────────
      PAGE HERO（サブページ共通バナー）
   ───────────────────────────────────────── */
   .page-hero {
     padding-top: 97px;
     padding-bottom: 60px;
   }
   
   .page-hero__banner {
     position: relative;
     border-radius: var(--radius-card);
     overflow: hidden;
     height: 644px;
     margin: 0 40px;
   }
   
   .page-hero__img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .page-hero__title {
     position: absolute;
     inset: 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
   }
   
   .page-hero__en {
     font-size: clamp(44px, 5.5vw, 76px);
     font-weight: 700;
     color: #fff;
     text-shadow: 3px 3px 3px rgba(0,0,0,.47);
     text-align: center;
     line-height: 1;
   }
   
   .page-hero__ja {
     font-size: 23px;
     font-weight: 500;
     color: #fff;
     text-shadow: 3px 3px 3px rgba(0,0,0,.47);
     text-align: center;
     margin-top: 16px;
   }
   
   .page-hero__buttons {
     display: none;
   }
   
   /* ─────────────────────────────────────────
      サブページ PAGE HERO（PC のみ：769px 以上）
      ヘッダー下余白・FV 80vh・タイトルはバナー内中央
      ※ 768px 以下では 100vh/80vh がモバイル UI でスクロール連動するため SP 用ルールのみ適用
      About / Recruit / Company / Service / News / Blog / Contact / Privacy
   ───────────────────────────────────────── */
   @media (min-width: 769px) {
     .page-template-page-about .page-hero,
     .page-template-page-recruit .page-hero,
     .page-template-page-company .page-hero,
     .page-template-page-service .page-hero,
     .post-type-archive-news .page-hero,
     .blog .page-hero,
     .post-type-archive-blog .page-hero,
     .page-template-page-contact .page-hero,
     .page-template-page-privacy-policy .page-hero {
       position: relative;
       padding: 0;
       min-height: calc(var(--subpage-hero-header-offset) + 80vh + 16px + 100px);
     }

    /* 4ページのみ：FVと本文の間隔を詰める */
    .page-template-page-about .page-hero,
    .page-template-page-recruit .page-hero,
    .page-template-page-company .page-hero,
    .page-template-page-service .page-hero {
      min-height: calc(var(--subpage-hero-header-offset) + 80vh + 16px + 24px);
    }
     .page-template-page-about .page-hero__banner,
     .page-template-page-recruit .page-hero__banner,
     .page-template-page-company .page-hero__banner,
     .page-template-page-service .page-hero__banner,
     .post-type-archive-news .page-hero__banner,
     .blog .page-hero__banner,
     .post-type-archive-blog .page-hero__banner,
     .page-template-page-contact .page-hero__banner,
     .page-template-page-privacy-policy .page-hero__banner {
       position: absolute;
       top: var(--subpage-hero-header-offset);
       left: 50%;
       transform: translateX(-50%);
      width: calc(100% - 80px);
       height: 80vh;
       margin: 0;
     }
     .page-template-page-about .page-hero__title,
     .page-template-page-recruit .page-hero__title,
     .page-template-page-company .page-hero__title,
     .page-template-page-service .page-hero__title,
     .post-type-archive-news .page-hero__title,
     .blog .page-hero__title,
     .post-type-archive-blog .page-hero__title,
     .page-template-page-contact .page-hero__title,
     .page-template-page-privacy-policy .page-hero__title {
       position: absolute;
       inset: 0;
       display: flex;
       flex-direction: column;
       align-items: center;
       justify-content: center;
     }
     .page-template-page-about .page-hero__en,
     .page-template-page-about .page-hero__ja,
     .page-template-page-recruit .page-hero__en,
     .page-template-page-recruit .page-hero__ja,
     .page-template-page-company .page-hero__en,
     .page-template-page-company .page-hero__ja,
     .page-template-page-service .page-hero__en,
     .page-template-page-service .page-hero__ja,
     .post-type-archive-news .page-hero__en,
     .post-type-archive-news .page-hero__ja,
     .blog .page-hero__en,
     .blog .page-hero__ja,
     .post-type-archive-blog .page-hero__en,
     .post-type-archive-blog .page-hero__ja,
     .page-template-page-contact .page-hero__en,
     .page-template-page-contact .page-hero__ja,
     .page-template-page-privacy-policy .page-hero__en,
     .page-template-page-privacy-policy .page-hero__ja {
       position: static;
       left: auto;
       top: auto;
       transform: none;
     }
     .page-template-page-about .page-hero__ja,
     .page-template-page-recruit .page-hero__ja,
     .page-template-page-company .page-hero__ja,
     .page-template-page-service .page-hero__ja,
     .post-type-archive-news .page-hero__ja,
     .blog .page-hero__ja,
     .post-type-archive-blog .page-hero__ja,
     .page-template-page-contact .page-hero__ja,
     .page-template-page-privacy-policy .page-hero__ja {
       margin-top: 16px;
     }
     .page-template-page-about .page-hero__buttons,
     .page-template-page-recruit .page-hero__buttons,
     .page-template-page-company .page-hero__buttons,
     .page-template-page-service .page-hero__buttons,
     .post-type-archive-news .page-hero__buttons,
     .blog .page-hero__buttons,
     .post-type-archive-blog .page-hero__buttons,
     .page-template-page-contact .page-hero__buttons,
     .page-template-page-privacy-policy .page-hero__buttons {
       display: flex;
       flex-wrap: wrap;
       align-items: center;
       gap: 12px;
       position: absolute;
       top: calc(var(--subpage-hero-header-offset) + 80vh + 16px);
       left: max(40px, calc((100% - min(1360px, calc(100% - 80px))) / 2));
     }
    /* ABOUT US（PC）: FV/理念/仕事/代表挨拶の幅制限を外す */
    .page-template-page-about .page-hero__banner {
      width: calc(100% - 80px);
    }
    .page-template-page-about .page-hero__buttons {
      left: 40px;
    }
    .page-template-page-about .about-philosophy,
    .page-template-page-about .about-work,
    .page-template-page-about .about-president {
      width: 100%;
      max-width: none;
    }
    .page-template-page-about .about-president__inner {
      max-width: none;
    }
   }
   
   /* ── About Us ページ — 文字影なし ── */
   .page-template-page-about * {
     text-shadow: none;
   }
   
   /* ─────────────────────────────────────────
      ABOUT PHILOSOPHY（会社理念）
   ───────────────────────────────────────── */
   .about-philosophy {
     position: relative;
     padding: 120px 80px;
     text-align: center;
     overflow: hidden;
     min-height: 958px;
   }
   
   .about-philosophy__circles {
     position: absolute;
     inset: 0;
     pointer-events: none;
   }
   
   .about-philosophy__daen {
     position: absolute;
   }
   
  /* 1441px デザイン基準の中心(720.5px)に合わせ、セクション幅いっぱいでも水平中央に追従 */
  .about-philosophy__daen--1 { top: 439px; left: calc(50% - 577.5px); }
  .about-philosophy__daen--2 { top: 411px; left: calc(50% - 458.5px); }
   
   .about-philosophy__daen--3 {
     display: block;
     width: 569px;
     height: 569px;
     top: 177px;  /* 957 - 780 */
     left: calc(50% - 284.5px);
     background-color: #FFFFFF;
     border-radius: 50%;
   }
   
   .about-philosophy__daen--4 { top: 411px; left: calc(50% + 348.5px); }
   .about-philosophy__daen--5 { top: 439px; left: calc(50% + 522.5px); }
   
   .about-philosophy__text {
     position: absolute;
     top: 304px;
     left: calc(50% - 250px);
     width: 500px;
     z-index: 1;
     color: var(--blue);
     font-size: 22px;
     font-weight: 300;
     line-height: 2.05;
     text-align: center;
   }
   
   /* ─────────────────────────────────────────
      ABOUT WORK（真栄海運の仕事）
   ───────────────────────────────────────── */
   .about-work {
     display: flex;
     align-items: center;
     gap: 60px;
     padding: 80px 80px;
     max-width: calc(var(--max-w) + 160px);
     margin: 0 auto;
   }
   
   .about-work__text { flex: 1; }
   
   .about-work__heading {
     font-size: clamp(36px, 4.5vw, 64px);
     font-weight: 700;
     line-height: 1.1;
     margin-bottom: 20px;
   }
   
   .about-work__divider {
     height: 2px;
     background: rgba(255,255,255,.5);
     margin-bottom: 32px;
   }
   
   .about-work__body {
     font-size: 18px;
     font-weight: 300;
     line-height: 1.9;
   }
   
   .about-work__body p + p { margin-top: 20px; }
   
 @media (min-width: 769px) {
   /* ── About Us ページ — about-work（PC: 左右50%） ── */
   .page-template-page-about .about-work {
     display: grid;
     grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
     column-gap: 60px;
     align-items: center;
     position: relative;
     padding: 80px;
     max-width: calc(var(--max-w) + 160px);
     margin: 0 auto;
     min-height: 650px;
   }
   .page-template-page-about .about-work__text {
     grid-column: 1;
     width: 100%;
   }
   .page-template-page-about .about-work__heading {
     position: static;
     margin-bottom: 20px;
   }
   .page-template-page-about .about-work__divider {
     position: static;
     width: 100%;
     margin-bottom: 32px;
   }
   .page-template-page-about .about-work__body {
     position: static;
     width: 100%;
   }
   .page-template-page-about .about-work .circle-img--lg {
     grid-column: 2;
     justify-self: center;
     position: relative;
     top: auto;
     left: auto;
     flex-shrink: 0;
    z-index: 2;
   }
   .page-template-page-about .about-work__daen6 {
    display: block;
    position: absolute;
    top: 530px !important;
    right: 100px;
    left: auto !important;
    width: 160px;
    height: 160px;
    z-index: 1;
   }
 }
   
   /* ─────────────────────────────────────────
      ABOUT PRESIDENT（代表挨拶）
   ───────────────────────────────────────── */
   .about-president { padding: 0 40px 80px; }
   
   .about-president__inner {
     background: rgba(255,255,255,.82);
     border-radius: var(--radius-card);
     max-width: 1360px;
     margin: 0 auto;
     padding: 56px 60px;
     display: flex;
     gap: 56px;
     align-items: flex-start;
     min-height: 692px;
   }
   
   .about-president__img {
     width: 469px;
     height: 469px;
     border-radius: var(--radius-card);
     object-fit: cover;
     flex-shrink: 0;
   }
   
   .about-president__content {
     flex: 1;
     padding-top: 8px;
     color: var(--blue);
   }
   
   .about-president__heading {
     font-size: 40px;
     font-weight: 700;
     color: var(--blue);
     text-align: right;
     margin-bottom: 20px;
   }
   
   .about-president__divider {
     height: 2px;
     background: rgba(0,149,217,.35);
     margin-bottom: 28px;
   }
   
   .about-president__body {
     font-size: 18px;
     font-weight: 300;
     line-height: 1.9;
     color: var(--blue);
   }
   
   .about-president__body p + p { margin-top: 20px; }
   
   .about-president__role {
     font-size: 18px;
     font-weight: 300;
     color: var(--blue);
     margin-top: 28px;
     text-align: right;
   }
   
   .about-president__name {
     font-size: 35px;
     font-weight: 400;
     color: var(--blue);
     text-align: right;
     margin-top: 4px;
   }
   
  @media (min-width: 769px) {
    /* ── About Us ページ — about-president（PC: 左右50%） ── */
    .page-template-page-about .about-president {
      position: relative;
      padding: 0 40px 80px;
      min-height: unset;
    }
    .page-template-page-about .about-president__inner {
      position: relative !important;
      top: auto !important;
      left: auto !important;
      width: auto !important;
      height: auto !important;
      margin: 0 auto;
      padding: 56px 60px !important;
      gap: 56px;
      min-height: 692px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      align-items: center;
    }
    .page-template-page-about .about-president__img {
      position: relative !important;
      top: auto !important;
      left: auto !important;
      grid-column: 1;
      justify-self: center;
      width: 469px;
      height: 469px;
    z-index: 2;
    }
    .page-template-page-about .about-president__content {
      grid-column: 2;
      position: relative;
      padding-top: 8px;
    }
    .page-template-page-about .about-president__heading {
      position: static;
      margin-bottom: 20px;
      text-align: left;
    }
    .page-template-page-about .about-president__divider {
      position: static;
      width: 100%;
      margin-bottom: 28px;
    }
    .page-template-page-about .about-president__body {
      position: static;
      width: 100%;
      text-align: left;
    }
    .page-template-page-about .about-president__role {
      position: static;
      margin-top: 28px;
      text-align: right;
    }
    .page-template-page-about .about-president__name {
      position: static;
      margin-top: 4px;
      text-align: right;
    }
    .about-president__daen7 {
    display: block;
    position: absolute !important;
    top: auto !important;
    left: calc(25% - 220px) !important;
    bottom: 100px;
    width: 150px;
    height: 150px;
    z-index: 1;
    }
  }
   
   /* ─────────────────────────────────────────
      ABOUT FIELD（現場を大切にする理由）
   ───────────────────────────────────────── */
   .about-field { padding: 80px 80px; margin-bottom: 80px; }
   
   .about-field__heading {
     font-size: clamp(36px, 4.5vw, 64px);
     font-weight: 700;
    width: fit-content;
    text-align: center;
    margin: 40px auto;
   }
   
   .about-field__text {
     font-size: 18px;
     font-weight: 300;
     line-height: 1.9;
     text-align: center;
     max-width: 900px;
     margin: 0 auto 48px;
   }
   
   /* ─────────────────────────────────────────
      ABOUT PHOTO GRID（写真グリッド共通）
   ───────────────────────────────────────── */
   .about-photo-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 20px;
     max-width: var(--max-w);
     margin: 0 auto;
   }

 @media (min-width: 769px) {
   .page-template-page-about .about-field .about-photo-grid,
   .page-template-page-about .about-future .about-photo-grid {
     position: static;
     left: auto;
     top: auto;
     transform: none;
    width: calc(100% - 80px);
    max-width: 1360px;
    margin: 8px auto 0;
   }

   .page-template-page-about .about-field,
   .page-template-page-about .about-future {
    position: relative !important;
    min-height: auto !important;
   }
  .page-template-page-about .about-field {
    padding: 96px 40px 88px !important;
    margin-bottom: 0;
  }
  .page-template-page-about .about-future {
    padding: 112px 40px 104px !important;
  }

   .page-template-page-about .about-field__text,
   .page-template-page-about .about-future__text {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    margin: 0 auto 56px !important;
     text-align: center;
     max-width: 900px;
   }
  .page-template-page-about .about-field__heading,
  .page-template-page-about .about-future__heading {
    margin: 0 auto 40px;
  }
 }
   
   .about-photo-grid__item {
     border-radius: var(--radius-card);
     overflow: hidden;
     height: 260px;
     background: #9d9d9d;
   }
   
   .about-photo-grid__item--blue {
     position: relative;
   }
   
   .about-photo-grid__item--blue::after {
     content: '';
     position: absolute;
     inset: 0;
     background: rgba(0, 149, 217, .22);
     border-radius: var(--radius-card);
     pointer-events: none;
   }
   
   .about-photo-grid__item img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   /* ─────────────────────────────────────────
      ABOUT FUTURE（これからについて）
   ───────────────────────────────────────── */
   .about-future {
     background: #fff;
     padding: 100px 80px;
   }
   
   .about-future__heading {
     font-size: clamp(36px, 4.5vw, 64px);
     font-weight: 700;
     color: var(--blue);
    width: fit-content;
     text-align: center;
    margin: 40px auto;
   }
   
   .about-future__text {
     font-size: 18px;
     font-weight: 300;
     color: var(--blue);
     line-height: 1.9;
     text-align: center;
     max-width: 900px;
     margin: 0 auto 48px;
   }
   
   /* ─────────────────────────────────────────
      COMPANY OVERVIEW（会社概要）
   ───────────────────────────────────────── */
   .company-overview { padding: 60px 80px 0; }
   
   .company-overview__card {
     background: #fff;
     border-radius: var(--radius-card);
    border: 1px solid rgba(0,149,217,.24);
     max-width: 1280px;
     margin: 0 auto;
   padding: 72px 96px 72px;
   }
   
   .company-overview__heading {
     font-size: 32px;
     font-weight: 700;
     color: var(--blue);
    text-align: center;
    margin-bottom: 44px;
    padding-bottom: 0;
   border-bottom: none;
   }
   
   .company-table { width: 100%; }
   
   .company-table__row {
     display: grid;
     grid-template-columns: 160px 1fr;
     gap: 0 40px;
     padding: 18px 0;
   border-bottom: 1px solid rgba(0,149,217,.48);
   }
  .company-table__row:first-child {
   border-top: 1px solid rgba(0,149,217,.48);
  }
   
   .company-table__label {
     font-size: 18px;
     font-weight: 500;
     color: var(--blue);
     white-space: nowrap;
   }
   
   .company-table__value {
     font-size: 18px;
     font-weight: 500;
     color: var(--blue);
     line-height: 1.7;
   }
   
   .company-table__tel {
     color: var(--blue);
     text-decoration: none;
     transition: opacity .2s;
   }
   .company-table__tel:hover { opacity: .7; }
   
   .page-template-page-company .company-overview {
    position: relative;
    padding: 60px 80px 0;
    min-height: 0;
   }
   .page-template-page-company .company-overview__card {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: auto;
    max-width: 1280px;
    padding: 100px 200px;
    margin: 0 auto;
   }
   .page-template-page-company .company-overview__heading {
    position: relative;
    top: auto;
    left: auto;
   text-align: center;
   margin-bottom: 44px;
   padding-bottom: 0;
   border-bottom: none;
   }
   .page-template-page-company .company-table {
    position: static;
   }
   .page-template-page-company .company-table__row {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    min-height: 0;
     display: grid;
    grid-template-columns: 160px 1fr;
    gap: 0 40px;
    padding: 18px 0;
    border-top: none;
   border-bottom: 1px solid rgba(0,149,217,.48);
   }
  .page-template-page-company .company-table__row:first-child {
   border-top: 1px solid rgba(0,149,217,.48);
  }
   /* テーブル最終行の下線 */
   .page-template-page-company .company-table::after {
    content: none;
   }
   
   /* ── Company ページ — company-access 絶対配置 ── */
   .page-template-page-company .company-access {
     position: relative;
     display: block;
     padding: 0;
     max-width: none;
     margin: 0;
     min-height: 650px;
   }
   .page-template-page-company .company-access__heading {
     position: absolute;
     top: 283px; /* 2263 - 1980 */
    left: 7.3611%;
     margin-bottom: 0;
   }
   .page-template-page-company .company-access__divider {
     position: absolute;
     top: 398px; /* 2378 - 1980 */
    left: 7.3611%;
    width: 34.7222%;
     margin-bottom: 0;
   }
   .page-template-page-company .company-access__address {
     position: absolute;
     top: 435px; /* 2415 - 1980 */
    left: 7.3611%;
   }
   .page-template-page-company .company-access__map {
     position: absolute;
     top: 183px; /* 2163 - 1980 */
    left: 51.4583%;
    width: 42.9861%;
     height: 411px;
     margin: 0;
   }
   
   /* ─────────────────────────────────────────
      COMPANY ACCESS（アクセス・地図）
   ───────────────────────────────────────── */
   .company-access {
     padding: 80px 80px;
     display: grid;
     grid-template-columns: 1fr 1.4fr;
     gap: 60px;
     align-items: start;
     max-width: calc(var(--max-w) + 160px);
     margin: 0 auto;
   }
   
   .company-access__heading {
     font-size: clamp(36px, 4.5vw, 64px);
     font-weight: 700;
     margin-bottom: 24px;
   }
   
   .company-access__divider {
     height: 2px;
     background: rgba(255,255,255,.5);
     margin-bottom: 28px;
   }
   
   .company-access__address {
     font-size: 22px;
     font-weight: 400;
     font-style: normal;
     line-height: 1.85;
   }
   
   .company-access__map {
     height: 411px;
     border-radius: var(--radius-card);
     overflow: hidden;
     background: #9d9d9d;
     margin: 0;
   }
   
   .company-access__map iframe {
     display: block;
     width: 100%;
     height: 100%;
     border: 0;
   }
   
   /* ══════════════════════════════════════
      SERVICE PAGE — 絶対配置
   ══════════════════════════════════════ */
   
   /* ── service-intro ── */
   .page-template-page-service .service-intro {
     position: relative;
     display: block;
     padding: 0;
     min-height: 950px;
     background: transparent;
   }
   /* 白地 */
   .page-template-page-service .service-intro::before {
     content: '';
     position: absolute;
     top: 262px; /* 1042 - 780 */
     left: 0;
     width: 1400px;
     height: 606px;
     background: #fff;
     opacity: 0.8;
     border-radius: 0 303px 303px 0;
     z-index: 0;
   }
   /* テキストブロックを section 全体に広げて子要素の基準点にする */
   .page-template-page-service .service-intro__text {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
   }
   .page-template-page-service .service-intro__heading {
     position: absolute;
     top: 424px; /* 1204 - 780 */
     left: 80px;
     margin-bottom: 0;
     z-index: 1;
   }
   .page-template-page-service .service-intro__divider {
     position: absolute;
     top: 587px; /* 1367 - 780 */
     left: 80px;
     width: 640px;
     margin-bottom: 0;
     z-index: 1;
   }
   .page-template-page-service .service-intro__body {
     position: absolute;
     top: 630px; /* 1410 - 780 */
     left: 80px;
     max-width: 720px;
     z-index: 1;
   }
   /* 円形画像 */
   .page-template-page-service .service-intro .circle-img--lg {
     position: absolute;
     top: 327px; /* 1107 - 780 */
     left: 836px;
     width: 477px;
     height: 477px;
     flex-shrink: unset;
     z-index: 1;
   }
   
   /* ── service-main ── */
   .page-template-page-service .service-main {
     position: relative;
     padding: 0;
     min-height: 2700px;
   }
   .page-template-page-service .service-main__card {
     position: absolute;
     top: 29px; /* 1759 - 1730 */
    left: 80px;
    width: calc(100% - 160px);
     min-height: 2650px;
     padding: 0;
   }
   /* 中間コンテナをフラットに（位置コンテキストを作らない） */
   .page-template-page-service .service-main__card #transport,
   .page-template-page-service .service-main__card #repair,
   .page-template-page-service .service-main__card .service-materials,
   .page-template-page-service .service-main__card .service-routes,
   .page-template-page-service .service-main__card .service-repairs {
     display: block;
     position: static;
     margin: 0; padding: 0; gap: 0;
   }
   .page-template-page-service .service-main__card .service-svc-block__content,
   .page-template-page-service .service-main__card .service-material,
   .page-template-page-service .service-main__card .service-route-col,
   .page-template-page-service .service-main__card .service-repair-item__content {
     display: block;
     position: static;
     margin: 0; padding: 0; gap: 0;
   }
   
   /* 海上輸送事業 */
   .page-template-page-service #transport .service-svc-block__img {
     position: absolute;
     top: 97px;  /* 1856 - 1759 */
    left: 4.6875%;
    width: 41.875%;
    height: 373px;
    margin: 0;
   }
   .page-template-page-service #transport .service-svc-block__title {
     position: absolute;
     top: 163px; /* 1922 - 1759 */
    left: 51.4844%;
     margin: 0;
   }
   .page-template-page-service #transport .service-svc-block__body {
     position: absolute;
     top: 284px; /* 2043 - 1759 */
    left: 51.4844%;
    width: 45.3125%;
    padding-inline: 0;
    box-sizing: border-box;
   }
   
   /* 主な取扱資材 ヘッダー */
   .page-template-page-service #transport + .service-sub-header {
     position: absolute;
     top: 531px; /* 2290 - 1759 */
    left: 4.6875%;
    width: 91.3281%;
    height: 59px;
     margin: 0;
     display: flex; align-items: center; justify-content: center;
   }
   
   /* 資材グリッド */
   .page-template-page-service .service-materials .service-material:nth-child(1) .service-material__label {
     position: absolute;
     top: 629px; /* 2388 - 1759 */
    left: 4.6094%;
    width: 28.6719%;
    margin: 0;
    text-align: center;
   }
   .page-template-page-service .service-materials .service-material:nth-child(1) .service-material__img {
     position: absolute;
     top: 677px; /* 2436 - 1759 */
    left: 4.6094%;
    width: 28.6719%;
    height: 260px;
    margin: 0;
   }
   .page-template-page-service .service-materials .service-material:nth-child(2) .service-material__label {
     position: absolute;
     top: 629px;
    left: 36.0156%;
    width: 28.5938%;
    margin: 0;
    text-align: center;
   }
   .page-template-page-service .service-materials .service-material:nth-child(2) .service-material__img {
     position: absolute;
     top: 677px;
    left: 36.0156%;
    width: 28.5938%;
    height: 260px;
    margin: 0;
   }
   .page-template-page-service .service-materials .service-material:nth-child(3) .service-material__label {
     position: absolute;
     top: 629px;
    left: 67.3438%;
    width: 28.6719%;
    margin: 0;
    text-align: center;
   }
   .page-template-page-service .service-materials .service-material:nth-child(3) .service-material__img {
     position: absolute;
     top: 677px;
    left: 67.3438%;
    width: 28.6719%;
    height: 260px;
    margin: 0;
   }
   
   /* 輸送エリア・特徴 */
   .page-template-page-service .service-routes .service-route-col:nth-child(1) .service-route-col__header {
     position: absolute;
     top: 998px;  /* 2757 - 1759 */
    left: 4.6875%;
    width: 43.5938%;
    height: 59px;
     margin: 0;
     display: flex; align-items: center; justify-content: center;
   }
   .page-template-page-service .service-routes .service-route-col:nth-child(1) .service-route-col__body {
     position: absolute;
     top: 1085px; /* 2844 - 1759 */
    left: 4.6875%;
    width: 43.5938%;
    text-align: center;
   }
   /* 主な航路 */
   .page-template-page-service .service-routes .service-route-col:nth-child(2) .service-route-col__header {
     position: absolute;
     top: 998px;
    left: 52.4219%;
    width: 43.5938%;
    height: 59px;
     margin: 0;
     display: flex; align-items: center; justify-content: center;
   }
   .page-template-page-service .service-routes .service-route-col:nth-child(2) .service-route-col__body {
     position: absolute;
     top: 1085px;
    left: 52.4219%;
    width: 43.5938%;
     text-align: center;
   }
   
   /* 船舶修理・整備事業（村石造船） */
   .page-template-page-service #repair .service-svc-block__img {
     position: absolute;
     top: 1230px; /* 2989 - 1759 */
    left: 4.6094%;
    width: 28.6719%;
    height: 260px;
    margin: 0;
   }
   .page-template-page-service #repair .service-sub-header--block {
     position: absolute;
     top: 1230px; /* 2989 - 1759 */
    left: 36.0156%;
    width: 60%;
    height: 59px;
     margin: 0;
     display: flex; align-items: center; justify-content: center;
   }
   .page-template-page-service #repair .service-svc-block__body {
     position: absolute;
     top: 1324px; /* 3083 - 1759 */
    left: 36.0156%;
    width: 60%;
    text-align: center;
   }
   
   /* 対応内容 ヘッダー */
   .page-template-page-service #repair + .service-sub-header {
     position: absolute;
     top: 1554px; /* 3313 - 1759 */
    left: 4.6875%;
    width: 91.3281%;
    height: 59px;
     margin: 0;
     display: flex; align-items: center; justify-content: center;
   }
   
   /* 修理項目 共通リセット */
   .page-template-page-service .service-repairs .service-repair-item {
     border: none;
     display: block; margin: 0; padding: 0;
     flex-direction: unset;
   }
   
   /* 船体修理 (1番目) */
   .page-template-page-service .service-repairs .service-repair-item:nth-child(1) {
     position: absolute;
     top: 1664px; /* 3423 - 1759 */
    left: 8.125%;
    width: 84.375%;
    height: 222px;
     background: #fff;
     border-radius: var(--radius-card);
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(1) .service-repair-item__img {
     position: absolute;
    top: 26px;
    left: 4.6296%;
    width: 20.5556%;
    height: 147px;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(1) .service-repair-item__title {
     position: absolute;
    top: 44px;
    left: 29.537%;
     margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(1) .service-repair-item__divider {
     position: absolute;
    top: 105px;
    left: 28.9815%;
    width: 70.3704%;
    margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(1) .service-repair-item__desc {
     position: absolute;
    top: 125px;
    left: 29.8148%;
    max-width: 69.4444%;
   }
   
   /* 定期修理・点検 (2番目) */
   .page-template-page-service .service-repairs .service-repair-item:nth-child(2) {
     position: absolute;
    top: 1914px;
    left: 8.125%;
    width: 84.375%;
    height: 222px;
     background: #fff;
     border-radius: var(--radius-card);
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(2) .service-repair-item__img {
     position: absolute;
    top: 26px;
    left: 4.6296%;
    width: 20.5556%;
    height: 147px;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(2) .service-repair-item__title {
     position: absolute;
    top: 46px;
    left: 29.537%;
     margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(2) .service-repair-item__divider {
     position: absolute;
    top: 107px;
    left: 28.9815%;
    width: 70.3704%;
    margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(2) .service-repair-item__desc {
     position: absolute;
    top: 127px;
    left: 29.8148%;
    max-width: 69.4444%;
   }
   
   /* 港湾・施設修理 (3番目) */
   .page-template-page-service .service-repairs .service-repair-item:nth-child(3) {
     position: absolute;
    top: 2164px;
    left: 8.125%;
    width: 84.375%;
    height: 222px;
     background: #fff;
     border-radius: var(--radius-card);
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(3) .service-repair-item__img {
     position: absolute;
    top: 26px;
    left: 4.6296%;
    width: 20.5556%;
    height: 147px;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(3) .service-repair-item__title {
     position: absolute;
    top: 32px;
    left: 29.537%;
     margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(3) .service-repair-item__divider {
     position: absolute;
    top: 93px;
    left: 28.9815%;
    width: 70.3704%;
    margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(3) .service-repair-item__desc {
     position: absolute;
    top: 113px;
    left: 29.8148%;
    max-width: 69.4444%;
   }
   
   /* 公共事業関連工事 (4番目 / --white) */
   .page-template-page-service .service-repairs .service-repair-item:nth-child(4) {
     position: absolute;
    top: 2414px;
    left: 8.125%;
    width: 84.375%;
    height: 222px;
     border-radius: var(--radius-card);
     padding: 0; margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(4) .service-repair-item__img {
     position: absolute;
    top: 40px;
    left: 4.6296%;
    width: 20.5556%;
    height: 147px;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(4) .service-repair-item__title {
     position: absolute;
    top: 42px;
    left: 29.537%;
     margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(4) .service-repair-item__divider {
     position: absolute;
    top: 103px;
    left: 28.9815%;
    width: 70.3704%;
    margin: 0;
   }
   .page-template-page-service .service-repairs .service-repair-item:nth-child(4) .service-repair-item__desc {
     position: absolute;
    top: 123px;
    left: 29.8148%;
    max-width: 69.4444%;
   }

  /* 対応内容カード（PC）デザイン調整 */
  .page-template-page-service .service-main__card .service-repairs .service-repair-item {
    overflow: visible;
  }
  .page-template-page-service .service-main__card .service-repairs .service-repair-item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -18px;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 18px solid #fff;
  }
  .page-template-page-service .service-main__card .service-repairs .service-repair-item .service-repair-item__img {
    width: 21.8519%;
    max-width: 236px;
    aspect-ratio: 222 / 147;
    height: auto;
  }
  .page-template-page-service .service-main__card .service-repairs .service-repair-item .service-repair-item__divider {
    width: 40vw;
    max-width: 70.3704%;
  }
  .page-template-page-service .service-main__card .service-repairs .service-repair-item .service-repair-item__desc {
    font-weight: lighter;
  }
  .page-template-page-service .service-main__card {
    min-height: 2740px;
    padding-bottom: 72px;
  }
   
   /* ─────────────────────────────────────────
      SERVICE PAGE
   ───────────────────────────────────────── */
   
   /* Intro */
   .service-intro {
     display: flex;
     align-items: center;
     gap: 60px;
     padding: 80px;
   }
   .service-intro__text { flex: 1; }
   .service-intro__heading {
     font-size: 45px;
     font-weight: 700;
     color: var(--blue);
     line-height: 1.4;
     margin-bottom: 16px;
   }
   .service-intro__divider {
     width: 658px;
     max-width: 100%;
     height: 2px;
     background: var(--blue);
     margin-bottom: 20px;
   }
   .service-intro__body {
     font-size: 20px;
     font-weight: 300;
     color: var(--blue);
     line-height: 1.8;
   }
   
   /* Main card */
   .service-main { padding: 0 76px 80px; }
   .service-main__card {
     border: 3px solid #fff;
     border-radius: var(--radius-card);
     padding: 80px 60px 40px;
   }
   
   /* Service block（海上���送 / 船舶修理） */
   .service-svc-block {
     display: flex;
     gap: 40px;
     margin-bottom: 40px;
   }
   .service-svc-block__img {
     width: 536px;
     height: 373px;
     border-radius: var(--radius-card);
     object-fit: cover;
     flex-shrink: 0;
   }
   .service-svc-block__img--sm {
     width: 367px;
     height: 260px;
   }
   .service-svc-block__content {
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 20px;
   }
   .service-svc-block__title {
     font-size: 69px;
     font-weight: 700;
     color: #fff;
     line-height: 1.2;
   }
   .service-svc-block__body {
     font-size: 20px;
     font-weight: lighter;
     color: #fff;
     line-height: 1.8;
   }
   
   /* Sub-header bar */
   .service-sub-header {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 14px 24px;
     margin-bottom: 32px;
     text-align: center;
   }
   .service-sub-header--block { margin-bottom: 16px; }
   .service-sub-header__text {
     font-size: 35px;
     font-weight: 700;
     color: var(--blue);
   }
   
   /* Materials grid */
   .service-materials {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 20px;
     margin-bottom: 40px;
   }
   .service-material {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 12px;
   }
   .service-material__label {
     font-size: 25px;
     color: #fff;
     text-align: center;
     font-weight: lighter;
   }
   .service-material__img {
     width: 100%;
     height: 260px;
     border-radius: var(--radius-card);
     object-fit: cover;
   }
   
   /* Routes columns */
   .service-routes {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 20px;
     margin-bottom: 40px;
   }
   .service-route-col__header {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 12px 24px;
     margin-bottom: 20px;
     text-align: center;
   }
   .service-route-col__title {
     font-size: 35px;
     font-weight: 700;
     color: var(--blue);
   }
   .service-route-col__body {
     font-size: 20px;
     font-weight: lighter;
     color: #fff;
     text-align: center;
     line-height: 1.8;
   }
   
   /* Repair items */
   .service-repairs { margin-top: 8px; }
   .service-repair-item {
     display: flex;
     gap: 32px;
     align-items: flex-start;
     padding: 32px 0;
     border-top: 2px solid rgba(255,255,255,.4);
   }
   .service-repair-item--white {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 28px 32px;
     border-top: none;
     margin-top: 20px;
   }
   .service-repair-item__img {
     width: 222px;
     height: 147px;
     border-radius: var(--radius-card);
     object-fit: cover;
     flex-shrink: 0;
   }
   .service-repair-item__content { flex: 1; }
   .service-repair-item__title {
     font-size: 35px;
     font-weight: 700;
     color: var(--blue);
     margin-bottom: 12px;
   }
   .service-repair-item__divider {
     height: 2px;
     background: var(--blue);
     margin-bottom: 12px;
     width: 100%;
   }
   .service-repair-item__desc {
     font-size: 25px;
     color: var(--blue);
     line-height: 1.7;
   }
   
   /* ─────────────────────────────────────────
      RECRUIT PAGE
   ───────────────────────────────────────── */
   
   /* Intro */
   .recruit-intro {
     display: flex;
     align-items: center;
     gap: 60px;
     padding: 80px;
   }
   .recruit-intro__text { flex: 1; }
   .recruit-intro__heading {
     font-size: 45px;
     font-weight: 700;
     color: var(--blue);
     line-height: 1.4;
     margin-bottom: 16px;
   }
   .recruit-intro__divider {
     width: 658px;
     max-width: 100%;
     height: 2px;
     background: var(--blue);
     margin-bottom: 20px;
   }
   .recruit-intro__body {
     font-size: 20px;
     font-weight: 300;
     color: var(--blue);
     line-height: 1.9;
   }
   
   /* ── Recruit ページ — recruit-intro 絶対配置 ── */
   .page-template-page-recruit .recruit-intro {
     display: block;
     position: relative;
     padding: 0;
     min-height: 870px;
     isolation: isolate;
   }
   /* 白地（半円右・opacity 82%） */
   .page-template-page-recruit .recruit-intro::before {
     content: '';
     position: absolute;
     top: 249px;
     left: 0;
     width: 1400px;
     height: 606px;
     background: rgba(255, 255, 255, 0.82);
     border-radius: 0 303px 303px 0;
     z-index: 1;
   }
   .page-template-page-recruit .recruit-intro .circle-img--lg {
     position: absolute;
     top: 320px;
     left: 836px;
     width: 477px;
     height: 477px;
     flex-shrink: unset;
     z-index: 2;
   }
   .page-template-page-recruit .recruit-intro__text {
     flex: unset;
   }
   .page-template-page-recruit .recruit-intro__heading {
     position: absolute;
     top: 319px;      /* 1155 - 836 */
     left: 80px;
     z-index: 2;
   }
   .page-template-page-recruit .recruit-intro__divider {
     position: absolute;
     top: 407px;      /* 1243 - 836 */
     left: 80px;
     margin-bottom: 0;
     z-index: 2;
   }
   .page-template-page-recruit .recruit-intro__body {
     position: absolute;
     top: 450px;      /* 1286 - 836 */
     left: 80px;
     width: 658px;
     z-index: 2;
   }
   
   /* Appeal section */
   .recruit-appeal { padding: 0 80px 80px; }
   .recruit-appeal__heading {
     font-size: 56px;
     font-weight: 700;
     color: #fff;
     text-align: center;
     margin-bottom: 40px;
     line-height: 1.3;
   }
   .recruit-appeal__cards {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 40px;
   }
   .recruit-point-card {
     border: 3px solid #fff;
     border-radius: var(--radius-card);
     padding: 24px;
   }
   .recruit-point-card__icon-box {
     background: #fff;
     border-radius: var(--radius-card);
     height: 180px;
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: 24px;
   }
   .recruit-point-card__icon {
     width: 200px;
     height: auto;
     fill: var(--blue);
   }
   .recruit-point-card__title {
     font-size: 28px;
     font-weight: 700;
     color: #fff;
     margin-bottom: 12px;
   }
   .recruit-point-card__desc {
     font-size: 20px;
     font-weight: 300;
     color: #fff;
     line-height: 1.7;
   }
   
   /* ── Recruit ページ — recruit-appeal 絶対配置 ── */
   .page-template-page-recruit .recruit-appeal {
     display: block;
     position: relative;
     padding: 0;
     min-height: 760px;
   }
   .page-template-page-recruit .recruit-appeal__heading {
     position: absolute;
     top: 109px;      /* 1815 - 1706 */
     left: 50%;
     transform: translateX(-50%);
     margin-bottom: 0;
     text-align: center;
     width: max-content;
     max-width: calc(100% - 160px);
   }
   .page-template-page-recruit .recruit-appeal__cards {
     display: block;
   }
   /* カード共通 */
   .page-template-page-recruit .recruit-point-card {
     position: absolute;
     top: 264px;      /* 1970 - 1706 */
     height: 480px;
     padding: 0;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(1) {
    left: 5.5556%;
    width: 27.8472%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(2) {
    left: 36.1111%;
    width: 27.7778%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(3) {
    left: 66.5972%;
    width: 27.8472%;
   }
   /* アイコン下地 */
   .page-template-page-recruit .recruit-point-card__icon-box {
     position: absolute;
     top: 33px;       /* 2003 - 1970 */
    width: 86.5337%;
     height: 237px;
     margin-bottom: 0;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(1) .recruit-point-card__icon-box {
    left: 5.985%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(2) .recruit-point-card__icon-box {
    left: 6.75%;
  }
  .page-template-page-recruit .recruit-point-card:nth-child(3) .recruit-point-card__icon-box {
    left: 6.75%;
   }
   /* タイトル */
   .page-template-page-recruit .recruit-point-card__title {
     position: absolute;
     top: 305px;      /* 2275 - 1970 */
     margin-bottom: 0;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(1) .recruit-point-card__title {
    left: 5.985%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(2) .recruit-point-card__title {
    left: 5%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(3) .recruit-point-card__title {
    left: 6.75%;
   }
   /* 本文 */
   .page-template-page-recruit .recruit-point-card__desc {
     position: absolute;
     top: 357px;      /* 2327 - 1970 */
   }
   .page-template-page-recruit .recruit-point-card:nth-child(1) .recruit-point-card__desc {
    left: 5.985%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(2) .recruit-point-card__desc {
    left: 5%;
   }
   .page-template-page-recruit .recruit-point-card:nth-child(3) .recruit-point-card__desc {
    left: 6.75%;
   }
   
   /* Jobs section */
   .recruit-jobs { padding: 0 76px 80px; }
   .recruit-jobs__card {
     border: 3px solid #fff;
     border-radius: var(--radius-card);
     padding: 40px 0 60px;
   }
   .recruit-jobs__header {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 14px 24px;
     margin: 0 48px 32px;
     text-align: center;
   }
   .recruit-jobs__header-text {
     font-size: 35px;
     font-weight: 700;
     color: var(--blue);
   }
   .recruit-jobs__subtext {
     font-size: 36px;
     font-weight: 700;
     color: #fff;
     text-align: center;
     padding: 0 40px;
     margin-bottom: 32px;
     line-height: 1.4;
   }
   
   /* Individual job listing */
   .recruit-job__bar {
     background: var(--blue);
     border-radius: var(--radius-card);
     padding: 16px 40px;
     margin: 0 80px;
     text-align: center;
   }
   .recruit-job__bar-title {
     font-size: 30px;
     font-weight: 700;
     color: #fff;
   }
   .recruit-job__box {
     background: #fff;
     border-radius: var(--radius-card);
     margin: 0 28px;
     padding: 32px 40px 40px;
   }
   .recruit-job__subtitle {
     font-size: 20px;
     font-weight: 500;
     color: var(--blue);
     margin-bottom: 28px;
   }
   .recruit-job__body {
     display: flex;
     gap: 40px;
   }
   .recruit-job__photos {
     display: flex;
     flex-direction: column;
     gap: 20px;
     flex-shrink: 0;
     width: 380px;
   }
   .recruit-job__photo {
     width: 100%;
     height: 210px;
     object-fit: cover;
     border-radius: var(--radius-card);
   }
   .recruit-job__details {
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 20px;
   }
   .recruit-job__type-tag {
     display: inline-block;
     background: var(--blue);
     border-radius: var(--radius-card);
     padding: 8px 20px;
     font-size: 20px;
     font-weight: 500;
     color: #fff;
   }
   .recruit-job__section {
     display: flex;
     flex-direction: column;
     gap: 12px;
   }
   .recruit-job__label {
     display: inline-block;
     border: 1px solid var(--blue);
     border-radius: var(--radius-card);
     padding: 6px 16px;
     font-size: 20px;
     font-weight: 500;
     color: var(--blue);
     align-self: flex-start;
   }
   .recruit-job__text {
     font-size: 20px;
     font-weight: 400;
     color: var(--blue);
     line-height: 1.6;
    white-space: normal;
   }
   .recruit-job__insurance {
     border: 1px solid var(--blue);
     border-radius: var(--radius-card);
     padding: 10px 16px;
     font-size: 20px;
     font-weight: 500;
     color: var(--blue);
     line-height: 1.5;
   }
   .recruit-job__entry {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: var(--blue);
     border-radius: 30px;
     padding: 8px 20px;
     font-size: 20px;
     color: #fff;
     align-self: flex-end;
     box-shadow: var(--shadow-btn);
     white-space: nowrap;
   }
   /* 青ボタン上は白丸＋青矢印 */
   .recruit-job__entry svg circle { fill: #fff; }
   .recruit-job__entry svg polygon { fill: var(--blue); }
   
   /* Bottom message + entry CTA */
   .recruit-jobs__message {
     font-size: 28px;
     font-weight: lighter;
     color: #fff;
     text-align: center;
     padding: 60px 80px 40px;
     line-height: 1.8;
   }
   .recruit-jobs__entry-wrap { text-align: center; padding-bottom: 20px; }
   .recruit-jobs__entry-btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: #fff;
     border-radius: 30px;
     padding: 10px 36px;
     font-size: 20px;
     font-weight: 500;
     color: var(--blue);
     box-shadow: var(--shadow-btn);
     white-space: nowrap;
   }
   .recruit-jobs__entry-btn svg { fill: var(--blue); }
   
   /* ── Recruit ページ — recruit-jobs 絶対配置 ── */
   .page-template-page-recruit .recruit-jobs {
     display: block;
     position: relative;
     padding: 0;
     min-height: 1860px;
   }
   
   /* カード（セクション基準: 2544-2466=78px） */
   .page-template-page-recruit .recruit-jobs__card {
     position: absolute;
     top: 78px;
     left: 80px;
    width: calc(100% - 160px);
     height: 1774px;
     padding: 0;
   }
   
   /* ヘッダー下地（カード基準: 2605-2544=61px） */
   .page-template-page-recruit .recruit-jobs__header {
     position: absolute;
     top: 61px;
    left: 2.1875%;
    width: 95.7031%;
     height: 59px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
     margin: 0;
   }
   .page-template-page-recruit .recruit-jobs__header-text {
    position: static;
    transform: none;
    margin: 0;
   }
   
   /* サブテキスト（カード基準: 2720-2544=176px） */
   .page-template-page-recruit .recruit-jobs__subtext {
     position: absolute;
     top: 176px;
    left: 2.1875%;
    right: 2.1875%;
     width: auto;
     margin: 0;
     text-align: center;
   }
   
   /* 中間コンテナ：静的配置でフラット化 */
   .page-template-page-recruit .recruit-job {
     position: static;
     display: block;
   }
   
   /* バー（カード基準: 2861-2544=317px） */
   .page-template-page-recruit .recruit-job__bar {
     position: absolute;
     top: 317px;
    left: 6.3281%;
    width: 87.4219%;
     height: 59px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 40px;
     margin: 0;
     background: #0095D9;
     z-index: 1;
   }
   .page-template-page-recruit .recruit-job__bar-title {
    position: static;
    transform: none;
     margin: 0;
   }
   
   /* ボックス（カード基準: 2813-2544=269px、子要素の位置基準） */
   .page-template-page-recruit .recruit-job__box {
     position: absolute;
     top: 269px;
    left: 2.1875%;
    width: 95.7031%;
     height: 1074px;
     padding: 0;
     margin: 0;
   }
   
   /* 中間コンテナ：静的配置でフラット化 */
   .page-template-page-recruit .recruit-job__body,
   .page-template-page-recruit .recruit-job__photos,
   .page-template-page-recruit .recruit-job__details,
   .page-template-page-recruit .recruit-job__section {
     position: static;
     display: block;
   }
   
   /* サブタイトル（ボックス基準: 2947-2813=134px） */
   .page-template-page-recruit .recruit-job__subtitle {
     position: absolute;
     top: 134px;
    left: 0;
    right: 0;
    text-align: center;
     margin: 0;
   }
   
   /* 写真（ボックス基準） */
   .page-template-page-recruit .recruit-job__photo {
     position: absolute;
    width: 32.898%;
     height: 256px;
    left: 4.7347%;
   }
   .page-template-page-recruit .recruit-job__photo:nth-child(1) {
     top: 189px;      /* 3002-2813 */
   }
   .page-template-page-recruit .recruit-job__photo:nth-child(2) {
     top: 479px;      /* 3292-2813 */
   }
   .page-template-page-recruit .recruit-job__photo:nth-child(3) {
     top: 769px;      /* 3582-2813 */
   }
   
   /* 職種タグ（ボックス基準: 3014-2813=201px） */
   .page-template-page-recruit .recruit-job__type-tag {
     position: absolute;
     top: 201px;
    left: 42.449%;
     width: auto;
   }
   
   /* 主な業務内容（ボックス基準） */
   .page-template-page-recruit .recruit-job__section:nth-child(2) .recruit-job__label {
     position: absolute;
     top: 256px;      /* 3069-2813 */
    left: 42.449%;
   }
   .page-template-page-recruit .recruit-job__section:nth-child(2) .recruit-job__text {
     position: absolute;
     top: 301px;      /* 3114-2813 */
    left: 42.449%;
    width: 32.6531%;
   }
   
   /* 応募条件（ボックス基準） */
   .page-template-page-recruit .recruit-job__section:nth-child(3) .recruit-job__label {
     position: absolute;
     top: 500px;
    left: 42.449%;
    width: 9.3061%;
     height: 40px;
   }
   .page-template-page-recruit .recruit-job__section:nth-child(3) .recruit-job__text {
     position: absolute;
     top: 546px;
    left: 42.449%;
    width: 32.6531%;
   }
   
   /* 加入保険（ボックス基準: 3709-2813=896px） */
   .page-template-page-recruit .recruit-job__insurance {
     position: absolute;
     top: 896px;
  left: 42.449%;
  width: 32.6531%;
  max-width: none;
    min-height: 46px;
    height: auto;
    padding-top: 10px;
    padding-bottom: 10px;
     margin: 0;
   }
   
   /* エントリーボタン（ボックス内: 3798-2813=985px） */
   .page-template-page-recruit .recruit-job__entry {
     position: absolute;
   top: 1042px;
  left: 58.7755%;
   /* transform: translateX(-50%); */
    width: auto;
    /* min-width: 240px; */
     height: 40px;
   }
   
   /* メッセージ（カード基準: 3968-2544=1424px） */
   .page-template-page-recruit .recruit-jobs__message {
     position: absolute;
     top: 1424px;
    left: 2.1875%;
    right: 2.1875%;
     width: auto;
     margin: 0;
     padding: 0;
     text-align: center;
   }
   
   /* 採用エントリーボタン（カード基準: 4188-2544=1644px） */
   .page-template-page-recruit .recruit-jobs__entry-wrap {
     position: static;
     text-align: unset;
     padding: 0;
   }
   .page-template-page-recruit .recruit-jobs__entry-btn {
     position: absolute;
     top: 1644px;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
     height: 40px;
   }

 @media (min-width: 1025px) {
   /* 可変テキスト対応：PCの右カラムのみ通常フローで積む */
   .page-template-page-recruit .recruit-job__details {
     position: absolute !important;
     top: 201px;
     left: 42.449%;
     width: 52%;
     display: flex !important;
     flex-direction: column !important;
     gap: 16px !important;
   }
   .page-template-page-recruit .recruit-job__type-tag,
   .page-template-page-recruit .recruit-job__section:nth-child(2) .recruit-job__label,
   .page-template-page-recruit .recruit-job__section:nth-child(2) .recruit-job__text,
   .page-template-page-recruit .recruit-job__section:nth-child(3) .recruit-job__label,
   .page-template-page-recruit .recruit-job__section:nth-child(3) .recruit-job__text,
   .page-template-page-recruit .recruit-job__insurance,
   .page-template-page-recruit .recruit-job__entry {
     position: static !important;
     top: auto !important;
     left: auto !important;
     width: auto !important;
     height: auto !important;
     transform: none !important;
     margin: 0 !important;
   }
   .page-template-page-recruit .recruit-job__section {
     display: flex !important;
     flex-direction: column !important;
     gap: 12px !important;
   }
   .page-template-page-recruit .recruit-job__text {
     width: 100% !important;
     white-space: normal !important;
   }
   .page-template-page-recruit .recruit-job__insurance {
     max-width: 100% !important;
     padding: 10px 16px !important;
   }
   .page-template-page-recruit .recruit-job__entry {
     align-self: flex-end !important;
     min-width: 240px;
   }
 }
   
   /* ─────────────────────────────────────────
      モバイルナビゲーション
   ───────────────────────────────────────── */
   .site-header__toggle {
     display: none;
     background: none;
     border: none;
     cursor: pointer;
     padding: 8px;
     flex-direction: column;
     justify-content: center;
     gap: 5px;
     flex-shrink: 0;
     margin-left: 12px;
   }
   
   .site-header__toggle span {
     display: block;
     width: 24px;
     height: 2px;
     background: var(--blue);
     border-radius: 2px;
     transition: transform .3s ease, opacity .3s ease;
   }

  /* ハンバーガー：3本目（下線）だけ少し短く */
  .site-header__toggle[aria-expanded="false"] span:nth-child(3) {
    width: 18px;
    margin-left: auto;
    margin-right: 0;
  }
   
   .site-header__toggle[aria-expanded="true"] span:nth-child(1) {
     transform: translateY(7px) rotate(45deg);
   }
   .site-header__toggle[aria-expanded="true"] span:nth-child(2) {
     opacity: 0;
   }
   .site-header__toggle[aria-expanded="true"] span:nth-child(3) {
     transform: translateY(-7px) rotate(-45deg);
   }
   
   /* モバイルメニュー：背面オーバーレイ */
   .mobile-nav__backdrop {
     position: fixed;
     inset: 0;
    z-index: 1099;
     background: rgba(0, 0, 0, 0.4);
     opacity: 0;
     visibility: hidden;
     transition: opacity .3s ease, visibility .3s ease;
     pointer-events: none;
   }
   .mobile-nav__backdrop.is-visible {
     opacity: 1;
     visibility: visible;
     pointer-events: auto;
   }
   
  /* モバイルメニュー：パネル本体 */
  .mobile-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1100;
    background: #0095D9; /* 背景をブランドカラーに */
    overflow-y: auto;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    padding: 16px 20px 32px;
    visibility: hidden;
    opacity: 0;
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(0.4, 0, 0.2, 1), opacity .3s ease, visibility .3s ease;
  }
   .mobile-nav.is-open {
     visibility: visible;
     opacity: 1;
     transform: translateX(0);
   }
   
  /* 内側カード */
  .mobile-nav__inner {
    flex: 0 1 440px;
    width: 100%;
    max-width: 440px;
    max-height: calc(100vh - 48px);
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 12px 40px rgba(0,0,0,.24);
    margin: 8px auto 0;
    padding: 24px 32px 32px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* カード内ヘッダー（ロゴ + 閉じる） */
  .mobile-nav__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0,149,217,.12);
  }
  .mobile-nav__logo {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--blue);
    white-space: nowrap;
  }
  .mobile-nav__close {
    position: relative;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid rgba(0,149,217,.6);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
  }
  .mobile-nav__close span {
    position: absolute;
    width: 16px;
    height: 2px;
    background: var(--blue);
    border-radius: 2px;
  }
  .mobile-nav__close span:first-child {
    transform: rotate(45deg);
  }
  .mobile-nav__close span:last-child {
    transform: rotate(-45deg);
  }
   
  .mobile-nav__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
  }
  
  .mobile-nav__item {
    border: none;
  }
  
  .mobile-nav__item a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 10px 0;
    color: var(--blue);
    transition: opacity .2s ease, transform .2s ease;
  }
   .mobile-nav__item a:hover,
   .mobile-nav__item a:focus {
    opacity: .72;
    transform: translateY(-1px);
     outline: none;
   }
   
   .mobile-nav__en {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 22px;
    font-weight: 600;
     color: var(--blue);
    letter-spacing: 0.14em;
    text-transform: uppercase;
   }
   
   .mobile-nav__ja {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    font-weight: lighter;
    color: rgba(0, 149, 217, 0.9);
   }
   
   /* ─────────────────────────────────────────
      レスポンシブ
   ───────────────────────────────────────── */
   @media (max-width: 1024px) {
     .about, .recruit { flex-direction: column; gap: 40px; }
     .circle-img--lg { width: 340px; height: 340px; }
     .circle-img--md { width: 300px; height: 300px; }
     .service__cards { grid-template-columns: 1fr; }
     .blog__cards { grid-template-columns: repeat(2, 1fr); }
     .cta__panels { grid-template-columns: 1fr; height: auto; }
     .site-footer__main { grid-template-columns: 1fr; }
     .footer-nav { grid-template-columns: 1fr; }
     /* about page */
     .about-work { flex-direction: column; gap: 40px; }
     .about-president__inner { flex-direction: column; min-height: auto; }
     .about-president__img { width: 100%; max-width: 469px; height: 320px; }
    .about-photo-grid { grid-template-columns: 1fr 1fr; }
    .page-template-page-about .about-photo-grid { grid-template-columns: repeat(3, 1fr); }
     /* company page */
     .company-access { grid-template-columns: 1fr; }
     .company-access__map { height: 300px; }
     /* recruit page */
     .recruit-intro { flex-direction: column; gap: 40px; padding: 60px 40px; }
     .recruit-intro__heading { font-size: 34px; }
     .recruit-appeal { padding: 0 40px 60px; }
     .recruit-appeal__heading { font-size: 40px; }
     .recruit-appeal__cards { grid-template-columns: 1fr; gap: 24px; }
     .recruit-jobs { padding: 0 40px 60px; }
     .recruit-job__bar { margin: 0 40px; }
     .recruit-job__body { flex-direction: column; }
     .recruit-job__photos { width: 100%; }
     .recruit-job__photo { height: 220px; }
     /* service page */
     .service-intro { gap: 40px; padding: 60px 40px; }
     .service-intro__heading { font-size: 34px; }
     .service-main { padding: 0 40px 60px; }
     .service-main__card { padding: 56px 40px 40px; }
     .service-svc-block { flex-direction: column; gap: 28px; }
     .service-svc-block__img { width: 100%; max-width: 536px; height: 300px; }
     .service-svc-block__img--sm { width: 100%; max-width: 400px; height: 240px; }
     .service-materials { grid-template-columns: 1fr 1fr; }
     .service-routes { grid-template-columns: 1fr; gap: 16px; }
   }
   
   @media (min-width: 769px) {
     .mobile-nav,
     .mobile-nav__backdrop {
       display: none !important;
     }
     body {
       width: 100vw;
     }
     .about,
     .recruit {
       max-width: none;
     }
     .service__cards,
     .service__footer,
     .news__list,
     .news__footer,
     .blog__cards,
     .cta__panels {
       max-width: none;
     }
     .site-footer {
       max-width: none;
     }
    .about-work,
    .about-president__inner,
    .about-field__text,
    .about-photo-grid,
    .about-future__text,
    .company-overview__card,
    .company-access,
    .news-single__card,
    .news-archive__card,
    .contact-tabs,
    .contact-card {
      max-width: none;
    }
    .page-template-page-about .about-field .about-photo-grid,
    .page-template-page-about .about-future .about-photo-grid,
    .page-template-page-service .service-intro__body,
    .page-template-page-service #transport .service-svc-block__body,
    .page-template-page-service .service-routes .service-route-col:nth-child(1) .service-route-col__body,
    .page-template-page-service #repair .service-svc-block__body,
    .page-template-page-service .service-repairs .service-repair-item:nth-child(1) .service-repair-item__desc,
    .page-template-page-service .service-repairs .service-repair-item:nth-child(2) .service-repair-item__desc,
    .page-template-page-service .service-repairs .service-repair-item:nth-child(3) .service-repair-item__desc,
    .page-template-page-service .service-repairs .service-repair-item:nth-child(4) .service-repair-item__desc {
      max-width: none;
    }
   }
   
   @media (max-width: 768px) {
     /* ── ヘッダー・モバイルメニュー ── */
     .site-header__toggle { display: flex; }
     .site-header__nav { display: none; }
     .mobile-nav { display: flex; }
     .mobile-nav__backdrop { display: block; }
   
  /* ── ヒーロー ── */
     .hero { padding: 90px 20px 70px; min-height: var(--maei-m-fv100, 100svh); }
     .hero__title { font-size: clamp(34px, 9vw, 52px); line-height: 1.2; }
     .hero__sub { order: 0; align-self: auto; text-align: left; font-size: 15px; margin-bottom: 16px; }
     .hero__buttons { order: 0; flex-direction: column; gap: 12px; align-items: flex-start; }
     .scroll-hint { display: none; }
    /* TOP FV（SP）: 下層ページの page-hero と同レイアウト */
    .home .hero {
      position: relative;
      padding: 0;
      min-height: calc(var(--subpage-hero-header-offset) + var(--maei-m-fv80, 80svh));
    }
    .home .hero__bg {
      position: absolute;
      top: var(--subpage-hero-header-offset);
      bottom: auto;
      left: 50%;
      transform: translateX(-50%);
      width: calc(100% - 40px);
      max-width: 350px;
      height: var(--maei-m-fv80, 80svh);
      margin: 0;
    }
    .home .hero__bg picture,
    .home .hero__bg img {
      height: 100%;
    }
    .home .hero__content {
      position: absolute;
      top: var(--subpage-hero-header-offset);
      left: 50%;
      transform: translateX(-50%);
      width: calc(100% - 40px);
      max-width: 350px;
      height: var(--maei-m-fv80, 80svh);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      z-index: 1;
    }
    .home .hero__title {
      position: static;
      top: auto;
      left: auto;
      margin: 0;
      font-size: clamp(34px, 9vw, 46px);
      text-align: center;
    }
    .home .hero__sub {
      font-weight: 600;
      position: static;
      top: auto;
      left: auto;
      order: 0;
      align-self: auto;
      margin: 16px 0 0;
      text-align: center;
    }
   
     /* ── セクション見出し ── */
  .section-heading { text-align: left; padding-left: 20px;}
     .section-heading__en { font-size: clamp(40px, 11.5vw, 52px); }
     .section-heading__ja { font-size: 15px; }
   
     /* ── ABOUT ── */
    .about, .service, .recruit, .news, .blog, .cta { margin-top: 40px; padding-left: 24px; padding-right: 24px; }
     .about { padding-top: 60px; padding-bottom: 48px; }
     .about__subtitle { font-size: 18px; }
     .about__body { font-size: 15px; }
     .circle-img--lg { width: 260px; height: 260px; align-self: center; }
     .circle-img--md { width: 260px; height: 260px; align-self: center; }
   
     /* ── SERVICE ── */
     .service { padding-top: 60px; padding-bottom: 48px; }
     .service-card { height: 206px; }
     .service-card__title { font-size: 24px; }
     .service-card__desc { font-size: 14px; }
   
    /* ── RECRUIT ── */
    .recruit { padding-top: 60px; padding-bottom: 48px; }
    .recruit__heading { text-align: right; width: 100%; padding-right: 20px; padding-left: 20px; }
    .recruit__heading .section-heading { align-items: flex-end; }
    .recruit__heading .section-heading__en,
    .recruit__heading .section-heading__ja { text-align: left; }
    .recruit__img { margin-top: 24px; }
     .recruit::before { display: none; }
     .recruit__subtitle { font-size: 18px; text-align: left; }
     .recruit__body { text-align: left; font-size: 15px; }
     .recruit__footer { text-align: left; }
   
    /* ── NEWS ── */
    .news {
      padding-top: 60px;
      padding-bottom: 48px;
      padding-left: 24px;
      padding-right: 24px;
      background-color: #0095D9;
    }
    .news-item__thumb {
      width: 100%;
      height: 206px;
      border-radius: var(--radius-card);
    }
    .news-item__body {
      width: 100%;
      margin-top: 4px;
    }
    .news-item__arrow {
      align-self: flex-end;
    }
    .news-item__title { font-size: 20px; }
    .news-item__date { font-size: 15px; }
    .news-item__excerpt { font-size: 15px; }
   
     /* ── BLOG ── */
     .blog { padding-top: 60px; padding-bottom: 48px; }
     .blog__cards { grid-template-columns: 1fr; }
     .blog-card { padding: 10px; }
     .blog-card__thumb { height: 206px; }
     .blog-card__date { font-size: 15px; }
     .blog-card__title { font-size: 20px; }
     .blog-card__excerpt { font-size: 15px; }
   
     /* ── CTA ── */
     .cta { padding-top: 40px; padding-bottom: 40px; }
    .cta__panels { padding-left: 20px; padding-right: 20px; }
    .cta-panel { padding: 40px 0 48px; min-height: 300px; }
     .cta-panel__content {
       padding-left: 20px;
       padding-right: 20px;
       width: 100%;
       box-sizing: border-box;
     }
     .cta-panel__title { font-size: 24px; }
     .cta-panel__icon { width: 80px; height: 80px; margin-bottom: 16px; }
     .cta-panel__icon svg { width: 38px; height: 38px; }
   
     /* ── フッター（SP：縦並び・中央揃え） ── */
     .site-footer { padding: 40px 24px 24px; }
     .site-footer-wrap { padding: 0 16px 40px; }
     .site-footer__main {
       grid-template-columns: 1fr;
       text-align: center;
       justify-items: center;
       gap: 40px;
     }
     .site-footer__company h2,
     .site-footer__address { text-align: center; }
     .site-footer__nav { width: 100%; }
     .footer-nav {
       grid-template-columns: 1fr;
       justify-items: center;
       gap: 4px;
     }
     .footer-nav__item a {
       flex-direction: column;
       align-items: center;
       gap: 2px;
       text-align: center;
     }
     .footer-nav__en::before { content: none; }
     .back-to-top { right: 24px; bottom: 24px; width: 70px; height: 44px; }
     /* ── page-hero 共通（SP・上記テンプレ以外） ── */
     .page-hero { padding-top: 85px; padding-bottom: 40px; }
     .page-hero__banner { height: 690px; margin: 0 20px; }
     .page-hero__en { font-size: clamp(34px, 9vw, 46px); }
     .page-hero__ja { font-size: 15px; }
     .page-hero__buttons { padding: 0 16px; flex-direction: column; align-items: flex-start; gap: 12px; }
     /* ── サブページ PAGE HERO（SP）— Service と同様 ── */
     .page-template-page-about .page-hero,
     .page-template-page-recruit .page-hero,
     .page-template-page-company .page-hero,
     .page-template-page-service .page-hero,
     .post-type-archive-news .page-hero,
     .blog .page-hero,
     .post-type-archive-blog .page-hero,
     .page-template-page-contact .page-hero,
     .page-template-page-privacy-policy .page-hero {
       position: relative !important;
       padding: 0 !important;
       min-height: calc(var(--subpage-hero-header-offset) + var(--maei-m-fv80, 80svh)) !important;
     }
     .page-template-page-about .page-hero__banner,
     .page-template-page-recruit .page-hero__banner,
     .page-template-page-company .page-hero__banner,
     .page-template-page-service .page-hero__banner,
     .post-type-archive-news .page-hero__banner,
     .blog .page-hero__banner,
     .post-type-archive-blog .page-hero__banner,
     .page-template-page-contact .page-hero__banner,
     .page-template-page-privacy-policy .page-hero__banner {
       position: absolute !important;
       top: var(--subpage-hero-header-offset) !important;
       left: 50% !important;
       transform: translateX(-50%) !important;
       width: calc(100% - 40px) !important;
       max-width: 350px !important;
       height: var(--maei-m-fv80, 80svh) !important;
       margin: 0 !important;
     }
     .page-template-page-about .page-hero__title,
     .page-template-page-recruit .page-hero__title,
     .page-template-page-company .page-hero__title,
     .page-template-page-service .page-hero__title,
     .post-type-archive-news .page-hero__title,
     .blog .page-hero__title,
     .post-type-archive-blog .page-hero__title,
     .page-template-page-contact .page-hero__title,
     .page-template-page-privacy-policy .page-hero__title {
       position: absolute !important;
       inset: 0 !important;
       display: flex !important;
       flex-direction: column !important;
       align-items: center !important;
       justify-content: center !important;
     }
     .page-template-page-about .page-hero__en,
     .page-template-page-about .page-hero__ja,
     .page-template-page-recruit .page-hero__en,
     .page-template-page-recruit .page-hero__ja,
     .page-template-page-company .page-hero__en,
     .page-template-page-company .page-hero__ja,
     .page-template-page-service .page-hero__en,
     .page-template-page-service .page-hero__ja,
     .post-type-archive-news .page-hero__en,
     .post-type-archive-news .page-hero__ja,
     .blog .page-hero__en,
     .blog .page-hero__ja,
     .post-type-archive-blog .page-hero__en,
     .post-type-archive-blog .page-hero__ja,
     .page-template-page-contact .page-hero__en,
     .page-template-page-contact .page-hero__ja,
     .page-template-page-privacy-policy .page-hero__en,
     .page-template-page-privacy-policy .page-hero__ja {
       position: static !important;
       left: auto !important;
       top: auto !important;
       transform: none !important;
     }
     .page-template-page-about .page-hero__en,
     .page-template-page-recruit .page-hero__en,
     .page-template-page-company .page-hero__en,
     .page-template-page-service .page-hero__en,
     .post-type-archive-news .page-hero__en,
     .blog .page-hero__en,
     .post-type-archive-blog .page-hero__en,
     .page-template-page-contact .page-hero__en,
     .page-template-page-privacy-policy .page-hero__en {
       font-size: clamp(34px, 9vw, 46px);
       text-align: center;
       margin-top: 0;
     }
     .page-template-page-about .page-hero__ja,
     .page-template-page-recruit .page-hero__ja,
     .page-template-page-company .page-hero__ja,
     .page-template-page-service .page-hero__ja,
     .post-type-archive-news .page-hero__ja,
     .blog .page-hero__ja,
     .post-type-archive-blog .page-hero__ja,
     .page-template-page-contact .page-hero__ja,
     .page-template-page-privacy-policy .page-hero__ja {
       font-size: 15px;
       text-align: center;
       margin-top: 16px;
     }
     .page-template-page-about .page-hero__buttons,
     .page-template-page-recruit .page-hero__buttons,
     .page-template-page-company .page-hero__buttons,
     .page-template-page-service .page-hero__buttons,
     .post-type-archive-news .page-hero__buttons,
     .blog .page-hero__buttons,
     .post-type-archive-blog .page-hero__buttons,
     .page-template-page-contact .page-hero__buttons,
     .page-template-page-privacy-policy .page-hero__buttons {
       display: none !important;
     }
     .post-type-archive-news .news-archive { margin-top: 64px !important; }
     .blog .blog-archive,
     .post-type-archive-blog .blog-archive { margin-top: 64px !important; }
     .page-template-page-contact .contact-section { margin-top: 64px !important; }
     .page-template-page-privacy-policy .privacy-section { margin-top: 64px !important; }
     /* About — セクション間余白（SP） */
    .page-template-page-about .about-philosophy { margin-top: 32px !important; }
     .page-template-page-about .about-work { margin-top: 64px !important; }
     .page-template-page-about .about-president { margin-top: 64px !important; }
     .page-template-page-about .about-field { margin-top: 64px !important; }
     .page-template-page-about .about-future { margin-top: 64px !important; }
     .page-template-page-about .cta { margin-top: 64px !important; }
   
     /* philosophy */
     .about-philosophy { padding: 0 !important; min-height: 745px !important; overflow: hidden; }
     .about-philosophy__daen { display: block !important; }
    .about-philosophy__daen--1 { top: 0px !important; left: calc(50% - 27.5px) !important; }
    .about-philosophy__daen--2 { top: 65px !important; left: calc(50% - 55px) !important; }
    .about-philosophy__daen--3 { top: 188px !important; left: calc(50% - 155.5px) !important; width: 311px !important; height: 311px !important; }
    .about-philosophy__daen--4 { top: 528px !important; left: calc(50% - 55px) !important; }
    .about-philosophy__daen--5 { top: 648px !important; left: calc(50% - 27.5px) !important; }
    .about-philosophy__text { position: absolute !important; top: 220px !important; left: 50% !important; transform: translateX(-50%); width: 226px !important; font-size: 15px; line-height: 2; text-align: center; }
   
     /* work */
   .page-template-page-about .about-work { display: block !important; position: relative !important; padding: 0 !important; min-height: 762px !important; --about-work-image-size: 295px; }
     .page-template-page-about .about-work__heading { position: absolute !important; top: 0 !important; left: 40px !important; font-size: 35px; line-height: 1.1; }
     .page-template-page-about .about-work__divider { position: absolute !important; top: 78px !important; left: 40px !important; width: calc(100% - 80px) !important; margin-bottom: 0; }
    .page-template-page-about .about-work .circle-img--lg { position: absolute !important; top: 111px !important; left: 50% !important; transform: translateX(-50%); width: var(--about-work-image-size) !important; height: var(--about-work-image-size) !important; align-self: unset; z-index: 2; }
    .page-template-page-about .about-work__daen6 { 
      display: block !important;
      position: absolute !important;
      top: 340px !important;
      left: calc(50% + 75px) !important;
      width: 84px !important;
      height: 84px !important;
      z-index: 1;
    }
     .page-template-page-about .about-work__body { position: absolute !important; top: 449px !important; left: 40px !important; width: calc(100% - 80px) !important; font-size: 14px; line-height: 1.85; }
   
     /* president */
   .page-template-page-about .about-president { position: relative !important; min-height: 1127px !important; padding: 0 !important; --about-president-image-size: 294px; }
    .page-template-page-about .about-president__inner { position: absolute !important; top: 0 !important; left: 20px !important; width: calc(100% - 40px) !important; max-width: none !important; height: 1080px !important; margin: 0 !important; display: block !important; flex-direction: unset !important; padding: 0 !important; gap: 0 !important; }
     .page-template-page-about .about-president__content { position: static !important; padding-top: 0 !important; }
  .page-template-page-about .about-president__daen7 { display: block !important; position: absolute !important; top: 362px !important; left: calc(50% - 150px) !important; width: 82px !important; height: 82px !important; z-index: 1; }
    .page-template-page-about .about-president__img { position: absolute !important; top: 145px !important; left: 50% !important; transform: translateX(-50%); width: var(--about-president-image-size) !important; height: var(--about-president-image-size) !important; align-self: unset !important; z-index: 2; }
     .page-template-page-about .about-president__heading {
       position: absolute !important;
       top: 55px !important;
       left: 120px !important;
       font-size: 45px;
       text-align: right;
       margin-bottom: 0;
       box-sizing: border-box;
     }
     .page-template-page-about .about-president__divider { display: none !important; }
     .page-template-page-about .about-president__body { position: absolute !important; top: 462px !important; left: 20px !important; width: calc(100% - 40px) !important; height: 460px !important; font-size: 15px; font-weight: 300; line-height: 1.85; }
     .page-template-page-about .about-president__role { position: absolute !important; top: 1000px !important; left: 230px !important; font-size: 15px; text-align: right; margin-top: 0; }
     .page-template-page-about .about-president__name { position: absolute !important; top: 1015px !important; left: 180px !important; font-size: 25px; text-align: right; margin-top: 0; }
   
    /* field（ABOUTページ：本文のみ左右20px、画像グリッドはフル幅） */
    .page-template-page-about .about-field { padding: 0 20px !important; position: relative !important; min-height: auto !important; }
    .page-template-page-about .about-field__heading { position: static !important; top: auto !important; left: auto !important; width: 100% !important; font-size: 35px; text-align: center; margin: 0 0 24px !important; }
    .page-template-page-about .about-field__text {
      position: static !important;
      top: auto !important;
      left: auto !important;
      right: auto !important;
      font-size: 15px;
      line-height: 1.85;
      margin: 0 0 24px !important;
      text-align: left !important;
      max-width: 100% !important;
      padding-left: 20px !important;
      padding-right: 20px !important;
      box-sizing: border-box;
    }
  
    /* future（ABOUTページ：本文＋画像グリッドまで左右20px） */
    .page-template-page-about .about-future { padding: 120px 20px !important; position: relative !important; min-height: auto !important; }
    .page-template-page-about .about-future__heading { position: static !important; top: auto !important; left: auto !important; width: 100% !important; font-size: 35px; text-align: center !important; margin: 0 0 24px !important; }
    .page-template-page-about .about-future__text {
      position: static !important;
      top: auto !important;
      left: auto !important;
      right: auto !important;
      font-size: 15px;
      line-height: 1.85;
      margin: 0 0 24px !important;
      text-align: left !important;
      max-width: 100% !important;
      padding-left: 20px !important;
      padding-right: 20px !important;
      box-sizing: border-box;
    }
 
   /* photo grid */
   .page-template-page-about .about-photo-grid {
     grid-template-columns: 1fr;
     gap: 12px;
     position: static !important;
     margin: 0;
   }
    .page-template-page-about .about-photo-grid__item {
      position: relative !important;
      top: auto !important;
      left: auto !important;
      width: 100% !important;
      height: auto !important;
      aspect-ratio: 401 / 260;
    }
    .page-template-page-about .about-field .about-photo-grid {
      top: auto;
      left: auto;
      transform: none;
      right: auto;
      width: 100%;
      max-width: none;
      margin: 0;
    }
    .page-template-page-about .about-future .about-photo-grid {
      top: auto;
      left: auto;
      transform: none;
      right: auto;
      width: 100%;
      max-width: none;
      margin: 0 auto;
      padding-left: 20px;
      padding-right: 20px;
      box-sizing: border-box;
    }
     /* recruit page — intro */
    .page-template-page-recruit .recruit-intro { position: relative !important; display: block !important; padding: 0 !important; min-height: 800px !important; margin-top: 32px !important; background: transparent !important; }
     .page-template-page-recruit .recruit-intro::before { display: none !important; }
     .page-template-page-recruit .recruit-intro__text { position: absolute !important; top: 20px !important; left: 20px !important; width: 350px !important; height: 743px !important; background: rgba(255,255,255,.82); border-radius: var(--radius-card); }
     .page-template-page-recruit .recruit-intro__heading { position: absolute !important; top: 70px !important; left: 40px !important; font-size: 34px; margin-bottom: 0; text-align: left !important; }
     .page-template-page-recruit .recruit-intro__divider { position: absolute !important; top: 186px !important; left: 40px !important; width: calc(100% - 80px) !important; max-width: none; }
     .page-template-page-recruit .recruit-intro__body { position: absolute !important; top: 214px !important; left: 40px !important; max-width: calc(100% - 55px) !important; width: auto !important; font-size: 13px; line-height: 1.85; text-align: left !important; }
     .page-template-page-recruit .recruit-intro .circle-img--lg { position: absolute !important; top: 392px !important; left: 40px !important; width: 310px !important; height: 310px !important; flex-shrink: 0 !important; align-self: unset !important; }
     /* recruit page — appeal */
     .page-template-page-recruit .recruit-appeal { position: relative !important; display: block !important; padding: 0 24px 60px !important; min-height: 0 !important; margin-top: 64px !important; }
     .page-template-page-recruit .recruit-appeal__heading {
       position: relative !important;
       top: auto !important;
       left: auto !important;
       right: auto !important;
       transform: none !important;
       width: 100% !important;
       max-width: 100% !important;
       box-sizing: border-box !important;
       font-size: 22px;
       text-align: center !important;
       margin-bottom: 24px;
       white-space: normal !important;
       padding: 0 4px;
     }
     .page-template-page-recruit .recruit-appeal__cards { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; }
     .page-template-page-recruit .recruit-point-card { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; padding: 24px !important; }
     .page-template-page-recruit .recruit-point-card__icon-box { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 180px !important; margin-bottom: 24px !important; }
     .page-template-page-recruit .recruit-point-card__title { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; margin-bottom: 12px; }
     .page-template-page-recruit .recruit-point-card__desc { position: relative !important; top: auto !important; left: auto !important; font-size: 14px; }
     /* recruit page — jobs */
     .page-template-page-recruit .recruit-jobs { position: relative !important; display: block !important; padding: 0 20px 60px !important; min-height: 0 !important; margin-top: 64px !important; }
     .page-template-page-recruit .recruit-jobs__card { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; padding: 64px 0 40px !important; }
     .page-template-page-recruit .recruit-jobs__header { position: relative !important; top: auto !important; left: auto !important; width: auto !important; height: auto !important; margin: 0 16px 24px !important; }
     .page-template-page-recruit .recruit-jobs__header-text { position: relative !important; top: auto !important; left: auto !important; font-size: 25px; padding: 10px;}
     .page-template-page-recruit .recruit-jobs__subtext {
       position: relative !important;
       top: auto !important;
       left: auto !important;
       right: auto !important;
       transform: none !important;
       width: 100% !important;
       max-width: 100% !important;
       box-sizing: border-box !important;
       font-size: 25px;
       padding: 0 16px;
       margin-bottom: 24px !important;
       text-align: center !important;
     }
     .page-template-page-recruit .recruit-job { position: relative !important; display: block !important; }
     .page-template-page-recruit .recruit-job__bar { position: relative !important; top: auto !important; left: auto !important; width: auto !important; height: auto !important; margin: 0 30px 0 !important; padding: 12px 20px !important; z-index: 2; }
     .page-template-page-recruit .recruit-job__bar-title { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; }
     .page-template-page-recruit .recruit-job__box { position: relative !important; top: auto !important; left: auto !important; width: auto !important; height: auto !important; margin: -60px 15px 0 !important; padding: 84px 16px 28px !important; }
     .page-template-page-recruit .recruit-job__body,
     .page-template-page-recruit .recruit-job__photos,
     .page-template-page-recruit .recruit-job__details,
     .page-template-page-recruit .recruit-job__section { position: relative !important; display: flex !important; flex-direction: column !important; gap: 16px !important; }
     .page-template-page-recruit .recruit-job__body { gap: 24px !important; }
     .page-template-page-recruit .recruit-job__photos { width: 100% !important; }
     .page-template-page-recruit .recruit-job__subtitle { position: relative !important; top: auto !important; left: auto !important; font-size: 15px; margin-bottom: 12px !important; }
     .page-template-page-recruit .recruit-job__photo { display: none !important; }
     .page-template-page-recruit .recruit-job__type-tag { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; font-weight: 600; width: auto !important; text-align: center; display: block; }
     .page-template-page-recruit .recruit-job__section .recruit-job__label { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; font-weight: lighter; width: 100% !important; height: auto !important; align-self: center; text-align: center;}
     .page-template-page-recruit .recruit-job__section .recruit-job__text { position: relative !important; top: auto !important; left: auto !important; font-size: 15px; width: auto !important; white-space: normal !important; }
     .page-template-page-recruit .recruit-job__insurance { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; width: auto !important; height: auto !important; margin: 0 !important; text-align: center; }
    .page-template-page-recruit .recruit-job__entry { position: relative !important; top: auto !important; left: auto !important; width: fit-content !important; height: auto !important; align-self: center !important; margin-left: auto !important; margin-right: 0 !important; font-size: 15px;}
     .page-template-page-recruit .recruit-jobs__message {
       position: relative !important;
       top: auto !important;
       left: auto !important;
       right: auto !important;
       transform: none !important;
       width: 100% !important;
       max-width: 100% !important;
       box-sizing: border-box !important;
       font-size: 15px;
       padding: 40px 24px 32px !important;
       margin: 0 !important;
       text-align: center !important;
     }
   .page-template-page-recruit .recruit-jobs__entry-wrap { position: relative !important; text-align: center !important; padding: 0 0 20px !important; }
   .page-template-page-recruit .recruit-jobs__entry-btn { position: relative !important; top: auto !important; left: auto !important; width: auto !important; height: auto !important; font-size: 15px; transform: none !important; }
     .page-template-page-recruit .cta { margin-top: 64px !important; }
     /* company page — overview */
    .page-template-page-company .company-overview { position: relative !important; padding: 16px 0 !important; min-height: 0 !important; margin-top: 80px !important; }
     .page-template-page-company .company-overview__card { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; padding: 80px 40px !important; margin: 0 !important; }
     .page-template-page-company .company-overview__heading { position: relative !important; top: auto !important; left: auto !important; font-size: 28px; text-align: center; margin-bottom: 24px !important;  padding-bottom: 16px; }
     .page-template-page-company .company-table { position: relative !important; }
     .page-template-page-company .company-table__row { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; grid-template-columns: 1fr !important; gap: 2px !important; padding: 14px 0 !important; border-top: 1px solid rgba(0,149,217,.48); border-bottom: none; min-height: 0 !important; }
     .page-template-page-company .company-table__label { font-size: 14px; text-align: center; }
     .page-template-page-company .company-table__value { font-size: 14px; text-align: center; }
     .page-template-page-company .company-table::after { display: none !important; }
     /* company page — access */
     .page-template-page-company .company-access { position: relative !important; display: block !important; padding: 60px 40px !important; min-height: 0 !important; max-width: 100% !important; margin: 64px 0 0 0 !important; }
     .page-template-page-company .company-access__heading { position: relative !important; top: auto !important; left: auto !important; font-size: 34px; margin-bottom: 16px; }
     .page-template-page-company .company-access__divider { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; margin-bottom: 20px; }
     .page-template-page-company .company-access__address { position: relative !important; top: auto !important; left: auto !important; font-size: 15px; line-height: 1.8; margin-bottom: 24px; }
     .page-template-page-company .company-access__map { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 220px; margin-top: 30px !important; }
     .page-template-page-company .cta { margin-top: 64px !important; }
     /* service page — intro */
    .page-template-page-service .service-intro { position: relative !important; display: block !important; padding: 0 !important; min-height: 800px !important; margin-top: 32px !important; background: transparent !important; }
     .page-template-page-service .service-intro::before { display: none !important; }
    .page-template-page-service .service-intro__text { position: relative !important; top: auto !important; left: auto !important; width: calc(100% - 40px) !important; max-width: 350px !important; height: 786px !important; margin-left: 20px !important; background: rgba(255,255,255,.82); border-radius: var(--radius-card); }
     .page-template-page-service .service-intro__heading { position: absolute !important; top: 70px !important; left: 20px !important; font-size: 34px; margin-bottom: 0; }
     .page-template-page-service .service-intro__divider { display: none !important; }
     .page-template-page-service .service-intro__body { position: absolute !important; top: 234px !important; left: 20px !important; max-width: calc(100% - 40px) !important; font-size: 15px; line-height: 1.85; }
     .page-template-page-service .service-intro .circle-img--lg { position: absolute !important; top: 411px !important; left: 40px !important; width: 310px !important; height: 310px !important; flex-shrink: 0 !important; }
     /* service page — main */
     .page-template-page-service .service-main { position: relative !important; padding: 0 16px 60px !important; min-height: 0 !important; margin-top: 64px !important; }
     /* service page — CTA（セクション間余白） */
     .page-template-page-service .cta { margin-top: 64px !important; }
     .page-template-page-service .service-main__card { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; min-height: 0 !important; padding: 80px 20px !important; }
     .page-template-page-service .service-main__card #transport { display: flex !important; flex-direction: column-reverse !important; gap: 24px !important; margin-bottom: 32px !important; }
     .page-template-page-service .service-main__card #repair { display: flex !important; flex-direction: column !important; gap: 24px !important; margin-bottom: 32px !important; }
     .page-template-page-service .service-main__card .service-materials { display: grid !important; grid-template-columns: 1fr !important; gap: 16px !important; margin-bottom: 32px !important; }
     .page-template-page-service .service-main__card .service-routes { display: grid !important; grid-template-columns: 1fr !important; gap: 50px !important; margin: 50px 0 !important; }
     .page-template-page-service .service-main__card .service-routes .service-route-col { min-width: 0 !important; }
     .page-template-page-service .service-main__card .service-repairs { display: flex !important; flex-direction: column !important; gap: 50px !important; }
     .page-template-page-service .service-main__card .service-svc-block__content,
     .page-template-page-service .service-main__card .service-material,
     .page-template-page-service .service-main__card .service-route-col,
     .page-template-page-service .service-main__card .service-repair-item__content { display: block !important; position: relative !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
     /* service — transport */
     .page-template-page-service #transport .service-svc-block__img { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 216px !important; margin: 0 !important; }
     .page-template-page-service #transport .service-svc-block__title { position: relative !important; top: auto !important; left: auto !important; font-size: 34px; margin: 0 !important; text-align: center; padding-bottom: 15px; }
    .page-template-page-service #transport .service-svc-block__body { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; max-width: 100% !important; padding-inline: 0 !important; font-size: 15px; text-align: center; }
     /* service — sub headers */
     .page-template-page-service #transport + .service-sub-header { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; margin: 0 0 16px !important; }
     .page-template-page-service .service-sub-header__text { font-size: 25px; }
     /* service — materials */
    .page-template-page-service .service-materials .service-material .service-material__label { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; font-size: 20px; margin: 0 !important; padding-bottom: 10px; text-align: center !important; }
     .page-template-page-service .service-materials .service-material .service-material__img { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 220px !important; margin: 0 !important; }
     /* service — routes */
     .page-template-page-service .service-routes .service-route-col .service-route-col__header {
       position: relative !important;
       top: auto !important;
       left: auto !important;
       width: 100% !important;
       max-width: 100% !important;
       height: auto !important;
       margin: 0 0 16px !important;
       padding: 14px 24px !important;
       box-sizing: border-box !important;
       text-align: center;
     }
     .page-template-page-service .service-routes .service-route-col .service-route-col__title { font-size: 25px; line-height: 1.3; white-space: normal; }
     .page-template-page-service .service-routes .service-route-col .service-route-col__body { position: relative !important; top: auto !important; left: auto !important; max-width: 100% !important; width: 100% !important; font-size: 15px; text-align: center !important; }
     /* service — repair block */
     .page-template-page-service #repair .service-svc-block__img { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 169px !important; margin: 0 !important; }
     .page-template-page-service #repair .service-sub-header--block { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; margin: 0 0 30px !important; }
    .page-template-page-service #repair .service-svc-block__body { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; max-width: 100% !important; font-size: 15px; text-align: center; margin-top: 30px;}
     .page-template-page-service #repair + .service-sub-header { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; margin: 0 0 30px !important; }
     /* service — repair items */
     .page-template-page-service .service-repairs .service-repair-item { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; display: flex !important; flex-direction: column !important; align-items: center !important; gap: 16px !important; border: none !important; border-radius: var(--radius-card) !important; background: #fff !important; padding: 24px 20px !important; margin: 0 !important; }
    .page-template-page-service .service-repairs .service-repair-item:not(:last-child)::after {
      content: "" !important;
      display: block !important;
      position: absolute !important;
      left: 50% !important;
      bottom: -25px !important;
      transform: translateX(-50%) !important;
      width: 0 !important;
      height: 0 !important;
      border-left: 15px solid transparent !important;
      border-right: 15px solid transparent !important;
      border-top: 25px solid #fff !important;
      z-index: 1 !important;
    }
     .page-template-page-service .service-repairs .service-repair-item .service-repair-item__img { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: 168px !important; }
     .page-template-page-service .service-repairs .service-repair-item .service-repair-item__title { position: relative !important; top: auto !important; left: auto !important; font-size: 20px; margin: 0 !important; text-align: center; }
     .page-template-page-service .service-repairs .service-repair-item .service-repair-item__divider { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; margin: 3vw 0 !important; max-width: 100% !important;}
     .page-template-page-service .service-repairs .service-repair-item .service-repair-item__desc { position: relative !important; top: auto !important; left: auto !important; max-width: 100% !important; font-size: 15px; text-align: center; }
   }
   
   
   /* =============================================================
      NEWS SINGLE（個別記事）
      ============================================================= */
   
   .news-single {
     padding: var(--subpage-hero-header-offset) 80px 80px;
   }
   
   .news-single__card {
     background: #fff;
     border-radius: var(--radius-card);
     padding: 76px 86px 60px;
     max-width: var(--max-w);
     margin: 0 auto;
   }
   
   .news-single__date {
     font-size: 25px;
     font-weight: 300;
     color: var(--blue);
     margin-bottom: 12px;
   }
   
   .news-single__title {
     font-size: 40px;
     font-weight: 700;
     color: var(--blue);
     line-height: 1.4;
     margin-bottom: 40px;
   }
   
   .news-single__thumb {
     border-radius: var(--radius-card);
     overflow: hidden;
     margin-bottom: 48px;
     max-height: 619px;
   }
   
   .news-single__thumb img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .news-single__body {
     font-size: 20px;
     font-weight: 300;
     color: var(--blue);
     line-height: 2;
   }
   
   .news-single__body p { margin-bottom: 1.5em; }
   .news-single__body p:last-child { margin-bottom: 0; }
   
   .news-single__body h2 {
     font-size: 28px;
     font-weight: 700;
     margin: 1.6em 0 .8em;
   }
   
   .news-single__body h3 {
     font-size: 24px;
     font-weight: 700;
     margin: 1.4em 0 .6em;
   }
   
   .news-single__body ul,
   .news-single__body ol {
     padding-left: 1.5em;
     margin-bottom: 1.5em;
   }
   
   .news-single__body li { margin-bottom: .5em; }
   
   .news-single__body img {
     max-width: 100%;
     border-radius: var(--radius-card);
     margin: 1em 0;
   }
   
   .news-single__footer {
     display: flex;
     justify-content: center;
     margin-top: 56px;
   }
   
   .news-single__close {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: var(--blue);
     color: #fff;
     border-radius: var(--radius-btn);
     padding: 8px 28px;
     font-size: 20px;
     font-weight: 400;
     box-shadow: var(--shadow-btn);
     transition: opacity .2s;
   }
   
   .news-single__close:hover { opacity: .82; }
   
   .news-single__close-arrow {
     fill: #fff;
     width: 20px;
     height: 20px;
   }
   
   @media (max-width: 1024px) {
     .news-single { padding: var(--subpage-hero-header-offset) 40px 60px; }
     .news-single__card { padding: 56px 48px 48px; }
     .news-single__title { font-size: 32px; }
     .news-single__body { font-size: 18px; }
   }
   
   @media (max-width: 768px) {
     .news-single { padding: var(--subpage-hero-header-offset) 16px 48px; }
     .news-single__card { padding: 28px 20px 36px; }
     .news-single__date { font-size: 15px; margin-bottom: 8px; }
     .news-single__title { font-size: 20px; margin-bottom: 20px; }
     .news-single__thumb { max-height: 206px; margin-bottom: 28px; }
     .news-single__body { font-size: 15px; line-height: 1.85; }
     .news-single__body h2 { font-size: 18px; }
     .news-single__body h3 { font-size: 16px; }
     .news-single__close { font-size: 15px; padding: 8px 20px; }
     .news-single__footer { margin-top: 32px; justify-content: flex-end; }
   }
   
   /* =============================================================
      NEWS PAGE
      ============================================================= */
   
   /* ─────────────────────────────────────────
      NEWS ARCHIVE（一覧）
   ───────────────────────────────────────── */
   .news-archive {
     padding: 0 80px 80px;
   }
   
   .news-archive__card {
     background: #fff;
     border: 3px solid #fff;
     border-radius: var(--radius-card);
     padding: 5vw 8vw;
     max-width: var(--max-w);
     margin: 0 auto;
   }
   
   .news-archive__list {
     list-style: none;
    margin: 0;
    padding: 0;
   }
   
   .news-list-item {
    padding-inline: 2vw;
    border-bottom: 1px solid rgba(0, 149, 217, .55);
   }
   
   .news-list-item__link {
     display: flex;
    align-items: flex-start;
    gap: 36px;
     padding: 28px 0;
     color: var(--blue);
     transition: opacity .2s;
   }
   
   .news-list-item__link:hover {
     opacity: .75;
   }
   
   .news-list-item__thumb {
     flex-shrink: 0;
     width: 259px;
     height: 172px;
     border-radius: var(--radius-card);
     overflow: hidden;
   }
   
   .news-list-item__thumb img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .news-list-item__thumb-placeholder {
     width: 100%;
     height: 100%;
     background: #9d9d9d;
   }
   
   .news-list-item__body {
     flex: 1;
     min-width: 0;
     display: flex;
     flex-direction: column;
    justify-content: flex-start;
     gap: 8px;
   }
   
   .news-list-item__date {
    font-size: 21px;
     font-weight: 300;
     color: var(--blue);
   }
   
   .news-list-item__title {
    font-size: 24px;
     font-weight: 700;
     color: var(--blue);
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   .news-list-item__excerpt {
    font-size: 18px;
     font-weight: 300;
     color: var(--blue);
    line-height: 1.7;
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   .news-list-item__arrow {
     flex-shrink: 0;
    align-self: center;
 width: 30px;
 height: 30px;
   }
   
   .news-list-item__arrow svg {
     width: 100%;
     height: 100%;
    display: block;
    fill: none;
    stroke: var(--blue);
   stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
   }
   
   /* MORE ボタン */
   .news-archive__pagination {
     display: flex;
     justify-content: center;
     margin-top: 48px;
   }
   
   .news-archive__more {
     display: inline-flex;
     align-items: center;
     gap: 8px;
   }
   
   .news-archive__more a {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: var(--blue);
     color: #fff;
     border-radius: var(--radius-btn);
     padding: 8px 28px;
     font-size: 16px;
     font-weight: 400;
     box-shadow: var(--shadow-btn);
     transition: opacity .2s;
   }
   
   .news-archive__more a:hover {
     opacity: .82;
   }
   
   .news-archive__more-arrow {
     fill: #fff;
     width: 20px;
     height: 20px;
   }
   
   .news-archive__empty {
     color: var(--blue);
     font-size: 20px;
     text-align: center;
     padding: 60px 0;
   }
   
   /* ─────────────────────────────────────────
      NEWS ARCHIVE — 1024px
   ───────────────────────────────────────── */
   @media (max-width: 1024px) {
     .news-archive { padding: 50px 20px; }
    .news-archive__card { padding: 46px 46px 52px; }
     .news-list-item__thumb { width: 200px; height: 133px; }
    .news-list-item__link { gap: 30px; }
     .news-list-item__title { font-size: 22px; }
     .news-list-item__excerpt { font-size: 18px; }
     .news-list-item__date { font-size: 20px; }
    .news-list-item__arrow { width: 26px; height: 26px; }
   }
   
   /* ─────────────────────────────────────────
      NEWS ARCHIVE — 768px
   ───────────────────────────────────────── */
   @media (max-width: 768px) {
     .news-archive { padding: 50px 20px; }
    .news-archive__card {
      padding: 0;
      background: transparent;
      border: none;
    }
    .news-archive__list {
      display: grid;
      row-gap: 24px;
    }
    .news-list-item {
      padding: 20px;
      border-bottom: none;
      background: rgba(255, 255, 255, .85);
      border-radius: var(--radius-card);
      overflow: clip;
      box-sizing: border-box;
    }
    .news-list-item__link {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
      padding: 0;
    }
     .news-list-item__thumb { width: 100%; height: 206px; }
     .news-list-item__date { font-size: 15px; }
     .news-list-item__title { font-size: 20px; }
     .news-list-item__excerpt { font-size: 15px; }
    .news-list-item__divider { display: none; }
     .news-list-item__arrow { display: none; }
     .news-archive__pagination { margin-top: 32px; }
   }
   
   
   /* =============================================================
      BLOG ARCHIVE（ブログ一覧）
      ============================================================= */
   
   .blog-archive {
   padding: 0 160px 88px;
    width: 100%;
    box-sizing: border-box;
   }
   
   .blog-archive__grid {
     display: grid;
   grid-template-columns: repeat(3, 320px);
   justify-content: center;
   column-gap: 56px;
   row-gap: 52px;
     margin-bottom: 56px;
   }
   
   /* カード */
   .blog-archive-card {
     background: rgba(255, 255, 255, .85);
     border-radius: var(--radius-card);
    overflow: clip;
     display: flex;
     flex-direction: column;
     color: var(--blue);
     transition: opacity .2s;
    padding: 25px;
    box-sizing: border-box;
   }
   
   .blog-archive-card:hover { opacity: .82; }
   
   /* サムネイル */
   .blog-archive-card__thumb {
     width: 100%;
    height: 196px;
    overflow: clip;
     flex-shrink: 0;
    border-radius: 8px;
    background: #9d9d9d;
   }
   
   .blog-archive-card__thumb img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .blog-archive-card__thumb-placeholder {
     width: 100%;
     height: 100%;
     background: #9d9d9d;
   }
   
   /* 本文エリア */
   .blog-archive-card__body {
    padding: 18px 6px 8px;
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 0;
   }
   
   .blog-archive-card__date {
     font-size: 21px;
     font-weight: 300;
     color: var(--blue);
     margin-bottom: 10px;
   }
   
   .blog-archive-card__title {
     font-size: 26px;
     font-weight: 700;
     color: var(--blue);
     line-height: 1.4;
     margin-bottom: 10px;
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   .blog-archive-card__divider {
     height: 1px;
     background: var(--blue);
     margin-bottom: 12px;
   }
   
   .blog-archive-card__excerpt {
     font-size: 20px;
     font-weight: 300;
     color: var(--blue);
     line-height: 1.65;
     overflow: hidden;
     display: -webkit-box;
     -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
     line-clamp: 2;
   }
   
   /* MORE ボタン */
   .blog-archive__pagination {
     display: flex;
     justify-content: center;
     margin-top: 12px;
   }
   
   .blog-archive__more {
     display: inline-flex;
     align-items: center;
     gap: 8px;
    border: none;
    cursor: pointer;
    background: #fff;
    color: var(--blue);
    border-radius: 30px;
    padding: 8px 24px;
    font-size: 20px;
    font-weight: 400;
    box-shadow: 3px 3px 3px rgba(0, 0, 0, .16);
    line-height: 1;
    transition: opacity .2s;
   }
   
  .blog-archive__more:hover { opacity: .82; }

  .blog-archive__more.is-hidden {
    display: none;
  }

  .blog-archive-card.is-hidden {
    display: none;
  }
   
   .blog-archive__more-arrow {
     fill: var(--blue);
     width: 22px;
     height: 22px;
   }
   
   .blog-archive__empty {
     font-size: 20px;
     text-align: center;
     padding: 60px 0;
   }
   
   /* ─────────────────────────────────────────
      BLOG ARCHIVE — 1024px
   ───────────────────────────────────────── */
   @media (max-width: 1024px) {
    .blog-archive { padding: 0 24px 60px; }
     .blog-archive__grid { grid-template-columns: repeat(2, 1fr); column-gap: 24px; row-gap: 32px; }
     .blog-archive-card__title { font-size: 22px; }
     .blog-archive-card__excerpt { font-size: 18px; }
   }

 @media (min-width: 1760px) {
    .blog-archive__grid {
     grid-template-columns: repeat(4, 320px);
    }
  }

 @media (min-width: 2160px) {
    .blog-archive__grid {
     grid-template-columns: repeat(5, 320px);
    }
  }
   
   /* ─────────────────────────────────────────
      BLOG ARCHIVE — 768px
   ───────────────────────────────────────── */
   @media (max-width: 768px) {
     .blog-archive { padding: 0 16px 48px; }
     .blog-archive__grid { grid-template-columns: 1fr; column-gap: 0; row-gap: 24px; }
   .blog-archive-card { padding: 25px; }
    .blog-archive-card__thumb { height: 206px; }
     .blog-archive-card__date { font-size: 15px; }
     .blog-archive-card__title { font-size: 20px; }
    .blog-archive-card__divider { display: none; }
     .blog-archive-card__excerpt { font-size: 15px; }
     .blog-archive__pagination { margin-top: 32px; }
   }
   
   
   /* =============================================================
      CONTACT PAGE
      ============================================================= */
   
   /* ─────────────────────────────────────────
      タブ
   ───────────────────────────────────────── */
   .contact-section {
     padding: 0 80px 80px;
   }

   /* 送信完了時：モック同様、セクション全面をブランドブルーで敷く */
   .contact-section--complete {
     background: var(--blue);
     width: 100vw;
     max-width: 100vw;
     margin-left: calc(50% - 50vw);
     margin-right: calc(50% - 50vw);
     padding: 48px 80px 88px;
     box-sizing: border-box;
   }
   
   .contact-tabs {
     display: flex;
     justify-content: center;
     max-width: var(--max-w);
     margin: 0 auto;
     position: relative;
     z-index: 1;
   }
   
   .contact-tab {
     width: 237px;
     height: 60px;
     border: none;
     border-radius: var(--radius-card) var(--radius-card) 0 0;
     font-size: 30px;
     font-weight: lighter;
     cursor: pointer;
     transition: background .2s, color .2s;
   }
   
   .contact-tab:not(.contact-tab--active) {
     background: #9d9d9d;
     color: #fff;
   }
   
   .contact-tab--active {
     background: #fff;
     color: var(--blue);
   }
   
   /* ─────────────────────────────────────────
      カード
   ───────────────────────────────────────── */
   .contact-card {
     background: #fff;
     border: 1px solid var(--blue);
     border-radius: 0 var(--radius-card) var(--radius-card) var(--radius-card);
     padding: 56px 86px 72px;
     max-width: var(--max-w);
     margin: 0 auto;
   }
   
   .contact-card__heading {
     font-size: 32px;
     font-weight: 700;
     color: var(--blue);
     text-align: center;
     margin-bottom: 36px;
   }

   /* タブ連動：アクティブなフォームのみ表示（非アクティブは DOM に残すが見えない） */
   .contact-form-wrapper:not(.contact-form-wrapper--active) {
     display: none;
   }
   .contact-form-wrapper--active {
     display: block;
   }

  /* ─────────────────────────────────────────
     PRIVACY POLICY
  ───────────────────────────────────────── */
  .privacy-section {
    padding-top: 40px;
  }

  .privacy-card {
    text-align: center;
  }

  .privacy-card__body {
    margin-top: 16px;
    margin-bottom: 32px;
  }

  .privacy-card__inner {
    border: 1px solid var(--blue);
    border-radius: var(--radius-card);
    padding: 40px 56px;
    min-height: 280px;
    background: #fff;
    text-align: left;
    font-size: 16px;
    line-height: 1.9;
    color: #333;
  }

  .privacy-card__inner h2,
  .privacy-card__inner h3,
  .privacy-card__inner h4 {
    font-size: 20px;
    margin-top: 1.6em;
    margin-bottom: 0.6em;
    color: var(--blue);
  }

  .privacy-card__inner p {
    margin-bottom: 1.2em;
  }

  .privacy-card__footer {
    display: flex;
    justify-content: center;
  }

  .privacy-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 32px;
    border-radius: 999px;
    border: 1px solid var(--blue);
    background: #fff;
    color: var(--blue);
    font-size: 18px;
    font-weight: 500;
    text-decoration: none;
    transition: background .2s, color .2s, transform .15s, box-shadow .15s;
  }

  .privacy-back-btn__icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  .privacy-back-btn:hover {
    background: var(--blue);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0,0,0,.16);
  }
   
   /* ─────────────────────────────────────────
      ステップ表示
   ───────────────────────────────────────── */
   .contact-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 14px;
     margin-bottom: 48px;
   }
   
   .contact-step {
    height: 56px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 25px;
     font-weight: lighter;
     background: #999;
     color: #fff;
     clip-path: polygon(
       0 0,
       calc(100% - 10px) 0,
       100% 50%,
       calc(100% - 10px) 100%,
      0 100%
     );
   }
   
   .contact-step:last-child {
     clip-path: polygon(
       0 0,
       100% 0,
       100% 100%,
      0 100%
     );
   }
   
   .contact-step--active {
     background: var(--blue);
     color: #fff;
   }
   
   /* ─────────────────────────────────────────
      エラーメッセージ
   ───────────────────────────────────────── */
   .contact-error {
     background: #fee2e2;
     color: #b91c1c;
     border-radius: var(--radius-card);
     padding: 12px 20px;
     font-size: 16px;
     margin-bottom: 28px;
     text-align: center;
   }
   
   /* ─────────────────────────────────────────
      フォーム
   ───────────────────────────────────────── */
   .contact-form__fields {
     display: flex;
     flex-direction: column;
     gap: 0;
   }
   
   .contact-form__row {
     display: grid;
     grid-template-columns: minmax(12em, 220px) minmax(0, 1fr);
     align-items: center;
     column-gap: 32px;
     margin-bottom: 20px;
   }
   
   .contact-form__row--message {
     display: flex;
     flex-direction: column;
     align-items: stretch;
     gap: 12px;
     grid-template-columns: unset;
     margin-bottom: 20px;
   }
   
   .contact-form__label--above {
     text-align: center !important;
     width: 100%;
     align-self: center;
   }
   
   .contact-form__label {
     font-size: 20px;
     font-weight: lighter;
     color: var(--blue);
     text-align: right;
   }

   .contact-form__row--policy {
     display: flex;
     justify-content: center;
     grid-template-columns: unset;
     margin-bottom: 8px;
   }

   .contact-form__policy {
     width: 100%;
     text-align: center;
   }

   .contact-form__policy-inner {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 10px;
     font-size: 20px;
     font-weight: 500;
     color: var(--blue);
     cursor: pointer;
   }

   .contact-form__policy-inner input[type="checkbox"] {
     width: 18px;
     height: 18px;
     flex-shrink: 0;
     accent-color: var(--blue);
     cursor: pointer;
   }

   .contact-form__policy-text {
     text-align: left;
   }

   .contact-form__policy-link {
     color: var(--blue);
     text-decoration: underline;
   }

   .contact-form__policy-link:hover {
     opacity: .85;
   }
   
   .contact-form__label--required::after {
     content: ' *';
     color: #dc2626;
   }
   
   .contact-form__input {
     height: 55px;
     border: 1px solid var(--blue);
     border-radius: var(--radius-card);
     padding: 0 16px;
     font-size: 20px;
     font-weight: lighter;
     color: #333;
     font-family: inherit;
     transition: outline .15s;
     width: 100%;
     min-width: 0;
   }
   
   .contact-form__input:focus {
     outline: 2px solid var(--blue);
     outline-offset: 2px;
   }
   
   .contact-form__input::placeholder {
     color: #9d9d9d;
   }
   
   .contact-form__textarea {
     border: 1px solid var(--blue);
     border-radius: var(--radius-card);
     padding: 16px;
     font-size: 20px;
     font-weight: lighter;
     color: #333;
     font-family: inherit;
     resize: vertical;
     min-height: 234px;
     width: 100%;
     min-width: 0;
     transition: outline .15s;
   }
   
   .contact-form__textarea:focus {
     outline: 2px solid var(--blue);
     outline-offset: 2px;
   }
   
   .contact-form__footer {
     display: flex;
     justify-content: center;
     margin-top: 40px;
   }
   
   .contact-form__submit {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: var(--blue);
     color: #fff;
     border: none;
     border-radius: var(--radius-btn);
     padding: 8px 32px;
     font-size: 20px;
     font-weight: lighter;
     font-family: inherit;
     box-shadow: var(--shadow-btn);
     cursor: pointer;
     transition: opacity .2s;
     text-decoration: none;
   }
   
   .contact-form__submit:hover { opacity: .82; }

   /* お問い合わせ内の送信系ボタン：白丸＋青矢印 */
   .contact-section .contact-form__submit-arrow {
     width: 22px;
     height: 22px;
     flex-shrink: 0;
   }

   .contact-section .contact-form__submit-arrow circle {
     fill: #fff;
   }

   .contact-section .contact-form__submit-arrow polygon {
     fill: var(--blue);
   }

   /* 確認画面・戻る：青丸＋白矢印（左向き） */
   .contact-section .contact-form__back-arrow {
     width: 22px;
     height: 22px;
     flex-shrink: 0;
     transform: scaleX(-1);
   }

   .contact-section .contact-form__back-arrow circle {
     fill: var(--blue);
   }

   .contact-section .contact-form__back-arrow polygon {
     fill: #fff;
   }
   
   /* ─────────────────────────────────────────
      確認画面
   ───────────────────────────────────────── */
   .contact-confirm__list {
     margin-bottom: 40px;
   }
   
   .contact-confirm__row {
     display: grid;
     grid-template-columns: minmax(12em, 220px) minmax(0, 1fr);
     gap: 0 32px;
     padding: 18px 0;
     align-items: baseline;
   }
   
   .contact-confirm__row--message {
     align-items: flex-start;
   }
   
   .contact-confirm__label {
     font-size: 20px;
     font-weight: lighter;
     color: var(--blue);
     text-align: right;
   }
   
   .contact-confirm__value {
     font-size: 20px;
     font-weight: lighter;
     color: var(--blue);
     line-height: 1.7;
   }
   
   .contact-confirm__buttons {
     display: flex;
     justify-content: center;
     gap: 24px;
     flex-wrap: wrap;
   }
   
   .contact-form__back {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: #fff;
     color: var(--blue);
     border: 1px solid var(--blue);
     border-radius: var(--radius-btn);
     padding: 8px 32px;
     font-size: 20px;
     font-weight: lighter;
     font-family: inherit;
     cursor: pointer;
     transition: opacity .2s;
   }
   
   .contact-form__back:hover { opacity: .75; }
   
   /* ─────────────────────────────────────────
      送信完了
   ───────────────────────────────────────── */
   .contact-complete {
     text-align: center;
     padding: 32px 0 8px;
   }

   .contact-complete__en {
     margin: 0 0 28px;
     font-size: clamp(36px, 6vw, 56px);
     font-weight: 700;
     letter-spacing: 0.04em;
     line-height: 1.1;
     color: var(--blue);
     text-transform: uppercase;
   }

   .contact-complete__messages {
     margin-bottom: 40px;
   }

   .contact-complete__line {
     margin: 0 0 0.65em;
     font-size: 20px;
     font-weight: 400;
     line-height: 1.75;
     color: var(--blue);
   }

   .contact-complete__line:last-child {
     margin-bottom: 0;
   }

   .contact-complete__footer {
     display: flex;
     justify-content: center;
   }

   .contact-complete__close.contact-form__submit {
     gap: 12px;
     padding: 10px 28px 10px 36px;
     border-radius: 999px;
   }

   .contact-complete__notice {
     max-width: 520px;
     margin: -8px auto 28px;
     padding: 12px 16px;
     background: #fffbeb;
     border: 1px solid #fcd34d;
     border-radius: var(--radius-card);
     font-size: 14px;
     font-weight: 400;
     line-height: 1.65;
     color: #92400e;
     text-align: left;
   }
   
   /* ─────────────────────────────────────────
      CONTACT — 1024px
   ───────────────────────────────────────── */
   @media (max-width: 1024px) {
     .contact-section { padding: 0 40px 60px; }
     .contact-section--complete { padding: 40px 40px 72px; }
     .contact-tab { width: 180px; font-size: 24px; }
     .contact-card { padding: 48px 48px 56px; }
     .contact-card__heading { font-size: 28px; }
     .contact-step { font-size: 20px; }
     .contact-form__row:not(.contact-form__row--message):not(.contact-form__row--policy) {
       grid-template-columns: minmax(10em, 200px) minmax(0, 1fr);
     }
     .contact-confirm__row { grid-template-columns: minmax(10em, 200px) minmax(0, 1fr); }
   }
   
   /* ─────────────────────────────────────────
      CONTACT — 768px
   ───────────────────────────────────────── */
   @media (max-width: 768px) {
     .contact-section { padding: 0 16px 48px; }
     .contact-section--complete { padding: 32px 16px 56px; }
     .contact-tabs { margin: 0 16px; }
     .contact-tab { width: 50%; height: 50px; font-size: 19px; font-weight: 700; }
     .contact-card { padding: 60px 20px 40px; border-radius: 0 var(--radius-card) var(--radius-card) var(--radius-card); }
     .contact-card__heading { font-size: 20px; margin-bottom: 20px; }
    .contact-step { font-size: 11px; height: 35px; font-weight: 500; }
    .contact-steps { margin-bottom: 28px; column-gap: 2px; }
     .contact-form__row:not(.contact-form__row--message):not(.contact-form__row--policy) {
       grid-template-columns: 1fr;
       gap: 6px;
       margin-bottom: 16px;
     }
     .contact-form__label { text-align: left; font-size: 15px; font-weight: 500; }
     .contact-form__label--above { text-align: center !important; }
     .contact-form__input { font-size: 15px; height: 47px; }
     .contact-form__textarea { font-size: 15px; min-height: 211px; }
     .contact-form__policy-inner { font-size: 15px; flex-wrap: wrap; justify-content: center; }
     .contact-form__submit { font-size: 15px; }
     .contact-confirm__row { grid-template-columns: 1fr; gap: 4px; }
     .contact-confirm__label { text-align: left; font-size: 14px; font-weight: 700; }
     .contact-confirm__value { font-size: 15px; }
     .contact-complete__en { margin-bottom: 20px; }
     .contact-complete__line { font-size: 15px; }
     .contact-complete__messages { margin-bottom: 28px; }
    .privacy-section { padding-top: 32px; }
    .privacy-card__inner {
      padding: 28px 20px;
      font-size: 15px;
    }
   }
   
   
   /* =============================================================
      フロントページ モバイル対応（iPhone SE 含む）
      390px 幅 zoom + 絶対配置レイアウト
      ============================================================= */
   @media (max-width: 768px) {
   
     /* TOPページ モバイル：絶対配置を解消し通常フローに（zoom/固定幅は使用しない） */
     .home {
       zoom: 1 !important;
       width: 100% !important;
       max-width: 100%;
       min-height: 0;
       transform: none !important;
       margin: 0;
     }
   
    /* ── 追従ボタン（SP：左端ぴったり・アイコン上／文字下で縦並び・白背景・青文字・縦書き） ── */
    .home-fixed-buttons {
      bottom: auto;
      left: 0;
      top: 60%;
      transform: translateY(-15%);
      flex-direction: column;
      align-items: stretch;
      gap: 20px;
    }
    .home-fixed-buttons .btn {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      background: #fff;
      color: var(--blue);
      border-radius: 0 12px 12px 0;
      padding: 10px 5px;
      font-size: 12px;
      font-weight: 600;
      box-shadow: 2px 2px 8px rgba(0,0,0,.2);
      min-height: 0;
    }
    .home-fixed-buttons .btn:first-child,
    .home-fixed-buttons .btn:last-child,
    .home-fixed-buttons .btn:only-child {
      border-radius: 0 6px 6px 0;
    }
     .home-fixed-buttons .btn:hover {
       opacity: .9;
       box-shadow: 2px 2px 12px rgba(0,0,0,.25);
     }
     .home-fixed-buttons .btn__circle-icon {
       width: 24px;
       height: 24px;
       min-width: 24px;
       min-height: 24px;
       background: var(--blue);
       flex-shrink: 0;
     }
     .home-fixed-buttons .btn__circle-icon svg {
       width: 14px;
       height: 14px;
       fill: #fff;
     }
    .home-fixed-buttons__label {
      writing-mode: vertical-rl;
      letter-spacing: .05em;
      line-height: 1.4;
      text-align: center;
    }
    /* SP：相談ボタンの表示切り替え（SPではPC用テキストを非表示） */
    .home-fixed-buttons__label-pc {
      display: none;
    }
    .home-fixed-buttons__label-sp {
      display: inline;
    }
   
     .home .hero__ellipse {
       display: none !important;
     }
   
     /* ── HERO（SP：サブページFVに近いが、TOPはヘッダー詰め・横幅広め・文言は上寄せ） ── */
     .home .hero,
     .front-page .hero {
       --top-hero-sp-offset: calc(12px + 60px + -30px);
       position: relative;
       min-height: calc(var(--top-hero-sp-offset) + var(--maei-m-fv80, 80svh));
       padding: 0 0 32px;
       display: block;
       background-color: #0095D9;
       overflow: visible;
     }
     .home .hero__bg,
     .front-page .hero__bg {
       position: absolute;
       left: 50%;
       transform: translateX(-50%);
       max-width: none;
       height: var(--maei-m-fv80, 80svh);
       right: auto;
       bottom: auto;
       border-radius: var(--radius-card);
       overflow: hidden;
       clip-path: none !important;
       -webkit-clip-path: none !important;
       opacity: 1;
     }
    .home .hero__bg img,
    .front-page .hero__bg img {
      object-fit: cover;
      object-position: 40% center;
    }
     .home .hero__content,
     .front-page .hero__content {
       position: absolute;
       z-index: 1;
      top: var(--subpage-hero-header-offset);
       left: 50%;
       transform: translateX(-50%);
      width: calc(100% - 40px);
      max-width: 350px;
       height: var(--maei-m-fv80, 80svh);
       display: flex !important;
      flex-direction: column-reverse !important;
      align-items: flex-start;
      justify-content: flex-end;
       gap: 12px;
      padding: 20vw 3vw;
       box-sizing: border-box;
      text-align: left;
     }
     .home .hero__title,
     .front-page .hero__title {
       position: static;
       top: auto;
       left: auto;
       font-size: clamp(28px, 8vw, 34px);
       line-height: 1.25;
       margin: 0;
       text-align: left;
     }
     .home .hero__sub,
     .front-page .hero__sub {
       position: static;
       top: auto;
       left: auto;
       font-size: 15px;
       margin: 0;
       order: unset;
       align-self: unset;
       text-align: left;
       max-width: 100%;
     }
     .home .hero__buttons,
     .front-page .hero__buttons {
       display: none !important;
     }
     .home .scroll-hint,
     .front-page .scroll-hint {
       top: var(--top-hero-sp-offset);
       left: 50%;
       transform: translateX(-50%);
       width: calc(100% - 16px);
       max-width: none;
       height: var(--maei-m-fv80, 80svh);
       pointer-events: none;
     }
     .home .scroll-hint__label,
     .front-page .scroll-hint__label {
       top: auto;
       bottom: 20px;
       left: auto;
       right: 16px;
       font-size: 13px;
     }
     .home .scroll-hint__line,
     .front-page .scroll-hint__line {
       top: auto;
       bottom: 28px;
       left: auto;
       right: 16px;
       width: 80px;
     }
   
     /* ── ABOUT（通常フロー） ── */
    .home .about {
      padding: 72px 20px 56px;
       display: flex;
       flex-direction: column;
       gap: 24px;
     --about-image-size: 311px;
     }
    /* SP: タイトル → 画像 → 本文 の順に表示 */
    .home .about__heading { order: 1; }
    .home .about__image {
      order: 2;
      position: relative;
      z-index: 1;
    }
    .home .about__content { order: 3; padding-right: 20px; padding-left: 20px;}
    .home .about__ellipse {
      order: 2;
      z-index: 0;
    }
     .home .about .section-heading__en,
     .home .about .section-heading__ja,
     .home .about__image,
     .home .about__ellipse,
     .home .about__subtitle,
     .home .about__body,
     .home .about__buttons {
       position: relative;
       top: auto;
       left: auto;
       right: auto;
     }
     .home .about .section-heading__en { font-size: 40px; }
     .home .about .section-heading__ja { font-size: 15px; }
     .home .circle-img--lg {
      width: var(--about-image-size);
      max-width: var(--about-image-size);
       height: auto;
       aspect-ratio: 1;
       margin: 0 auto;
     }
    .home .about__image {
      width: var(--about-image-size);
      margin: 0 auto;
    }
    .home .about__ellipse {
      display: block !important;
      width: 120px;
      height: 120px;
      margin-top: -74px;
      margin-right: calc((100% - var(--about-image-size)) / 2 + 16px);
      margin-left: 0;
      align-self: flex-end;
      object-fit: contain;
    }
    .home .about__subtitle { 
      font-size: 20px;
      line-height: 2.5rem;
      width: auto;
    }
    .home .about__body {
      font-size: 15px;
      line-height: 1.7;
      width: auto;
    }
    .home .about__buttons {
      flex-direction: column;
      gap: 16px;
      margin-top: 24px;
      align-items: flex-end;
    }
    .home .about__buttons .btn {
      font-size: 15px;
    }
   
     /* ── SERVICE（通常フロー） ── */
     .home .service {
       padding: 48px 20px 56px;
     }
     .home .service .section-heading__en,
     .home .service .section-heading__ja,
     .home .service .service__cards,
     .home .service .service__footer {
       position: relative;
       top: auto;
       left: auto;
     }
     .home .service .section-heading__en { font-size: 40px; }
     .home .service .section-heading__ja { font-size: 15px; }
     .home .service .service__cards {
       width: 100%;
       grid-template-columns: 1fr;
       gap: 14px;
       margin: 24px 0 0;
       padding-right: 20px;
       padding-left: 20px;
     }
     .home .service-card { height: 206px; }
     .home .service-card__overlay {
       justify-content: center;
       padding: 20px 16px;
       gap: 8px;
     }
     .home .service-card__title { font-size: 24px; }
     .home .service-card__desc { font-size: 14px; }
     .home .service .service__footer {
       margin: 24px 0 0;
       text-align: right;
       padding-right: 20px;
       padding-left: 20px;
     }
     .home .service .service__footer .btn {
       font-size: 15px;
     }
   
     /* ── RECRUIT（通常フロー） ── */
    .home .recruit {
      position: relative;
      top: auto;
      left: auto;
      width: auto;
      height: auto;
      min-height: unset;
      background-image: none;
      background-color: rgba(255, 255, 255, .82);
      border-radius: var(--radius-card);
      padding: 48px 20px 56px;
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .home .recruit::before { display: none; }
    .home .recruit > * { z-index: auto; }
    .home .recruit .section-heading__en,
    .home .recruit .section-heading__ja,
    .home .recruit .circle-img--md,
    .home .recruit__subtitle,
    .home .recruit__body,
    .home .recruit__footer {
      position: relative;
      top: auto;
      left: auto;
    }
    /* 並び順: タイトル → 画像 → 本文 → ボタン */
    .home .recruit .section-heading {
      order: 1;
      text-align: left;
      width: 100%;
    }
    .home .recruit .section-heading__en,
    .home .recruit .section-heading__ja {
      text-align: right;
    }
    .home .recruit__img {
      order: 2;
      width: 100%;
      display: flex;
      justify-content: center;
    }
    .home .recruit .circle-img--md { order: 2; }
    .home .recruit__subtitle { order: 3; }
    .home .recruit__body { order: 4; }
    .home .recruit__footer { order: 5; }
    .home .recruit .section-heading__en { font-size: 40px; }
    .home .recruit .section-heading__ja { font-size: 15px; }
    .home .recruit .circle-img--md {
       width: 100%;
       max-width: 295px;
       height: auto;
       aspect-ratio: 1;
       margin: 24px auto;
     }
     .home .recruit__subtitle { font-size: 18px; width: auto; margin-bottom: 12px; }
     .home .recruit__body { font-size: 15px; width: auto; line-height: 1.7; margin-bottom: 24px; }
    .home .recruit__footer {
      margin: 0;
      text-align: right;
    }
    .home .recruit__footer .btn {
      font-size: 15px;
    }
   
     /* ── NEWS（通常フロー） ── */
     .home .news {
       padding: 48px 20px 56px;
     }
     .home .news .section-heading__en,
     .home .news .section-heading__ja,
     .home .news__list,
     .home .news__footer {
       position: relative;
       top: auto;
       left: auto;
     }
     .home .news .section-heading__en { font-size: 40px; }
     .home .news .section-heading__ja { font-size: 15px; }
     .home .news__list {
       width: 100%;
      margin: 24px 0 0;
      padding-right: 20px;
      padding-left: 20px;
     }
     .home .news-item {
       flex-direction: column;
       align-items: flex-start;
       gap: 12px;
       padding: 16px 0;
     }
     .home .news-item__body { flex: 1; }
     .home .news-item__date { font-size: 12px; margin-bottom: 4px; }
     .home .news-item__title { font-size: 14px; margin-bottom: 4px; }
     .home .news-item__excerpt { font-size: 12px; line-height: 1.6; }
     .home .news-item__arrow { display: none; }
     .home .news__footer { margin: 24px 0 0; text-align: right; width: auto; padding-right: 20px; padding-left: 20px; }
     .home .news__footer .btn { font-size: 15px; }
   
     /* ── BLOG（通常フロー） ── */
     .home .blog {
       padding: 48px 20px 56px;
     }
     .home .blog .section-heading__en,
     .home .blog .section-heading__ja,
     .home .blog__cards,
     .home .blog__footer {
       position: relative;
       top: auto;
       left: auto;
     }
     .home .blog .section-heading__en { font-size: 40px; }
     .home .blog .section-heading__ja { font-size: 15px; }
     .home .blog__cards {
       width: 100%;
       grid-template-columns: 1fr;
       column-gap: 0;
      margin: 24px 0 0;
      padding-right: 20px;
      padding-left: 20px;
     }
     .home .blog-card:nth-child(1),
     .home .blog-card:nth-child(2),
     .home .blog-card:nth-child(3) { order: unset; }
    .home .blog-card { padding: 25px; }
     .home .blog-card__thumb { height: 206px; }
     .home .blog-card__date { font-size: 15px; }
     .home .blog-card__title { font-size: 20px; }
     .home .blog-card__excerpt { font-size: 15px; }
    .home .blog__footer { margin: 24px 0 0; text-align: right; width: auto; padding-right: 20px; padding-left: 20px; }
    .home .blog__footer .btn { font-size: 15px; }
   
    /* ── CTA（通常フロー） ── */
     .home .cta {
       position: relative;
       top: auto;
       left: auto;
       width: auto;
       padding: 48px 20px 56px;
     }
    .home .cta__panels { grid-template-columns: 1fr; height: auto; padding-left: 20px; padding-right: 20px; }
     .home .cta-panel { padding: 40px 0 48px; min-height: 280px; }
     .home .cta-panel__content {
       padding-left: 20px;
       padding-right: 20px;
       width: 100%;
       box-sizing: border-box;
     }
     .home .cta-panel__title { font-size: 24px; }
     .home .cta-panel__icon { width: 80px; height: 80px; margin-bottom: 16px; }
     .home .cta-panel__icon svg { width: 38px; height: 38px; }
   
     /* ── FOOTER（通常フロー） ── */
     .home .site-footer-wrap {
       position: relative;
       top: auto;
       left: auto;
       padding: 0;
     }
     .home .site-footer {
       max-width: 100%;
       height: auto;
       padding: 32px 24px 24px;
     }
     .home .site-footer__main { grid-template-columns: 1fr; }
     .home .footer-nav { grid-template-columns: 1fr; }
     .home .back-to-top { right: 24px; bottom: 24px; width: 70px; height: 50px; }
   }

/* ── セクション スクロール演出（TOP・下層共通／Intersection Observer と連動）
     - transition だけだと初回ペイントと同フレームで is-revealed が付くと補間されず見えないことがあるため
       「表示時」は @keyframes の animation で必ず再生する
     - サブページ .page-hero は子の translateX(-50%) のため親は transform なし・フェードのみ ── */
@media (prefers-reduced-motion: no-preference) {
  @keyframes maei-section-reveal-up {
    from {
      opacity: 0;
      transform: translate3d(0, 52px, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes maei-section-reveal-fade {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }

  section.section-reveal:not(.is-revealed) {
    opacity: 0;
    transform: translate3d(0, 52px, 0);
    animation: none;
  }

  section.section-reveal.section-reveal--from-left:not(.is-revealed),
  section.section-reveal.section-reveal--from-right:not(.is-revealed) {
    transform: translate3d(0, 52px, 0);
  }

  section.page-hero.section-reveal:not(.is-revealed) {
    opacity: 0;
    transform: none;
    animation: none;
  }

  section.section-reveal.is-revealed {
    animation: maei-section-reveal-up 2.1s cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  section.page-hero.section-reveal.is-revealed {
    animation: maei-section-reveal-fade 2.1s cubic-bezier(0.22, 1, 0.36, 1) both;
    transform: none;
  }
}
