/* Renaissance Rodeo theme for the pretix shop (tickets.renaissance.rodeo).
   The look of renaissance.rodeo (public/style.css there): two inks on cream, Bevan for headings and
   prices, Cormorant Garamond for everything else, square panels with an ink rule, red buttons.
   Loaded by signals.py (html_head) on the presale pages of events where the plugin is switched on,
   AFTER pretix's own presale.css and the event's theme.css, so equal-specificity rules win here.
   The back office never loads it.

   The licence credit is removed in apps.py (Cameron's 2026-10-23 decision, accepted licence risk):
   pretix's get_powered_by is patched to return "", so the footer is empty on every generated page.
   The footer rules below only keep that empty footer from taking space; they do not hide anything. */

@font-face {
  font-family: 'Bevan';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/bevan-latin-400-normal.9a53805f9584.woff2") format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin-400-normal.87d22046a89f.woff2") format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin-600-normal.bf1e09fb81d7.woff2") format('woff2');
}

:root {
  --rr-cream: #f7edd8;
  --rr-paper: #fffdf8;
  --rr-ink: #0e1d2d;
  --rr-muted: #3f4a58;
  --rr-rule: #b9ab90;
  --rr-red: #c01102;
  --rr-red-deep: #a30e02;
  --rr-display: 'Bevan', Rockwell, 'Roboto Slab', Georgia, serif;
  --rr-body: 'Cormorant Garamond', Cormorant, 'EB Garamond', Garamond, Georgia, serif;
  --rr-border: 1.5px;
}

/* ---------- page ---------- */
html, body {
  background: var(--rr-cream);
  color: var(--rr-ink);
}
body {
  min-height: 100vh;
  background: linear-gradient(180deg, var(--rr-cream) 0%, #ecdec2 55%, #e2cfa9 100%);
  background-attachment: fixed;
  font-family: var(--rr-body);
  font-size: 19px;
  line-height: 1.45;
}
body, button, input, select, textarea, .btn, .form-control { font-family: var(--rr-body); }
a, a:hover, a:focus, .btn-link { color: var(--rr-ink); text-underline-offset: .15em; }
a:hover { color: var(--rr-red-deep); }
:focus-visible { outline: 3px solid var(--rr-red); outline-offset: 2px; }
.text-muted, small, .small { color: var(--rr-muted); }
strong, b { font-weight: 600; }
hr { border-top-color: var(--rr-rule); }

h1, h2, h3, .h1, .h2, .h3 {
  font-family: var(--rr-display);
  font-weight: 400;
  color: var(--rr-ink);
  letter-spacing: 0;
}
h1, .h1 { font-size: 2.1rem; line-height: 1.15; }
h2, .h2 { font-size: 1.55rem; line-height: 1.2; }
h3, .h3 { font-size: 1.3rem; line-height: 1.2; }
h4, .h4, h5, .h5 { font-family: var(--rr-body); font-weight: 600; color: var(--rr-ink); font-size: 1.15rem; }

/* ---------- the bar on top (templates/pretix_rodeo_theme/header.html) + pretix's language switch ---------- */
.rr-bar {
  display: flex;
  align-items: center;
  min-height: 68px;
}
.rr-bar .rr-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  margin-left: -4px;
}
.rr-bar .rr-mark img { width: 36px; height: 36px; }
.rr-bar .rr-home {
  margin-left: .5rem;
  font-weight: 600;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  text-decoration: none;
}
.rr-bar .rr-home:hover { text-decoration: underline; }
/* The bar, pretix's header row and the content column share one width and gutter, so the mark, the
   switch and the copy line up. */
.rr-bar.container, body > header .container.page-header-links, .container.main-box {
  width: auto;
  max-width: 1040px;
  padding-left: 25px;
  padding-right: 25px;
}
/* pretix's own header row only carries the EN | ES switch here: lift it into the bar's line. */
body > header { position: absolute; top: 0; left: 0; right: 0; pointer-events: none; }
body > header .container.page-header-links {
  min-height: 68px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-top: 0;
  padding-bottom: 0;
}
body > header .page-header-links > * { pointer-events: auto; }
/* pretix pads this cell 15px and colours its links through `.page-header-links>div.header-part a`;
   these selectors carry that one plus `body > header`, so they win without !important. */
body > header .page-header-links > div.header-part { float: none !important; margin: 0; padding: 0; }
body > header .locales ul { margin: 0; padding: 0; display: flex; align-items: center; }
body > header .locales li { display: flex; align-items: center; margin: 0; padding: 0; }
body > header .locales li + li::before { content: '|'; color: var(--rr-muted); padding: 0 .1rem; }
body > header .page-header-links > div.header-part .locales a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 .25rem;
  font-weight: 600;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--rr-ink);
  text-decoration: underline;
}
body > header .page-header-links > div.header-part .locales a.active { color: var(--rr-muted); text-decoration: none; }
/* "EN | ES" as on the site. The link text is swapped visually only: each link keeps pretix's
   aria-label ("Website in English" / "Sitio web en Español"), which is what a screen reader reads. */
body > header .page-header-links > div.header-part .locales a[hreflang="en"], body > header .page-header-links > div.header-part .locales a[hreflang^="es"] { font-size: 0; }
body > header .page-header-links > div.header-part .locales a[hreflang="en"]::after { content: 'EN'; font-size: 1rem; }
body > header .page-header-links > div.header-part .locales a[hreflang^="es"]::after { content: 'ES'; font-size: 1rem; }

/* ---------- the content column: no white card, the copy sits on cream like the site ---------- */
.main-box, .container.main-box {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  padding-top: .5rem;
  max-width: 1040px;
}
.page-header {
  border-bottom: var(--rr-border) solid var(--rr-ink);
  margin: .5rem 0 1.25rem;
  padding-bottom: .75rem;
}
.page-header h1, .page-header h1 a { font-family: var(--rr-display); color: var(--rr-ink); text-decoration: none; }
.page-header h1 small, .page-header h1 .text-muted {
  display: block;
  margin-top: .35rem;
  font: 600 1.05rem / 1.3 var(--rr-body);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--rr-muted);
}

/* where + when */
.info-row { margin-bottom: .6rem; }
.info-row-icon, .info-row .fa { color: var(--rr-red); }

/* ---------- products ---------- */
.item-category h3, .item-category h4 { font-family: var(--rr-display); }
.product-row {
  border-top: 1px solid var(--rr-rule);
  padding-top: .8rem;
  padding-bottom: .8rem;
}
.product-row:first-child { border-top: 0; }
.product-row strong, .product-row h4, .product-row .h4 { font: 600 1.2rem / 1.25 var(--rr-body); }
.product-row .price { font-family: var(--rr-display); font-size: 1.25rem; color: var(--rr-ink); }
.product-row .price .text-muted, .product-row .price small { font-family: var(--rr-body); font-size: .9rem; }
.product-description { color: var(--rr-muted); }
.availability-box .label, .label { border-radius: 0; font-family: var(--rr-body); font-weight: 600; letter-spacing: .04em; }

/* ---------- buttons ---------- */
.btn {
  border-radius: 6px;
  border-width: var(--rr-border);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.btn-primary, .btn-primary:focus, .btn-success, .btn-success:focus {
  background: var(--rr-red);
  border-color: var(--rr-red);
  color: var(--rr-cream);
  box-shadow: 0 2px 6px rgb(163 14 2 / .28);
}
.btn-primary:hover, .btn-primary:active, .btn-primary.active,
.btn-success:hover, .btn-success:active, .btn-success.active {
  background: var(--rr-red-deep);
  border-color: var(--rr-red-deep);
  color: var(--rr-cream);
  box-shadow: 0 6px 16px rgb(163 14 2 / .32);
}
.btn-primary[disabled], .btn-primary.disabled { background: var(--rr-red); opacity: .6; }
.btn-default, .btn-default:focus {
  background: var(--rr-paper);
  border-color: var(--rr-ink);
  color: var(--rr-ink);
}
.btn-default:hover, .btn-default:active { background: var(--rr-cream); border-color: var(--rr-ink); color: var(--rr-ink); }
.btn-lg { font-size: 1.15rem; }
/* the +/- steppers next to each product stay plain glyphs, not shouting capitals */
.input-item-count-group .btn {
  min-width: 44px;
  text-transform: none;
  letter-spacing: 0;
  border-radius: 0;
  box-shadow: none;
  font: 600 1.35rem / 1 var(--rr-body);
}

/* ---------- forms ---------- */
.form-control, .input-group-addon {
  background: var(--rr-paper);
  border: var(--rr-border) solid var(--rr-ink);
  border-radius: 0;
  color: var(--rr-ink);
  box-shadow: none;
  font-size: 1.05rem;
  height: auto;
  min-height: 44px;
}
.form-control:focus { border-color: var(--rr-red); box-shadow: 0 0 0 2px rgb(192 17 2 / .25); }
.form-control::placeholder { color: var(--rr-muted); font-style: italic; }
.input-group-addon { color: var(--rr-ink); }
.input-group .form-control, .input-group-addon, .input-group-btn .btn { border-radius: 0; }
label, .control-label { font-weight: 600; color: var(--rr-ink); }
.help-block { color: var(--rr-muted); }
.has-error .form-control { border-color: var(--rr-red); }
.has-error .help-block, .has-error .control-label { color: var(--rr-red-deep); }

/* ---------- panels, cart, checkout ---------- */
.panel, .panel-default, .panel-primary, .well {
  background: var(--rr-paper);
  border: var(--rr-border) solid var(--rr-ink);
  border-radius: 0;
  box-shadow: none;
}
.panel > .panel-heading, .panel-default > .panel-heading, .panel-primary > .panel-heading {
  background: var(--rr-cream);
  border-bottom: var(--rr-border) solid var(--rr-ink);
  border-radius: 0;
  color: var(--rr-ink);
}
.panel-title, .panel-heading h3, .panel-heading .h3 { font-family: var(--rr-display); font-size: 1.15rem; color: var(--rr-ink); }
.cart-row { border-color: var(--rr-rule); }
.cart-row .price, .cart-row .totalprice, .total strong { font-family: var(--rr-display); font-weight: 400; }
.checkout-flow .checkout-step, .steps li { color: var(--rr-muted); }
.checkout-flow .checkout-step.step-current, .checkout-flow .checkout-step.step-current .checkout-step-label { color: var(--rr-ink); font-weight: 600; }
.checkout-flow .checkout-step-bar-left, .checkout-flow .checkout-step-bar-right { background: var(--rr-rule); }
.checkout-flow .checkout-step.step-done .checkout-step-bar-left,
.checkout-flow .checkout-step.step-done .checkout-step-bar-right,
.checkout-flow .checkout-step.step-current .checkout-step-bar-left { background: var(--rr-red); }
.checkout-flow .checkout-step-icon { background: var(--rr-paper); border-color: var(--rr-ink); color: var(--rr-ink); }
.checkout-flow .checkout-step.step-done .checkout-step-icon,
.checkout-flow .checkout-step.step-current .checkout-step-icon { background: var(--rr-red); border-color: var(--rr-red); color: var(--rr-cream); }
.progress { background: var(--rr-paper); border: 1px solid var(--rr-rule); border-radius: 0; box-shadow: none; }
.progress-bar, .progress-bar-success { background: var(--rr-red); }

/* ---------- messages ---------- */
.alert {
  background: var(--rr-paper);
  border: var(--rr-border) solid var(--rr-ink);
  border-left-width: 6px;
  border-radius: 0;
  color: var(--rr-ink);
}
.alert-danger, .alert-error { border-left-color: var(--rr-red); }
.alert-success { border-left-color: #2f6b3a; }
.alert-warning { border-left-color: #b8860b; }
.alert-info { border-left-color: var(--rr-muted); }

/* popups ("adding to cart …", errors) */
.modal-card { background: var(--rr-paper); border: var(--rr-border) solid var(--rr-ink); border-radius: 0; box-shadow: 0 10px 30px rgb(14 29 45 / .25); }
.modal-card-icon { background: var(--rr-ink); color: var(--rr-cream); }
.modal-card-title { font-family: var(--rr-display); }

/* ---------- footer: now empty (apps.py removes the credit); keep it from taking space ---------- */
footer { margin: 2rem 0 1.5rem; text-align: center; }
footer, footer a { color: var(--rr-muted); font-size: 13px; letter-spacing: .02em; }
footer nav ul { margin: 0; padding: 0; list-style: none; }

/* ---------- phones ---------- */
@media (max-width: 519px) {
  body { font-size: 18px; }
  h1, .h1 { font-size: 1.65rem; }
  .rr-bar.container, body > header .container.page-header-links, .container.main-box { padding-left: 16px; padding-right: 16px; }
  /* The site's subpages show only the mark on phones; the words would run into EN | ES. */
  .rr-bar .rr-home { display: none; }
}
