/* 実写調の山道と、寄り添うパートナー。 */
.dd-final-cta { position: relative; background: #071c2c; color: #fff; }
.dd-final-cta.is-journey-ready { height: 155vh; }
.dd-final-cta__stage { position: sticky; top: var(--journey-header, 88px); display: flex; align-items: center; height: calc(100svh - var(--journey-header, 88px)); min-height: 600px; overflow: hidden; isolation: isolate; background: #071c2c; }
.dd-final-cta__landscape { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.dd-final-cta__photo { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 75% 46%; transform-origin: 76% 46%; transform: scale(var(--journey-scale, 1.065)); }
.dd-final-cta__stage::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, #071c2cf5 0%, #071c2ce8 25%, #071c2cb3 44%, #071c2c30 63%, transparent 78%), linear-gradient(0deg, #071c2c80, transparent 35%); }
.dd-final-cta__inner { position: relative; width: var(--dd-home-content-width); margin: auto; padding-block: 64px; }
.dd-final-cta__content { max-width: 49%; }
.dd-final-cta__eyebrow { margin: 0 0 26px; color: #c0d68f; font-size: 11px; font-weight: 700; letter-spacing: .24em; }
.dd-final-cta__title { margin: 0; font-size: clamp(31px, 3.45vw, 56px); font-weight: 600; line-height: 1.5; letter-spacing: .035em; }
.dd-final-cta__text { margin: 26px 0 0; color: #e1e8ed; font-size: clamp(13px, 1.1vw, 17px); line-height: 2; }
.dd-final-cta__button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 32px; min-height: 52px; padding: .8rem 1.25rem; border: 2px solid transparent; border-radius: .5rem; background: #b9dc50; color: #242424; font-weight: 700; text-decoration: none; transition: background .2s, transform .2s; }
.dd-final-cta__button:hover { background: #c9e77b; transform: translateY(-2px); }
.dd-final-cta__button:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.dd-final-cta__caption { position: absolute; right: max(4vw, 24px); bottom: 26px; margin: 0; color: #fff; font-size: 12px; font-weight: 500; letter-spacing: .15em; text-shadow: 0 1px 6px #071c2c; }
@media (max-width: 1000px) and (min-width: 701px) {
 .dd-final-cta__stage { min-height: 560px; height: 72svh; }
 .dd-final-cta__content { max-width: 52%; }
 .dd-final-cta__title { font-size: clamp(29px, 3.6vw, 36px); }
 .dd-final-cta__photo { object-position: 72% center; }
 .dd-final-cta__text br { display: none; }
}
@media (max-width: 700px) {
 .dd-final-cta.is-journey-ready { height: auto; }
 .dd-final-cta__stage { position: relative; top: auto; display: block; height: auto; min-height: 0; }
 .dd-final-cta__landscape { position: relative; inset: auto; height: clamp(310px, 85vw, 480px); z-index: -2; }
 .dd-final-cta__photo { object-position: 79% 42%; }
 .dd-final-cta__stage::before { display: none; }
 .dd-final-cta__landscape::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #071c2c 0%, #071c2c33 20%, transparent 43%); }
 .dd-final-cta__inner { width: calc(100% - 40px) !important; padding: 0 0 46px; margin-top: -4px; }
 .dd-final-cta__content { max-width: none; }
 .dd-final-cta__eyebrow { margin-bottom: 16px; }
 .dd-final-cta__title { font-size: clamp(28px, 7.4vw, 40px); line-height: 1.45; }
 .dd-final-cta__text { margin-top: 20px; font-size: 14px; line-height: 1.9; }
 .dd-final-cta__text br { display: none; }
 .dd-final-cta__button { width: 100%; margin-top: 24px; }
 .dd-final-cta__caption { position: static; margin: 0 20px; padding-bottom: 28px; font-size: 11px; color: #b8c8d3; }
}
@media (prefers-reduced-motion: reduce) {
 .dd-final-cta.is-journey-ready { height: auto; }
 .dd-final-cta__stage { position: relative; top: auto; }
 .dd-final-cta__photo { transform: none; }
 .dd-final-cta__button { transition: none; }
}
