/* Reference-aligned run-club details. Deliberately scoped away from discovery cards. */
.club-profile-page {
  --club-cream:#fffdf9;
  --club-border:#e5e7e2;
  --club-accent:#b74622;
  background:var(--club-cream);
}
.club-profile-page .shell { max-width:1380px; }
.club-profile-page #clubProfile { max-width:1280px; padding-bottom:32px; }
.club-profile-page .club-detail-masthead {
  position:relative; isolation:isolate; min-height:390px;
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-content:center; margin:0 -4px; padding:0 4px 28px;
}
.club-profile-page .club-breadcrumb {
  position:relative; z-index:2; grid-column:1/-1; border:0;
  padding:12px 0 6px; justify-content:flex-start; min-width:0;
}
.club-profile-page .club-breadcrumb a { text-decoration:none; font-size:14px; }
.club-profile-page .club-breadcrumb a:hover { text-decoration:underline; }
.club-profile-page .club-breadcrumb>span { display:none; }
.club-profile-page .club-profile-header.detail-title {
  position:relative; z-index:2; grid-column:1; display:block; margin:10px 0 0; padding:0 24px 0 0;
}
.club-profile-page .club-profile-header .detail-heading-main { max-width:580px; min-width:0; }
.club-profile-page .club-profile-header .eyebrow { color:#69756f; font-size:14px; letter-spacing:.15em; margin:0 0 12px; }
.club-profile-page .club-profile-header h1 {
  font:700 clamp(38px,4.15vw,59px)/1.04 var(--serif);
  letter-spacing:-.045em; margin:0 0 17px; text-wrap:balance;
}
.club-profile-page .club-profile-header .club-profile-location {
  font-size:14px; line-height:1.6; margin:0 0 10px; color:var(--ink);
}
.club-profile-page .club-profile-header .club-profile-lede {
  font-size:16px; line-height:1.6; color:var(--ink); margin:0 0 18px; max-width:48ch;
}
.club-profile-page .club-profile-header .club-checked { font-size:14px; line-height:1.65; max-width:45ch; margin:18px 0 0; }
.club-profile-page .club-mobile-action { display:none; }
.club-profile-page .club-detail-tags { display:flex; flex-wrap:wrap; gap:7px; list-style:none; padding:0; margin:0; }
.club-profile-page .club-detail-tags li { font-size:14px; line-height:1.5; padding:7px 11px; border-radius:30px; background:#eeefeb; color:var(--navy); }
.club-profile-page .club-profile-hero { position:absolute; inset:0 0 0 33%; z-index:-1; margin:0; min-width:0; }
.club-profile-page .club-profile-hero .detail-hero-image { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; border-radius:0 0 12px 0; }
.club-profile-page .club-profile-hero .detail-hero-image::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,var(--club-cream) 0%,rgba(255,253,249,.97) 13%,rgba(255,253,249,.76) 28%,rgba(255,253,249,.15) 49%,rgba(255,253,249,0) 67%);
}
.club-profile-page .club-profile-hero .race-photo { display:block; width:100%; height:100%; object-fit:cover; }
.club-profile-page .club-profile-hero .art-caption { z-index:1; left:auto; right:12px; bottom:12px; max-width:75%; font-size:10px; line-height:1.5; padding:6px 10px; border-radius:5px; }
.club-profile-page .club-profile-hero .photo-credit { position:absolute; z-index:3; top:12px; right:12px; margin:0; max-width:min(380px,85%); font-size:11px; background:#fffdf9f5; border-radius:7px; padding:0 10px; }
.club-profile-page .club-profile-hero .photo-credit summary { cursor:pointer; min-height:36px; display:flex; align-items:center; }
.club-profile-page .club-profile-hero .photo-credit p { line-height:1.6; margin:0 0 10px; }
.club-profile-page .club-detail-masthead--text { min-height:300px; grid-template-columns:minmax(0,1fr); background:linear-gradient(115deg,#fffdf9,#f4f3eb); border-radius:0 0 12px 12px; padding-right:28px; }
.club-profile-page .club-detail-masthead--text .detail-heading-main { max-width:850px; }
.club-profile-page .club-detail-masthead--text .club-profile-lede { max-width:70ch; }
.club-profile-page .club-section-nav {
  gap:28px; margin:0 0 22px; padding:0; border-top:0; border-bottom:1px solid var(--club-border);
  min-height:61px; align-items:stretch; scrollbar-width:thin;
}
.club-profile-page .club-section-nav a { font-size:14px; font-weight:500; min-height:56px; padding:16px 1px; border-bottom:3px solid transparent; }
.club-profile-page .club-section-nav a:hover { text-decoration:none; border-bottom-color:var(--club-accent); }
.club-profile-page .club-profile-layout { grid-template-columns:minmax(0,2.55fr) minmax(265px,1fr); gap:22px; }
.club-profile-page .club-profile-main { min-width:0; }
.club-profile-page .club-profile-layout h2 { font:700 29px/1.2 var(--serif); letter-spacing:-.035em; margin:0 0 16px; scroll-margin-top:115px; }
.club-profile-page .club-profile-main>section:where(:not(.detail-map-section)) { margin:0 0 28px; padding:0; border:0; }
.club-profile-page .club-profile-layout p { font-size:16px; line-height:1.7; }
.club-profile-page .club-profile-main>section.club-take {
  position:relative; display:grid; grid-template-columns:minmax(0,1fr) 154px;
  min-height:200px; gap:12px; align-items:center;
  padding:22px 16px 20px 22px; margin-bottom:15px;
  border:1px solid #f0e8d9; border-radius:11px; background:linear-gradient(120deg,#fff5e8,#fff8ef);
}
.club-profile-page .club-take-copy { position:relative; min-width:0; }
.club-profile-page .club-take h2 { display:flex; gap:11px; align-items:center; margin:0 0 10px; font-size:28px; }
.club-profile-page .club-take-mark { display:inline-flex; flex:none; align-items:center; justify-content:center; width:24px; height:24px; background:#fff; color:var(--club-accent); border:1px solid #f2cdb5; border-radius:50%; font:700 20px/1 var(--serif); }
.club-profile-page .club-take p { margin:0; font-size:16px; line-height:1.65; }
.club-profile-page .club-take p.club-take-note { margin-top:9px; color:#586873; font-size:14px; }
.club-profile-page .club-take .club-source { font-size:14px; margin-top:0; }
.club-profile-page .club-take .club-source summary { min-height:32px; padding:6px 0; }
.club-profile-page .club-take-fox { display:block; width:100%; height:170px; object-fit:contain; mix-blend-mode:multiply; }
.club-profile-page .club-detail-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:30px; }
.club-profile-page .club-highlight { min-width:0; padding:16px; border:1px solid var(--club-border); border-radius:10px; background:#fffefa; }
.club-profile-page .club-highlight h3 { display:flex; align-items:center; gap:8px; font:700 17px/1.3 var(--serif); margin:0 0 10px; }
.club-profile-page .club-highlight h3>span { flex:none; color:#315669; font:600 21px/1 var(--sans); }
.club-profile-page .club-highlight p { margin:0 0 9px; font-size:16px; line-height:1.65; }
.club-profile-page .club-highlight p.club-highlight-caveat { font-size:14px; color:var(--muted); }
.club-profile-page .club-highlight>a { display:inline-flex; align-items:center; gap:7px; font-size:14px; min-height:34px; }
.club-profile-page .club-highlight .club-source { font-size:14px; }
.club-profile-page .club-highlight .club-source summary { min-height:32px; padding:6px 0; }
.club-profile-page .club-about-section>p { margin:0 0 12px; max-width:76ch; }
.club-profile-page .club-full-details { border-bottom:1px solid var(--club-border); }
.club-profile-page .club-full-details>summary { font-size:14px; font-weight:650; min-height:44px; }
.club-profile-page .club-overview-facts { padding:12px 0 4px; gap:18px 24px; }
.club-profile-page .club-overview-facts>div { padding:0 0 14px; }
.club-profile-page .club-section-heading { display:flex; justify-content:space-between; align-items:center; gap:10px 20px; flex-wrap:wrap; margin-bottom:10px; }
.club-profile-page .club-section-heading h2 { margin:0; }
.club-profile-page .club-schedule-link { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.club-profile-page .club-schedule-caution { margin:0 0 18px; color:var(--muted); font-size:14px; }
.club-profile-page .club-session-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.club-profile-page .club-session { padding:19px; margin:0; border:1px solid var(--club-border); border-radius:10px; background:#fffefa; min-width:0; }
.club-profile-page .club-session-heading { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.club-profile-page .club-session-heading h3 { font:700 17px/1.35 var(--sans); margin:0; }
.club-profile-page .club-session-status { font-size:14px; border:0; border-radius:5px; background:#edf1eb; color:#365447; padding:4px 7px; }
.club-profile-page .club-session-held .club-session-status { background:#fff0e2; color:#9d3d1c; }
.club-profile-page .club-session p.club-session-time { font-size:16px; line-height:1.65; margin:13px 0; }
.club-profile-page .club-session p { font-size:16px; line-height:1.65; }
.club-profile-page .club-session p.notice { padding:10px 12px; border-left:2px solid var(--club-accent); background:#fff5e9; margin:12px 0; }
.club-profile-page .club-session-facts { gap:12px 16px; margin:14px 0; }
.club-profile-page .club-session-facts dt { font-size:14px; color:var(--muted); }
.club-profile-page .club-session-facts dd { font-size:16px; }
.club-profile-page .club-session details { font-size:14px; }
.club-profile-page .club-session details>summary { min-height:38px; padding:8px 0; }
.club-profile-page .club-schedule-empty { padding:20px; background:#f5f5ee; border-radius:9px; }
.club-profile-page .club-profile-aside>section { padding:18px; margin:0 0 13px; background:#fffefa; border:1px solid var(--club-border); border-radius:10px; box-shadow:none; }
.club-profile-page .club-profile-aside h2 { font:750 14px/1.5 var(--sans); letter-spacing:0; margin:0 0 12px; }
.club-profile-page .club-profile-aside h3 { font-size:14px; }
.club-profile-page .club-profile-aside p { font-size:16px; line-height:1.7; margin:0 0 12px; }
.club-profile-page .club-profile-aside .club-ctas { display:flex; flex-direction:column; align-items:stretch; gap:9px; margin:0; }
.club-profile-page .club-profile-aside .club-primary-link { display:flex; justify-content:center; align-items:center; gap:7px; width:100%; min-height:46px; background:var(--navy); border:1px solid var(--navy); color:white; border-radius:7px; text-align:center; font-size:14px; }
.club-profile-page .club-official-link { display:flex; align-items:center; gap:6px; min-height:40px; font-size:14px; line-height:1.55; text-decoration:none; }
.club-profile-page .club-official-link:hover { text-decoration:underline; }
.club-profile-page .club-profile-aside p.club-external-note { margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.65; }
.club-profile-page .club-social-links { display:flex; flex-wrap:wrap; gap:2px 14px; }
.club-profile-page .club-official-mark { padding-top:16px; margin-top:16px; border-top:1px solid var(--club-border); }
.club-profile-page .club-official-mark .official-identity { margin:0; }
.club-profile-page .club-official-mark .official-identity-link { font-size:10px; gap:8px; }
.club-profile-page .club-official-mark img { max-width:120px; width:120px; height:57px; object-fit:contain; border-radius:6px; }
.club-profile-page .club-profile-aside .club-price { font-size:16px; line-height:1.5; margin-bottom:10px; }
.club-profile-page .club-profile-aside .club-price span { font-size:14px; color:var(--muted); }
.club-profile-page .club-profile-aside details>summary { font-size:14px; line-height:1.5; min-height:40px; padding:9px 0; }
.club-profile-page .club-profile-aside .club-confirm { margin-top:4px; }
.club-profile-page .club-profile-aside .club-source-panel { background:#f1f5ee; }
.club-profile-page .club-profile-aside .club-source-date { color:var(--muted); font-size:14px; margin-bottom:4px; }
.club-profile-page .club-sources { margin-top:10px; }
.club-profile-page .club-sources li,.club-profile-page .club-unknowns li { font-size:14px; }
.club-profile-page .detail-map-section { border-top:0; padding-top:0; scroll-margin-top:115px; }
.club-profile-page .detail-map-section .map-section-heading h2 { font:700 29px/1.2 var(--serif); letter-spacing:-.035em; }
.club-profile-page .detail-map-section [data-map-panel] { border-radius:10px; }
.club-profile-page .detail-map-section .detail-map-canvas { border-radius:9px; }
@media (max-width:1050px) {
  .club-profile-page .club-profile-layout { grid-template-columns:minmax(0,2fr) minmax(250px,1fr); gap:18px; }
  .club-profile-page .club-detail-highlights { gap:9px; }
  .club-profile-page .club-highlight { padding:13px; }
  .club-profile-page .club-highlight h3 { font-size:16px; }
  .club-profile-page .club-profile-main>section.club-take { grid-template-columns:minmax(0,1fr) 116px; padding:20px; }
  .club-profile-page .club-take-fox { height:150px; }
}
@media (max-width:800px) {
  .club-profile-page .club-mobile-action { display:block; margin-top:16px; }
  .club-profile-page .club-mobile-action .club-primary-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; max-width:100%; min-height:46px; background:var(--navy); color:white; border-radius:7px; text-decoration:none; font-size:14px; }
  .club-profile-page .club-profile-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .club-profile-page .club-profile-aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
  .club-profile-page .club-profile-aside>section { margin:0; }
  .club-profile-page .club-detail-masthead { min-height:370px; }
  .club-profile-page .club-profile-header h1 { font-size:42px; }
  .club-profile-page .club-profile-header .club-profile-lede { font-size:14px; }
  .club-profile-page .club-profile-hero .art-caption { max-width:66%; }
}
@media (max-width:620px) {
  .club-profile-page .club-detail-masthead { display:flex; flex-direction:column; align-items:stretch; min-height:0; padding:0 0 0; margin:0; }
  .club-profile-page .club-breadcrumb { padding:10px 0 5px; }
  .club-profile-page .club-profile-header.detail-title { margin:8px 0 16px; padding:0; }
  .club-profile-page .club-profile-header h1 { font-size:40px; margin-bottom:14px; }
  .club-profile-page .club-profile-header .eyebrow { margin-bottom:10px; }
  .club-profile-page .club-profile-header .club-profile-lede { font-size:15px; margin-bottom:14px; }
  .club-profile-page .club-profile-header .club-checked { margin-top:13px; }
  .club-profile-page .club-profile-hero { position:relative; inset:auto; z-index:0; height:225px; width:100%; margin:0; }
  .club-profile-page .club-profile-hero .detail-hero-image { border-radius:8px; }
  .club-profile-page .club-profile-hero .detail-hero-image::after { background:linear-gradient(180deg,var(--club-cream),rgba(255,253,249,0) 38%); }
  .club-profile-page .club-profile-hero .art-caption { max-width:calc(100% - 24px); font-size:9px; }
  .club-profile-page .club-profile-hero .photo-credit { top:14px; font-size:10px; }
  .club-profile-page .club-detail-masthead--text { padding:0 14px 2px; }
  .club-profile-page .club-section-nav { gap:23px; margin-bottom:18px; min-height:55px; }
  .club-profile-page .club-section-nav a { min-height:52px; padding-block:13px; }
  .club-profile-page .club-profile-main>section.club-take { grid-template-columns:minmax(0,1fr) 82px; gap:10px; min-height:0; padding:18px 14px; }
  .club-profile-page .club-take h2 { font-size:25px; gap:8px; }
  .club-profile-page .club-take p { font-size:16px; }
  .club-profile-page .club-take p.club-take-note { font-size:14px; }
  .club-profile-page .club-take-fox { height:128px; }
  .club-profile-page .club-detail-highlights { grid-template-columns:minmax(0,1fr); gap:10px; margin-bottom:25px; }
  .club-profile-page .club-highlight { padding:15px 16px; }
  .club-profile-page .club-highlight h3 { font-size:18px; margin-bottom:7px; }
  .club-profile-page .club-highlight p { font-size:16px; }
  .club-profile-page .club-highlight p.club-highlight-caveat { font-size:14px; }
  .club-profile-page .club-session-grid,.club-profile-page .club-profile-aside { grid-template-columns:minmax(0,1fr); }
  .club-profile-page .club-session { padding:17px; }
  .club-profile-page .club-session-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .club-profile-page .club-profile-layout h2 { font-size:27px; }
  .club-profile-page .club-profile-aside h2 { font-size:14px; }
  .club-profile-page .club-profile-aside>section { padding:18px; }
  .club-profile-page .club-take h2 { font-size:25px; }
}
@media (prefers-reduced-motion:reduce) {
  .club-profile-page { scroll-behavior:auto; }
}
/* Keep provider content inside the existing horizontal gallery. */
.club-profile-page .social-gallery-section{overflow:hidden}

/* Attendance-first layout; larger text is defined in the scoped rules above. */
.club-profile-page .club-next-run { margin:20px 0 24px; padding:24px; border:1px solid var(--club-border); border-radius:10px; background:#f1f5ee; }
.club-profile-page .club-visit-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 24px; margin:20px 0; }
.club-profile-page .club-visit-facts dt { font-size:14px; color:var(--muted); margin-bottom:6px; }
.club-profile-page .club-visit-facts dd { font-size:16px; line-height:1.6; margin:0; overflow-wrap:anywhere; }
.club-profile-page .club-next-run h2 { font:700 29px/1.2 var(--serif); margin:0 0 12px; scroll-margin-top:110px; }
.club-profile-page .club-next-run p { font-size:16px; line-height:1.6; }
.club-profile-page .club-next-run .eyebrow,.club-profile-page .club-next-run .club-visit-status { font-size:14px; }
.club-profile-page .club-source-history,.club-profile-page .club-official-update { border:1px solid var(--club-border); border-radius:10px; padding:16px; margin:0 0 24px; }
.club-profile-page :is(.club-source-history,.club-official-update)>summary { min-height:44px; cursor:pointer; font-size:16px; font-weight:650; }
.club-profile-page #club-runs { scroll-margin-top:110px; }
.club-profile-page .club-mobile-action { display:none; }
@media (max-width:800px) { .club-profile-page .club-visit-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) {
 .club-profile-page .club-profile-hero { display:none; }
 .club-profile-page .club-next-run { padding:18px; margin-top:8px; }
 .club-profile-page .club-visit-facts { grid-template-columns:minmax(0,1fr); gap:16px; }
 .club-profile-page .club-take { grid-template-columns:minmax(0,1fr)!important; }
 .club-profile-page .club-take-fox { display:none; }
}

.club-profile-page [data-source-reference]>summary { cursor:pointer; min-height:44px; padding:16px; font-size:16px; line-height:1.5; background:#f1f5ee; border-radius:10px; }
.club-profile-page [data-source-reference]>section { padding:18px; border-bottom:1px solid var(--club-border); }

/* Membership is a secondary action beside official participation in the heading. */
.club-profile-page .club-profile-header .club-heading-actions { margin:0 0 10px; gap:10px; align-items:center; }
.club-profile-page .club-heading-actions :is(a,button) { min-height:44px; font-size:14px; max-width:100%; white-space:normal; }
.club-profile-page .club-profile-header .club-membership-note,
.club-profile-page .club-profile-header [data-community-status] { font-size:14px; line-height:1.55; margin:0 0 12px; }
.club-profile-page .club-profile-header [data-community-status]:empty { display:none; }
.club-profile-page .club-heading-actions button:focus-visible { outline:3px solid #b34e23; outline-offset:4px; }
@media(max-width:620px) { .club-profile-page .club-heading-actions { align-items:stretch; } .club-profile-page .club-heading-actions :is(a,button) { flex:1 1 200px; justify-content:center; } }

/* Keep the photograph clear; attribution sits in a quiet caption below it. */
.club-profile-page .club-profile-hero { display:grid; grid-template-rows:minmax(0,1fr) auto; }
.club-profile-page .club-profile-hero .detail-hero-image { position:relative; inset:auto; min-height:0; height:100%; }
.club-profile-page .club-profile-hero .club-photo-caption { position:relative; z-index:3; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:0; width:65%; margin-left:auto; padding:2px 0 0; color:var(--muted); font-size:12px; line-height:1.5; background:var(--club-cream); }
.club-profile-page .club-photo-byline { font-size:12px; }
.club-profile-page .club-photo-details { max-width:100%; }
.club-profile-page .club-photo-details summary { min-height:44px; display:flex; align-items:center; cursor:pointer; text-decoration:none; font-size:11px; }
.club-profile-page .club-photo-details[open] { flex-basis:100%; }
.club-profile-page .club-photo-details[open] summary { justify-content:flex-end; }
.club-profile-page .club-photo-description { padding:12px 16px; border:1px solid var(--club-border); border-radius:8px; background:#fff; font-size:14px; line-height:1.6; }
.club-profile-page .club-photo-description p { margin:0 0 8px; }
.club-profile-page .club-photo-description p:last-child { margin-bottom:0; }
.club-profile-page .club-photo-details :focus-visible { outline:3px solid var(--navy); outline-offset:3px; }
@media (max-width:620px) { .club-profile-page .club-profile-hero { display:none; } }

.club-profile-page .club-photo-details summary:hover { text-decoration:underline; text-underline-offset:3px; }

/* Match the race detail personal actions while keeping club language explicit. */
.club-profile-page .club-personal-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.club-profile-page .club-heading-actions .club-personal-action{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid #b8c0bf;border-radius:9px;box-shadow:none;background:var(--club-cream);color:var(--ink);font:650 13px/1.4 var(--sans);cursor:pointer}
.club-profile-page .club-personal-action svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.club-profile-page .club-personal-action[aria-pressed=true]{background:var(--ink);color:var(--club-cream)}
.club-profile-page .club-personal-action:disabled{opacity:.6;cursor:wait}
.club-profile-page .club-first-visit-link{display:inline-flex;align-items:center;min-height:44px;margin-left:12px}
@media(max-width:620px){.club-profile-page .club-personal-actions{flex:1 1 100%;width:100%}.club-profile-page .club-personal-actions .club-personal-action{flex:1 1 145px}.club-profile-page .club-first-visit-link{margin-left:0;display:flex}}
