/* RACE Facilities – overview cards, facility page, mosaic gallery, photo viewer */
.rcf{--f-navy:#032465;--f-ink:#07123E;--f-gold:#FAD80B;--f-red:#E90A0C;--f-paper:#F7F8FA;--f-muted:#5f6b86;--f-line:rgba(3,36,101,.12);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--f-ink);width:100%;max-width:1240px;margin:0 auto;padding:8px 0 36px}
.rcf *,.rcf *::before,.rcf *::after{box-sizing:border-box}
.rcf [hidden]{display:none!important}
.rcf a{text-decoration:none}
.rcf img{border-radius:0;max-width:none}
.rcf .rcf-intro{max-width:760px;margin:0 0 26px;font-size:16.5px;line-height:1.7;color:var(--f-muted)}
.rcf .rcf-note{background:#FFF8D6;border:1px solid #F1D96A;color:#5b4a00;border-radius:14px;padding:12px 16px;font-size:14px;margin:0 0 20px}
.rcf .rcf-eyebrow{margin:0 0 10px;font-size:12px;font-weight:900;letter-spacing:2.2px;text-transform:uppercase;color:var(--f-red);display:flex;align-items:center;gap:12px}
.rcf .rcf-eyebrow::after{content:"";width:36px;height:2px;background:var(--f-gold)}
.rcf .rcf-h{margin:0 0 18px;font-size:clamp(30px,3.8vw,48px);line-height:1;font-weight:900;letter-spacing:-.04em;color:var(--f-navy);overflow-wrap:break-word}
.rcf .rcf-h3{margin:0 0 22px;font-size:clamp(22px,2.4vw,30px);line-height:1.1;font-weight:900;letter-spacing:-.03em;color:var(--f-navy)}
.rcf-block{margin-top:56px}

/* ---------- cards ---------- */
.rcf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px}
.rcf-grid > .rcf-card:only-child{max-width:440px}
.rcf-grid.is-small{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.rcf .rcf-card{display:flex;flex-direction:column;background:#fff;border-radius:24px;overflow:hidden;color:var(--f-ink);
  box-shadow:0 24px 60px -36px rgba(3,36,101,.55),0 0 0 1px var(--f-line);transition:transform .25s,box-shadow .25s}
.rcf .rcf-card:hover{transform:translateY(-4px);box-shadow:0 34px 70px -34px rgba(3,36,101,.6),0 0 0 1px rgba(3,36,101,.16)}
.rcf .rcf-card:focus-visible{outline:3px solid var(--f-gold);outline-offset:3px}
.rcf-card-img{position:relative;display:block;aspect-ratio:16/10;background:var(--f-paper);overflow:hidden}
.rcf-card-img img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.rcf-card:hover .rcf-card-img img{transform:scale(1.05)}
.rcf-noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--f-navy);background:linear-gradient(135deg,#eef2fa,#F7F8FA)}
.rcf-noimg svg{width:44px;height:44px;opacity:.5}
.rcf-card-body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.rcf-card-t{font-size:20px;font-weight:900;letter-spacing:-.02em;line-height:1.15;color:var(--f-navy)}
.rcf-card.is-small .rcf-card-t{font-size:17px}
.rcf-card-d{font-size:14.5px;line-height:1.6;color:var(--f-muted)}
.rcf-card-more{margin-top:auto;padding-top:8px;font-size:13px;font-weight:800;color:var(--f-navy);display:flex;gap:6px;align-items:center}
.rcf-card-more span{transition:transform .2s;display:inline-block}
.rcf-card:hover .rcf-card-more span{transform:translateX(4px)}

/* ---------- breadcrumb ---------- */
.rcf-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 22px;font-size:13.5px;font-weight:700;color:var(--f-muted)}
.rcf .rcf-crumbs a{color:var(--f-navy)}
.rcf .rcf-crumbs a:hover{text-decoration:underline}
.rcf-crumbs [aria-current]{color:var(--f-ink)}

/* ---------- about ---------- */
.rcf-about{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.rcf-about.no-img{grid-template-columns:minmax(0,1fr);max-width:860px}
.rcf-content{font-size:16.5px;line-height:1.75;color:var(--f-muted)}
.rcf .rcf-content p{margin:0 0 14px;color:inherit;font-size:inherit;line-height:inherit}
.rcf .rcf-content .rcf-subh{margin:22px 0 10px;font-size:18px;font-weight:900;letter-spacing:-.01em;color:var(--f-navy);line-height:1.25}
.rcf .rcf-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:9px}
.rcf .rcf-list li{position:relative;padding-left:30px;color:var(--f-ink);font-weight:600;margin:0}
.rcf .rcf-list li::before{content:"";position:absolute;left:0;top:.28em;width:20px;height:20px;border-radius:50%;
  background:var(--f-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23032465' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
.rcf .rcf-btn{appearance:none;border:0;margin:10px 0 0;cursor:pointer;display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 10px 0 24px;border-radius:999px;
  background:var(--f-navy);color:#fff;font:inherit;font-size:14.5px;font-weight:800;box-shadow:0 16px 30px -18px rgba(3,36,101,.9);transition:background .2s,color .2s,transform .2s}
.rcf .rcf-btn:hover{background:var(--f-ink);color:var(--f-gold);transform:translateY(-1px)}
.rcf .rcf-btn:focus-visible{outline:3px solid var(--f-gold);outline-offset:3px}
.rcf-btn-n{min-width:32px;height:32px;padding:0 8px;border-radius:999px;background:var(--f-gold);color:var(--f-navy);display:grid;place-items:center;font-size:13px}
.rcf .rcf-about-img{appearance:none;border:0;padding:0;margin:0;cursor:zoom-in;position:relative;display:block;width:100%;aspect-ratio:4/3;border-radius:30px;overflow:hidden;background:var(--f-paper);
  box-shadow:0 40px 80px -40px rgba(3,36,101,.6)}
.rcf-about-img::after{content:"";position:absolute;inset:auto -50px -50px auto;width:150px;height:150px;border-radius:50%;border:28px solid rgba(250,216,11,.55);pointer-events:none}
.rcf-about-img img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.rcf-about-img:hover img{transform:scale(1.04)}
.rcf .rcf-about-img:focus-visible{outline:3px solid var(--f-gold);outline-offset:4px}

/* ---------- mosaic gallery ---------- */
.rcf-gal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.rcf-count{flex:none;margin-bottom:24px;font-size:13px;font-weight:800;color:var(--f-navy);background:var(--f-paper);border-radius:999px;padding:8px 14px}
.rcf-mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:190px;grid-auto-flow:dense;gap:14px}
.rcf .rcf-tile{appearance:none;font:inherit;border:0;padding:0;margin:0;cursor:zoom-in;position:relative;display:block;border-radius:20px;overflow:hidden;background:var(--f-paper);min-height:0;box-shadow:none;transform:none}
.rcf-tile img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.rcf-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,36,101,.45));opacity:0;transition:opacity .3s}
.rcf-tile:hover img{transform:scale(1.07)}
.rcf-tile:hover::after{opacity:1}
.rcf .rcf-tile:focus-visible{outline:3px solid var(--f-gold);outline-offset:3px}
/* repeating block of 9 photos that fills 4 columns x 4 rows exactly: big, normal, tall, normal, wide, normal, tall, normal, wide */
.rcf-tile:nth-child(9n+1){grid-column:span 2;grid-row:span 2}
.rcf-tile:nth-child(9n+3),.rcf-tile:nth-child(9n+7){grid-row:span 2}
.rcf-tile:nth-child(9n+5),.rcf-tile:nth-child(9n+9){grid-column:span 2}
/* very small galleries look better simple */
.rcf-mosaic:has(> .rcf-tile:nth-child(1):last-child){grid-template-columns:1fr;grid-auto-rows:min(460px,60vw)}
.rcf-mosaic:has(> .rcf-tile:nth-child(1):last-child) .rcf-tile{grid-column:auto;grid-row:auto}
.rcf-mosaic:has(> .rcf-tile:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:320px}
.rcf-mosaic:has(> .rcf-tile:nth-child(2):last-child) .rcf-tile{grid-column:auto;grid-row:auto}
.rcf-mosaic:has(> .rcf-tile:nth-child(3):last-child){grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-auto-rows:210px}
.rcf-mosaic:has(> .rcf-tile:nth-child(3):last-child) .rcf-tile{grid-column:auto;grid-row:auto}
.rcf-mosaic:has(> .rcf-tile:nth-child(3):last-child) .rcf-tile:first-child{grid-row:span 2}
.rcf-more-wrap{text-align:center;margin-top:24px}

/* ---------- other facilities ---------- */
.rcf-others{padding-top:30px;border-top:1px solid var(--f-line)}
.rcf-chips{display:flex;flex-wrap:wrap;gap:10px}
.rcf .rcf-chip{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;background:var(--f-paper);color:var(--f-navy);font-size:14px;font-weight:800;border:1.5px solid transparent;transition:background .2s,border-color .2s}
.rcf .rcf-chip:hover{background:#fff;border-color:var(--f-line)}
.rcf .rcf-chip:focus-visible{outline:3px solid var(--f-gold);outline-offset:2px}

/* ---------- lightbox (appended to <body>) ---------- */
.rcf-lb{--f-navy:#032465;--f-gold:#FAD80B;position:fixed;inset:0;z-index:999999;background:rgba(4,12,40,.96);display:none;flex-direction:column;align-items:center;justify-content:center;
  padding:72px 84px 92px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.rcf-lb.open{display:flex;animation:rcfFade .2s ease}
@keyframes rcfFade{from{opacity:0}to{opacity:1}}
.rcf-lb img{max-width:100%;max-height:100%;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.5);user-select:none;-webkit-user-drag:none;background:#0b1a4a}
.rcf-lb-top{position:absolute;top:18px;left:24px;right:18px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.rcf-lb-title{font-size:12px;font-weight:900;letter-spacing:2.2px;text-transform:uppercase;color:var(--f-gold)}
.rcf-lb-cap{position:absolute;bottom:28px;left:84px;right:84px;margin:0;text-align:center;color:rgba(255,255,255,.85);font-size:14px;font-weight:600}
.rcf-lb-cap b{color:#fff;margin-right:10px}
.rcf-lb .rcf-lbtn{appearance:none;border:0;padding:0;margin:0;cursor:pointer;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;transition:background .2s,color .2s;box-shadow:none}
.rcf-lb .rcf-lbtn:hover{background:var(--f-gold);color:var(--f-navy)}
.rcf-lb .rcf-lbtn:focus-visible{outline:3px solid var(--f-gold);outline-offset:2px}
.rcf-lb .rcf-lbtn svg{width:22px;height:22px}
.rcf-lb .rcf-prev,.rcf-lb .rcf-next{position:absolute;top:50%;transform:translateY(-50%)}
.rcf-lb .rcf-prev{left:18px}.rcf-lb .rcf-next{right:18px}
.rcf-lb.single .rcf-prev,.rcf-lb.single .rcf-next{display:none}
html.rcf-lock{overflow:hidden}

/* Theme keeps page text in a narrow 820px column — let Facilities use the full width */
.race-classic__content:has(> .rcf),.entry-content:has(> .rcf),.page-content:has(> .rcf),.post-content:has(> .rcf),
.wp-block-post-content:has(> .rcf){max-width:none!important;width:100%}
.is-layout-constrained > .rcf{max-width:var(--wp--style--global--wide-size,1240px)!important}
/* Elementor: give the shortcode widget the full width */
.elementor-widget:has(.rcf),.elementor-shortcode:has(.rcf),.elementor-widget-container:has(.rcf){width:100%;max-width:100%;min-width:0;flex-grow:1}

@media (max-width:1024px){
  .rcf-mosaic{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:170px}
}
@media (max-width:820px){
  .rcf-about{grid-template-columns:minmax(0,1fr)}
  .rcf-about-img{order:-1}
  .rcf-block{margin-top:44px}
}
@media (max-width:640px){
  .rcf{padding:0 0 24px}
  .rcf-grid,.rcf-grid.is-small{grid-template-columns:minmax(0,1fr);gap:16px}
  .rcf .rcf-card{border-radius:20px}
  .rcf-card-body{padding:16px 18px 18px}
  .rcf .rcf-about-img{border-radius:22px}
  .rcf-content{font-size:15.5px}
  .rcf-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:130px;gap:8px}
  .rcf .rcf-tile{border-radius:14px}
  .rcf-tile:nth-child(9n+3),.rcf-tile:nth-child(9n+7){grid-row:span 2}
  .rcf-mosaic:has(> .rcf-tile:nth-child(2):last-child){grid-auto-rows:170px}
  .rcf-mosaic:has(> .rcf-tile:nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:130px}
  .rcf-mosaic:has(> .rcf-tile:nth-child(3):last-child) .rcf-tile:first-child{grid-column:span 2;grid-row:span 2}
  .rcf-gal-head{flex-direction:column;align-items:flex-start;gap:0}
  .rcf-count{margin:-10px 0 16px}
  .rcf .rcf-chip{padding:10px 14px;font-size:13.5px}
  .rcf-lb{padding:64px 10px 88px}
  .rcf-lb .rcf-prev,.rcf-lb .rcf-next{top:auto;bottom:16px;transform:none;width:48px;height:48px}
  .rcf-lb .rcf-prev{left:14px}.rcf-lb .rcf-next{right:14px}
  .rcf-lb-cap{bottom:30px;left:72px;right:72px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.rcf *,.rcf-lb{animation:none!important;transition:none!important}}

.rcf .rcf-content > :first-child{margin-top:0}
