/* v37 - clean, device-independent hero image architecture */
.hero-v37{
  position:relative !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  background:#08203a !important;
  color:#fff;
}
.hero-v37::before,
.hero-v37::after,
.hero-v37 > .texture{display:none !important;}
.hero-v37 .header{
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:5 !important;
  padding:20px 26px 0 !important;
  background:transparent !important;
}
.hero-v37 .brand{color:#fff !important;opacity:1 !important;-webkit-font-smoothing:antialiased;moz-osx-font-smoothing:grayscale;text-shadow:none !important;}
.hero-v37 .brand .logo-line{display:block !important;font-size:24px !important;line-height:1 !important;color:#fff !important;letter-spacing:0 !important;font-weight:500 !important;text-shadow:none !important;}
.hero-v37 .brand .sub{display:block !important;margin-top:7px !important;font-size:12px !important;line-height:1 !important;color:#fff !important;font-weight:500 !important;letter-spacing:.06em !important;transform:scaleX(1.02);transform-origin:left center;text-shadow:none !important;}
.hero-v37 .brand .accent{width:24px !important;height:2px !important;margin-top:8px !important;}
.hero-visual{
  position:relative;
  width:100%;
  height:360px;
  overflow:hidden;
  background:#08203a;
}
.hero-bg-picture{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
}
.hero-bg-image{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}

/* v77/v78: load a smaller WebP map for desktop, tablet and mobile while keeping
   the original PNG as a compatibility fallback. */
.hero-bg-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.25);
  pointer-events:none;
}
.hero-visual-container{
  position:relative;
  z-index:2;
  height:100%;
}
.hero-v37 .hero-center{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  padding:30px 12px 12px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  background:transparent !important;
  background-image:none !important;
}
.hero-v37 .hero-title{
  width:min(720px,92vw) !important;
  max-width:720px !important;
  margin:0 !important;
  font-size:44px !important;
  line-height:1.26 !important;
  font-weight:600 !important;
  letter-spacing:.35px !important;
  color:#fff !important;
}
.hero-v37 .hero-title span{color:var(--gold) !important;}
.hero-v37 .hero-sub{
  width:min(760px,90vw) !important;
  max-width:760px !important;
  margin-top:26px !important;
  padding:0 !important;
  font-size:17px !important;
  line-height:2 !important;
  letter-spacing:.9px !important;
  color:#f2f2f2 !important;
}

@media all and (min-width:700px) and (max-width:1100px){
  .hero-v37 .header{padding:16px 20px 0 !important;}
  .hero-v37 .brand .logo-line{font-size:21px !important;font-weight:500 !important;text-shadow:none !important;}
  .hero-v37 .brand .sub{margin-top:6px !important;font-size:11px !important;font-weight:500 !important;letter-spacing:.05em !important;transform:scaleX(1);transform-origin:left center;text-shadow:none !important;}
  .hero-v37 .brand .accent{width:24px !important;height:2px !important;margin-top:8px !important;}
  .hero-visual{height:370px;}
  .hero-bg-image{object-fit:contain;object-position:center center;}
  .hero-v37 .hero-title{max-width:650px !important;font-size:38px !important;line-height:1.22 !important;}
  .hero-v37 .hero-sub{max-width:720px !important;margin-top:18px !important;font-size:13px !important;line-height:1.75 !important;}
}

@media all and (max-width:699px){
  /* v54: keep the complete map, but move the brand into the dark hero area. */
  .hero-v37{background:#08203a !important;}
  .hero-v37 .header{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    inset:0 0 auto 0 !important;
    min-height:0 !important;
    padding:2px 8px 1px !important;
    background:transparent !important;
    pointer-events:none;
  }
  .hero-v37 .brand{color:#fff !important;opacity:1 !important;-webkit-font-smoothing:antialiased;moz-osx-font-smoothing:grayscale;text-shadow:none !important;}
  .hero-v37 .brand .logo-line{
    display:block !important;
    font-size:10px !important;
    line-height:1 !important;
    color:#fff !important;
    font-weight:500 !important;
    letter-spacing:0 !important;
    text-shadow:none !important;
  }
  .hero-v37 .brand .sub{
    display:block !important;
    margin-top:2px !important;
    font-size:5px !important;
    line-height:1 !important;
    font-weight:500 !important;
    color:#fff !important;
    letter-spacing:.03em !important;
    transform:scaleX(.96);
    transform-origin:left center;
    text-shadow:none !important;
  }
  .hero-v37 .brand .accent{width:14px !important;height:2px !important;margin-top:3px !important;}
  .hero-visual{height:230px;}
  .hero-bg-image{
    object-fit:contain;
    object-position:center center;
  }
  .hero-visual-container{width:100% !important;max-width:none !important;margin:0 !important;}
  .hero-v37 .hero-center{
    padding:17px 12px 9px !important;
    transform:translateY(4px);
  }
  .hero-v37 .hero-title{
    width:min(100%,336px) !important;
    max-width:336px !important;
    font-size:clamp(24px,7.2vw,28px) !important;
    line-height:1.12 !important;
    letter-spacing:0 !important;
    text-shadow:0 2px 8px rgba(0,0,0,.22);
  }
  .hero-v37 .hero-sub{
    width:min(100%,320px) !important;
    max-width:320px !important;
    margin-top:10px !important;
    font-size:12px !important;
    line-height:1.5 !important;
    letter-spacing:0 !important;
    white-space:normal !important;
    text-shadow:0 1px 6px rgba(0,0,0,.24);
  }
}
@media all and (max-width:380px){
  .hero-v37 .header{padding:2px 7px 1px !important;}
  .hero-visual{height:214px;}
  .hero-v37 .hero-center{padding-top:18px !important;transform:translateY(5px);}
  .hero-v37 .hero-title{font-size:24px !important;}
  .hero-v37 .hero-sub{font-size:11.5px !important;line-height:1.45 !important;}
}

/* v58 smaller left-top branding across desktop, tablet and mobile */

/* v57: public G318.COM is one plain-text white wordmark on every device */
.hero-v37 .brand .logo-line{color:#fff !important;}

/* v59 smaller top-left brand */

/* v60 white and lighter top-left brand */

/* v61 unified top-left branding proportions */

/* v62: use one proportional brand system on desktop, tablet and mobile.
   The Chinese subtitle always spans the same visual width as G318.COM. */
.hero-v37 .brand{
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:max-content !important;
}
.hero-v37 .brand .logo-line{
  display:block !important;
  width:max-content !important;
  white-space:nowrap !important;
}
.hero-v37 .brand .sub{
  display:block !important;
  width:100% !important;
  white-space:nowrap !important;
  text-align:justify !important;
  text-align-last:justify !important;
  letter-spacing:0 !important;
  transform:none !important;
  transform-origin:left center !important;
}
.hero-v37 .brand .accent{
  width:28% !important;
  align-self:flex-start !important;
}
@media all and (min-width:700px) and (max-width:1100px){
  .hero-v37 .brand .sub{font-size:10.5px !important;}
}
@media all and (max-width:699px){
  .hero-v37 .brand .sub{font-size:5.5px !important;}
}


/* v63: stronger hierarchy on desktop and tablet; mobile keeps the v62 proportions. */
@media all and (min-width:1101px){
  .hero-v37 .brand .logo-line{font-size:27px !important;font-weight:500 !important;}
  .hero-v37 .brand .sub{font-size:10px !important;font-weight:500 !important;margin-top:7px !important;}
}
@media all and (min-width:700px) and (max-width:1100px){
  .hero-v37 .brand .logo-line{font-size:24px !important;font-weight:500 !important;}
  .hero-v37 .brand .sub{font-size:9px !important;font-weight:500 !important;margin-top:6px !important;}
}

/* v64: desktop and tablet use equal type sizes for the two brand lines.
   Mobile keeps the accepted v62/v63 appearance. */
@media all and (min-width:1101px){
  .hero-v37 .brand{width:max-content !important;align-items:flex-start !important;}
  .hero-v37 .brand .logo-line,
  .hero-v37 .brand .sub{
    width:max-content !important;
    font-size:14px !important;
    line-height:1 !important;
    font-weight:500 !important;
    letter-spacing:0 !important;
    text-align:left !important;
    text-align-last:auto !important;
    text-justify:auto !important;
    transform:none !important;
  }
  .hero-v37 .brand .sub{margin-top:5px !important;}
  .hero-v37 .brand .accent{width:28% !important;margin-top:6px !important;}
}
@media all and (min-width:700px) and (max-width:1100px){
  .hero-v37 .brand{width:max-content !important;align-items:flex-start !important;}
  .hero-v37 .brand .logo-line,
  .hero-v37 .brand .sub{
    width:max-content !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:500 !important;
    letter-spacing:0 !important;
    text-align:left !important;
    text-align-last:auto !important;
    text-justify:auto !important;
    transform:none !important;
  }
  .hero-v37 .brand .sub{margin-top:4px !important;}
  .hero-v37 .brand .accent{width:28% !important;margin-top:5px !important;}
}
