/* Páginas internas (percursos e guias). Usa os tokens de base.css; a abertura não carrega este arquivo. */
.inner-page main{max-width:1240px;margin:0 auto}
.page-hero{padding:70px 7% 40px}
.breadcrumb{display:flex;gap:10px;font-size:11px;color:var(--muted);margin-bottom:34px}
.breadcrumb a{border-bottom:1px solid #96b7a7}
.page-hero h1{font-size:clamp(38px,4.4vw,66px);max-width:900px}
.page-lead{font-size:16px;line-height:1.8;color:var(--muted);max-width:720px;margin:0}
.route-body{display:grid;grid-template-columns:1fr 1.15fr;gap:6%;padding:20px 7% 60px;align-items:start}
.route-text-column>p{font-size:15px;max-width:560px}
.route-facts{margin-top:36px;border-top:1px solid #b9cfc1}
.route-facts h2,.route-history h2,.guide-section h2,.guide-links h2{font-size:clamp(24px,2.2vw,34px);letter-spacing:-.8px;margin:28px 0 18px}
.route-facts dl{margin:0}
.route-facts dl>div{display:grid;grid-template-columns:minmax(150px,40%) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #cddbd1;font-size:13px}
.route-facts dt{color:var(--muted)}
.route-facts dd{margin:0;font-weight:500}
.route-facts dd small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:3px}
.route-map{position:sticky;top:20px}
.route-map svg{display:block;width:100%;height:auto;background:#e3eef0;border:1px solid var(--line)}
.route-line{fill:none;stroke:var(--green);stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round}
.route-start{fill:var(--green);stroke:white;stroke-width:2.5}
.route-finish{fill:white;stroke:var(--green);stroke-width:3.5}
.route-map figcaption{display:grid;gap:6px;font-size:11px;letter-spacing:0;line-height:1.6}
.legend{display:flex;align-items:center;gap:8px;color:var(--ink)}
.legend i{width:11px;height:11px;border-radius:50%;display:inline-block}
.legend-start{background:var(--green)}
.legend-finish{background:white;border:2.5px solid var(--green)}
.route-history{padding:60px 7%;background:#edf1e9}
.history-numbers{display:flex;flex-wrap:wrap;gap:16px 48px;margin:24px 0}
.history-numbers dt{font-size:11px;color:var(--muted);order:2}
.history-numbers div{display:flex;flex-direction:column}
.history-numbers dd{margin:0;font-size:40px;font-weight:350;order:1}
.history-best{margin:0 0 24px}
.history-best div{padding:10px 0;border-top:1px solid #cddbd1;font-size:13px}
.history-best dt{color:var(--muted);font-size:11px}
.history-best dd{margin:4px 0 0}
.route-history h3{margin:30px 0 10px}
.table-scroll{overflow-x:auto;margin-bottom:24px}
.history-table,.comparison-table{width:100%;border-collapse:collapse;font-size:13px}
.history-table th,.history-table td,.comparison-table th,.comparison-table td{text-align:left;padding:11px 12px 11px 0;border-bottom:1px solid #cddbd1;vertical-align:top}
.history-table th,.comparison-table th{font-size:11px;font-weight:500;color:var(--muted)}
.history-table td small{display:block;color:var(--muted);font-size:11px}
.history-table td:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.guide-body{padding:10px 7% 30px}
.guide-section{padding:10px 7% 20px;max-width:900px}
.guide-body .guide-section{padding-left:0;padding-right:0}
.guide-section>p{font-size:15px;max-width:760px}
.guide-list{padding-left:20px;font-size:15px;line-height:1.8;max-width:760px}
.guide-list li{margin:8px 0}
.route-table{list-style:none;padding:0;margin:8px 0 24px;border-top:1px solid #b9cfc1}
.route-table a{display:grid;grid-template-columns:90px 1fr auto 24px;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid #cddbd1}
.route-table a:hover strong{color:var(--green)}
.route-km{font-size:30px;font-weight:350}
.route-km small{font-size:12px}
.route-text{display:grid;gap:2px;font-size:13px}
.route-text strong{font-weight:550;font-size:15px}
.route-text .muted{color:var(--muted);font-size:12px}
.ultra-tag{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--green);color:var(--green);padding:3px 8px}
.route-arrow{color:var(--green)}
.guide-links{padding:40px 7% 60px}
.guide-links ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.guide-links a{display:grid;gap:8px;height:100%;padding:22px;border:1px solid var(--line);background:#fbfbf7}
.guide-links a:hover{border-color:var(--green)}
.guide-links strong{font-weight:550;font-size:15px}
.guide-links span{font-size:12px;line-height:1.7;color:var(--muted)}
@media(max-width:900px){
.route-body{grid-template-columns:1fr;gap:30px}
.route-map{position:static;order:-1}
}
@media(max-width:700px){
.page-hero{padding:40px 6% 24px}
.page-hero h1{font-size:38px;letter-spacing:-1.5px}
.page-lead{font-size:14px}
.route-body,.guide-body{padding-left:6%;padding-right:6%}
.guide-section{padding-left:6%;padding-right:6%}
.route-history,.guide-links{padding-left:6%;padding-right:6%}
.route-facts dl>div{grid-template-columns:1fr;gap:4px}
.route-table a{grid-template-columns:62px 1fr 18px;gap:12px}
.route-table .ultra-tag{display:none}
.route-km{font-size:24px}
.history-numbers dd{font-size:32px}
.history-table{font-size:12px}
.history-table th,.history-table td{padding-right:8px}
.history-table td:last-child{white-space:normal}
.planning{flex-direction:column;align-items:flex-start}
}
/* Páginas de nadador (SPEC-0004, piloto). */
.swimmer-summary{padding:0 7% 10px}
.swimmer-summary .history-numbers{margin:0 0 18px}
.swimmer-highlight{display:inline-block;margin:0;padding:10px 16px;border-left:3px solid var(--mint);background:var(--sea);font-size:14px;line-height:1.6}
.swimmer-story{padding:30px 7% 20px;max-width:860px}
.swimmer-story h2,.swimmer-swims h2{font-size:clamp(24px,2.2vw,34px);letter-spacing:-.8px;margin:0 0 18px}
.swimmer-story>p:not(.note){font-size:17px;line-height:1.75;margin:0 0 16px}
.swimmer-story .note a,.swimmer-swims .note a{border-bottom:1px solid currentColor}
.swimmer-swims{padding:40px 7% 60px}
.swim-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.swim-entry{border:1px solid var(--line);background:white;padding:26px;display:flex;flex-direction:column;gap:16px;min-width:0}
.swim-entry header{display:grid;gap:6px}
.swim-entry-date{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.swim-entry h3{margin:0;font-family:var(--display);font-weight:400;font-size:26px;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}
.swim-entry h3 a{border-bottom:1px solid var(--mint)}
.swim-entry-route{margin:0;font-size:13px;color:var(--muted)}
.swim-entry-time{margin:0;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.swim-entry-time strong{font-family:var(--display);font-weight:400;font-size:44px;line-height:1;letter-spacing:-.03em;color:var(--purple);font-variant-numeric:tabular-nums}
.swim-entry-time span{font-size:12px;color:var(--muted)}
.swim-entry-facts{margin:0;border-top:1px solid var(--line)}
.swim-entry-facts>div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.55}
.swim-entry-facts dt{color:var(--muted)}
.swim-entry-facts dd{margin:0}
.swim-entry-facts a{border-bottom:1px solid var(--mint)}
.swim-map{margin:0}
.swim-map svg{display:block;width:100%;height:auto;background:var(--sea);border:1px solid var(--line)}
.swim-map figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}
.swim-entry-posts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.swim-entry-posts a{font-size:13px;color:var(--purple);border-bottom:1px solid var(--mint);display:inline-block;padding:6px 0}
.swimmer-swims>.note{margin-top:28px;max-width:820px}
.swimmer-list{padding:0 7% 70px}
.swimmer-list ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.swimmer-list a{display:grid;gap:8px;height:100%;padding:22px;border:1px solid var(--line);background:white}
.swimmer-list a:hover,.swimmer-list a:focus-visible{border-color:var(--purple)}
.swimmer-list strong{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:-.02em}
.swimmer-list span{font-size:13px;color:var(--muted)}
/* Fotos dos atletas (SPEC-0005): retrato de destaque e galeria por travessia, sem recorte. */
.swimmer-hero.has-portrait{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"hero portrait" "summary portrait";column-gap:48px;padding:0 7%}
.swimmer-hero.has-portrait .page-hero{grid-area:hero;padding-left:0;padding-right:0}
.swimmer-hero.has-portrait .swimmer-summary{grid-area:summary;padding:0 0 10px}
.swimmer-portrait{grid-area:portrait;margin:0;padding-top:64px;justify-self:end}
.swimmer-portrait img{display:block;width:auto;max-width:100%;height:auto;max-height:620px}
.swimmer-portrait figcaption,.swim-gallery .note{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 0}
.swim-gallery ul{list-style:none;margin:0;padding:0;columns:3 140px;column-gap:8px}
.swim-gallery li{break-inside:avoid;margin:0 0 8px}
.swim-gallery a{display:block;background:var(--sea)}
.swim-gallery a:hover img{opacity:.92}
.swim-gallery img{display:block;width:100%;height:auto}
.route-photos{list-style:none;margin:8px 0 28px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.route-photos figure{margin:0}
.route-photos img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--sea)}
.route-photos figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:6px}
@media(max-width:900px){.swim-entries{grid-template-columns:1fr}}
@media(max-width:700px){
.swimmer-summary,.swimmer-story,.swimmer-swims,.swimmer-list{padding-left:6%;padding-right:6%}
.swimmer-hero.has-portrait{display:block;padding:0}
.swimmer-hero.has-portrait .page-hero{padding:40px 6% 20px}
.swimmer-hero.has-portrait .swimmer-summary{padding:16px 6% 10px}
.swimmer-portrait{padding:0 6% 8px}
.swimmer-portrait img{max-height:72svh}
.swim-gallery ul{columns:2 120px;column-gap:6px}
.route-photos{grid-template-columns:1fr 1fr}
.route-photos li:nth-child(3){display:none}
.swim-gallery li{margin-bottom:6px}
.swim-entry{padding:20px}
.swim-entry h3{font-size:22px}
.swim-entry-time strong{font-size:36px}
.swim-entry-facts>div{grid-template-columns:1fr;gap:2px}
.swimmer-story>p:not(.note){font-size:16px}
}
