:root{--revix-header-control-size: 44px;--revix-header-mobile-height: 68px;--revix-header-side-space: clamp(20px, 4vw, 56px);--revix-header-text: #16181c;--revix-header-green: #1b7a4e;--revix-header-border: #d8e1dc;--revix-header-shadow: 0 6px 22px rgb(15 76 48 / 10%)}.header,.sp-menu{font-family:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}.header{position:relative;z-index:300;width:100%;color:var(--revix-header-text);background:#fff}.header *,.header *::before,.header *::after,.sp-menu *,.sp-menu *::before,.sp-menu *::after{box-sizing:border-box}.header__inner{width:100%;max-width:none;padding-right:var(--revix-header-side-space);padding-bottom:18px;padding-left:var(--revix-header-side-space)}.header__top{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:24px}.header__brand{min-width:0;padding-top:0}.header__logo{display:block;width:200px;max-width:100%;line-height:0}.header__logo img{display:block;width:100%;height:auto}.header__tagline{margin:8px 0 0;color:var(--revix-header-text);font-size:14px;font-weight:500;line-height:1.6}.header__utility{display:flex;flex:0 0 auto;align-items:center;gap:20px;margin-left:auto}.header__lang{position:relative;flex:0 0 auto}.header__lang-button{display:inline-flex;align-items:center;justify-content:center;width:112px;height:44px;padding:0 14px;border:1px solid var(--revix-header-border);border-radius:5px;color:var(--revix-header-text);background:#fff;box-shadow:none;font:inherit;font-size:14px;font-weight:500;line-height:1;cursor:pointer}.header__lang-menu{right:0;z-index:360}.header__lang-link{font-size:14px;font-weight:400}.header__lang-link.is-current{font-weight:600}.header__actions{flex:0 0 auto}.header__action-link{font-family:inherit;font-weight:500}.header__nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(18px,2.2vw,30px);margin-top:10px}.header__nav-link{color:var(--revix-header-text);font-family:inherit;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:.01em;text-decoration:none}.header__nav-link:hover,.header__nav-link:focus-visible{color:var(--revix-header-green)}body:not(#top) #contents>.header+main{margin-top:clamp(18px,2vw,30px)}body:not(#top) #contents>main>:first-child{margin-top:0}main [id]{scroll-margin-top:96px}@media(max-width: 1024px){.header__inner{padding-right:28px;padding-left:28px}.header__top{min-height:84px}.header__tagline{display:none}.header__nav-link{font-size:15px}}body:not(#top) .sp-menu{display:none !important}@media(max-width: 850px){:root{--revix-header-mobile-height: 72px}body.is-menu-open{overflow:hidden}.header{position:sticky;top:0;z-index:320;box-shadow:var(--revix-header-shadow)}.header__inner{min-height:var(--revix-header-mobile-height);padding:14px 176px 14px 20px}.header__top{display:flex;align-items:center;min-height:var(--revix-header-control-size);gap:0}.header__brand{min-width:0}.header__logo{width:min(160px,28vw);min-width:112px;max-width:100%}.header__utility{position:fixed;top:14px;right:76px;z-index:340;display:block;margin:0}.header__lang-button{width:92px;height:var(--revix-header-control-size);padding:0 10px;border-color:var(--revix-header-border);background:#fff;box-shadow:0 4px 14px rgba(15,76,48,.08);font-size:13px}.header__lang-menu{top:calc(100% + 6px);right:0;width:140px}.header__actions,.header__nav{display:none}body:not(#top) .sp-menu{position:fixed !important;top:14px !important;right:20px !important;bottom:auto !important;left:auto !important;z-index:350 !important;display:block !important;width:var(--revix-header-control-size) !important;height:var(--revix-header-control-size) !important;margin:0 !important;padding:0 !important;visibility:visible !important;opacity:1 !important;pointer-events:auto !important;transform:none !important}body:not(#top) .sp-menu>.sp-menu__button{position:relative !important;z-index:2 !important;display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:5px !important;width:var(--revix-header-control-size) !important;min-width:var(--revix-header-control-size) !important;max-width:var(--revix-header-control-size) !important;height:var(--revix-header-control-size) !important;min-height:var(--revix-header-control-size) !important;max-height:var(--revix-header-control-size) !important;margin:0 !important;padding:0 !important;border:0 !important;border-radius:50% !important;visibility:visible !important;color:#fff !important;background:var(--revix-header-green) !important;box-shadow:0 5px 16px rgba(15,76,48,.2) !important;opacity:1 !important;appearance:none !important;cursor:pointer !important;pointer-events:auto !important;transform:none !important}body:not(#top) .sp-menu>.sp-menu__button>.sp-menu__line{position:static !important;display:block !important;flex:0 0 auto !important;width:18px !important;height:2px !important;margin:0 !important;padding:0 !important;border:0 !important;border-radius:999px !important;visibility:visible !important;background:currentColor !important;opacity:1 !important;transform:none !important;transition:transform .2s ease,opacity .2s ease !important}body:not(#top) .sp-menu.is-open>.sp-menu__button>.sp-menu__line:nth-child(1){transform:translateY(7px) rotate(45deg) !important}body:not(#top) .sp-menu.is-open>.sp-menu__button>.sp-menu__line:nth-child(2){opacity:0 !important}body:not(#top) .sp-menu.is-open>.sp-menu__button>.sp-menu__line:nth-child(3){transform:translateY(-7px) rotate(-45deg) !important}body:not(#top) .sp-menu>.sp-menu__panel{position:fixed !important;inset:0 !important;z-index:1 !important;display:block !important;width:100vw !important;height:100dvh !important;min-height:100vh !important;margin:0 !important;padding:96px 24px 40px !important;visibility:hidden !important;background:rgba(15,76,48,.98) !important;opacity:0 !important;overflow-x:hidden !important;overflow-y:auto !important;pointer-events:none !important;transform:none !important;transition:opacity .2s ease,visibility .2s ease !important}body:not(#top) .sp-menu.is-open>.sp-menu__panel{visibility:visible !important;opacity:1 !important;pointer-events:auto !important}body:not(#top) .sp-menu .sp-menu__nav{display:grid !important;gap:8px !important;width:min(100%,520px) !important;margin:0 auto !important;padding:0 !important}body:not(#top) .sp-menu .sp-menu__link{display:flex !important;align-items:center !important;justify-content:space-between !important;min-height:58px !important;margin:0 !important;padding:12px 6px !important;border:0 !important;border-bottom:1px solid hsla(0,0%,100%,.18) !important;border-radius:0 !important;color:#fff !important;background:rgba(0,0,0,0) !important;font-size:16px !important;font-weight:600 !important;line-height:1.5 !important;text-align:left !important;text-decoration:none !important;opacity:1 !important;transform:none !important}body:not(#top) .sp-menu .sp-menu__link::after{display:block !important;content:"→" !important}body:not(#top) .sp-menu .sp-menu__link--cta{justify-content:center !important;margin-top:20px !important;border:1px solid #fff !important;border-radius:999px !important;background:hsla(0,0%,100%,.08) !important;text-align:center !important}body:not(#top) .sp-menu .sp-menu__link--cta::after{display:none !important}body.is-menu-open .header__lang{visibility:hidden;opacity:0;pointer-events:none}body:not(#top) #contents>.header+main{margin-top:16px}main [id]{scroll-margin-top:88px}}@media(max-width: 568px){:root{--revix-header-mobile-height: 68px}.header__inner{min-height:var(--revix-header-mobile-height);padding:12px 158px 12px 16px}.header__top{min-height:var(--revix-header-control-size)}.header__logo{width:128px;min-width:0}.header__utility{top:12px;right:68px}.header__lang-button{width:82px;height:var(--revix-header-control-size);padding:0 8px;font-size:12px}body:not(#top) .sp-menu{top:12px !important;right:16px !important}body:not(#top) #contents>.header+main{margin-top:14px}}@media(max-width: 360px){.header__inner{padding-right:148px}.header__logo{width:112px}.header__lang-button{width:78px}}@media(prefers-reduced-motion: reduce){.header__lang-menu,.header__lang-arrow,.sp-menu__panel,.sp-menu__line{transition:none}}

/*
 * Final hamburger normalization.
 * Applies to TOP and every lower page. Legacy page-specific menu shells,
 * pseudo elements and tap overlays are reset so only the circular button
 * and three white lines remain visible.
 */
.sp-menu {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    overflow: visible !important;
    -webkit-tap-highlight-color: transparent;
}

.sp-menu::before,
.sp-menu::after,
.sp-menu > .sp-menu__button::before,
.sp-menu > .sp-menu__button::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 850px) {
    .sp-menu {
        position: fixed !important;
        top: 14px !important;
        right: 20px !important;
        bottom: auto !important;
        left: auto !important;
        z-index: 350 !important;
        display: block !important;
        width: var(--revix-header-control-size) !important;
        min-width: var(--revix-header-control-size) !important;
        max-width: var(--revix-header-control-size) !important;
        height: var(--revix-header-control-size) !important;
        min-height: var(--revix-header-control-size) !important;
        max-height: var(--revix-header-control-size) !important;
        visibility: visible !important;
        pointer-events: auto !important;
        isolation: isolate !important;
    }

    .sp-menu > .sp-menu__button {
        position: relative !important;
        inset: auto !important;
        z-index: 2 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        width: var(--revix-header-control-size) !important;
        min-width: var(--revix-header-control-size) !important;
        max-width: var(--revix-header-control-size) !important;
        height: var(--revix-header-control-size) !important;
        min-height: var(--revix-header-control-size) !important;
        max-height: var(--revix-header-control-size) !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        outline: 0 !important;
        color: #fff !important;
        background: var(--revix-header-green) !important;
        background-image: none !important;
        box-shadow: 0 5px 16px rgb(15 76 48 / 20%) !important;
        filter: none !important;
        backdrop-filter: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        transform: none !important;
        overflow: hidden !important;
        -webkit-tap-highlight-color: transparent;
    }

    .sp-menu > .sp-menu__button:focus,
    .sp-menu > .sp-menu__button:active {
        outline: 0 !important;
        background: var(--revix-header-green) !important;
        box-shadow: 0 5px 16px rgb(15 76 48 / 20%) !important;
    }

    .sp-menu > .sp-menu__button:focus-visible {
        outline: 3px solid rgb(245 181 0 / 72%) !important;
        outline-offset: 3px !important;
    }

    .sp-menu > .sp-menu__button > .sp-menu__line {
        position: static !important;
        display: block !important;
        flex: 0 0 auto !important;
        width: 18px !important;
        height: 2px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        visibility: visible !important;
        color: #fff !important;
        background: #fff !important;
        box-shadow: none !important;
        opacity: 1 !important;
        transform: none !important;
        transition: transform .2s ease, opacity .2s ease !important;
    }

    .sp-menu.is-open > .sp-menu__button > .sp-menu__line:nth-child(1) {
        transform: translateY(7px) rotate(45deg) !important;
    }

    .sp-menu.is-open > .sp-menu__button > .sp-menu__line:nth-child(2) {
        opacity: 0 !important;
    }

    .sp-menu.is-open > .sp-menu__button > .sp-menu__line:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg) !important;
    }

    .sp-menu > .sp-menu__panel {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1 !important;
        display: block !important;
        width: 100vw !important;
        height: 100dvh !important;
        min-height: 100vh !important;
        margin: 0 !important;
        padding: 96px 24px 40px !important;
        border: 0 !important;
        border-radius: 0 !important;
        visibility: hidden !important;
        background: rgb(15 76 48 / 98%) !important;
        box-shadow: none !important;
        opacity: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        pointer-events: none !important;
        transform: none !important;
        transition: opacity .2s ease, visibility .2s ease !important;
    }

    .sp-menu.is-open > .sp-menu__panel {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    .sp-menu .sp-menu__nav {
        display: grid !important;
        gap: 8px !important;
        width: min(100%, 520px) !important;
        margin: 0 auto !important;
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .sp-menu .sp-menu__link {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        min-height: 58px !important;
        margin: 0 !important;
        padding: 12px 6px !important;
        border: 0 !important;
        border-bottom: 1px solid rgb(255 255 255 / 18%) !important;
        border-radius: 0 !important;
        color: #fff !important;
        background: transparent !important;
        box-shadow: none !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        line-height: 1.5 !important;
        text-align: left !important;
        text-decoration: none !important;
        opacity: 1 !important;
        transform: none !important;
    }

    .sp-menu .sp-menu__link::after {
        display: block !important;
        content: "→" !important;
    }

    .sp-menu .sp-menu__link--cta {
        justify-content: center !important;
        margin-top: 20px !important;
        border: 1px solid #fff !important;
        border-radius: 999px !important;
        background: rgb(255 255 255 / 8%) !important;
        text-align: center !important;
    }

    .sp-menu .sp-menu__link--cta::after {
        display: none !important;
    }
}

@media (max-width: 568px) {
    .sp-menu {
        top: 12px !important;
        right: 16px !important;
    }
}


/* ===== headerwidth_20260705 ===== */
/* ヘッダー内コンテンツ幅を TOP .ct__list（コンテンツ最大1180px・中央寄せ）と整列（全ページ共通）。
   側方paddingは既存の --revix-header-side-space をそのまま含めて上限化するため、
   広幅時: コンテンツ=1180px中央 ／ 1292px未満: 従来どおり100%（max-width不発火）。
   モバイル(≤850px)はpadding系が別定義でmax-width非関与＝挙動不変。 */
.header__inner{
  max-width: calc(1180px + var(--revix-header-side-space) * 2);
  margin-right: auto;
  margin-left: auto;
}

/* ===== footerwidth_20260705 =====
   フッター横幅をヘッダー(headerwidth_20260705)・TOP ct__list(最大1180px)に整列。
   側方padding(既存: PC 50px)込みで上限化するため、
   広幅時: コンテンツ=1180px中央 ／ 1280px未満: 従来どおり100%（max-width不発火）。
   モバイル(≤850px: padding30px / ≤568px: 20px)はmax-width非到達＝挙動不変。
   margin-top/bottom(100px・SP50px)は既存shorthandの縦成分が維持される。 */
.footer__inner{
  max-width: calc(1180px + 100px); /* 1180 + 側方padding 50px*2 */
  margin-right: auto;
  margin-left: auto;
}

/* ===== megamenu_20260705 =====
   PCヘッダー5カテゴリのメガメニュー＋SPハンバーガー7グループアコーディオン。
   - PCメガ: >850px限定（.header__navは既存で≤850px非表示＝SP影響なし）。
     パネルは .header 直下 absolute フルブリード（CLSなし）・内側は headerwidth_20260705 と同じ1180px整列。
     z-index 330（header 300 と lang-menu 360 の間）。
   - SPアコーディオン: 外殻 .sp-menu 系は既存のまま。パネル内部は新クラス .spnav 系で
     既存 body:not(#top) .sp-menu__link 系 !important 群と完全分離。 */
@media (min-width: 851px) {
  .header__nav-item {
    display: flex;
    align-items: center;
    gap: 2px;
  }

  .header__nav-link.is-current {
    text-decoration: underline;
    text-decoration-color: var(--revix-header-green);
    text-decoration-thickness: 2px;
    text-underline-offset: 8px;
  }

  .header__nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--revix-header-text);
    cursor: pointer;
  }

  .header__nav-toggle-arrow {
    display: block;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .15s ease;
  }

  .header__nav-toggle:hover,
  .header__nav-toggle:focus-visible,
  .header__nav-item.is-open > .header__nav-toggle {
    color: var(--revix-header-green);
  }

  .header__nav-item.is-open > .header__nav-toggle > .header__nav-toggle-arrow {
    transform: translateY(2px) rotate(225deg);
  }

  .header__nav-toggle:focus-visible {
    outline: 2px solid var(--revix-header-green);
    outline-offset: 2px;
    border-radius: 4px;
  }

  .header__mega {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 330;
    border-top: 1px solid var(--revix-header-border);
    background: #fff;
    box-shadow: var(--revix-header-shadow);
    visibility: hidden;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
    pointer-events: none;
  }

  .header__nav-item.is-open > .header__mega {
    visibility: visible;
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }

  .header__mega-inner {
    display: flex;
    gap: clamp(28px, 4vw, 56px);
    max-width: calc(1180px + var(--revix-header-side-space) * 2);
    margin: 0 auto;
    padding: 30px var(--revix-header-side-space) 36px;
  }

  .header__mega-lead-col {
    flex: 0 0 auto;
    width: min(260px, 24%);
  }

  .header__mega-lead {
    display: block;
    padding: 14px 16px;
    border: 1px solid var(--revix-header-border);
    border-radius: 8px;
    color: var(--revix-header-text);
    text-decoration: none;
    transition: border-color .15s ease;
  }

  .header__mega-lead:hover,
  .header__mega-lead:focus-visible {
    border-color: var(--revix-header-green);
  }

  .header__mega-lead:hover .header__mega-lead-title,
  .header__mega-lead:focus-visible .header__mega-lead-title {
    color: var(--revix-header-green);
    text-decoration: underline;
  }

  .header__mega-lead-title {
    display: block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
  }

  .header__mega-lead-desc {
    display: block;
    margin-top: 6px;
    color: #5a6660;
    font-size: 12.5px;
    line-height: 1.6;
  }

  .header__mega-lead-arrow {
    display: block;
    margin-top: 8px;
    color: var(--revix-header-green);
    font-size: 14px;
    line-height: 1;
  }

  .header__mega-list--lead {
    margin-top: 14px;
  }

  .header__mega-groups {
    display: flex;
    flex: 1 1 auto;
    gap: clamp(24px, 3vw, 48px);
    min-width: 0;
  }

  .header__mega-col {
    flex: 0 1 auto;
    min-width: 0;
  }

  .header__mega-heading {
    margin: 0 0 10px;
    color: #5a6660;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.5;
  }

  .header__mega-heading + .header__mega-list + .header__mega-heading {
    margin-top: 22px;
  }

  .header__mega-list {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .header__mega-link {
    display: inline-block;
    padding: 5px 0;
    color: var(--revix-header-text);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
    text-decoration: none;
  }

  .header__mega-link:hover,
  .header__mega-link:focus-visible {
    color: var(--revix-header-green);
    text-decoration: underline;
  }
}

@media (min-width: 851px) and (max-width: 1024px) {
  .header__mega-link {
    font-size: 14px;
  }

  .header__mega-lead-col {
    width: 220px;
  }
}

@media (max-width: 850px) {
  .spnav {
    display: block;
    width: min(100%, 520px);
    margin: 0 auto;
    color: #fff;
  }

  .spnav__group {
    border-bottom: 1px solid hsla(0, 0%, 100%, .18);
  }

  .spnav__head {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 56px;
    margin: 0;
    padding: 12px 8px 12px 6px;
    border: 0;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .spnav__head-label {
    flex: 1 1 auto;
  }

  .spnav__head:focus-visible {
    outline: 2px solid rgb(245 181 0 / 72%);
    outline-offset: 2px;
    border-radius: 4px;
  }

  .spnav__toggle-icon {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
  }

  .spnav__toggle-icon::before,
  .spnav__toggle-icon::after {
    position: absolute;
    top: 7px;
    left: 0;
    width: 16px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transition: transform .2s ease;
  }

  .spnav__toggle-icon::after {
    transform: rotate(90deg);
  }

  .spnav__group.is-open .spnav__toggle-icon::after {
    transform: rotate(0deg);
  }

  .spnav__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .2s ease;
  }

  .spnav__group.is-open .spnav__panel {
    grid-template-rows: 1fr;
  }

  .spnav__sub {
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
    visibility: hidden;
    transition: visibility .2s ease;
  }

  .spnav__group.is-open .spnav__sub {
    visibility: visible;
  }

  .spnav__sub > li {
    margin: 0;
  }

  .spnav__sub-heading {
    margin: 8px 0 0;
    padding: 6px 6px 2px 22px;
    color: hsla(0, 0%, 100%, .66);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.5;
  }

  .spnav__sub-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin-left: 8px;
    padding: 8px 6px 8px 14px;
    border-left: 1px solid hsla(0, 0%, 100%, .25);
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
    text-decoration: none;
  }

  .spnav__sub > li:last-child .spnav__sub-link {
    margin-bottom: 10px;
  }

  /* カテゴリトップリンク（各グループ先頭）: 少し強調＋矢印 */
  .spnav__sub-link--top {
    font-weight: 600;
    justify-content: space-between;
  }

  .spnav__sub-link--top::after {
    content: "\2192";
    margin-left: 10px;
  }

  .spnav__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    margin-top: 24px;
    border: 1px solid #fff;
    border-radius: 999px;
    background: hsla(0, 0%, 100%, .08);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header__mega,
  .header__nav-toggle-arrow,
  .spnav__panel,
  .spnav__sub,
  .spnav__toggle-icon::before,
  .spnav__toggle-icon::after {
    transition: none;
  }
}

/* ===== headeractionsgreen_20260705 =====
   ヘッダー右上ユーティリティ帯（よくある質問/お問い合わせ）の背景をページ別テーマ色
   （agency #B24A3B・market #128083・company #2A3442・style.css #2ea36c 等）から
   統一緑 #1E8A58（headercolor_20260704 の HEADER GREEN UNIFY と同値）へ全ページ統一。
   pageNN.css の同specificity定義より後読みのため本追記が勝つ。
   格上げ済みページの body#id 付き addon（同色 #1E8A58）はそのまま＝色は一致。
   文字色は全テーマ白(#fff)のためコントラスト影響なし。≤850px は display:none で非表示＝SP不変。 */
.header__actions{
  background: #1E8A58;
}

/* ================================================================
   related-links (site-wide) 20260710  内部リンクPhase1  ★2026-07-11 v3 継承防御版
   - common-layout.css 末尾に追記（マーカー文字列は履歴継続のため旧名のまま）。
   - クラスは全て rvx-rl- 固有プレフィックス（既存資産に0件を確認済）＝既存へ影響ゼロ。
   - セレクタは全て .rvx-rl.rvx-rl 起点（二重クラス）。コンテナ=(0,2,0)・子孫=(0,3,0)で、
     ページ側の `.x section` `.x h2` `.x a:hover` 等の要素装飾より常に強い。
     実CSS全65本を走査し、ID+裸要素は :focus-visible アウトラインのみ（遮断しない）と確認済。
   - 横幅・余白・背景・文字色・フォント・整列すべて自前＝紺背景ページでも白帯で正常表示。
   - 色は data-rl-theme（related.php がURLからカテゴリ判定して付与）で実ベース色を適用。
   ================================================================ */

/* --- トークン（既定＝低圧グリーン。data-rl-theme でカテゴリ別上書き） --- */
.rvx-rl.rvx-rl{
  --rl-accent:#1E8A58; --rl-deep:#0F4C30;
  --rl-border:#E2E5E8; --rl-ink:#16181C; --rl-sub:#5A6270;
  --rl-serif:"Yu Mincho","Hiragino Mincho ProN","MS Mincho",serif;
  --rl-en:"Barlow","Helvetica Neue",Arial,system-ui,sans-serif;
  --rl-gothic:"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",system-ui,sans-serif;
  --rl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}
.rvx-rl.rvx-rl[data-rl-theme="lo-landowner"]{--rl-accent:#31A886;--rl-deep:#155442}
.rvx-rl.rvx-rl[data-rl-theme="lo"]{--rl-accent:#1E8A58;--rl-deep:#0F4C30}
.rvx-rl.rvx-rl[data-rl-theme="hv"]{--rl-accent:#0C2A4D;--rl-deep:#071A31}
.rvx-rl.rvx-rl[data-rl-theme="bess"]{--rl-accent:#128083;--rl-deep:#0A5457}
.rvx-rl.rvx-rl[data-rl-theme="land"]{--rl-accent:#1F6FD0;--rl-deep:#0C2A4D}
.rvx-rl.rvx-rl[data-rl-theme="agency"]{--rl-accent:#B24A3B;--rl-deep:#7E3227}
.rvx-rl.rvx-rl[data-rl-theme="news"]{--rl-accent:#2A3442;--rl-deep:#16181C}
.rvx-rl.rvx-rl[data-rl-theme="corp"]{--rl-accent:#2A3442;--rl-deep:#16181C}

/* --- 外枠（余白・横幅・地色・文字・整列すべて自前） --- */
.rvx-rl.rvx-rl{margin:0;padding:96px 0;border:0;background:#fff;color:var(--rl-ink);
  font-family:var(--rl-gothic);text-align:left;line-height:1.6;letter-spacing:normal}
.rvx-rl.rvx-rl::before,.rvx-rl.rvx-rl::after{content:none}
.rvx-rl.rvx-rl,.rvx-rl.rvx-rl *{box-sizing:border-box}
.rvx-rl.rvx-rl a,.rvx-rl.rvx-rl a:link,.rvx-rl.rvx-rl a:visited,
.rvx-rl.rvx-rl a:hover,.rvx-rl.rvx-rl a:active{text-decoration:none}
.rvx-rl.rvx-rl .rvx-rl__inner{width:min(100% - 96px,1200px);margin-inline:auto;padding:0}

/* --- 見出し（h2/p へのページ装飾を全て遮断） --- */
.rvx-rl.rvx-rl .rvx-rl__heading{margin:0 0 30px;padding:0;background:none;border:0;text-align:left}
.rvx-rl.rvx-rl .rvx-rl__tag{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:0;background:none;border:0;
  color:var(--rl-accent);font-family:var(--rl-en);font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase}
.rvx-rl.rvx-rl .rvx-rl__tag::before{content:none}
.rvx-rl.rvx-rl .rvx-rl__tag::after{content:"";width:32px;height:2px;background:var(--rl-accent)}
.rvx-rl.rvx-rl .rvx-rl__hd{margin:0;padding:0;border:0;background:none;
  font-family:var(--rl-serif);font-size:25px;font-weight:700;line-height:1.5;letter-spacing:.02em;color:var(--rl-ink)}
.rvx-rl.rvx-rl .rvx-rl__hd::before,.rvx-rl.rvx-rl .rvx-rl__hd::after{content:none}

/* --- 丸矢印（SVGマスク中央・③②サイズ統一34px/12px） --- */
.rvx-rl.rvx-rl .rvx-rl__arrow{position:absolute;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;
  transition:transform .25s ease,background-color .25s ease,border-color .25s ease}
.rvx-rl.rvx-rl .rvx-rl__arrow::after{content:"";display:block;width:12px;height:12px;background-color:var(--rl-arrow-ink,var(--rl-deep));
  -webkit-mask:var(--rl-chev) center/contain no-repeat;mask:var(--rl-chev) center/contain no-repeat}
.rvx-rl.rvx-rl .rvx-rl__arrow::before{content:none}

/* --- ③ 次のステップ（カテゴリ色の塗り＝最優先の1枚） --- */
.rvx-rl.rvx-rl .rvx-rl-next{position:relative;display:flex;align-items:center;min-height:78px;margin:0 0 20px;padding:22px 74px 22px 30px;
  border:0;border-radius:14px;background:linear-gradient(100deg,var(--rl-accent) 0%,var(--rl-deep) 100%);
  box-shadow:0 14px 34px color-mix(in srgb,var(--rl-deep) 28%,transparent);transition:transform .25s ease,box-shadow .25s ease}
.rvx-rl.rvx-rl .rvx-rl-next,.rvx-rl.rvx-rl .rvx-rl-next:link,.rvx-rl.rvx-rl .rvx-rl-next:visited,
.rvx-rl.rvx-rl .rvx-rl-next:hover,.rvx-rl.rvx-rl .rvx-rl-next:active{color:#fff}
.rvx-rl.rvx-rl .rvx-rl-next__text{margin:0;padding:0;border:0;background:none;color:#fff;
  font-family:var(--rl-serif);font-size:21px;font-weight:700;line-height:1.4;letter-spacing:.02em}
.rvx-rl.rvx-rl .rvx-rl-next__text::before,.rvx-rl.rvx-rl .rvx-rl-next__text::after{content:none}
.rvx-rl.rvx-rl .rvx-rl-next__arrow{right:24px;top:50%;background:#fff;border:0;transform:translateY(-50%);--rl-arrow-ink:var(--rl-deep)}
@media (hover:hover) and (pointer:fine){
  .rvx-rl.rvx-rl .rvx-rl-next:hover{transform:translateY(-3px);box-shadow:0 20px 44px color-mix(in srgb,var(--rl-deep) 38%,transparent)}
  .rvx-rl.rvx-rl .rvx-rl-next:hover .rvx-rl-next__arrow{transform:translateY(-50%) translateX(5px)}
}

/* --- ② 関連カード（白地・線画・カテゴリ色アクセント） --- */
.rvx-rl.rvx-rl .rvx-rl__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;padding:0}
.rvx-rl.rvx-rl .rvx-rl-item{position:relative;display:flex;flex-direction:column;gap:7px;padding:24px 64px 24px 24px;
  border:1px solid var(--rl-border);border-radius:14px;background:#fff;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.rvx-rl.rvx-rl .rvx-rl-item,.rvx-rl.rvx-rl .rvx-rl-item:link,.rvx-rl.rvx-rl .rvx-rl-item:visited,
.rvx-rl.rvx-rl .rvx-rl-item:hover,.rvx-rl.rvx-rl .rvx-rl-item:active{color:var(--rl-ink)}
.rvx-rl.rvx-rl .rvx-rl-item__tag{margin:0;padding:0;color:var(--rl-deep);font-family:var(--rl-en);font-size:11px;font-weight:700;letter-spacing:.16em}
.rvx-rl.rvx-rl .rvx-rl-item__text{margin:0;padding:0;border:0;background:none;
  font-family:var(--rl-serif);font-size:17px;font-weight:700;line-height:1.5;letter-spacing:.02em;color:var(--rl-ink)}
.rvx-rl.rvx-rl .rvx-rl-item__text::before,.rvx-rl.rvx-rl .rvx-rl-item__text::after{content:none}
.rvx-rl.rvx-rl .rvx-rl-item__arrow{right:20px;bottom:20px;background:color-mix(in srgb,var(--rl-accent) 12%,#fff);
  border:1px solid color-mix(in srgb,var(--rl-accent) 32%,transparent);--rl-arrow-ink:var(--rl-deep)}
@media (hover:hover) and (pointer:fine){
  .rvx-rl.rvx-rl .rvx-rl-item:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--rl-accent) 55%,transparent);box-shadow:0 14px 32px color-mix(in srgb,var(--rl-deep) 12%,transparent)}
  .rvx-rl.rvx-rl .rvx-rl-item:hover .rvx-rl-item__arrow{background:var(--rl-accent);border-color:var(--rl-accent);transform:translateX(3px);--rl-arrow-ink:#fff}
}

/* --- レスポンシブ（3列→1列。中間の2列崩れ無し） --- */
@media (max-width:820px){
  .rvx-rl.rvx-rl{padding:48px 0}
  .rvx-rl.rvx-rl .rvx-rl__inner{width:min(100% - 40px,1200px)}
  .rvx-rl.rvx-rl .rvx-rl__hd{font-size:21px}
  .rvx-rl.rvx-rl .rvx-rl__grid{grid-template-columns:1fr;gap:12px}
  .rvx-rl.rvx-rl .rvx-rl-item{padding:22px 52px 22px 22px}
  .rvx-rl.rvx-rl .rvx-rl-next{padding:22px 66px 22px 22px}
  .rvx-rl.rvx-rl .rvx-rl-next__text{font-size:18px}
}

/* =====================================================================
   パンくず（共通部品 rvx-bc）2026-08-17
   -----------------------------------------------------------------
   横位置はヘッダー（.header__inner）と同じ計算式から導く。
   数値を直書きするとヘッダー側を変えたときに再びズレるため、
   ガター幅は --rvx-gutter に一本化し、ヘッダーの各ブレークポイントに追随させる。
   ページ個別CSSでパンくずを再定義しないこと（旧 .breadcrumb 系がその失敗例）。
   ===================================================================== */
:root{--rvx-gutter:var(--revix-header-side-space)}
@media (max-width:1024px){:root{--rvx-gutter:28px}}
@media (max-width:850px){:root{--rvx-gutter:20px}}
@media (max-width:568px){:root{--rvx-gutter:16px}}

/* box-sizing はページ側で border-box を当てていないページがあるため必ず自前で指定する
   （指定を省くと padding の分だけ横幅がはみ出し、中央寄せがずれる） */
.rvx-bc,.rvx-bc *,.rvx-bc *::before,.rvx-bc *::after{box-sizing:border-box}
.rvx-bc{background:#fff}
/* 位置決めは div（__inner）が持つ。ページ側の ol/ul リセットに潰されないようにするため、
   ol には余白や幅を持たせない */
.rvx-bc .rvx-bc__inner{
  width:100%;max-width:calc(1180px + var(--rvx-gutter) * 2);
  margin:0 auto;padding:14px var(--rvx-gutter)}
.rvx-bc .rvx-bc__list{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;
  margin:0;padding:0;color:#686f76;font-size:12px;line-height:1.5;list-style:none}
.rvx-bc .rvx-bc__item{margin:0;padding:0;color:inherit;font-size:inherit;list-style:none}
.rvx-bc .rvx-bc__item::marker{content:""}
.rvx-bc .rvx-bc__item + .rvx-bc__item::before{margin-right:18px;color:inherit;content:"/"}
.rvx-bc .rvx-bc__link{color:inherit;text-decoration:none}
.rvx-bc .rvx-bc__link:hover,.rvx-bc .rvx-bc__link:focus-visible{text-decoration:underline}
@media (max-width:768px){.rvx-bc .rvx-bc__inner{padding-top:10px;padding-bottom:10px}}

/* ================================================================
   newsir_20260820 : TOP「お知らせ・IR」枠
   共通部品 = assets/include/news-ir.php / データ = assets/include/news-data.php

   横位置は TOP の既存セクション（page00.css の .ct__group-heading）と
   同じ式・同じブレークポイントで導く。ヘッダーのガター --rvx-gutter を使うと
   1280px以下で最大22pxずれることを 2026-08-20 に実測したため、ここでは使わない。
     基底    : min(1180px, 100% - 100px)
     ≤850px  : calc(100% - 60px)
     ≤568px  : calc(100% - 40px)

   外枠を .ct と同じフルブリード（width:100vw + margin-left:calc(50% - 50vw)）に
   するのは必須。100vw はスクロールバーを含む幅で、通常のブロックの 100% は
   含まない。揃えないとスクロールバーのある画面で内側の基準幅が食い違い、
   1280px で 7.5px ずれる（2026-08-20 に test で実測）。

   box-sizing とリストのリセットを自前で持つのは、ページ側のリセットに
   潰されないようにするため（.rvx-bc と同じ考え方）。
   ================================================================ */
.rvx-news,.rvx-news *,.rvx-news *::before,.rvx-news *::after{box-sizing:border-box}
.rvx-news{width:100vw;margin-left:calc(50% - 50vw);padding:28px 0 78px;color:#101b17;background:#fff}
.rvx-news__inner{width:min(1180px, 100% - 100px);margin-inline:auto}

.rvx-news__head{
  display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  gap:24px;margin:0 0 26px}
.rvx-news__heading{min-width:0}
.rvx-news__en{
  margin:0;padding:0;color:#1b7a4e;background:none;
  font-family:"Barlow","Helvetica Neue",Arial,sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.16em;line-height:1.5}
.rvx-news__title{
  margin:2px 0 0;padding:0;border:0;background:none;color:#101b17;
  font-size:clamp(24px,2.5vw,36px);font-weight:700;line-height:1.35}
.rvx-news__title::before,.rvx-news__title::after{content:none}

.rvx-news__filter{display:flex;flex-wrap:wrap;gap:10px}
.rvx-news__tab{
  display:inline-flex;align-items:center;justify-content:center;
  padding:9px 26px;border:1px solid #c7d5ce;border-radius:999px;
  color:#52635b;background:#fff;box-shadow:none;
  font:inherit;font-size:14px;font-weight:600;line-height:1.4;
  appearance:none;cursor:pointer}
.rvx-news__tab.is-active{border-color:#1b7a4e;color:#fff;background:#1b7a4e}
.rvx-news__tab:focus-visible{outline:2px solid #1b7a4e;outline-offset:2px}

.rvx-news__list{margin:0;padding:0;border-top:1px solid #dfe6e2;list-style:none}
.rvx-news__item{
  display:flex;align-items:flex-start;gap:28px;
  margin:0;padding:22px 4px;border-bottom:1px solid #dfe6e2;list-style:none}
.rvx-news__item::marker{content:""}
.rvx-news__meta{display:flex;flex:0 0 auto;align-items:center;gap:14px;padding-top:3px}
.rvx-news__date{
  min-width:92px;color:#52635b;
  font-family:"Barlow","Helvetica Neue",Arial,sans-serif;
  font-size:14px;letter-spacing:.04em;line-height:1.6}
.rvx-news__cat{
  display:inline-block;min-width:54px;padding:3px 10px;border-radius:3px;
  color:#fff;background:#1b7a4e;text-align:center;
  font-family:"Barlow","Helvetica Neue",Arial,sans-serif;
  font-size:11px;font-weight:700;letter-spacing:.08em;line-height:1.6}
.rvx-news__cat--ir{background:#0c2a4d}
.rvx-news__text{margin:0;padding:0;color:#101b17;font-size:16px;font-weight:500;line-height:1.6}
.rvx-news__link,.rvx-news__link:link,.rvx-news__link:visited{color:inherit;text-decoration:none}
.rvx-news__link:hover,.rvx-news__link:focus-visible{color:#1b7a4e;text-decoration:underline}

.rvx-news__empty{margin:22px 0 0;padding:0;color:#52635b;font-size:15px;line-height:1.7}

.rvx-news__more{margin:30px 0 0;text-align:right}
.rvx-news__more a,.rvx-news__more a:link,.rvx-news__more a:visited{
  display:inline-flex;align-items:center;gap:12px;
  color:#101b17;font-size:15px;font-weight:600;text-decoration:none}
.rvx-news__more a::after{
  content:"";width:34px;height:34px;border-radius:999px;
  background:#1b7a4e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h13M12 6l6 6-6 6' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.rvx-news__more a:hover,.rvx-news__more a:focus-visible{color:#1b7a4e}

@media (max-width:850px){
  .rvx-news{padding:24px 0 66px}
  .rvx-news__inner{width:calc(100% - 60px)}
}
@media (max-width:568px){
  .rvx-news{padding:20px 0 54px}
  .rvx-news__inner{width:calc(100% - 40px)}
  .rvx-news__head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:18px}
  .rvx-news__item{flex-direction:column;gap:10px;padding:18px 2px}
  .rvx-news__text{font-size:15px}
  .rvx-news__more{margin-top:24px;text-align:left}
}
