  :root{
    --ink:#211D16;
    --paper:#F6EFE0;
    --paper-deep:#EFE4CB;
    --rule:#C7B896;
    --rust:#A8461F;
    --canvas:#3B4630;
    --cream:#FBF6EA;
    --display: 'Zilla Slab', Georgia, serif;
    --body: 'Work Sans', -apple-system, sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--body);
    background:var(--cream);
    color:var(--ink);
    line-height:1.55;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;}
  h1,h2,h3{font-family:var(--display); line-height:1.1; font-weight:700;}
  .wrap{max-width:1100px; margin:0 auto; padding:0 28px;}
  .rule{border:0; border-top:1px solid var(--rule); margin:0;}

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:var(--cream);
    border-bottom:1px solid var(--rule);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 28px; max-width:1100px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .brand svg{display:none;}
  .brand img{width:38px; height:38px; flex-shrink:0; object-fit:contain;}
  .brand-text{font-family:var(--display); font-weight:700; font-size:19px; color:var(--ink);}
  .brand-text span{display:block; font-family:var(--body); font-weight:500; font-size:11px; color:var(--rust); letter-spacing:.06em;}
  .nav-links{display:flex; align-items:center; gap:28px; font-size:15px; font-weight:500;}
  .nav-links a{text-decoration:none; color:var(--ink); opacity:.85;}
  .nav-links a:hover{opacity:1; color:var(--rust);}
  .nav-cta{
    background:var(--rust); color:var(--cream); text-decoration:none;
    padding:9px 16px; border-radius:3px; font-weight:600; font-size:14.5px;
    white-space:nowrap;
  }
  .nav-mobile-hide{display:flex;}
  @media (max-width:760px){
    .nav-mobile-hide{display:none;}
  }

  /* ---------- hero / entry ticket ---------- */
  .hero{
    background:var(--paper);
    padding:0 0 72px;
    overflow:hidden;
  }
  .hero-scene{width:100%; line-height:0; position:relative;}
  .hero-scene img{width:100%; height:clamp(320px,44vw,460px); object-fit:cover; object-position:center 30%; display:block;}
  .hero-scene .scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(33,29,22,0) 40%, var(--paper) 96%);
  }
  .hero .wrap{position:relative;}
  .cow{color:var(--rust);}
  .ticket{
    position:relative; z-index:2;
    margin-top:-150px;
    display:grid;
    grid-template-columns:96px 1fr;
    background:var(--cream);
    border:2px solid var(--ink);
    box-shadow:6px 6px 0 var(--rust);
    animation: ticket-fly-in 1.5s cubic-bezier(.2,.8,.3,1) both;
  }
  @keyframes ticket-fly-in{
    from{ opacity:0; transform: translateX(-100vw); }
    to{ opacity:1; transform: translateX(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .ticket{ animation:none; }
  }
  @media (max-width:640px){
    .ticket{margin-top:-70px;}
  }
  .stub{
    border-right:3px dashed var(--rule);
    display:flex; align-items:center; justify-content:center;
    padding:20px 10px;
  }
  .stub-text{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-family:var(--display); font-weight:600; font-size:15px;
    letter-spacing:.14em; color:var(--rust);
    white-space:nowrap;
    background:none; border:none; padding:0; cursor:pointer;
  }
  .stub-text:hover{ color:var(--ink); }
  .ticket-body{padding:32px 40px 30px;}
  .ticket-kicker{
    font-size:13.5px; font-weight:600; color:var(--canvas);
    margin-bottom:10px;
  }
  .ticket h1{
    font-size:clamp(34px,5vw,54px);
    max-width:14ch;
    margin-bottom:10px;
  }
  .ticket-tagline{
    font-size:18px; color:var(--ink); opacity:.85; max-width:44ch;
    margin-bottom:20px;
  }
  .field-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:14px 28px;
    margin-bottom:22px; padding-top:18px; border-top:1px solid var(--rule);
  }
  .field label{
    display:block; font-size:11.5px; font-weight:600; letter-spacing:.08em;
    color:var(--rust); margin-bottom:4px; text-transform:uppercase;
  }
  .field .val{font-family:var(--display); font-size:17px; font-weight:600;}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
  .btn{
    display:inline-block; text-decoration:none; font-weight:600; font-size:15px;
    padding:13px 22px; border-radius:3px; border:2px solid var(--ink);
  }
  .btn-solid{background:var(--ink); color:var(--cream);}
  .btn-outline{background:transparent; color:var(--ink);}
  .btn-solid:hover{background:var(--rust); border-color:var(--rust);}
  .btn-outline:hover{background:var(--ink); color:var(--cream);}
  @media (max-width:640px){
    .ticket{grid-template-columns:1fr;}
    .stub{border-right:0; border-bottom:3px dashed var(--rule); padding:12px;}
    .stub-text{writing-mode:horizontal-tb; transform:none;}
    .field-grid{grid-template-columns:1fr 1fr;}
  }

  /* ---------- section shell ---------- */
  section{padding:76px 0;}
  .section-head{margin-bottom:40px; max-width:60ch;}
  .section-head h2{font-size:clamp(26px,3.4vw,36px); margin-bottom:12px;}
  .section-head p{font-size:16.5px; opacity:.8;}

  /* ---------- about ---------- */
  #about{
    background:
      linear-gradient(rgba(251,246,234,.80), rgba(251,246,234,.80)),
      url('photos/mlc-cattle-range.jpg');
    background-size: cover;
    background-position: center;
  }
  .about-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:56px;}
  .about-copy p{margin-bottom:16px; font-size:16.5px;}
  .about-copy p:last-child{margin-bottom:0;}
  .about-copy .press-link{margin-top:20px; padding-top:16px; border-top:1px solid var(--rule);}
  .about-copy .press-link a{
    color:var(--rust); text-decoration:none; font-weight:600; font-size:14.5px;
    border-bottom:1px solid var(--rust);
  }
  .about-copy .press-link a:hover{color:var(--ink); border-color:var(--ink);}
  .ledger{border-top:1px solid var(--rule);}
  .ledger-row{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:16px 0; border-bottom:1px solid var(--rule);
  }
  .ledger-row .num{font-family:var(--display); font-weight:700; font-size:26px; color:var(--rust);}
  .ledger-row .lbl{font-size:14.5px; text-align:right; max-width:16ch; opacity:.85;}
  @media (max-width:800px){ .about-grid{grid-template-columns:1fr; gap:36px;} }

  /* ---------- services ---------- */
  .service-list{border-top:1px solid var(--rule);}
  .service{
    padding:18px 0; border-bottom:1px solid var(--rule);
  }
  .service h3{font-size:19px; margin-bottom:4px;}
  .service p{font-size:15.5px; opacity:.82; max-width:56ch;}

  /* ---------- ropings / results board ---------- */
  .board-section{background:var(--ink); color:var(--cream);}
  .board-section .section-head p{color:var(--cream); opacity:.72;}
  .board{border-top:1px solid rgba(251,246,234,.24);}
  .board-row{
    display:grid; grid-template-columns:130px 1fr auto; gap:20px;
    align-items:center; padding:22px 0; border-bottom:1px solid rgba(251,246,234,.24);
  }
  .board-row .date{font-family:var(--display); font-weight:700; font-size:17px; color:#E8A87C;}
  .board-row .what h3{font-size:18px; color:var(--cream); margin-bottom:4px;}
  .board-row .what p{font-size:14.5px; color:var(--cream); opacity:.68;}
  .board-row .tag{
    font-size:12px; font-weight:600; padding:5px 10px; border-radius:3px;
    border:1px solid rgba(251,246,234,.4); white-space:nowrap;
    background:none; color:var(--cream); font-family:var(--body);
  }
  .board-row.placeholder .date, .board-row.placeholder .what h3{opacity:.5;}
  .board-note{
    margin-top:24px; font-size:14px; color:var(--cream); opacity:.6; max-width:56ch;
  }
  .board-note .press-link-inline{color:#E8A87C; opacity:1; text-decoration:underline; text-underline-offset:3px; font-weight:600;}
  @media (max-width:700px){
    .board-row{grid-template-columns:1fr; gap:6px;}
  }

  .video-frame{display:flex; justify-content:center; flex-wrap:wrap; gap:24px;}
  .video-frame .clip{
    border:2px solid var(--ink); box-shadow:6px 6px 0 var(--rust);
    overflow:hidden; line-height:0; max-width:267px;
  }
  .video-frame iframe{display:block; max-width:100%;}
  .video-caption{text-align:center; font-size:13.5px; opacity:.65; margin-top:14px;}

  /* ---------- crew ---------- */
  .crew-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  .crew-card{border:1px solid var(--rule); background:var(--paper);}
  .crew-photo{
    aspect-ratio:4/5; background:var(--paper-deep);
    display:flex; align-items:center; justify-content:center;
    border-bottom:1px solid var(--rule);
    color:var(--rule); font-size:13px; font-weight:600; text-align:center; padding:16px;
  }
  .crew-info{padding:18px 20px 22px;}
  .crew-info h3{font-size:18px; margin-bottom:3px;}
  .crew-role{font-size:13.5px; color:var(--rust); font-weight:600; margin-bottom:10px;}
  .crew-info p{font-size:14.5px; opacity:.8;}
  @media (max-width:800px){ .crew-grid{grid-template-columns:1fr; max-width:360px; margin:0 auto;} }

  .crew-contact-top{
    background:
      linear-gradient(rgba(33,29,22,.55), rgba(33,29,22,.55)),
      url('photos/mlc-kersti-roping.jpg');
    background-size:cover; background-position:center 30%;
    color:var(--cream); border-bottom:0;
    font-family:var(--display); font-size:17px; font-weight:600;
  }
  .crew-contact-row{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:8px 0; border-bottom:1px solid var(--rule); font-size:14px;
  }
  .crew-contact-row:last-child{border-bottom:0;}
  .crew-contact-row span{font-weight:600;}
  .crew-contact-row a{color:var(--rust); text-decoration:none;}
  .crew-contact-row a:hover{text-decoration:underline;}

  /* ---------- reputation ---------- */
  .rep{
    display:flex; justify-content:center; align-items:center;
    border:1px solid var(--rule); background:var(--paper); padding:36px;
  }
  .rep-stat{text-align:center; padding-right:40px; border-right:1px solid var(--rule);}
  .rep-stat .big{font-family:var(--display); font-weight:700; font-size:52px; color:var(--rust); line-height:1;}
  .rep-stat .small{font-size:13.5px; margin-top:6px; opacity:.75;}
  .rep-quote{font-size:16px; opacity:.75; font-style:italic;}
  @media (max-width:700px){
    .rep{grid-template-columns:1fr; text-align:center;}
    .rep-stat{border-right:0; border-bottom:1px solid var(--rule); padding:0 0 24px;}
  }

  /* ---------- gallery ---------- */
  .gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  .gallery-grid .ph{
    aspect-ratio:1; background:var(--paper-deep); border:1px solid var(--rule);
    display:flex; align-items:center; justify-content:center;
    font-size:13px; color:var(--rule); font-weight:600; text-align:center; padding:10px;
  }
  @media (max-width:700px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }

  /* ---------- contact ---------- */
  .contact-wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:56px;
  }
  .contact-form-look{
    border:2px solid var(--ink); background:var(--paper); padding:34px;
  }
  .contact-form-look .field-grid{grid-template-columns:1fr; border-top:0; padding-top:0; gap:22px;}
  .contact-copy p{margin-bottom:18px; font-size:16px;}
  .social-line{display:flex; gap:18px; margin-top:6px; font-size:14.5px; font-weight:600;}
  .social-line a{text-decoration:underline; text-decoration-color:var(--rule); text-underline-offset:3px;}
  @media (max-width:800px){ .contact-wrap{grid-template-columns:1fr; gap:36px;} }

  footer{
    border-top:1px solid var(--rule); padding:34px 0; font-size:13.5px; opacity:.65;
  }
  footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

  /* ---------- chat widget ---------- */
  .chat-toggle{
    position:fixed; bottom:18px; left:18px; z-index:60;
    width:42px; height:42px; border-radius:50%;
    background:var(--ink); color:var(--cream);
    display:flex; align-items:center; justify-content:center;
    border:2px solid var(--rust); cursor:pointer;
    box-shadow:3px 3px 0 var(--rust);
  }
  .chat-toggle svg{width:20px; height:20px;}
  .chat-panel{
    position:fixed; bottom:72px; left:18px; z-index:60;
    width:240px; max-width:calc(100vw - 36px);
    background:var(--cream); border:2px solid var(--ink);
    box-shadow:6px 6px 0 var(--rust);
    display:none; flex-direction:column; overflow:hidden;
  }
  .chat-panel.open{display:flex;}
  .chat-head{
    background:var(--ink); color:var(--cream); padding:9px 12px;
    display:flex; justify-content:space-between; align-items:center;
    font-family:var(--display); font-weight:600; font-size:14px;
  }
  .chat-head button{background:none; border:none; color:var(--cream); font-size:17px; cursor:pointer; line-height:1;}
  .chat-messages{padding:10px 12px; height:210px; overflow-y:auto; font-size:12.5px; display:flex; flex-direction:column; gap:8px;}
  .chat-msg{max-width:85%; padding:6px 9px; border-radius:3px; line-height:1.4;}
  .chat-msg.bot{background:var(--paper-deep); align-self:flex-start;}
  .chat-msg.user{background:var(--rust); color:var(--cream); align-self:flex-end;}
  .chat-input-row{display:flex; border-top:1px solid var(--rule);}
  .chat-input-row input{flex:1; border:0; padding:9px; font-family:var(--body); font-size:12.5px; background:var(--cream);}
  .chat-input-row input:focus{outline:none;}
  .chat-input-row button{background:var(--rust); color:var(--cream); border:0; padding:0 12px; font-weight:600; font-size:12.5px; cursor:pointer;}

  /* ---------- winners modal ---------- */
  .winners-overlay{
    position:fixed; inset:0; z-index:80; background:rgba(33,29,22,.72);
    display:none; align-items:flex-start; justify-content:center;
    padding:40px 20px; overflow-y:auto;
  }
  .winners-overlay.open{display:flex;}
  .winners-modal{
    background:var(--cream); border:2px solid var(--ink);
    box-shadow:8px 8px 0 var(--rust);
    max-width:760px; width:100%; margin-top:20px;
  }
  .winners-head{
    background:var(--ink); color:var(--cream); padding:16px 22px;
    display:flex; justify-content:space-between; align-items:center;
  }
  .winners-head h3{color:var(--cream); font-size:20px;}
  .winners-head button{background:none; border:none; color:var(--cream); font-size:24px; cursor:pointer; line-height:1;}
  .winners-tabs{display:flex; flex-wrap:wrap; border-bottom:1px solid var(--rule);}
  .winners-tab{
    flex:1 1 auto; min-width:110px; padding:12px 8px; text-align:center; font-weight:600; font-size:13px;
    background:var(--paper-deep); border:0; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); cursor:pointer; color:var(--ink);
  }
  .winners-tab:last-child{border-right:0;}
  .winners-tab.active{background:var(--cream); color:var(--rust);}
  .winners-body{padding:18px; max-height:65vh; overflow-y:auto;}
  .winners-pane{display:none;}
  .winners-pane.active{display:block;}
  .winners-pane img{width:100%; border:1px solid var(--rule); display:block;}

/* ---------- news & results page ---------- */
.news-hero{background:var(--paper); padding:48px 0 40px; border-bottom:1px solid var(--rule);}
.news-hero h1{font-size:clamp(30px,4vw,44px); margin-bottom:10px;}
.news-hero p{font-size:16.5px; opacity:.8; max-width:60ch;}

.news-feed{padding:56px 0; display:flex; flex-direction:column; gap:56px;}
.news-entry{border:1px solid var(--rule); background:var(--paper);}
.news-entry-head{padding:26px 30px 0;}
.news-entry-head .news-date{font-size:13px; font-weight:600; color:var(--rust); letter-spacing:.04em; text-transform:uppercase;}
.news-entry-head h2{font-size:26px; margin:8px 0 10px;}
.news-entry-head p{font-size:16px; opacity:.82; max-width:70ch; margin-bottom:22px;}

.news-media{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--rule);}
.news-media img{width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:1;}

.news-videos{display:flex; gap:20px; flex-wrap:wrap; justify-content:center; padding:28px 30px;}
.news-videos .clip{border:2px solid var(--ink); box-shadow:4px 4px 0 var(--rust); overflow:hidden; line-height:0; max-width:220px;}
.news-videos iframe{display:block; max-width:100%;}

.news-results{padding:8px 30px 30px;}
.news-results .winners-tabs{border:1px solid var(--rule); border-bottom:0;}
.news-results .winners-body{border:1px solid var(--rule); border-top:0; max-height:none;}

.news-entry.placeholder{padding:40px 30px; text-align:center; color:var(--ink); opacity:.55; font-style:italic; border-style:dashed;}

/* ---------- ticker ---------- */
.ticker-bar{
  display:block; text-decoration:none; cursor:pointer;
  overflow:hidden; white-space:nowrap;
  background:var(--ink); border-top:2px solid var(--rust); border-bottom:2px solid var(--rust);
  padding:11px 0;
}
.ticker-bar:hover{ background:#2c2720; }
.ticker-track{
  display:inline-block;
  animation: ticker-scroll 26s linear infinite;
}
.ticker-track span{
  display:inline-block; color:var(--cream); font-weight:600; font-size:14.5px;
  letter-spacing:.02em; padding:0 36px; position:relative;
}
.ticker-track span::after{
  content:"★"; position:absolute; right:-4px; top:0; color:var(--rust); font-size:11px;
}
@keyframes ticker-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .ticker-track{ animation:none; }
  .ticker-bar{ overflow-x:auto; }
}

/* ---------- south point schedule promo ---------- */
.schedule-promo{ background:var(--canvas); padding:26px 0; }
.schedule-promo-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.schedule-promo-kicker{ color:#E8A87C; font-size:12.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; margin-bottom:6px; }
.schedule-promo-text h2{ color:var(--cream); font-size:24px; margin-bottom:6px; }
.schedule-promo-text p{ color:var(--cream); opacity:.85; font-size:15px; }
.schedule-promo .btn-solid{ background:var(--rust); border-color:var(--rust); flex-shrink:0; }
.schedule-promo .btn-solid:hover{ background:var(--ink); border-color:var(--ink); }

/* ---------- services photo (full-bleed right, horizontal fade) ---------- */
.services-bleed{
  display:grid;
  grid-template-columns: minmax(28px, calc((100vw - 1100px) / 2 + 28px)) minmax(0, 522px) 1fr;
  align-items:stretch;
}
.services-text-col{ grid-column:2; padding-right:40px; }
.services-photo{
  grid-column:3;
  background-image:
    linear-gradient(to right, var(--cream) 0%, rgba(251,246,234,.75) 12%, rgba(251,246,234,0) 55%),
    url('photos/mlc-cattle-services.jpg');
  background-size: 100% 100%, cover;
  background-position: 0 0, center;
  background-repeat: no-repeat, no-repeat;
  min-height: 100%;
}
@media (max-width:900px){
  .services-bleed{ grid-template-columns:1fr; }
  .services-text-col{ padding-right:0; }
  .services-photo{
    grid-column:1; min-height:260px; margin-top:32px;
    background-image: url('photos/mlc-cattle-services.jpg');
    background-size:cover; background-position:center;
  }
}

/* ---------- blog ---------- */
.blog-card{
  display:grid; grid-template-columns:280px 1fr;
  border:1px solid var(--rule); background:var(--paper);
  text-decoration:none; color:var(--ink);
}
.blog-card-img{ background-size:cover; background-position:center 30%; min-height:200px; }
.blog-card-text{ padding:26px 30px; }
.blog-card-text h2{ font-size:24px; margin:6px 0 10px; }
.blog-card-text p{ font-size:15.5px; opacity:.82; margin-bottom:14px; }
.blog-card-link{ color:var(--rust); font-weight:600; font-size:14.5px; }
.blog-card:hover .blog-card-link{ text-decoration:underline; }
@media (max-width:700px){
  .blog-card{ grid-template-columns:1fr; }
  .blog-card-img{ min-height:180px; }
}

.blog-article{ padding:56px 0; }
.blog-article-hero{
  width:100%; aspect-ratio:16/7; object-fit:cover; border:1px solid var(--rule); margin-bottom:32px;
}
.blog-article .kicker{ color:var(--rust); font-weight:600; font-size:13px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:10px; }
.blog-article h1{ font-size:clamp(28px,4vw,42px); margin-bottom:18px; max-width:20ch; }
.blog-article-body{ max-width:70ch; font-size:17px; line-height:1.7; }
.blog-article-body p{ margin-bottom:20px; }
.blog-article-body h2{ font-family:var(--display); font-size:24px; margin:36px 0 14px; }
.blog-article-body blockquote{
  border-left:3px solid var(--rust); padding-left:18px; margin:28px 0;
  font-style:italic; font-size:18px; color:var(--ink); opacity:.85;
}
.blog-article-body a{ color:var(--rust); }
.blog-back{ display:inline-block; margin-bottom:24px; font-weight:600; font-size:14.5px; color:var(--rust); text-decoration:none; }
.blog-back:hover{ text-decoration:underline; }
