.key-visual-section { padding:112px 0; background:#fcfcfc; border-bottom:1px solid #ecece9; }
.key-visual-wrap { width:100%; max-width:1152px; margin:auto; padding:0 24px; }
.key-visual { position:relative; width:100%; aspect-ratio:16/9; border-radius:24px; overflow:hidden; background:#0e0e0e; box-shadow:0 25px 50px -12px #00000040; touch-action:pan-y; }
.key-visual-track { display:flex; width:100%; height:100%; transition:transform .5s ease-out; }
.key-visual-slide { flex:0 0 100%; width:100%; min-width:0; height:100%; }
.key-visual-image { width:100%; height:100%; object-fit:cover; object-position:center; user-select:none; }
.key-visual-link { display:block; width:100%; height:100%; }
.key-visual-link:focus-visible { outline:3px solid white; outline-offset:-6px; }
.key-visual-arrow { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border:0; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0; color:white; background:#0009; backdrop-filter:blur(4px); }
.key-visual-arrow:hover { background:#000c; }
.key-visual-previous { left:16px; }
.key-visual-next { right:16px; }
.key-visual-dots { position:absolute; bottom:0; left:50%; transform:translateX(-50%); display:flex; justify-content:center; }
.key-visual-dots button { width:44px; height:44px; border:0; padding:0; display:grid; place-items:center; background:transparent; }
.key-visual-dots span { width:12px; height:12px; border-radius:50%; background:#fff6; transition:background .2s,transform .2s; }
.key-visual-dots [aria-current=true] span { background:#fff; transform:scale(1.1); }
.key-visual :focus-visible { outline-color:white; outline-offset:-4px; }
.key-visual-actions { display:flex; align-items:center; justify-content:flex-start; gap:16px; margin-top:24px; }
.key-visual-actions a { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 28px; min-height:48px; border-radius:12px; color:#fff; background:#131313; font-size:16px; font-weight:700; line-height:24px; box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a; transition:background .2s; }
.key-visual-actions a:hover { background:#000; }
.key-visual-actions a:last-child { border:1px solid #0000001a; background:#0000000d; color:#171717; box-shadow:none; }
.key-visual-actions a:last-child:hover { background:#0000001a; }
.key-visual-actions .material-symbols-outlined { font-size:16px; }
@media (max-width:1023px) { .key-visual-section { padding:48px 0 96px; } }
@media (max-width:767px) {
    .key-visual-section { padding:16px 0 40px; border:0; }
    .key-visual-wrap { padding:0 20px; }
    .key-visual { border-radius:16px; box-shadow:0 1px 2px #0000000d; }
    .key-visual-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
    .key-visual-actions a { padding:12px 4px; gap:6px; min-height:44px; font-size:14px; line-height:20px; background:#ff7f0f; }
    .key-visual-actions a:last-child { background:white; border-color:#d4d4d4; }
    .key-visual-arrow { border:1px solid #fff3; background:#0008; }
    .key-visual-previous { left:10px; }
    .key-visual-next { right:10px; }
    .key-visual-dots { bottom:-10px; }
    .key-visual-dots span { width:10px; height:10px; }
}
@media (prefers-reduced-motion:reduce) { .key-visual-track,.key-visual-dots span { transition:none; } }
