/* Shared editorial connections: same records across stories, riders and equipment. */
.content-related { max-width: 1200px; padding-top: 36px; padding-bottom: 32px; }
.content-related-group { margin: 24px 0 42px; border-top: 1px solid #d6e0e5; padding-top: 28px; }
.content-related-group h2 { color: #183847; font-size: clamp(24px,2.6vw,32px); margin-bottom: 22px; }
.content-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 24px; }
.content-card { min-width: 0; border: 1px solid #dce4e8; background: #fff; max-width: 540px; }
.content-card > a { display: flex; flex-direction: column; height: 100%; }
.content-card-image { aspect-ratio: 16/10; overflow: hidden; background: #f2f6f8; }
.content-card-image img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--content-image-zoom,1)); }
.content-image-titled { position: relative; container-type: inline-size; isolation: isolate; }
.content-image-titled::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(8,29,43,.46),rgba(8,29,43,0) 58%); pointer-events: none; }
.content-image-title { position: absolute; z-index: 1; top: 9%; left: 7%; right: 7%; color: #fff; font-family: var(--font-head); font-size: clamp(30px,11cqi,58px); font-weight: 900; line-height: 1.15; letter-spacing: -.045em; text-shadow: 0 2px 10px rgba(0,20,36,.35); }
.content-card-product .content-card-image img { object-fit: contain; padding: 20px; }
.content-card-rider .content-card-image { aspect-ratio: 4/3; }
.content-card-video .content-card-image { aspect-ratio: 16/9; }
.content-card-video .content-card-image img { object-fit: contain; }
.content-card-copy { padding: 24px; display: flex; flex: 1; flex-direction: column; align-items: start; }
.content-kicker { font-size: .875rem; letter-spacing: .1em; font-weight: 700; color: var(--red-deep); }
.content-card h3 { color: #183847; font-size: 21px; line-height: 1.55; margin: 12px 0; word-break: keep-all; overflow-wrap: anywhere; }
.content-card p { font-size: 16px; }
.content-card p.content-kicker { font-size: .875rem; }
.content-card-more { margin-top: auto; padding-top: 22px; color: #15556e; font-weight: 700; font-size: .875rem; }
.content-card a:hover h3 { color: var(--red-deep); }
.content-note { color: #526d7a; font-size: .875rem; line-height: 1.85; margin: 0 0 24px; max-width: 850px; }
.content-next { max-width: 1200px; padding-top: 20px; padding-bottom: 44px; }
.content-next a { display: inline-flex; min-height: 44px; align-items: center; }
.content-switch { display: flex; flex-wrap: wrap; gap: 10px 26px; border-top: 1px solid #d6e0e5; margin-bottom: 24px; }
.content-switch a { font-size: 16px; min-height: 50px; display: inline-flex; align-items: center; color: #446373; }
.content-switch a[aria-current] { color: var(--red-deep); font-weight: 700; box-shadow: inset 0 -3px var(--red-deep); }
.community-invitation { margin-top: 40px; border-left: 4px solid #15556e; padding: 28px; background: #edf5f8; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.community-invitation h2,.community-invitation h3 { color: #183847; font-size: 24px; margin: 6px 0 10px; }
.community-invitation a { flex-shrink: 0; display: inline-flex; align-items: center; min-height: 44px; color: #15556e; font-weight: 700; }
.community-post-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.community-post-photo { width: 100%; aspect-ratio: 8/5; overflow: hidden; background: #ecf2f5; }
.community-story-photo { max-width: 560px; aspect-ratio: 4/5; margin: 32px auto; overflow: hidden; }
.community-post-photo img,.community-story-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--content-image-zoom,1)); }
.content-image-full { position: relative; }
.content-image-full img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; transform: none; }
.community-story-photo.content-image-full { max-width: 840px; aspect-ratio: auto; }
.community-story-photo.content-image-full img { position: static; height: auto; }
.experience-page { padding-bottom: 48px; }
.experience-wrap { max-width: 1200px; }
.experience-heading { padding: 52px 0 32px; max-width: 920px; }
.experience-heading h1 { font-family: var(--font-head); color: #173343; font-size: clamp(32px,4vw,54px); line-height: 1.4; margin: 14px 0 24px; word-break: keep-all; overflow-wrap: anywhere; }
.experience-heading > p:not(.content-kicker) { font-size: 18px; line-height: 1.85; max-width: 800px; }
.experience-crumb { display: flex; flex-wrap: wrap; gap: 10px 18px; padding-top: 20px; font-size: .875rem; }
.experience-crumb a { min-height: 44px; display: inline-flex; align-items: center; }
.experience-player { width: 100%; aspect-ratio: 16/9; background: #14263c; }
.experience-player iframe { width: 100%; height: 100%; display: block; border: 0; }
.experience-player--short { max-width:420px; aspect-ratio:9/16; margin-inline:auto; }
.experience-source { display: flex; gap: 18px; justify-content: space-between; flex-wrap: wrap; padding: 18px 0 28px; }
.experience-source a { color: #15556e; font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; }
.experience-guide { max-width: 850px; padding: 32px 0; }
.experience-guide h2 { font-size: 26px; color: #173343; margin: 0 0 20px; }
.experience-guide p { font-size: 18px; line-height: 1.9; margin-bottom: 20px; }
.experience-guide ul { padding-left: 24px; font-size: 17px; line-height: 1.9; }
.experience-guide li { margin: 12px 0; }
.experience-actions { display: flex; flex-wrap: wrap; gap: 16px; margin: 26px 0; }
.experience-actions a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 18px; border: 1px solid #b8cbd4; font-weight: 700; color: #15556e; }
.place-feature { --place-deep:#0d3343; --place-sea:#087d98; --place-sand:#d77b36; color:#173343; }
.place-feature section { margin-top:72px; }
.place-section-heading { max-width:850px; }
.place-section-heading h2,.place-stay h2 { margin:8px 0 22px; max-width:820px; font-size:clamp(28px,3.6vw,48px); line-height:1.25; letter-spacing:-.025em; }
.place-section-heading > p:not(.content-kicker),.place-stay > p:not(.content-kicker) { max-width:800px; margin:0 0 18px; font-size:18px; line-height:1.9; }
.place-location-visual,.place-activity-visual { overflow:hidden; margin-top:30px; background:#dfecef; }
.place-location-visual img,.place-activity-visual img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(var(--content-image-zoom,1)); }
.place-visual-caption { margin:10px 0 0; color:#617884; font-size:14px; line-height:1.6; }
.place-fact-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:28px; border-block:1px solid #c8d9df; }
.place-fact-strip > div { padding:24px 26px; border-right:1px solid #c8d9df; }
.place-fact-strip > div:last-child { border-right:0; }
.place-fact-strip strong,.place-fact-strip span { display:block; }
.place-fact-strip strong { margin-bottom:7px; color:var(--place-deep); font-family:var(--font-head); font-size:20px; }
.place-fact-strip span { color:#526d7a; line-height:1.65; }
.place-why { padding:54px; background:#edf6f7; }
.place-reason-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:34px; }
.place-reason-grid article { padding:25px; background:#fff; border-top:4px solid var(--place-sea); }
.place-reason-grid article > span { display:block; margin-bottom:24px; color:var(--place-sand); font-family:var(--font-head); font-size:14px; font-weight:800; letter-spacing:.12em; }
.place-reason-grid h3 { margin:0 0 10px; font-size:21px; }
.place-reason-grid p { margin:0; color:#4e6773; line-height:1.75; }
.place-feature-quote { margin:34px 0 0; padding-left:24px; border-left:4px solid var(--place-sand); color:var(--place-deep); font-size:clamp(20px,2.4vw,28px); font-weight:800; line-height:1.55; }
.place-activity-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; margin-top:30px; }
.place-activity-grid article { grid-column:span 2; padding:24px; border:1px solid #d3e0e5; background:#fff; }
.place-activity-grid article:nth-child(4) { grid-column:2 / span 2; }
.place-activity-grid h3 { margin:7px 0 12px; font-size:21px; }
.place-activity-grid article > p:last-child { margin:0; color:#526d7a; line-height:1.75; }
.place-stay { padding:46px 50px; color:#fff; background:var(--place-deep); }
.place-stay h2,.place-stay .content-kicker { color:#fff; }
.place-stay > p:not(.content-kicker) { color:#e4eef1; }
.place-source-note { margin-top:26px; }
.place-source-note a { color:#15556e; font-weight:700; }
.camp-status { display: inline-block; font-size: .875rem; padding: 8px 14px; background: #edf5f8; color: #15556e; margin: 12px 0 24px; font-weight: 700; }
.camp-facts { display: grid; grid-template-columns: 130px 1fr; gap: 14px 20px; padding: 26px 0; border-block: 1px solid #d7e1e6; }
.camp-facts dt { color: #526d7a; }
.camp-facts dd { margin: 0; color: #183847; font-weight: 700; }
.tour-card-links { margin-top: auto; display: flex; gap: 12px; flex-wrap: wrap; }
.tour-card-links a { min-height: 44px; }
.place-programs { margin-top: 64px; padding-top: 32px; border-top: 2px solid #14778e; }
.place-programs > h2 { font-size: clamp(26px, 3vw, 40px); line-height: 1.3; margin: 12px 0 20px; }
.place-programs > p { max-width: 780px; line-height: 1.8; }
.place-program-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 28px 0; }
.place-program { background: white; border: 1px solid #d7e1e6; display: flex; flex-direction: column; min-width: 0; }
.place-program > .content-card-image { aspect-ratio: 1; background: #edf3f6; }
.place-program > div:last-child { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.place-program h3 { font-size: 21px; margin: 4px 0 12px; }
.place-program p { line-height: 1.8; }
.place-program a { margin-top: auto; padding-top: 18px; min-height: 44px; color: #14778e; font-weight: 700; }
@media(max-width:1000px) { .place-program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:900px) { .place-reason-grid { grid-template-columns:1fr; } .place-activity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .place-activity-grid article,.place-activity-grid article:nth-child(4) { grid-column:auto; } }
@media(max-width:600px) { .place-program-grid { grid-template-columns: 1fr; } .place-programs { margin-top: 40px; } .place-feature section { margin-top:48px; } .place-why,.place-stay { padding:30px 22px; } .place-fact-strip,.place-activity-grid { grid-template-columns:1fr; } .place-fact-strip > div { border-right:0; border-bottom:1px solid #c8d9df; padding:20px 0; } .place-fact-strip > div:last-child { border-bottom:0; } .place-section-heading > p:not(.content-kicker),.place-stay > p:not(.content-kicker) { font-size:16px; } }
@media(max-width:600px) {
  .community-invitation { flex-direction: column; align-items: start; gap: 16px; padding: 22px; }
  .camp-facts { grid-template-columns: 100px 1fr; gap: 12px; }
  .content-card { max-width: none; }
}

/* Venue detail blocks, currently used by the Seoul Water Sports Center guide. */
.venue-detail { margin-top: 52px; padding: 36px; border: 1px solid #cbdde3; background: #f7fbfc; color: #173343; }
.venue-detail h2 { margin: 8px 0 24px; color: #173343; font-size: clamp(28px, 3.6vw, 46px); }
.venue-detail h3 { margin: 0 0 14px; color: #173343; font-size: 21px; }
.venue-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 34px; border-block: 1px solid #cbdde3; }
.venue-facts > div { min-width: 0; padding: 18px 20px; border-right: 1px solid #cbdde3; }
.venue-facts > div:nth-child(3n) { border-right: 0; }
.venue-facts dt { margin-bottom: 6px; color: #617884; font-size: .875rem; }
.venue-facts dd { margin: 0; line-height: 1.65; font-weight: 700; overflow-wrap: anywhere; }
.venue-facts a { color: #15556e; }
.venue-overview,.venue-fees { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 28px; }
.venue-activities,.venue-operations,.venue-parking,.venue-safety { margin-top: 28px; padding: 24px; background: #fff; border: 1px solid #d7e4e8; }
.venue-activities h3,.venue-operations h3,.venue-parking h3,.venue-safety h3 { margin: 0 0 14px; }
.venue-activities ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.venue-activities li { padding: 8px 12px; border-radius: 999px; background: #edf6f7; color: #15556e; font-weight: 700; }
.venue-operations p,.venue-parking p,.venue-safety p { margin: 0 0 10px; line-height: 1.8; }
.venue-operations p:last-child,.venue-parking p:last-child,.venue-safety p:last-child { margin-bottom: 0; }
.venue-overview > div,.venue-fees > div { min-width: 0; padding: 24px; background: #fff; border: 1px solid #d7e4e8; }
.venue-overview p { line-height: 1.8; }
.venue-overview ul { margin: 0; padding-left: 20px; line-height: 1.85; }
.venue-fees table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.venue-fees th,.venue-fees td { padding: 11px 8px; border-bottom: 1px solid #dce7ea; text-align: left; vertical-align: top; }
.venue-fees th { color: #526d7a; font-weight: 700; }
.venue-fees td { overflow-wrap: anywhere; }
.venue-sources { margin-top: 20px; padding-top: 20px; border-top: 1px solid #cbdde3; }
.venue-sources h3 { font-size: 18px; }
.venue-sources ul { margin: 0; padding-left: 20px; line-height: 1.8; }
.venue-sources a { color: #15556e; font-weight: 700; }
.venue-sources span,.venue-sources p { color: #617884; font-size: .875rem; }
@media(max-width:700px) {
  .venue-detail { margin-top: 36px; padding: 24px 18px; }
  .venue-facts,.venue-overview,.venue-fees { grid-template-columns: 1fr; }
  .venue-facts > div,.venue-facts > div:nth-child(3n) { border-right: 0; border-bottom: 1px solid #cbdde3; }
  .venue-facts > div:last-child { border-bottom: 0; }
  .venue-overview > div,.venue-fees > div,.venue-activities,.venue-operations,.venue-parking,.venue-safety { padding: 20px 16px; }
  .venue-fees table { font-size: .875rem; }
}
