
/* v21: home-matched header/hero grid and rotating campus promotion */
.campus-landing .hero-inner{align-items:stretch}
.campus-landing .hero-copy{padding:0;background:#0b5075;isolation:isolate}
.campus-landing .hero-copy::before,.campus-landing .hero-copy::after{display:none}
.campus-landing .hero-side{min-width:0}
.campus-landing .board-link:hover{background:rgba(255,255,255,.10)}
.campus-landing .hero-bottom{margin-bottom:0}
.campus-roll{position:relative;isolation:isolate;overflow:hidden;min-height:470px;height:100%;display:flex;flex-direction:column;background:linear-gradient(120deg,#0e6286 0%,#3b9dba 70%,#89bfce 100%);color:#fff;transition:background .35s}
.campus-roll[data-tone="camp"]{background:linear-gradient(120deg,#0d5477 0%,#136c8e 54%,#2d91aa 100%)}
.campus-roll[data-tone="lecture"]{background:linear-gradient(120deg,#074b74 0%,#216b99 58%,#588bb7 100%)}
.campus-roll[data-tone="coaching"]{background:linear-gradient(120deg,#155c71 0%,#2a829c 62%,#56a7ac 100%)}
.campus-roll[data-tone="study"]{background:linear-gradient(120deg,#075a72 0%,#358ba9 58%,#8eb9c4 100%)}
.campus-roll[data-tone="general"]{background:linear-gradient(120deg,#145b82 0%,#338ba9 58%,#78b4d0 100%)}
.campus-roll::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 83% 35%,rgba(255,255,255,.19),transparent 32%),linear-gradient(130deg,rgba(3,33,59,.42),rgba(7,43,67,.09));}
.campus-roll-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.campus-roll-art{position:absolute;right:-24px;top:17%;font-size:clamp(125px,17vw,310px);font-weight:950;line-height:1;color:rgba(255,255,255,.12);letter-spacing:-.12em;white-space:nowrap;transform:rotate(-8deg)}
.campus-roll-ribbon{position:absolute;bottom:66px;right:-50px;width:320px;height:86px;border:1px solid rgba(255,255,255,.17);display:flex;align-items:center;justify-content:center;transform:rotate(-21deg);font-size:13px;letter-spacing:.48em;font-weight:900;color:rgba(255,255,255,.28)}
.campus-roll-body{position:relative;z-index:1;flex:1;display:flex;align-items:flex-start;flex-direction:column;justify-content:center;padding:32px 44px 12px 48px;min-height:373px}
.campus-roll-kicker{font-size:11px;color:#d7f5ff;letter-spacing:.08em;font-weight:800;margin:0 0 16px;line-height:1.6}
.campus-roll-status{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:5px 11px;margin-bottom:12px;font-size:11px;font-weight:800;color:#fff;display:inline-flex}
.campus-landing .campus-roll h1{font-size:clamp(34px,3.4vw,49px);line-height:1.25;max-width:670px;word-break:keep-all;margin:0;letter-spacing:-.055em;font-weight:850;color:white;text-shadow:none}
.campus-landing .campus-roll h1 em{color:#d5f3ff;font-style:normal}
.campus-landing .campus-roll-desc{font-size:14px;line-height:1.8;max-width:570px;color:#e9f5f9;margin-top:17px;min-height:50px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.campus-roll-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.campus-landing .campus-roll-actions .btn{min-height:44px;padding:10px 17px;border-radius:0;font-weight:800;font-size:12px;white-space:nowrap}
.campus-roll-actions button{font-family:inherit;cursor:pointer}
.campus-roll-controls{position:relative;z-index:1;display:flex;gap:9px;align-items:center;padding:11px 43px 20px 48px;min-height:64px}
.campus-roll-dots{display:flex;align-items:center;gap:7px;max-width:210px;overflow:hidden}
.campus-roll-dot{padding:0;border:0;width:10px;height:10px;background:rgba(255,255,255,.48);border-radius:20px;cursor:pointer;flex:0 0 auto;transition:width .2s,background .2s}
.campus-roll-dot.active{width:26px;background:#fff}
.campus-roll-count{font-size:11px;white-space:nowrap;color:#e3eff6;letter-spacing:.1em;margin-left:auto}
.campus-roll-control{display:inline-flex;justify-content:center;align-items:center;border:1px solid rgba(255,255,255,.5);background:rgba(9,49,78,.15);color:#fff;width:31px;height:31px;padding:0;cursor:pointer;font-size:22px;line-height:1;border-radius:0}
.campus-roll-pause{font-size:12px;font-weight:900}
.campus-roll-control:hover,.campus-roll-control:focus-visible{background:rgba(255,255,255,.22)}
.campus-roll-dot:focus-visible{outline:3px solid #fff;outline-offset:3px}
.campus-feature-highlight{outline:3px solid #168ec3;outline-offset:4px;transition:outline-color .3s}
.campus-roll-body.is-changing{animation:campusFade .28s ease}
@keyframes campusFade{from{opacity:.55;transform:translateX(6px)}to{opacity:1;transform:none}}
.campus-body{scroll-margin-top:110px}
@media(max-width:940px){.campus-roll{min-height:390px}.campus-roll-body{min-height:295px;padding:34px 32px 12px}.campus-roll-controls{padding:11px 32px 20px}.campus-landing .hero-inner{gap:0;padding-bottom:0}.campus-landing .hero-side{max-width:none;width:100%}}
@media(max-width:640px){.campus-roll{min-height:405px}.campus-roll-body{padding:28px 22px 12px;min-height:310px}.campus-roll-controls{padding:10px 22px 18px;gap:6px}.campus-landing .campus-roll h1{font-size:clamp(28px,7vw,37px)}.campus-landing .campus-roll-desc{font-size:13px;min-height:0}.campus-roll-art{font-size:140px;right:-12px;top:10%}.campus-roll-ribbon{width:200px}.campus-landing .campus-roll-actions .btn{min-height:42px;font-size:11px;padding:9px 11px}.campus-roll-count{font-size:10px}.campus-roll-control{width:28px;height:28px;font-size:18px}.campus-roll-pause{font-size:11px}.campus-landing .hero-inner{padding-bottom:0}.campus-landing .hero-side{max-width:none}}
@media(prefers-reduced-motion:reduce){.campus-roll-body.is-changing{animation:none}.campus-roll-dot{transition:none}}
