@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");

/* Match homepage.css; scoped to transport pages so other guides retain their styles. */
.transport-rules-page {
 --ink:#171719; --paper:#fffefa; --white:#fffefa; --purple:#6656d9; --purple-dark:#4334a8;
 --poppy:#ff786b; --poppy-soft:#ffe3df; --aqua:#83e5d8; --aqua-soft:#d9f5f0;
 --butter:#f7efa0; --butter-soft:#fbf8d8; --muted:#56565e; --grey-2:#d9d8d3;
 --sans:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 font:17px/1.58 var(--sans); background:var(--paper);
}
.transport-rules-page h1,.transport-rules-page h2,.transport-rules-page h3 {
 font-family:var(--sans); font-weight:800; line-height:1.08; letter-spacing:-.03em; text-wrap:balance;
}
.transport-rules-page p { max-width:var(--measure); }
.transport-rules-page { --measure:80%; }
.transport-rules-page .site-shell { max-width:none; }
.transport-rules-page .site-header {
 width:100%; min-height:68px; padding:.7rem clamp(1rem,3vw,3rem); margin:0;
 background:rgba(255,254,250,.97); border-bottom:2px solid var(--ink);
}
.transport-rules-page .wordmark { gap:.65rem; font-size:17px; font-weight:800; }
.transport-rules-page .wordmark-mark { width:42px; height:42px; border:2px solid var(--ink); }
.transport-rules-page .wordmark strong { color:var(--purple); }
.transport-rules-page .site-nav { gap:1.15rem; }
.transport-rules-page .site-nav>a:not(.button) { font-size:.94rem; font-weight:750; color:var(--ink); }
.transport-rules-page .button {
 min-height:46px; padding:.68rem 1.05rem; border:2px solid var(--ink);
 border-radius:999px; background:var(--purple); font-weight:800; line-height:1.58;
 box-shadow:3px 3px 0 var(--ink);
}
.transport-rules-page .button-small { min-height:38px; padding:.5rem .85rem; font-size:.94rem; }
.transport-rules-page .button:hover { transform:translate(2px,2px); box-shadow:1px 1px 0 var(--ink); }
.transport-rules-page .text-link { font-weight:800; text-decoration-thickness:2px; text-underline-offset:4px; }

.transport-rules-page { --st-yes:var(--aqua); --st-no:var(--poppy); --st-unclear:var(--butter); }
.transport-rules-page .section,
.rules-hero,.breadcrumbs { width:min(calc(100% - 3rem),1120px); margin-left:auto; margin-right:auto; }
.transport-rules-page .section { padding:0; margin-top:clamp(3rem,5vw,4.75rem); margin-bottom:0; }
.transport-rules-page .section--narrow { padding-right:0; }
.transport-rules-page .answer-card>p { max-width:none; }
.transport-rules-page .kicker { margin:0 0 .55rem; color:var(--purple-dark); font-size:.78rem; font-weight:800; letter-spacing:.13em; }
.transport-rules-page h2 { max-width:var(--measure); font-size:clamp(2.05rem,3.6vw,3.25rem); line-height:1.08; }
.transport-rules-page h3 { margin-top:30px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; padding-top:24px; color:var(--muted); font-size:13px; line-height:1.6; }
.rules-hero { margin-top:28px; padding:clamp(2rem,4.5vw,4rem); background:linear-gradient(135deg,var(--paper) 0 78%,var(--aqua) 78%); border:2px solid var(--ink); border-radius:16px; box-shadow:5px 5px 0 var(--ink); }
.rules-hero h1 { max-width:920px; font-size:clamp(2.8rem,5vw,4.75rem); line-height:1.08; margin:0 0 1rem; }
.rules-hero h1 em { color:var(--purple); font-style:normal; }
.rules-hero .deck { max-width:760px; font-size:clamp(1.05rem,1.5vw,1.2rem); line-height:1.58; color:#34343a; margin:0; }
.verdict-bar { list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.verdict-bar li { display:flex; align-items:center; gap:18px; padding:20px 18px; background:var(--white); border:2px solid var(--ink); border-top:5px solid var(--st-unclear); border-radius:12px; }
.verdict-bar li[data-status="yes"] { border-top-color:var(--st-yes); }
.verdict-bar li[data-status="no"] { border-top-color:var(--st-no); }
.verdict-bar b { font-family:var(--sans); font-size:48px; line-height:1; font-weight:800; letter-spacing:-.03em; }
.verdict-bar span { font-size:13px; line-height:1.5; }
.checked,.footnote { font-size:13px; line-height:1.65; color:var(--muted); margin:22px 0 0; }
.checked a { font-weight:700; }
.status { display:inline-flex; align-items:center; gap:7px; padding:5px 12px; border:2px solid var(--ink); border-radius:100px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; }
.status[data-status="yes"] { background:var(--aqua); }
.status[data-status="no"] { background:var(--poppy); }
.status[data-status="unclear"] { background:var(--butter); }
.status::before { line-height:1; font-size:14px; }
.status[data-status="yes"]::before { content:"\2713"; }
.status[data-status="no"]::before { content:"\00d7"; }
.status[data-status="unclear"]::before { content:"?"; }
.bus-map-wrap { display:grid; grid-template-columns:minmax(0,1fr) 240px; align-items:center; gap:36px; padding:32px; background:var(--white); border:2px solid var(--ink); border-radius:16px; margin:28px 0 36px; }
.bus-map { width:100%; max-height:530px; display:block; }
.bus-map path { stroke:var(--ink); stroke-width:1; vector-effect:non-scaling-stroke; transition:opacity .15s; }
.bus-map a:hover path,.bus-map a:focus path { opacity:.65; stroke-width:2.5; }
.map-ok-large { fill:var(--st-yes); }
.map-small-only,.map-no-animals { fill:var(--st-no); }
.map-unknown { fill:var(--st-unclear); }
.bus-map-key { display:grid; gap:24px; }
.bus-map-key>span { display:flex; gap:12px; align-items:flex-start; }
.bus-map-key i { flex:none; display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--ink); border-radius:7px; font-style:normal; font-size:15px; font-weight:800; }
.key-go { background:var(--st-yes); }.key-no { background:var(--st-no); }.key-unclear { background:var(--st-unclear); }
.bus-map-key b { font-size:14px; line-height:1.5; }.bus-map-key small { display:block; color:var(--muted); font-size:12px; font-weight:400; margin-top:3px; }
.rules-table { width:calc(100% + 32px); margin-left:-16px; margin-right:-16px; min-width:0; border-collapse:collapse; font-size:14px; border-top:1.5px solid var(--ink); }
.rules-table caption { text-align:left; font-size:13px; color:var(--muted); padding:0 16px 18px; }
.rules-table th { text-align:left; padding:10px 16px; border-bottom:1px solid var(--grey-2); background:transparent; color:var(--muted); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; }
.rules-table td { padding:17px 16px; vertical-align:top; border-bottom:1px solid var(--grey-2); background:transparent; }
.rules-table th+th,.rules-table td+td { padding-left:24px; }
.rules-table th:first-child { width:36%; }
.rules-table th:nth-child(2) { width:40%; }
.rules-table th:last-child { width:24%; }
.rules-table .status { width:fit-content; padding:5px 9px; border-width:1px; border-radius:12px; font-size:11.5px; font-weight:500; line-height:1.35; text-transform:none; letter-spacing:0; }
.rules-table .status::before { content:none; }
.rules-table .status[data-status="yes"] { background:transparent; color:var(--purple); border-color:currentColor; }
.rules-table .status[data-status="no"] { background:transparent; color:var(--poppy); border-color:currentColor; }
.rules-table .status[data-status="unclear"] { background:transparent; color:#087665; border-color:var(--aqua); }
.verdict-detail { display:block; max-width:22ch; margin-top:6px; color:var(--muted); font-size:11px; line-height:1.45; }
.verdict-catch { display:block; max-width:34ch; margin-top:6px; padding-left:8px; border-left:3px solid var(--poppy); color:var(--ink); font-size:12px; line-height:1.4; }
.rules-table td:last-child { width:30%; }
.rules-table td:first-child { border-left:0; }


.rules-table tr:hover td { background:transparent; }
.region a { font-weight:600; line-height:1.4; text-decoration:none; }
.region a:hover { color:var(--purple-dark); text-decoration:underline; }
.region small { display:block; margin-top:4px; font-size:12px; color:var(--muted); }
.provider strong,.provider a { display:block; }
.provider strong { font-size:14px; font-weight:600; line-height:1.4; }
.provider a { width:fit-content; margin-top:5px; color:var(--purple-dark); font-size:11px; }
.rules-hero--plain { background:none; padding:8px 0 0; border:0; box-shadow:none; }
.rules-hero--plain h1 { max-width:1050px; }
.verdict-card { max-width:var(--measure); box-sizing:border-box; margin-top:26px; padding:clamp(20px,3vw,30px) clamp(22px,3vw,34px); border:1.5px solid var(--ink); border-radius:22px; background:var(--butter-soft); }
.verdict-card[data-status="yes"] { background:var(--aqua-soft); }
.verdict-card[data-status="no"] { background:var(--poppy-soft); }
.verdict-card .verdict { font-size:clamp(1.5rem,2.6vw,2.1rem); margin:14px 0 0; }
.verdict-consequence { margin:14px 0 0; max-width:none; font-size:16px; }
.rules-hero--plain .checked { margin-top:14px; }
.answer-card { margin-top:30px; padding:clamp(22px,3vw,36px); border:2px solid var(--ink); border-top:6px solid var(--butter); border-radius:16px; box-shadow:5px 5px 0 var(--ink); background:var(--paper); }
.answer-card[data-status="yes"] { background:var(--paper); border-top-color:var(--aqua); }
.answer-card[data-status="no"] { background:var(--poppy-soft); border-top:10px solid var(--poppy); }
.answer-label { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.answer-label>span:last-child { font-size:12px; color:var(--muted); }
.answer-card .verdict { font-size:clamp(1.65rem,3vw,2.4rem); margin:18px 0 16px; }
.answer-card>p { max-width:850px; }
.rule-facts { list-style:none; padding:0; margin:24px 0 0; border:1px solid rgba(23,23,25,.2); border-radius:12px; overflow:hidden; }
.rule-facts li { display:grid; grid-template-columns:180px minmax(0,1fr); gap:20px; padding:14px 18px; background:var(--white); font-size:14px; }
.rule-facts li+li { border-top:1px solid var(--grey-2); }
.rule-facts--context { margin-top:20px; }
.rule-lines { display:grid; grid-auto-rows:1fr; width:var(--measure); margin:26px 0 0; padding:0; border-top:1.5px solid var(--ink); }
.rule-lines>div { display:grid; grid-template-columns:200px minmax(0,1fr); gap:24px; padding:16px; border-bottom:1px solid var(--grey-2); }
.rule-lines>div:nth-child(even),.city-row:nth-child(even) { background:rgba(0,0,0,.025); }
.city-rows[data-status="yes"] { border-top-color:var(--aqua); border-top-width:4px; }
.city-rows[data-status="yes"] .city-row:nth-child(even) { background:var(--aqua-soft); }
.city-rows[data-status="no"] { border-top-color:var(--poppy); border-top-width:4px; }
.city-rows[data-status="no"] .city-row:nth-child(even) { background:var(--poppy-soft); }
.rule-lines,.city-rows { margin-left:-16px; margin-right:-16px; box-sizing:content-box; }
.rule-lines dt { margin:0; font-size:14px; font-weight:700; }
.rule-lines dd { margin:0; font-size:15px; max-width:62ch; }
.city-table { margin-top:26px; }
.city-rules h3 { display:flex; align-items:center; gap:12px; margin:40px 0 6px; font-size:20px; }
.city-rules h3 .status { min-width:34px; height:34px; padding:0 10px; justify-content:center; border-radius:17px; font-size:14px; }
.city-rules h3 .status::before { content:none; }
.city-rules .group-sub { margin:0; color:var(--muted); font-size:15px; max-width:var(--measure); }
.city-rows { display:grid; grid-auto-rows:1fr; width:var(--measure); margin:16px 0 0; border-top:1.5px solid var(--ink); }
.city-row { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:24px; padding:16px; border-bottom:1px solid var(--grey-2); }
.city-row strong { display:block; font-size:15px; line-height:1.4; }
.city-row small { display:block; margin-top:4px; font-size:12px; color:var(--muted); }
.city-row small a { color:var(--purple-dark); }
.city-row p { margin:0; font-size:14px; max-width:58ch; }
.city-row .row-note { margin-top:8px; font-style:italic; color:var(--purple-dark); }
.field-note-inner { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(24px,4vw,48px); align-items:center; max-width:var(--measure); }
.field-note figure { margin:0; }
.field-note img { display:block; width:100%; height:auto; border:1.5px solid var(--ink); border-radius:18px; }
.field-note figcaption { display:inline-block; margin-top:12px; padding:6px 12px; border:1.5px solid var(--ink); border-radius:8px; background:var(--butter); font-size:13px; font-weight:600; }
.field-note h2 { font-size:clamp(1.6rem,2.6vw,2.2rem); max-width:none; text-wrap:pretty; }
.field-note p:not(.kicker) { max-width:none; }
.city-table tbody tr:nth-child(even) { background:transparent; }
.city-table th:first-child { width:24%; }
.city-table th:nth-child(2) { width:18%; }
.city-table th:last-child { width:58%; }
.city-table td:last-child { font-size:14px; max-width:60ch; }
.city-table .region small a { color:var(--purple-dark); }
.city-rules .footnote { margin-top:14px; }
.rule-consequence { margin-top:24px; padding:16px 18px; border-left:4px solid var(--poppy); background:var(--white); }
.transport-rules-page .city-rule { padding:clamp(24px,4vw,38px); border:2px solid var(--ink); border-top:10px solid var(--aqua); background:var(--aqua-soft); }
.city-rule h2 { max-width:20ch; }
.region-steps { max-width:var(--measure); margin:28px 0 0; padding:0; list-style:none; counter-reset:region-step; }
.region-steps li { display:grid; grid-template-columns:38px minmax(0,1fr); gap:14px; align-items:start; counter-increment:region-step; }
.region-steps li+li { margin-top:18px; }
.region-steps li::before { grid-row:1 / span 2; }
.region-steps li strong { grid-column:2; display:block; font-weight:800; line-height:1.3; }
.region-steps li span { grid-column:2; display:block; margin-top:4px; color:var(--muted); }
.region-steps li::before { content:counter(region-step); display:grid; place-items:center; width:32px; height:32px; border:2px solid var(--ink); border-radius:50%; background:var(--butter); font-size:13px; font-weight:800; }
.alt-route { border-left:4px solid var(--aqua); padding:4px 0 4px 22px; }
.alt-route p { margin:0; }
.transport-rules-page .rules-next { padding:clamp(32px,5vw,56px); background:#d9ebfb; border:1.5px solid var(--ink); border-radius:24px; box-shadow:none; }
.transport-rules-page .rules-next { text-align:center; }
.rules-next .kicker { max-width:none; color:var(--purple-dark); text-align:center; }
.related-row { font-size:15px; line-height:1.7; max-width:var(--measure); }
.related-row a { color:var(--purple-dark); }
.transport-rules-page .rules-next--measure { padding:0; background:none; border:0; }
.rules-next-inner { max-width:var(--measure); box-sizing:border-box; padding:clamp(32px,5vw,56px); background:#d9ebfb; border:1.5px solid var(--ink); border-radius:24px; text-align:center; }
.rules-next ol { max-width:920px; padding:0; margin:30px auto 34px; list-style:none; counter-reset:rules-step; text-align:left; }
.bus-hub-page .rules-next ol { max-width:580px; }
.rules-next li { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:14px; counter-increment:rules-step; }
.rules-next li::before { content:counter(rules-step); display:grid; place-items:center; width:36px; height:36px; border:2px solid var(--ink); border-radius:50%; background:var(--white); color:var(--ink); font-size:14px; font-weight:800; line-height:1; }
.rules-next h2,.rules-next p { margin-left:auto; margin-right:auto; }
.rules-next>p { max-width:720px; margin-top:14px; margin-bottom:28px; }
.rules-next li+li { margin-top:18px; }
.rules-next .button { background:var(--purple); color:white; }
.rules-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px; }
.back-link { font-size:14px; margin:28px 0 0; }
.transport-rules-page .site-footer { width:100%; margin:clamp(3rem,5vw,4.75rem) 0 0; padding:1.7rem clamp(1rem,3vw,3rem); background:var(--ink); color:white; border:0; }
.transport-rules-page .site-footer .kicker,.transport-rules-page .site-footer a { color:white; }
.transport-rules-page .site-footer .fine-print { color:rgba(255,255,255,.72); }
.transport-rules-page .site-footer .footer-statement { font-family:var(--sans); font-size:clamp(1.2rem,2vw,1.6rem); font-weight:800; }
@media(max-width:1000px) {
 .transport-rules-page .site-header { gap:16px; }
 .transport-rules-page .site-nav { gap:12px; }
 .transport-rules-page .site-nav>a:not(.button) { font-size:13px; }
}
@media(max-width:860px) {
 .bus-map-wrap { grid-template-columns:1fr; gap:24px; }
 .bus-map-key { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
 .verdict-bar li { flex-direction:column; align-items:flex-start; gap:10px; }
 .transport-rules-page .section--narrow { padding-right:0; }
}
@media(max-width:680px) {
 .rule-lines>div { grid-template-columns:1fr; gap:4px; }
 .transport-rules-page { --measure:100%; }
 .city-row { grid-template-columns:1fr; gap:8px; }
 .field-note-inner { grid-template-columns:1fr; }
 .city-table th:first-child,.city-table th:nth-child(2),.city-table th:last-child { width:auto; }
 .rules-table,.rules-table tbody,.rules-table caption { display:block; width:100%; min-width:0; margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
 .rules-table td { overflow-wrap:anywhere; }
 .transport-rules-page .section { margin-top:44px; }
 .rules-hero { border-radius:16px; padding:26px 20px; box-shadow:3px 3px 0 var(--ink); }
 .rules-hero--plain { padding:0; box-shadow:none; }
 .rules-hero h1 { font-size:clamp(2rem,8.5vw,2.8rem); overflow-wrap:anywhere; }
 .verdict-bar { grid-template-columns:1fr; gap:10px; }
 .verdict-bar li { flex-direction:row; align-items:center; gap:18px; padding:14px 18px; border-top-width:1px; border-left:5px solid var(--st-unclear); }
 .verdict-bar li[data-status="yes"] { border-left-color:var(--st-yes); border-top-color:var(--ink); }
 .verdict-bar li[data-status="no"] { border-left-color:var(--st-no); border-top-color:var(--ink); }
 .verdict-bar b { min-width:48px; font-size:40px; }
 .bus-map-wrap { padding:20px 14px; }
 .bus-map-key { grid-template-columns:1fr; }
 .rules-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
 .rules-table tr { display:block; border:0; border-bottom:1px solid var(--grey-2); border-radius:0; margin:0; padding:17px 0; background:transparent; }
 
 
 .rules-table td,.rules-table td:first-child,.rules-table td+td,.rules-table td:last-child { display:block; width:auto; border:0; padding:6px 0; }
 .rules-table td:first-child { padding-top:0; }
 .rules-table td:last-child { padding-bottom:0; }
 .rules-table td[data-label]::before { content:attr(data-label); display:block; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-size:10px; margin-bottom:4px; }
 .rules-next li { grid-template-columns:38px minmax(0,1fr); gap:12px; }
 .rules-next li::before { width:32px; height:32px; }
 .rule-facts li { grid-template-columns:1fr; gap:4px; }
 .answer-card { padding:22px 18px; }
 .rules-actions { align-items:center; flex-direction:column; }
}
