html{zoom:0.9;}

/* ===== Homepage-specific overrides ===== */
.hero { position: relative; height: clamp(560px, calc(100vh - 88px), 860px); overflow: hidden; }
@media (max-width: 760px) {
  .hero { height: clamp(440px, calc(100vh - 64px), 660px); }
}
.g-card .ph img { width: 100%; height: 100%; object-fit: cover; display: block; filter: none; }
.g-card:hover .ph img { filter: none; }

/* Extra scroll-motion target for homepage */
@media (prefers-reduced-motion: no-preference) {
  html.js:not(.reveal-fallback) .g-scroll > .g-card {
    opacity: 0; transform: translateY(26px);
    transition: opacity .8s var(--ease), transform .8s var(--ease);
  }
}

/* ===== Highlights feature carousel ===== */
.hl-feat-carousel{grid-column:1 / -1;}
.hlc-viewport{overflow:hidden;}
.hlc-track{display:flex;align-items:stretch;transition:transform .55s var(--ease);}
.hlc-slide{flex:0 0 100%;min-width:0;}
.hlc-slide > .feat{height:100%;}
.hlc-ctrl{display:flex;align-items:center;gap:14px;margin-top:18px;}
.hlc-nav{width:38px;height:38px;border:1px solid var(--border-cool);background:#fff;color:var(--ink-pine);font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.hlc-nav:hover{border-color:var(--zju-red);color:var(--zju-red);}
.hlc-dots{display:flex;gap:8px;}
.hlc-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--border-cool);cursor:pointer;transition:background var(--dur) var(--ease);}
.hlc-dots button.on{background:var(--zju-red);}
.feat--ph{display:block;border:1px dashed var(--border-cool);}
.feat--ph .feat-media--ph{aspect-ratio:16/9;background:var(--paper-rice);display:flex;align-items:center;justify-content:center;}
.feat--ph .feat-media--ph span{font-family:var(--font-cond);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-40);}
.feat--ph .fb{padding:34px 34px 36px;}
.feat--ph h3{font-family:var(--font-news);font-weight:500;font-size:26px;line-height:1.18;margin:14px 0 4px;color:var(--fg-3);}
.feat--ph p{font-size:15px;line-height:1.6;color:var(--fg-3);margin:14px 0 0;}

/* ===== Alliances carousel ===== */
.al-ctrl{display:flex;align-items:center;gap:10px;}
.see-all--inline{margin-left:6px;}
.g-scroll{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.g-scroll::-webkit-scrollbar{display:none;}
.g-scroll > .g-card{flex:0 0 calc((100% - 56px) / 3);scroll-snap-align:start;}
@media(max-width:900px){.g-scroll > .g-card{flex:0 0 calc((100% - 28px) / 2);}}
@media(max-width:640px){.g-scroll > .g-card{flex:0 0 86%;}}

/* ===== Photo overlay gradient ===== */
.ph:has(img)::before{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;background:linear-gradient(to top,rgba(22,15,11,.60),rgba(22,15,11,0));pointer-events:none;}.ph:has(img)::after{color:rgba(255,247,239,.94);z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.45);}
