/* Keep Calgary Playing — Sport Calgary brand layer (2026 Brand Guidelines)
   Colours: red #EF3340 (the only red) · black #2E2E2E · white · light grey #F5F5F5.
   Type: Poppins for everything. Sporty Pro for big display headlines when the licensed files are available.
   Form: rounded corners on cards, panels, photos and inputs; pill buttons. */

:root{
  --kcp-red:#EF3340;--kcp-black:#2E2E2E;--kcp-grey:#F5F5F5;--kcp-line:#E5E5E5;
  --kcp-radius:16px;--kcp-radius-sm:12px;--kcp-pill:999px;
  --font-body:Poppins,system-ui,sans-serif;
  --font-display:'Sporty Pro',Poppins,system-ui,sans-serif;
}
/* Sporty Pro is a licensed face and is not bundled. Drop the files in assets/fonts/ and uncomment to enable it
   on the hero headlines; Poppins ExtraBold stands in until then.
@font-face{font-family:'Sporty Pro';src:url(../assets/fonts/SportyPro-Bold.woff2) format('woff2');font-weight:700 800;font-display:swap} */
h1{font-family:var(--font-display)!important}

/* ---- Rounded forms. Styles live inline on each element, so these match by role. */
a[style*="text-transform:uppercase"][style*="text-decoration:none"][style*="padding:"],
button[style*="text-transform:uppercase"][style*="cursor:pointer"][style*="padding:"]:not([role=tab]),
span[style*="padding:4px 8px"]{border-radius:var(--kcp-pill)}
button[aria-label][style*="width:44px"],button[aria-label][style*="width:46px"],button[aria-label][style*="width:56px"]{border-radius:50%}
[role=tablist][style*="border:2px solid"]{border-radius:var(--kcp-pill);overflow:hidden}
[role=tablist][style*="border-bottom:3px solid"] button{border-radius:var(--kcp-radius-sm) var(--kcp-radius-sm) 0 0}
[style*="border:2px solid #2E2E2E"][style*="padding:24px"],
[style*="border:3px solid #2E2E2E"],
article[style*="background:#fff;padding"],article[style*="background:#F5F5F5;padding"],
div[style*="background:#2E2E2E;color:#fff;padding"],div[role=status][style*="background:#2E2E2E"],
section[style*="background:#F5F5F5;color:#2E2E2E;padding"],section[style*="background:#2E2E2E;color:#fff;padding"],
#countdown,#modal-box,[style*="aspect-ratio"],[style*="gap:2px"][style*="border:2px solid"]{border-radius:var(--kcp-radius)}
[style*="gap:2px"][style*="border:2px solid"],#modal-box,[style*="border:3px solid #2E2E2E"]{overflow:hidden}
.kcp-field,label[style*="padding:16px 18px"],p[style*="background:#F5F5F5"][style*="padding"],span[style*="padding:14px 16px"],
figure[style*="aspect-ratio"] figcaption{border-radius:var(--kcp-radius-sm)}
figure[style*="aspect-ratio"] figcaption{border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--kcp-radius)}
div[style*="height:40px;background:rgba"],div[style*="height:28px;background:#EBEBEB"]{border-radius:var(--kcp-pill)}
.kcp-field{border-radius:var(--kcp-radius-sm)}
li[data-reveal] > a[data-card]{border-radius:var(--kcp-radius)}
dl[style*="gap:2px"]{border-radius:var(--kcp-radius);overflow:hidden}

/* ---- A rounded card inside a link or button (asset tiles on Assets & Data and Toolkit). The wrapper takes the card's
        radius so its hover shadow, hover background and focus outline follow the card shape, instead of a square
        effect with white wedges between it and the rounded card. Markup: <button class="kcp-card-link"><div>tile</div></button> */
.kcp-card-link,.kcp-card-link > div{border-radius:var(--kcp-radius)}
/* Asset lightbox: the graphic sits flush and #modal-box rounds the outer corners. Nothing white is painted under the
   graphic (white under a dark image bleeds through the anti-aliased curve as a pale arc), so the white panel colour sits
   on the caption column only; this dark filler covers any space below the graphic when the caption column is taller. */
#modal-tile > [style*="aspect-ratio"]{border-radius:0}
#modal-tile::after{content:"";flex:1 1 auto;background:#111}

/* ---- Rounding that survives script style changes. When a script sets el.style.x (the scroll reveal in kcp-motion.js,
        form state on the pledge page), the browser rewrites the whole style attribute in its own format
        ("border: 3px solid rgb(46, 46, 46)"), the [style*="…"] matches above stop applying and the card turns square.
        These are matched by class, id or data-hover instead, which scripts never rewrite. */
.kcp-card{border-radius:var(--kcp-radius);overflow:hidden}
[data-hover*="box-shadow"]{border-radius:var(--kcp-radius)}
#submit-btn{border-radius:var(--kcp-pill)}
/* A header strip that spans the top of a card (Toolkit e-mails) stays square; the card's rounded clip shapes it.
   Rounded on its own it leaves a white crescent inside the border and white wedges under its bottom corners. */
.kcp-card > div[style*="background:#2E2E2E"]:first-child{border-radius:0}

/* ---- Equal-width button pair: both pills take the width of the longer label (one shared 1fr track size).
        Side by side on wide rows, stacked at that same width on narrower rows, full width and stacked on phones.
        The 728px stacking point is tuned to the home page labels ("Add your name" + "Download the advocacy
        toolkit": the longer label sets both widths, 719px side by side in Poppins, 725px in the fallback font).
        Update it if the labels change.
        Markup: <div class="kcp-btn-row"><div class="kcp-btn-pair"><a>…</a><a>…</a></div></div> */
.kcp-btn-row{container:kcp-btn-row/inline-size}
.kcp-btn-pair{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-auto-rows:1fr;gap:12px;width:max-content;max-width:100%}
.kcp-btn-pair > a{display:flex;align-items:center;justify-content:center;text-align:center}
@container kcp-btn-row (max-width:728px){.kcp-btn-pair{grid-auto-flow:row}}
@media (max-width:640px){.kcp-btn-pair{grid-auto-flow:row;width:100%}.kcp-btn-pair > a{padding-left:16px!important;padding-right:16px!important}
  /* Narrow phones: keep "Download the advocacy toolkit" on one line down to 320px. The label shrinks with the row
     width (100cqi is the .kcp-btn-row width; 28px = side padding + border; 19.6 = label width per px of font size in
     Poppins 700 at .02em tracking), capped at the normal 15px. */
  @media (max-width:380px){.kcp-btn-pair > a{font-size:min(15px,calc((100cqi - 28px) / 19.6))!important;letter-spacing:.02em!important;padding-left:12px!important;padding-right:12px!important}}}

/* ---- Faded brand symbol in hero backgrounds (replaces the animated bead grids). */
.kcp-ornament{position:absolute;right:clamp(-40px,2vw,96px);bottom:clamp(-180px,-14vw,-80px);width:clamp(260px,34vw,520px);height:auto;pointer-events:none;user-select:none}
.kcp-ornament--dark{opacity:.07;filter:brightness(0) invert(1)}
.kcp-ornament--light{opacity:.06;filter:brightness(0)}

/* ---- Header: horizontal Sport Calgary logo, inline navigation with a Resources dropdown on desktop,
        and a dropdown panel under the bar on smaller screens. */
.kcp-header{position:relative;background:#fff;border-bottom:1px solid var(--kcp-line);font-family:var(--font-body)}
.kcp-nav-row{max-width:1320px;margin:0 auto;padding:12px clamp(20px,4vw,48px);display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.kcp-logo{flex:none;display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--kcp-black)}
.kcp-logo img{height:54px;width:auto;display:block}
.kcp-logo .kcp-campaign{display:none;border-left:2px solid var(--kcp-line);padding-left:16px;font:700 13px/1.15 var(--font-body);text-transform:uppercase;letter-spacing:.02em}
.kcp-logo .kcp-campaign b{color:var(--kcp-red)}
.kcp-nav{display:none;align-items:center;gap:4px;margin-left:auto}
.kcp-nav > a,.kcp-dd > button{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:0;background:transparent;border-radius:var(--kcp-pill);font:600 14px var(--font-body);color:var(--kcp-black);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.kcp-nav > a:hover,.kcp-dd > button:hover,.kcp-dd[data-open="1"] > button{background:var(--kcp-grey);color:var(--kcp-red)}
.kcp-nav > a[aria-current="page"],.kcp-dd[data-active="1"] > button{color:var(--kcp-red)}
.kcp-dd{position:relative}
.kcp-dd > button svg{width:12px;height:12px;transition:transform .25s}
.kcp-dd[data-open="1"] > button svg{transform:rotate(180deg)}
.kcp-dd-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:260px;background:#fff;border:1px solid var(--kcp-line);border-radius:var(--kcp-radius);box-shadow:0 18px 40px rgba(46,46,46,.14);padding:8px;display:none;flex-direction:column;z-index:70}
.kcp-dd[data-open="1"] .kcp-dd-panel{display:flex}
.kcp-dd-panel a{display:block;padding:12px 14px;border-radius:var(--kcp-radius-sm);font:600 14px var(--font-body);color:var(--kcp-black);text-decoration:none}
.kcp-dd-panel a:hover{background:var(--kcp-grey);color:var(--kcp-red)}
.kcp-dd-panel a[aria-current="page"]{color:var(--kcp-red)}
.kcp-cta{flex:none;margin-left:auto;display:inline-flex;align-items:center;padding:13px 22px;border-radius:var(--kcp-pill);background:var(--kcp-red);color:#fff;font:700 14px var(--font-body);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;white-space:nowrap;transition:background .2s}
.kcp-cta:hover{background:var(--kcp-black);color:#fff}
.kcp-burger{flex:none;width:46px;height:46px;border:2px solid var(--kcp-black);border-radius:50%;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.kcp-burger span{width:18px;height:2.5px;background:var(--kcp-red);border-radius:2px;transition:transform .25s,opacity .2s}
.kcp-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.kcp-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.kcp-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.kcp-mobile{display:none;position:absolute;left:0;right:0;top:100%;z-index:70;background:#fff;border-bottom:1px solid var(--kcp-line);box-shadow:0 24px 48px rgba(46,46,46,.14)}
.kcp-mobile[data-open="1"]{display:block}
.kcp-mobile nav{max-width:1320px;margin:0 auto;padding:8px clamp(20px,4vw,48px) 20px;display:flex;flex-direction:column}
.kcp-mobile nav a{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--kcp-line);font:700 17px var(--font-body);color:var(--kcp-black);text-decoration:none}
.kcp-mobile nav a small{font:600 12px var(--font-body);color:#888;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.kcp-mobile nav a[aria-current="page"]{color:var(--kcp-red)}
.kcp-mobile nav .kcp-cta,.kcp-mobile nav .kcp-cta:hover{color:#fff}
.kcp-mobile nav .kcp-cta{margin:16px 0 0;justify-content:center}
@media (min-width:1024px){.kcp-nav{display:flex}.kcp-burger,.kcp-mobile{display:none!important}.kcp-cta{margin-left:0}}
@media (min-width:1200px){.kcp-logo .kcp-campaign{display:block}}
@media (max-width:640px){.kcp-logo img{height:42px}.kcp-cta{padding:12px 16px;font-size:13px}}
@media (max-width:360px){.kcp-nav-row{gap:8px}.kcp-header .kcp-cta{padding:12px 12px;letter-spacing:.02em}}
@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important}}
