@charset "utf-8"; /* ---------------------------------------------
navigation02 ※TOP、下層共通
--------------------------------------------- */
.header-area-upper {
    padding: var(--s1) 12.5rem var(--s1) 4.3vw;
    /* border-bottom: 1px solid #1C267A; */
    /* background: linear-gradient(90deg, #C7E8ED 0%, #EFF2F5 68%); */
    /* text-align: right; */
}

.header-title {
    margin: 0;
    color: #333;
    line-height: 1.3;
    font-size: 1rem;
}

.header-title-main {
    font-weight: 500;
    display: block;
}

.header-title-sub {
    font-weight: 500;
    font-size: 1rem;
    color: #333;
}

.header-title a {
    text-decoration: none;
}

.header-title a:hover {
    text-decoration: underline;
}

.gnavi-btn-close {
    display: none;
}

.toggle-content {
    display: none;
}

.gnavi-ctrl {
    transition: opacity 0.6s, visibility 0.6s;
    opacity: 0;
    visibility: hidden;
}

.header-area--top .gnavi-ctrl {
    opacity: 1;
    visibility: visible;
}

.header-area--top .gnavi-logo-fixed, .header-area--low .gnavi-logo-fixed {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.header-area--top .gnavi-ctrl.is-show .gnavi-logo-fixed, .header-area--low .gnavi-ctrl.is-show .gnavi-logo-fixed {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: 0 1rem 2.8rem rgba(6, 14, 109, 0.22);
}

.gnavi-ctrl.is-show {
    opacity: 1;
    visibility: visible;
}

#low-header .gnavi-ctrl {
    opacity: 1;
    visibility: visible;
}

.gnavi-btn {
    width: 10rem;
    height: 5.5rem;
    padding: 0;
    border: 1px solid #1C267A;
    border-top: 0;
    border-right: 0;
    border-right: none;
    background: #fff;
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 200;
    cursor: pointer;
    border-radius: 0 0 0 1rem;
    box-shadow: 0 1rem 2.8rem rgba(6, 14, 109, 0.22);
}

.gnavi-logo-fixed {
    width: 16.4rem;
    height: 5.5rem;
    border: 1px solid #1C267A;
    border-top: 0;
    border-left: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 200;
    border-radius: 0 0 1rem 0;
    transition: opacity 0.3s;
}

.gnavi-logo-fixed:hover {
    opacity: 0.7;
}

.gnavi-logo-fixed img {
    width: calc(100% - 2rem);
    height: auto;
    display: block;
}

.gnavi-btn img {
    width: calc(100% - 2rem);
    height: auto;
    display: block;
    margin: 0 auto;
}

.gnavi-btn span {
    width: var(--s4);
    height: 0.2rem;
    display: inline-block;
    background: #fff;
    position: absolute;
    left: 1.2rem;
    transform: translate(0, -50%);
    transition: transform 0.4s, opacity 0.4s;
}

.gnavi-btn .gnavi-btn__bar {
    display: none;
}

.gnavi-btn span:nth-of-type(1) {
    top: 1.7rem;
}

.gnavi-btn span:nth-of-type(2) {
    top: 2.4rem;
}

.gnavi-btn span:nth-of-type(3) {
    top: 3.1rem;
}

.gnavi-btn.is-active span:nth-of-type(1) {
    transform: translateY(0.7rem) rotate(-45deg);
}

.gnavi-btn.is-active span:nth-of-type(2) {
    opacity: 0;
}

.gnavi-btn.is-active span:nth-of-type(3) {
    transform: translateY(-0.7rem) rotate(45deg);
}

.gnavi-btn-close {
    width: 80%;
    margin: 3rem auto;
    padding: var(--s2);
    background: linear-gradient(95deg, #5f9ea0 0%, #a2d2c2 100%);
    display: block;
    text-align: center;
    border-radius: 999px;
}

.gnavi-btn-close__inner {
    padding: 0 0 0 var(--s3);
    display: inline-block;
    color: #fff;
    font-weight: 700;
    position: relative;
}

.gnavi-btn-close__inner::before {
    content: "";
    width: 1em;
    height: 0.1rem;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%) rotate(45deg);
}

.gnavi-btn-close__inner::after {
    content: "";
    width: 1em;
    height: 0.1rem;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%) rotate(135deg);
}

.gnavi-area {
    width: 100%;
    max-width: 41.5rem;
    height: 100vh;
    padding: var(--s7) var(--s1) var(--s10);
    display: block;
    background: #f5f5f9;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
    /* Firefox: 縦に長いときのスクロールバーを非表示 */
    -ms-overflow-style: none;
    /* IE / 旧 Edge */
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    transform: translateX(100%);
    transition: transform 0.8s ease, opacity 0.8s ease;
    opacity: 0;
}

.gnavi-area::-webkit-scrollbar {
    display: none;
    /* Chrome / Safari / Chromium 系 */
}

.gnavi-title {
    min-height: var(--s6);
    margin: 0 var(--s8);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.5;
}

.gnavi-pc {
    display: none;
}

.gnavi-list {
    /* border-bottom: 1px solid #333; */
    position: relative;
}

.gnavi-list li {
    padding-left: 0;
}

.gnavi-list__item::before {
    display: none;
}

.gnavi-list__link {
    width: 100%;
    margin: 0 auto;
    padding: var(--s1) var(--s4) var(--s1) var(--s2);
    /* border-top: 1px solid #333; */
    display: block;
    font-weight: 700;
    line-height: 2;
    text-decoration: none;
    position: relative;
    color: #080e6d;
}

.gnavi-list__link::after {
    content: "";
    width: 1.4rem;
    height: 1.4rem;
    background: url("img/arrow-01-black-right.svg") no-repeat center/100% auto;
    position: absolute;
    top: 50%;
    right: var(--s2);
    transform: translate(0, -50%) rotate(0);
    transition: transform 0.3s;
}

.gnavi-list__link--toggle::after {
    background-image: url("img/arrow-01-black-down.svg");
}

.gnavi-list__link--toggle.is-open::after {
    transform: translate(0, -50%) rotate(180deg);
}

.gnavi-list__sub {
    width: 100%;
    padding-left: 2rem;
    font-size: 1.4rem;
}

.gnavi-list__low .gnavi-list__link {
    padding: var(--s2) var(--s4) var(--s2) var(--s4);
}

.gnavi-list__low .gnavi-list__link::after {
    content: "└";
    background: none;
    transform: translateY(-50%);
    position: absolute;
    top: 40%;
    left: 1rem;
}

.is-gnavi-open .gnavi-area {
    opacity: 1;
    transform: translateX(0);
}

/* ---------------------------------------------
index01(目次)
--------------------------------------------- */
.onb-index01-frame {
    width: 100%;
    background-color: var(--site-color09);
}

.onb-index01-wrap {
    margin: 0 auto;
    padding: var(--s1) 0 var(--s2);
    border: solid 0.1rem #D0D3E0;
    background-color: transparent;
    position: relative;
}

.onb-index01-title {
    padding: var(--s2) var(--s2) var(--s2) var(--s6);
    color: #333;
    font-size: 2.2rem;
    font-weight: bold;
    line-height: 1;
    background-size: 4rem auto;
    position: relative;
    cursor: pointer;
}

/* ---------------------------------------------
related-article01(関連記事)
--------------------------------------------- */
.related-article01-frame {
    background: #f7f7f7;
    margin: 0 auto;
    border: 1px solid #060e6d;
    border-radius: 1.6rem;
    background-color: rgba(255, 255, 255, 0.96);
    position: relative;
    overflow: hidden;
    margin-block: 10rem 0; }

.related-article01-title {
    padding: 2.5rem 1.8rem 1.5rem;
    color: #060e6d;
    border-bottom: 1px solid #060e6d;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.8rem;
    line-height: 1;
    font-weight: 700;
}

.related-article01-list {
    padding: 1.8rem 2.4rem 2.2rem;
    font-weight: 700;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2rem;
    row-gap: 10px;
}

.related-article01-list li {
    margin: 0 0 0 var(--s2);
    font-size: 100%;
    line-height: 1.7;
    position: relative;
    display: block;
    padding-left: 1.8rem;
}

.related-article01-list li + li {
    margin-top: 0;
}

.related-article01-list li::before {
    position: absolute;
    left: 0;
    content: "";
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: 1px solid #060e6d;
    top: 0.8rem;
}

.related-article01-list a {
    display: block;
    text-decoration: none;
}

.related-article01-list a:hover {
    opacity: 0.6;
}

.relations-box.relations-box--column {
    display: flex;
    gap: 10px;
    color: #060e6d;
}

.relations-box__pic {
    flex: 0 0 150px;
}

.is-hidden {
}

.related-article01-more {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 50%);
    background-color: transparent;
    width: 100%;
    height: 25%;
    position: absolute;
    bottom: 10px;
    left: 0;
    padding: 2rem 0;
}

.related-article01-more.is-closed {
    display: none;
}

.related-article01-btn {
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 100px;
    padding: 1rem 5rem 1rem 2rem;
    position: relative;
}

.related-article01-btn::before {
    content: "";
    width: 1.8rem;
    height: .2rem;
    background: #000;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translate(0, -50%);
}

.related-article01-btn::after {
    content: "";
    width: .2rem;
    height: 1.8rem;
    background: #000;
    position: absolute;
    top: 50%;
    right: 2.3rem;
    transform: translate(0, -50%);
    transition: transform 0.3s;
}

.related-article01-btn:hover {
    opacity: 0.6;
}

/*------------------------------------------------------------
    SP settings
*/
@media screen and (max-width: 767px) {
    .header-title-main {
        font-size: 2.7vw;
    }

    .header-title-sub {
        font-size: 2.7vw;
    }

    .gnavi-btn {
        width: 6.5rem;
        height: 5rem;
    }

    .gnavi-logo-fixed {
        width: 11.5rem;
        height: 5rem;
    }

    .related-article01-list {
        padding: 2rem;
        display: block;
    }

    .related-article01-list li {
        margin-left: 0;
        font-size: 1.6rem;
    }

    .relations-box__pic {
        flex: 0 0 100px;
    }
}

/* ---------------------------------------------
ozac top
--------------------------------------------- */
:root {
    --ozac-color-primary: #060E6D;
    --ozac-color-bg: #FFFFFF;
    --ozac-color-bg-soft: #F8F9FA;
    --ozac-color-text: #333333;
    --ozac-color-accent: #00B4D8;
}

.contents-area {
    position: relative;
    overflow: hidden;
}

#canvas {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    display: block;
    opacity: 0.13;
}

canvas {
    width: 100%;
    height: 100%;
}

.mainvisual, #contents {
    position: relative;
    z-index: 1;
}

#index {
    color: var(--ozac-color-text);
    /* background-color: transparent; */
    line-height: 1.8;
}

.ozac-kicker {
    margin-bottom: 1.2rem;
    color: var(--ozac-color-accent);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.mainvisual {
    padding: 0 4.5rem 0;
}

.mainvisual--designed {
    position: relative;
    max-width: none;
    margin: 0 auto;
    width: 93vw;
    padding: 0;
}

.mainvisual picture {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 0 0 1.2rem 1.2rem;
}

.mainvisual picture > img {
    display: block;
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: bottom;
}

.mainvisual picture.is-ripples-ready > img {
    opacity: 0;
}

.mainvisual picture.is-ripples-ready > canvas {
    z-index: 1 !important;
    pointer-events: none;
}

.mainvisual__overlay {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    pointer-events: auto;
    max-width: 100rem;
}

.mainvisual__brand {
    width: min(18rem, 30vw);
    margin: 0;
    padding: 3.2rem 1.8rem 1.2rem;
    border-radius: 0 0 1.2rem 1.2rem;
    background-color: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(6, 14, 109, 0.15);
    border-top: 0;
}

.mainvisual__brand:hover {
    opacity:.7;
}

.mainvisual__brand img {
    display: block;
    width: 100%;
    height: auto;
}

.mainvisual__sponsored {
    margin: 2.8rem 0 0;
    color: #060e6d;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
}

.mainvisual__heading {
    margin: 5.4rem 0 0;
    color: #060e6d;
    font-size: clamp(3rem, 3.5vw, 4rem);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: 0.01em;
    text-shadow: 0 2px 8px rgba(255, 255, 255, 0.75);
}

.mainvisual__note {
    margin: 1.2rem 0 0;
    color: rgba(6, 14, 109, 0.85);
    font-size: 1.3rem;
    line-height: 1.4;
}

.mainvisual__wave {
    position: absolute;
    top: 2.2rem;
    right: 2.2rem;
    z-index: 3;
    width: 5rem;
    height: 3rem;
    margin: 0;
    border-radius: 0.6rem;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
}

.mainvisual__wave img {
    display: block;
    width: 3.4rem;
    height: auto;
}

@media screen and (max-width: 767px) {
    .mainvisual picture > img {
        height: 240px;
    }

    .mainvisual__brand {
        width: min(16rem, 44vw);
        margin-top: 0;
        padding: 1.2rem 1.8rem 1.2rem;
        border-radius: 1.2rem;
    }

    .mainvisual__sponsored {
        margin-top: 1.6rem;
        font-size: 2.6666666667vw;
    }

    .mainvisual__heading {
        margin-top: 1.4rem;
        font-size: 6vw;
        line-height: 1.3;
    }

    .mainvisual__note {
        font-size: 2.4vw;
    }

    .mainvisual__wave {
        top: 1.2rem;
        right: 1.2rem;
        width: 4.2rem;
        height: 2.6rem;
    }
}

.ozac-mv {
    margin: 0 auto;
    text-align: center;
}

.ozac-mv__badge {
    width: fit-content;
    margin: 0 auto 2.4rem;
    padding: 5rem 2.4rem 1rem;
    border: 1px solid rgba(10, 25, 47, 0.25);
    border-top: 0px solid rgba(10, 25, 47, 0.25);
    border-radius: 0 0 1.6rem 1.6rem;
    background-color: #fff;
    color: var(--ozac-color-primary);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    width: 15vw;
}

.ozac-mv__title {
    margin-bottom: 1.2rem;
    color: var(--ozac-color-primary);
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.45;
}

.ozac-mv__title span {
    font-size: 5.5rem;
}

span.ozac-keyword {
    font-size: 7rem;
}

.ozac-mv__note {
    margin-bottom: 6rem;
    color: #6D7380;
    font-size: 1.2rem;
}

.ozac-mv__sub-title {
    margin-bottom: 2rem;
    display: inline-block;
    max-width: 100%;
    background-image: linear-gradient(90deg, #122C75 0%, #3C808C 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.5;
}

.ozac-mv__points {
    margin-bottom: 1.6rem;
    display: flex;
    justify-content: center;
    gap: 1.6rem;
    align-items: flex-end;
}

.ozac-mv__point {
    width: min(100%, 46rem);
    padding: 1.6rem 1.2rem;
    /* border-radius: 1.6rem; */
    background: linear-gradient(120deg, #132B73 0%, #2F8EA0 100%);
    color: #fff;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.4;
}

.ozac-mv__link {
    color: rgba(10, 25, 47, 0.7);
    z-index: 1;
    position: relative;
}

.ozac-mv__link img {
    filter: drop-shadow(2px 0px 0 #ffffff);
}





.ozac-mv__image-wrap {
    border-radius: 1.2rem;
    overflow: hidden;
}

.ozac-mv__image {
    width: 100%;
    height: 5.2rem;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* MV直下の画像 → スクロールで右カラム位置へ移動（JSで fixed 補間） */
.ozac-mv-follow-figure-hold {
    position: relative;
    z-index: 0;
    width: 100%;
    margin: -5rem auto 0;
}

.ozac-mv-follow-figure-hold .ozac-split-showcase__figure-inner {
    width: 100%;
    max-width: 1130px;
    margin-inline: auto; transform-origin: center center;
    will-change: transform, left, top, width, height;
}

.ozac-split-showcase__figure-inner.is-fixed-morph {
    z-index: 8;
    margin: 0;
}

.ozac-split-showcase__figure-inner.is-fixed-morph .ozac-mv__image-wrap--split {
    height: 100%;
}

.ozac-split-showcase__figure-inner.is-fixed-morph .ozac-mv__image-wrap--split .ozac-mv__image {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    object-fit: cover;
}

.ozac-split-showcase {
    position: relative;
    z-index: 1;
    padding: 0 0 6.4rem;
    /* background: linear-gradient(90deg, #ffffff 0%, #f0fafc 55%, #e8f6f9 100%); */
    margin-bottom: -20rem;
    margin-top: 5rem;
}

.ozac-split-showcase__inner {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    align-items: stretch;
}

.ozac-split-showcase__text {
    min-width: 0;
}

.ozac-split-showcase__intro {
    margin-bottom: 1.6rem;
}

.ozac-split-showcase__lead {
    margin: 0 0 3rem;
    color: var(--ozac-color-text);
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 2;
}

.ozac-split-showcase__lead:last-child {
    margin-bottom: 0;
}

.ozac-scroll-blur {
    opacity: 0.3;
    filter: blur(10px);
    transform: translateY(1.6rem);
    transition: opacity 0.6s ease, filter 0.3s ease, transform 0.6s ease;
    will-change: opacity, filter, transform;
}

.ozac-split-showcase__text.ozac-scroll-blur {
    opacity: 0;
    padding-top: 4rem;
}

#ozac-mnb-banner {
    margin-block: 3rem 10rem; }

.ozac-scroll-blur.is-scrollin {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .ozac-scroll-blur {
        opacity: 1;
        filter: none;
        transform: none;
        transition: none;
    }
}

.ozac-mark {
    background: linear-gradient(transparent 58%, #fff59d 58%);
    padding: 0 0.15em;
}

.ozac-split-showcase .ozac-section--problem {
    margin-bottom: 0;
    padding: 0;
}

.ozac-split-showcase__slot {
    min-width: 0;
    min-height: 0;
    position: relative;
    overflow: hidden;
    --ozac-slot-ripple-opacity: 0;
    border-radius: 1.6rem;
}

@media screen and (max-width: 767px) {
    .ozac-mv-follow-figure-hold {
        width: 100%;
        margin: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity 1.1s ease, visibility 1.1s ease;
    }

    .ozac-mv-follow-figure-hold .ozac-split-showcase__figure-inner {
        width: 100%;
        max-width: none;
    }

    .ozac-mv__image-wrap--split {
        border-radius: 0;
    }

    .ozac-mv__image-wrap--split .js-ozac-mv-image-before {
        display: block;
        width: 100vw;
        height: 100vh;
        min-height: 100vh;
        max-height: none;
        object-fit: cover;
        object-position: center;
        transition: opacity 1.1s ease;
    }

    .ozac-mv-follow-figure-hold.is-sp-hidden {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .ozac-split-showcase {
        position: relative;
        overflow: hidden;
    }

    .ozac-split-showcase::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: url("img/mv-bg-after.jpg");
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        opacity: 0;
        transition: opacity 1.1s ease;
        z-index: 0;
        pointer-events: none;
        border-radius: 1.2rem;
    }

    .ozac-split-showcase.is-sp-slot-bg-active::before {
        opacity: 0.4;
    }

    .ozac-split-showcase.is-sp-slot-bg-active .ozac-split-showcase__inner {
        position: relative;
        z-index: 1;
        /* background: rgba(255, 255, 255, 0.7); */
        backdrop-filter: blur(2px);
        transition: background-color 1.1s ease;
    }

    .ozac-split-showcase__slot {
        display: none;
    }
}

.ozac-mv__image-wrap--split {
    position: relative;
    border-radius: 1.2rem;
    overflow: hidden;
}

.ozac-mv__image-wrap--split .ozac-mv__image {
    width: 100%;
    height: auto;
    min-height: 22rem;
    max-height: 48vh;
    object-fit: cover;
    object-position: center;
}

.ozac-mv__image-wrap--split .js-ozac-mv-image-before, .ozac-mv__image-wrap--split .ozac-mv__image--after {
    transition: opacity 0.7s ease;
}

.ozac-mv__image-wrap--split .ozac-mv__image--after {
    position: absolute;
    inset: 0;
    height: 100%;
    min-height: 0;
    max-height: none;
    opacity: 0;
    pointer-events: none;
}

.ozac-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
}

.ozac-hero__cta .btn-internal a, .ozac-hero__cta .btn-link a {
    min-width: 24rem;
    padding: 1.1rem 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    text-decoration: none;
}

.ozac-hero__cta .btn-internal a {
    color: #fff;
    background-color: var(--ozac-color-accent);
}

.ozac-hero__cta .btn-link a {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background-color: transparent;
}

.ozac-section {
    margin: 0 auto 4.8rem;
    padding: 0 1.6rem;
    /* background-color: rgba(255, 255, 255, 0.68); */
}

/* 4 Assignment：曝気注入オゾンの課題（参照デザイン） */
.ozac-section--assignment {
    position: relative;
    padding: 4rem 1.6rem 5.6rem;
    overflow: hidden;
    /* background: linear-gradient(168deg, #f2fbfd 0%, #ffffff 42%, #f7fcfd 100%); */
    margin-block: 10rem 5rem; }

.ozac-section--assignment::before {
    content: "";
    position: absolute;
    inset: -20%;
    pointer-events: none;
    z-index: 0;
}

.ozac-assignment {
    position: relative;
    z-index: 1;
}

.ozac-assignment__head {
    margin-bottom: 3.2rem;
    max-width: 90rem;
}

.ozac-assignment__head::before {
    content: none;
}

.ozac-assignment__title {
    margin: 0 0 1.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.ozac-assignment__title::before {
    content: "";
    display: block;
    width: min(100%, 19.3rem);
    height: 4.3rem;
    margin: 0 0 1.2rem;
    background: url("img/4assignment.svg") no-repeat center / contain;
}

.ozac-assignment__title::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    left: calc(10% - 28vw);
    z-index: -1;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    width: 25vw;
    height: 4rem;
}

.ozac-assignment__title .ozac-assignment__eyebrow {
    display: block;
    margin: 0;
    color: var(--ozac-color-primary);
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.65;
}

.ozac-assignment__title-main {
    display: block;
    margin: 0;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.ozac-assignment__intro {
    margin: 0;
    max-width: 90rem;
    color: #3d4a63;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.85;
}

.ozac-assignment__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.6rem;
    margin-bottom: 1.6rem;
}

.ozac-assignment-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.6rem;
    padding: 2.5rem 3.5rem 3.5rem 11rem;
    background-color: #1d6a74;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    color: #fff;
    box-shadow: 0 1.2rem 3.2rem rgba(10, 25, 47, 0.12);
}

.ozac-assignment-card--01 {
    background-image: linear-gradient(rgb(18 73 80 / 0.9), rgb(14 70 77 / 0.9)), url("img/ozac-assignment-card-img01.jpg");
}

.ozac-assignment-card--02 {
    background-image: linear-gradient(rgb(18 73 80 / 0.9), rgb(14 70 77 / 0.9)), url("img/ozac-assignment-card-img02.jpg");
}

.ozac-assignment-card--03 {
    background-image: linear-gradient(rgb(18 73 80 / 0.9), rgb(14 70 77 / 0.9)), url("img/ozac-assignment-card-img03.jpg");
}

.ozac-assignment-card--04 {
    background-image: linear-gradient(rgb(18 73 80 / 0.9), rgb(14 70 77 / 1)), url("img/ozac-assignment-card-img04.jpg");
}

.ozac-assignment-card__index {
    position: relative;
    margin-bottom: 1.4rem;
    min-height: 5.6rem;
}

.ozac-assignment-card__index[class*="ozac-assignment-card__index--"] {
    width: 100%;
    min-height: 9rem;
    background-repeat: no-repeat;
    background-position: left top;
    background-size: contain;
    position: absolute;
    left: 0;
}

.ozac-assignment-card__index--01 {
    background-image: url("img/ozac-assignment-card-num01.svg");
}

.ozac-assignment-card__index--02 {
    background-image: url("img/ozac-assignment-card-num02.svg");
}

.ozac-assignment-card__index--03 {
    background-image: url("img/ozac-assignment-card-num03.svg");
}

.ozac-assignment-card__index--04 {
    background-image: url("img/ozac-assignment-card-num04.svg");
}

.ozac-assignment-card__index[class*="ozac-assignment-card__index--"] .ozac-assignment-card__label, .ozac-assignment-card__index[class*="ozac-assignment-card__index--"] .ozac-assignment-card__num {
    display: none;
}

.ozac-assignment-card__label {
    display: block;
    position: relative;
    z-index: 1;
    margin-bottom: 0.2rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ozac-assignment-card__num {
    position: absolute;
    left: -0.2rem;
    top: 0.2rem;
    z-index: 0;
    color: rgba(255, 255, 255, 0.18);
    font-size: clamp(4.8rem, 14vw, 7.2rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.03em;
    pointer-events: none;
    user-select: none;
}

.ozac-assignment-card__title {
    position: relative;
    z-index: 1;
    margin: 0.8rem 0 1.6rem;
    padding-right: 1rem;
    font-size: clamp(1.9rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.5;
}

.ozac-assignment-card__list {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 0;
    list-style: disc;
    font-weight: 500;
    line-height: 1.75;
    opacity: 0.96;
}

.ozac-assignment-card__list li {
    border-left: solid 1px #fff;
    padding-left: 1.4rem;
    font-size: clamp(1.6rem,2vw,1.8rem);
}

.ozac-assignment-card__list li + li {
    margin-top: 1.75rem;
}

.ozac-assignment-card__list li::marker {
    color: rgba(255, 255, 255, 0.55);
}

.ozac-assignment__summary {
    margin-top: 0.8rem;
    text-align: center;
}

.ozac-assignment__arrow {
    /* display: flex; */
    margin: 0 8.5rem 2rem;
    color: var(--ozac-color-accent);
}

.ozac-assignment__arrow img {
    display: block;
    animation: ozac-assignment-arrow-slide 1.6s ease-in-out infinite;
}

@keyframes ozac-assignment-arrow-slide {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(0.8rem);
    }

    100% {
        transform: translateY(0);
    }
}

.ozac-assignment__summary-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.6rem;
    text-align: left;
}

.ozac-assignment__summary-label {
    flex: 0 0 auto;
    margin: 0;
    align-self: flex-start;
    padding: 1.1rem 3.3rem;
    border-radius: 0.8rem;
    background: #5195A2;
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.45;
}

.ozac-assignment__summary-lead {
    margin: 0;
    color: var(--ozac-color-primary);
    font-size: clamp(1.85rem, 4.2vw, 2.85rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -0.02em;
}

.ozac-section__inner {
    /* max-width: 108rem; */
    margin: 0 auto;
}

.ozac-section__title {
    margin-bottom: 1.2rem;
    color: var(--ozac-color-primary);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.45;
}

.ozac-section__lead {
    margin-bottom: 2rem;
}

.ozac-problem-list {
    display: grid;
    gap: 1.2rem;
}

.ozac-problem-list__item {
    padding: 1.6rem 1.8rem;
    border-left: 4px solid var(--ozac-color-accent);
    background-color: var(--ozac-color-bg-soft);
    font-weight: 700;
}

/* オゾンマイクロナノバブル訴求バナー（参照デザイン） */
.ozac-section--mnb-banner {
    margin-bottom: 4.8rem;
    padding: 0 1.6rem;
    background-color: transparent;
}

.ozac-section--mnb-banner.sec-bg {
    position: relative;
    isolation: isolate;
    background: none;
    --ozac-mnb-bg-shift-x: 0px;
    --ozac-mnb-bg-shift-y: 0px;
    --ozac-mnb-bg-scale-x: 1;
    --ozac-mnb-bg-scale-y: 1;
    --ozac-mnb-bg-opacity: 1;
    --ozac-mnb-bg-radius: 1.4rem;
}

.ozac-section--mnb-banner.sec-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: url("img/sec-bg.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    border-radius: var(--ozac-mnb-bg-radius);
    transform-origin: center top;
    transform: translate(var(--ozac-mnb-bg-shift-x), var(--ozac-mnb-bg-shift-y)) scale(var(--ozac-mnb-bg-scale-x), var(--ozac-mnb-bg-scale-y));
    opacity: var(--ozac-mnb-bg-opacity);
    will-change: transform, opacity, border-radius;
    pointer-events: none;
}

.ozac-mnb-banner {
    position: relative;
    max-width: 108rem;
    margin: 0 auto;
    padding: clamp(2.6rem, 5vw, 10.2rem) clamp(1.6rem, 4vw, 4rem);
    overflow: hidden;
}

ozac-mnb-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.55;
    background-image: radial-gradient(ellipse 100% 60% at 15% 45%, rgba(255, 255, 255, 0.14) 0%, transparent 55%), radial-gradient(circle at 78% 25%, rgba(255, 255, 255, 0.1) 0%, transparent 42%), radial-gradient(circle at 55% 88%, rgba(0, 180, 216, 0.18) 0%, transparent 45%), radial-gradient(circle at 30% 75%, rgba(255, 255, 255, 0.06) 0%, transparent 38%), radial-gradient(circle at 90% 70%, rgba(255, 255, 255, 0.05) 0%, transparent 30%);
    pointer-events: none;
}

.ozac-mnb-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.12;
    background-image: repeating-radial-gradient( circle at 50% 120%, transparent 0, transparent 2.4rem, rgba(255, 255, 255, 0.04) 2.4rem, rgba(255, 255, 255, 0.04) 2.5rem );
    pointer-events: none;
}

.ozac-mnb-banner__inner {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
}

.ozac-mnb-banner__kicker {
    margin: 0 0 clamp(1.2rem, 3vw, 1.8rem);
    font-size: clamp(1.75rem, 2vw, 2.5rem);
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: 0.02em;
    opacity: 0.96;
}

.ozac-mnb-banner__heading {
    margin: 0;
    font-size: clamp(2.5rem, 3vw, 3.5rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0.02em;
}

.ozac-mnb-banner__heading-line {
    display: block;
    color: #ffd700;
}

.ozac-mnb-banner__heading-line + .ozac-mnb-banner__heading-line {
    margin-top: 0.35em;
}

.ozac-mnb-banner__heading-line--accent {
    font-size: 1.06em;
    letter-spacing: 0.03em;
}

/* Solution：固定背景＋白パネル＋比較表（ホバーで説明ポップ） */
.ozac-solution-block {
    position: relative;
    margin: 0 auto;
    padding: clamp(3.6rem, 8vw, 10rem) 1.6rem clamp(4.8rem, 10vw, 7.2rem);
    color: #fff;
    width: 93vw;
    background-image: url("img/sec-bg.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: scroll;
    --ozac-solution-bg-opacity: 1;
    --ozac-solution-bg-radius: 1.4rem;
    border-radius: var(--ozac-solution-bg-radius);
    overflow: hidden;
}

.ozac-solution-block::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(0, 0, 0, calc(1 - var(--ozac-solution-bg-opacity)));
    border-radius: var(--ozac-solution-bg-radius);
    opacity: 1;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .ozac-solution-block {
        background-attachment: scroll, scroll, scroll, scroll;
    }
}

.ozac-solution-block__inner {
    position: relative;
    z-index: 1;
    /* max-width: 108rem; */
    margin: 0 auto;
    padding-top: 10rem;
}

.ozac-solution-block__eyebrow {
    display: inline-block;
    margin: 0 0 1.2rem;
    padding: 0;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
}

.ozac-solution-block__eyebrow::before {
    content: "";
    display: block;
    width: min(100%, 9.6rem);
    height: 2.9rem;
    background: url("img/Solution.svg") no-repeat center / contain;
    z-index: 10;
}

.ozac-solution-block__title {
    margin: 0 0 4rem;
    /* max-width: 52rem; */
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
    text-align: center;
}

.ozac-solution-block::after {
    content: "";
    display: block;
    width: min(100%, 9.6rem);
    height: 19.9rem;
    background: url("img/solution.svg") no-repeat center / contain;
    width: 28vw;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.ozac-solution-block__panel {
    margin-bottom: 4rem;
    padding: clamp(2.4rem, 4vw, 3.6rem) clamp(1.6rem, 3vw, 3.2rem);
    border-radius: 0.8rem;
    background-color: #fff;
    color: var(--ozac-color-text);
    box-shadow: 0 2rem 5rem rgba(10, 25, 47, 0.12);
}

.ozac-solution-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.4rem 1.6rem;
    margin-bottom: 2.4rem;
}

@media (min-width: 640px) {
    .ozac-solution-features {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 3rem 3rem;
    }

    .ozac-solution-feature.onecolumn {
        grid-column: 1 / -1;
    }

    .ozac-solution-feature--ba {
        grid-column: 1 / -1;
    }
}

.ozac-solution-feature {
    min-width: 0;
    border-radius: 1.6rem;
    border: 1px solid var(--ozac-color-primary);
    padding: 3.5rem 3rem;
}

.ozac-solution-feature__title.sol01, .ozac-solution-feature__title.sol02, .ozac-solution-feature__title.sol03, .ozac-solution-feature__title.sol04 {
    padding-left: 8rem;
}

.ozac-solution-feature__title.sol01::before, 
.ozac-solution-feature__title.sol02::before, 
.ozac-solution-feature__title.sol03::before, 
.ozac-solution-feature__title.sol04::before,
.ozac-solution-feature__title.sol05::before {
    content: "";
    width: 9rem;
    height: 9rem;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -2rem;
    margin: auto;
}

.ozac-solution-feature__title.sol01::before {
    background: url(/wp/wp-content/uploads/ozac-solution-feature_icon01.png) no-repeat center / contain;
}

.ozac-solution-feature__title.sol02::before {
    background: url(/wp/wp-content/uploads/ozac-solution-feature_icon02.png) no-repeat center / contain;
}

.ozac-solution-feature__title.sol03::before {
    background: url(/wp/wp-content/uploads/ozac-solution-feature_icon03.png) no-repeat center / contain;
}

.ozac-solution-feature__title.sol04::before {
    background: url(/wp/wp-content/uploads/ozac-solution-feature_icon04.png) no-repeat center / contain;
}

.ozac-solution-feature__title.sol05::before {
    background: url(/wp/wp-content/uploads/ozac-solution-feature_icon05.png) no-repeat center / contain;
}

.ozac-solution-feature__title {
    margin: 0 0 1rem;
    color: var(--ozac-color-primary);
    font-size: clamp(1.6rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.25;
    position: relative;
}

.ozac-solution-feature__title .title-arrow {
    position: absolute;
    right: 0;
    bottom: 0;
    display: inline-flex;
    align-items: center;
    font-size: clamp(1.65rem, 3vw, 2rem);
    color: #29626d;
}

.ozac-solution-feature__title .title-arrow::before {
    content: "";
    flex-shrink: 0;
    width: 2.3em;
    height: 0.95em;
    margin-right: 0.35em;
    background: url("img/title-arrow.svg") no-repeat center / contain;
}

.ozac-solution-feature__figure {
    margin: 0;
    border-radius: 0.8rem;
    overflow: hidden;
}

.ozac-solution-feature__beforeafter {
    width: 100%;
    margin: 0 0 1rem;
}

.ozac-solution-feature__beforeafter img {
    width: 100%;
    height: auto;
    display: block;
}

.ozac-solution-feature.onecolumn .ozac-solution-feature__beforeafter {
    margin-bottom: 1.4rem;
}

.ozac-solution-feature.onecolumn .ozac-solution-feature__beforeafter.sp_only {
    display: none;
}

.ozac-solution-feature__figure img {
    max-height: 28rem;
    object-fit: cover;
    object-position: center;
    display: block;
    width: 100%;
}

/* Before／After 比較（Solution 最終カード） */
.ozac-solution-feature__title--ba {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 0.35em 0.55em;
    margin-bottom: 1.6rem;
    text-align: center;
}

.ozac-solution-feature__title-arrow {
    color: #99d9c1;
    font-weight: 700;
}

.ozac-solution-feature__compare {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.2rem, 3vw, 2rem);
}

.ozac-solution-feature__figure--ba {
    position: relative;
    margin: 0;
    border-radius: 0.8rem;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.ozac-solution-feature__figure--ba img {
    width: 100%;
    height: 100%;
    max-height: none;
}

.ozac-solution-feature__badge {
    text-align: center;
    position: absolute;
    top: clamp(0.8rem, 2vw, 1.4rem);
    right: -9%;
    z-index: 1;
    transform: translateX(-50%);
    padding: 0.45em 1.15em;
    border-radius: 0.55rem;
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-size: clamp(1.3rem, 2vw, 1.5rem);
    letter-spacing: 0.04em;
    text-transform: lowercase;
    white-space: nowrap;
    width: 8rem;
}

.ozac-solution-feature__badge--before {
    background-color: #fff;
    color: var(--ozac-color-primary);
    box-shadow: 0 0 0 1px rgba(6, 14, 109, 0.08), 0 0.4rem 1rem rgba(6, 14, 109, 0.08);
}

.ozac-solution-feature__badge--after {
    background-color: var(--ozac-color-primary);
    color: #fff;
    right: auto;
    left: 14%;
}

img.ozac-solution-feature__badge.ozac-solution-feature__badge--after {
    width: 13rem;
    height: 5rem;
    min-height: 0;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
}

img.ozac-solution-feature__badge.ozac-solution-feature__badge--before {
    width: 13rem;
    height: 5rem;
    min-height: 0;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
}

.ozac-solution-block__body {
    margin: 0 10rem 2rem;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.85;
}

.ozac-solution-block__cta-wrap {
    margin: 0;
}

.ozac-solution-block__cta {
    text-decoration: none;
    color: inherit;
}

/* Solution CTA：横長バナー（水景＋グラデ、波形、右の円矢印） */
.ozac-solution-block__cta--banner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem 2rem;
    width: 70%;
    max-width: 100%;
    padding: clamp(2rem, 4.5vw, 2.8rem) clamp(1.8rem, 4vw, 3.6rem);
    border: none;
    border-radius: 1.6rem;
    overflow: hidden;
    text-align: left;
    color: #fff;
    font-weight: 700;
    line-height: 1.45;
    box-shadow: 0 1rem 2.8rem rgba(6, 14, 109, 0.22);
    background-color: #0a1a4a;
    background-image: url("img/mv-bg-after.jpg");
    background-size: cover;
    background-position: center;
    margin: 5rem auto;
}

.ozac-solution-block__cta--banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient( 105deg, rgba(6, 14, 109, 0.78) 0%, rgba(6, 14, 109, 0.42) 42%, rgba(0, 180, 216, 0.52) 100% );
    pointer-events: none;
}

.ozac-solution-block__cta-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1 1 16rem;
    min-width: 0;
    gap: 0.75rem;
}

.ozac-solution-block__cta-head {
    display: block;
    font-size: clamp(1.8rem, 3.8vw, 2.35rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.35;
    width: 100%;
}

.ozac-solution-block__cta-wave {
    display: block;
    width: 100%;
    margin-top: 1.75rem;
    background-image: url("img/wave-divider-white-medium.svg");
    background-size: 60% 100%;
    background-position: left center;
    opacity: 0.95;
    min-width: 2.4rem;
    height: 0.4rem;
}

.ozac-solution-block__cta-sub {
    display: block;
    font-size: clamp(1.6rem, 2.4vw, 1.65rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -0.01em;
}

.ozac-solution-block__cta-icon {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: clamp(3.6rem, 8vw, 4.6rem);
    height: clamp(3.6rem, 8vw, 4.6rem);
    margin-inline: 0 auto; border-radius: 50%;
    background-color: #fff;
    color: var(--ozac-color-primary);
    box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.18);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ozac-solution-block__cta-arrow {
    display: block;
}

.ozac-solution-block__cta--banner:hover .ozac-solution-block__cta-icon {
    transform: scale(1.16);
    box-shadow: 0 0.45rem 1.35rem rgba(0, 0, 0, 0.22);
}

.ozac-solution-block__cta--banner:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

@media (max-width: 520px) {
    .ozac-solution-block__cta--banner {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

    .ozac-solution-block__cta-text {
        align-items: center;
        flex: 1 1 9rem;
    }

    .ozac-solution-block__cta-wave {
        background-size: 100% 100%;
        height: 0.3rem;
        margin-top: 0.85rem;
    }

    .ozac-solution-block__cta-icon {
        margin-inline: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .ozac-solution-block__cta-icon {
        transition: none;
    }

    .ozac-solution-block__cta--banner:hover .ozac-solution-block__cta-icon {
        transform: none;
    }
}

.ozac-solution-compare__title {
    margin: 0 0 1.6rem;
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.4;
    color: var(--ozac-color-primary);
}

.ozac-solution-table-scroll {
    overflow-x: hidden;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    /* border: 1px solid #c5ccd6; */
    /* border-radius: 1.2rem; */
    background-color: #fff;
    padding-bottom: 6rem;
}

.ozac-solution-compare-table {
    min-width: 0;
    width: 100%;
    border-collapse: collapse;
    /* table-layout: fixed; */
    border-top: 0;
    border-left: 0;
    margin-block: 4rem 0 !important;
    }

.ozac-solution-compare-table th, .ozac-solution-compare-table td {
    padding: 1.4rem 1.2rem;
    border: 1px solid #c5ccd6;
    font-size: 1.6rem;
    font-weight: 700;
    vertical-align: middle;
}

.ozac-solution-compare-table thead th {
    position: sticky;
    top: 0;
    z-index: 9;
    color: #fff;
    background-color: var(--ozac-color-primary);
    text-align: center;
    white-space: normal;
    width: auto;
}

.ozac-solution-compare-table thead th:first-child {
    width: 22%;
    min-width: 20rem;
    background: none;
    border: 0;
}

.ozac-solution-compare-table tbody th {
    position: relative;
    min-width: 20rem;
    padding: 2.5rem 1rem 1.1rem;
    text-align: left;
    color: #fff;
    font-weight: 700;
    background: linear-gradient(165deg, #2a9db0 0%, #1d6a8a 38%, #0f3d7a 100%);
}

.ozac-solution-compare-name {
    margin: 0 0 1rem;
    color: #fff;
    font-size: clamp(1.8rem, 2vw, 2rem);
    font-weight: 700;
    line-height: 1.35;
    padding-left: 1rem;
}

/* オゾン行：疑似要素で黄色の太枠（角丸） */
.ozac-solution-compare-row--ozone {
    position: relative;
    z-index: 0;
}

tr.ozac-solution-compare-row.ozac-solution-compare-row--ozone .ozac-solution-td {
    background-color: #faf7f0;
    width: 16%;
}

.ozac-solution-compare-row--ozone::after {
    content: "";
    position: absolute;
    inset: 3px;
    z-index: 8;
    border: 3px solid #f5cc00;
    border-radius: 0.8rem;
    background: transparent;
    pointer-events: none;
    box-sizing: border-box;
}

.ozac-solution-compare-row--ozone .ozac-solution-pop {
    z-index: 25;
}

.ozac-solution-td {
    text-align: center;
    color: var(--ozac-color-primary);
    background-color: #ffffff;
}

.ozac-solution-td--ability {
    text-align: left;
    vertical-align: middle;
}

.ozac-solution-ability {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ozac-solution-ability li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.2rem 0;
    line-height: 1.35;
}

.ozac-solution-ability__label {
    flex: 1 1 auto;
    font-weight: 700;
    color: var(--ozac-color-primary);
    font-size: clamp(1.6rem,2vw,1.8rem);
}

.ozac-solution-ability__mark {
    flex-shrink: 0;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    line-height: 1;
}

.ozac-solution-ability__mark--ok {
    color: var(--ozac-color-primary);
}

.ozac-solution-ability__mark--ng {
    color: #b4232c;
}

.ozac-solution-symbol {
    display: inline-block;
    font-size: clamp(1.75rem, 3.2vw, 2.35rem);
    font-weight: 700;
    line-height: 1;
}

.ozac-solution-symbol--ok {
    color: var(--ozac-color-primary);
}

.ozac-solution-symbol--ng {
    color: #b4232c;
}

.ozac-solution-td--cost .ozac-solution-cost {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    text-align: center;
}

.ozac-solution-cost__main {
    font-size: clamp(1.65rem, 3vw, 2.1rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--ozac-color-primary);
}

.ozac-solution-cost__sub {
    display: block;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.35;
    color: #4a5568;
}

.ozac-solution-compare-footnote {
    margin: -5.1rem 0 0;
    padding: 0 0.2rem;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.5;
    color: #6b7280;
}

.ozac-solution-compare-trigger {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
}

.ozac-solution-method-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0.55rem 0.8rem 0.55rem 1.2rem;
    border: none;
    border-radius: 0.8rem;
    background-color: #f1f1f1;
    color: #5195a2;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    box-shadow: none;
    transition: background-color 0.15s ease, transform 0.15s ease;
}

.ozac-solution-method-btn__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
}

.ozac-solution-method-btn__label {
    text-align: left;
}

.ozac-solution-method-btn:hover, .ozac-solution-method-btn:focus-visible {
    background-color: #eaeaea;
    transform: translateY(1px);
}

.ozac-solution-method-btn:focus-visible {
    outline: 2px solid #87c7b6;
    outline-offset: 2px;
}

@media screen and (min-width: 768px) {
    .ozac-solution-compare-trigger .ozac-solution-method-btn {
        pointer-events: none;
        cursor: default;
    }
}

.ozac-solution-pop {
    position: absolute;
    left: calc(100% + 1.8rem);
    top: -5rem;
    width: 70rem;
    padding: 1.2rem 1.4rem;
    border-radius: 0.8rem;
    background: linear-gradient(135deg, #47ad9f 0%, #5273a4 100%);
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.4;
    box-shadow: 0 1rem 2.8rem rgba(10, 25, 47, 0.22);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, visibility 0.18s ease;
    z-index: 20;
    color: #fff;
    text-align: left;
}

.ozac-solution-pop p {
    margin: 0;
    line-height: 1.5;
}

@media (hover: hover) and (pointer: fine) {
    .ozac-solution-compare-trigger:hover .ozac-solution-pop, .ozac-solution-compare-trigger:focus-within .ozac-solution-pop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

.ozac-solution-compare-trigger.is-open .ozac-solution-pop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

@media screen and (max-width: 767px) {
    .ozac-solution-pop {
        position: fixed;
        inset: 0;
        left: 0;
        top: 0;
        width: 100vw;
        height: 100dvh;
        max-width: none;
        max-height: none;
        transform: none;
        border-radius: 0;
        padding: 7.2rem 2rem 2.4rem;
        overflow: auto;
        z-index: 1000;
        overscroll-behavior: contain;
    }

    .ozac-solution-pop__close {
        position: fixed;
        top: 1.6rem;
        left: 1.6rem;
        width: 3.6rem;
        height: 3.6rem;
        border: 0;
        border-radius: 0;
        background: url("img/icon-cross.svg") no-repeat center / 2.6rem 2.6rem;
        cursor: pointer;
        z-index: 1001;
        appearance: none;
        -webkit-appearance: none;
    }

    .ozac-solution-pop__close:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }
}

.ozac-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #DCE3EB;
    border-radius: 1.2rem;
    background-color: #fff;
}

.ozac-compare-table {
    min-width: 72rem;
    width: 100%;
    border-collapse: collapse;
}

.ozac-compare-table th, .ozac-compare-table td {
    padding: 1.4rem 1.6rem;
    border-bottom: 1px solid #E7EDF4;
    text-align: left;
    vertical-align: top;
}

.ozac-compare-table thead th {
    color: #fff;
    background-color: var(--ozac-color-primary);
    font-weight: 700;
}

.ozac-compare-table tbody th {
    width: 30%;
    background-color: #F4F8FB;
    font-weight: 700;
}

.ozac-section--contact {
    margin-bottom: 8rem;
    padding: 3.2rem 1.6rem;
    border: none;
    border-radius: 0;
    background: transparent;
}

/* 取材協力カード＋ピルCTA（コンタクト） */
.ozac-contact-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 38%);
    gap: clamp(2rem, 4vw, 3.6rem);
    align-items: center;
    margin-bottom: clamp(2.4rem, 4vw, 3.2rem);
    padding: clamp(2rem, 4vw, 3.2rem) clamp(1.8rem, 3.5vw, 3.2rem);
    border-radius: 0 1.6rem 1.6rem 0;
    background-color: #fafafa;
    position: relative;
}

.ozac-contact-card::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    left: calc(50% - 50vw);
    background: #fafafa;
    z-index: -1;
}

.ozac-contact-card__top {
    display: flex;
    align-items: center;
    gap: 2.85rem;
    margin-bottom: 1.2rem;
}

.ozac-contact-card__wave-lead {
    flex: 1 1 auto;
    min-width: 2.4rem;
    height: 0.6rem;
    background-image: url("img/wave-divider-navy-wide.svg");
    background-repeat: repeat-x;
    background-size: 100%;
    background-position: left center;
    opacity: 0.95;
}

.ozac-contact-card__kicker {
    display: inline-flex;
    margin: 0 0 0.9rem;
    padding: 1.3rem 1rem;
    border-radius: 0.8rem;
    background-color: var(--ozac-color-primary);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    z-index: 1;
    position: relative;
}

.ozac-contact-card__kicker::before {
    content: "";
    position: absolute;
    top: 3px;
    bottom: 0;
    right: 100%;
    left: calc(50% - 25vw);
    z-index: -1;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    width: 20vw;
    height: 3rem;
    margin: auto;
}

.ozac-contact-card__title {
    margin: 0 0 1.4rem;
    color: #001f60;
    font-size: clamp(3rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.ozac-contact-card__body {
    margin: 0 0 1rem;
    color: #001f60;
    /* font-size: 1.45rem; */
    font-weight: 500;
    line-height: 1.85;
}

.ozac-contact-card__body:last-of-type {
    margin-bottom: 0;
}

.ozac-contact-card__media {
    margin: 0;
    border-radius: 0.8rem;
    overflow: hidden;
    box-shadow: 0 0.8rem 2.4rem rgba(10, 25, 47, 0.12);
}

.ozac-contact-card__media img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .ozac-contact-card {
        grid-template-columns: 1fr;
    }

    .ozac-contact-card__media {
        order: -1;
        max-width: 32rem;
        margin-inline: auto; }
}

.ozac-section--contact .ozac-contact-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(3rem, 3vw, 4rem);
    margin: 2rem 10rem;
}

/* ボタン共通（contact + 下層テンプレ） */
.ozac-contact-actions .btn-internal, .ozac-contact-actions .btn-web, #low-page .btn-internal, #low-page .btn-web, #low-page .btn-tel {
    /* margin: 0 0 1.2rem; */
}

.ozac-contact-actions .btn-internal a, .ozac-contact-actions .btn-web a, #low-page .btn-internal a, #low-page .btn-web a, #low-page .btn-tel a {
    /* display: flex; */
    /* align-items: center; */
    /* justify-content: space-between; */
    /* gap: 1rem; */
    width: 48rem;
    min-height: 5.4rem;
    padding: 1.8rem 5rem;
    border-radius: 999px;
    text-decoration: none;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.01em;
    box-shadow: 0 0.6rem 1.6rem rgba(10, 25, 47, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.ozac-contact-actions .btn-internal a, #low-page .btn-internal a {
    color: #fff;
    background: linear-gradient(95deg, #5f9ea0 0%, #a2d2c2 100%);
}

.ozac-contact-actions .btn-web a, #low-page .btn-web a {
    color: #ffd700;
    background: linear-gradient(95deg, #060e6d 0%, #1d6a8a 100%);
}

#low-page .btn-tel a {
    color: #fff;
    background: linear-gradient(95deg, #1f8c67 0%, #3eb487 100%);
}

.ozac-contact-actions .btn-internal a::after, .ozac-contact-actions .btn-web a::after, #low-page .btn-internal a::after, #low-page .btn-web a::after, #low-page .btn-tel a::after {
    content: "";
    flex-shrink: 0;
    width: 5rem;
    height: 1.4rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 7rem auto;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

.ozac-contact-actions .btn-internal a::after, #low-page .btn-internal a::after, #low-page .btn-tel a::after {
    background-image: url("img/wave-divider-white-small.svg");
}

.ozac-contact-actions .btn-web a::after, #low-page .btn-web a::after {
    background-image: url("img/wave-divider-yellow-small.svg");
}

.ozac-contact-actions .btn-internal a:hover, .ozac-contact-actions .btn-web a:hover, #low-page .btn-internal a:hover, #low-page .btn-web a:hover, #low-page .btn-tel a:hover {
    opacity: 0.96;
    box-shadow: 0 0.85rem 2rem rgba(10, 25, 47, 0.16);
    transform: translate(0.8rem, 0.8rem);
}

.ozac-contact-actions .btn-internal a:focus-visible, .ozac-contact-actions .btn-web a:focus-visible, #low-page .btn-internal a:focus-visible, #low-page .btn-web a:focus-visible, #low-page .btn-tel a:focus-visible {
    outline: 3px solid #ffd700;
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .ozac-contact-actions .btn-internal a, .ozac-contact-actions .btn-web a, #low-page .btn-internal a, #low-page .btn-web a, #low-page .btn-tel a {
        transition: none;
    }

    .ozac-contact-actions .btn-internal a:hover, .ozac-contact-actions .btn-web a:hover, #low-page .btn-internal a:hover, #low-page .btn-web a:hover, #low-page .btn-tel a:hover {
        transform: none;
    }
}

/* オーザック：排水処理の測定結果（アコーディオン＋表） */
.ozac-measure {
    margin-bottom: 6rem;
    padding-bottom: 1.6rem;
    /* max-width: 120rem; */
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 1.6rem;
    border: 1px solid #060E6D;
}

.ozac-measure__head {
    margin: 0 0 2.4rem;
    /* max-width: 92rem; */
    color: var(--ozac-color-primary);
    padding: 10rem 10rem 8rem;
}

.ozac-measure__kicker {
    margin: 0;
    font-size: clamp(1.8rem, 2.1vw, 1.7rem);
    font-weight: 700;
    line-height: 1.65;
    letter-spacing: 0.02em;
}

.ozac-measure__heading {
    margin: 0.2rem 0 0;
    font-size: clamp(2.5rem, 2.3vw, 3rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.ozac-measure__wave {
    margin: 1.1rem 0 1.8rem;
    width: min(100%, 42rem);
    height: 0.5rem;
    background-image: url("img/wave-divider-navy-wide.svg");
    background-repeat: no-repeat;
    background-size: 180% 100%;
}

.ozac-measure__brand {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 1rem;
    margin: 0 0 1.8rem;
}

.ozac-measure__brand-main {
    font-size: clamp(4.2rem, 6.2vw, 5.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
}

.ozac-measure__brand-sub {
    font-size: clamp(2rem, 2.9vw, 2.9rem);
    font-weight: 700;
    line-height: 1.35;
}

.ozac-measure__brand-note {
    font-size: clamp(1.45rem, 2vw, 1.9rem);
    font-weight: 600;
    line-height: 1.5;
    color: #3d4a63;
}

.ozac-measure__intro {
    margin: 0;
    max-width: 96rem;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: -0.01em;
}

.ozac-measure-part--legacy {
    margin: 0 0 2.8rem;
    padding: 1rem 10rem;
}

.ozac-measure-part__title {
    margin: 0 0 4rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ozac-color-primary);
    color: var(--ozac-color-primary);
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.ozac-measure-part__visual {
    margin: 0 0 1.8rem;
}

.ozac-measure-part__visual-placeholder {
    border-radius: 1.8rem;
    overflow: hidden;
}

.ozac-measure-part__notes {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

    #low-page .ozac-measure-part__notes {
        margin-bottom: 10rem;
    }


.ozac-measure-note {
    border-radius: 0.8rem;
    border: 1px solid #8f93ab;
    background-color: #fff;
    color: var(--ozac-color-primary);
}

.ozac-measure-note--issues {
    padding: 1.4rem 1.8rem 1.35rem;
}

.ozac-measure-note--explain {
    padding: 1.4rem 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.ozac-measure-note--explain .ozac-measure-note__title {
    border-bottom: 1px solid var(--ozac-color-primary);
    padding-bottom: 1rem;
    display: block;
    color: var(--ozac-color-primary);
}

.ozac-measure-note__title {
    margin: 0;
    display: inline-flex;
    align-items: flex-end;
    gap: 0.55rem;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.45;
    color: #333;
}

.ozac-measure-note__title-icon {
    flex-shrink: 0;
    width: 3.3rem;
    height: auto;
}

.ozac-measure-note__list {
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}

.ozac-measure-note__list li {
    position: relative;
    margin: 0;
    padding: 0.35rem 0 0.35rem 2.1rem;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.5;
}

.ozac-measure-note__list li::before {
    content: "";
    position: absolute;
    top: 1.1rem;
    left: 0.5rem;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 50%;
    background-color: #87d5c7;
}

.ozac-measure-note__text {
    margin: 1rem 0 0;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.75;
}

.ozac-measure-part__copy {
    font-size: clamp(2rem, 2.5vw, 3rem);
    font-weight: bold;
    text-align: center;
    color: var(--ozac-color-primary);
    margin-bottom: 4rem;
    position: relative;
    line-height: 1.5;
}

.ozac-measure-part__copy .sp_br {
    display:block;
}

.ozac-measure-part__copy::before {
    content: "";
    position: absolute;
    z-index: -1;
    background: url(img/wave-divider-navy-medium.svg) no-repeat right / cover;
    margin: auto;
    top: 5px;
    bottom: 0;
    left: 3rem;
    width: 34rem;
    height: 0.7rem;
}

.ozac-measure-part__copy:after {
    content: "";
    position: absolute;
    z-index: -1;
    background: url(img/wave-divider-navy-medium.svg) no-repeat right / cover;
    margin: auto;
    top: 5px;
    bottom: 0;
    right: 3rem;
    width: 34rem;
    height: 0.7rem;
}


.ozac-measure-flow {
    margin: 2.6rem 0 3rem;
}

.ozac-measure-flow__stage {
}

.ozac-measure-flow__lane {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
    align-items: start;
    align-content: start;
    padding: 0 10rem;
}

.ozac-measure-flow__terminal {
    display: flex;
    align-items: center;
    min-height: 6.4rem;
    padding: 1rem 2rem;
    border-radius: 0 0.8rem 0.8rem 0;
    color: #fff;
    font-size: clamp(2rem, 3vw, 2.9rem);
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    width: 13rem;
    display: none;
}

.ozac-measure-flow__terminal--start {
    background-color: #040f84;
}

.ozac-measure-flow__terminal--end {
    background: linear-gradient(135deg, #76d2cb 0%, #5293a4 100%);
    border-radius: 0.8rem 0 0 0.8rem;
}

.ozac-measure-flow__steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

.ozac-measure-flow-step {
    position: relative;
}

.ozac-measure-flow-step__dot {
    position: absolute;
    top: -5rem;
    left: 1.85rem;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: #5195A2;
}

.ozac-measure-flow-step__dot::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    width: 1px;
    height: 4rem;
    border-left: 4px dotted #5195A2;
}

.ozac-measure-flow-step__card {
    min-height: 100%;
    border-radius: 0.8rem;
    background-color: #f2f3f7;
    padding: 2.5rem 2.5rem 2.5rem;
}

.ozac-measure-flow-step__sp-image {
    display: none;
}

.ozac-measure-flow-step__title {
    margin: 0;
    color: #040f84;
    font-size: clamp(2.2rem, 2.9vw, 2.8rem);
    font-weight: 700;
    line-height: 1.35;
}

.ozac-measure-flow-step__lead {
    margin: 0.45rem 0 1.2rem;
    color: #040f84;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.55;
}

.ozac-measure-flow-step__text {
    margin: 0;
    color: #0a1553;
    font-size: clamp(1.3rem, 1.75vw, 1.6rem);
    font-weight: 500;
    line-height: 1.6;
}

.ozac-measure-install {
    margin: 10rem 10rem 7rem;
    padding: clamp(2rem, 3.3vw, 3rem);
    border-radius: 1.6rem;
    background-color: #f2f3f7;
    /* padding: 1rem 10rem; */
}

.ozac-measure-install__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.6rem;
}

.ozac-measure-install__tag {
    display: inline-flex;
    align-items: center;
    min-height: 5.2rem;
    padding: 0.8rem 3.8rem 0.8rem 3rem;
    border-radius: 0 0.8rem 0.8rem 0;
    background: linear-gradient(90deg, #1b327f 0%, #3f8f9a 100%);
    color: #fff;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.2;
    margin-left: -2.8rem;
}

.ozac-measure-install__title {
    margin: 2rem 0 1rem;
    color: #0a1576;
    font-size: clamp(2rem, 2.9vw, 2.8rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.ozac-measure-install__line {
    height: 1px;
    margin: 0 0 1.5rem;
    background-color: #8d94c6;
}

.ozac-measure-install__days {
    margin: 0 0 0.5rem;
    color: #000;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.5;
}

.ozac-measure-install__steps {
    margin: 0 0 1.4rem;
    color: #000;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.65;
}

.ozac-measure-install__desc, .ozac-measure-install__foot {
    margin: 0;
    color: #111;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.7;
}

.ozac-measure-install__media-placeholder {
    width: 100%;
    min-height: clamp(35rem, 40vw, 45rem);
    border-radius: 0.8rem;
    background-color: #787878;
    overflow: hidden;
}

.ozac-measure-install__foot {
    margin-top: 1.4rem;
}

.ozac-measure-mechanism {
    margin: 2.8rem 0 3.2rem;
    padding: 1rem 10rem;
}

.ozac-measure-part {
    padding: 0 10rem 5rem;
}

.ozac-measure-mechanism__title {
    margin: 4rem 0 4rem;
    padding-top: 0.9rem;
    border-top: 2px solid #adb1bf;
    color: var(--ozac-color-primary);
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.ozac-measure-mechanism__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.2rem;
}

.ozac-measure-mechanism__item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
    align-items: start;
}

.ozac-measure-mechanism__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.3rem;
    height: 4.5rem;
    padding: 1.2rem 0.7rem;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, #66c9bd 0%, #4f95ad 100%);
    color: #fff;
    font-size: clamp(2rem, 2.6vw, 2.6rem);
    font-weight: 700;
    line-height: 1;
    flex-direction: row;
    width: 4.5rem;
}

.ozac-measure-mechanism__head {
    margin: 0.8rem 0 1.5rem;
    color: var(--ozac-color-primary);
    font-size: clamp(1.8rem, 1.8vw, 2rem);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.01em;
}

.ozac-measure-mechanism__text {
    margin: 0;
    color: #111;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.95;
}

.ozac-measure-mechanism__placeholder {
    width: 100%;
    border-radius: 1.6rem;
    border: 1px solid #d8dce8;
    padding: 3rem;
}

.ozac-measure-part__visual-image, .ozac-measure-flow__stage-image, .ozac-measure-install__media-image, .ozac-measure-mechanism__image, .ozac-example-case__image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

@media screen and (max-width: 767px) {
    .ozac-measure-flow__stage {
        display: none;
    }

    .ozac-measure-flow-step__sp-image {
        display: block;
        width: 84%;
        height: auto;
        margin: 0 0 1.2rem;
        border-radius: 0.8rem;
        object-fit: cover;
    }
}

.ozac-measure-accordions {
    display: flex;
    flex-direction: column;
    gap: 1.85rem;
}

.ozac-measure-item {
    margin: 0;
    border-radius: 0.75rem;
    overflow: hidden;
    background-color: #fff;
    /* box-shadow: 0 0.2rem 0.8rem rgba(10, 25, 47, 0.06); */
}

.ozac-measure-item__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.85rem 2.5rem;
    list-style: none;
    cursor: pointer;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--ozac-color-primary);
    background-color: #d8dce8;
    transition: background-color 0.15s ease;
}

.ozac-measure-item__summary::-webkit-details-marker {
    display: none;
}

.ozac-measure-item__summary::marker {
    content: "";
}

.ozac-measure-item__summary:hover {
    background-color: #cdd2e2;
}

.ozac-measure-item__label {
    flex: 1 1 auto;
    text-align: left;
    line-height: 1.4;
}

.ozac-measure-item__chev {
    flex-shrink: 0;
    width: 0.95rem;
    height: 0.95rem;
    margin-top: -0.2rem;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.ozac-measure-item[open] .ozac-measure-item__chev {
    margin-top: 0.15rem;
    transform: rotate(-135deg);
}

.ozac-measure-item__panel {
    padding: 1.4rem 1.4rem 1.6rem;
    background-color: #f2f3f7;
    /* border-top: 1px solid #c5ccd6; */
}

.ozac-measure-item__note {
    margin: 0;
    color: var(--ozac-color-text);
    /* font-size: 1.4rem; */
    font-weight: 500;
    line-height: 1.85;
}

.ozac-measure-table-wrap {
    /* overflow-x: auto; */
    background-color: #fff;
}

.ozac-measure-table {
    width: 100%;
    /* min-width: 36rem; */
    border-collapse: collapse;
    font-size: 1.6rem;
}

.ozac-measure-table th, .ozac-measure-table td {
    padding: 0.85rem 1rem;
    border: 1px solid #d0d5dd;
    text-align: center;
    vertical-align: middle;
    /* font-weight: 600; */
    color: var(--ozac-color-primary);
}

.ozac-measure-table thead th {
    background-color: #e8eaf0;
    font-weight: 700;
}

.ozac-measure-table thead th:first-child {
    width: 15%;
}


.ozac-measure-table tbody th {
    text-align: left;
    font-weight: 700;
    background-color: #f6f7fa;
    width: 15%;
}

.ozac-next-contact-wrap {
    margin: 10rem auto 10rem;
    max-width: none;
    width: 93vw;
}

.ozac-next-contact {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    padding: 3rem 1.5rem;
    background-image: linear-gradient(135deg, rgba(236, 249, 255, 0.1) 0%, rgba(176, 231, 247, 0.9) 100%), url("img/mv-bg-after.jpg");
    background-size: cover;
    background-position: center;
}

.ozac-next-contact__media {
    margin: 0 0 1.8rem;
}

.ozac-next-contact__media-placeholder {
    width: 100%;
    min-height: clamp(18rem, 34vw, 29rem);
    border-radius: 0.8rem;
    background-color: #7a7a7a;
}

.ozac-next-contact__panel {
    border-radius: 1.6rem;
    padding: clamp(1.6rem, 3vw, 2.8rem);
    color: #fff;
    background: linear-gradient(120deg, rgba(10, 33, 99, 0.96) 0%, rgba(13, 58, 124, 0.92) 58%, rgba(26, 122, 150, 0.9) 100%);
    box-shadow: 0 1.1rem 3rem rgba(8, 27, 66, 0.25);
}

.ozac-next-contact__main {
    display: grid;
    gap: clamp(1.6rem, 2.5vw, 2.8rem);
}

.ozac-next-contact__main .caption {
    margin-top: 2rem;
    color: #b8b8b8;
    text-align: right;

}

.ozac-next-contact__left-media-frame {
    border-radius: 0.8rem;
    overflow: hidden;
    background: #7a7a7a;
}

.ozac-next-contact__left-media-image {
    display: block;
    width: 100%;
    height: auto;
}

.ozac-media__source, .ozac-measure-install__source, .ozac-measure-item__note {
    font-size: 1rem;
    color: #7c8389;
    margin-top: 0.5rem;
    line-height: 1.3;
    margin-bottom: 1rem;
}

@media screen and (min-width: 900px) {
    .ozac-next-contact__main {
        grid-template-columns: minmax(24rem, 38%) minmax(0, 1fr);
        align-items: start;
    }
}

.ozac-next-contact__title {
    margin: 0 0 2.5rem;
    color: #fff;
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.ozac-next-contact__text {
    margin: 0 0 1.2rem;
    color: rgba(255, 255, 255, 0.94);
    font-size: clamp(1.6rem, 1.82vw, 1.8rem);
    font-weight: 500;
    line-height: 1.9;
}

.ozac-next-contact__note {
    margin: 3rem 0 3rem;
    padding-left: 2rem;
    border-left: 3px solid rgba(255, 255, 255, 0.9);
}

.ozac-next-contact__note-title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.8rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.55;
}

.ozac-next-contact__note-text {
    margin: 1.5rem 0 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(1.6rem, 1.75vw, 1.6rem);
    font-weight: 500;
    line-height: 1.85;
}

.ozac-next-contact__cta {
    width: min(100%, 48rem);
    min-height: 5.4rem;
    margin: 2rem 0 0;
    padding: 1.8rem 0 1.8rem 6rem;
    border-radius: 999px;
    background: #fff;
    color: #060e6d;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    box-shadow: 0 0.6rem 1.6rem rgba(10, 25, 47, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.ozac-next-contact__cta-label {
    text-align: left;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.45;
}

.ozac-next-contact__cta-wave {
    flex-shrink: 0;
    width: 6.6rem;
    height: 1.4rem;
    background-image: url("img/wave-divider-navy-small.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.ozac-next-contact__cta:hover {
    opacity: 0.96;
    box-shadow: 0 0.85rem 2rem rgba(10, 25, 47, 0.16);
    transform: translate(0.8rem, 0.8rem);
}

.ozac-example {
    margin: 10rem auto 10rem;
}

.ozac-example__inner {
    padding: clamp(1.8rem, 3vw, 2.8rem);
    border-radius: 1.8rem;
    /* background: #fff; */
}

.ozac-example__tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    width: min(100%, 12.8rem);
    height: 4.3rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: url("img/example.svg") no-repeat center / contain;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
    position: absolute;
}

.ozac-example__tag::after {
    content: "";
    position: absolute;
    top: 40px;
    bottom: 0;
    right: 100%;
    left: calc(50% - 51vw);
    z-index: 0;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    /* content: ""; */
    width: 20vw;
    height: 4rem;
}

.ozac-example__title {
    margin: 0 0 2.4rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.ozac-example__title::before {
    content: "";
    display: block;
    width: min(100%, 12.8rem);
    height: 4.3rem;
    margin: 0 0 0.9rem;
    background: url("img/example.svg") no-repeat center / contain;
    z-index: 1;
    position: relative;
}

.ozac-example__title::after {
    content: "";
    position: absolute;
    z-index: 0;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    height: 4rem;
    top: 28px;
    bottom: 0;
    right: 100%;
    left: calc(10% - 28vw);
    width: 25vw;
}

.ozac-example-case {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.3rem;
    margin: 0 0 2rem;
}

.ozac-example-case__name {
    margin: 0 0 4rem;
    padding: 1.5rem 1.2rem;
    border: 1px solid #9ac7cc;
    border-radius: 0.8rem 0 0 0.8rem;
    color: #3f8c98;
    font-size: clamp(2.2rem, 2.7vw, 2.9rem);
    font-weight: 700;
    line-height: 1.2;
    border-right: 0;
}

.ozac-example-case__text {
    margin-block: 2rem; }

.ozac-example-case__heading {
    margin: 0 0 2rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.4;
    padding: 0 3rem 0 1.5rem;
}

.ozac-example-case__body {
    margin: 0 0 0.9rem;
    color: #111;
    font-size: clamp(1.6rem, 1.75vw, 1.65rem);
    font-weight: 500;
    line-height: 1.9;
    padding: 0 3rem 0 1.5rem;
}

.ozac-example-case__media {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ozac-example-case__placeholder {
    width: 100%;
    min-height: clamp(21rem, 32vw, 30rem);
    border-radius: 1rem;
    background-color: #7a7a7a;
}

.ozac-example-case__chip {
    min-height: 5rem;
    border-radius: 1rem;
    padding: 0.85rem 1.4rem;
    background-color: #afafc5;
    color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: clamp(1.3rem, 1.7vw, 1.55rem);
    font-weight: 700;
    line-height: 1.45;
}

.ozac-example-case__chip-icon, .ozac-example__chip-icon {
    flex-shrink: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    background-color: rgba(255, 255, 255, 0.45);
}

.ozac-example__chips {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.ozac-example__chips .btn-internal {
    width: 100%;
    max-width: none;
    margin: 0;
}

.ozac-example__chips .btn-internal::after {
    content: none;
}

.ozac-example__chips .btn-internal a {
    min-height: 5rem;
    border-radius: 1.6rem;
    border: 1px solid var(--ozac-color-primary);
    padding: 1.5rem 4rem;
    text-decoration: none;
    color: var(--ozac-color-primary);
    align-items: center;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.45;
    background-color: rgba(255, 255, 255, 0.66);
    transform: translate(0, 0);
    transition: transform 0.3s;
}

.ozac-example__chips .btn-internal:hover a {
    transform: translate(0.8rem, 0.8rem);
}

.ozac-example__chips .btn-internal a::after {
    content: "";
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    background: url("img/arrow-01-right.svg") no-repeat center / contain;
    position: absolute;
    right: 2rem;
    top: 0;
    bottom: 0;
    margin: auto;
}

.ozac-example__chip {
    min-height: 5rem;
    border-radius: 1.2rem;
    border: 1px solid #9ea5ba;
    padding: 0.9rem 1.4rem;
    text-decoration: none;
    color: var(--ozac-color-primary);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.45;
    background-color: rgba(255, 255, 255, 0.66);
}

.ozac-example__chip-icon {
    background-color: var(--ozac-color-primary);
}

.ozac-risk {
    margin: 10rem auto 15rem;
}

.ozac-risk__inner {
    padding: clamp(1.8rem, 3vw, 2.8rem);
}

.ozac-risk__tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    width: min(100%, 12.7rem);
    height: 4.3rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: url("img/risk.svg") no-repeat center / contain;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
}

.ozac-risk__title {
    margin: 0 0 8rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.ozac-risk__title::before {
    content: "";
    display: block;
    width: min(100%, 12.7rem);
    height: 4.3rem;
    margin: 0 0 0.9rem;
    background: url("img/risk.svg") no-repeat center / contain;
    z-index: 1;
    position: relative;
}

.ozac-risk__title::after {
    content: "";
    position: absolute;
    top: 25px;
    bottom: 0;
    right: 100%;
    left: calc(10% - 28vw);
    width: 25vw;
    z-index: 0;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    height: 4rem;
}

.ozac-risk__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
}

.ozac-risk-card {
    border-radius: 1.6rem;
    padding: clamp(2rem, 2.2vw, 3rem) clamp(2rem, 2vw, 3rem);
    background-color: #fafafa;
    border: 1px solid #ebebeb;
}

.ozac-risk-card__title {
    margin: 0 0 1.5rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.01em;
}

.ozac-risk-card__text {
    margin: 0;
    color: #111;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.9;
}

.ozac-assignment-next {
    margin: 10rem auto 10rem;
}

.ozac-assignment-next__inner {
    /* padding: clamp(1.8rem, 3vw, 2.8rem); */
}

.ozac-assignment-next__tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    width: min(100%, 19.3rem);
    height: 4.3rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: url("img/assignment.svg") no-repeat center / contain;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
}

.ozac-assignment-next__head {
    margin: 0 0 8rem;
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1.2rem;
    text-decoration: none;
}

.ozac-basic__title-side:hover, .ozac-assignment-next__head:hover {
    opacity: 0.7;
}

.ozac-assignment-next__head::before {
    content: "";
    display: block;
    width: auto;
    height: 4.3rem;
    margin: 0 0 0.9rem;
    background: url("img/assignment.svg") no-repeat left/ contain;
    flex-basis: 100%;
    z-index: 1;
    position: relative;
}

.ozac-assignment-next__head::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    left: calc(10% - 28vw);
    width: 25vw;
    z-index: 0;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    height: 4rem;
}

.ozac-assignment-next__title {
    margin: 0;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
    position: relative;
}

.ozac-assignment-next__arrow {
    flex-shrink: 0;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    background: var(--ozac-color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    line-height: 1;
    transform: translateY(-0.4rem);
}

.ozac-assignment-next__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

.ozac-assignment-next-card {
    position: relative;
    border: 1px solid #6f7596;
    border-radius: 1.6rem;
    padding: clamp(2rem, 2.2vw, 3rem);
    background-color: rgb(255 255 255 / 0.4);
    color: inherit;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.ozac-assignment-next-card:hover, .ozac-assignment-next-card:focus-visible {
    transform: translate(0.8rem, 0.8rem);
    background-color: rgba(255, 255, 255, 0.72);
    box-shadow: 0 0.85rem 2rem rgba(10, 25, 47, 0.12);
}

.ozac-assignment-next-card:focus-visible {
    outline: 2px solid #060e6d;
    outline-offset: 2px;
}

.ozac-assignment-next-card__title {
    margin: 0 0 1rem;
    padding-right: 2.6rem;
    color: var(--ozac-color-primary);
    font-size: clamp(1.8rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.45;
}

.ozac-assignment-next-card__text {
    margin: 0;
    color: #111;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.9;
}

.ozac-assignment-next-card__icon {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--ozac-color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
}

.ozac-basic {
    margin: 10rem auto 10rem;
}

.ozac-basic__inner {
    border-radius: 0 1.6rem 1.6rem 0;
    background-color: #f2f3f7;
    padding: 10rem 5rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.8rem;
}

.ozac-basic__title-side {
    text-decoration: none;
}

.ozac-basic__tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    width: min(100%, 22.9rem);
    height: 4.3rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: url("img/basic.svg") no-repeat center / contain;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
}

.ozac-basic__title {
    margin: 0 0 2rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.ozac-basic__title::before {
    content: "";
    display: block;
    width: min(100%, 22.9rem);
    height: 4.3rem;
    margin: 0 0 0.9rem;
    background: url("img/basic.svg") no-repeat center / contain;
    z-index: 1;
    position: relative;
}

.ozac-basic__title::after {
    content: "";
    position: absolute;
    top: 10rem;
    bottom: 0;
    right: 100%;
    left: calc(10% - 28vw);
    width: 26vw;
    z-index: 0;
    background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
    height: 4rem;
}

.ozac-basic__links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.ozac-basic__link {
    border: 1px solid var(--ozac-color-primary);
    border-radius: 1.6rem;
    min-height: 5rem;
    padding: 1.5rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background-color: rgba(255, 255, 255, 0.8);
    color: var(--ozac-color-primary);
}

.ozac-basic__link:hover {
    opacity: .5;
}

.ozac-basic__link-text {
    margin: 0;
    font-size: clamp(1.8rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.5;
}

.ozac-basic__link-icon {
    flex-shrink: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: var(--ozac-color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
}

.ozac-ministry {
    margin: 10rem auto 10rem;
}

.ozac-ministry__inner {
    padding: clamp(1.5rem, 3vw, 2.8rem);
}

.ozac-ministry__title {
    margin: 0 0 8rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.ozac-ministry__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.6rem;
}

.ozac-ministry-card__main {
    border-radius: 1.6rem;
    padding: 3rem;
    background-color: #f2f3f7;
    border: 1px solid #ebebeb;
}

.ozac-ministry-card__title {
    margin: 0 0 2rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.01em;
}

.ozac-ministry-card__meta {
    font-size: clamp(1.15rem, 1.5vw, 1.35rem);
    font-weight: 500;
    color: #6e7490;
}

.ozac-ministry-card__text {
    margin: 0;
    color: #111;
    font-size: clamp(1.6rem,2vw,1.8rem);
    font-weight: 500;
    line-height: 1.9;
}

.ozac-ministry-card__ref {
    margin-top: 0.8rem;
    border: 1px solid #c7cada;
    border-radius: 0.8rem;
    padding: 0.75rem 1rem;
    /* background-color: rgba(255, 255, 255, 0.8); */
}

.ozac-ministry-card__ref-label {
    margin: 0;
    color: #9ba0b6;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.3;
}

.ozac-ministry-card__ref-url {
    margin: 0.2rem 0 0;
    color: #8790ab;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.5;
    word-break: break-all;
}

.ozac-media {
    margin: 20rem auto 10rem;
    position: relative;
}

.ozac-media__panel {
    border-radius: 0 1.6rem 1.6rem 0;
    background-color: #f2f3f7;
    padding: 3rem 3rem 4rem;
    /* box-shadow: 0 1rem 2.8rem rgba(6, 14, 109, 0.15); */
    position: relative;
}

.ozac-media__panel::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    left: calc(50% - 50vw);
    background: #f2f3f7;
    z-index: -1;
}

.ozac-media__head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-bottom: 1.1rem;
}

.ozac-media__wave {
    margin: 0 0 0.6rem;
    width: min(100%, 22rem);
    height: 0.8rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 16' preserveAspectRatio='none'%3E%3Cpath d='M0 8 Q5 2 10 8 T20 8 T30 8 T40 8 T50 8 T60 8 T70 8 T80 8 T90 8 T100 8 T110 8 T120 8 T130 8 T140 8 T150 8 T160 8 T170 8 T180 8 T190 8 T200 8 T210 8 T220 8' fill='none' stroke='%23b7becd' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.ozac-media__tag {
    display: inline-flex;
    margin: 0 0 0.9rem;
    padding: 1.3rem 1rem;
    border-radius: 0.8rem;
    background-color: var(--ozac-color-primary);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    z-index: 1;
    position: relative;
}

.ozac-media__tag::before {
    content: "";
    position: absolute;
    z-index: -1;
    background: url(img/wave-divider-navy-medium.svg) no-repeat right / contain;
    margin: auto;
    top: 5px;
    bottom: 0;
    right: 100%;
    left: calc(10% - 25vw);
    width: 27vw;
}

.ozac-media__tag::after {
    content: "Sponsored by";
    position: absolute;
    right: -120px;
    color: var(--ozac-color-primary);
    bottom: 1rem;
}

.ozac-media__title {
    margin: 0 0 3rem;
    color: var(--ozac-color-primary);
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.35;
}

.ozac-media__image-wrap {
    overflow: hidden;
    position: absolute;
    top: -12rem;
    right: -16rem;
}

.ozac-media__image {
    width: 75%;
    height: auto;
    display: block;
    object-fit: cover;
}

.ozac-media__text {
    margin: 0 0 0.8rem;
    color: #0f1f5e;
    font-size: clamp(1.6rem, 1.95vw, 1.8rem);
    font-weight: 700;
    line-height: 1.85;
}

.ozac-media__actions, .ozac-section--contact .ozac-contact-actions {
    display: grid;
    margin: 2rem 10rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
}

.ozac-media__actions .btn-internal a, .ozac-media__actions .btn-web a {
    display: block;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 48rem;
    min-height: 5.4rem;
    padding: 1.8rem 6rem;
    border-radius: 999px;
    text-decoration: none;
    font-size: clamp(1.8rem, 1.8vw, 1.8rem);
    font-weight: 700;
    line-height: 1.45;
    box-shadow: 0 0.6rem 1.6rem rgba(10, 25, 47, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.ozac-media__actions .btn-internal a {
    color: #060e6d;
    background: #fff;
    color: #fff;
    background: linear-gradient(95deg, #5f9ea0 0%, #a2d2c2 100%);
}

.ozac-media__actions .btn-web a {
    color: #ffd700;
    background: linear-gradient(90deg, #0f2f8e 0%, #1a438f 58%, #3f8e9f 100%);
}

.ozac-media__actions .btn-internal a::after, .ozac-media__actions .btn-web a::after {
    position: absolute;
    height: 1.4rem;
    background-image: url("img/wave-divider-white-small.svg");
    content: "";
    width: 5rem;
    height: 1.4rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 7rem auto;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

.ozac-media__actions .btn-web a::after {
    background-image: url("img/wave-divider-yellow-small.svg");
}

.ozac-next-contact__panel .btn-internal {
    margin: 4rem auto 2rem;
    max-width: min(44rem, 100%);
}

.ozac-next-contact__panel .btn-internal::after {
    content: none;
}

.ozac-next-contact__panel .btn-internal a {
    color: #060e6d;
    background: #fff;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 48rem;
    min-height: 5.4rem;
    padding: 1.8rem 4.5rem;
    border-radius: 999px;
    text-decoration: none;
    font-size: clamp(1.6rem, 1.8vw, 2rem);
    font-weight: 700;
    line-height: 1.45;
    box-shadow: 0 0.6rem 1.6rem rgba(10, 25, 47, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.ozac-next-contact__panel .btn-internal a::after {
    content: "";
    flex-shrink: 0;
    width: 5rem;
    height: 1.4rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 7rem auto;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    background: url("img/wave-divider-navy-small.svg") no-repeat center / contain;
}

.ozac-about-media {
    margin: 1rem auto;
    width: 93vw;
    max-width: none;
    margin: 5px auto;
}

.ozac-about-media__inner {
    border-radius: 1.6rem;
    border: 1px solid #13298e;
    /* background: #fff; */
    padding: 5rem 3rem 2rem;
}

.ozac-about-media__inner .btn-link {
    max-width: 120rem;
    margin: auto;
}

.ozac-about-media__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
    margin: auto;
}

.ozac-about-media__wave {
    margin: 2rem 0 0.6rem;
    width: 85%;
    height: 0.4rem;
    background-image: url(img/wave-divider-navy-medium.svg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: right center;
}

.ozac-about-media__title {
    margin: 0;
    color: #13298e;
    font-size: clamp(2.5rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.35;
}

.ozac-about-media__text {
    margin: 0;
    color: #13298e;
    font-size: clamp(1.6rem, 1.75vw, 1.8rem);
    font-weight: 700;
    line-height: 1.95;
}

.ozac-about-media__link {
    margin-top: 1.2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: #1836a8;
    text-decoration: none;
    font-size: clamp(1.35rem, 1.75vw, 1.6rem);
    font-weight: 700;
}

.ozac-about-media__link-icon {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    border: 1px solid #1836a8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
}

@media screen and (min-width: 768px) {
    .ozac-measure-part__notes {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
        gap: 2.2rem;
        align-items: start;
    }

    .ozac-measure-flow__lane {
        gap: 1.4rem;
    }

    .ozac-measure-flow__terminal {
    }

    .ozac-measure-flow__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.4rem;
    }

    .ozac-measure-flow-step__dot {
    }

    .ozac-measure-flow-step:last-child .ozac-measure-flow-step__dot {
        display: none;
    }

    .ozac-measure-install__grid {
        grid-template-columns: minmax(0, 1fr) minmax(35rem, 46%);
        gap: 2.4rem;
        align-items: start;
    }

    .ozac-measure-mechanism__item {
        grid-template-columns: minmax(0, 1fr) minmax(35rem, 46%);
        gap: 2.4rem;
    }

    .ozac-next-contact {
        padding: 10rem 20rem;
        display: grid;
        /* grid-template-columns: minmax(28rem, 31%) minmax(0, 1fr); */
        gap: 2.4rem;
        align-items: start;
        border-radius: 1.2rem;
    }

    .ozac-next-contact__media-placeholder {
        min-height: clamp(25rem, 28vw, 43rem);
    }

    .ozac-next-contact__panel {
        padding: 5rem 5rem;
    }

    .ozac-next-contact__cta {
        width: min(100%, 46rem);
    }

    .ozac-example__inner {
        padding: 3rem 2.6rem 3.4rem;
    }

    .ozac-example__title {
        margin-bottom: 5rem;
    }

    .ozac-example-case {
        grid-template-columns: minmax(0, 1fr) minmax(21rem, 30%);
        gap: 0;
        margin-bottom: 2.4rem;
    }

    .ozac-example-case__media {
        padding-top: 0.2rem;
    }

    .ozac-example-case__media .btn-internal {
        max-width: none;
        margin: var(--s1) auto;
    }

    .ozac-example-case__media .btn-internal a {
        padding: var(--s2) var(--s6) var(--s2) var(--s3);
        background: #7687a7 url(img/arrow-01-wht-right.svg) no-repeat center right 2rem / auto 2rem;
        border-radius: 0.8rem;
        text-align: left;
        font-size: 1.6rem;
    }

    .ozac-example__chips {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.8rem;
    }

    .ozac-risk__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.6rem;
    }

    .ozac-assignment-next__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.6rem;
    }

    .ozac-basic__inner {
        grid-template-columns: minmax(20rem, 25%) minmax(0, 1fr);
        gap: 2.6rem;
        align-items: flex-start;
    }

    .ozac-ministry__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3rem;
    }

    .ozac-media__head {
        grid-template-columns: minmax(24rem, 37%) minmax(0, 1fr);
        gap: 2.4rem;
        align-items: start;
    }

    .ozac-media__actions, .ozac-section--contact .ozac-contact-actions {
    }

    .ozac-about-media__row {
        grid-template-columns: minmax(22rem, 35%) minmax(0, 1fr);
        gap: 2.2rem;
        align-items: start;
        max-width: 120rem;
        margin-bottom: 3rem;
    }

    .ozac-about-media__link {
        justify-self: end;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ozac-measure-item__chev {
        transition: none;
    }
}

.ozac-floating-cta {
    width: 100%;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 90;
}

@media (prefers-reduced-motion: reduce) {
    #canvas {
        opacity: 0.25;
    }
}

.ozac-floating-cta__inner {
    padding: 0.8rem 1.2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    background-color: rgba(10, 25, 47, 0.96);
}

.ozac-floating-cta__text {
    margin: 0;
    color: #fff;
    font-size: 1.3rem;
    font-weight: 700;
}

.ozac-floating-cta__btn {
    padding: 0.8rem 1.4rem;
    border-radius: 999px;
    color: #fff;
    background-color: var(--ozac-color-accent);
    font-size: 1.3rem;
    font-weight: 700;
    text-decoration: none;
}

@media screen and (min-width: 768px) {
    .ozac-mv__title {
        /* font-size: 5.2rem; */
    }

    .ozac-mv__sub-title {
        font-size: 4rem;
    }

    .ozac-mv__points {
        gap: 2.4rem;
    }

    .ozac-mv__point {
        padding: 1.8rem 2rem;
        font-size: 3.2rem;
    }

    .ozac-mv__image {
        height: 12rem;
    }

    .ozac-split-showcase__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(28rem, 38%);
        gap: 4.8rem;
        align-items: start;
    }

    .ozac-split-showcase__slot {
        min-height: 90rem;
        margin-right: calc(50% - 50vw);
    }

    .ozac-mv-follow-figure-hold {
    }

    .ozac-mv__image-wrap--split {
        border-radius: 1.6rem;
        /* box-shadow: 0 2rem 6rem rgba(10, 25, 47, 0.12); */
    }

    .ozac-mv__image-wrap--split .ozac-mv__image {
        min-height: 10rem;
        max-height: min(72vh, 25rem);
        height: auto;
    }

    .ozac-split-showcase__lead {
        font-size: 2.4rem;
    }

    .ozac-section {
        padding: 0;
    }

    .ozac-section__title {
        font-size: 3.4rem;
    }

    .ozac-assignment__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem;
    }

    .ozac-assignment__summary-row {
        flex-direction: row;
        align-items: center;
        gap: 2.4rem;
    }

    .ozac-assignment__summary-lead {
        flex: 1;
        min-width: 0;
    }

    .ozac-floating-cta__inner {
        max-width: 108rem;
        margin: 0 auto;
        border-radius: 1.2rem 1.2rem 0 0;
        padding: 1rem 1.6rem;
    }

    .ozac-floating-cta__text {
        font-size: 1.4rem;
    }

    .ozac-floating-cta__btn {
        font-size: 1.4rem;
    }
}

.onb-index01-frame {
    width: 60%;
    margin: 2.4rem auto 10rem;
    background-color: transparent;
}

.onb-index01-wrap {
    margin: 0 auto;
    border: 1px solid #060e6d;
    border-radius: 1.6rem;
    background-color: rgba(255, 255, 255, 0.96);
    position: relative;
    overflow: hidden;
}

.onb-index01-title {
    padding: 1.8rem 1.8rem 0.8rem;
    color: #060e6d;
    border-bottom: 1px solid #060e6d;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.onb-index01-title__label {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
}

.onb-index01-title__icon {
    width: 12rem;
    height: auto;
    display: block;
}

.onb-index01-title__en {
}

.onb-index01-title__ja {
    font-size: 1.4rem;
    line-height: 1;
    font-weight: 700;
}

.onb-index01-title__toggle {
    width: 5.9rem;
    height: 1.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.onb-index01-title__toggle img {
    width: 100%;
    height: auto;
    /* display: block; */
}

.onb-index01-title__toggle-close {
    display: none;
}

.onb-index01-title.is-open .onb-index01-title__toggle-open {
    display: none;
}

.onb-index01-title.is-open .onb-index01-title__toggle-close {
    display: block;
}

.onb-index01-chapter {
    padding: 1.8rem 2.4rem 2.2rem;
    font-weight: 700;
    gap: var(--s1);
}

.onb-index01-chapter-h {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.65;
    position: relative;
}

.onb-index01-chapter-h a {
    display: block;
    color: #060e6d;
    text-decoration: none;
    padding-left: 1.8rem;
}

.onb-index01-chapter-h a:hover {
    opacity: .75;
}

.onb-index01-chapter-h-two {
    margin-left: 0;
    position: relative;
}

.onb-index01-chapter-h-three {
    margin-left: var(--s4);
    position: relative;
}

.onb-index01-chapter-h-two::before, .onb-index01-chapter-h-three::before {
    position: absolute;
    left: 0;
}

.onb-index01-chapter-h-two::before {
    content: "";
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: 1px solid #060e6d;
    top: 0.8rem;
}

.onb-index01-chapter-h-three::before {
    content: "└";
}

.more-content {
    display: none;
}

.onb-index01-content {
    background-color: #fff;
}

@media screen and (max-width: 767px) {
    .onb-index01-wrap {
        border-radius: 1.4rem;
    }

    .onb-index01-title {
        padding: 1.2rem 1.4rem;
    }

    .onb-index01-title__label {
        gap: 0.8rem;
    }

    .onb-index01-title__en {
        font-size: 5.3333333333vw;
    }

    .onb-index01-title__ja {
        font-size: 3.2vw;
    }

    .onb-index01-title__toggle {
        width: 5.2rem;
    }

    .onb-index01-chapter {
        padding: 1.4rem;
    }

    .onb-index01-chapter-h {
        font-size: 3.7333333333vw;
    }
}

#ozac-solution.category-section {
}

#ozac-solution.category-section.ozac-solution-block {
    padding: 0;
    width: 100%;
    background-image: none;
}

#ozac-solution.category-section.ozac-solution-block::before {
    display: none;
}

#ozac-solution.category-section.ozac-solution-block .ozac-solution-block__panel {
    box-shadow: none;
    padding: 0;
}

.category-section.ozac-basic .ozac-basic__title::before, .category-section.ozac-basic .ozac-basic__title::after {
    display: none;
}

#ozac-solution.category-section.ozac-solution-block::after {
    display: none;
}

#ozac-solution.category-section.ozac-solution-block::before {
    display: none;
}

.icon-head02 {
    margin: 3.2rem 0 2.4rem;
    padding: 2rem 0 0 9.5rem;
    line-height: 1.45;
    font-size: clamp(2rem, 2.5vw, 2.8rem);
    font-weight: 700;
    color: #060e6d;
    border-top: 1px solid #060e6d;
    position: relative;
}

.icon-head02::before {
    content: "";
    width: 8rem;
    height: 8rem;
    background: url("img/icon-point.svg") no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -2.1rem;
    left: 0;
}

/*------------------------------------------------------------
    SP settings
*/
@media screen and (max-width: 767px) {
    .icon-head02 {
        margin: 2.4rem 0 1.8rem;
        padding: 1.8rem 0 0 7.6rem;
        font-size: 5.3333333333vw;
    }

    .icon-head02::before {
        width: 6.8rem;
        height: 6.65rem;
        top: -1.6rem;
    }
}

.icon-container {
    max-width: 1200px;
    margin: 0 auto;
}

.icon-txt-head {
    margin: 6rem 0 1.5rem;
    padding: 2rem 0 0 9.5rem;
    line-height: 1.4;
    font-size: clamp(2rem, 2.5vw, 2.8rem);
    font-weight: 700;
    color: #060e6d;
    border-top: 1px solid #060e6d;
    position: relative;
}

.icon-txt-head::before {
    content: "";
    width: 8rem;
    height: 8rem;
    background: no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -2.1rem;
    left: 0;
}

.icon-txt-head::after {
    content: "";
}

.icon-txt-head--01::before {
    background-image: url("img/icon-point-num01.svg");
}

.icon-txt-head--02::before {
    background-image: url("img/icon-point-num02.svg");
}

.icon-txt-head--03::before {
    background-image: url("img/icon-point-num03.svg");
}

.icon-txt-head--04::before {
    background-image: url("img/icon-point-num04.svg");
}

.icon-txt-head--05::before {
    background-image: url("img/icon-point-num05.svg");
}

.icon-txt-head--06::before {
    background-image: url("img/icon-point-num06.svg");
}

/*------------------------------------------------------------
    SP settings
*/
@media screen and (max-width: 767px) {
    .icon-txt-head {
        margin: 2.2rem 0 1.2rem;
        padding: 1.6rem 0 0 7.4rem;
        font-size: 5.0666666667vw;
    }

    .icon-txt-head::before {
        width: 6.8rem;
        height: 6.65rem;
        top: -1.5rem;
    }
}

/* ---------------------------------------------------------------
   category-section: ozac-basic（下層テンプレ用。TOPの .ozac-basic と干渉しない）
   --------------------------------------------------------------- */
.category-section.ozac-basic {
    margin: 10rem auto 4rem;
}

.category-section.ozac-basic .ozac-basic__inner {
    border-radius: 1.6rem;
    background-color: #fafafa;
    padding: clamp(3.8rem, 3vw, 3rem) clamp(1.8rem, 3vw, 3rem) clamp(1.8rem, 3vw, 3rem);
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.8rem;
    margin-block: 8rem 4rem;
    }

.category-section.ozac-basic .ozac-basic__title-side {
    min-width: 22rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.category-section.ozac-basic .ozac-basic__wave {
    margin: 0 0 0.6rem;
    width: min(100%, 22rem);
    height: 0.8rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 16' preserveAspectRatio='none'%3E%3Cpath d='M0 8 Q5 2 10 8 T20 8 T30 8 T40 8 T50 8 T60 8 T70 8 T80 8 T90 8 T100 8 T110 8 T120 8 T130 8 T140 8 T150 8 T160 8 T170 8 T180 8 T190 8 T200 8 T210 8 T220 8' fill='none' stroke='%23b7becd' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.category-section.ozac-basic .ozac-basic__tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    width: min(100%, 22.9rem);
    height: 4.3rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: url("img/basic.svg") no-repeat center / contain;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
}

.category-section.ozac-basic .ozac-basic__title {
    margin: 0;
    color: var(--ozac-color-primary);
    font-size: clamp(3rem, 3vw, 4rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.category-section.ozac-basic .ozac-basic__links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    width: 100%;
}

.box-about__title {
    margin-bottom: var(--s3);
    padding: 0 0 var(--s2) 0;
    border-bottom: solid 0.1rem #060e6d;
    font-size: clamp(2rem, 2vw, 2.5rem);
    font-weight: 700;
    position: relative;
    margin: 3.3rem 0 3rem;
    color: #060e6d;
}

.box-about__body p {
    margin: 1rem 0;
}

.box-about__body {
    /* padding: var(--s4) 0; */
}

.box-about .btn-link {
    margin-bottom: 0;
}

.box-about--low {
    margin-bottom: var(--s10);
    max-width: 100rem;
    margin-right: auto;
    margin-left: auto;
    box-sizing: content-box;
}

.category-section.ozac-basic .ozac-basic__link {
    border-radius: 0.8rem;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.category-section.ozac-basic .ozac-basic__link:hover, .category-section.ozac-basic .ozac-basic__link:focus-visible {
    background-color: #fff;
    border-color: var(--ozac-color-primary);
    box-shadow: 0 0.4rem 1.2rem rgba(6, 14, 109, 0.08);
    outline: none;
}

.category-section.ozac-basic .ozac-basic__link-text {
    font-size: clamp(1.8rem, 2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.5;
}

.category-section.ozac-basic .ozac-basic__link-icon {
    flex-shrink: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: var(--ozac-color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
}

@media screen and (min-width: 768px) {
    .category-section.ozac-basic .ozac-basic__inner {
        gap: 2.6rem;
        align-items: flex-start;
        display: flex;
    }
}

/* Interview + Q&A（グループ3771相当・template用） */
.category-section.ozac-interview-card {
    padding-block: clamp(2.4rem, 4vw, 4rem); position: relative;
    margin: 20rem auto;
}

.category-section.ozac-interview-card .ozac-interview-card__panel {
    display: grid;
    gap: clamp(2rem, 4vw, 3.2rem);
    align-items: start;
    max-width: 100%;
    min-width: 0;
}

.category-section.ozac-interview-card .ozac-interview-card__side {
    min-width: 0;
}

.category-section.ozac-interview-card .ozac-interview-card__photo-wrap {
    position: relative;
    max-width: 32.2rem;
    margin-bottom: 1.6rem;
}

.category-section.ozac-interview-card .ozac-interview-card__badge {
    position: absolute;
    top: -8rem;
    left: 0;
    z-index: 1;
    margin: 0;
    line-height: 0;
}

.category-section.ozac-interview-card .ozac-interview-card__badge img {
    display: block;
    width: min(100%, 14.4rem);
    height: auto;
}

.category-section.ozac-interview-card .ozac-interview-card__photo {
    border-radius: 1.6rem;
    overflow: hidden;
    background: #707070;
    aspect-ratio: 1;
}

.category-section.ozac-interview-card .ozac-interview-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.category-section.ozac-interview-card .ozac-interview-card__credentials {
    margin: 0 0 1.2rem;
    color: #070203;
    font-size: clamp(1.4rem, 1.2vw, 1.5rem);
    line-height: 1.65;
    max-width: 32.2rem;
}

.category-section.ozac-interview-card .ozac-interview-card__company {
    margin: 0 0 0.4rem;
    color: #070203;
    font-size: clamp(1.5rem, 1.6vw, 1.8rem);
    font-weight: 700;
    line-height: 1.35;
}

.category-section.ozac-interview-card .ozac-interview-card__name {
    margin: 0 0 1.2rem;
    color: #070203;
    line-height: 1.1;
}

.category-section.ozac-interview-card .ozac-interview-card__name-main {
    font-size: clamp(2rem, 2.5vw, 3rem);
    font-weight: 700;
}

.category-section.ozac-interview-card .ozac-interview-card__name-suffix {
    font-size: clamp(1.5rem, 1.6vw, 1.8rem);
    /* font-style: italic; */
    font-weight: 700;
    margin-left: 0.15em;
}

.category-section.ozac-interview-card .ozac-interview-card__wave {
    margin: 0;
    width: 26vw;
    position: absolute;
    top: -52px;
    left: -24vw;
}

.category-section.ozac-interview-card .ozac-interview-card__wave img {
    display: block;
    width: 100%;
    height: auto;
}

.category-section.ozac-interview-card .ozac-interview-card__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(2.4rem, 3vw, 3.2rem);
    background-color: #f8f8f8;
    border-radius: 2rem;
    padding: clamp(1.6rem, 3vw, 2.8rem) clamp(1.5rem, 3vw, 2.6rem);
}

.category-section.ozac-interview-card .ozac-interview-card__qa {
    margin: 0;
}

.category-section.ozac-interview-card .ozac-interview-card__qa-head {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: clamp(0.8rem, 1.5vw, 1.2rem);
    margin-bottom: 1rem;
}

.category-section.ozac-interview-card .ozac-interview-card__q-badge {
    flex-shrink: 0;
    width: 9.2rem;
    height: 9.2rem;
}

.category-section.ozac-interview-card .ozac-interview-card__q-badge img {
    display: block;
    width: 100%;
    height: auto;
}

.category-section.ozac-interview-card .ozac-interview-card__q-title {
    flex: 1 1 12rem;
    margin: 0;
    min-height: 9.2rem;
    display: flex;
    align-items: center;
    padding: 1rem 1.4rem;
    background: #fff;
    border-radius: 1rem;
    color: #060e6d;
    font-size: clamp(1.8rem, 1.6vw, 2.5rem);
    font-weight: 700;
    line-height: 1.45;
    box-sizing: border-box;
}

.category-section.ozac-interview-card .ozac-interview-card__q-body {
    margin: 0 0 1.2rem;
    padding-left: 0;
    color: #060e6d;
    font-size: clamp(1.5rem, 1.2vw, 1.6rem);
    line-height: 1.75;
}

@media screen and (min-width: 768px) {
    .category-section.ozac-interview-card .ozac-interview-card__q-body {
        padding-left: calc(9.2rem + clamp(0.8rem, 1.5vw, 1.2rem));
    }
}

.category-section.ozac-interview-card .ozac-interview-card__qa-answer {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: clamp(0.8rem, 1.5vw, 1.2rem);
    margin-left: 2.3rem;
    margin-block: 2rem 2rem; }

.category-section.ozac-interview-card .ozac-interview-card__a-badge {
    flex-shrink: 0;
    width: 6.9rem;
    height: 6.9rem;
}

.category-section.ozac-interview-card .ozac-interview-card__a-badge img {
    display: block;
    width: 100%;
    height: auto;
}

.category-section.ozac-interview-card .ozac-interview-card__a-body {
    flex: 1 1 12rem;
    min-width: 0;
}

.category-section.ozac-interview-card .ozac-interview-card__a-body p {
    margin: 7px 0 1.5rem;
    font-size: clamp(1.5rem, 1.2vw, 1.8rem);
    line-height: 1.75;
}

.category-section.ozac-interview-card .ozac-interview-card__a-body p:last-child {
    margin-bottom: 0;
}

@media screen and (min-width: 900px) {
    .category-section.ozac-interview-card .ozac-interview-card__panel {
        grid-template-columns: minmax(0, 32.2rem) minmax(0, 1fr);
        gap: clamp(2rem, 3vw, 3.6rem);
        align-items: start;
    }
}

/* Footer redesign (group 3772) */
.footer-area {
    margin-top: 0;
    padding: clamp(2.4rem, 4vw, 4rem) 0 0;
    /* background: #fff; */
}

.footer-main {
    max-width: none;
    margin: 0 auto;
    padding: clamp(5rem, 5vw, 6rem) clamp(2rem, 2.5vw, 3rem) clamp(2rem, 2.5vw, 3rem) 35rem;
    background: #f2f3f7;
    border-radius: 1.6rem;
    box-sizing: border-box;
    position: relative;
    width: 93vw;
    border: 1px solid #ebebeb;
}

.footer-area-logo {
    margin: 0 0 clamp(2rem, 3.2vw, 3.2rem);
    width: 20rem;
}

.footer-area-logo img {
    width: 100%;
    height: auto;
}

.footer-box + .footer-box {
    margin-top: 2rem;
}

.footer-menu-title {
    margin: 0 0 0.9rem;
    border-bottom: 0;
    font-size: clamp(1.5rem,1.8vw,1.8rem);
    line-height: 1.4;
    font-weight: 700;
    min-height: 4rem;
}

.footer-menu-title__link {
    padding: 0;
    color: #070203;
}

.footer-menu {
    gap: 0.9rem 1.4rem;
}

.footer-menu__item {
    width: 100%;
    font-size: clamp(1.4rem,1.8vw,1.6rem);
    line-height: 1.6;
}

.footer-menu__link {
    padding: 0;
    color: #070203;
}

.footer-menu__link, .footer-menu-sub__link {
    text-decoration: none;
}

.footer-menu__link:hover, .footer-menu-sub__link:hover, .footer-menu-title__link:hover {
    color: #87d5c7;
}

.footer-disclaimer {
    width: 100%;
    margin: clamp(2.4rem, 4vw, 3.2rem) 0 1.2rem;
    padding: 0;
    background: transparent;
    color: #070203;
    font-size: 1.3rem;
    line-height: 1.75;
}

.footer-disclaimer__label {
    font-weight: 700;
}

.footer-nocopy {
    margin: 0;
    color: #a8a7ba;
    font-size: 1.3rem;
    line-height: 1.6;
    text-align: left;
}

.footer-bottom {
    padding: 1.2rem 4% 1.2rem;
}

.footer-bottom__inner {
    justify-content: flex-end;
}

.footer-copyright {
    font-size: 1.2rem;
    color: #060e6d;
}

.footer-copyright__link {
    color: inherit;
}

.footer-sitemap {
    display: none;
}

.page-top {
    right: 5.5vw;
    bottom: 3.6vw;
    position: absolute;
}

.page-top__link {
    position: relative;
}

.page-top__link img {
}

.footer-box.for-sp {
    display: block;
}

@media screen and (min-width: 768px) {
    .footer-main {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: clamp(2.2rem, 3vw, 4rem);
        row-gap: 1.6rem;
    }

    .footer-area-logo {
        grid-column: 1 / -1;
        position: absolute;
        left: -29rem;
        top: 3rem;
    }

    .footer-box {
        margin-top: 0;
    }

    .footer-box + .footer-box {
        margin-top: 0;
    }

    .footer-disclaimer, .footer-nocopy {
        grid-column: 1 / 3;
    }
}

@media screen and (max-width: 767px) {
    .footer-main {
        border-radius: 1.2rem;
        padding: 2rem 1.4rem 7rem;
        width: 92%;
    }

    .footer-area-logo {
        width: min(13rem, 100%);
        margin-bottom: 2.8rem;
    }

    .footer-menu-title__link {
        padding: 0.4rem 2.4rem 0.4rem 0;
    }

    .footer-menu-title__link::after {
        right: 0;
        width: 1.6rem;
        background-size: 1.1rem auto;
    }

    .footer-menu {
        padding: 0.8rem 0;
        background: transparent;
    }

    .footer-menu__link {
        padding: 0.45rem 1.7rem 0.45rem 0;
        background-position: right center;
        background-size: 0.95rem auto;
    }

    .footer-disclaimer {
        margin-top: 2rem;
        font-size: 3.2vw;
    }

    .footer-nocopy {
        font-size: clamp(1rem,1.5vw,1.3rem);
    }

    .footer-copyright {
        text-align: left;
        font-size: clamp(1rem,1.5vw,1.3rem);
        line-height: 1.3;
    }

    .page-top {
        width: 11.6rem;
        height: 4.4rem;
        bottom: 6.6rem;
        right: 7.5vw;
    }

    .page-top__link::after {
        font-size: 3.2vw;
    }
}

/* TOP: ozac-basic の左側背景（画面左端からコンテンツ左端まで） */
.ozac-basic:not(.category-section) {
    position: relative;
    isolation: isolate;
}

.ozac-basic:not(.category-section)::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    left: calc(50% - 50vw);
    background: #f2f3f7;
    z-index: -1;
}

@media screen and (max-width: 767px) {
    .ozac-basic:not(.category-section)::before {
    }
}

/* #ozac-measure 表示時のみ右サイド装飾を表示 */
body::after {
    content: "";
    position: fixed;
    top: 50%;
    right: 0;
    width: 14vw;
    aspect-ratio: 100 / 750;
    background: url("img/ozac-measure-side.svg") no-repeat right center / contain;
    transform: translate3d(0, -50%, 0);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: -1;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

body.is-show-ozac-measure-side::after {
    opacity: 0.4;
    visibility: visible;
}

@media screen and (max-width: 767px) {
    body::after {
        display: none;
    }

    #canvas {
    filter: blur(8px);
}
    
    .header-area-upper {
        padding: 0.9rem 7.5rem 0.9rem 1rem;
        text-align: left;
    }

    .ozac-mv__title {
        font-size: 5vw;
    }

    .mainvisual {
        padding: 0 1.5rem 0;
        width: 100%;
    }

    .ozac-mv__title span {
        font-size: 2.4rem;
    }

    .ozac-mv__note {
        line-height: 1.4;
    }

    .ozac-mv__sub-title {
        font-size: 5vw;
    }

    .ozac-mv__point {
        font-size: 4.5vw;
    }

    .header-area-upper {
        padding: 0.9rem 7.5rem 0.9rem 0.9rem;
        text-align: left;
        display: grid;
    }

    .ozac-mv__badge {
        margin: 0 auto 2.4rem;
        border: 1px solid rgba(10, 25, 47, 0.25);
        width: min(16rem, 44vw);
        margin-top: 6rem;
        padding: 1.2rem 1.8rem 1.2rem;
        border-radius: 1.2rem;
    }

    .ozac-mv__title {
        font-size: 4.5vw;
    }

    .mainvisual--designed {
        padding: 0;
        height: 73vw;
    }

    .mainvisual--designed .jquery-ripples {
        border-radius: 0;
        height: 73vw;
        background-size: cover;
        opacity: 0.6;
    }

    .ozac-mv__title span {
        font-size: 2.4rem;
    }

    .ozac-mv__note {
        line-height: 1.4;
    }

    .ozac-mv__sub-title {
        font-size: 5vw;
    }

    .ozac-mv__point {
        font-size: 4.5vw;
    }

    .ozac-mv__image-wrap--split {
    }

    .ozac-mv-follow-figure-hold {
        width: 90%;
        margin: -3rem auto 0;
    }

    .ozac-split-showcase {
        padding: 0 15px 3rem;
        text-align: center;
        margin: 3rem auto 0;
        width: 90%;
    }

    .ozac-assignment__title::before {
        height: 3rem;
        width: min(100%, 13.3rem);
    }

    .ozac-assignment__title .ozac-assignment__eyebrow {
        font-size: 4.5vw;
    }

    .ozac-assignment__title::after {
        width: 48vw;
        height: 3rem;
    }

    .ozac-assignment-card--01 {
    }

    .ozac-assignment-card__index[class*="ozac-assignment-card__index--"] {
        min-height: 6rem;
        top: 24px;
    }

    .ozac-assignment-card {
        padding: clamp(2rem, 2.4vw, 2rem) clamp(2rem, 2.2vw, 1.8rem);
    }

    .ozac-assignment-card__title {
        padding-left: 6rem;
        margin: 0.5rem 0 1.6rem;
        padding-right: 0;
    }

    .ozac-assignment__arrow {
        margin: 0 46% 2rem;
    }

    .ozac-assignment__summary-row {
        text-align: center;
        display: flex;
    }

    .ozac-assignment__summary-label {
        align-self: anchor-center;
    }

    .ozac-section--mnb-banner.sec-bg {
        width: 90%;
    }

    .ozac-section--mnb-banner.sec-bg {
        width: 90%;
        padding: 0;
        margin-top: 0.4rem;
        margin-bottom: 0.4rem;
    }

    .ozac-mnb-banner {
        max-width: 100%;
        padding: 6.4vw 4.8vw 7.2vw;
        border-radius: 1.2rem;
    }

    .ozac-mnb-banner__inner {
        text-align: center;
    }

    .ozac-mnb-banner__kicker {
        margin: 0 0 3.2vw;
        font-size: 3.4666666667vw;
        line-height: 1.6;
        letter-spacing: 0.01em;
    }

    .ozac-mnb-banner__heading {
        margin: 0;
        font-size: 6.1333333333vw;
        line-height: 1.28;
        letter-spacing: 0.01em;
    }

    .ozac-mnb-banner__heading-line + .ozac-mnb-banner__heading-line {
        margin-top: 0.28em;
    }

    .ozac-mnb-banner__heading-line--accent {
        font-size: 1em;
        letter-spacing: 0.015em;
    }

    section#ozac-solution {
        width: 95%;
    }

    .ozac-solution-block {
        width: 100%;
        padding: 0 4vw 11vw;
    }

    .ozac-solution-block__inner {
        width: 100%;
        padding-top: 13rem;
    }

    .ozac-solution-block__title {
        line-height: 1.45;
    }

    .ozac-solution-block__panel {
        margin-top: 5.6vw;
        padding: 5.2vw 3.6vw 6.4vw;
        border-radius: 1.2rem;
        margin-bottom: 0;
    }

          .ozac-solution-block__panel .ozac-solution-block__cta-wrap {
        opacity: 1;
    }
    

    .ozac-solution-features {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .ozac-solution-feature {
        border-radius: 1rem;
        padding: 2rem 2rem 2rem 3rem;
    }

    .ozac-solution-feature.onecolumn {
        grid-column: auto;
        padding: 2.5rem 2rem;
    }

    .ozac-solution-feature__title {
        min-height: auto;
        padding: 0 3.2vw;
        line-height: 1.4;
        margin: 0 0 0.5rem;
    }

    .ozac-solution-feature.onecolumn .ozac-solution-feature__title .title-arrow {
        bottom: 0;
    }

    .ozac-solution-feature__title.sol01::before, .ozac-solution-feature__title.sol02::before, .ozac-solution-feature__title.sol03::before, .ozac-solution-feature__title.sol04::before {
        width: 6rem;
        height: 9rem;
    }

    .ozac-solution-feature__title.sol01, .ozac-solution-feature__title.sol02, .ozac-solution-feature__title.sol03, .ozac-solution-feature__title.sol04 {
        padding-left: 5rem;
        position: relative;
    }

    .ozac-solution-feature__figure img {
        /* height: auto; */
    }

    .ozac-solution-feature__beforeafter {
        padding: 2.4vw 0 0;
    }

    img.ozac-solution-feature__badge.ozac-solution-feature__badge--before {
        width: 7rem;
        height: 2.5rem;
        padding: 0.45em;
        right: -3rem;
    }

    img.ozac-solution-feature__badge.ozac-solution-feature__badge--after {
        width: 7rem;
        height: 2.5rem;
        padding: 0.45em;
        left: 4rem;
    }

    .ozac-solution-block__body {
        margin-top: 5.2vw;
        line-height: 1.9;
        margin: 5.2vw 0 2rem;
    }

    .ozac-solution-block__cta-wrap {
        margin-top: 5.2vw;
    }

    .ozac-solution-block__cta {
        gap: 3.2vw;
        padding: 4vw 4vw;
        width: 90%;
    }

    .ozac-solution-block__cta-head {
        line-height: 1.35;
    }

    .ozac-solution-block__cta-sub {
        margin-top: 1.6vw;
        line-height: 1.55;
    }

    .ozac-solution-compare__title {
        margin-top: 7.2vw;
        line-height: 1.4;
    }

    .ozac-solution-table-scroll {
        margin-top: 3.2vw;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0;
    }

    .ozac-solution-compare-table {
        min-width: 86rem;
        font-size: 3.2vw;
    }

    .ozac-solution-compare-table th, .ozac-solution-compare-table td {
        padding: 2.4vw 2vw;
    }

    .ozac-solution-compare-name {
        line-height: 1.45;
    }

    .ozac-solution-method-btn {
        margin-top: 1.6vw;
        gap: 1.4vw;
        padding: 1.4vw 1.8vw;
    }

    .ozac-solution-method-btn__label {
        font-size: 2.9333333333vw;
        line-height: 1.35;
    }

    .ozac-solution-method-btn__icon {
        width: 4.8vw;
        height: 4.8vw;
    }

    .ozac-solution-pop {
        width: min(72vw, 32rem);
        padding: 2.6vw 2.8vw;
    }

    .ozac-solution-pop p {
        font-size: 2.9333333333vw;
        line-height: 1.65;
    }

    .ozac-solution-ability {
        gap: 1.2vw;
    }

    .ozac-solution-ability__label {
    }

    .ozac-solution-ability__mark, .ozac-solution-symbol {
        font-size: 4vw;
        line-height: 1;
    }

    .ozac-solution-cost {
        gap: 0.8vw;
    }

    .ozac-solution-cost__main {
        font-size: 3.7333333333vw;
    }

    .ozac-solution-cost__sub {
        font-size: 2.6666666667vw;
        line-height: 1.45;
    }

    .ozac-solution-compare-footnote {
        margin-top: 2.8vw;
        font-size: 2.9333333333vw;
    }

    .ozac-media {
        width: 92%;
        margin-top: 20vw;
        margin-bottom: 30vw;
        padding: 0;
    }

    .ozac-media__panel {
        padding: 10vw 5vw 10vw;
        border-radius: 0 1.2rem 1.2rem 0;
    }

    .ozac-media__head {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }

    .ozac-media__title-side {
        width: 100%;
    }

    .ozac-media__tag {
        font-size: 3.2vw;
        line-height: 1.4;
        padding: 1rem 1rem;
    }

    .ozac-media__title {
        line-height: 1.35;
        margin: 0 0 0;
    }

    .ozac-media__image-wrap {
        margin-top: 3.6vw;
        top: 0;
        right: 0;
        position: relative;
    }

    .ozac-media__image {
        border-radius: 0.8rem;
        width: 100%;
    }

    .ozac-media__source {
        margin-top: 1.6vw;
        font-size: 2.6666666667vw;
        line-height: 1.5;
        word-break: break-all;
    }

    .ozac-media__text {
        margin-top: 3.2vw;
        line-height: 1.85;
    }

    .ozac-media__actions {
        gap: 3.2vw;
        display: flex;
        flex-direction: column;
        margin: 2rem 0;
    }

    .ozac-media__actions .btn-internal, .ozac-media__actions .btn-web {
        margin: auto;
    }

    .ozac-media__actions .btn-internal a, .ozac-media__actions .btn-web a {
        line-height: 1.3;
        width: 100%;
    }

    .ozac-solution-compare-row th[scope="row"] {
        width: 15% !important;
        min-width: auto;
    }

    .ozac-solution-compare-table thead th:first-child {
        width: 15%;
        min-width: auto;
    }

    .ozac-solution-td {
        min-width: 20vw;
        font-size: 3.2vw;
        line-height: 1.5;
        width: 18%;
    }

    .ozac-solution-td--ability {
        min-width: 24vw;
    }

    .ozac-solution-td--cost {
        min-width: 18vw;
    }

    .ozac-solution-ability li {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1vw;
    }

    .ozac-solution-compare-trigger {
        margin-top: 1.6vw;
    }

    .ozac-solution-method-btn {
        width: 100%;
    }

    .ozac-solution-pop {
        left: 50%;
        transform: translateX(-50%);
        max-height: 48vw;
        overflow: auto;
    }

    .ozac-solution-block__cta-icon {
        width: 9.6vw;
        height: 9.6vw;
        flex: 0 0 9.6vw;
    }

    .ozac-solution-block__cta-arrow {
        width: 5.2vw;
        height: 5.2vw;
    }

    .ozac-solution-feature__title .title-arrow {
        margin-left: 0.4em;
        font-size: 0.8em;
    }

    .ozac-solution-feature__title br {
        display: inline;
    }

    /* pseudo elements: SP補完（未定義分のみ自動追加） */
    #ozac-solution.category-section.ozac-solution-block::after {
        display: none;
    }

    #ozac-solution.category-section.ozac-solution-block::before {
        display: none;
    }

    .category-section.ozac-basic .ozac-basic__title::before, .category-section.ozac-basic .ozac-basic__title::after {
        display: none;
    }

    .gnavi-btn-close__inner::after {
        content: "";
        width: 1em;
        height: 0.1rem;
        background: #fff;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translate(0, -50%) rotate(135deg);
    }

    .gnavi-btn-close__inner::before {
        content: "";
        width: 1em;
        height: 0.1rem;
        background: #fff;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translate(0, -50%) rotate(45deg);
    }

    .gnavi-list__item::before {
        display: none;
    }

    .gnavi-list__link--toggle.is-open::after {
        transform: translate(0, -50%) rotate( 270deg);
    }

    .gnavi-list__link--toggle::after {
        background-image: url("img/arrow-01-black-down.svg");
        transform: translate(0, -50%) rotate(90deg);
        width: 1.8rem;
        height: 1.8rem;
    }

    .gnavi-list__link::after {
        content: "";
        /* width: 1.4rem; */
        height: 1.4rem;
        background: url("img/arrow-01-black-right.svg") no-repeat center/100% auto;
        position: absolute;
        top: 50%;
        right: var(--s2);
        /* transform: translate(0, -50%) rotate(0); */
        transition: transform 0.3s;
    }

    .gnavi-list__low .gnavi-list__link::after {
        content: "└";
        background: none;
        transform: translateY(-50%);
        position: absolute;
        top: 40%;
        left: 1rem;
    }

    .icon-txt-head--01::before {
        background-image: url("img/icon-point-num01.svg");
    }

    .icon-txt-head--02::before {
        background-image: url("img/icon-point-num02.svg");
    }

    .icon-txt-head--03::before {
        background-image: url("img/icon-point-num03.svg");
    }

    .icon-txt-head--04::before {
        background-image: url("img/icon-point-num04.svg");
    }

    .icon-txt-head--05::before {
        background-image: url("img/icon-point-num05.svg");
    }

    .icon-txt-head--06::before {
        background-image: url("img/icon-point-num06.svg");
    }

    .icon-txt-head::after {
        content: "";
    }

    .onb-index01-chapter-h-three::before {
        content: "└";
    }

    .onb-index01-chapter-h-two::before {
        content: "";
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        border: 1px solid #060e6d;
        top: 0.8rem;
    }

    .onb-index01-chapter-h-two::before, .onb-index01-chapter-h-three::before {
        position: absolute;
        left: 0;
    }

    .ozac-assignment-next__head::after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 100%;
        z-index: 0;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / 18rem auto;
        height: 1rem;
        top: 12px;
        left: calc(10% - 20vw);
        width: 6rem;
    }

    .ozac-assignment-next__head::before {
        content: "";
        display: block;
        width: auto;
        height: 3rem;
        margin: 0 0 0.9rem;
        background: url("img/assignment.svg") no-repeat left/ contain;
        flex-basis: 100%;
        z-index: 1;
        position: relative;
    }

    .ozac-assignment__head::before {
        content: none;
    }

    .ozac-basic__title::after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 100%;
        z-index: 0;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / 18rem auto;
        height: 1rem;
        top: 61px;
        left: calc(10% - 20vw);
        width: 6rem;
    }

    .ozac-basic__title::before {
        content: "";
        display: block;
        width: min(100%, 15.9rem);
        height: 3rem;
        margin: 0 0 0.9rem;
        background: url("img/basic.svg") no-repeat center / contain;
        z-index: 1;
        position: relative;
    }

    .ozac-contact-actions .btn-internal a::after, #low-page .btn-internal a::after, #low-page .btn-tel a::after {
        background-image: url("img/wave-divider-white-small.svg");
    }

    .ozac-contact-actions .btn-internal a::after, .ozac-contact-actions .btn-web a::after, #low-page .btn-internal a::after, #low-page .btn-web a::after, #low-page .btn-tel a::after {
        content: "";
        flex-shrink: 0;
        width: 4.5rem;
        height: 1.4rem;
        background-repeat: no-repeat;
        background-position: center;
        background-size: 4.5rem auto;
    }

    .ozac-contact-actions .btn-web a::after, #low-page .btn-web a::after {
        background-image: url("img/wave-divider-yellow-small.svg");
    }

    .ozac-contact-card::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        right: 100%;
        left: calc(50% - 50vw);
        background: #fafafa;
        z-index: -1;
    }

    .ozac-contact-card__kicker::before {
        content: "";
        position: absolute;
        top: 3px;
        bottom: 0;
        right: 100%;
        left: calc(50% - 25vw);
        z-index: -1;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
        width: 20vw;
        height: 3rem;
        margin: auto;
    }

    .ozac-example__chips .btn-internal a::after {
        content: "";
        flex-shrink: 0;
        width: 2.5rem;
        height: 2.5rem;
        background: url("img/arrow-01-right.svg") no-repeat center right / contain;
        position: absolute;
        right: 1rem;
        top: 0;
        bottom: 0;
        margin: auto;
    }

    .ozac-example__chips .btn-internal::after {
        content: none;
    }

    .ozac-example__tag::after {
        content: "";
        position: absolute;
        top: 40px;
        bottom: 0;
        right: 100%;
        left: calc(50% - 51vw);
        z-index: 0;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
        /* content: ""; */
        width: 20vw;
        height: 4rem;
    }

    .ozac-example__title::after {
        content: "";
        position: absolute;
        z-index: 0;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / contain;
        bottom: 0;
        right: 100%;
        height: 1rem;
        top: 36px;
        left: calc(10% - 36vw);
        width: 18rem;
    }

    .ozac-example__title::before {
        content: "";
        display: block;
        width: min(100%, 8.8rem);
        height: 3rem;
        margin: 0 0 0.9rem;
        background: url("img/example.svg") no-repeat center / contain;
        z-index: 1;
        position: relative;
    }

    .ozac-measure-flow-step__dot::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 23px;
        transform: none;
        width: 1px;
        height: 3rem;
        margin: 0 auto;
        display:none;
    }

    .ozac-measure-note__list li::before {
        content: "";
        position: absolute;
        top: 1.1rem;
        left: 0.5rem;
        width: 1.05rem;
        height: 1.05rem;
        border-radius: 50%;
        background-color: #87d5c7;
    }

    .ozac-media__actions .btn-internal a::after, .ozac-media__actions .btn-web a::after {
        content: "";
        flex-shrink: 0;
        width: 4.5rem;
        height: 1.4rem;
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        background-image: url("img/wave-divider-white-small.svg");
    }

    .ozac-media__actions .btn-web a::after {
        background-image: url("img/wave-divider-yellow-small.svg");
    }

    .ozac-media__panel::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        right: 100%;
        left: calc(50% - 50vw);
        background: #f2f3f7;
        z-index: -1;
    }

    .ozac-media__tag::before {
        content: "";
        position: absolute;
        z-index: -1;
        background: url(img/wave-divider-navy-medium.svg) no-repeat right / 18rem auto;
        margin: auto;
        top: 5px;
        bottom: 0;
        right: 100%;
        height: 1rem;
        top: 1px;
        left: calc(10% - 20vw);
        width: 6rem;
    }

    .ozac-mnb-banner::after {
        content: "";
        position: absolute;
        inset: 0;
        opacity: 0.12;
        background-image: repeating-radial-gradient( circle at 50% 120%, transparent 0, transparent 2.4rem, rgba(255, 255, 255, 0.04) 2.4rem, rgba(255, 255, 255, 0.04) 2.5rem );
        pointer-events: none;
    }

    .ozac-next-contact__panel .btn-internal a::after {
        content: "";
        flex-shrink: 0;
        width: 4rem;
        height: 1.4rem;
        background: url("img/wave-divider-navy-small.svg") no-repeat center / contain;
    }

    .ozac-next-contact__panel .btn-internal::after {
        content: none;
    }

    .ozac-risk__title::after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 100%;
        z-index: 0;
        background: url(img/wave-divider-navy-medium.svg) no-repeat center / 18rem auto;
        height: 1rem;
        top: 36px;
        left: calc(10% - 20vw);
        width: 6rem;
    }

    .ozac-risk__title::before {
        content: "";
        display: block;
        width: min(100%, 8.7rem);
        height: 3rem;
        margin: 0 0 0.9rem;
        background: url("img/risk.svg") no-repeat center / contain;
        z-index: 1;
        position: relative;
    }

    .ozac-section--assignment::before {
        content: "";
        position: absolute;
        inset: -20%;
        pointer-events: none;
        z-index: 0;
    }

    .ozac-section--mnb-banner.sec-bg::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background-image: url("img/sec-bg.jpg");
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
        border-radius: var(--ozac-mnb-bg-radius);
        transform-origin: center top;
        transform: translate(var(--ozac-mnb-bg-shift-x), var(--ozac-mnb-bg-shift-y)) scale(var(--ozac-mnb-bg-scale-x), var(--ozac-mnb-bg-scale-y));
        opacity: var(--ozac-mnb-bg-opacity);
        will-change: transform, opacity, border-radius;
        pointer-events: none;
    }

    .ozac-solution-block::after {
        content: "";
        display: block;
        width: min(100%, 9.6rem);
        height: 11.7rem;
        background: url("img/solution.svg") no-repeat center / contain;
        width: 35vw;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        margin: auto;
    }

    .ozac-solution-block::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background: rgba(0, 0, 0, calc(1 - var(--ozac-solution-bg-opacity)));
        border-radius: var(--ozac-solution-bg-radius);
        opacity: 1;
        pointer-events: none;
    }

    .ozac-solution-block__cta--banner::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background: linear-gradient( 105deg, rgba(6, 14, 109, 0.78) 0%, rgba(6, 14, 109, 0.42) 42%, rgba(0, 180, 216, 0.52) 100% );
        pointer-events: none;
    }

    .ozac-solution-block__eyebrow::before {
        content: "";
        display: block;
        width: min(100%, 9.6rem);
        height: 2.9rem;
        background: url("img/Solution.svg") no-repeat center / contain;
        z-index: 10;
    }

    .ozac-solution-compare-row--ozone::after {
        content: "";
        position: absolute;
        inset: 3px;
        z-index: 8;
        border: 3px solid #f5cc00;
        border-radius: 0.8rem;
        background: transparent;
        pointer-events: none;
        box-sizing: border-box;
    }

    .ozac-solution-feature__title .title-arrow::before {
        content: "";
        flex-shrink: 0;
        width: 2.3em;
        height: 0.95em;
        margin-right: 0.35em;
        background: url("img/title-arrow.svg") no-repeat center / contain;
    }

    .related-article01-btn::after {
        content: "";
        width: .2rem;
        height: 1.8rem;
        background: #000;
        position: absolute;
        top: 50%;
        right: 2.3rem;
        transform: translate(0, -50%);
        transition: transform 0.3s;
    }

    .related-article01-btn::before {
        content: "";
        width: 1.8rem;
        height: .2rem;
        background: #000;
        position: absolute;
        top: 50%;
        right: 1.5rem;
        transform: translate(0, -50%);
    }

    .related-article01-list li::before {
        position: absolute;
        left: 0;
        content: "";
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        border: 1px solid #060e6d;
        top: 0.8rem;
    }

    body.is-show-ozac-measure-side::after {
        opacity: 0.4;
        visibility: visible;
    }

    ozac-mnb-banner::before {
        content: "";
        position: absolute;
        inset: 0;
        opacity: 0.55;
        background-image: radial-gradient(ellipse 100% 60% at 15% 45%, rgba(255, 255, 255, 0.14) 0%, transparent 55%), radial-gradient(circle at 78% 25%, rgba(255, 255, 255, 0.1) 0%, transparent 42%), radial-gradient(circle at 55% 88%, rgba(0, 180, 216, 0.18) 0%, transparent 45%), radial-gradient(circle at 30% 75%, rgba(255, 255, 255, 0.06) 0%, transparent 38%), radial-gradient(circle at 90% 70%, rgba(255, 255, 255, 0.05) 0%, transparent 30%);
        pointer-events: none;
    }

    .ozac-split-showcase__lead {
        font-size: 4.5vw;
        line-height: 1.8;
    }

    .ozac-section--assignment {
        padding: 4rem 1.5rem 1.5rem;
        margin-block: 5rem 5rem; }

    .ozac-solution-feature.onecolumn .ozac-solution-feature__beforeafter {
        margin-bottom: 0.5rem;
    }

    .ozac-solution-feature.onecolumn .ozac-solution-feature__beforeafter.pc_only {
        display: none;
    }

    .ozac-solution-feature.onecolumn .ozac-solution-feature__beforeafter.sp_only {
        display: block;
    }

    .ozac-measure__head {
        padding: 4rem 0 2rem;
    }

    .ozac-measure {
        width: 95%;
    }

    .ozac-measure-part {
        padding: 2rem 0;
    }

    .ozac-measure-install {
        margin: 8rem 0 5rem;
    }

    .ozac-measure-mechanism {
        padding: 0;
    }

    .ozac-next-contact__panel .btn-internal a {
        width: 100%;
    }

    .ozac-assignment-next {
        width: 92%;
    }

    .ozac-basic__inner {
        border-radius: 0 1.2rem 1.2rem 0;
        padding: 5rem 1.5rem;
        gap: 4rem;
    }

    .ozac-basic:not(.category-section) {
        width: 92%;
    }

    .ozac-about-media {
        width: 92%;
    }

    .ozac-measure-note--issues {
        padding: 1.5rem 1.5rem;
    }

    .ozac-measure-install__tag {
        margin-left: -3.1rem;
        padding: 0.8rem 0.9rem 0.8rem 3rem;
        min-height: 4.2rem;
    }

    .ozac-measure-mechanism__list {
        gap: 3rem;
    }

    .ozac-example-case__name {
        border-right: 1px solid #9ac7cc;
        border-radius: 0.8rem;
        margin: 0 0 2rem;
    }

    .ozac-example-case__heading {
        padding: 0 1.5rem;
        margin: 0 0 1rem;
    }

    .ozac-example-case__body {
        padding: 0 1.5rem;
    }

    .ozac-risk__title {
        margin: 0 0 4rem;
    }

    .ozac-ministry-card__main {
        padding: 2rem 2rem;
    }

    .ozac-ministry__title {
        margin: 0 0 4rem;
    }

    .ozac-ministry-card__meta {
        display: block;
    }

    .ozac-ministry__grid {
        gap: 3rem;
    }

    .ozac-about-media__inner {
        padding: 3rem 2rem 2rem;
    }

    .ozac-about-media__inner .btn-link {
        margin: var(--s4) auto var(--s1);
    }

    .ozac-example-case__media .btn-internal a {
        padding: var(--s2) var(--s6);
        border-radius: 1.6rem;
        font-size: clamp(1.6rem,2vw,1.8rem);
    }

    .ozac-example__chips .btn-internal a {
        background-image: none;
    }

    section#ozac-mnb-banner {
        margin-block: 1rem 3rem; }

    .ozac-measure-note__title {
        font-size: 1.6rem;
    }

    .ozac-next-contact__panel {
        padding: 3rem 2rem;
    }

    .ozac-example-case {
        margin: 0 0 3rem;
    }

    .ozac-assignment-next__head {
        margin: 0 0 4rem;
    }

    .ozac-about-media__wave {
        margin: 1rem 0 0.6rem;
    }

    .is-gnavi-open .gnavi-area {
        padding: 6rem var(--s1) var(--s10);
    }

    .mainvisual__overlay {
        padding: 0 1.5rem;
        justify-content: center;
        margin-top: 5rem;
    }

    .category-section.ozac-interview-card .ozac-interview-card__q-badge {
        width: 4.5rem;
        height: 4.5rem;
    }

    .category-section.ozac-interview-card .ozac-interview-card__a-badge img {
    }

    .category-section.ozac-interview-card .ozac-interview-card__a-badge {
        width: 3.9rem;
        height: 3.9rem;
    }

    .category-section.ozac-interview-card .ozac-interview-card__qa-answer {
        margin-left: 0.5rem;
    }

    .category-section.ozac-interview-card .ozac-interview-card__a-body p {
        margin: 0 0 1.5rem;
    }

    .ozac-contact-actions .btn-internal a, .ozac-contact-actions .btn-web a, #low-page .btn-internal a, #low-page .btn-web a, #low-page .btn-tel a {
        width: 100%;
    }

    .ozac-measure-part__copy {
        line-height: 1.5;
        margin-bottom: 5rem;
    }

    .ozac-measure-part__copy::before {
    left: -1.6rem;
    width: 4rem;
    height: 0.5rem;
}

.ozac-measure-part__copy:after {
    right: -1.6rem;
    width: 4rem;
    height: 0.5rem;
}
    

    .ozac-measure-flow__lane {
        gap: 3rem;
        padding: 0;
    }

    .ozac-measure-flow-step__dot {
        width: 0;
        height: 0;
    }

    .ozac-measure-flow__steps {
        gap: 3rem;
    }

    .ozac-about-media__row {
        margin-bottom: 5rem;
    }
}

.js-ozac-split-slot.jquery-ripples > canvas {
    z-index: 2 !important;
    opacity: var(--ozac-slot-ripple-opacity);
    pointer-events: none;
}

.ozac-solution-block__body span, .ozac-split-showcase__lead span, .ozac-assignment__intro span, .ozac-media__text span, .ozac-measure__intro span, .ozac-measure-flow-step__text span, .ozac-measure-install__desc span, .ozac-measure-install__foot span, .ozac-measure-mechanism__text span, .ozac-example-case__body span, .ozac-risk-card__text span, .ozac-assignment-next-card__text span, .ozac-ministry-card__text span, p:not([class]) span {
    font-weight: bold;
    background: linear-gradient(transparent 60%, #fff5bc 60%);
}

.ozac-next-contact__text span {
    font-weight: bold;
    color: #fff;
    background: linear-gradient(transparent 60%, #ffd700 60%);
}

.ozac-section.ozac-measure.category-section {
    padding: 0 0 5rem;
    margin-block: 6rem 10rem; }

.ozac-section.ozac-measure.category-section .ozac-measure__head {
    padding: 5rem 10rem 0;
}

.ozac-section.ozac-measure.category-section .ozac-measure-part__title {
    margin: 0 0 2rem;
}

.ozac-section.ozac-measure.category-section .ozac-measure-part {
    padding: 0 10rem 0;
    margin-block: 0 5rem; }

.ozac-section.ozac-measure.category-section .ozac-measure-part .float-wrap.ct.cf {
    text-align: center;
    margin-block: 4rem 0; }

.ozac-section.ozac-measure.category-section .ozac-measure-part .float-wrap.ct.cf .float-img.ct {
    margin-block: 0 3rem; }

.ozac-section.ozac-measure.category-section .ozac-section {
    padding: 0 0 3rem;
}

#low-page .ozac-section.ozac-measure.category-section table {
    margin-block: 0 4rem; }

#low-page .ozac-section.ozac-measure.category-section table th {
    width: 30%;
}

@media screen and (max-width: 767px) {
    .ozac-solution-pop.is-sp-open {
        position: fixed !important;
        inset: 0 !important;
        left: 0 !important;
        top: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        transform: none !important;
        border-radius: 0 !important;
        padding: 7.2rem 2rem 2.4rem !important;
        overflow: auto !important;
        z-index: 1000 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .ozac-solution-compare-trigger.is-open .ozac-solution-pop {
        position: fixed !important;
        inset: 0 !important;
        left: 0 !important;
        top: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        transform: none !important;
        border-radius: 0 !important;
        padding: 7.2rem 2rem 2.4rem !important;
        overflow: auto !important;
        z-index: 1000 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .ozac-solution-pop__close {
        position: fixed !important;
        top: 1.6rem !important;
        left: 1.6rem !important;
        width: 3.6rem !important;
        height: 3.6rem !important;
        border: 0;
        background: url("img/icon-cross.svg") no-repeat center / 2.6rem 2.6rem;
        z-index: 1001 !important;
    }

    .ozac-solution-pop-modal {
        position: fixed;
        inset: 0;
        z-index: 2000;
        display: none;
    }

    .ozac-solution-pop-modal.is-open {
        display: block;
    }

    .ozac-solution-pop-modal__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
    }

    .ozac-solution-pop-modal__panel {
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, #47ad9f 0%, #5273a4 100%);
        color: #fff;
        overflow: auto;
        padding: 2rem 2rem;
        margin: 60% 1.5rem;
        border-radius: 0.8rem;
        height: 65vw;
        display: flex;
        align-items: center;
    }

    .ozac-solution-pop-modal__close {
        position: fixed;
        top: 50vw;
        right: 1rem;
        width: 3.6rem;
        height: 3.6rem;
        border: 0;
        background: url("img/icon-cross.svg") no-repeat center / 2.6rem 2.6rem;
        z-index: 2001;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
    }

    .ozac-solution-pop-modal__body p {
        margin: 0;
        font-size: 1.6rem;
        line-height: 1.65;
    }

    body.is-ozac-solution-pop-open {
        overflow: hidden;
    }

    .ozac-next-contact {
        padding: 5rem 1.5rem;
        border-radius: 1.6rem;
    }

    .ozac-measure-part__title {
        margin: 0 0 2rem;
    }

    .ozac-measure-note--explain {
        padding: 0;
    }

    .ozac-measure-flow__terminal--start {
        width: 50%;
        margin-left: -1.6rem;
    }

    .ozac-measure-flow__terminal--end {
        border-radius: 0 0.8rem 0.8rem 0;
        width: 50%;
        margin-left: -1.6rem;
    }

    .ozac-measure-mechanism__title {
        margin: 2rem 0 3rem;
    }

    .ozac-measure-accordions {
        gap: 1.5rem;
    }

    .ozac-measure-table thead th {
        width: 20%;
    }

    .ozac-measure-mechanism__head {
        margin-left: 5.5rem;
    }

    .ozac-measure-mechanism__num {
        position: absolute;
        top: 1rem;
    }

    .ozac-measure-mechanism__content {
        position: relative;
    }
.ozac-measure-mechanism__placeholder {
    padding: 1rem;
}
    .ozac-next-contact-wrap {
        margin: 7rem auto 7rem;
    }

    .ozac-risk {
        margin: 7rem auto 7rem;
    }

    .ozac-example {
        margin: 7rem auto 7rem;
    }

    .ozac-example-case__placeholder {
        width: 50%;
        margin: auto;
    }

    .ozac-measure-part__visual-placeholder--sp-scroll-x {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .ozac-measure-part__visual::before {
        content: "▼横スクロールできます▼";
        position: relative;
        z-index: -1;
        margin: auto;
        width: 100%;
        display: block;
        text-align: center;
        font-size: clamp(1.3rem, 1vw, 1.5rem);
        color: #b1b0b0;
    }

    .ozac-measure-part__visual-placeholder--sp-scroll-x .ozac-measure-part__visual-image {
        width: auto;
        max-width: none;
        height: 30rem;
        object-fit: contain;
    }

    .onb-index01-frame {
        width: 90%;
        margin: 2.4rem auto 6rem;
    }

    .ozac-section.ozac-measure.category-section {
        margin-block: 4rem 8rem; padding: 0;
    }

    .ozac-section.ozac-measure.category-section .ozac-measure__head {
        padding: 2rem 10px 2rem;
    }

    .low-center-img-box {
        margin-block: 2rem 0;
        padding: 0 1.5rem;
        }

    .ozac-section.ozac-measure.category-section .ozac-measure-part {
        padding: 2rem;
        margin-block: 0 2rem;
        }

    .ozac-section.ozac-measure.category-section .caption {
        padding: 0 1rem 2rem;
        margin-top: 0.5rem;
    }
}




header .ozac-solution-block__cta-wrap {
    border-top: 0;
    border-left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    right: 12rem;
    z-index: 200;
}

header .ozac-solution-block__cta {
    color: inherit;
}

/* Solution CTA：横長バナー（水景＋グラデ、波形、右の円矢印） */
header .ozac-solution-block__cta--banner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 1.5rem;
    width: 100%;
    height: 5.5rem;
    max-width: 100%;
    padding: clamp(0.5rem, 1.5vw, 0.6rem) clamp(0.5rem, 1.5vw, 1rem) clamp(0.5rem, 1.5vw, 0.6rem) clamp(0.5rem, 1.5vw, 1.5rem);
    border: none;
    border-radius: 0 0 1rem 1rem;
    overflow: hidden;
    text-align: left;
    color: #fff;
    font-weight: 700;
    line-height: 1.45;
    box-shadow: 0 1rem 2.8rem rgba(6, 14, 109, 0.22);
    background-color: #0a1a4a;
    background-image: url("img/mv-bg-after.jpg");
    background-size: cover;
    background-position: center;
    margin: 0;
}

header .ozac-solution-block__cta--banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient( 105deg, rgba(6, 14, 109, 0.78) 0%, rgba(6, 14, 109, 0.42) 42%, rgba(0, 180, 216, 0.52) 100% );
    pointer-events: none;
}

header .ozac-solution-block__cta-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    gap: initial;
    color: #ffd700;
}

header .ozac-solution-block__cta-head {
    display: block;
    font-size: clamp(1rem, 1.8vw, 1.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.35;
    width: 100%;
}

header .ozac-solution-block__cta-wave {
    display: block;
    width: 100%;
    margin-top: 1.75rem;
    background-image: url("img/wave-divider-white-medium.svg");
    background-size: 60% 100%;
    background-position: left center;
    opacity: 0.95;
    min-width: 2.4rem;
    height: 0.4rem;
}

header .ozac-solution-block__cta-sub {
    display: block;
    font-size: clamp(1.1rem, 1.8vw, 1.6rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -0.01em;
}

header .ozac-solution-block__cta-icon {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: clamp(1.6rem, 4vw, 2.5rem);
    height: clamp(1.6rem, 4vw, 2.5rem);
    margin-inline: 0 auto;
    border-radius: 50%;
    background-color: #fff;
    color: var(--ozac-color-primary);
    box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.18);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

header .ozac-solution-block__cta-arrow {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
}

header .ozac-solution-block__cta--banner:hover .ozac-solution-block__cta-icon {
    transform: scale(1.16);
    box-shadow: 0 0.45rem 1.35rem rgba(0, 0, 0, 0.22);
}

header .ozac-solution-block__cta--banner:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

@media (max-width: 520px) {

header .ozac-solution-block__cta-wrap {
    border-top: 0;
    border-left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    right: 7rem;
    z-index: 200;
    margin-top: 0;
}

    
    header .ozac-solution-block__cta--banner {
        flex-direction: row;
        display: flex;
        height: 5rem;
        gap: 1.5rem 0.5rem;
    }

    header .ozac-solution-block__cta-text {
        align-items: center;
        flex: 1 1 9rem;
    }

    header .ozac-solution-block__cta-wave {
        background-size: 100% 100%;
        height: 0.6rem;
        margin-top: 0.85rem;
    }

    header .ozac-solution-block__cta-icon {
        margin-inline: auto;
        flex: none;
        }

header .ozac-solution-block__cta-sub {
    margin-top: 0;
}


    
}

/* SP限定: CTAバナーのふわっと表示 */
@media (max-width: 767px) {
    .ozac-solution-block__cta-wrap {
        opacity: 0;
        transition: opacity 0.6s ease, transform 0.6s ease;
    }
   .gnavi-ctrl.is-show .ozac-solution-block__cta-wrap {
        opacity: 1;
    }

    .category-section.ozac-basic .ozac-basic__inner {
    margin-block: 8rem 0;
}

.category-section.ozac-basic {
    margin: 0 auto 0;
}

    .ozac-media__tag::after {right: -108px;}
    
}