/* VVIPEVENTS type refinement (v6).
   Scope: the page content inside <main> only. Header toolbar, language switcher, navigation,
   footer, cookie notice and floating buttons keep their original styles.
   Brand palette kept: navy #0c2638 headings, #223747 text, #5c6875 secondary, gold #80633d accents. */
@import url("https://cdn.zyrosite.com/u1/google-fonts/font-faces?family=Inter:wght@400;500;600&family=Noto+Sans+TC:wght@400;500;600&display=swap");

:root{
  --vv-font:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --vv-navy:#0c2638; --vv-text:#223747; --vv-muted:#5c6875; --vv-gold:#80633d;
  /* desktop / mobile (≤700px) */
  --vv-h1:36px; --vv-h2:26px; --vv-h3:19px; --vv-lead:17px; --vv-body:16px; --vv-small:13px; --vv-eyebrow:12px;
  --vv-price:32px; --vv-card-price:22px; --vv-h1-guide:30px; --vv-button:15px; --vv-leading:1.8;
}
html:lang(en){--vv-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;--vv-leading:1.65}
html:is(:lang(zh-TW),:lang(zh-Hant)){--vv-font:Inter,"Noto Sans TC",-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif}
@media(max-width:700px){:root{--vv-h1:24px;--vv-h2:20px;--vv-h3:17px;--vv-lead:14px;--vv-body:15px;--vv-small:12px;--vv-eyebrow:12px;--vv-price:24px;--vv-card-price:20px;--vv-h1-guide:24px}}

@layer vvipTypography{
  /* Content font (the in-page share / language links keep their original look). */
  html body[data-vv-fonts]:not(#vv) main :is(h1,h2,h3,h4,p,li,dt,dd,label,td,th,span,strong,b,small,a,button,select,option,input,textarea):not(.vv-product-utilities *){font-family:var(--vv-font)!important}
  html body[data-vv-fonts]:not(#vv) main{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

  /* Headings: brand navy, three clear steps, no tracking on Chinese. */
  html body[data-vv-fonts]:not(#vv) main :is(h1,h2,h3,h4){font-weight:600!important;letter-spacing:0!important;line-height:1.3!important}
  html:lang(en) body[data-vv-fonts]:not(#vv) main :is(h1,h2){letter-spacing:-.015em!important}
  html body[data-vv-fonts]:not(#vv) main h1{font-size:var(--vv-h1)!important;line-height:1.25!important}
  html body[data-vv-fonts]:not(#vv) main h2{font-size:var(--vv-h2)!important}
  html body[data-vv-fonts]:not(#vv) main :is(h3,h4){font-size:var(--vv-h3)!important}

  /* Body text. */
  html body[data-vv-fonts]:not(#vv) main :is(p,li,dd){font-size:var(--vv-body)!important;line-height:var(--vv-leading)!important}
  html body[data-vv-fonts]:not(#vv) main :is(p,li):not([class]){color:var(--vv-text)}
  html body[data-vv-fonts]:not(#vv) main dd{color:var(--vv-text)!important;font-weight:500!important;line-height:1.6!important}
  html body[data-vv-fonts]:not(#vv) main dt{font-size:var(--vv-small)!important;color:var(--vv-muted)!important;font-weight:400!important;line-height:calc(var(--vv-body) * 1.6)!important}
  /* Traditional Chinese: content text one step heavier so it never looks faint (content only). */
  html:is(:lang(zh-TW),:lang(zh-Hant)) body[data-vv-fonts]:not(#vv) main :is(p,li,dd):not(.vv-product-utilities *){font-weight:500!important}

  /* Small supporting text. */
  html body[data-vv-fonts]:not(#vv) main :is(small,.vv-price-caption,.vx-unit-price,.vv-bundle-note,.plan-stock-status,.vv-fact-copy span){font-size:var(--vv-small)!important;line-height:1.5!important}
  html body[data-vv-fonts]:not(#vv) main :is(.vv-price-caption,.vx-unit-price,.vv-bundle-note){color:var(--vv-muted)!important;font-weight:400!important}
  html body[data-vv-fonts]:not(#vv) main small{font-weight:400!important}

  /* Gold accents: event label, breadcrumb links. */
  html body[data-vv-fonts]:not(#vv) main :is(.vv-eyebrow,.vv-event-eyebrow,.eyebrow){font-size:var(--vv-eyebrow)!important;color:var(--vv-gold)!important;font-weight:500!important;letter-spacing:.08em!important;line-height:1.5!important}
  html:lang(en) body[data-vv-fonts]:not(#vv) main :is(.vv-eyebrow,.vv-event-eyebrow,.eyebrow){text-transform:uppercase!important}
  html body[data-vv-fonts]:not(#vv) main :is(.vv-breadcrumb,.crumb,.breadcrumb,.guide-path) a{color:var(--vv-gold)!important}
  html body[data-vv-fonts]:not(#vv) main :is(.vv-breadcrumb,.crumb,.breadcrumb,.guide-path) a:hover{text-decoration:underline}

  /* Location · date line under the product title: smaller, gold. */
  html body[data-vv-fonts]:not(#vv) main .vv-product-location{font-size:var(--vv-lead)!important;color:var(--vv-gold)!important;font-weight:500!important;line-height:1.6!important}

  /* Price: Inter, tabular figures; the caption always sits on its own line under it. */
  html body[data-vv-fonts]:not(#vv) main :is([data-bundle-price],[data-plan-total],.vv-product-price,.preview-price){font-family:var(--vv-font)!important;font-size:var(--vv-price)!important;font-weight:600!important;letter-spacing:-.01em!important;line-height:1.2!important;font-variant-numeric:tabular-nums lining-nums}
  html body[data-vv-fonts]:not(#vv) main .vv-price-caption{display:block!important;margin-top:2px}
  /* Prices inside cards (home page, listings): smaller than a product page's main price. */
  html body[data-vv-fonts]:not(#vv) main .vx-card-price strong{font-family:var(--vv-font)!important;font-size:var(--vv-card-price)!important;font-weight:600!important;letter-spacing:-.01em!important;line-height:1.2!important;font-variant-numeric:tabular-nums lining-nums}
  html body[data-vv-fonts]:not(#vv) main .vx-card-price small{font-size:12px!important}
  /* Guide pages (contact, FAQ, policies): a calmer page title. */
  html body[data-vv-fonts]:not(#vv) main .guide-hero h1{font-size:var(--vv-h1-guide)!important}

  /* Event / festival pages: intro, actions and package cards. */
  html body[data-vv-fonts]:not(#vv) main .edition-intro{font-size:var(--vv-lead)!important;color:var(--vv-muted)!important;line-height:1.7!important}
  html body[data-vv-fonts]:not(#vv) main .project-action{font-size:var(--vv-button)!important}
  html body[data-vv-fonts]:not(#vv) main .listing strong{font-size:var(--vv-h3)!important;color:var(--vv-navy)!important;line-height:1.35!important}
  html body[data-vv-fonts]:not(#vv) main .listing em{font-size:var(--vv-lead)!important;font-style:normal!important;color:var(--vv-text)!important}
  html body[data-vv-fonts]:not(#vv) main .listing small{font-size:var(--vv-small)!important;color:var(--vv-muted)!important}
  html body[data-vv-fonts]:not(#vv) main .listing b{font-size:14px!important;color:var(--vv-gold)!important}
  html body[data-vv-fonts]:not(#vv) main :is(.listing,.package-grid) [data-catalog-stock]{font-size:12px!important}

  /* Controls and labels: never heavier than 600. */
  html body[data-vv-fonts]:not(#vv) main :is(label,b,strong){font-weight:600!important}
  html body[data-vv-fonts]:not(#vv) main :is(button,.button,.btn):not(.vv-product-utilities *){font-size:var(--vv-button)!important;font-weight:500!important;letter-spacing:0!important}

  /* Footer: sizes and weights only (colours stay as designed). Quiet and even. */
  html body[data-vv-fonts]:not(#vv) :is(footer,.vv-footer-v3,.vv-footer) strong{font-size:17px!important;font-weight:600!important;letter-spacing:0!important}
  html body[data-vv-fonts]:not(#vv) :is(footer,.vv-footer-v3,.vv-footer) :is(h2,h3){font-size:12px!important;font-weight:600!important;letter-spacing:.06em!important}
  html body[data-vv-fonts]:not(#vv) :is(footer,.vv-footer-v3,.vv-footer) :is(a,p,address,li){font-size:13px!important;font-weight:400!important;line-height:1.7!important}
  html body[data-vv-fonts]:not(#vv) :is(footer,.vv-footer-v3,.vv-footer) span{font-size:12px!important}
  /* Header 'contact us' button when it is the current page: keep white text on navy. */
  html body[data-vv-fonts]:not(#vv) .vv-chrome-contact[aria-current]{color:#fff!important}
}
