@charset "UTF-8";

/* Reference-faithful first view. PC and SP use separate generated photo assets. */
.p-heroV2 {
    --fv-navy: #062f75;
    --fv-red: #ed0700;
    position: relative;
    /* The photograph may extend to 2000px, while the designed content stays at 1300px. */
    width: min(100%,2000px);
    height: min(calc((100vw - 40px) * .5628),731.64px);
    margin: 0 auto;
    overflow: hidden;
    background: #dff2ff;
    color: var(--fv-navy);
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
.p-heroV2::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,rgba(255,255,255,.06) 0 48%,transparent 65%); pointer-events: none; }
.p-heroV2 *, .p-heroV2 *::before, .p-heroV2 *::after { box-sizing: border-box; }
.p-heroV2__background { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; margin: 0; }
.p-heroV2__background img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.p-heroV2__canvas { position: absolute; z-index: 1; top: 0; bottom: 0; left: 50%; width: min(calc(100% - 40px),1300px); container-type: inline-size; transform: translateX(-50%); }
.p-heroV2__person { position: absolute; right: 0; bottom: 0; display: block; width: auto; height: 90%; }
.p-heroV2__logo { position: absolute; top: 2.2%; left: 50%; width: 17.2%; margin: 0; transform: translateX(-50%); }
.p-heroV2__logo img { display: block; width: 100%; height: auto; }
.p-heroV2__area { position: absolute; top: 10.4%; left: 3.15%; display: flex; align-items: center; width: 37.6%; height: 7.2%; margin: 0; padding: 0 3.2% 0 2.4%; clip-path: polygon(0 0,95.5% 0,100% 50%,95.5% 100%,0 100%); border-radius: .35cqw; background: linear-gradient(90deg,#073b9e,#0752c8 75%,#063da2); color: #fff; font-size: clamp(2rem,2.23cqw,3.75rem); font-weight: 900; letter-spacing: .025em; white-space: nowrap; text-shadow: 0 .08em .12em rgba(0,31,94,.32); }
.p-heroV2__area span { margin-left: .15em; font-size: .86em; }
.p-heroV2__problem { position: absolute; top: 20.1%; left: 4.5%; margin: 0; font-size: clamp(2.2rem,2.45cqw,4.1rem); font-weight: 900; letter-spacing: -.025em; line-height: 1.2; white-space: nowrap; }
.p-heroV2__message { position: absolute; top: 27%; left: 4.5%; margin: 0; font-weight: 900; letter-spacing: -.07em; line-height: .98; }
.p-heroV2__message p { margin: 0; white-space: nowrap; }
.p-heroV2__messageNavy { font-size: clamp(4.5rem,4.86cqw,8.15rem); }
.p-heroV2__messageNavy small { margin-left: .12em; font-size: .55em; }
.p-heroV2__messageRed { margin-top: .12em !important; color: var(--fv-red); font-size: clamp(4.6rem,4.92cqw,8.25rem); }
.p-heroV2__sub { position: absolute; top: 49.5%; left: 4.7%; margin: 0; font-size: clamp(2.35rem,2.48cqw,4.15rem); font-weight: 900; line-height: 1; white-space: nowrap; }
.p-heroV2__sub strong { margin-right: .25em; color: var(--fv-red); font-size: 1.08em; }
.p-heroV2__prices { position: absolute; top: 56.6%; left: 4.8%; display: flex; align-items: center; width: 51%; height: 9.2%; }
.p-heroV2__priceItem { display: flex; align-items: center; height: 100%; }
.p-heroV2__priceItem:first-child { width: 41%; }
.p-heroV2__priceItem:nth-of-type(2) { width: 27%; padding-left: 3%; }
.p-heroV2__priceLabel { flex: none; margin-right: 2.5%; font-size: clamp(1.75rem,1.82cqw,3.05rem); font-weight: 900; line-height: 1.28; }
.p-heroV2__priceNumber { color: var(--fv-red); font: 900 clamp(4.1rem,4.66cqw,7.8rem)/.85 Arial,sans-serif; letter-spacing: -.055em; }
.p-heroV2__priceUnit { align-self: center; margin-left: .22em; color: var(--fv-red); font-size: clamp(1.6rem,1.75cqw,2.9rem); font-weight: 900; line-height: 1.15; white-space: nowrap; }
.p-heroV2__priceUnit small { display: block; font-size: .72em; }
.p-heroV2__priceDivider { width: 1px; height: 82%; border-left: 2px dotted rgba(22,101,192,.56); }
.p-heroV2__lowPrice { position: relative; display: flex; align-items: center; justify-content: center; width: 25.5%; height: 72%; margin: 0; clip-path: polygon(12% 0,100% 0,100% 100%,12% 100%,0 50%); background: rgba(51,129,209,.68); filter: drop-shadow(0 .3cqw .45cqw rgba(3,54,115,.16)); font-size: clamp(1.55rem,1.65cqw,2.75rem); font-weight: 900; white-space: nowrap; }
.p-heroV2__lowPrice::before { position: absolute; inset: 1px; clip-path: polygon(12% 0,100% 0,100% 100%,12% 100%,0 50%); background: rgba(238,248,255,.96); content: ""; }
.p-heroV2__lowPrice span { position: relative; z-index: 1; }
.p-heroV2__badges { position: absolute; top: 67.2%; left: 3.15%; display: flex; gap: 2.2%; width: 52.3%; margin: 0; padding: 0; list-style: none; }
.p-heroV2__badge { position: relative; flex: 0 0 30.3%; aspect-ratio: 1; }
.p-heroV2__badge img { display: block; width: 100%; height: 100%; object-fit: contain; }
.p-heroV2__badge + .p-heroV2__badge::before { display: none; }
.p-heroV2__bottomBar { display: none; }

/* First-view follow-up contact band. */
.p-heroBand { position: relative; z-index: 3; overflow: hidden; background: linear-gradient(90deg,#16398d 0%,#2449a7 50%,#153889 100%); }
.p-heroBand *, .p-heroBand *::before, .p-heroBand *::after { box-sizing: border-box; }
.p-heroBand__inner { display: grid; grid-template-columns: 9.8% 11.6% minmax(0,33.5%) minmax(0,28.2%) minmax(0,16.9%); align-items: center; justify-content: center; gap: 0; width: min(calc(100% - 40px),1300px); height: 136px; margin: 0 auto; }
.p-heroBand__item { display: flex; align-items: center; justify-content: center; min-width: 0; height: 108px; overflow: hidden; }
.p-heroBand__license,
.p-heroBand__operator,
.p-heroBand__message,
.p-heroBand__mail img { display: block; max-width: 100%; height: auto; }
.p-heroBand__license,
.p-heroBand__operator { width: 100%; height: 100%; object-fit: contain; }
.p-heroBand__operator { clip-path: polygon(0 0,100% 0,100% 50%,87% 50%,87% 66%,100% 66%,100% 100%,0 100%); object-position: center bottom; }
.p-heroBand__message { width: 100%; clip-path: polygon(0 0,100% 0,100% 100%,5% 100%,5% 45%,0 45%); object-fit: contain; }
.p-heroBand__phone { display: flex; width: 100%; height: 100%; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.p-heroBand__phone a,
.p-heroBand__mail { display: block; text-decoration: none; }
.p-heroBand__free { display: flex; flex: 0 0 31px; align-items: center; justify-content: center; width: 76%; height: 31px; margin: 0; padding: 0 .55em; background: #ffef00; color: #052e70; font-size: clamp(1rem,1.2vw,1.6rem); font-weight: 900; line-height: 1; white-space: nowrap; }
.p-heroBand__free strong { margin-left: .28em; color: #f20b0b; font-size: 1.34em; line-height: 1; }
.p-heroBand__phone a { display: flex; flex: 0 0 64px; align-items: center; justify-content: center; width: 100%; height: 64px; overflow: hidden; }
.p-heroBand__phoneNumber { display: block; max-width: 100%; color: #fff; font: 900 clamp(2.5rem,3vw,4.4rem)/1 Arial,"Helvetica Neue",sans-serif; letter-spacing: -.055em; text-align: center; white-space: nowrap; text-shadow: 0 1px 2px rgba(0,22,74,.35); }
.p-heroBand__mail { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.p-heroBand__mail img { width: 100%; max-height: 92px; clip-path: inset(0 0 0 5.5%); object-fit: contain; }

.u-brSp { display: none; }

/* Causes diagram directly below the first view. */
.p-causesV2 { padding: 30px 0 42px; background: radial-gradient(circle at 50% 42%,#07579a 0,#064884 36%,#03356f 72%,#022d63 100%); color: #fff; font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
.p-causesV2 *, .p-causesV2 *::before, .p-causesV2 *::after { box-sizing: border-box; }
.p-causesV2__inner { width: min(calc(100% - 40px),1120px); margin: 0 auto; }
.p-causesV2__en { margin: 0; color: #55a5d0; font-size: 1.8rem; font-weight: 800; letter-spacing: .04em; text-align: center; }
.p-causesV2__title { margin: 5px 0 0; color: #fff; font-size: clamp(3.2rem,3.55vw,4.6rem); font-weight: 900; letter-spacing: .015em; line-height: 1.27; text-align: center; }
.p-causesV2__title em { color: #ffef3a; font-style: normal; }
.p-causesV2__lead { margin: 20px 0 0; font-size: clamp(1.55rem,1.55vw,2rem); font-weight: 700; line-height: 1.65; text-align: center; }
.p-causesV2__lead strong { color: #fff200; font-weight: 900; }
.p-causesV2__diagram { position: relative; height: 532px; margin-top: 22px; border-radius: 9px; background: linear-gradient(135deg,#fff,#f7f7f7); box-shadow: 0 5px 18px rgba(0,24,60,.22); overflow: hidden; }
.p-causesV2__diagramTitle { position: absolute; z-index: 5; top: 24px; left: 50%; margin: 0; color: #333; font-size: clamp(1.75rem,1.9vw,2.5rem); font-weight: 800; line-height: 1.35; text-align: center; transform: translateX(-50%); white-space: nowrap; }
.p-causesV2__diagramTitle strong { color: #f0440d; font-size: 1.28em; font-weight: 900; }
.p-causesV2__house { position: absolute; z-index: 1; top: 116px; left: 28%; width: 44%; }
.p-causesV2__house > img { display: block; width: 100%; height: auto; }
.p-causesV2__pin { display: none; }
.p-causesV2__lines { position: absolute; z-index: 2; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; }
.p-causesV2__photos { margin: 0; padding: 0; list-style: none; }
.p-causesV2__photo { position: absolute; z-index: 3; width: 20%; border: 2px solid #f04a12; background: #fff; overflow: hidden; }
.p-causesV2__photo h3 { display: flex; align-items: center; justify-content: center; height: 38px; margin: 0; padding: 0 12px; background: linear-gradient(180deg,#f54e15,#ed3c08); color: #fff; font-size: clamp(1.25rem,1.35vw,1.75rem); font-weight: 900; text-align: center; white-space: nowrap; }
.p-causesV2__photo h3 span { display: none; }
.p-causesV2__photo img { display: block; width: 100%; height: 118px; object-fit: cover; }
.p-causesV2__photo--1 { top: 18px; left: 7.5%; }
.p-causesV2__photo--2 { top: 190px; left: 7.5%; }
.p-causesV2__photo--3 { top: 362px; left: 7.5%; }
.p-causesV2__photo--5 { top: 20px; right: 7.5%; }
.p-causesV2__photo--4 { top: 352px; right: 7.5%; }
.p-causesV2__cases { margin-top: 23px; }
.p-causesV2__cases h3 { margin: 0; color: #ffef00; font-size: clamp(2rem,2.35vw,3rem); font-weight: 900; text-align: center; }
.p-causesV2__cases ul { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.p-causesV2__cases li { display: grid; place-items: center; min-height: 82px; padding: 10px; border-radius: 9px; background: linear-gradient(145deg,#fff,#f5f5f5); box-shadow: 0 3px 9px rgba(0,23,55,.2); color: #053877; font-size: clamp(1.45rem,1.65vw,2.05rem); font-weight: 900; line-height: 1.45; text-align: center; }

@media (min-width: 768px) {
    .p-heroBand__item--license { height: 122px; }
    .p-heroBand__license { flex: none; width: 122px; height: 122px; max-width: none; }
    .p-heroBand__item--operator { align-self: stretch; height: 136px; align-items: flex-end; overflow: hidden; }
    .p-heroBand__operator { flex: none; width: auto; height: 148px; max-width: none; object-position: center bottom; transform: translateY(12px); }
    .p-heroBand__item--message { position: relative; z-index: 2; justify-content: flex-start; overflow: visible; }
    .p-heroBand__item--mail { position: relative; z-index: 3; overflow: visible; }
    .p-heroBand__message { width: calc(100% + 48px); max-width: none; transform: translateX(-48px); }
    .p-heroBand__free { transform: translateY(9px); }
    .p-heroBand__phoneNumber { font-size: clamp(2.5rem,3vw,4.4rem); letter-spacing: -.025em; }
    .p-heroBand__mail img { width: 112%; max-width: none; max-height: 100px; transform: translateX(-2%); }
    .p-heroV2__priceItem:nth-of-type(2) .p-heroV2__priceLabel,
    .p-heroV2__priceItem:nth-of-type(2) .p-heroV2__priceNumber { height: 54px; }
    .p-heroV2__priceItem:nth-of-type(2) .p-heroV2__priceNumber { font-size: clamp(4.6rem,5.2cqw,8.7rem); line-height: .9; }
    .p-causesV2__photo--1 img,
    .p-causesV2__photo--2 img,
    .p-causesV2__photo--3 img { height: 110px; }
}

/* Desktop sticky CTA reuses the exact FV-band markup and component styles. */
@media (min-width: 769px) {
    :root { --cta-h: 136px; }

    .p-fixedCta {
        height: var(--cta-h);
        border-top: 0;
        background: linear-gradient(90deg,#16398d 0%,#2449a7 50%,#153889 100%);
        overflow: hidden;
    }

    .p-fixedCta__inner { padding: 0; }
}

@media (min-width: 1260px) {
    .p-heroBand__inner { grid-template-columns: 110px 130px 360px 330px 190px; }
    .p-heroBand__message { width: 450px; transform: translateX(-55px); }
    .p-heroBand__mail img { width: 198px; transform: translateX(-8px); }
    .p-heroBand__phoneNumber { font-size: 4rem; }
    .p-heroBand__phone { transform: translateX(12px); }
    .p-heroBand__mail img { width: 206px; transform: translateX(-18px); }
}

/* Footer contains only the legal line. */
.l-footer { min-height: 0; padding: 14px 0; background: #183d96; }
.l-footer__copy { margin: 0; color: #fff; font-size: 1.2rem; font-weight: 700; }

body:not(.is-hero-passed) .p-fixedCta { visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(100%); }
body.is-hero-passed .p-fixedCta { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.p-fixedCta { transition: opacity .2s ease,transform .2s ease,visibility .2s; }
body:not(.is-hero-passed) .c-pagetop { opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 767px) {
    /* --- SP first view. Centred headline stack over a sky gradient, price block as a
       card, figure clipped by the section's bottom edge, badge row across his chest. --- */
    .p-heroV2 { width: 100%; height: auto; max-height: none; aspect-ratio: 941 / 1375; margin: 0; background: linear-gradient(180deg,#f4fbff 0,#e3f3ff 42%,#cfe9fb 100%); }
    .p-heroV2__background { top: auto; bottom: 0; display: block; height: 52%; -webkit-mask-image: linear-gradient(180deg,transparent 0,#000 26%); mask-image: linear-gradient(180deg,transparent 0,#000 26%); }
    .p-heroV2__background img { object-position: 28% 42%; transform: scaleX(-1); }
    .p-heroV2::before { z-index: 1; background: linear-gradient(180deg,rgba(255,255,255,.55) 0 22%,rgba(255,255,255,.28) 40%,rgba(255,255,255,0) 56%); }
    .p-heroV2__canvas { inset: 0; width: auto; max-width: none; background: none; transform: none; }
    .p-heroV2__person { z-index: 3; display: block; right: -16.9%; top: 52%; bottom: auto; height: 48%; }

    .p-heroV2__logo { top: 3.4%; width: 36%; }
    /* Centred banner, chevron on both ends. */
    .p-heroV2__area { top: 12.1%; left: 50%; width: 88%; height: 6.3%; padding: 0 4%; clip-path: polygon(0 50%,4.5% 0,95.5% 0,100% 50%,95.5% 100%,4.5% 100%); border-radius: 0; font-size: clamp(1.45rem,4.6vw,1.85rem); justify-content: center; transform: translateX(-50%); }
    .p-heroV2__area span { font-size: .94em; }
    /* Rules either side of the problem line. */
    .p-heroV2__problem { top: 19.8%; left: 50%; display: flex; align-items: center; justify-content: center; gap: 3vw; width: 92%; font-size: clamp(1.4rem,4.4vw,1.75rem); transform: translateX(-50%); }
    .p-heroV2__problem::before,
    .p-heroV2__problem::after { flex: none; width: 7vw; height: 2px; background: currentColor; content: ""; }
    .p-heroV2__message { top: 24.2%; left: 50%; width: 100%; letter-spacing: -.07em; line-height: .98; text-align: center; transform: translateX(-50%); }
    .p-heroV2__messageNavy { font-size: clamp(3.6rem,11.5vw,4.5rem); }
    .p-heroV2__messageRed { margin-top: .1em !important; font-size: clamp(3.95rem,12.6vw,4.9rem); }

    /* Price card: __sub is its navy header, __prices the body, __lowPrice the tab below. */
    .p-heroV2__sub { display: none; }
    .p-heroV2__prices { z-index: 1; top: 42.5%; left: 6%; display: grid; grid-template-columns: auto 1px auto; align-items: center; justify-content: center; column-gap: 4vw; width: 64.8%; height: 22.2%; padding: 9.6vw 1.5vw 0; border: 2px solid #0b3b8f; border-radius: 2.2vw; background: rgba(255,255,255,.97); box-shadow: 0 .8vw 2vw rgba(3,40,100,.18); }
    .p-heroV2__priceItem { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; align-items: end; justify-content: center; min-width: 0; height: auto; padding: 0; }
    .p-heroV2__priceItem:first-child { width: auto; padding: 0; }
    .p-heroV2__priceItem:nth-of-type(2) { width: auto; padding: 0; }
    .p-heroV2__priceLabel { grid-column: 1 / -1; margin: 0 0 3%; font-size: clamp(1.4rem,4.3vw,1.75rem); line-height: 1.1; text-align: center; white-space: nowrap; }
    .p-heroV2__priceLabel br { display: none; }
    .p-heroV2__priceNumber { font-size: clamp(3.8rem,12.3vw,4.75rem); }
    .p-heroV2__priceUnit { align-self: end; margin: 0 0 .12em .18em; font-size: clamp(1.3rem,4.1vw,1.65rem); }
    .p-heroV2__priceDivider { height: 62%; border-left: 2px dotted rgba(22,101,192,.5); }
    .p-heroV2__lowPrice { position: absolute; top: 0; right: 0; bottom: auto; left: 0; width: auto; height: 9.6vw; margin: 0; padding: 0; clip-path: none; border-radius: calc(2.2vw - 2px) calc(2.2vw - 2px) 0 0; background: #0b3b8f; color: #fff; font-size: clamp(1.5rem,4.6vw,1.9rem); font-weight: 800; filter: none; transform: none; }
    .p-heroV2__lowPrice::before { display: none; }

    .p-heroV2__badges { z-index: 4; top: 76%; left: 50%; justify-content: center; gap: 2%; width: 94%; transform: translateX(-50%); }
    .p-heroV2__badge { flex: 0 0 31%; }
    .p-heroV2__badge img { filter: drop-shadow(0 .4vw 1vw rgba(2,26,66,.34)); }
    .p-heroV2__badge + .p-heroV2__badge::before { display: none; }
    .p-heroV2__bottomBar { position: absolute; z-index: 5; right: 0; bottom: 0; left: 0; display: block; height: 3%; background: linear-gradient(90deg,#073d9a,#064db7,#073d9a); }

    .p-heroBand__inner { grid-template-columns: 18% 24% minmax(0,54%); grid-template-rows: 68px 70px; grid-template-areas: "license operator message" "phone phone mail"; gap: 6px 2%; width: min(calc(100% - 16px),520px); height: 156px; padding: 6px 0; }
    .p-heroBand__item { height: 100%; }
    .p-heroBand__item--license { grid-area: license; }
    .p-heroBand__item--operator { grid-area: operator; }
    .p-heroBand__item--message { grid-area: message; }
    .p-heroBand__item--phone { grid-area: phone; }
    .p-heroBand__item--mail { grid-area: mail; }
    .p-heroBand__license,
    .p-heroBand__operator { width: 100%; height: 100%; }
    .p-heroBand__message { width: 100%; }
    .p-heroBand__free { flex-basis: 22px; width: 78%; height: 22px; padding: 0 .35em; font-size: clamp(.82rem,2.75vw,1.05rem); }
    .p-heroBand__phone { gap: 0; }
    .p-heroBand__phone a { flex-basis: 41px; height: 41px; }
    .p-heroBand__phoneNumber { font-size: clamp(2rem,6vw,2.5rem); }
    .p-heroBand__mail img { max-height: 60px; }

    .p-causesV2 { padding: 20px 0 30px; }
    .p-causesV2__inner { width: min(calc(100% - 20px),680px); }
    .p-causesV2__en { font-size: 1.4rem; }
    .p-causesV2__title { margin-top: 6px; font-size: clamp(2.7rem,8.2vw,3.25rem); line-height: 1.22; }
    .p-causesV2__lead { margin-top: 14px; font-size: clamp(1.25rem,3.7vw,1.45rem); letter-spacing: -.015em; line-height: 1.55; }
    .p-causesV2__lead strong { display: inline; }
    .p-causesV2__diagram { height: auto; margin-top: 17px; padding: 13px 8px 12px; border-radius: 8px; overflow: visible; }
    .p-causesV2__diagramTitle { position: static; font-size: clamp(1.75rem,5.5vw,2.2rem); line-height: 1.28; transform: none; white-space: normal; }
    .p-causesV2__house { position: relative; top: auto; left: auto; width: 78%; margin: 8px auto 0; }
    .p-causesV2__pin { position: absolute; z-index: 3; display: grid; place-items: center; width: 28px; height: 28px; border: 2px solid #f0440d; border-radius: 50%; background: #fff; color: #f0440d; font-size: 1.65rem; font-weight: 900; line-height: 1; }
    .p-causesV2__pin--1 { top: 3%; left: 32%; }
    .p-causesV2__pin--2 { top: 37%; left: 8%; }
    .p-causesV2__pin--3 { top: 75%; left: 2%; }
    .p-causesV2__pin--4 { top: 70%; right: 3%; }
    .p-causesV2__pin--5 { top: 34%; right: 1%; }
    .p-causesV2__lines { display: none; }
    .p-causesV2__photos { display: grid; grid-template-columns: repeat(6,1fr); gap: 6px; margin-top: 3px; }
    .p-causesV2__photo { position: static; width: auto; border-width: 2px; border-radius: 6px; }
    .p-causesV2__photo:nth-child(-n+3) { grid-column: span 2; }
    .p-causesV2__photo--4 { grid-column: 2 / span 2; }
    .p-causesV2__photo--5 { grid-column: span 2; }
    .u-brSp { display: inline; }
    .p-causesV2__photo h3 { justify-content: center; height: auto; min-height: 10.5vw; padding: 2px 3px; font-size: clamp(1.1rem,3.4vw,1.35rem); letter-spacing: -.03em; line-height: 1.28; white-space: normal; }
    .p-causesV2__photo h3 span { display: inline; margin-right: .15em; font-size: 1.15em; }
    .p-causesV2__photo img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
    .p-causesV2__cases { margin-top: 18px; }
    .p-causesV2__cases h3 { font-size: clamp(1.9rem,5.9vw,2.35rem); line-height: 1.35; }
    .p-causesV2__cases ul { grid-template-columns: repeat(2,1fr); gap: 8px; margin-top: 12px; }
    .p-causesV2__cases li { min-height: 66px; padding: 8px 5px; font-size: clamp(1.25rem,4vw,1.55rem); }
}

@media (max-width: 359px) {
    .p-heroV2__area { font-size: 1.45rem; }
    .p-heroV2__problem { font-size: 1.42rem; }
    .p-heroV2__messageNavy { font-size: 3rem; }
    .p-heroV2__messageRed { font-size: 3.25rem; }
    .p-heroV2__sub { font-size: 1.75rem; }
    .p-heroV2__priceLabel { font-size: 1.08rem; }
    .p-heroV2__priceNumber { font-size: 3.4rem; }
    .p-heroV2__priceUnit { font-size: 1.08rem; }
    .p-heroV2__lowPrice { font-size: 1.08rem; }
    /* Keep legacy sections from widening the 320px viewport below the FV. */
    .p-insurance__link { width: 100%; min-width: 0; padding-right: 12px; padding-left: 56px; }
    .p-cost__tabs { width: 100%; gap: 4px; }
    .p-cost__tab { width: auto; min-width: 0; padding-right: 8px; padding-left: 8px; }
}

@media (prefers-reduced-motion: reduce) { .p-fixedCta { transition: none; } }
