:root { --wine:#7b2030; --wine-dark:#5c1623; --ink:#252527; --muted:#737376; --line:#e6e6e6; --paper:#fff; --gray:#f5f5f3; --gold:#e6c795; --nav-height:55px; --safe-top:env(safe-area-inset-top,0px); --safe-right:env(safe-area-inset-right,0px); --safe-bottom:env(safe-area-inset-bottom,0px); --safe-left:env(safe-area-inset-left,0px); --bottom-bar-height:calc(66px + var(--safe-bottom)); }
* { box-sizing:border-box; letter-spacing:0; }
html { scroll-behavior:auto; scroll-padding-top:calc(var(--nav-height) + var(--safe-top) + 10px); scroll-padding-bottom:calc(var(--bottom-bar-height) + 16px); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; padding:var(--safe-top) var(--safe-right) 0 var(--safe-left); color:var(--ink); background:var(--paper); font:15px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; }
button, input, textarea { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button { color:inherit; }
button svg, a svg { width:19px; height:19px; flex-shrink:0; stroke-width:1.6; }
button:disabled { cursor:default; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline:3px solid #c7904b; outline-offset:4px; }
[hidden] { display:none!important; }
h1,h2,h3,p,figure { margin:0; }
h2 { font:600 29px/1.45 "Songti SC","STSong","SimSun",serif; }
h3 { font-size:20px; line-height:1.5; font-weight:600; }
h2,h3,p,.contact-person strong,.qr-name,.dialog-signature { overflow-wrap:anywhere; }
.brand-panel,.brand-info,.hero-summary>div,.contact-person>div { min-width:0; }
.skip { position:fixed; top:-100px; left:12px; background:#fff; z-index:100; padding:10px 20px; }
.skip:focus { top:10px; }
.masthead { height:76px; padding:0 22px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff; }
.identity { display:flex; align-items:center; gap:12px; min-width:0; }
.identity img { width:43px; height:40px; object-fit:contain; background:var(--wine); padding:4px; border-radius:2px; flex-shrink:0; }
.identity span { display:grid; line-height:1.4; }
.identity strong { font:600 18px/1.4 "Songti SC","STSong","SimSun",serif; color:var(--wine); }
.identity small { font-size:10px; color:var(--muted); margin-top:2px; }
.icon-button { width:44px; height:44px; display:inline-flex; justify-content:center; align-items:center; padding:0; border:0; background:transparent; border-radius:4px; flex-shrink:0; }
.icon-button:hover { background:#00000008; }
.hero { height:540px; min-height:360px; max-height:calc(100vh - 265px); max-height:calc(100svh - 265px); position:relative; overflow:hidden; background:#242426; color:#fff; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 54%; }
.hero-inner { position:relative; z-index:1; padding:26px 22px 0; text-align:center; }
.eyebrow { font-size:11px; line-height:1.5; color:#e6c795; }
.hero h1 { font:500 48px/1.35 "Songti SC","STSong","SimSun",serif; margin-top:8px; text-shadow:0 2px 12px #0003; }
.hero-subtitle { font:400 24px/1.5 "Songti SC","STSong","SimSun",serif; margin-top:3px; }
.hero-rule { display:block; width:24px; height:1px; background:var(--gold); margin:16px auto 12px; }
.hero-copy { font-size:12px; line-height:1.9; color:#eee; }
.hero-summary { position:absolute; bottom:0; left:0; right:0; padding:17px 22px 19px; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); background:#19191be8; z-index:1; border-top:1px solid #ffffff24; }
.hero-summary>div { display:grid; align-content:center; }
.hero-summary>div+div { border-left:1px solid #ffffff30; padding-left:20px; }
.hero-summary span { font-size:9px; color:#ccc; line-height:1.5; }
.hero-summary strong { font:400 17px/1.5 "Songti SC","STSong","SimSun",serif; margin-top:7px; white-space:nowrap; }
.section-nav { position:sticky; top:var(--safe-top); z-index:5; height:var(--nav-height); background:#fffffff5; backdrop-filter:blur(12px); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--line); }
.section-nav a { height:55px; position:relative; display:flex; align-items:center; justify-content:center; font-size:12px; color:#777; }
.section-nav a[aria-current] { color:var(--wine); font-weight:600; }
.section-nav a[aria-current]::after { content:""; position:absolute; bottom:0; width:26px; height:2px; background:var(--wine); }
.section { padding:42px 24px; }
.section-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:12px; }
.section-index { font:11px/1.5 Georgia,serif; color:var(--wine); }
.edition { font-size:11px; color:var(--muted); }
.lead { font-size:14px; line-height:1.95; margin-top:19px; color:#666; }
.company-description { margin-top:13px; font-size:13px; line-height:1.95; color:#777; }
.entities { display:grid; gap:23px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.entities span { font:10px/1.5 Georgia,serif; color:var(--wine); }
.entities h3 { font-size:15px; font-weight:500; margin-top:5px; }
.entities p { font-size:11px; color:#888; margin-top:4px; }
.sourcing { display:grid; gap:16px; padding-top:22px; margin-top:26px; border-top:1px solid var(--line); }
.sourcing span { font-size:11px; color:#888; }
.sourcing p { font-size:13px; margin-top:5px; color:#4d6550; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid transparent; min-height:48px; padding:10px 15px; border-radius:3px; font-size:13px; line-height:1.5; font-weight:500; text-align:center; }
.primary { background:var(--wine); color:white; }
.primary:hover,.bottom-primary:hover { background:var(--wine-dark); }
.secondary { border-color:#dcdcdc; background:transparent; }
.secondary:hover { background:var(--gray); }
.fine-print { font-size:10px; line-height:1.8; color:#8a8a8a; margin-top:12px; }
.products { background:var(--gray); }
.heading-line { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.vertical-note { writing-mode:vertical-rl; font:12px/1.5 "Songti SC","STSong","SimSun",serif; color:#898989; }
.brand-tabs { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid #d5d5d3; margin:26px 0 22px; }
.brand-tabs button { background:none; border:0; border-bottom:2px solid transparent; padding:12px 5px; font:15px/1.6 Georgia,serif; color:#888; margin-bottom:-1px; }
.brand-tabs button[aria-selected="true"] { border-color:var(--wine); color:var(--wine); }
.brand-visual { position:relative; width:100%; max-width:420px; aspect-ratio:5/6; margin-inline:auto; overflow:hidden; background:#292929; }
.brand-photo { width:100%; height:100%; object-fit:cover; }
.jacks-visual .brand-photo { object-position:50% 0%; }
.brand-wordmark { position:absolute; top:22px; left:22px; width:190px; max-width:calc(100% - 44px); height:44px; object-fit:contain; object-position:left center; }
.origin { position:absolute; bottom:16px; left:22px; color:white; font:9px/1.5 Georgia,serif; text-shadow:0 1px 5px #000; }
.angus-visual .brand-photo { object-position:50% 50%; }
.angus-wordmark { width:25.73%; max-width:88px; height:auto; top:20px; left:auto; right:18px; object-position:right top; }
.brand-awards { position:absolute; left:22px; top:76px; width:calc(100% - 44px); max-width:270px; padding:0; border:0; background:none; }
.brand-awards img { width:100%; height:auto; }
.awards-dialog { width:min(760px,calc(100% - 24px)); }
.awards-dialog h2 { font-size:20px; }
.awards-dialog>img { width:100%; height:auto; margin:20px 0; }
.awards-dialog>p { font-size:11px; color:var(--muted); }
.brand-info { padding-top:24px; }
.overline { color:var(--wine); font:10px/1.5 Georgia,serif; }
.brand-info h3 { margin-top:8px; font-family:"Songti SC","STSong","SimSun",serif; font-size:23px; }
.brand-info>p:not(.overline) { margin-top:12px; color:#707070; font-size:13px; line-height:1.9; }
.series-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:24px; gap:12px; }
.series-list>div { display:grid; justify-items:center; text-align:center; gap:8px; }
.series-list img { width:43px; height:52px; object-fit:contain; }
.series-list span { display:grid; }
.series-list strong { font:12px/1.5 Georgia,serif; }
.series-list small { font-size:9px; color:var(--muted); margin-top:3px; }
.text-button { background:none; padding:12px 0; border:0; display:inline-flex; gap:10px; align-items:center; color:var(--wine); font-size:13px; line-height:1.5; }
.brand-info>.text-button { width:100%; justify-content:space-between; border-top:1px solid #dededc; margin-top:24px; padding-top:18px; }
.brand-facts { font-size:12px; margin:18px 0 0; }
.brand-facts>div { display:flex; justify-content:space-between; gap:10px; padding:11px 0; border-bottom:1px solid #e1e1df; }
.brand-facts dt { color:var(--muted); }
.brand-facts dd { margin:0; text-align:right; }
.cuts { border-top:1px solid #dededc; padding-top:24px; margin-top:30px; }
.cuts h3 { font-size:15px; }
.cuts>p:not(.fine-print) { font-size:13px; color:#737373; line-height:1.95; margin-top:10px; }
.cuts>.overline { margin-bottom:10px; }
.cuts>h3 { font:600 23px/1.5 "Songti SC","STSong","SimSun",serif; }
.cut-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 10px; margin:20px 0; border-bottom:1px solid #d9d9d7; }
.cut-tabs button { padding:11px 4px; border:0; border-bottom:2px solid transparent; background:none; font-size:12px; color:#777; min-height:44px; }
.cut-tabs button[aria-selected="true"] { color:var(--wine); border-bottom-color:var(--wine); font-weight:600; }
.cut-panel { min-height:330px; }
.cut-panel h4 { font-size:15px; font-weight:500; margin:0 0 12px; }
.cut-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; gap:0 18px; padding:0; margin:0; }
.cut-grid>li { font-size:13px; padding:9px 0; border-bottom:1px solid #dfdfdc; }
.cut-panel>.text-button { margin-top:15px; }
.person-phone { display:block; margin-top:4px; color:#fff; font-size:13px; }
.page-footer>a { display:inline-block; margin-top:10px; color:#e6c795; }
.about { border-top:1px solid var(--line); }
.pasture { margin:25px 0 22px; width:100%; height:210px; object-fit:cover; object-position:50% 56%; }
.about .lead { color:#494949; font-size:14px; }
.about>p:not(.lead) { font-size:13px; color:#777; margin-top:12px; line-height:1.95; }
.service-list { display:grid; }
.service-list article { display:flex; align-items:flex-start; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.service-list article>svg { width:23px; height:23px; margin-top:3px; stroke-width:1.4; flex-shrink:0; color:#617864; }
.service-list h3 { font-size:15px; font-weight:500; }
.service-list p { font-size:12px; line-height:1.9; color:#777; margin-top:6px; }
.audiences { display:flex; gap:14px; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:18px; margin-top:25px; font-size:11px; color:#677b69; }
.audiences span { display:flex; align-items:center; gap:6px; }
.audiences span::before { content:""; width:4px; height:4px; background:#677b69; }
.contact { color:white; background:var(--wine); }
.contact .section-top { margin-bottom:18px; }
.contact .section-index { color:var(--gold); }
.contact .section-top img { width:48px; height:42px; object-fit:contain; }
.contact h2 { font-size:31px; }
.contact>p { color:#ebd8dc; font-size:13px; margin-top:17px; line-height:1.9; }
.contact-person { display:flex; align-items:center; margin-top:28px; padding:20px 0; border-top:1px solid #ffffff28; border-bottom:1px solid #ffffff28; gap:14px; }
.person-mark { display:grid; place-items:center; border:1px solid #e6c79580; color:var(--gold); width:44px; height:44px; border-radius:50%; font:21px/1 "Songti SC",serif; flex-shrink:0; }
.contact-person>div { display:grid; flex:1; }
.contact-person strong { font-size:16px; font-weight:500; }
.contact-person>div>span { color:#dfc5cb; font-size:11px; margin-top:2px; }
.contact-person .icon-button:hover { background:#ffffff12; }
.contact-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:24px; }
.white-button { background:white; color:var(--wine); }
.outline-light { border:1px solid #ffffff60; background:none; color:#fff; }
.contact-footer { padding-top:32px; display:flex; flex-wrap:wrap; gap:5px 20px; font-size:10px; color:#e3bdc5; }
.contact-footer a { display:flex; align-items:center; gap:5px; }
.contact-footer svg { width:12px; height:12px; }
.page-footer { background:var(--wine-dark); color:#ddbdc5; text-align:center; padding:15px 20px; padding-bottom:calc(var(--bottom-bar-height) + 24px); font-size:10px; }
.bottom-bar { position:fixed; bottom:0; left:var(--safe-left); right:var(--safe-right); z-index:8; background:#fffffff8; border-top:1px solid #ebebeb; padding:10px 16px calc(10px + var(--safe-bottom)); display:grid; grid-template-columns:110px minmax(0,1fr); gap:14px; }
.bottom-products { background:transparent; display:flex; align-items:center; justify-content:center; gap:8px; color:var(--wine); border:0; font-size:13px; min-height:45px; }
.bottom-primary { background:var(--wine); color:#fff; display:flex; align-items:center; justify-content:center; gap:18px; border:0; border-radius:3px; min-height:45px; font-size:14px; }
dialog { border:0; border-radius:7px; width:min(360px,calc(100% - 32px - var(--safe-left) - var(--safe-right))); padding:22px; color:var(--ink); max-height:calc(100vh - 24px - var(--safe-top) - var(--safe-bottom)); max-height:calc(100dvh - 24px - var(--safe-top) - var(--safe-bottom)); overflow-y:auto; overscroll-behavior:contain; box-shadow:0 20px 90px #0003; }
dialog::backdrop { background:#10101090; backdrop-filter:blur(3px); }
.dialog-top { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px; }
.dialog-top .icon-button { margin-right:-8px; margin-top:-6px; }
dialog h2 { font-size:26px; }
#contact-dialog>p { font-size:12px; color:#777; margin-top:9px; }
.qr-wrap { padding:12px; background:#fff; margin:16px auto 8px; width:min(260px,100%); }
.qr-wrap img { width:100%; height:auto; }
.qr-name { display:block; text-align:center; font-size:14px; font-weight:500; }
#contact-dialog .qr-caption { text-align:center; font-size:11px; margin-top:3px; }
#contact-dialog>.button { width:100%; margin-top:18px; }
.dialog-signature { font-size:10px; color:#888; text-align:center; margin-top:18px; line-height:1.8; }
#copy-dialog h2 { font-size:21px; }
#copy-dialog textarea { width:100%; padding:12px; resize:none; border:1px solid #ddd; border-radius:3px; font-size:13px; line-height:1.9; background:#fafafa; color:#333; }
#copy-dialog>.button { width:100%; margin-top:12px; }
.toast { position:fixed; bottom:calc(var(--bottom-bar-height) + 16px); left:50%; transform:translateX(-50%); padding:10px 18px; max-width:calc(100% - 40px); width:max-content; color:white; background:#222e; border-radius:4px; z-index:30; opacity:0; transition:opacity .15s; pointer-events:none; font-size:12px; }
.toast.visible { opacity:1; }
@media (max-width:360px) {
  .masthead { padding-inline:18px; height:68px; }
  .angus-wordmark { max-width:76px; top:18px; right:14px; }
  .section { padding:35px 20px; }
  .hero-inner { padding-top:26px; }
  .hero { height:480px; max-height:calc(100vh - 245px); max-height:calc(100svh - 245px); min-height:320px; }
  .hero h1 { font-size:43px; }
  .hero-subtitle { font-size:22px; }
  .hero-copy { font-size:11px; }
  .hero-summary { padding-inline:18px; }
  .hero-summary>div+div { padding-left:15px; }
  .hero-summary strong { font-size:15px; }
  .brand-awards { top:68px; left:20px; width:calc(100% - 40px); max-width:220px; }
  .contact-actions .button { gap:6px; font-size:12px; padding-inline:9px; }
  .bottom-bar { grid-template-columns:95px minmax(0,1fr); gap:10px; }
}
@media (max-width:320px) {
  .hero-summary { grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); }
  .hero-summary>div:first-child strong { white-space:normal; }
}
@media (min-width:600px) {
  :root { --nav-height:60px; }
  .masthead { padding-inline:max(35px,calc((100% - 1000px)/2)); height:86px; }
  .hero { height:500px; max-height:calc(100vh - 285px); max-height:calc(100svh - 285px); min-height:260px; }
  .hero-photo { left:auto; right:0; width:67%; object-position:50% 58%; }
  .hero-inner { text-align:left; max-width:1000px; margin:auto; padding:50px 35px 0; }
  .hero h1 { font-size:64px; }
  .hero-subtitle { font-size:30px; }
  .hero-rule { margin:20px 0 15px; }
  .hero-copy { font-size:14px; }
  .hero-summary { padding-inline:max(35px,calc((100% - 930px)/2)); background:#19191bf5; }
  .hero-summary>div+div { padding-left:45px; }
  .hero-summary strong { font-size:23px; }
  .hero-summary span { font-size:11px; }
  .section-nav { padding-inline:max(0px,calc((100% - 800px)/2)); }
  .section-nav a { font-size:14px; height:60px; }
  .section { padding:48px max(40px,calc((100% - 930px)/2)); }
  h2 { font-size:36px; }
  .section-top { margin-bottom:28px; }
  .lead { max-width:620px; font-size:16px; }
  .company .lead,.company-description { max-width:680px; }
  .company-description { font-size:14px; }
  .entities { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .entities h3 { font-size:17px; }
  .entities p { font-size:13px; }
  .brand-info { padding-top:24px; max-width:620px; margin-inline:auto; }
  .brand-info h3 { font-size:27px; }
  .series-list { margin-top:35px; }
  .brand-info>.text-button { margin-top:35px; }
  .brand-tabs { max-width:530px; margin-bottom:30px; }
  .cuts>p:not(.fine-print) { max-width:600px; }
  .cut-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 25px; }
  .cut-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); max-width:650px; }
  .cut-panel { min-height:270px; }
  .service-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 35px; }
  .service-list article { padding-block:26px; }
  .service-list h3 { font-size:17px; }
  .service-list p { font-size:14px; }
  .pasture { height:365px; }
  .about>.lead,.about>p { max-width:680px; }
  .about>p:not(.lead) { font-size:14px; }
  .audiences { font-size:13px; gap:30px; }
  .contact { position:relative; }
  .contact h2 { font-size:39px; }
  .contact>p { font-size:15px; }
  .contact-person,.contact-actions { max-width:450px; }
  .contact-footer { justify-content:space-between; font-size:12px; }
  .bottom-bar { padding-inline:max(30px,calc((100% - 650px)/2)); grid-template-columns:180px minmax(0,1fr); }
}
@media (min-width:960px) {
  .brand-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
  .brand-info { padding-top:20px; margin-inline:0; }
}
@media (min-width:600px) and (max-height:720px) {
  .hero-inner { padding-top:28px; }
  .hero h1 { font-size:48px; }
  .hero-subtitle { font-size:26px; }
  .hero-rule { margin:12px 0 10px; }
  .hero-copy { font-size:13px; }
  .hero-summary strong { font-size:20px; }
}
@media (max-height:600px) {
  :root { --nav-height:48px; }
  .masthead { height:56px; padding-inline:20px; }
  .hero { height:calc(100vh - 190px); height:calc(100svh - 190px); min-height:150px; max-height:310px; }
  .hero-photo { left:auto; right:0; width:65%; object-position:50% 68%; }
  .hero-inner { text-align:left; padding:12px 20px 0; }
  .eyebrow { font-size:10px; }
  .hero h1 { font-size:32px; margin-top:4px; }
  .hero-subtitle { font-size:18px; margin-top:0; }
  .hero-rule { margin:7px 0 5px; }
  .hero-copy { font-size:10px; }
  .hero-summary { padding:6px 20px; }
  .hero-summary>div+div { padding-left:20px; }
  .hero-summary span { font-size:8px; }
  .hero-summary strong { font-size:14px; margin-top:2px; }
  .section-nav a { height:48px; }
  .section { padding-block:24px; }
  .bottom-bar { padding-block:6px calc(6px + var(--safe-bottom)); }
  .bottom-primary,.bottom-products { min-height:40px; }
}
@media (min-width:520px) and (max-height:600px) {
  #contact-dialog[open] { display:grid; grid-template-columns:200px minmax(0,1fr); column-gap:20px; row-gap:8px; width:min(620px,calc(100% - 32px - var(--safe-left) - var(--safe-right))); padding:16px; }
  #contact-dialog .dialog-top { grid-column:1/-1; grid-row:1; margin-bottom:0; }
  #contact-dialog .dialog-top .icon-button { margin:0; }
  #contact-title { grid-column:2; grid-row:2; font-size:22px; }
  #inquiry-context { grid-column:2; grid-row:3; margin-top:0; }
  #contact-dialog .qr-wrap { grid-column:1; grid-row:2/6; width:200px; margin:0; }
  #contact-dialog .qr-name { grid-column:2; grid-row:4; text-align:left; align-self:center; }
  #contact-dialog>.button { grid-column:2; grid-row:5; margin-top:0; align-self:start; }
  #contact-dialog .qr-caption,#contact-dialog .dialog-signature { display:none; }
}
@media (max-height:360px) {
  .masthead { height:52px; }
  .hero-inner { padding-top:6px; }
  .eyebrow { font-size:9px; }
  .hero h1 { font-size:28px; }
  .hero-subtitle { font-size:17px; }
  .hero-rule { display:none; }
  .hero-copy { margin-top:4px; }
  .hero-summary { padding-block:4px; }
  .hero-summary strong { font-size:12px; line-height:1.4; margin-top:1px; }
  .section { padding-block:12px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
