@charset "UTF-8";

/* 基本設定 */
:root {
    --sans: Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',Meiryo,sans-serif;
    --accent: #233e60;
    --accent-deep: #101f33;
    --accent-rgb: 35,62,96;
    --accent-wash: #eef1f5;
    --accent-soft: #4f6885;
    --ink: #20282e;
    --muted: #687078;
    --line: #d6dadb;
    --bg: #fafaf8;
    --accent-fill: var(--accent);
}

:root[data-color=blue] {
    --accent: #1e5b7c;
    --accent-deep: #123243;
    --accent-rgb: 30,91,124;
    --accent-wash: #ecf2f5;
    --accent-soft: #5e879d;
}

:root[data-finish=gradient] {
    --accent-fill: linear-gradient(115deg,var(--accent),var(--accent-deep));
}

html body,
html body :is(h1,h2,h3,h4,p,a,button,input,select,textarea,dt,dd,small,strong,span,time,summary) {
    font-family: var(--sans)!important;
    font-variant-numeric: lining-nums tabular-nums;
    font-feature-settings: 'lnum' 1,'tnum' 1;
}

html body :is(h1,h2,h3) {
    font-weight: 500;
    letter-spacing: .025em;
}

html body :is(button,input,select,textarea) {
    font-size: inherit;
}

html body :is(a,button,summary):focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 5px;
}

.r9-selected-plan {
    display: block;
    padding: 22px;
    background: var(--accent-wash);
    margin-bottom: 26px;
    font-size: 14px!important;
}

.r9-selected-plan select {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    background: white;
    color: var(--ink);
}

.r9-selected-plan small {
    display: block;
    margin-top: 10px;
    font-size: 11px;
}

html:not([data-color]) {
    --accent: #1e5b7c;
    --accent-deep: #113e59;
    --accent-wash: #edf3f7;
    --accent-fill: linear-gradient(120deg,#123f60,#246f99);
}

/* 掲載までの流れ */
.fb {
    --fb-w: min(1360px,92vw);
    margin-inline: calc(-1*max(0px,(var(--fb-w) - 100%) / 2));
    --fb-navy: var(--navy,#1B2A4A);
    --fb-cream: var(--cream,#F5F0EB);
    --fb-gold: var(--gold,#8B7355);
    --fb-line: var(--light,var(--line,#E3DCD0));
    --fb-ink: var(--ink,#2B2B28);
    --fb-sub: var(--gray,var(--ink-soft,#6B665E));
    --notch: 12.4%;
    position: relative;
}

.fb .fb-band {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 6px;
    position: relative;
}

.fb .fb-unit {
    display: contents;
}

.fb .fb-step {
    position: relative;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: .5rem;
    padding: clamp(20px,2.2vw,32px) clamp(20px,2.4vw,34px) clamp(20px,2.2vw,32px) clamp(30px,3.4vw,50px);
    background: linear-gradient(180deg,#ffffffb8,#ffffff85);
    border: 0;
    font-family: var(--serif-jp,serif);
    color: var(--fb-ink);
    cursor: pointer;
    text-align: center;
    overflow: hidden;
    -webkit-clip-path: polygon(0 0,calc(100% - var(--notch)) 0,100% 50%,calc(100% - var(--notch)) 100%,0 100%,var(--notch) 50%);
    clip-path: polygon(0 0,calc(100% - var(--notch)) 0,100% 50%,calc(100% - var(--notch)) 100%,0 100%,var(--notch) 50%);
    opacity: 0;
    transform: translate(-14px);
    transition: background .45s ease,color .45s ease;
}

.fb.in .fb-step {
    animation: fbIn .95s cubic-bezier(.2,.8,.2,1) both;
}

.fb.in .fb-unit:nth-child(1) .fb-step {
    animation-delay: .05s;
}

.fb.in .fb-unit:nth-child(2) .fb-step {
    animation-delay: .19s;
}

.fb.in .fb-unit:nth-child(3) .fb-step {
    animation-delay: .33s;
}

.fb.in .fb-unit:nth-child(4) .fb-step {
    animation-delay: .47s;
}

.fb.in .fb-unit:nth-child(5) .fb-step {
    animation-delay: .61s;
}

@keyframes fbIn {
    0% {
        opacity: 0;
        transform: translate(-14px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fb .fb-out {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.fb .fb-vline {
    display: none;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 14px;
    pointer-events: none;
}

.fb .fb-vline polyline {
    fill: none;
    stroke: #c9b084;
    stroke-width: 1;
}

.fb .fb-out polygon {
    fill: none;
    stroke: var(--fb-gold);
    stroke-width: 1;
    opacity: .5;
    transition: opacity .4s,stroke-width .4s;
}

.fb .fb-out .fb-tip {
    fill: none;
    stroke: var(--fb-gold);
    stroke-width: 3;
    stroke-linejoin: miter;
    opacity: .9;
    transition: opacity .4s,stroke-width .4s;
}

@media (hover: hover) and (pointer: fine) {
.fb .fb-step:hover .fb-out .fb-tip {
    stroke-width: 3.6;
    opacity: 1;
}
}

.fb .fb-step.on .fb-out .fb-tip {
    opacity: .95;
    stroke-width: 3.6;
}

.fb.in .fb-out polygon,
.fb.in .fb-out .fb-tip {
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
    animation: fbDraw 1.5s ease forwards;
}

.fb.in .fb-unit:nth-child(1) .fb-out>* {
    animation-delay: .15s;
}

.fb.in .fb-unit:nth-child(2) .fb-out>* {
    animation-delay: .29s;
}

.fb.in .fb-unit:nth-child(3) .fb-out>* {
    animation-delay: .43s;
}

.fb.in .fb-unit:nth-child(4) .fb-out>* {
    animation-delay: .57s;
}

.fb.in .fb-unit:nth-child(5) .fb-out>* {
    animation-delay: .71s;
}

@keyframes fbDraw {
    to {
        stroke-dashoffset: 0;
    }
}

.fb .fb-node {
    width: clamp(38px,3vw,48px);
    height: clamp(38px,3vw,48px);
    border-radius: 50%;
    background: radial-gradient(circle at 38% 32%,#fff,#f9f6f1);
    border: 1px solid var(--gold-soft,#B59C7E);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--serif-en,serif);
    font-size: clamp(.98rem,1.14vw,1.18rem);
    color: var(--fb-gold);
    transition: background .45s,border-color .45s,color .45s;
}

.fb .fb-nodes {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 6px;
    position: relative;
    margin-bottom: clamp(20px,2.4vw,34px);
}

.fb .fb-nodes:before {
    content: "";
    position: absolute;
    left: 10%;
    right: 10%;
    top: 50%;
    height: 1px;
    background: var(--fb-line);
}

.fb .fb-nodes .fb-node {
    margin: 0 auto;
    position: relative;
    z-index: 1;
    cursor: pointer;
}

.fb .fb-nodes .fb-node.on {
    background: radial-gradient(circle at 38% 32%,#947c5d,#826a4c);
    border-color: var(--fb-gold);
    color: var(--fb-cream);
}

.fb:not(.fb-mini) .fb-nodes {
    opacity: 0;
    transition: opacity .8s ease .1s;
}

.fb.in .fb-nodes {
    opacity: 1;
}

.fb:not(.fb-mini) .fb-node-cell {
    display: none;
}

.fb .fb-ic {
    display: block;
    width: clamp(36px,3vw,46px);
}

.fb .fb-ic svg {
    display: block;
    width: 100%;
    height: auto;
}

@keyframes fbInkDraw {
    0% {
        stroke-dashoffset: 1;
    }

    to {
        stroke-dashoffset: 0;
    }
}

.fb .fb-step:hover .fb-ic .icon-main>*,
.fb .fb-step.on .fb-ic .icon-main>* {
    stroke-dasharray: 1;
    animation: fbInkDraw .7s ease both;
}

.fb .fb-step:hover .fb-ic .icon-accent>*,
.fb .fb-step.on .fb-ic .icon-accent>* {
    stroke-dasharray: 1;
    animation: fbInkDraw .45s ease .32s both;
}

.fb .fb-ic .icon-main {
    fill: none;
    stroke: var(--fb-gold);
    stroke-width: 1.5;
    stroke-linecap: square;
    stroke-linejoin: miter;
    transition: stroke .45s;
}

.fb .fb-ic .icon-accent {
    fill: none;
    stroke: var(--gold-soft,#B59C7E);
    stroke-width: 1.5;
    stroke-linecap: square;
    stroke-linejoin: miter;
    transition: stroke .45s;
}

.fb .fb-jp {
    font-size: clamp(.84rem,1.08vw,1.08rem);
    letter-spacing: .1em;
    line-height: 1.85;
    white-space: nowrap;
}

.fb .fb-desc {
    display: none;
    font-size: .82rem;
    letter-spacing: .03em;
    line-height: 1.9;
    color: var(--fb-ink);
}

.fb .fb-step.on .fb-desc {
    color: #f5f0ebe0;
}

.fb .fb-catch {
    font-size: clamp(.7rem,.86vw,.86rem);
    letter-spacing: .03em;
    color: var(--fb-ink);
    line-height: 1.8;
    word-break: auto-phrase;
    text-wrap: balance;
    transition: color .45s;
}

@media (hover: hover) and (pointer: fine) {
.fb .fb-step:hover {
    background: linear-gradient(180deg,#fffffff7,#ffffffdb);
}
}

@media (hover: hover) and (pointer: fine) {
.fb .fb-step:hover .fb-out polygon {
    opacity: 1;
    stroke-width: 1.6;
}
}

.fb .fb-step.on {
    background: linear-gradient(180deg,#947c5d,#826a4c);
    color: var(--fb-cream);
}

.fb .fb-step.on .fb-node {
    background: transparent;
    border-color: #f5f0eb80;
    color: var(--fb-cream);
}

.fb .fb-step.on .fb-ic .icon-main {
    stroke: #f5f0ebeb;
}

.fb .fb-step.on .fb-ic .icon-accent {
    stroke: #f5f0eb8c;
}

.fb .fb-step.on .fb-catch {
    color: #f5f0ebe0;
}

.fb .fb-step.on .fb-out polygon {
    opacity: 0;
}

.fb .fb-step.on .fb-out {
    opacity: 1;
}

.fb .fb-fold {
    display: none;
}

.fb .fb-fold-in {
    overflow: hidden;
}

.fb .fb-fold-in p {
    margin: 0;
    padding: 16px 6vw 20px;
    font-size: .84rem;
    line-height: 2;
    letter-spacing: .03em;
    color: var(--fb-ink);
    background: linear-gradient(180deg,#ffffff85,#ffffff57);
}

.fb .fb-detail {
    margin-top: clamp(24px,2.6vw,40px);
    margin-inline-start: calc(10% - clamp(19px,1.5vw,24px));
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 clamp(24px,3vw,52px);
    align-items: start;
    border-top: 1px solid var(--fb-line);
    padding-top: clamp(22px,2.4vw,34px);
}

.fb .fb-d-no {
    font-family: var(--serif-en,serif);
    font-style: normal;
    font-size: clamp(1.6rem,3vw,2.4rem);
    line-height: 1;
    color: var(--fb-gold);
    opacity: .5;
}

.fb .fb-d-body {
    display: grid;
    gap: .6rem;
    max-width: 46em;
}

.fb .fb-d-phase {
    font-family: var(--serif-jp,serif);
    font-size: .78rem;
    letter-spacing: .18em;
    color: var(--fb-gold);
}

.fb .fb-d-catch {
    font-family: var(--serif-jp,serif);
    font-weight: 300;
    font-size: clamp(1.1rem,2vw,1.5rem);
    letter-spacing: .14em;
    line-height: 1.9;
    color: var(--fb-navy);
}

.fb .fb-d-desc {
    font-family: var(--serif-jp,serif);
    font-size: .92rem;
    letter-spacing: .04em;
    line-height: 2.2;
    color: var(--fb-ink);
}

.fb .fb-detail:has(.fb-pane) {
    display: block;
}

.fb .fb-pane {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 clamp(24px,3vw,52px);
    align-items: start;
}

.fb .fb-pane[hidden] {
    display: none;
}

.fb .fb-pane>* {
    animation: fbRise .6s cubic-bezier(.2,.8,.2,1) both;
}

.fb .fb-pane>*:nth-child(2) {
    animation-delay: .06s;
}

.fb .fb-detail>* {
    animation: fbRise .6s cubic-bezier(.2,.8,.2,1) both;
}

.fb .fb-detail>*:nth-child(2) {
    animation-delay: .06s;
}

@keyframes fbRise {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fb .fb-more {
    margin-top: clamp(20px,2.2vw,30px);
    text-align: center;
}

.fb .fb-more a {
    display: inline-flex;
    align-items: baseline;
    gap: .9rem;
    font-family: var(--serif-jp,serif);
    font-size: .84rem;
    letter-spacing: .14em;
    color: var(--fb-navy);
    text-decoration: none;
    border-bottom: 1px solid var(--fb-line);
    padding-bottom: .3rem;
    transition: color .35s,border-color .35s;
}

.fb .fb-more a i {
    font-family: var(--serif-en,serif);
    font-style: normal;
    font-size: .72rem;
    color: var(--fb-gold);
}

.fb .fb-more a:hover {
    color: var(--fb-gold);
    border-color: var(--fb-gold);
}

@media(max-width:900px) {
    .fb {
        --fb-w: 100%;
        margin-inline: 0;
    }

    .fb .fb-nodes {
        display: none;
    }

    .fb:not(.fb-mini) .fb-node-cell {
        display: flex;
    }

    .fb .fb-detail {
        margin-inline-start: 0;
    }

    .fb .fb-band,
    .fb .fb-unit,
    .fb .fb-vline {
        display: block;
    }

    .fb .fb-unit+.fb-unit {
        margin-top: 5px;
    }

    .fb .fb-step {
        width: 100%;
    }

    .fb .fb-step {
        padding: clamp(18px,4vw,26px) 6vw clamp(26px,5vw,34px);
        -webkit-clip-path: polygon(0 0,100% 0,100% calc(100% - 14px),50% 100%,0 calc(100% - 14px));
        clip-path: polygon(0 0,100% 0,100% calc(100% - 14px),50% 100%,0 calc(100% - 14px));
    }

    .fb.in .fb-step {
        animation-name: fbInV;
    }

    @keyframes fbInV {
        0% {
            opacity: 0;
            transform: translateY(12px);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }

    .fb .fb-out {
        display: none;
    }

    .fb .fb-detail,
    .fb .fb-pane {
        grid-template-columns: 1fr;
        gap: .6rem;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-step {
        grid-template-columns: 1fr auto;
        column-gap: 22px;
        row-gap: .3rem;
        justify-items: start;
        text-align: left;
        align-items: center;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-ic {
        display: block;
        grid-column: 2;
        grid-row: 1 / span 3;
        width: 80px;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-ic :is(.icon-main,.icon-accent) {
        stroke-width: .8;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-node-cell {
        grid-column: 1;
        grid-row: 1;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-jp {
        grid-column: 1;
        grid-row: 2;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-catch {
        grid-column: 1;
        grid-row: 3;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-catch br {
        display: none;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-step {
        -webkit-user-select: none;
        user-select: none;
        -webkit-touch-callout: none;
        -webkit-tap-highlight-color: transparent;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-desc {
        display: none;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-fold {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows .45s cubic-bezier(.2,.8,.2,1);
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-unit.open .fb-fold {
        grid-template-rows: 1fr;
    }

    body[data-service-sp=a] .fb:not(.fb-mini) .fb-detail {
        display: none;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-step {
        grid-template-columns: 1fr;
        row-gap: .3rem;
        justify-items: start;
        text-align: left;
        align-content: center;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-ic {
        display: block;
        position: absolute;
        right: 6px;
        bottom: -6px;
        width: 104px;
        opacity: .75;
        z-index: -1;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-ic :is(.icon-main,.icon-accent) {
        stroke-width: .62;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-catch br {
        display: none;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-desc {
        display: none;
    }

    body[data-service-sp=c] .fb:not(.fb-mini) .fb-detail {
        display: none;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-step {
        grid-template-columns: min(10.5em,40%) 1fr;
        column-gap: 24px;
        row-gap: .3rem;
        justify-items: start;
        text-align: left;
        align-items: start;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-ic {
        display: none;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-node-cell {
        grid-column: 1;
        grid-row: 1;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-jp {
        grid-column: 1;
        grid-row: 2;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-catch {
        grid-column: 1;
        grid-row: 3;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-catch br {
        display: none;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-desc {
        display: block;
        grid-column: 2;
        grid-row: 1 / span 3;
        align-self: center;
    }

    body[data-service-sp=b] .fb:not(.fb-mini) .fb-detail {
        display: none;
    }
}

@media(prefers-reduced-motion:reduce) {
    .fb.in .fb-step,
    .fb.in .fb-out polygon,
    .fb .fb-detail>* {
        animation-duration: .01s;
    }

    .fb .fb-step {
        opacity: 1;
        transform: none;
    }

    .fb .fb-fold {
        transition: none;
    }

    .fb .fb-step:hover .fb-ic .icon-main>*,
    .fb .fb-step.on .fb-ic .icon-main>*,
    .fb .fb-step:hover .fb-ic .icon-accent>*,
    .fb .fb-step.on .fb-ic .icon-accent>* {
        animation: none;
        stroke-dasharray: none;
    }
}

/* 共通レイアウト */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 35px;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font: 15px/1.85 var(--sans);
    overflow-wrap: break-word;
}

h1,
h2,
h3,
p,
figure,
dl {
    margin: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

button,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

h2 {
    font-size: clamp(27px,3.1vw,45px);
    line-height: 1.5;
}

h3 {
    font-size: 24px;
    line-height: 1.6;
}

p+p {
    margin-top: 16px;
}

small {
    font-size: 11px;
}

a,
button,
summary {
    -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 5px;
}

[hidden] {
    display: none!important;
}

.meta {
    display: block;
    color: var(--accent);
    font-size: 11px;
    letter-spacing: .13em;
    line-height: 1.6;
    margin-bottom: 20px;
}

.plain-link,
.depth-link {
    display: flex;
    gap: 36px;
    align-items: center;
    justify-content: space-between;
    width: max-content;
    max-width: 100%;
    border-bottom: 1px solid currentColor;
    padding: 15px 0;
    font-size: 14px;
    color: var(--accent);
}

.corner-link {
    position: relative;
    transition: padding .45s cubic-bezier(.22,1,.36,1);
}

.corner-link:before,
.corner-link:after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    opacity: 0;
    transition: opacity .35s,transform .45s;
}

.corner-link:before {
    left: -8px;
    top: 0;
    border-left: 1px solid;
    border-top: 1px solid;
    transform: translate(5px,5px);
}

.corner-link:after {
    right: -8px;
    bottom: 0;
    border-right: 1px solid;
    border-bottom: 1px solid;
    transform: translate(-5px,-5px);
}

.corner-link:focus-visible:before,
.corner-link:focus-visible:after {
    opacity: 1;
    transform: none;
}
@media (hover: hover) and (pointer: fine) {
.corner-link:hover:before,
.corner-link:hover:after {
    opacity: 1;
    transform: none;
}
}

.assembly-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 5vw;
    background: var(--bg);
    position: relative;
    z-index: 10;
    border-bottom: 1px solid #e4e6e6;
}

.assembly-logo img {
    width: 142px;
    height: auto;
}

.assembly-header nav {
    display: flex;
    align-items: center;
    gap: 28px;
    font-size: 12px;
}

.assembly-header nav>a {
    transition: color .3s;
}

@media (hover: hover) and (pointer: fine) {
.assembly-header nav>a:not(.header-consult):hover {
    color: var(--accent);
}
}

.assembly-header .header-consult {
    background: var(--accent-fill);
    padding: 14px 22px;
    color: #fff;
    display: flex;
    gap: 26px;
}

.assembly-header #menu-button {
    display: none;
    border: 0;
    background: none;
    padding: 12px;
}

#mobile-menu {
    position: absolute;
    z-index: 100;
    width: 100%;
    background: var(--bg);
    padding: 20px 6vw;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 25px;
    box-shadow: 0 10px 25px #0002;
}

#mobile-menu a {
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
}

.draft-hero {
    height: calc(100svh - 145px);
    min-height: 650px;
    max-height: 1000px;
    background: #151e24;
    position: relative;
    color: #fff;
    width: 100%;
}

.draft-hero>[data-zr-draft-photo] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.hero-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg,#101a22ba,#101a2235 70%,#101a2220);
}

.hero-copy {
    position: relative;
    z-index: 2;
    padding: 100px 7vw 100px;
    max-width: 900px;
}

.hero-copy>p:first-child {
    font-size: 11px;
    letter-spacing: .15em;
    margin-bottom: 27px;
}

.hero-copy h1 {
    font-size: clamp(36px,4.7vw,76px);
    line-height: 1.46;
    letter-spacing: .05em;
    font-weight: 500;
    margin: 0 0 20px;
}

.hero-purpose {
    font-size: 15px;
    line-height: 1.9;
}

.hero-price {
    margin-top: 26px;
    font-size: 13px;
    line-height: 1.6;
}

.hero-price strong {
    font-size: 32px;
    letter-spacing: .015em;
    font-weight: 400;
}

.hero-price>.price-note {
    display: block;
    font-size: 10px;
    margin-top: 3px;
}

.hero-actions {
    display: flex;
    gap: 34px;
    align-items: center;
    margin-top: 26px;
}

.hero-actions a {
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 45px;
    padding: 13px 0;
    border-bottom: 1px solid #ffffff99;
}

.street-hero-caption {
    position: absolute;
    z-index: 3;
    left: 7vw;
    right: 7vw;
    bottom: 21px;
    display: flex;
    gap: 25px;
    align-items: center;
    font-size: 9px;
    color: #fff9;
}

.street-hero-caption>a:last-child {
    margin-left: auto;
    max-width: 460px;
    font-size: 8px;
}

.street-hero-caption>a:nth-child(2) {
    display: none;
}

[data-zr-draft-curtain] {
    display: grid;
    place-items: center;
}

[data-zr-draft-curtain] img {
    width: 210px;
    filter: invert(1);
}

.photo-window {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    margin: 0;
}

.screen-label {
    font-size: 10px;
    color: var(--accent);
    letter-spacing: .12em;
}

.recommend {
    padding: 80px 6vw;
    background: var(--accent-wash);
}

.section-title {
    margin-bottom: 40px;
}

.section-title h2 {
    margin: 0;
}

.recommend-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 3vw;
}

.recommend-grid article {
    min-width: 0;
}

.recommend-grid figure {
    position: relative;
    margin-bottom: 22px;
}

.recommend-grid figure img {
    width: 100%;
    aspect-ratio: 1.5;
    object-fit: cover;
}

.recommend-grid figure figcaption {
    position: absolute;
    right: 9px;
    bottom: 7px;
    font-size: 8px;
    color: #fff;
    text-shadow: 0 1px 4px #000;
}

.recommend-grid .outline-word {
    display: block;
    font-size: 11px;
    letter-spacing: .12em;
    color: var(--accent);
    margin-bottom: 10px;
}

.recommend-grid h3 {
    font-size: 23px;
    line-height: 1.6;
    margin-bottom: 16px;
}

.recommend-grid p {
    font-size: 13px;
    line-height: 1.95;
    min-height: 77px;
}

.recommend-grid article>a {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--accent);
    font-size: 12px;
    padding: 15px 0;
    margin-top: 13px;
    color: var(--accent);
}

#process {
    padding: 90px 6vw;
    background: var(--accent-wash);
}

.process-header {
    text-align: center;
    margin-bottom: 50px;
}

.process-header .section-title {
    margin-bottom: 20px;
    font-size: 34px;
}

.process-lead {
    font-size: 13px;
    line-height: 2;
}

.fb {
    --fb-gold: var(--accent);
    --fb-navy: var(--accent);
    --fb-ink: var(--ink);
    --fb-cream: white;
    --fb-line: var(--line);
}

.fb .fb-step {
    background: white;
}

.fb .fb-step.on {
    background: var(--accent-fill);
    color: white;
}

.fb .fb-nodes .fb-node.on {
    background: var(--accent);
    color: white;
    border-color: var(--accent);
}

.fb .fb-node {
    background: white;
    border-color: var(--accent);
}

.fb .fb-step.on .fb-node {
    background: transparent;
    color: white;
    border-color: #fff9;
}

.fb .fb-step.on .fb-catch {
    color: white;
}

.fb .fb-nodes .fb-node {
    cursor: default;
}

.fb .fb-d-no {
    color: var(--accent);
    opacity: 1;
}

.fb .fb-d-phase,
.fb .fb-d-catch {
    color: var(--accent);
}

.fb .fb-d-desc {
    font-size: 14px;
    line-height: 2;
}

.fb .fb-vline polyline {
    stroke: var(--accent);
}

.depth-center {
    margin-top: 30px;
}

.depth-link {
    margin: auto;
}

.guide-section {
    padding: 90px 7vw;
    background: white;
}

.download .columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7vw;
    align-items: center;
}

.photo-wipe {
    position: relative;
    overflow: hidden;
}

.photo-wipe img {
    width: 100%;
    height: 600px;
    object-fit: cover;
}

.photo-wipe__mask {
    position: absolute;
    inset: 0 0 0 auto;
    background: white;
    width: 100%;
    z-index: 2;
}

.photo-wipe__trigger {
    position: absolute;
    top: 50%;
    height: 1px;
    width: 100%;
}

.photo-wipe.is-visible .photo-wipe__mask {
    animation: r9-wipe 1.25s cubic-bezier(.76,0,.24,1) forwards;
}

@keyframes r9-wipe {
    to {
        width: 0;
    }
}

.download h2 {
    font-size: 36px;
    margin-bottom: 25px;
}

.download .content-inner>p:not(.meta) {
    font-size: 14px;
    line-height: 2;
}

.delivery-spec {
    margin: 25px 0;
    border-top: 1px solid var(--line);
}

.delivery-spec>div {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 18px;
    border-bottom: 1px solid var(--line);
    padding: 14px 0;
    font-size: 12px;
    line-height: 1.85;
}

.delivery-spec dd {
    margin: 0;
}

.delivery-spec dt {
    color: var(--accent);
}

.download p.delivery-note {
    font-size: 11px!important;
}

.guide-link {
    display: flex;
    gap: 25px;
    justify-content: space-between;
    border-bottom: 1px solid var(--accent);
    padding: 16px 0;
    margin-top: 20px;
    font-size: 13px;
    color: var(--accent);
}

.l-cv {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--accent-deep);
}

.l-cv__section {
    position: relative;
    isolation: isolate;
    min-height: 440px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: white;
    padding: 50px 30px;
    text-align: center;
    overflow: hidden;
}

.l-cv__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.l-cv__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.6);
    transition: transform 1.15s cubic-bezier(.22,1,.36,1),filter .8s;
}

.l-cv__bg:after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(var(--accent-rgb),.47);
    mix-blend-mode: multiply;
}

:root[data-finish=gradient] .l-cv__bg:after {
    background: linear-gradient(110deg,rgba(var(--accent-rgb),.5),#07111c90);
}

.l-cv__section:focus-visible img {
    transform: scale(1.06);
    filter: brightness(.67);
}
@media (hover: hover) and (pointer: fine) {
.l-cv__section:hover img {
    transform: scale(1.06);
    filter: brightness(.67);
}
}

.l-cv__title {
    font-size: 32px;
    line-height: 1.5;
}

.l-cv__text {
    font-size: 13px;
    margin-top: 22px;
    line-height: 2;
}

.l-cv__link {
    font-size: 12px;
    border-bottom: 1px solid #fff8;
    padding-bottom: 11px;
    margin-top: 25px;
}

.faq-list details {
    border-bottom: 1px solid var(--line);
    overflow: hidden;
}

.faq-list details:first-child {
    border-top: 1px solid var(--line);
}

.faq-list summary {
    position: relative;
    list-style: none;
    cursor: pointer;
    padding: 24px 32px 24px 0;
    font-size: 14px;
    line-height: 1.8;
}

.faq-list summary::-webkit-details-marker {
    display: none;
}

.faq-list summary:after {
    content: '+';
    position: absolute;
    right: 0;
    top: 24px;
    transition: transform .32s cubic-bezier(.22,1,.36,1);
    font-size: 20px;
    color: var(--accent);
}

.faq-list details[open] summary:after {
    transform: rotate(45deg);
}

.faq-list p {
    font-size: 13px;
    line-height: 2;
    padding: 0 30px 25px 0;
    color: var(--muted);
}

.zr-band-hint {
    padding: 10px 7vw;
    font-size: 10px;
    color: var(--muted);
    margin: 0;
}

.location-section {
    padding: 85px 7vw;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 6vw;
    align-items: center;
}

.location-heading h2 {
    font-size: 33px;
    margin-bottom: 25px;
}

.studio-name {
    font-size: 23px;
}

.studio-data {
    margin: 25px 0;
}

.studio-data>div {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 20px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    font-size: 13px;
}

.studio-data dt {
    color: var(--muted);
}

.studio-data dd {
    margin: 0;
}

.studio-tel {
    font-size: 22px;
    color: var(--accent);
}

.location-heading>.plain-link {
    font-size: 12px;
}

.location-map-wrap {
    height: 540px;
    position: relative;
}

.location-map {
    position: absolute;
    inset: 0;
    border: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

.location-map.is-loaded {
    opacity: 1;
}

.map-fallback {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.map-static {
    position: relative;
    overflow: hidden;
    height: 100%;
}

.map-static>img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.map-marker {
    position: absolute;
    width: 15px;
    height: 15px;
    border: 3px solid white;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 1px 8px #0007;
}

.map-marker>span {
    position: absolute;
    bottom: 18px;
    left: -45px;
    background: var(--accent);
    color: white;
    padding: 8px;
    font-size: 10px;
    white-space: nowrap;
}

.map-credit {
    font-size: 10px;
    padding: 12px 0;
    color: var(--muted);
    line-height: 1.8;
}

#consult {
    position: relative;
    isolation: isolate;
    min-height: 620px;
    display: grid;
    place-items: center;
    color: white;
    overflow: hidden;
    text-align: center;
}

.contact-film {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.contact-film video {
    height: 100%;
    width: 100%;
    object-fit: cover;
    filter: grayscale(1);
    transform: scale(1.015);
}

.film-shade {
    position: absolute;
    inset: 0;
    background: #0006;
}

.contact-film+.container {
    width: 100%;
    padding: 70px 7vw;
}

.heading-three {
    font-size: clamp(26px,3.2vw,45px);
    line-height: 1.6;
}

.Buttons {
    margin-top: 26px;
}

.btn-primary {
    display: inline-block;
    border: 1px solid #fff9;
    padding: 15px 45px;
    font-size: 13px;
    transition: background .4s;
}

@media (hover: hover) and (pointer: fine) {
.btn-primary:hover {
    background: #fff2;
}
}

.film-toggle {
    position: absolute;
    right: 30px;
    bottom: 36px;
    color: #fff;
    background: none;
    border: 0;
    border-bottom: 1px solid #fff6;
    padding: 8px 0;
    font-size: 10px;
}

.r9-footer {
    position: relative;
    background: var(--accent-deep);
    color: white;
    padding: 70px 6vw 25px;
}

.r9-footer-top {
    display: grid;
    grid-template-columns: 1fr 1.2fr 1.5fr;
    gap: 5vw;
    padding-bottom: 70px;
}

.r9-footer-logo img {
    width: 205px;
    filter: invert(1);
}

.r9-footer-address p {
    font-size: 12px;
    line-height: 2;
    color: #fff9;
}

.r9-footer-tel {
    display: block;
    font-size: 23px;
    margin-top: 18px;
}

.r9-footer-address small {
    display: block;
    color: #fff9;
    font-size: 10px;
}

.r9-footer nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px 22px;
    font-size: 12px;
    align-content: start;
}

@media (hover: hover) and (pointer: fine) {
.r9-footer nav a:hover {
    text-decoration: underline;
    text-underline-offset: 5px;
}
}

.r9-footer-bottom {
    border-top: 1px solid #fff3;
    display: flex;
    gap: 30px;
    align-items: center;
    padding-top: 20px;
    font-size: 10px;
    color: #fff9;
}

.r9-footer-bottom small {
    margin-right: auto;
    font-size: 10px;
}

[data-heading-reveal] {
    overflow: hidden;
}

.reveal-char {
    display: inline-block;
    will-change: transform,opacity;
}

.circle-intro {
    display: none;
}

.circle-intro[data-active] {
    display: grid;
    place-items: center;
    position: fixed;
    inset: 0;
    z-index: 5000;
    background: black;
    color: white;
}

.circle-intro-content {
    display: grid;
    place-items: center;
}

.circle-intro-logo,
.circle-intro-ring {
    grid-area: 1/1;
}

.circle-intro-logo img {
    width: 200px;
    filter: invert(1);
}

.circle-intro-ring {
    width: min(80vh,80vw);
}

.circle-intro-ring svg {
    width: 100%;
    overflow: visible;
}

.circle-intro-ring circle {
    rotate: -90deg;
    transform-origin: center;
    stroke-dasharray: 2510.6;
    stroke-dashoffset: 2510.6;
    stroke-width: 1;
    animation: r9-circle 2.8s cubic-bezier(.65,0,.35,1) forwards;
}

.circle-total {
    opacity: .2;
}

.circle-current {
    opacity: .7;
    animation-delay: .1s!important;
}

@keyframes r9-circle {
    to {
        stroke-dashoffset: 0;
    }
}

.skip-intro {
    position: absolute;
    right: 30px;
    bottom: 30px;
    color: white;
    border: 0;
    border-bottom: 1px solid #fff6;
    background: none;
    font-size: 12px;
}

@media(max-width:1000px) {
    .assembly-header nav {
        gap: 17px;
        font-size: 11px;
    }

    .assembly-header .header-consult {
        padding: 12px;
    }

    .hero-copy {
        padding-top: 75px;
    }

    .recommend-grid h3 {
        font-size: 20px;
    }
}

@media(max-width:760px) {
    body {
        font-size: 14px;
    }

    .assembly-header {
        padding: 20px;
    }

    .assembly-logo img {
        width: 120px;
    }

    .assembly-header nav {
        display: none;
    }

    .assembly-header #menu-button {
        display: block;
    }

    .draft-hero {
        height: 720px;
        min-height: 0;
        max-height: none;
    }

    .hero-copy {
        padding: 75px 24px 110px;
        width: 100%;
        max-width: none;
    }

    .hero-copy h1 {
        font-size: 34px;
        line-height: 1.6;
        letter-spacing: .04em;
        margin-bottom: 25px;
    }

    .hero-copy>p:first-child {
        font-size: 9px;
        margin-bottom: 25px;
    }

    .hero-purpose {
        font-size: 14px;
    }

    .hero-price {
        margin-top: 28px;
        font-size: 12px;
    }

    .hero-price strong {
        font-size: 29px;
    }

    .hero-actions {
        gap: 20px;
        flex-wrap: wrap;
        margin-top: 27px;
    }

    .hero-actions a {
        font-size: 12px;
        gap: 25px;
    }

    .street-hero-caption {
        left: 24px;
        right: 24px;
        display: block;
        bottom: 22px;
        font-size: 8px;
    }

    .street-hero-caption>a:last-child {
        display: block;
        font-size: 7px;
        line-height: 1.8;
        max-width: 270px;
        margin-top: 8px;
    }

    .hero-shade {
        background: linear-gradient(90deg,#101a22aa,#101a2240);
    }

    .draft-hero img {
        object-position: 60% center;
    }

    .photo-window {
        height: 350px;
    }

    .recommend {
        padding: 55px 24px;
    }

    .recommend .section-title {
        margin-bottom: 28px;
    }

    .recommend h2 {
        font-size: 26px;
    }

    .recommend-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .recommend-grid figure {
        margin-bottom: 19px;
    }

    .recommend-grid h3 {
        font-size: 23px;
    }

    .recommend-grid p {
        min-height: 0;
    }

    .recommend-grid article>a {
        margin-top: 5px;
    }

    .recommend-grid h3 br {
        display: none;
    }

    #process {
        padding: 60px 24px;
    }

    .process-header {
        margin-bottom: 30px;
    }

    .process-header .section-title {
        font-size: 26px;
    }

    .process-lead {
        font-size: 12px;
    }

    .process-lead br {
        display: none;
    }

    .fb .fb-jp {
        font-size: 17px;
    }

    .fb .fb-catch {
        font-size: 12px;
    }

    .fb .fb-fold-in p {
        font-size: 13px;
        padding-inline: 22px;
    }

    .guide-section {
        padding: 60px 24px;
    }

    .download .columns {
        display: block;
    }

    .photo-wipe img {
        height: 420px;
    }

    .download .content-inner {
        padding-top: 32px;
    }

    .download h2 {
        font-size: 28px;
        margin-bottom: 20px;
    }

    .download .content-inner>p:not(.meta) {
        font-size: 13px;
    }

    .delivery-spec>div {
        grid-template-columns: 62px 1fr;
        gap: 10px;
    }

    .l-cv {
        grid-template-columns: 1fr;
    }

    .l-cv__section {
        min-height: 380px;
        padding: 40px 24px;
    }

    .l-cv__title {
        font-size: 28px;
    }

    .l-cv__text {
        font-size: 12px;
    }

    .l-cv__link {
        font-size: 11px;
    }

    .faq-list summary {
        font-size: 13px;
    }

    .faq-list p {
        font-size: 12px;
        padding-right: 10px;
    }

    .zr-band-hint {
        padding-inline: 24px;
    }

    .location-section {
        display: block;
        padding: 60px 24px 0;
    }

    .location-heading h2 {
        font-size: 28px;
    }

    .studio-data>div {
        font-size: 12px;
        gap: 12px;
    }

    .location-map-wrap {
        height: 420px;
        margin: 35px -24px 0;
    }

    .location-map-wrap .map-credit {
        padding: 10px 24px;
    }

    #consult {
        min-height: 570px;
    }

    .contact-film+.container {
        padding: 60px 24px;
    }

    .heading-three {
        font-size: 28px;
    }

    .film-toggle {
        right: 24px;
        bottom: 50px;
        font-size: 9px;
    }

    .r9-footer {
        padding: 50px 24px 25px;
    }

    .r9-footer-top {
        grid-template-columns: 1fr;
        gap: 35px;
        padding-bottom: 40px;
    }

    .r9-footer-logo img {
        width: 175px;
    }

    .r9-footer nav {
        grid-template-columns: 1fr 1fr;
        font-size: 12px;
        gap: 15px;
    }

    .r9-footer-bottom {
        flex-wrap: wrap;
        gap: 15px;
        font-size: 9px;
    }

    .r9-footer-bottom small {
        width: 100%;
        font-size: 9px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *:before,
    *:after {
        animation: none!important;
        transition: none!important;
    }

    .photo-wipe__mask {
        display: none;
    }

    .reveal-char {
        opacity: 1!important;
        transform: none!important;
    }

    @media (hover: hover) and (pointer: fine) {
.l-cv__section:hover img {
        transform: none;
    }
}

    .circle-intro {
        display: none!important;
    }
}

@media(max-width:760px) {
    #consult .heading-three {
        font-size: clamp(24px,7vw,28px);
    }
}

.assembly-header nav>a.header-consult {
    transition: background .35s ease,box-shadow .35s ease;
    color: #fff;
}

.assembly-header nav>a.header-consult>span {
    display: inline-block;
    transition: transform .35s cubic-bezier(.22,1,.36,1);
}

.assembly-header nav>a.header-consult:is(:focus-visible) {
    color: #fff;
    background: linear-gradient(135deg,#326e98,#1c4567);
    box-shadow: inset 0 0 0 1px #ffffff50;
}
@media (hover: hover) and (pointer: fine) {
.assembly-header nav>a.header-consult:is(:hover) {
    color: #fff;
    background: linear-gradient(135deg,#326e98,#1c4567);
    box-shadow: inset 0 0 0 1px #ffffff50;
}
}

.assembly-header nav>a.header-consult:is(:focus-visible)>span {
    transform: translate(3px,-3px);
}
@media (hover: hover) and (pointer: fine) {
.assembly-header nav>a.header-consult:is(:hover)>span {
    transform: translate(3px,-3px);
}
}

.assembly-header nav>a.header-consult:focus-visible {
    outline: 2px solid #174c75;
    outline-offset: 4px;
}

@media(prefers-reduced-motion:reduce) {
    .assembly-header nav>a.header-consult,
    .assembly-header nav>a.header-consult>span {
        transition: none;
    }
}

/* 写真の動き */
[data-zr-draft-intro] {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

[data-zr-draft-photo] {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.zr-draft-photo-counter {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

[data-zr-draft-photo]>img,
[data-zr-draft-photo]>video,
.zr-draft-photo-counter>img,
.zr-draft-photo-counter>video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

[data-zr-draft-curtain] {
    position: absolute;
    inset: 0;
    background: #000;
    z-index: 3;
    pointer-events: none;
    transform: translateY(-101%);
}

[data-zr-draft-intro][data-zr-intro-state="ready"] [data-zr-draft-curtain],
[data-zr-draft-intro][data-zr-intro-state="playing"] [data-zr-draft-curtain] {
    transform: translateY(0);
}

[data-zr-draft-copy] {
    position: relative;
    z-index: 2;
}

[data-zr-draft-intro][data-zr-intro-state="ready"] [data-zr-draft-copy] {
    visibility: hidden;
}

.zr-motion-sr-only {
    position: absolute!important;
    width: 1px!important;
    height: 1px!important;
    padding: 0!important;
    margin: -1px!important;
    overflow: hidden!important;
    clip: rect(0,0,0,0)!important;
    white-space: nowrap!important;
    border: 0!important;
}

.zr-draft-char {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
    line-height: inherit;
}

.zr-draft-char>span {
    display: inline-block;
    line-height: inherit;
    will-change: transform;
}

[data-zr-draft-project] {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

[data-zr-draft-project-inner] {
    position: relative;
}

[data-zr-draft-project-inner]>img,
[data-zr-draft-project-inner]>video {
    display: block;
    width: 100%;
    height: auto;
}

[data-zr-draft-project][data-zr-ready="true"] [data-zr-draft-project-inner] {
    visibility: hidden;
}

[data-zr-draft-project][data-zr-shown="true"] [data-zr-draft-project-inner] {
    visibility: visible;
}

.zr-draft-project-mask {
    position: absolute;
    left: 0;
    right: 0;
    overflow: hidden;
    z-index: 2;
    pointer-events: none;
}

.zr-draft-project-curtain {
    position: absolute;
    inset: 0;
    background: #efefef;
    z-index: 2;
    pointer-events: none;
    transform: translateY(101%);
}

[data-zr-details-photo] {
    --zr-details-y: 40px;
    --zr-details-scale: .94;
    --zr-details-delay: 0s;
}

[data-zr-details-photo][data-zr-ready="true"] {
    opacity: 0;
    transform: translateY(var(--zr-details-y));
}

[data-zr-details-photo][data-zr-ready="true"]>img,
[data-zr-details-photo][data-zr-ready="true"]>video {
    transform: scale(var(--zr-details-scale));
    transform-origin: center;
}

[data-zr-details-photo][data-zr-shown="true"] {
    opacity: 1;
    transform: none;
    transition: opacity .4s linear var(--zr-details-delay),transform 1.6s cubic-bezier(.16,1,.3,1) var(--zr-details-delay);
}

[data-zr-details-photo][data-zr-shown="true"]>img,
[data-zr-details-photo][data-zr-shown="true"]>video {
    transform: none;
    transition: transform 1.2s cubic-bezier(.16,1,.3,1) var(--zr-details-delay);
}

@media(min-width:1024px) {
    [data-zr-details-photo] {
        --zr-details-y: 80px;
    }
}

[data-zr-salonia-bands] {
    --zr-band-gap: 22px;
    --zr-band-item-width: 25vw;
    overflow: hidden;
    max-width: 100%;
}

[data-zr-salonia-track] {
    display: flex;
    gap: var(--zr-band-gap);
    width: max-content;
    touch-action: pan-y;
    cursor: grab;
    will-change: transform;
    user-select: none;
}

[data-zr-salonia-track]:active {
    cursor: grabbing;
}

[data-zr-salonia-group] {
    display: flex;
    flex: none;
    gap: var(--zr-band-gap);
}

[data-zr-salonia-group]>* {
    flex: 0 0 var(--zr-band-item-width);
    width: var(--zr-band-item-width);
    margin: 0;
}

[data-zr-salonia-group]>img,
[data-zr-salonia-group]>a>img,
[data-zr-salonia-group]>figure>img {
    width: var(--zr-band-item-width);
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
    pointer-events: none;
    -webkit-user-drag: none;
}

[data-zr-salonia-track]+[data-zr-salonia-track] {
    margin-top: 22px;
}

[data-zr-accorder-photo] {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    aspect-ratio: 2.1/1;
}

[data-zr-accorder-photo]>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

[data-zr-accorder-photo]>img:not(:first-of-type) {
    display: none;
}

[data-zr-accorder-photo]>canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

[data-zr-accorder-photo][data-zr-webgl="ready"]>img {
    opacity: 0;
}

[data-zr-accorder-type] {
    color: var(--ink,#161616);
}

@supports(background-clip:text) {
    [data-zr-accorder-type] {
        background-image: var(--zr-accorder-image);
        background-size: cover;
        background-position: center;
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
    }
}

@media(prefers-reduced-motion:reduce) {
    [data-zr-draft-curtain],
    .zr-draft-project-curtain {
        display: none!important;
    }

    [data-zr-draft-copy],
    [data-zr-draft-project-inner] {
        visibility: visible!important;
    }

    [data-zr-details-photo],
    [data-zr-details-photo]>img,
    [data-zr-details-photo]>video {
        opacity: 1!important;
        transform: none!important;
        transition: none!important;
    }

    [data-zr-draft-photo],
    .zr-draft-photo-counter,
    .zr-draft-photo-counter>img,
    .zr-draft-photo-counter>video,
    .zr-draft-char,
    .zr-draft-char>span {
        transform: none!important;
    }

    [data-zr-accorder-photo]>canvas {
        display: none!important;
    }

    [data-zr-accorder-photo]>img:first-of-type {
        opacity: 1!important;
    }

    [data-zr-salonia-track] {
        will-change: auto;
    }
}

/* 部品 */
.r10-eyebrow {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--accent,#786044);
    margin-bottom: 9px!important;
}

/* コンテンツ */
.r10-eyebrow {
    font-size: 11px;
    letter-spacing: .15em;
    color: var(--accent);
    font-weight: 600;
    margin: 0 0 18px;
}

.r10-text-link {
    display: inline-flex;
    align-items: center;
    gap: 30px;
    border-bottom: 1px solid currentColor;
    padding: 12px 0;
    font-size: 13px;
    color: var(--accent);
}

.r10-text-link span {
    margin-left: auto;
}

.r10-window-section {
    background: #fff;
    padding: 45px 0 0;
}

.r10-window-heading {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 5px 30px;
    padding: 0 6vw 35px;
    align-items: end;
}

.r10-window-heading .r10-eyebrow {
    grid-column: 1/-1;
}

.r10-window-heading h2 {
    font-size: 30px;
}

.r10-window-heading>p:last-child {
    text-align: right;
    font-size: 12px;
    color: var(--muted);
}

.r10-photo-window {
    position: relative;
    height: clamp(360px,44vw,570px);
    overflow: hidden;
    isolation: isolate;
    clip-path: inset(0);
    background: #181c20;
}

.r10-window-plane {
    position: absolute;
    inset: -240px 0 auto;
    height: calc(100% + 480px);
    will-change: transform;
}

.r10-window-plane img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 58%;
}

.r10-photo-window:after {
    position: absolute;
    inset: 0;
    content: '';
    box-shadow: inset 0 20px 24px -25px #000,inset 0 -20px 24px -25px #000;
    pointer-events: none;
}

.r10-photo-window figcaption {
    position: absolute;
    left: 6vw;
    bottom: 28px;
    color: white;
    padding: 8px 12px;
    background: #0008;
    font-size: 11px;
}

.r10-home .recommend {
    padding: 82px 6vw 90px;
    background: #f2f5f7;
}

.r10-home .recommend-grid {
    gap: 36px;
    align-items: stretch;
}

.r10-home .recommend-grid article {
    background: transparent;
    padding: 0;
    position: relative;
    display: flex;
    flex-direction: column;
}

.r10-home .recommend-grid figure {
    margin: 0 0 24px;
    aspect-ratio: 2.5;
    overflow: hidden;
}

.r10-home .recommend-grid figcaption {
    font-size: 9px;
}

.r10-home .recommend-grid .outline-word {
    align-self: flex-start;
    min-height: 0;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: .1em;
    padding: 6px 10px;
    margin: 0 0 16px;
    background: var(--accent-fill);
    color: #fff;
}

.r10-home .recommend-grid h3 {
    font-size: 21px;
    font-weight: 600;
    line-height: 1.65;
    margin-bottom: 17px;
    color: var(--accent-deep);
}

.r10-home .recommend-grid p {
    font-size: 13px;
    line-height: 2;
    min-height: 0;
    margin: 0 0 26px;
    color: #52616b;
}

.r10-home .recommend-grid .recommend-cta {
    font-size: 12px;
    color: var(--accent);
    border-bottom: 1px solid #b8cbd5;
    padding: 15px 0 12px;
    margin-top: auto;
    display: block;
    transition: color .3s,background .3s;
}

.r10-home .recommend-grid .recommend-cta:is(:hover,:focus-visible) {
    color: var(--accent-deep);
    background: #dfebf1;
}

.r10-home .recommend-grid .recommend-cta:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
}

.r10-faq {
    padding: 80px 6vw;
    background: #f0f2f4;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 5vw;
}

.r10-faq h2 {
    font-size: 34px;
    line-height: 1.65;
}

.r10-faq-heading>p:not(.r10-eyebrow) {
    font-size: 13px;
    line-height: 2;
    color: var(--muted);
    margin: 22px 0 18px;
}

.r10-faq-questions {
    display: grid;
    gap: 12px;
}

.r10-faq details {
    background: white;
    border: 1px solid #e1e5e8;
    overflow: hidden;
    align-self: start;
}

.r10-faq summary {
    list-style: none;
    display: grid;
    grid-template-columns: 26px 1fr 25px;
    align-items: start;
    gap: 14px;
    padding: 23px 26px;
    cursor: pointer;
    font-size: 15px;
    line-height: 1.8;
    font-weight: 600;
}

.r10-faq summary::-webkit-details-marker {
    display: none;
}

.r10-faq-q {
    font-size: 20px;
    color: var(--accent);
    font-weight: 400;
    line-height: 1.35;
}

.r10-faq summary>i {
    border: 1px solid #c7cfd7;
    width: 25px;
    height: 25px;
    position: relative;
    border-radius: 50%;
    margin-top: 1px;
}

.r10-faq summary>i:before,
.r10-faq summary>i:after {
    content: '';
    position: absolute;
    left: 6px;
    right: 6px;
    top: 11px;
    height: 1px;
    background: var(--accent);
    transition: transform .35s cubic-bezier(.22,1,.36,1);
}

.r10-faq summary>i:after {
    transform: rotate(90deg);
}

.r10-faq details[open] summary>i:after {
    transform: rotate(0);
}

.r10-faq details[open] summary {
    color: var(--accent);
}

.r10-answer {
    display: grid;
    grid-template-columns: 26px 1fr;
    gap: 14px;
    background: var(--accent-wash);
    padding: 24px 26px 30px;
    border-top: 1px solid #d9e0e6;
}

.r10-faq-a {
    color: var(--accent);
    font-size: 20px;
    line-height: 1.4;
}

.r10-answer h3 {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.8;
    margin-bottom: 10px;
}

.r10-answer p {
    font-size: 13px;
    line-height: 2.1;
    color: #4f5962;
}

.r10-answer a {
    display: inline-block;
    border-bottom: 1px solid var(--accent);
    color: var(--accent);
    font-size: 12px;
    margin-top: 15px;
}

.r10-work-viewport {
    overflow: hidden;
    touch-action: pan-y;
    position: relative;
}

.r10-work-track,
.r10-work-group {
    display: flex;
    gap: 30px;
    width: max-content;
}

.r10-work-group>figure {
    flex: 0 0 var(--work-width,310px);
    width: var(--work-width,310px);
    margin: 0;
}

.r10-work-item {
    display: block;
    width: 100%;
    border: 0;
    background: none;
    padding: 0;
    text-align: left;
    color: inherit;
    cursor: zoom-in;
    position: relative;
}

.r10-work-item>img {
    width: 100%;
    height: auto;
    aspect-ratio: 1.22;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

.r10-work-item>span {
    position: absolute;
    right: 16px;
    bottom: 16px;
    color: white;
    background: #142532d9;
    padding: 9px 13px;
    font-size: 12px;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .25s,transform .35s cubic-bezier(.22,1,.36,1);
}

.r10-work-dialog {
    width: min(1150px,94vw);
    max-width: none;
    max-height: 90dvh;
    padding: 0;
    border: 0;
    background: #fff;
    color: var(--ink);
    overflow: auto;
    overscroll-behavior: contain;
    box-shadow: 0 25px 90px #0008;
}

.r10-work-dialog::backdrop {
    background: #10171edb;
    backdrop-filter: blur(6px);
}

.r10-modal-shell {
    display: grid;
    grid-template-columns: minmax(0,1.65fr) minmax(260px,1fr);
    min-height: 540px;
    position: relative;
}

.r10-modal-image {
    background: #151a1e;
    display: grid;
    place-items: center;
    min-height: 540px;
}

.r10-modal-image img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: 65dvh;
    max-height: 760px;
    object-fit: contain;
}

.r10-modal-copy {
    padding: 75px 35px 35px;
    align-self: center;
}

.r10-modal-close {
    position: absolute;
    right: 14px;
    top: 14px;
    border: 1px solid #bbc2c7;
    background: #fff;
    color: #1b2631;
    z-index: 2;
    min-width: 80px;
    height: 40px;
    padding: 0 15px;
    cursor: pointer;
    font-size: 12px!important;
}

.r10-modal-close span {
    font-size: 20px;
    padding-left: 10px;
}

.r10-modal-copy h2 {
    font-size: 25px;
    line-height: 1.55;
    margin-bottom: 20px;
}

.r10-modal-copy>p:not(.r10-eyebrow) {
    font-size: 14px;
    line-height: 2.1;
    color: #56616b;
}

.r10-modal-copy dl {
    margin: 25px 0;
    border-top: 1px solid var(--line);
}

.r10-modal-copy dl>div {
    display: block;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
    font-size: 12px;
    line-height: 1.9;
}

.r10-modal-copy dt {
    color: var(--muted);
    font-size: 10px;
    margin-bottom: 3px;
}

.r10-modal-copy dd {
    margin: 0;
}

.r10-modal-copy small {
    font-size: 10px;
    color: var(--muted);
    display: block;
    line-height: 1.8;
    margin-top: 20px;
}

.r10-modal-nav {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--line);
    margin-top: 24px;
    padding-top: 20px;
}

.r10-modal-nav button {
    padding: 10px 13px;
    border: 1px solid var(--line);
    background: white;
    cursor: pointer;
    font-size: 12px!important;
}

.r10-modal-nav span {
    font-size: 11px;
    color: var(--muted);
}

html:has(.r10-work-dialog[open]) {
    overflow: hidden;
    scrollbar-gutter: stable;
}

@media(max-width:1000px) {
    .r10-modal-shell {
        grid-template-columns: 1.3fr 1fr;
    }

    .r10-modal-copy {
        padding: 65px 25px 25px;
    }
}

@media(max-width:760px) {
    .r10-window-section {
        padding-top: 10px;
    }

    .r10-window-heading {
        display: block;
        padding: 25px 24px;
    }

    .r10-window-heading h2 {
        font-size: 26px;
    }

    .r10-window-heading>p:last-child {
        text-align: left;
        font-size: 11px;
        margin-top: 14px;
    }

    .r10-photo-window {
        height: 340px;
    }

    .r10-window-plane {
        inset: -180px 0 auto;
        height: calc(100% + 360px);
    }

    .r10-photo-window figcaption {
        left: 20px;
        bottom: 18px;
        font-size: 9px;
    }

    .r10-home .recommend {
        padding: 55px 22px;
    }

    .r10-home .recommend-grid article {
        padding: 0 22px 24px;
    }

    .r10-home .recommend-grid figure {
        margin-inline: -22px;
    }

    .r10-home .recommend-grid p {
        min-height: 0;
    }

    .r10-faq {
        display: block;
        padding: 55px 22px;
    }

    .r10-faq-heading {
        margin-bottom: 28px;
    }

    .r10-faq h2 {
        font-size: 29px;
    }

    .r10-faq-heading>p:not(.r10-eyebrow) {
        margin: 15px 0 8px;
    }

    .r10-faq-heading>p br {
        display: none;
    }

    .r10-faq summary {
        padding: 19px 16px;
        grid-template-columns: 19px 1fr 23px;
        gap: 10px;
        font-size: 13px;
    }

    .r10-faq-q {
        font-size: 17px;
    }

    .r10-faq summary>i {
        width: 23px;
        height: 23px;
    }

    .r10-faq summary>i:before,
    .r10-faq summary>i:after {
        left: 5px;
        right: 5px;
        top: 10px;
    }

    .r10-answer {
        padding: 20px 16px 24px;
        grid-template-columns: 19px 1fr;
        gap: 10px;
    }

    .r10-answer h3 {
        font-size: 14px;
    }

    .r10-answer p {
        font-size: 12px;
    }

    .r10-faq-a {
        font-size: 17px;
    }

    .r10-work-group,
    .r10-work-track {
        gap: 18px;
    }

    .r10-work-dialog {
        width: 94vw;
        max-height: 94dvh;
    }

    .r10-modal-shell {
        display: block;
    }

    .r10-modal-image {
        min-height: 0;
        padding: 48px 0 0;
    }

    .r10-modal-image img {
        height: 41dvh;
        max-height: 440px;
    }

    .r10-modal-copy {
        padding: 27px 24px;
    }

    .r10-modal-copy h2 {
        font-size: 23px;
    }

    .r10-modal-copy>p:not(.r10-eyebrow) {
        font-size: 13px;
    }

    .r10-modal-close {
        position: sticky;
        display: block;
        margin-left: auto;
        top: 0;
        right: 0;
        margin-bottom: -40px;
        min-width: 85px;
        background: #fff;
    }

    .r10-modal-copy small {
        font-size: 10px;
    }
}

@media(max-width:355px) {
    .r10-modal-copy {
        padding: 22px 20px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .r10-window-plane {
        inset: 0;
        height: 100%;
        transform: none!important;
    }

    .r10-work-dialog {
        animation: none;
    }

    .r10-work-track {
        transform: none!important;
    }
}

.r10-work-group figcaption {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-top: 14px;
    font-size: 12px;
}

.r10-work-group figcaption small {
    font-size: 10px;
    color: var(--muted);
}

@media(max-width:760px) {
    .r10-work-group>figure {
        width: 260px;
        flex-basis: 260px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .r10-work-track {
        display: block;
        width: 100%;
        transform: none!important;
    }

    .r10-work-group {
        width: auto;
        margin: 0 6vw;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }

    .r10-work-group>figure {
        width: auto;
    }

    .r10-work-copy {
        display: none!important;
    }
}

@media(prefers-reduced-motion:reduce) and (max-width:600px) {
    .r10-work-group {
        grid-template-columns: 1fr;
    }
}

@keyframes r10-modal-enter {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.r10-work-dialog[open] {
    animation: r10-modal-enter .35s cubic-bezier(.22,1,.36,1);
}

@media(prefers-reduced-motion:reduce) {
    .r10-work-dialog[open] {
        animation: none;
    }
}

.r10-work-item:is(:hover,:focus-visible)>span {
    opacity: 1;
    transform: translateY(0);
}

@media(hover:none) {
    .r10-work-item>span {
        opacity: 1;
        transform: none;
    }
}

.r10-home .studio-data .studio-tel {
    font-size: inherit;
    font-weight: 400;
    color: inherit;
}

.r10-text-link {
    padding: 12px 10px;
    min-height: 44px;
    transition: background-color .22s ease,color .22s ease,box-shadow .22s ease;
}

.r10-text-link span {
    display: inline-block;
    transition: transform .22s ease;
}

.r10-text-link:focus-visible {
    background: var(--accent-wash);
    color: var(--accent-deep);
    box-shadow: inset 0 -2px currentColor;
}
@media (hover: hover) and (pointer: fine) {
.r10-text-link:hover {
    background: var(--accent-wash);
    color: var(--accent-deep);
    box-shadow: inset 0 -2px currentColor;
}
}

.r10-text-link:focus-visible span {
    transform: translate(3px,-3px);
}
@media (hover: hover) and (pointer: fine) {
.r10-text-link:hover span {
    transform: translate(3px,-3px);
}
}

.r10-text-link:focus-visible,
.r10-answer a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 5px;
}

@media (hover: hover) and (pointer: fine) {
.r10-answer a:hover {
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}
}

@media(prefers-reduced-motion:reduce) {
    .r10-text-link,
    .r10-text-link span {
        transition: none;
    }

    .r10-text-link:focus-visible span {
        transform: none;
    }
@media (hover: hover) and (pointer: fine) {
.r10-text-link:hover span {
        transform: none;
    }
}
}

.r10-home .hero-price strong {
    font-size: clamp(44px,4.3vw,60px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.r10-home .hero-price {
    margin-top: 22px;
}

.r10-home .hero-price>.price-note {
    margin-top: 8px;
}

@media(max-width:760px) {
    .r10-home .hero-price strong {
        font-size: 44px;
    }

    .r10-home .hero-price {
        margin-top: 22px;
    }
}

.r10-home .hero-price-line {
    display: inline-flex;
    align-items: baseline;
    gap: 9px;
    white-space: nowrap;
}

.r10-home .hero-price .price-comma {
    font-size: .72em;
    letter-spacing: 0;
    vertical-align: baseline;
    margin-inline: -.06em;
}

.r10-home .hero-price-line>strong {
    font-variant-numeric: lining-nums tabular-nums;
}

.r10-home .hero-actions a {
    position: relative;
    color: #fff;
    transition: background .35s ease,border-color .35s ease;
    isolation: isolate;
}

.r10-home .hero-actions a::before {
    content: "";
    position: absolute;
    inset: -2px -12px;
    z-index: -1;
    background: #ffffff17;
    opacity: 0;
    transform: scaleX(.94);
    transform-origin: left;
    transition: opacity .35s ease,transform .4s cubic-bezier(.22,1,.36,1);
    pointer-events: none;
}

.r10-home .hero-actions a::after {
    content: none;
}

.r10-home .hero-actions a>span:last-child {
    transition: transform .4s cubic-bezier(.22,1,.36,1);
}

.r10-home .hero-actions a:is(:focus-visible) {
    color: #fff;
    border-color: #fff;
}
@media (hover: hover) and (pointer: fine) {
.r10-home .hero-actions a:is(:hover) {
    color: #fff;
    border-color: #fff;
}
}

.r10-home .hero-actions a:is(:focus-visible)::before {
    opacity: 1;
    transform: scaleX(1);
}
@media (hover: hover) and (pointer: fine) {
.r10-home .hero-actions a:is(:hover)::before {
    opacity: 1;
    transform: scaleX(1);
}
}

.r10-home .hero-actions .hero-link:is(:focus-visible)>span:last-child {
    transform: translateY(3px);
}
@media (hover: hover) and (pointer: fine) {
.r10-home .hero-actions .hero-link:is(:hover)>span:last-child {
    transform: translateY(3px);
}
}

.r10-home .hero-actions .hero-consult:is(:focus-visible)>span:last-child {
    transform: translate(3px,-3px);
}
@media (hover: hover) and (pointer: fine) {
.r10-home .hero-actions .hero-consult:is(:hover)>span:last-child {
    transform: translate(3px,-3px);
}
}

.r10-home .hero-actions a:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 7px;
}

.zr-media-about {
    padding: 90px 0 100px 7vw;
    background: #fff;
    color: #193344;
    scroll-margin-top: 100px;
}

.zr-media-about-inner {
    max-width: 1040px;
    margin: 0 auto;
}

.zr-media-about .media-intro {
    font-size: clamp(23px,2.4vw,32px);
    line-height: 1.7;
    font-weight: 600;
    letter-spacing: .035em;
    margin: 0 0 52px;
}

.zr-media-about .media-label {
    font-size: 12px;
    color: #246483;
    letter-spacing: .07em;
    margin: 0 0 12px;
}

.zr-media-about h2 {
    font-size: 40px;
    font-weight: 500;
    letter-spacing: .03em;
    line-height: 1.2;
    margin: 0;
    padding-bottom: 24px;
    border-bottom: 1px solid #cbd4d9;
}

.zr-media-about ul {
    list-style: disc;
    padding-left: 1.3em;
    margin: 32px 0 36px;
    display: grid;
    gap: 17px;
    font-size: 15px;
    line-height: 1.95;
}

.zr-media-about li::marker {
    font-size: .75em;
    color: currentColor;
}

.zr-media-about .media-download {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
    max-width: 400px;
    padding: 19px 24px;
    font-size: 14px;
    background: var(--accent-fill);
    color: #fff;
    text-decoration: none;
    transition: background .35s,box-shadow .35s;
}

.zr-media-about .media-download>span {
    transition: transform .35s cubic-bezier(.22,1,.36,1);
}

.zr-media-about .media-download:is(:focus-visible) {
    background: linear-gradient(135deg,#326e98,#1c4567);
    box-shadow: inset 0 0 0 1px #ffffff50;
}
@media (hover: hover) and (pointer: fine) {
.zr-media-about .media-download:is(:hover) {
    background: linear-gradient(135deg,#326e98,#1c4567);
    box-shadow: inset 0 0 0 1px #ffffff50;
}
}

.zr-media-about .media-download:is(:focus-visible)>span {
    transform: translateY(3px);
}
@media (hover: hover) and (pointer: fine) {
.zr-media-about .media-download:is(:hover)>span {
    transform: translateY(3px);
}
}

.zr-media-about .media-download:focus-visible {
    outline: 2px solid #174c75;
    outline-offset: 4px;
}

@media(max-width:760px) {
    .zr-media-about {
        padding: 60px 0 65px 6vw;
    }

    .media-about-copy {
        padding-right: 6vw;
    }

    .zr-media-about .media-intro {
        font-size: 23px;
        margin-bottom: 35px;
    }

    .zr-media-about h2 {
        font-size: 32px;
    }

    .zr-media-about ul {
        font-size: 14px;
        gap: 15px;
    }

    .zr-media-about .media-download {
        max-width: none;
        font-size: 13px;
        padding: 18px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .r10-home .hero-actions a,
    .r10-home .hero-actions a::before,
    .r10-home .hero-actions a>span:last-child,
    .zr-media-about .media-download,
    .zr-media-about .media-download>span {
        transition: none;
    }
}

.zr-media-about-inner {
    max-width: none;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0,1.1fr) minmax(0,1.16fr);
    align-items: center;
    gap: 5vw;
}

.zr-media-about .media-intro {
    font-size: clamp(23px,2.05vw,29px);
    margin-bottom: 38px;
}

.media-about-photo {
    margin: 0;
    aspect-ratio: 3/2;
    overflow: hidden;
    border-radius: 33.333333% 0 0 33.333333% / 50% 0 0 50%;
    background: #e7ecee;
}

.media-about-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 61% center;
}

@media(max-width:760px) {
    .zr-media-about-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .media-about-photo {
        grid-row: 2;
        width: 100%;
    }
}

@media(max-width:760px) {
    .r10-home .recommend {
        padding: 56px 6vw 62px;
    }

    .r10-home .recommend-grid {
        gap: 42px;
    }

    .r10-home .recommend-grid figure {
        aspect-ratio: 2.5;
    }

    .r10-home .recommend-grid h3 {
        font-size: 22px;
    }

    .r10-home .recommend-grid p {
        min-height: 0;
    }

    .r10-home .recommend-grid .recommend-cta {
        margin-top: 0;
    }
}

.media-about-photo {
    position: relative;
    isolation: isolate;
    overflow: visible;
    margin-bottom: 24px;
}

.media-about-photo img {
    border-radius: inherit;
    position: relative;
    box-shadow: -6px 10px 24px #16476526;
}

.media-about-photo::before {
    content: "";
    position: absolute;
    inset: 12px 0 -12px -12px;
    border-radius: inherit;
    pointer-events: none;
    z-index: -1;
    background: var(--accent-fill);
}

.r10-home .recommend-grid {
    gap: 24px;
}

.r10-home .recommend-grid article {
    padding: 0;
}

.r10-home .recommend-grid .recommend-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 20px 18px 24px;
    border: 0;
    position: relative;
    isolation: isolate;
    background: transparent;
    color: inherit;
    text-decoration: none;
}

.r10-home .recommend-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(140deg,#fff,#ffffffed);
    box-shadow: 0 0 28px #ffffffb3;
    opacity: 0;
    transform: scale(.96);
    transition: opacity .35s ease,transform .4s cubic-bezier(.22,1,.36,1);
}

.r10-home .recommend-grid .recommend-card figure {
    width: 88%;
    margin: 0 auto 24px;
    aspect-ratio: 2.1;
    overflow: hidden;
}

.r10-home .recommend-card figure img {
    transition: transform .65s cubic-bezier(.22,1,.36,1);
    transform: scale(1);
}

.r10-home .recommend-grid .recommend-cta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin-top: auto;
}

.r10-home .recommend-card:is(:hover,:focus-visible)::before {
    opacity: 1;
    transform: scale(1);
}

.r10-home .recommend-card:is(:hover,:focus-visible) figure img {
    transform: scale(1.045);
}

.r10-home .recommend-card:is(:hover,:focus-visible) .recommend-cta {
    color: var(--accent-deep);
    border-color: var(--accent);
}

.r10-home .recommend-card:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

@media(max-width:760px) {
    .media-about-photo::before {
        inset: 8px 0 -8px -8px;
    }

    .r10-home .recommend-grid .recommend-card {
        padding: 18px 12px 22px;
    }

    .r10-home .recommend-grid .recommend-card figure {
        width: 88%;
        aspect-ratio: 2.1;
    }

    .r10-home .recommend-grid {
        gap: 24px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .r10-home .recommend-card,
    .r10-home .recommend-card::before,
    .r10-home .recommend-card figure img {
        transition: none;
    }

    .r10-home .recommend-card::before,
    .r10-home .recommend-card:is(:hover,:focus-visible) figure img {
        transform: none;
    }
}

/* 掲載料金 */
.zr-selected-pricing {
    --plan-blue: #91c3df;
    --plan-outer: #edf2f5;
    --plan-surface: linear-gradient(145deg,#246483 0%,#153e56 65%,#123346 100%);
    box-sizing: border-box;
    background: var(--plan-outer);
    color: #fff;
    padding: 84px max(28px,calc((100vw - 1360px)/2));
    font-family: Arial,'Hiragino Sans','Yu Gothic',Meiryo,sans-serif;
    scroll-margin-top: 76px;
}

.zr-selected-pricing * {
    box-sizing: border-box;
}

.zr-selected-pricing h2,
.zr-selected-pricing h3,
.zr-selected-pricing p {
    margin: 0;
}

.zr-pricing-heading {
    margin: 0 0 40px;
    color: #172d3b;
}

.zr-pricing-heading>p:first-child {
    font-size: 12px;
    letter-spacing: .12em;
    color: #376b87;
    margin-bottom: 16px;
}

.zr-pricing-heading h2 {
    font-size: clamp(28px,3vw,42px);
    font-weight: 500;
    letter-spacing: .03em;
    line-height: 1.4;
    margin-bottom: 16px;
}

.zr-pricing-heading>p:last-child {
    font-size: 14px;
    color: #4b6371;
    line-height: 1.8;
}

.zr-price-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 20px;
}

.zr-price-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--plan-surface);
    border: 2px solid transparent;
    border-radius: 30px;
    padding: 32px 26px;
    transition: border-color .3s;
    cursor: default;
}

.zr-price-card:focus-within {
    border-color: var(--plan-blue);
}
@media (hover: hover) and (pointer: fine) {
.zr-price-card:hover {
    border-color: var(--plan-blue);
}
}

.zr-price-card header {
    padding-bottom: 26px;
    border-bottom: 1px solid #ffffff1a;
}

.zr-price-card h3 {
    font-size: 22px;
    line-height: 1.6;
    font-weight: 600;
    letter-spacing: .015em;
    white-space: nowrap;
}

.zr-price-cost,
.zr-price-spec,
.zr-price-term {
    text-align: center;
    padding: 26px 0;
    border-bottom: 1px solid #ffffff1a;
}

.zr-price-label {
    font-size: 16px;
    line-height: 1.6;
    color: #e1e4ea;
    margin-bottom: 14px!important;
}

.zr-price-amount {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
    white-space: nowrap;
    line-height: 1.2;
}

.zr-price-amount strong {
    font-family: Arial,sans-serif;
    font-size: clamp(28px,2.7vw,40px);
    font-weight: 700;
    font-variant-numeric: lining-nums tabular-nums;
    letter-spacing: -.025em;
}

.zr-price-amount>span {
    font-size: 16px;
}

.zr-price-sub {
    margin-top: 20px!important;
    font-size: 12px;
    line-height: 1.8;
    min-height: 22px;
    color: #d9dfe7;
}

.zr-price-sub-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 5px;
    transition: color .2s;
}

@media (hover: hover) and (pointer: fine) {
.zr-price-sub-link:hover {
    color: #8ed0f5;
}
}

.zr-price-screens {
    font-size: 26px;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 8px!important;
}

.zr-price-spec>p:last-child,
.zr-price-term>p:last-child {
    font-size: 12px;
    line-height: 1.8;
    color: #d9dfe7;
}

.zr-price-term {
    margin-bottom: 26px;
    min-height: 156px;
}

.zr-price-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 50px;
    margin-top: auto;
    padding: 14px 12px;
    border-radius: 57px;
    background: #f3f7fa;
    color: #153f57!important;
    text-decoration: none!important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    transition: background .25s,box-shadow .25s;
}

.zr-price-button span {
    display: inline-block;
    transition: transform .25s;
}

@media (hover: hover) and (pointer: fine) {
.zr-price-button:hover {
    background: #dcecf6;
    box-shadow: 0 0 0 1px #77b8db;
}
}

@media (hover: hover) and (pointer: fine) {
.zr-price-button:hover span {
    transform: translate(2px,-2px);
}
}

.zr-price-card a:focus-visible {
    outline: 3px solid #9ed9fc;
    outline-offset: 5px;
}

.zr-price-notes {
    margin-top: 28px;
    color: #526673;
}

.zr-price-notes p {
    font-size: 12px;
    line-height: 1.9;
}

.zr-price-notes p+p {
    margin-top: 4px;
}

@media(max-width:1100px) {
    .zr-price-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .zr-price-amount strong {
        font-size: 40px;
    }

    .zr-price-card {
        padding: 32px;
    }
}

@media(max-width:600px) {
    .zr-selected-pricing {
        padding: 54px 20px;
    }

    .zr-price-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .zr-pricing-heading {
        margin-bottom: 28px;
    }

    .zr-price-card {
        padding: 28px;
    }

    .zr-price-card h3 {
        font-size: 23px;
        white-space: normal;
    }

    .zr-price-cost,
    .zr-price-spec,
    .zr-price-term {
        padding: 22px 0;
    }

    .zr-price-button {
        font-size: 14px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .zr-selected-pricing * {
        transition: none!important;
    }
}

.zr-plan-strength {
    font-size: 11px;
    line-height: 1.7;
    color: #9ecbe5;
    margin-top: 9px!important;
    min-height: 38px;
}

.zr-price-card header {
    padding-bottom: 22px;
}

.zr-plan-common {
    color: #173d53;
    display: flex;
    flex-wrap: wrap;
    gap: 26px 48px;
    margin: 0 0 34px;
    padding-bottom: 26px;
    border-bottom: 1px solid #becdd5;
}

.zr-plan-common p {
    display: flex;
    align-items: baseline;
    gap: 12px;
    line-height: 1.8;
}

.zr-plan-common span {
    font-size: 12px;
    color: #526c7d;
}

.zr-plan-common strong {
    font-size: 19px;
    font-weight: 500;
}

.zr-price-sub {
    min-height: 44px;
}

.zr-price-volume {
    text-align: center;
    padding: 26px 0;
    border-bottom: 1px solid #ffffff1a;
}

.zr-volume-value {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 4px;
    line-height: 1.4;
    white-space: nowrap;
}

.zr-volume-value strong {
    font-family: Arial,sans-serif;
    font-variant-numeric: lining-nums tabular-nums;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.zr-volume-value span {
    font-size: 13px;
    color: #d9dfe7;
}

.zr-price-volume>p:last-child {
    font-size: 11px;
    color: #bdc9d5;
    line-height: 1.8;
    margin-top: 10px;
}

.zr-price-term .zr-competition-value {
    font-size: 20px;
    line-height: 1.6;
    font-weight: 500;
    margin: 0 0 8px;
}

.zr-set-difference {
    color: #173d53;
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 24px;
    align-items: baseline;
    margin-top: 32px;
    padding: 24px 0;
    border-top: 1px solid #becdd5;
    border-bottom: 1px solid #becdd5;
}

.zr-set-difference h3 {
    font-size: 18px;
    font-weight: 500;
}

.zr-set-difference p {
    font-size: 14px;
    line-height: 1.9;
    color: #4b6371;
}

@media(max-width:1100px) {
    .zr-plan-strength {
        min-height: 0;
    }
}

@media(max-width:600px) {
    .zr-plan-common {
        display: grid;
        gap: 8px;
    }

    .zr-plan-common p {
        justify-content: space-between;
    }

    .zr-plan-common strong {
        font-size: 17px;
    }

    .zr-set-difference {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .zr-price-sub {
        min-height: 0;
    }

    .zr-price-volume {
        padding: 22px 0;
    }
}

/* お知らせ */
.zr-selected-news {
    box-sizing: border-box;
    padding: 90px max(6vw,calc((100vw - 1200px)/2)) 100px;
    background: #fafaf8;
    color: #172d3b;
    scroll-margin-top: 80px;
    font-family: Arial,'Hiragino Sans','Yu Gothic',Meiryo,sans-serif;
}

.zr-selected-news * {
    box-sizing: border-box;
}

.zr-news-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 28px;
    margin-bottom: 22px;
}

.zr-news-heading p {
    margin: 0 0 14px;
    font-size: 11px;
    letter-spacing: .14em;
    color: #276384;
}

.zr-news-heading :is(h1,h2) {
    margin: 0;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: .04em;
}

.zr-news-index {
    display: flex;
    gap: 32px;
    padding: 10px 0;
    font-size: 12px;
    text-decoration: none;
    border-bottom: 1px solid #adb8bd;
    color: inherit;
    transition: color .3s,border-color .3s;
}

@media (hover: hover) and (pointer: fine) {
.zr-news-index:hover {
    color: #236f9d;
    border-color: currentColor;
}
}

.zr-news-group {
    display: grid;
    grid-template-columns: 3fr 7fr;
    align-items: baseline;
    padding-top: 38px;
    border-top: 1px solid #c8cfd1;
}

.zr-news-group+.zr-news-group {
    margin-top: 36px;
}

.zr-news-group .zr-news-month {
    margin: 0;
    padding: 0 24px 0 0;
    font-size: 26px;
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.4;
    font-variant-numeric: lining-nums tabular-nums;
}

.zr-news-group ul {
    list-style: none;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.zr-news-group li+li {
    border-top: 1px solid #dfe3e3;
}

.zr-news-link {
    display: block;
    position: relative;
    color: inherit!important;
    text-decoration: none!important;
    padding: 0 0 30px;
}

.zr-news-group li+li .zr-news-link {
    padding-top: 32px;
}

.zr-news-link h3 {
    margin: 0 0 34px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.85;
    letter-spacing: .035em;
    transition: color .35s cubic-bezier(.22,1,.36,1);
}

.zr-news-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 11px;
    line-height: 1.6;
    color: #64717a;
}

.zr-news-meta time {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.zr-news-category {
    font-size: 10px;
}

.zr-news-more {
    display: flex;
    align-items: center;
    gap: 13px;
    position: relative;
    margin-left: auto;
    color: #23688e;
    white-space: nowrap;
}

.zr-news-more>span {
    opacity: 1;
    transform: translateX(0);
    transition: opacity .28s,transform .39s cubic-bezier(.22,1,.36,1);
}

.zr-news-more::before {
    content: '';
    height: 1px;
    width: 48px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .39s cubic-bezier(.22,1,.36,1);
}

.zr-news-link:is(:focus-visible) h3 {
    color: #23688e;
}
@media (hover: hover) and (pointer: fine) {
.zr-news-link:is(:hover) h3 {
    color: #23688e;
}
}

.zr-news-link:is(:focus-visible) .zr-news-more>span {
    opacity: 1;
    transform: translateX(0);
}
@media (hover: hover) and (pointer: fine) {
.zr-news-link:is(:hover) .zr-news-more>span {
    opacity: 1;
    transform: translateX(0);
}
}

.zr-news-link:is(:focus-visible) .zr-news-more::before {
    transform: scaleX(1);
}
@media (hover: hover) and (pointer: fine) {
.zr-news-link:is(:hover) .zr-news-more::before {
    transform: scaleX(1);
}
}

.zr-selected-news a:focus-visible {
    outline: 2px solid #23688e;
    outline-offset: 7px;
}

.zr-news-archive {
    padding-top: 90px;
}

@media(max-width:700px) {
    .zr-selected-news {
        padding: 64px 24px;
    }

    .zr-news-heading :is(h1,h2) {
        font-size: 27px;
    }

    .zr-news-heading {
        gap: 16px;
    }

    .zr-news-index {
        font-size: 11px;
        gap: 12px;
    }

    .zr-news-group {
        grid-template-columns: 1fr;
        gap: 27px;
        padding-top: 28px;
    }

    .zr-news-group .zr-news-month {
        font-size: 22px;
    }

    .zr-news-link h3 {
        font-size: 16px;
        margin-bottom: 24px;
    }

    .zr-news-more::before {
        display: none;
    }

    .zr-news-more>span {
        opacity: 1;
        transform: none;
        font-size: 10px;
    }

    .zr-news-meta {
        gap: 12px;
        flex-wrap: wrap;
    }

    .zr-news-more {
        gap: 6px;
    }

    .zr-news-group+.zr-news-group {
        margin-top: 22px;
    }

    .zr-news-archive {
        padding-top: 64px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .zr-selected-news * {
        transition: none!important;
    }
}

/* ページ共通 */
.zr-price-card {
    padding: 24px 20px;
    border-radius: 24px;
}

.zr-price-card header {
    padding-bottom: 16px;
}

.zr-price-card h3 {
    font-size: 20px;
    line-height: 1.5;
    font-weight: 600;
}

.zr-plan-strength {
    min-height: 20px;
    margin-top: 5px!important;
    font-size: 11px;
}

.zr-price-cost,
.zr-price-spec,
.zr-price-volume {
    padding: 18px 0;
}

.zr-price-label {
    font-size: 12px;
    line-height: 1.6;
    margin-bottom: 7px!important;
}

.zr-price-amount strong {
    font-size: clamp(30px,2.8vw,40px);
}

.zr-price-sub {
    margin-top: 10px!important;
    min-height: 38px;
    line-height: 1.6;
    font-size: 11px;
}

.zr-price-screens {
    font-size: 23px;
    line-height: 1.4;
    margin-bottom: 3px!important;
}

.zr-volume-value strong {
    font-size: 29px;
}

.zr-price-volume>p:last-child {
    margin-top: 4px;
}

.zr-price-term {
    padding: 14px 0;
    min-height: 99px;
    margin-bottom: 18px;
    border-bottom: 0;
}

.zr-price-term .zr-competition-value {
    font-size: 17px;
    line-height: 1.5;
    margin: 0 0 3px;
}

.zr-price-term>p:last-child {
    font-size: 11px;
}

.zr-price-button {
    min-height: 46px;
    padding: 12px 8px;
}

.zr-pricing-heading {
    margin-bottom: 26px;
}

.zr-plan-common {
    padding-bottom: 18px;
    margin-bottom: 24px;
}

.zr-set-difference {
    margin-top: 24px;
    padding: 16px 0;
}

.zr-price-notes {
    margin-top: 18px;
}

.final-strength {
    padding: 100px 6vw 90px;
    background: #fff;
    color: #193d54;
    scroll-margin-top: 90px;
}

.final-strength-heading {
    text-align: center;
    margin-bottom: 48px;
}

.final-strength-heading>p:first-child,
.final-company .eyebrow {
    font-size: 11px;
    letter-spacing: .14em;
    color: #376b87;
}

.final-strength-heading h2 {
    font-size: clamp(27px,3vw,40px);
    line-height: 1.55;
    font-weight: 500;
    margin: 14px 0 20px;
}

.final-strength-heading>p:last-child {
    font-size: 14px;
    line-height: 1.9;
    color: #53636f;
}

.final-strength-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 4.5vw;
}

.final-strength-grid article {
    min-width: 0;
}

.final-strength-grid figure {
    margin: 0 0 25px;
    aspect-ratio: 1.25;
    overflow: hidden;
}

.final-strength-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.final-strength-grid h3 {
    text-align: center;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.7;
    margin: 0 0 16px;
}

.final-strength-grid p {
    font-size: 14px;
    line-height: 2;
    color: #4b5b65;
    margin: 0;
}

.final-strength-grid .strength-source {
    font-size: 10px;
    line-height: 1.8;
    margin-top: 12px;
    color: #697680;
}

.final-strength-grid a {
    color: inherit;
    text-underline-offset: 4px;
    transition: color .25s;
}

.final-strength-grid a:hover {
    color: #246f9c;
}

.final-company {
    margin-top: 50px;
    padding-top: 32px;
    border-top: 1px solid #ccd7dd;
    display: grid;
    grid-template-columns: 1fr 1.5fr auto;
    gap: 30px;
    align-items: center;
}

.final-company h3 {
    font-size: 24px;
    font-weight: 500;
    margin: 8px 0;
}

.final-company p {
    font-size: 13px;
    line-height: 1.9;
    margin: 0;
    color: #53636f;
}

.final-company a,
.finish-link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    color: #1e5674;
    font-size: 14px;
    text-decoration: none;
    border-bottom: 1px solid #96b3c4;
    padding: 14px 0;
    transition: color .3s,background .3s;
}

.final-company a:hover {
    color: #113146;
    background: #edf5fa;
}
@media (hover: hover) and (pointer: fine) {
.finish-link:hover {
    color: #113146;
    background: #edf5fa;
}
}

.final-company a:focus-visible,
.finish-link:focus-visible {
    outline: 2px solid #277ea9;
    outline-offset: 4px;
}

.finish-page {
    padding: 75px 7vw 90px;
    color: #243e4d;
    background: #fff;
    min-height: 65vh;
}

.finish-page .page-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7vw;
    padding-bottom: 55px;
    margin-bottom: 45px;
    border-bottom: 1px solid #c6d3dc;
    align-items: end;
}

.finish-page .eyebrow {
    font-size: 11px;
    color: #376b87;
    letter-spacing: .14em;
    margin: 0 0 18px;
}

.finish-page h1 {
    font-size: clamp(30px,4vw,52px);
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
}

.finish-page .page-intro p {
    font-size: 15px;
    line-height: 2;
    margin: 0;
}

.finish-page h2 {
    font-size: 25px;
    font-weight: 500;
    margin: 0 0 25px;
    line-height: 1.6;
}

.finish-page p {
    line-height: 2;
    font-size: 15px;
}

.finish-page .profile-layout {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 7vw;
    margin-top: 55px;
}

.finish-page figure {
    margin: 0;
}

.finish-page figure img {
    width: 100%;
    height: auto;
    display: block;
}

.finish-page .profile-table {
    margin: 0;
}

.profile-table>div {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 22px;
    padding: 20px 0;
    border-bottom: 1px solid #d8e0e5;
    font-size: 14px;
    line-height: 1.9;
}

.profile-table dt {
    color: #637581;
}

.profile-table dd {
    margin: 0;
}

.profile-table a {
    color: inherit;
    text-underline-offset: 5px;
}

.finish-page .service-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6vw;
    margin: 70px 0;
    align-items: center;
    scroll-margin-top: 100px;
}

.finish-page .service-block img {
    width: 100%;
    aspect-ratio: 1.5;
    object-fit: cover;
}

.finish-page .service-block:nth-child(even) figure {
    order: 2;
}

.finish-page ul {
    padding-left: 1.2em;
    font-size: 14px;
    line-height: 2;
}

.finish-news-body {
    max-width: 760px;
    margin: 0 auto;
}

.finish-news-body h2 {
    margin-top: 40px;
}

.finish-news-body .news-date {
    font-size: 12px;
    color: #607887;
}

.finish-page iframe {
    width: 100%;
    height: 400px;
    border: 0;
    margin-top: 30px;
}

@media(max-width:1100px) {
    .zr-price-card {
        padding: 24px;
    }

    .final-company {
        grid-template-columns: 1fr 1.5fr;
    }

    .final-company>a {
        grid-column: 2;
    }

    .final-strength-grid {
        gap: 24px;
    }

    .final-strength-grid h3 {
        font-size: 18px;
    }
}

@media(max-width:700px) {
    .final-strength {
        padding: 64px 24px;
    }

    .final-strength-heading {
        margin-bottom: 32px;
        text-align: left;
    }

    .final-strength-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .final-strength-grid figure {
        aspect-ratio: 1.6;
        margin-bottom: 20px;
    }

    .final-strength-grid h3 {
        text-align: left;
        font-size: 21px;
    }

    .final-strength-grid h3 br {
        display: none;
    }

    .final-company {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 36px;
    }

    .final-company>a {
        grid-column: auto;
        justify-self: start;
    }

    .finish-page {
        padding: 45px 24px 60px;
    }

    .finish-page .page-intro {
        grid-template-columns: 1fr;
        gap: 24px;
        padding-bottom: 32px;
    }

    .finish-page .profile-layout,
    .finish-page .service-block {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .finish-page .service-block {
        margin: 45px 0;
    }

    .finish-page .service-block:nth-child(even) figure {
        order: 0;
    }

    .profile-table>div {
        grid-template-columns: 80px 1fr;
        gap: 12px;
    }

    .finish-page iframe {
        height: 300px;
    }
}

@media(max-width:600px) {
    .zr-price-card {
        padding: 24px;
    }

    .zr-price-card header {
        padding-bottom: 14px;
    }

    .zr-price-card h3 {
        font-size: 22px;
    }

    .zr-price-card .zr-price-term:empty {
        display: none;
    }

    .zr-price-sub {
        min-height: 0;
    }

    .zr-price-term {
        min-height: 0;
    }

    .zr-price-button {
        margin-top: 18px;
    }

    .zr-price-amount strong {
        font-size: 36px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .final-strength *,
    .finish-page * {
        transition: none!important;
    }
}

.zr-price-card p+p {
    margin-top: 0;
}

.zr-price-card .zr-price-cost,
.zr-price-card .zr-price-spec,
.zr-price-card .zr-price-volume {
    padding: 16px 0;
}

/* 採用 */
.zr-recruit-detail {
    --rec-ink: #172b3c;
    --rec-muted: #586775;
    --rec-line: #d7dfe5;
    --rec-blue: #235f8a;
    color: var(--rec-ink);
}

.zr-recruit-detail * {
    box-sizing: border-box;
}

.zr-recruit-detail a {
    color: inherit;
    text-decoration: none;
}

.zr-recruit-detail figure {
    margin: 0;
}

.zr-rec-kicker {
    font-size: 12px!important;
    font-weight: 650;
    letter-spacing: .13em;
    line-height: 1.5!important;
    margin: 0 0 22px!important;
}

.zr-recruit-detail a:focus-visible,
.zr-recruit-detail summary:focus-visible {
    outline: 2px solid #2d77a9;
    outline-offset: 5px;
}

.zr-recruit-detail {
    padding: 130px 0 0;
    background: #f7f8f9;
}

.zr-rec-section {
    padding: 78px 6vw;
    scroll-margin-top: 90px;
}

.zr-rec-session {
    background: var(--accent-fill,linear-gradient(135deg,#286c98,#153c60));
    color: white;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7vw;
}

.zr-rec-session h2 {
    font-size: clamp(30px,3vw,45px);
    line-height: 1.5;
    margin: 0 0 20px;
}

.zr-rec-session p {
    font-size: 14px;
    line-height: 2;
    margin: 0 0 24px;
}

.zr-rec-session dl {
    font-size: 13px;
    margin: 0;
}

.zr-rec-session dl>div {
    display: grid;
    grid-template-columns: 95px 1fr;
    border-top: 1px solid #ffffff40;
    padding: 13px 0;
}

.zr-rec-session dt {
    opacity: .8;
}

.zr-rec-session dd {
    margin: 0;
    line-height: 1.8;
}

.zr-rec-program {
    margin: 0;
    padding: 0;
    list-style: none;
}

.zr-rec-program li {
    padding: 16px 0;
    border-top: 1px solid #ffffff40;
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 14px;
}

.zr-rec-program li>span {
    font-size: 12px;
    opacity: .7;
}

.zr-rec-program h3 {
    font-size: 17px;
    line-height: 1.5;
    margin: 0 0 7px;
}

.zr-rec-program p {
    font-size: 12px;
    line-height: 1.8;
    margin: 0;
    color: #ffffffcc;
}

.zr-rec-session-note {
    font-size: 12px!important;
    opacity: .8;
    margin: 20px 0 0!important;
}

.zr-rec-requirements {
    display: grid;
    grid-template-columns: 25% 1fr;
    gap: 6vw;
}

.zr-rec-requirements h2 {
    font-size: 32px;
    line-height: 1.5;
    margin: 0 0 20px;
}

.zr-rec-requirements>div>p {
    font-size: 13px;
    line-height: 1.95;
    color: var(--rec-muted);
}

.zr-rec-terms {
    margin: 0;
    border-top: 1px solid var(--rec-line);
}

.zr-rec-terms>div {
    display: grid;
    grid-template-columns: 135px 1fr;
    gap: 25px;
    padding: 17px 0;
    border-bottom: 1px solid var(--rec-line);
    font-size: 13px;
    line-height: 1.9;
}

.zr-rec-terms dt {
    font-weight: 650;
}

.zr-rec-terms dd {
    margin: 0;
}

.zr-rec-terms small {
    color: var(--rec-muted);
    font-size: 11px;
}

@media(max-width:760px) {
    .zr-recruit-detail {
        padding-top: 104px;
    }

    .zr-rec-section {
        padding: 50px 5vw;
    }

    .zr-rec-session {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .zr-rec-session h2 {
        font-size: 32px;
    }

    .zr-rec-session dl>div {
        grid-template-columns: 75px 1fr;
    }

    .zr-rec-requirements {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .zr-rec-requirements h2 {
        font-size: 28px;
    }

    .zr-rec-terms>div {
        grid-template-columns: 90px 1fr;
        gap: 14px;
        font-size: 12px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .zr-recruit-detail * {
        transition: none!important;
        scroll-behavior: auto!important;
    }
}

.zr-rec-subhero {
    padding: 0 6vw 55px;
    border-bottom: 1px solid var(--rec-line);
}

.zr-rec-subhero>a {
    display: inline-block;
    font-size: 12px;
    border-bottom: 1px solid #9bafbe;
    margin-bottom: 40px;
    padding-bottom: 4px;
}

.zr-rec-subhero h1 {
    font-size: clamp(35px,4.2vw,58px);
    line-height: 1.5;
    margin: 0 0 23px;
    font-weight: 600;
}

.zr-rec-subhero>p:last-child {
    font-size: 14px;
    line-height: 2;
    max-width: 720px;
    margin: 0;
}

.zr-rec-action {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    padding: 18px 22px;
    background: var(--accent-fill,linear-gradient(135deg,#286c98,#153c60));
    color: #fff!important;
    font-size: 13px;
    font-weight: 600;
    min-width: 230px;
    transition: filter .3s;
}

.zr-rec-action>span {
    transition: transform .3s;
}

.zr-rec-action:focus-visible {
    filter: brightness(1.16);
}
@media (hover: hover) and (pointer: fine) {
.zr-rec-action:hover {
    filter: brightness(1.16);
}
}

@media (hover: hover) and (pointer: fine) {
.zr-rec-action:hover>span {
    transform: translate(3px,-3px);
}
}

.zr-rec-entry-callout {
    display: flex;
    justify-content: space-between;
    gap: 35px;
    align-items: center;
}

.zr-rec-entry-callout h2 {
    font-size: 26px;
    line-height: 1.6;
    margin: 0 0 12px;
}

.zr-rec-entry-callout p {
    font-size: 13px;
    line-height: 1.9;
    margin: 0;
}

.zr-rec-entry-callout {
    background: #e8eff4;
}

@media(max-width:760px) {
    .zr-rec-subhero {
        padding: 0 5vw 35px;
    }

    .zr-rec-subhero>a {
        margin-bottom: 30px;
    }

    .zr-rec-subhero h1 {
        font-size: 34px;
    }

    .zr-rec-entry-callout {
        display: block;
    }

    .zr-rec-entry-callout h2 {
        font-size: 24px;
    }

    .zr-rec-action {
        margin-top: 24px;
        width: 100%;
        min-width: 0;
    }
}

/* 料金プランの推薦表示 */
.zr-selected-pricing{--set-surface:linear-gradient(145deg,#173c50 0%,#102b3b 60%,#0a202e 100%);--set-edge:#5d7888;--set-ink:#bccdd7;--set-button:#e7edf1;--set-button-ink:#193444}
.zr-selected-pricing .zr-price-grid{align-items:stretch;padding-top:0}
.zr-selected-pricing .zr-price-card{border-radius:24px;padding:24px 20px;transition:none}
.zr-selected-pricing .zr-recommended{position:relative;margin-top:0;background:var(--set-surface);border-color:var(--set-edge);box-shadow:inset 0 0 0 1px #ffffff04,0 10px 24px #14263112}
.zr-selected-pricing .zr-price-card h3{font-size:21px}
.zr-selected-pricing .zr-recommended h3{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;white-space:normal}
.zr-selected-pricing .zr-recommend-inline{font-size:10px;font-weight:500;line-height:1.6;letter-spacing:.04em;white-space:nowrap;padding:3px 7px;border:1px solid var(--set-edge);border-radius:4px;color:var(--set-ink);background:#ffffff08}
.zr-selected-pricing .zr-recommended .zr-plan-strength{color:var(--set-ink)}
.zr-selected-pricing .zr-recommended .zr-price-label,.zr-selected-pricing .zr-recommended .zr-price-sub{color:#e0e4e6}
.zr-selected-pricing .zr-recommended .zr-price-button{background:var(--set-button);color:var(--set-button-ink)!important}
@media (hover: hover) and (pointer: fine) {
.zr-selected-pricing .zr-recommended .zr-price-button:hover {filter:brightness(.92);box-shadow:none}
}
.zr-selected-pricing .zr-recommended:focus-within {border-color:var(--set-ink)}
@media (hover: hover) and (pointer: fine) {
.zr-selected-pricing .zr-recommended:hover {border-color:var(--set-ink)}
}
.zr-selected-pricing .zr-recommended a:focus-visible{outline-color:var(--set-ink)}
@media(max-width:1100px){.zr-selected-pricing .zr-price-card{padding:28px}}
@media(max-width:600px){.zr-selected-pricing .zr-price-card{padding:24px}.zr-selected-pricing .zr-price-card h3{font-size:22px}}

/* タッチ操作 */
@media (max-width: 1100px), (any-pointer: coarse) {
    .r13-footer.p-site-footer .p-site-footer__group a {
        min-height: 48px;
        width: 100%;
        align-items: center;
    }
    .r13-footer.p-site-footer .r9-footer-bottom a,
    .r13-footer.p-site-footer .r9-footer-tel {
        display: inline-flex;
        align-items: center;
        min-height: 48px;
    }
}

/* メニューの文字拡大 */
html #mobile-menu:not([hidden]) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(8em, calc((100% - 26px) / 2))), 1fr));
}
html #mobile-menu .nav-item .nav-en,
html #mobile-menu .nav-item .nav-ja {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* 狭い画面での文字拡大 */
@media (max-width: 760px) {
    .r10-home .draft-hero {
        height: auto;
        min-height: 720px;
    }
    .r10-home .hero-price-line {
        max-width: 100%;
        flex-wrap: wrap;
    }
    .r10-home .hero-actions a {
        max-width: 100%;
        white-space: normal;
    }
}
@media (max-width: 700px) {
    html .r14-recruit .r15-detail-link {
        width: max-content;
        min-width: 164px;
        max-width: 100%;
        white-space: normal;
    }
}
