@charset "UTF-8";
/* ==========================================================================
   NLB Podgorica Millennium Run — theme stylesheet
   Mobile-first. Reproduces the approved 2026 prototype.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fonts — self-hosted, no Google Fonts request from the front end
   -------------------------------------------------------------------------- */

/* Raleway — headings, 600-900 */
@font-face{font-family:"Raleway";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/raleway-latin-ext-600.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/raleway-latin-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/raleway-latin-ext-700.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/raleway-latin-700.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:800;font-display:swap;
  src:url("../fonts/raleway-latin-ext-800.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:800;font-display:swap;
  src:url("../fonts/raleway-latin-800.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:900;font-display:swap;
  src:url("../fonts/raleway-latin-ext-900.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Raleway";font-style:normal;font-weight:900;font-display:swap;
  src:url("../fonts/raleway-latin-900.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* IBM Plex Sans — body, 400/600 */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/ibm-plex-sans-latin-ext-400.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/ibm-plex-sans-latin-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/ibm-plex-sans-latin-ext-600.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/ibm-plex-sans-latin-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* --------------------------------------------------------------------------
   2. Tokens
   -------------------------------------------------------------------------- */
:root{
  --pmr-purple:#2b1250;
  --pmr-purple-deep:#1b0a36;
  --pmr-purple-ink:#10062a;
  --pmr-cyan:#00aeef;
  /* Text-safe cyan. Same hue (196deg) and saturation as the brand cyan, darkened
     until it clears 4.5:1 on BOTH white (5.03:1) and the shell grey (4.53:1).
     The brand cyan #00AEEF is an accent only and is never used for small text
     on a light ground — it manages just 2.53:1 on white. */
  --pmr-cyan-text:#0077a4;
  --pmr-ink:#16161a;
  --pmr-body:#3d3f46;
  --pmr-body-alt:#45474e;
  /* 4.55:1 on the shell grey, 5.05:1 on white */
  --pmr-muted:#6c6f73;
  --pmr-shell:#f2f3f5;
  --pmr-hairline:#e2e4e8;
  --pmr-rule:#d6d9de;
  --pmr-on-purple:#cbc2dd;
  --pmr-on-purple-dim:#8f83a8;
  --pmr-on-purple-soft:#b6abcb;
  --pmr-on-purple-link:#e4ddf0;

  --pmr-font-head:"Raleway",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pmr-font-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;

  --pmr-max:1400px;
  --pmr-gut:clamp(22px,5vw,72px);
  --pmr-gut-head:clamp(18px,4vw,44px);
  --pmr-section:clamp(64px,8vw,120px);
  --pmr-header-h:80px;
  --pmr-radius:2px;
}

/* --------------------------------------------------------------------------
   3. Base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--pmr-header-h) + 16px);
  -webkit-text-size-adjust:100%;
  /*
   * The closed drawer is parked off-canvas with translateX(100%). It is
   * position:fixed, so body{overflow-x:hidden} alone does not stop it
   * extending the scroll area — the clip has to be on the root too.
   *
   * It must be `clip`, not `hidden`. `hidden` turns the root into a scroll
   * container, and the page then scrolls without firing scroll events on
   * window or document, which silently killed the sticky header. `clip`
   * trims the overflow without creating a scroll container, so scrolling
   * and its events stay where they belong.
   */
  overflow-x:clip;
}
body{
  margin:0;background:#fff;color:var(--pmr-ink);
  font-family:var(--pmr-font-body);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  /*
   * `clip`, not `hidden`, for the same reason as the root — and one more.
   * `overflow-x:hidden` computes overflow-y to `auto`, which makes the body a
   * scroll container, and `position:sticky` only sticks inside its nearest
   * scrolling ancestor. That silently stopped the rules page contents list
   * from sticking. `clip` trims the same overflow without the side effect.
   */
  overflow-x:clip;
}
body.pmr-nav-open{overflow:hidden;}
/* The lightbox locks scrolling too, but with its own class — pmr-nav-open
   also slides the drawer open, which would sit behind the overlay. */
body.pmr-lb-open{overflow:hidden;}
img,video,svg{max-width:100%;}
img,video{height:auto;display:block;}
a{color:var(--pmr-cyan-text);text-decoration:none;}
a:hover{color:var(--pmr-purple);}
h1,h2,h3,h4{font-family:var(--pmr-font-head);margin:0;text-wrap:balance;}
p{margin:0;}
button{font:inherit;}

:focus-visible{outline:3px solid var(--pmr-cyan);outline-offset:3px;}
.pmr-on-dark :focus-visible,.pmr-header :focus-visible,.pmr-drawer :focus-visible{outline-color:#fff;}

/* Clipped rather than parked at left:-9999px, so it never widens the page. */
.pmr-skip{
  position:absolute;top:0;left:0;z-index:200;
  width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
  background:var(--pmr-cyan);color:var(--pmr-purple-ink);
  font-family:var(--pmr-font-head);font-weight:800;letter-spacing:.12em;
  white-space:nowrap;
}
.pmr-skip:focus{width:auto;height:auto;clip-path:none;padding:16px 24px;}

.pmr-visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

.pmr-shell{max-width:var(--pmr-max);margin:0 auto;padding-inline:var(--pmr-gut);}
.pmr-section{padding-block:var(--pmr-section);}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* --------------------------------------------------------------------------
   4. Buttons
   -------------------------------------------------------------------------- */
.pmr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--pmr-font-head);font-size:14px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;padding:16px 26px;border-radius:var(--pmr-radius);
  border:1px solid transparent;cursor:pointer;text-align:center;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
}
.pmr-btn svg{flex-shrink:0;}
.pmr-btn--cyan{background:var(--pmr-cyan);color:var(--pmr-purple-ink);}
.pmr-btn--cyan:hover{background:var(--pmr-purple);color:#fff;}
.pmr-btn--cyan-light:hover{background:#fff;color:var(--pmr-purple-ink);}
.pmr-btn--purple{background:var(--pmr-purple);color:#fff;}
.pmr-btn--purple:hover{background:var(--pmr-purple-ink);color:#fff;}
.pmr-btn--outline-purple{border-color:var(--pmr-purple);color:var(--pmr-purple);background:transparent;}
.pmr-btn--outline-purple:hover{background:var(--pmr-purple);color:#fff;}
.pmr-btn--outline-light{border-color:rgba(255,255,255,.45);color:#fff;background:transparent;}
.pmr-btn--outline-light:hover{border-color:var(--pmr-cyan);color:var(--pmr-cyan);}
.pmr-btn--lg{font-size:15px;padding:19px 30px;}
.pmr-btn--xl{font-size:16px;padding:22px 38px;}
.pmr-btn--sm{font-size:13px;padding:13px 18px;}

/* --------------------------------------------------------------------------
   5. Header — sticky, solid purple, never transparent
   -------------------------------------------------------------------------- */
/*
 * Sticky on scroll, not permanently pinned.
 *
 * At the top of the page the header sits in normal flow. Once the reader has
 * scrolled past it, JS adds .is-stuck and it fixes to the top and slides in.
 * A sentinel of the header's own height takes its place so the page does not
 * jump at the moment it detaches. The bar stays solid purple in both states,
 * which is what keeps the nav legible over the hero footage.
 */
.pmr-header{
  position:relative;z-index:60;
  background:var(--pmr-purple);
  border-bottom:1px solid rgba(255,255,255,.14);
  font-family:var(--pmr-font-body);
}
.pmr-header-sentinel{display:none;height:var(--pmr-header-h);}
body.pmr-stuck .pmr-header-sentinel{display:block;}

.pmr-header.is-stuck{
  position:fixed;top:0;left:0;right:0;
  box-shadow:0 6px 24px rgba(16,6,42,.28);
  animation:pmr-drop .26s cubic-bezier(.4,0,.2,1) both;
}
@keyframes pmr-drop{from{transform:translateY(-100%)}to{transform:translateY(0)}}

/*
 * Once stuck, the bar stays visible in both scroll directions. It used to
 * tuck away on the way down and return on the way up; that read as the header
 * disappearing, so it was removed.
 */

@media (prefers-reduced-motion:reduce){
  .pmr-header.is-stuck{animation:none;}
}
.pmr-header__inner{
  max-width:var(--pmr-max);margin:0 auto;
  padding-inline:var(--pmr-gut-head);
  height:var(--pmr-header-h);
  display:flex;align-items:center;gap:32px;
}
.pmr-header__logo{display:flex;align-items:center;flex-shrink:0;}
.pmr-header__logo img{height:46px;width:auto;}

.pmr-nav{display:none;align-items:center;gap:30px;margin-left:auto;}
.pmr-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:30px;}
.pmr-nav a{
  font-family:var(--pmr-font-head);font-size:13px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#fff;
  transition:color .18s ease;
}
.pmr-nav a:hover,.pmr-nav .current-menu-item > a{color:var(--pmr-cyan);}

.pmr-header__actions{display:none;align-items:center;gap:16px;}

.pmr-langswitch{
  display:flex;align-items:center;
  border:1px solid rgba(255,255,255,.32);border-radius:var(--pmr-radius);overflow:hidden;
}
.pmr-langswitch span,.pmr-langswitch a{
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;letter-spacing:.1em;
  padding:7px 11px;color:#fff;transition:color .18s ease;
}
.pmr-langswitch .is-current{background:var(--pmr-cyan);color:var(--pmr-purple-ink);}
.pmr-langswitch a:hover{color:var(--pmr-cyan);}

.pmr-header__language{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  margin-left:auto;width:44px;height:44px;
  border:1px solid rgba(255,255,255,.32);border-radius:var(--pmr-radius);
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;letter-spacing:.1em;
  color:#fff;transition:color .18s ease;
}
.pmr-header__language:hover{color:var(--pmr-cyan);}

.pmr-burger{
  margin-left:auto;background:none;color:#fff;
  border:1px solid rgba(255,255,255,.32);border-radius:var(--pmr-radius);
  padding:10px;cursor:pointer;display:flex;
}

/*
 * The bar carries six items plus the language switch and the entry button, so
 * the drawer holds on longer than it used to. Below 1180px the full set cannot
 * sit on one line without the labels colliding with the button.
 */
@media (min-width:1180px){
  .pmr-nav,.pmr-header__actions{display:flex;}
  .pmr-burger,.pmr-header__language{display:none;}
}

@media (max-width:1179px){
  .pmr-header__inner{gap:12px;}
  .pmr-burger{flex-shrink:0;}
  .pmr-header__language + .pmr-burger{margin-left:0;}
}

/* Between the breakpoint and the layout's full width, tighten up to fit. */
@media (min-width:1180px) and (max-width:1439px){
  .pmr-header__inner{gap:22px;}
  .pmr-nav,.pmr-nav ul{gap:20px;}
  .pmr-nav a{font-size:12px;letter-spacing:.09em;}
}

/* --------------------------------------------------------------------------
   6. Mobile drawer — full height, right-hand side
   -------------------------------------------------------------------------- */
.pmr-drawer-scrim{
  position:fixed;inset:0;z-index:90;background:rgba(16,6,42,.6);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;
}
.pmr-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:100;
  width:min(340px,86vw);height:100%;
  background:var(--pmr-purple);padding:26px 28px;
  display:flex;flex-direction:column;gap:6px;overflow-y:auto;
  transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);
  visibility:hidden;
}
body.pmr-nav-open .pmr-drawer-scrim{opacity:1;visibility:visible;}
body.pmr-nav-open .pmr-drawer{transform:translateX(0);visibility:visible;}

.pmr-drawer__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;}
.pmr-drawer__top img{height:38px;width:auto;}
.pmr-drawer__close{
  background:none;color:#fff;border:1px solid rgba(255,255,255,.32);
  border-radius:var(--pmr-radius);padding:9px;cursor:pointer;display:flex;
}
.pmr-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.pmr-drawer ul a{
  display:block;font-family:var(--pmr-font-head);font-size:25px;font-weight:800;
  color:#fff;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12);
}
.pmr-drawer ul a:hover{color:var(--pmr-cyan);}
.pmr-drawer__cta{margin-top:22px;width:100%;}
.pmr-drawer__lang{margin-top:18px;display:flex;align-items:center;gap:10px;}
.pmr-drawer__lang span,.pmr-drawer__lang a{
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;letter-spacing:.1em;
  padding:9px 13px;border-radius:var(--pmr-radius);color:#fff;
}
.pmr-drawer__lang .is-current{background:var(--pmr-cyan);color:var(--pmr-purple-ink);}
.pmr-drawer__lang a{border:1px solid rgba(255,255,255,.32);}

/* --------------------------------------------------------------------------
   7. Hero
   -------------------------------------------------------------------------- */
.pmr-hero{
  position:relative;background:var(--pmr-purple);
  min-height:min(86vh,800px);display:flex;align-items:center;overflow:hidden;
}
.pmr-hero__media{position:absolute;inset:0;z-index:1;}
.pmr-hero__media img,.pmr-hero__media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
/* left-to-right purple gradient, clear by ~78% so the footage stays visible */
.pmr-hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(27,10,54,.95) 0%,rgba(27,10,54,.88) 26%,rgba(27,10,54,.40) 52%,rgba(27,10,54,0) 78%),
    linear-gradient(to bottom,rgba(27,10,54,.32),rgba(27,10,54,.16));
}
.pmr-hero__body{
  position:relative;z-index:2;width:100%;max-width:var(--pmr-max);margin:0 auto;
  padding:clamp(44px,6vw,80px) var(--pmr-gut);
}
.pmr-hero__col{max-width:700px;display:flex;flex-direction:column;}
.pmr-hero__eyebrow{
  margin:0 0 26px;font-family:var(--pmr-font-head);font-size:12px;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--pmr-cyan);
}
.pmr-hero__title{
  font-weight:900;font-size:clamp(46px,6.4vw,96px);line-height:.98;
  letter-spacing:-.012em;color:#fff;
}
.pmr-hero__title em{font-style:normal;color:var(--pmr-cyan);}
.pmr-hero__when{
  margin-top:30px;font-family:var(--pmr-font-head);font-size:clamp(16px,1.5vw,20px);
  font-weight:600;letter-spacing:.02em;color:#fff;
}
.pmr-hero__lede{
  margin-top:14px;font-size:clamp(17px,1.6vw,20px);line-height:1.5;
  color:var(--pmr-on-purple);max-width:44ch;
}
.pmr-hero__distances{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;
  list-style:none;padding:0;
}
.pmr-hero__distances li{
  font-family:var(--pmr-font-head);font-size:14px;font-weight:700;
  letter-spacing:.1em;color:#fff;display:flex;align-items:center;gap:14px;
}
.pmr-hero__distances li + li::before{
  content:"";width:5px;height:5px;background:var(--pmr-cyan);border-radius:50%;
}
.pmr-hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px;}

/* Blue band from the reference; the embed controls its responsive card. */
.pmr-corporate{
  background:#1470af;
  padding-block:clamp(32px,4.5vw,64px);
}

/* --------------------------------------------------------------------------
   8. Countdown rail
   -------------------------------------------------------------------------- */
.pmr-countdown{background:var(--pmr-cyan);padding:26px var(--pmr-gut);}
.pmr-countdown__inner{
  max-width:var(--pmr-max);margin:0 auto;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(20px,4vw,56px);
}
.pmr-countdown__label{
  font-family:var(--pmr-font-head);font-size:13px;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--pmr-purple-ink);
}
.pmr-countdown__units{
  display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,3vw,44px);
  list-style:none;margin:0;padding:0;
}
.pmr-countdown__units li{display:flex;flex-direction:column;align-items:center;}
.pmr-countdown__n{
  font-family:var(--pmr-font-head);font-size:clamp(34px,4vw,52px);font-weight:900;
  line-height:1;letter-spacing:-.015em;color:var(--pmr-purple-ink);
  font-variant-numeric:tabular-nums;
}
.pmr-countdown__u{
  font-family:var(--pmr-font-head);font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pmr-purple-ink);margin-top:6px;
}

/* --------------------------------------------------------------------------
   9. Intro split
   -------------------------------------------------------------------------- */
.pmr-intro__grid{
  display:flex;flex-wrap:wrap;gap:clamp(36px,5vw,80px);align-items:flex-start;
}
.pmr-intro__text{flex:1 1 400px;min-width:0;}
.pmr-intro__media{flex:1 1 420px;min-width:0;}
.pmr-h2{
  font-weight:900;font-size:clamp(34px,4.4vw,62px);line-height:.94;
  letter-spacing:-.012em;color:var(--pmr-purple);
}
.pmr-h2--sm{font-size:clamp(32px,4.2vw,58px);line-height:.96;}
.pmr-h2--light{color:#fff;}
.pmr-prose{
  margin-top:28px;font-size:clamp(17px,1.5vw,20px);line-height:1.62;
  color:var(--pmr-body);max-width:52ch;
}
.pmr-prose + .pmr-prose{margin-top:20px;}
.pmr-intro__media img{width:100%;height:clamp(300px,42vw,540px);object-fit:cover;}
.pmr-caption{
  margin-top:12px;font-family:var(--pmr-font-head);font-size:13px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--pmr-muted);
}

/* --------------------------------------------------------------------------
   10. Distances — responsive cards with shared content rows
   -------------------------------------------------------------------------- */
.pmr-distances{background:var(--pmr-shell);}
.pmr-distances__h{margin-bottom:clamp(36px,4vw,64px);}
.pmr-distances__grid{
  display:grid;grid-template-columns:minmax(0,1fr);column-gap:24px;row-gap:0;
}
.pmr-distance{
  min-width:0;margin-bottom:24px;padding:24px;
  background:#fff;border:1px solid var(--pmr-rule);border-radius:var(--pmr-radius);
  display:grid;grid-template-rows:subgrid;grid-row:span 8;
}
.pmr-distance__main{
  min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 5;
}
.pmr-distance__label{
  display:flex;align-items:baseline;gap:10px;margin-bottom:12px;
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.12em;color:var(--pmr-purple);
}
.pmr-distance__index{color:var(--pmr-muted);}
.pmr-distance__km{
  margin-bottom:16px;font-family:var(--pmr-font-head);font-size:clamp(48px,4.5vw,64px);
  font-weight:900;line-height:1;letter-spacing:-.04em;color:var(--pmr-purple);
}
.pmr-distance__km span{font-size:22px;letter-spacing:0;font-weight:800;}
.pmr-distance__name{
  font-weight:800;font-size:22px;line-height:1.25;
  letter-spacing:-.01em;color:var(--pmr-cyan-text);overflow-wrap:anywhere;
}
.pmr-distance__desc{margin-top:14px;margin-bottom:22px;font-size:16px;line-height:1.6;color:var(--pmr-body-alt);}
.pmr-distance__start{
  padding-top:18px;margin-bottom:22px;border-top:1px solid var(--pmr-hairline);
  display:flex;align-items:flex-start;gap:9px;
  font-family:var(--pmr-font-head);font-size:14px;font-weight:600;
  color:var(--pmr-purple);
}
.pmr-distance__start svg{flex-shrink:0;margin-top:3px;}
.pmr-distance__aside{
  min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 3;
}
.pmr-distance__aside .pmr-btn{
  grid-row:3;width:100%;white-space:normal;line-height:1.3;
}
@media (min-width:640px){
  .pmr-distances__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1024px){
  .pmr-distances__grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px;}
  .pmr-distance{padding:clamp(18px,1.7vw,24px);margin-bottom:0;}
}
.pmr-distance__fee{
  grid-row:1;margin-bottom:8px;
  font-family:var(--pmr-font-head);font-size:22px;font-weight:800;
  letter-spacing:-.01em;color:var(--pmr-purple);
}
.pmr-distance__inc{grid-row:2;margin-bottom:20px;font-size:14px;line-height:1.5;color:var(--pmr-muted);}

.pmr-placeholder{
  display:flex;align-items:center;justify-content:center;
  border:1px dashed #cfd3d9;background:transparent;
  font-family:var(--pmr-font-head);font-size:11px;font-weight:700;
  letter-spacing:.1em;color:var(--pmr-muted);text-align:center;
}

/* --------------------------------------------------------------------------
   11. Day at the race
   -------------------------------------------------------------------------- */
/* Homepage reviews — approved quotes and a verified Racecheck summary. */
.pmr-reviews__heading{text-align:center;line-height:1.06;margin-bottom:clamp(32px,4vw,56px);}
.pmr-reviews__grid{display:grid;gap:24px;}
.pmr-reviews__testimonial{
  margin:0;padding:clamp(24px,3.4vw,48px);background:var(--pmr-shell);
  border-radius:var(--pmr-radius);display:flex;flex-direction:column;gap:28px;min-width:0;
}
.pmr-reviews__quote{
  margin:0;color:var(--pmr-purple);font-size:clamp(20px,1.9vw,27px);
  font-weight:600;line-height:1.45;
}
.pmr-reviews__author{display:flex;align-items:center;gap:16px;margin-top:auto;padding-top:8px;}
.pmr-reviews__author > div{min-width:0;}
.pmr-reviews__avatar{
  flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:var(--pmr-purple);color:#fff;
  display:grid;place-items:center;font-size:20px;font-weight:600;
}
.pmr-reviews__name{font-size:19px;font-weight:600;color:var(--pmr-purple);}
.pmr-reviews__event{font-size:15px;color:var(--pmr-body);}
.pmr-reviews__aside{display:flex;flex-direction:column;gap:20px;min-width:0;}
.pmr-reviews__rating{
  flex:1;padding:clamp(24px,3vw,44px);background:var(--pmr-purple-deep);color:#fff;
  border-radius:var(--pmr-radius);
}
.pmr-reviews__overall{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;}
.pmr-reviews__score{
  font-family:var(--pmr-font-head);font-size:clamp(46px,4.4vw,64px);font-weight:800;line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.pmr-reviews__score > span{font-size:23px;color:var(--pmr-on-purple);margin-left:2px;}
.pmr-reviews__count{font-size:15px;color:var(--pmr-on-purple);margin-top:5px;}
.pmr-reviews__breakdown{margin:28px 0 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.2);}
.pmr-reviews__breakdown > div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;}
.pmr-reviews__breakdown > div + div{margin-top:14px;}
.pmr-reviews__breakdown dt{font-size:16px;color:var(--pmr-on-purple-link);}
.pmr-reviews__breakdown dd{margin:0;display:flex;align-items:center;gap:12px;font-weight:600;font-variant-numeric:tabular-nums;}
.pmr-reviews__link{
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;
  background:var(--pmr-cyan);color:var(--pmr-purple-ink);border-radius:var(--pmr-radius);
  font-family:var(--pmr-font-head);font-size:18px;font-weight:800;line-height:1.35;
  transition:background-color .18s ease,color .18s ease;
}
.pmr-reviews__link svg{flex-shrink:0;}
.pmr-reviews__link:hover{background:var(--pmr-purple);color:#fff;}
.pmr-review-stars{display:inline-block;position:relative;width:106px;height:18px;color:var(--pmr-cyan-text);vertical-align:middle;}
.pmr-review-stars__track{display:flex;gap:4px;width:106px;}
.pmr-review-stars__track svg{flex:0 0 18px;max-width:none;}
.pmr-review-stars > .pmr-review-stars__track{opacity:.25;}
.pmr-review-stars__fill{position:absolute;left:0;top:0;height:18px;overflow:hidden;}
.pmr-reviews__rating .pmr-review-stars{color:var(--pmr-cyan);}
@media (min-width:960px){
  .pmr-reviews__grid--with-rating{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);}
}

.pmr-race-day{background:var(--pmr-purple);}
.pmr-race-day__head{
  display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,72px);align-items:flex-end;
  margin-bottom:clamp(36px,4vw,60px);
}
.pmr-race-day__head h2{flex:1 1 380px;}
.pmr-race-day__intro{flex:1 1 380px;min-width:0;}
.pmr-race-day__intro p{
  font-size:clamp(16px,1.4vw,19px);line-height:1.6;color:var(--pmr-on-purple);max-width:54ch;
}
.pmr-race-day__intro .pmr-btn{margin-top:22px;}
/*
 * Fixed column counts, not auto-fit. With auto-fit the number of columns moved
 * with the viewport while two tiles spanned two columns each, so at most widths
 * the last row came up short and left a hole. The wide tiles are allowed only
 * at four columns, where 2+1+1 and 1+1+2 fill both rows exactly; below that the
 * grid is uniform and tiles cleanly on its own.
 */
.pmr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.pmr-grid img{width:100%;height:210px;object-fit:cover;}

@media (min-width:700px){
  .pmr-grid{grid-template-columns:repeat(3,1fr);}
  .pmr-grid img{height:260px;}
}
@media (min-width:1100px){
  .pmr-grid{grid-template-columns:repeat(4,1fr);}
  .pmr-grid img{height:300px;}
  .pmr-grid img.is-wide{grid-column:span 2;}
}

/* --------------------------------------------------------------------------
   12. Weekend split
   -------------------------------------------------------------------------- */
.pmr-weekend{background:#fff;display:flex;flex-wrap:wrap;}
.pmr-weekend__media{flex:1 1 360px;min-width:0;min-height:340px;}
.pmr-weekend__media img{width:100%;height:100%;min-height:340px;object-fit:cover;}
.pmr-weekend__body{
  flex:1.1 1 440px;min-width:0;
  padding:clamp(48px,6vw,104px) var(--pmr-gut);
  display:flex;flex-direction:column;justify-content:center;
}
.pmr-weekend__body h2{font-size:clamp(30px,3.6vw,50px);line-height:.98;}
.pmr-weekend__body .pmr-prose{margin-top:24px;max-width:50ch;}
.pmr-weekend__body .pmr-btn{margin-top:30px;align-self:flex-start;}

/* --------------------------------------------------------------------------
   13. FAQ
   -------------------------------------------------------------------------- */
.pmr-faq{background:var(--pmr-shell);}
.pmr-faq__grid{
  display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,80px);align-items:flex-start;
}
.pmr-faq__aside{flex:0 1 340px;min-width:0;}
.pmr-faq__aside h2{font-size:clamp(32px,3.6vw,50px);line-height:.96;}
.pmr-faq__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.pmr-faq__actions .pmr-btn{font-size:13px;padding:15px 22px;}
.pmr-faq__list{flex:1 1 440px;min-width:0;}
@media (min-width:1001px){.pmr-faq__aside{position:sticky;top:calc(var(--pmr-header-h) + 30px);}}

.pmr-faq__item{border-top:1px solid var(--pmr-rule);padding-block:22px;}
.pmr-faq__item:last-child{border-bottom:1px solid var(--pmr-rule);}
.pmr-faq__item summary{
  display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;
  font-family:var(--pmr-font-head);font-weight:700;font-size:clamp(17px,1.7vw,21px);
  letter-spacing:-.01em;color:var(--pmr-ink);list-style:none;
}
.pmr-faq__item summary::-webkit-details-marker{display:none;}
.pmr-faq__item summary svg{flex-shrink:0;transition:transform .2s ease;}
.pmr-faq__item[open] summary svg{transform:rotate(180deg);}
.pmr-faq__item p{margin-top:14px;font-size:17px;line-height:1.62;color:var(--pmr-body-alt);max-width:62ch;}

/* --------------------------------------------------------------------------
   14. Sponsors
   -------------------------------------------------------------------------- */
.pmr-sponsors{
  --pmr-sponsor-gap:clamp(32px,3vw,48px);
  background:#fff;padding-block:clamp(64px,8vw,112px);
}
.pmr-sponsors__inner{display:flex;flex-direction:column;gap:clamp(36px,4vw,56px);}
.pmr-tier{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;}
.pmr-tier + .pmr-tier{border-top:1px solid var(--pmr-hairline);padding-top:clamp(28px,3vw,44px);}
.pmr-tier--single{align-items:center;}
.pmr-tier__h{
  flex:0 0 260px;font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--pmr-muted);
}
.pmr-tier__items{
  flex:1 1 300px;min-width:0;display:flex;flex-wrap:wrap;
  gap:var(--pmr-sponsor-gap);align-items:center;justify-content:center;
}
/* Equal logo boxes keep the gaps steady; flex centres every wrapped row.
   Two boxes fit on narrow screens without shrinking the desktop wordmarks. */
.pmr-tier__items--grid > *{
  flex:0 1 min(180px,calc((100% - var(--pmr-sponsor-gap)) / 2));min-width:0;
}
.pmr-tier__items .pmr-sponsor-logo{
  display:flex;align-items:center;justify-content:center;max-width:100%;
}
.pmr-tier__items--grid .pmr-sponsor-logo{height:70px;}
.pmr-tier__items a,.pmr-tier__items span.pmr-placeholder{min-height:70px;}
.pmr-tier--lead .pmr-placeholder,.pmr-tier--lead a{height:74px;min-width:190px;padding-inline:22px;font-size:12px;letter-spacing:.12em;}
/* Keep the lead logos at their natural proportions within the centred row. */
.pmr-tier__items img{height:70px;width:auto;max-width:100%;object-fit:contain;}
/* Fill the shared logo box on smaller screens. */
.pmr-tier__items--grid img{width:100%;}
.pmr-tier__items--media img{height:58px;}
.pmr-tier__items .pmr-placeholder{height:70px;padding-inline:14px;}

@media (max-width:1000px){
  .pmr-tier__h{flex-basis:100%;}
  .pmr-tier__items{flex-basis:100%;}
}

@media (min-width:1001px){
  .pmr-tier__items--grid .pmr-sponsor-logo{height:100px;}
  .pmr-tier__items--grid img{width:auto;height:auto;max-width:100%;max-height:70px;}
  /* These source files include generous blank margins around the artwork.
     Allow their full canvas to extend beyond the shared box: the visible logo
     stays centred inside it, without cropping or changing its aspect ratio. */
  .pmr-tier__items--grid .pmr-sponsor-logo--padded img{width:100%;max-height:160px;}
}

/* --------------------------------------------------------------------------
   15. Closing CTA
   -------------------------------------------------------------------------- */
.pmr-closing{background:var(--pmr-cyan);padding:var(--pmr-section) var(--pmr-gut);}
.pmr-closing__inner{
  max-width:var(--pmr-max);margin:0 auto;display:flex;flex-wrap:wrap;gap:36px;
  align-items:flex-end;justify-content:space-between;
}
.pmr-closing h2{
  font-weight:900;font-size:clamp(36px,5.6vw,84px);line-height:.9;
  letter-spacing:-.015em;color:var(--pmr-purple-ink);
}
.pmr-closing p{
  margin-top:24px;font-family:var(--pmr-font-head);font-size:clamp(15px,1.4vw,19px);
  font-weight:600;color:var(--pmr-purple-ink);
}
.pmr-closing p + p{margin-top:4px;}

/* --------------------------------------------------------------------------
   16. Footer
   -------------------------------------------------------------------------- */
.pmr-footer{
  background:var(--pmr-purple-deep);
  padding:clamp(56px,7vw,96px) var(--pmr-gut) 32px;
  font-family:var(--pmr-font-body);
}
.pmr-footer__inner{max-width:var(--pmr-max);margin:0 auto;}
.pmr-footer__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:clamp(28px,4vw,56px);align-items:start;
}
.pmr-footer__brand img{height:56px;width:auto;}
.pmr-footer__label{
  margin-top:22px;font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--pmr-on-purple-dim);
}
.pmr-footer__social{display:flex;gap:12px;margin-top:14px;}
.pmr-footer__social a{
  display:flex;align-items:center;justify-content:center;width:42px;height:42px;
  border:1px solid rgba(255,255,255,.25);border-radius:var(--pmr-radius);
  transition:border-color .18s ease;
}
.pmr-footer__social a:hover{border-color:var(--pmr-cyan);}
.pmr-footer__menu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.pmr-footer__menu a{font-size:16px;color:var(--pmr-on-purple-link);}
.pmr-footer__menu a:hover{color:var(--pmr-cyan);}
.pmr-footer__credits p{margin-top:12px;font-size:15px;line-height:1.65;color:var(--pmr-on-purple-soft);}
.pmr-footer__base{
  margin-top:clamp(44px,5vw,72px);padding-top:26px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;
}
.pmr-footer__legal p{font-size:14px;line-height:1.6;color:var(--pmr-on-purple-dim);}
.pmr-footer__legal p + p{margin-top:6px;}
.pmr-footer__legal a{color:var(--pmr-on-purple-soft);}
.pmr-footer__legal a:hover{color:var(--pmr-cyan);}
.pmr-footer__powered{display:flex;align-items:center;gap:14px;}
.pmr-footer__powered span{
  font-family:var(--pmr-font-head);font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pmr-on-purple-dim);
}
.pmr-footer__powered img{height:30px;width:auto;}

/* Mobile entry reminder. Reserve its full height, including the safe area. */
.pmr-mobile-cta{display:none;}
@media screen and (max-width:760px){
  body.pmr-has-mobile-cta{
    --pmr-mobile-cta-height:calc(76px + env(safe-area-inset-bottom,0px));
    padding-bottom:var(--pmr-mobile-cta-height);
  }
  .pmr-mobile-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:70;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    min-height:76px;background:#21214b;color:#fff;
    padding:12px max(16px,env(safe-area-inset-right,0px))
      calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
    box-shadow:0 -3px 16px rgba(16,6,42,.16);
  }
  .pmr-mobile-cta__text{min-width:0;font-size:15px;font-weight:600;line-height:1.3;}
  .pmr-mobile-cta__button{
    flex-shrink:0;min-height:44px;padding:12px 18px;border-radius:999px;
    font-size:13px;line-height:1.25;letter-spacing:.02em;text-transform:none;white-space:nowrap;
  }
  /* Keep the existing cookie notice and its reopen control above the CTA. */
  .pmr-has-mobile-cta .cookieadmin_law_container.cookieadmin_bottom,
  .pmr-has-mobile-cta .cookieadmin_re_consent{
    bottom:calc(var(--pmr-mobile-cta-height) + 12px);
  }
  .pmr-has-mobile-cta .cookieadmin_law_container.cookieadmin_bottom{
    max-height:calc(100dvh - var(--pmr-mobile-cta-height) - 24px);overflow-y:auto;
  }
}

/* --------------------------------------------------------------------------
   17. Editor / admin niceties
   -------------------------------------------------------------------------- */
.admin-bar .pmr-header.is-stuck{top:32px;}
@media screen and (max-width:782px){.admin-bar .pmr-header.is-stuck{top:46px;}}

/* --------------------------------------------------------------------------
   18. Subpages — shared furniture
   -------------------------------------------------------------------------- */

.pmr-page-head{
  position:relative;isolation:isolate;
  background:var(--pmr-purple);color:#fff;
  padding:clamp(56px,7vw,110px) var(--pmr-gut) clamp(40px,5vw,72px);
}
.pmr-page-head .pmr-shell{padding-inline:0;position:relative;z-index:1;}

/*
 * Optional photograph behind the header.
 *
 * The image sits under two layers: a flat purple wash that guarantees the
 * floor, and a gradient that deepens towards the left where the headline sits.
 * Measured against the darkest point of the lightest photo in the set, white
 * text clears 7:1 — comfortably past the brief's 4.5:1 floor even before the
 * gradient. The purple reads as brand colour, not as a grey scrim.
 */
.pmr-page-head--media{background:var(--pmr-purple-deep);}
.pmr-page-head__bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 42%;
  z-index:-2;
}
/* Keep the Millennium Bridge tower visible in the About page's wide header. */
.pmr-page-head--about-aerial .pmr-page-head__bg{
  object-position:center 24%;
}
.pmr-page-head--media::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg, rgba(27,10,54,.94) 0%, rgba(27,10,54,.88) 42%, rgba(27,10,54,.72) 100%),
    rgba(43,18,80,.55);
}
@media (max-width:760px){
  /* Narrower column, so the wash has to be even across the whole width. */
  .pmr-page-head--media::after{
    background:linear-gradient(180deg, rgba(27,10,54,.9) 0%, rgba(27,10,54,.94) 100%), rgba(43,18,80,.5);
  }
}
.pmr-h1--page{
  font-family:var(--pmr-font-head);font-weight:900;
  font-size:clamp(38px,6vw,86px);line-height:.94;letter-spacing:-.01em;
  text-transform:uppercase;color:#fff;margin:0;
}
.pmr-eyebrow{
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;color:var(--pmr-cyan);
  margin:0 0 18px;
}
.pmr-page-head__lede{
  margin:22px 0 0;max-width:56ch;font-size:clamp(17px,1.5vw,20px);
  color:rgba(255,255,255,.86);
}

.pmr-section--tight{padding-block:clamp(44px,5vw,80px);}
.pmr-section--grey{background:var(--pmr-shell);}
.pmr-section--purple{background:var(--pmr-purple);color:#fff;}
.pmr-section--purple p{color:rgba(255,255,255,.86);}

.pmr-note{font-size:15px;color:var(--pmr-muted);margin-top:18px;}
.pmr-section--purple .pmr-note{color:rgba(255,255,255,.72);}

.pmr-callout{
  border-left:3px solid var(--pmr-cyan);
  background:var(--pmr-shell);
  padding:18px 22px;margin:0 0 32px;
  font-size:16px;line-height:1.6;max-width:70ch;
}

.pmr-split{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,72px);}
@media (min-width:860px){.pmr-split{grid-template-columns:1fr 1fr;}}

.pmr-bridge{
  display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px;
  justify-content:space-between;
}
.pmr-bridge p{margin:0;font-size:17px;}

/* Tables — used by the pricing history and the prize money. */
.pmr-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px;}
.pmr-table caption{
  text-align:left;font-family:var(--pmr-font-head);font-weight:800;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pmr-muted);padding-bottom:8px;
}
.pmr-table th,.pmr-table td{
  text-align:left;padding:9px 0;border-bottom:1px solid var(--pmr-hairline);
  font-weight:400;
}
.pmr-table td{text-align:right;font-variant-numeric:tabular-nums;}
.pmr-table--prize{max-width:380px;}

.pmr-details,.pmr-pack__history{margin-top:14px;}
.pmr-details > summary,.pmr-pack__history > summary{
  cursor:pointer;font-family:var(--pmr-font-head);font-weight:800;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--pmr-cyan-text);padding:10px 0;
}
.pmr-details > summary:hover,.pmr-pack__history > summary:hover{color:var(--pmr-purple);}

/* --------------------------------------------------------------------------
   19. Registration page
   -------------------------------------------------------------------------- */

.pmr-embed{min-height:120px;}
.pmr-embed--empty{
  border:1px dashed var(--pmr-hairline);border-radius:var(--pmr-radius);
  padding:clamp(28px,4vw,52px);text-align:center;background:#fff;
}
.pmr-embed--empty p{margin:0 0 20px;color:var(--pmr-muted);}

/*
 * The entry call on the registration page — the button alone, no panel. The
 * Race Space widget opens over the page from here.
 */

.pmr-packs{display:grid;grid-template-columns:1fr;gap:20px;margin-top:32px;}
@media (min-width:760px){.pmr-packs{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1180px){.pmr-packs{grid-template-columns:repeat(4,1fr);}}

.pmr-pack{
  background:#fff;border:1px solid var(--pmr-hairline);
  border-radius:var(--pmr-radius);padding:26px 24px 24px;
  display:flex;flex-direction:column;
}
.pmr-pack__name{
  font-family:var(--pmr-font-head);font-weight:800;font-size:19px;
  line-height:1.2;margin:0 0 16px;color:var(--pmr-purple);
}
.pmr-pack__fee{margin:0;font-size:15px;}
.pmr-pack__fee strong{font-size:26px;font-family:var(--pmr-font-head);color:var(--pmr-purple);}
.pmr-pack__fee-label{display:block;color:var(--pmr-muted);font-size:13px;}
.pmr-pack__next{margin:6px 0 0;font-size:14px;color:var(--pmr-muted);}
.pmr-pack__inc{margin:16px 0 0;font-size:15px;line-height:1.55;}
.pmr-pack .pmr-btn{margin-top:auto;justify-content:center;}
.pmr-pack__history{margin-top:16px;margin-bottom:18px;}

.pmr-newsletter{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;}
@media (min-width:860px){.pmr-newsletter{grid-template-columns:1fr 1fr;gap:56px;}}
.pmr-newsletter input[type=email]{
  width:100%;padding:15px 16px;border:1px solid rgba(255,255,255,.34);
  border-radius:var(--pmr-radius);background:rgba(255,255,255,.06);color:#fff;
  font-family:var(--pmr-font-body);font-size:16px;
}
.pmr-newsletter input[type=email]::placeholder{color:rgba(255,255,255,.6);}
.pmr-newsletter input[type=submit]{
  margin-top:12px;background:var(--pmr-cyan);color:var(--pmr-purple-ink);
  border:0;border-radius:var(--pmr-radius);cursor:pointer;
  font-family:var(--pmr-font-head);font-weight:800;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;padding:15px 24px;
}

/* --------------------------------------------------------------------------
   20. Rules page
   -------------------------------------------------------------------------- */

.pmr-rules{display:grid;grid-template-columns:1fr;gap:40px;}
@media (min-width:1000px){
  .pmr-rules{grid-template-columns:260px 1fr;gap:64px;align-items:start;}
  .pmr-rules__toc{position:sticky;top:calc(var(--pmr-header-h) + 24px);}
  /* The admin bar pushes the sticky header down by its own height. */
  .admin-bar .pmr-rules__toc{top:calc(var(--pmr-header-h) + 24px + 32px);}
}
.pmr-rules__toc-h{
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--pmr-muted);
  margin:0 0 14px;
}
.pmr-rules__toc ol{margin:0;padding-left:1.2em;font-size:15px;line-height:1.5;}
.pmr-rules__toc li{margin-bottom:9px;}
.pmr-rules__toc a{color:var(--pmr-ink);}
.pmr-rules__toc a:hover{color:var(--pmr-cyan-text);}

.pmr-rules__body{max-width:72ch;}
.pmr-rules__intro{font-size:17px;}
.pmr-rules__section{padding-top:clamp(32px,4vw,56px);}
.pmr-rules__section + .pmr-rules__section{border-top:1px solid var(--pmr-hairline);}
.pmr-rules__h{
  font-family:var(--pmr-font-head);font-weight:800;
  font-size:clamp(21px,2.4vw,28px);line-height:1.2;color:var(--pmr-purple);
  margin:0 0 18px;display:flex;gap:14px;align-items:baseline;
}
.pmr-rules__num{
  flex:0 0 auto;font-size:13px;color:var(--pmr-cyan-text);
  letter-spacing:.1em;
}
.pmr-rules__body ul{padding-left:1.15em;margin:0 0 18px;}
.pmr-rules__body li{margin-bottom:10px;line-height:1.6;}
.pmr-rules__back{margin-top:48px;}

/*
   The official Montenegrin text, collapsed under each translated section on
   the English page. Set slightly back from the translation so it reads as the
   source it is, without being hidden away.
*/
.pmr-rules__source{
  margin-top:22px;border-top:1px solid var(--pmr-hairline);
}
.pmr-rules__source > div{
  border-left:2px solid var(--pmr-hairline);
  padding-left:20px;margin-top:6px;
  font-size:15px;color:var(--pmr-muted);
}
.pmr-rules__source .pmr-table caption,
.pmr-rules__source .pmr-table th,
.pmr-rules__source .pmr-table td{color:var(--pmr-muted);}

/* --------------------------------------------------------------------------
   20b. About Podgorica
   -------------------------------------------------------------------------- */

.pmr-about{display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,64px);align-items:start;}
@media (min-width:960px){.pmr-about{grid-template-columns:1.05fr .95fr;}}
.pmr-about__intro .pmr-prose p{margin:0 0 20px;max-width:62ch;}
.pmr-about__intro > .pmr-h2{margin:0 0 24px;}
.pmr-about__lead{margin:0;}
.pmr-about__lead img{width:100%;border-radius:var(--pmr-radius);}
@media (min-width:960px){
  /* The history runs long; let the photograph ride down beside it rather
     than leaving a column of empty white. */
  .pmr-about__lead{position:sticky;top:calc(var(--pmr-header-h) + 32px);}
  .admin-bar .pmr-about__lead{top:calc(var(--pmr-header-h) + 32px + 32px);}
}

.pmr-about__suggest-h{margin:0 0 clamp(36px,5vw,60px);max-width:24ch;}

.pmr-about__list{display:grid;gap:clamp(40px,6vw,80px);}
.pmr-about__item{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,44px);align-items:center;}
@media (min-width:860px){
  .pmr-about__item{grid-template-columns:1fr 1fr;}
  /* Alternate the photograph left and right down the page. */
  .pmr-about__item--flip .pmr-about__media{order:2;}
}
.pmr-about__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pmr-radius);}
.pmr-about__h{
  font-family:var(--pmr-font-head);font-weight:800;
  font-size:clamp(22px,2.6vw,32px);line-height:1.15;color:var(--pmr-purple);
  margin:0 0 16px;
}
.pmr-about__body .pmr-prose p{margin:0 0 16px;}
.pmr-about__body .pmr-prose p:last-child{margin-bottom:0;}

/* --------------------------------------------------------------------------
   21. Results page
   -------------------------------------------------------------------------- */

.pmr-filters{display:flex;flex-wrap:wrap;gap:18px 28px;margin-bottom:8px;}
.pmr-field{margin:0;display:flex;flex-direction:column;gap:7px;}
.pmr-field label{
  font-family:var(--pmr-font-head);font-size:12px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:var(--pmr-muted);
}
.pmr-field select{
  min-width:200px;padding:12px 14px;font-size:16px;
  font-family:var(--pmr-font-body);color:var(--pmr-ink);
  border:1px solid var(--pmr-hairline);border-radius:var(--pmr-radius);background:#fff;
}

.pmr-results{margin-top:36px;}
.pmr-results__year{padding-top:32px;}
.pmr-results__year + .pmr-results__year{border-top:1px solid var(--pmr-hairline);}
.pmr-results__h{
  font-family:var(--pmr-font-head);font-weight:900;font-size:clamp(28px,3.4vw,42px);
  color:var(--pmr-purple);margin:0 0 14px;
}
.pmr-results__list{list-style:none;margin:0;padding:0;}
.pmr-results__row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px 24px;padding:15px 0;border-bottom:1px solid var(--pmr-hairline);
}
.pmr-results__row[hidden]{display:none;}
.pmr-results__name{font-size:17px;}
@media (max-width:600px){
  /* Keep every title beside its link; wrap text within the columns instead. */
  .pmr-results__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .pmr-results__name{min-width:0;}
  .pmr-results__row > .pmr-btn{justify-self:end;max-width:100%;}
}
.pmr-results__empty{margin-top:28px;color:var(--pmr-muted);}

/* --------------------------------------------------------------------------
   22. Gallery and lightbox
   -------------------------------------------------------------------------- */

.pmr-gallery{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:12px;
}
@media (min-width:700px){.pmr-gallery{grid-template-columns:repeat(3,1fr);}}
@media (min-width:1100px){.pmr-gallery{grid-template-columns:repeat(4,1fr);}}

.pmr-gallery__link{display:block;position:relative;overflow:hidden;background:var(--pmr-shell);}
.pmr-gallery__link img{
  width:100%;height:210px;object-fit:cover;display:block;
  transition:transform .4s cubic-bezier(.2,0,.2,1);
}
@media (min-width:700px){.pmr-gallery__link img{height:240px;}}
.pmr-gallery__link:hover img,.pmr-gallery__link:focus-visible img{transform:scale(1.04);}
.pmr-gallery__credit{margin-top:24px;}

.pmr-lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(16,6,42,.95);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(16px,4vw,56px);
}
.pmr-lightbox[hidden]{display:none;}
.pmr-lightbox__figure{margin:0;max-width:100%;max-height:100%;text-align:center;}
.pmr-lightbox__figure img{
  max-width:100%;max-height:78vh;width:auto;height:auto;
  object-fit:contain;margin-inline:auto;
}
.pmr-lightbox__figure figcaption{
  color:rgba(255,255,255,.78);font-size:14px;margin-top:14px;
  max-width:60ch;margin-inline:auto;
}
.pmr-lightbox__close,.pmr-lightbox__nav{
  position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);
  border-radius:var(--pmr-radius);cursor:pointer;
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  transition:background .18s ease;
}
.pmr-lightbox__close:hover,.pmr-lightbox__nav:hover{background:rgba(255,255,255,.22);}
.pmr-lightbox__close{top:clamp(12px,3vw,28px);right:clamp(12px,3vw,28px);}
.pmr-lightbox__nav--prev{left:clamp(8px,2vw,24px);top:50%;transform:translateY(-50%);}
.pmr-lightbox__nav--next{right:clamp(8px,2vw,24px);top:50%;transform:translateY(-50%);}
.pmr-lightbox__count{
  position:absolute;bottom:clamp(12px,3vw,26px);left:0;right:0;text-align:center;
  color:rgba(255,255,255,.66);font-size:13px;letter-spacing:.08em;margin:0;
}
.pmr-lightbox :focus-visible{outline:2px solid var(--pmr-cyan);outline-offset:3px;}

@media (max-width:560px){
  .pmr-lightbox__nav{width:42px;height:42px;}
  .pmr-lightbox__figure img{max-height:64vh;}
}

/* --------------------------------------------------------------------------
   23. Contact page
   -------------------------------------------------------------------------- */

.pmr-split--contact{align-items:start;}
.pmr-contact__org{font-size:19px;margin:0 0 14px;}
.pmr-contact__line{margin:0 0 8px;font-size:17px;color:var(--pmr-muted);}
.pmr-contact__line a{color:var(--pmr-cyan-text);}
.pmr-contact__follow-h{margin-top:40px;}
.pmr-contact__social{display:flex;gap:14px;margin-top:16px;color:var(--pmr-purple);}
.pmr-contact__social a{
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--pmr-hairline);border-radius:var(--pmr-radius);
  color:var(--pmr-purple);transition:background .18s ease;
}
.pmr-contact__social a:hover{background:var(--pmr-shell);}

/* The form heading needs air before the first field. */
.pmr-contact__form > .pmr-h2{margin:0 0 28px;}

.pmr-contact__form input[type=text],
.pmr-contact__form input[type=email],
.pmr-contact__form textarea{
  width:100%;padding:14px 15px;font-size:16px;font-family:var(--pmr-font-body);
  border:1px solid var(--pmr-hairline);border-radius:var(--pmr-radius);
  color:var(--pmr-ink);background:#fff;
}
.pmr-contact__form textarea{min-height:150px;resize:vertical;}
.pmr-contact__form p{margin:0 0 14px;}
.pmr-contact__form input[type=submit]{
  background:var(--pmr-cyan);color:var(--pmr-purple-ink);border:0;cursor:pointer;
  border-radius:var(--pmr-radius);font-family:var(--pmr-font-head);font-weight:800;
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:15px 26px;
}
