/* ▼ CTAバナー */
.cta-banner {
    background: #FFF8D8;
    padding: 18px 0 22px;
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    box-sizing: border-box;
}
.cta-banner .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    max-width: 1170px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.cta-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 100%;
}
.cta-label {
    font-size: 16px;
    font-weight: 500;
    color: #3E3A39;
    text-align: center;
}
.cta-label .num      { font-size: 26px; font-weight: 600; color: #E51F4D; line-height: 1; }
.cta-label .num-unit { font-size: 20px; color: #E51F4D; }
.cta-button {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    max-width: 340px;
    height: 64px;
    border-radius: 50px;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.3));
    box-shadow: inset 0 4px 4px rgba(255,255,255,0.25);
    transition: opacity 0.2s ease;
}
.cta-button--trial { background: #E6204D; }
.cta-button--doc   { background: #ED6C00; }
.cta-button--trial::before {
    content: "";
    position: absolute;
    display: block;
    background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.9));
    width: 50px;
    height: 50px;
    top: -60px;
    left: -60px;
    animation: cta-shine-run 3s ease-in infinite;
}
@keyframes cta-shine-run {
    0%   { transform: scale(0)   rotate(50deg); opacity: 0; }
    40%  { transform: scale(1)   rotate(50deg); opacity: 1; }
    60%  { transform: scale(30)  rotate(50deg); opacity: 0; }
    100% { transform: scale(250) rotate(50deg); opacity: 0; }
}
.cta-button:hover { text-decoration: none; opacity: 0.85; }
.cta-button .label { font-size: clamp(16px, 5vw, 22px); white-space: nowrap; }
.cta-button .label .small { font-size: 0.9em; }
.cta-button .arrow {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 9px 0 9px 14px;
    border-color: transparent transparent transparent #fff;
    transition: transform 0.2s ease;
}
.cta-button:hover .arrow { transform: translateX(4px); }

@media (min-width: 768px) {
    .cta-banner { padding: 40px 0; }
    .cta-banner .inner { flex-direction: row; }
    .cta-block { flex: 1; min-width: 0; }
    .cta-label { font-size: 24px; }
    .cta-label .num { font-size: 36px; }
    .cta-label .num-unit { font-size: 24px; }
    .cta-button { width: 100%; max-width: 440px; height: 80px; }
    .cta-button .label { font-size: clamp(18px, 2.5vw, 26px); }
}
/* ▲ CTAバナー */
