body { margin:0; background:#fff; color:#242424; font-family:Arial,Helvetica,sans-serif; line-height:1.5; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:#b32025; }
a:hover { color:#8c161a; }
img { max-width:100%; }
html { scroll-padding-top:100px; }

/* ---- Curtain load ---- */
.curtain { display:none; }
.js .curtain { display:block; position:fixed; inset:0; z-index:100; pointer-events:none; }
.curtain span { position:absolute; top:0; bottom:0; width:50.5%; background:#5d1720; transition:transform .9s cubic-bezier(.77,0,.18,1); }
.curtain span:first-child { left:0; }
.curtain span:last-child { right:0; }
.curtain.open span:first-child { transform:translateX(-101%); }
.curtain.open span:last-child { transform:translateX(101%); }
.curtain.done { display:none; }

/* ---- Scroll reveals ---- */
.js [data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0ms); }
.js [data-reveal].in { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  .js .curtain { display:none; }
  .js [data-reveal] { opacity:1; transform:none; transition:none; }
}

/* ---- Button hover ---- */
main a[style*="padding:14px 20px"], .car-btn, main button {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease;
}
main a[style*="padding:14px 20px"]:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(50,30,20,.16); }
main a[style*="padding:14px 20px"]:active { transform:translateY(0); box-shadow:none; }
main a[style*="background:#b32025"][style*="padding:14px 20px"]:hover { background:#8c161a !important; color:#fff; }
main a[style*="background:#fff"][style*="padding:14px 20px"]:hover { border-color:#b32025 !important; color:#b32025 !important; }
main button:hover { transform:translateY(-2px); }
main a[style*="padding:14px 20px"]:focus-visible, main button:focus-visible { outline:2px solid #b32025; outline-offset:3px; }
@media (prefers-reduced-motion: reduce) {
  main a[style*="padding:14px 20px"], main button { transition:none; }
  main a[style*="padding:14px 20px"]:hover, main button:hover { transform:none; box-shadow:none; }
}

/* hover:start (generated) */
.h1:hover{border-color:#b32025 !important}
.h2:hover{border-color:#b32025 !important;color:#b32025 !important}
.h3:hover{color:#fff !important}
/* hover:end */

/* ---- Burger button (hidden on desktop) ---- */
.nav-toggle { display:none; }

/* ---- Mobile / tablet header ---- */
@media (max-width: 980px) {
  .site-header .hdr-in { min-height:68px !important; padding:8px 0 !important; gap:0 !important; flex-wrap:wrap !important; justify-content:space-between !important; align-items:center !important; }
  .site-header .hdr-logo { flex:1 1 auto !important; }
  .site-header .hdr-logo-img { max-height:56px !important; max-width:150px !important; }
  .nav-toggle { display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:46px; height:46px; margin-right:-8px; padding:0; border:0; background:transparent; cursor:pointer; border-radius:3px; }
  .nav-toggle span { display:block; width:24px; height:2px; background:#242424; border-radius:2px; transition:transform .3s ease, opacity .2s ease; }
  .nav-toggle:focus-visible { outline:2px solid #b32025; outline-offset:2px; }
  .site-header.open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .site-header.open .nav-toggle span:nth-child(2) { opacity:0; }
  .site-header.open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

  .site-header .site-nav, .site-header .hdr-partner { display:none !important; flex:0 0 100% !important; width:100%; }
  .site-header.open .site-nav { display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; border-top:1px solid #eee; margin-top:8px; animation:menuIn .3s ease both; }
  .site-header.open .site-nav a { padding:15px 2px !important; font-size:14px !important; border-bottom:1px solid #f0ece6 !important; border-left:0; }
  .site-header.open .site-nav a[aria-current="page"] { border-bottom:1px solid #f0ece6 !important; box-shadow:inset 3px 0 0 #b32025; padding-left:14px !important; }
  .site-header.open .hdr-partner { display:flex !important; justify-content:flex-start !important; padding:16px 2px 8px; }
  .site-header.open { max-height:100vh; overflow-y:auto; }
}
@keyframes menuIn { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { .site-header.open .site-nav { animation:none; } .nav-toggle span { transition:none; } }

/* ---- Small-screen fixes ---- */
@media (max-width: 980px) {
  /* bigger tap targets for text links, without shifting layout */
  main a[href^="tel:"], main a[href^="mailto:"], main a[href^="https://www.rooibosna.com"], main a[href^="https://rooibosna.com/"],
  main a[style*="letter-spacing:.06em"] { padding:8px 0; margin:-8px 0; }
}
@media (max-width: 400px) {
  /* grids whose minimum column width exceeds a very narrow screen */
  main [style*="grid-template-columns:repeat(auto-"] { grid-template-columns:minmax(0,1fr) !important; }
  main section > div { min-width:0; }
}
main a[style*="padding:14px 20px"] { max-width:100%; }
