.roteiro{padding:5rem 0;background:#f5f0e8;color:#123b5d;overflow-x:clip}.roteiro__intro{width:min(1120px,calc(100% - 2rem));margin:0 auto 2rem}.roteiro__intro h2{font-size:clamp(2rem,5vw,4rem);max-width:780px}.roteiro__intro>p:last-child{max-width:660px;line-height:1.7}.roteiro__viewport{overflow:clip;touch-action:pan-y;cursor:grab}.roteiro__track{display:flex;gap:1rem;width:max-content;padding:1rem;will-change:transform}.day-card{width:min(78vw,290px);min-height:390px;padding:0 0 1.25rem;border:0;border-radius:24px;background:#fff;text-align:left;color:#123b5d;box-shadow:0 12px 35px #123b5d1f;overflow:hidden;cursor:pointer}.day-card img{width:100%;height:220px;object-fit:cover}.day-card span,.day-card strong,.day-card small{display:block;margin-inline:1.25rem}.day-card span{margin-top:1rem;color:#e76f2e;font-weight:700;text-transform:uppercase}.day-card strong{margin-top:.35rem;font-size:1.2rem}.day-card small{margin-top:.4rem;line-height:1.45}.day-card:focus-visible,.route-book button:focus-visible{outline:3px solid #e76f2e;outline-offset:3px}.route-book{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;visibility:hidden;opacity:0;transition:opacity .2s}.route-book[data-open=true]{visibility:visible;opacity:1}.route-book__backdrop{position:absolute;inset:0;border:0;background:#08263ccc}.route-book__page{position:relative;display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;width:min(1040px,100%);max-height:92vh;background:#fffaf2;border-radius:26px;overflow:auto;box-shadow:0 30px 80px #0006}.route-book__page>img{width:100%;height:100%;min-height:620px;object-fit:cover}.route-book__copy{padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column}.route-book__copy>#book-chapter{color:#e76f2e;font-weight:700;text-transform:uppercase}.route-book__copy h3{font-size:clamp(1.8rem,4vw,3.2rem);margin:.3rem 0}.route-book__copy>#book-subtitle{color:#527086;font-weight:600}.route-book__copy>#book-narrative{line-height:1.7}.route-book__copy ul{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}.route-book__copy li{padding:.45rem .7rem;background:#e9f2f6;border-radius:999px;font-size:.8rem}.route-book__close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border:0;border-radius:50%;background:#123b5d;color:#fff;font-size:1.8rem;z-index:1}.route-book__controls{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.5rem;margin-top:auto;padding-top:1rem}.route-book__controls>button{width:44px;height:44px;border:0;border-radius:50%;background:#123b5d;color:#fff;font-size:1.2rem}.route-book__controls>button:disabled{opacity:.3}.route-book__dots{display:flex;justify-content:center;gap:clamp(.25rem,1vw,.55rem)}.route-book__dots button{width:12px;height:12px;padding:0;border:0;border-radius:50%;background:#b7c5cd}.route-book__dots button[aria-current]{background:#e76f2e}.book-open{overflow:clip}
@media(max-width:768px){.route-book{padding:.5rem}.route-book__page{display:block;max-height:96vh}.route-book__page>img{height:210px;min-height:0}.route-book__copy{padding:1.5rem 1rem}.route-book__controls{position:sticky;bottom:0;background:#fffaf2;padding-bottom:.5rem}.route-book__dots{gap:5px}.route-book__dots button{width:10px;height:10px}}
@media(prefers-reduced-motion:reduce){.route-book{transition:none}.roteiro__track{will-change:auto}}
.roteiro__viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none}
.roteiro__viewport::-webkit-scrollbar{display:none}
.day-card{scroll-snap-align:start}
.route-book{border:0;background:transparent;width:100%;height:100%;max-width:none;max-height:none;margin:0}.route-book::backdrop{background:#08263ccc}.route-book:not([open]){display:none}

/* Roteiro: uma faixa de capítulos, não uma introdução vazia. */
.roteiro{padding:clamp(2.75rem,6vw,5rem) 0 clamp(2.5rem,5vw,4.5rem);background:#0b3558;color:#fff}
.roteiro__intro{width:min(1160px,calc(100% - 2rem));margin:0 auto 1.15rem}
.roteiro__intro h2{max-width:660px;margin:.25rem 0 .75rem;font-size:clamp(2.15rem,4vw,3.65rem);line-height:1.05}
.roteiro__intro>p:last-child{max-width:520px;margin:0;color:#d8e6ed;line-height:1.55}
.roteiro__viewport{padding-left:max(1rem,calc((100vw - 1160px)/2));overflow-x:auto;overflow-y:hidden;cursor:grab;scroll-snap-type:x mandatory;scrollbar-width:none}
.roteiro__track{gap:1.2rem;padding:.85rem max(1rem,calc((100vw - 1160px)/2)) .85rem 0}
.day-card{width:min(82vw,400px);min-height:500px;padding:0 0 1.45rem;border-radius:28px;color:#123b5d;scroll-snap-align:start;scroll-snap-stop:always;box-shadow:0 22px 42px #020d1770;transition:transform .25s ease,box-shadow .25s ease}
.day-card:hover{box-shadow:0 29px 52px #020d1790}
.day-card img{height:305px}
.day-card span,.day-card strong,.day-card small{margin-inline:1.45rem}
.day-card span{margin-top:1.15rem}
.day-card strong{font-size:1.4rem;line-height:1.15}
.day-card small{line-height:1.5}
.roteiro__controls{display:grid;grid-template-columns:52px minmax(170px,1fr) 52px;align-items:center;gap:1rem;width:min(1160px,calc(100% - 2rem));margin:1rem auto 0}
.roteiro__controls>button{width:52px;height:52px;border:1px solid #7ca4bd;border-radius:50%;background:transparent;color:#fff;font-size:1.45rem;cursor:pointer;transition:background .2s ease,color .2s ease}
.roteiro__controls>button:hover{background:#fff;color:#0b3558}
.roteiro__controls>button:focus-visible,.roteiro__progress button:focus-visible{outline:3px solid #ff7a1a;outline-offset:3px}
.roteiro__control-copy{display:flex;align-items:center;gap:1rem}
.roteiro__control-copy p{margin:0;color:#d8e6ed;font-size:.88rem}
.roteiro__progress{display:flex;gap:.42rem}
.roteiro__progress button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#6e91a8;cursor:pointer}
.roteiro__progress button[aria-current="true"]{width:24px;border-radius:999px;background:#ff7a1a}
@media(max-width:768px){.roteiro{padding:3rem 0 2.5rem}.roteiro__intro{margin-bottom:.5rem}.roteiro__intro h2{font-size:clamp(2.15rem,11vw,3rem)}.roteiro__viewport{padding-left:1rem}.roteiro__track{gap:.85rem;padding-top:.65rem;padding-bottom:.65rem}.day-card{width:min(82vw,400px);min-height:450px;border-radius:24px}.day-card img{height:270px}.roteiro__controls{grid-template-columns:46px 1fr 46px;gap:.75rem;margin-top:.5rem}.roteiro__controls>button{width:46px;height:46px}.roteiro__control-copy{display:block}.roteiro__control-copy p{margin-bottom:.55rem}.roteiro__progress{gap:.35rem}}
@media(prefers-reduced-motion:reduce){.day-card,.roteiro__controls>button{transition:none}}

/* A entrada do roteiro nasce da fotografia anterior, sem uma emenda rígida. */
.roteiro{position:relative;isolation:isolate}
.roteiro::before{content:"";position:absolute;z-index:-1;right:0;bottom:100%;left:0;height:110px;background:linear-gradient(to bottom,transparent,#0b3558);pointer-events:none}
.day-card{position:relative;border:1px solid rgba(255,255,255,.64);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(242,249,252,.92));backdrop-filter:blur(10px) saturate(1.15)}
.day-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.38),transparent 33%,transparent 72%,rgba(76,174,216,.09));box-shadow:inset 0 1px 0 rgba(255,255,255,.72);pointer-events:none}
.route-book__copy strong{color:#123b5d;font-weight:800}
.route-book__copy li{background:#ff7a1a;color:#fff;font-weight:700;box-shadow:0 5px 12px #ff7a1a33}
@media(prefers-reduced-motion:reduce){.roteiro::before{display:none}}

/* Loop continuo: track movida por transform (JS), sem scroll nativo do viewport */
.roteiro__viewport{overflow:clip;scroll-snap-type:none}
.roteiro__track{will-change:transform}
.day-card[aria-hidden="true"]{cursor:pointer}
