/*
 * Страница «Расписание» (/module_tours_front) — новый шаблон расписания.
 *
 * Правила карточек выезда и тулбара перенесены из макета (включая его правки
 * поверх базовых стилей — блоки идут в том же порядке, что в шаблоне).
 * Токены макета переименованы в --sf-*, чтобы не перебивать переменные темы.
 *
 * Фильтр в шапке — тот же, что на главной: секция получает класс
 * .homepage-hero, а body — .homepage-redesign, поэтому вся вёрстка и
 * поведение .hero-filter берутся из css/homepage-redesign.css без копирования.
 */

/* --- tpl block 0 --- */
body.schedule-front .schedule-page{--sf-pine:#086b3f;--sf-pine-dark:#063522;--sf-forest:#0c4932;--sf-leaf:#bfe66c;--sf-lime:#e7f99c;--sf-orange:#e34420;--sf-cream:#f6f3eb;--sf-paper:#fffdf8;--sf-mist:#f3f7f3;--sf-ink:#15241b;--sf-muted:#68756c;--sf-line:#dce4dd;--sf-white:#fff;--sf-radius:24px;--sf-control:15px;--sf-shadow:0 22px 60px #0a321f21;--sf-shadow-soft:0 12px 34px #0a321f17;--sf-shell:min(1380px, calc(100vw - 64px))}
body.schedule-front .section-shell{width:var(--sf-shell);margin:0 auto}
body.schedule-front .schedule-page{background:var(--sf-cream)}
body.schedule-front .schedule-hero{background:radial-gradient(circle at 82% 4%, #bfe66c33, transparent 26%), radial-gradient(circle at 8% 90%, #5692684d, transparent 28%), var(--sf-pine-dark);color:var(--sf-white);padding:132px 0 34px;position:relative;overflow:hidden}
body.schedule-front .schedule-hero-shell{z-index:3;position:relative}
body.schedule-front .schedule-map-lines{opacity:.12;background-image:repeating-radial-gradient(at 62% 48%,#0000 0 53px,#ffffff85 54px 55px,#0000 56px 82px),linear-gradient(115deg,#0000 49.8%,#ffffff6b 50%,#0000 50.2%);position:absolute;inset:-40%;transform:rotate(-7deg)}
body.schedule-front .schedule-hero-orbit{z-index:1;pointer-events:none;border:1px solid #bfe66c38;border-radius:50%;position:absolute}
body.schedule-front .schedule-orbit-one{width:760px;height:760px;top:-310px;right:-130px}
body.schedule-front .schedule-orbit-two{width:1040px;height:760px;bottom:-520px;right:140px}
body.schedule-front .schedule-hero-heading{grid-template-columns:minmax(0,1.5fr) minmax(350px,.5fr);align-items:end;gap:72px;display:grid}
body.schedule-front .schedule-hero .hero-kicker{margin-bottom:16px}
body.schedule-front .schedule-hero h1{letter-spacing:-.065em;margin:0;font-size:clamp(58px,5.2vw,82px);font-weight:900;line-height:.93}
body.schedule-front .schedule-results{background:radial-gradient(circle at 100% 18%, #bfe66c1f, transparent 25%), var(--sf-cream);padding:12px 0 72px;position:relative}
body.schedule-front .schedule-toolbar{z-index:30;-webkit-backdrop-filter:blur(18px)saturate(1.15);backdrop-filter:blur(18px)saturate(1.15);background:#f6f3ebe6;border:1px solid #dce4dde0;border-radius:18px;justify-content:space-between;align-items:center;gap:18px;margin:0 -12px 18px;padding:11px 12px;display:flex;position:sticky;top:10px;box-shadow:0 10px 30px #0a321f0f}
body.schedule-front .schedule-quick-filters{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}
body.schedule-front .schedule-quick-filters::-webkit-scrollbar{display:none}
body.schedule-front .schedule-quick-filters button{color:#31533f;white-space:nowrap;background:#ffffffeb;border:1px solid #d3ded6;border-radius:999px;flex:none;min-height:40px;padding:0 15px;font-size:10px;font-weight:800;transition:background .25s,border .25s,color .25s}
body.schedule-front .schedule-quick-filters button:hover,body.schedule-front .schedule-quick-filters button.active{border-color:var(--sf-pine);background:var(--sf-pine);color:var(--sf-white)}
body.schedule-front .schedule-quick-filters .status-preset{border-width:2px}
body.schedule-front .schedule-quick-filters .status-preset-all,body.schedule-front .schedule-quick-filters .status-preset-guaranteed,body.schedule-front .schedule-quick-filters .status-preset-available{color:#17663d;border-color:#68a67d}
body.schedule-front .schedule-quick-filters .status-preset-all:hover,body.schedule-front .schedule-quick-filters .status-preset-guaranteed:hover,body.schedule-front .schedule-quick-filters .status-preset-available:hover{border-color:var(--sf-pine);color:#17663d;background:#edf7f0}
body.schedule-front .schedule-quick-filters .status-preset-all.active,body.schedule-front .schedule-quick-filters .status-preset-guaranteed.active,body.schedule-front .schedule-quick-filters .status-preset-available.active{border-color:var(--sf-pine);background:var(--sf-pine);color:var(--sf-white)}
body.schedule-front .schedule-quick-filters .status-preset-few{color:#b83f25;border-color:#df725a}
body.schedule-front .schedule-quick-filters .status-preset-few:hover{border-color:var(--sf-orange);color:#b83f25;background:#fff0eb}
body.schedule-front .schedule-quick-filters .status-preset-few.active{border-color:var(--sf-orange);background:var(--sf-orange);color:var(--sf-white)}
body.schedule-front .schedule-quick-filters .status-preset-request{color:#8b6208;border-color:#d7a32d}
body.schedule-front .schedule-quick-filters .status-preset-request:hover{color:#8b6208;background:#fff6d9;border-color:#bd8613}
body.schedule-front .schedule-quick-filters .status-preset-request.active{color:#3e310d;background:#e2b33f;border-color:#d5a022}
body.schedule-front .schedule-quick-filters .status-preset-soldout{color:#626d65;border-color:#9fa8a1}
body.schedule-front .schedule-quick-filters .status-preset-soldout:hover{color:#626d65;background:#f0f2f0;border-color:#7c8780}
body.schedule-front .schedule-quick-filters .status-preset-soldout.active{color:var(--sf-white);background:#7c8780;border-color:#7c8780}
body.schedule-front .schedule-quick-filters .status-preset:not(.active),body.schedule-front .schedule-quick-filters .status-preset:not(.active):hover{color:var(--sf-ink)}
body.schedule-front .departure-list{flex-direction:column;gap:9px;display:flex}
body.schedule-front .departure-row{background:#fffffff5;border:1px solid #086b3f1a;border-radius:19px;transition:border .25s,box-shadow .25s,transform .25s;position:relative;overflow:hidden;box-shadow:0 7px 22px #0a321f0e}
body.schedule-front .departure-row:before{content:"";background:var(--sf-pine);width:4px;position:absolute;inset:0 auto 0 0}
body.schedule-front .departure-few:before{background:var(--sf-orange)}
body.schedule-front .departure-request:before{background:#d19a31}
body.schedule-front .departure-soldout:before{background:#a8b0aa}
body.schedule-front .departure-row:hover{border-color:#086b3f40;transform:translateY(-2px);box-shadow:0 14px 34px #0a321f17}
body.schedule-front .departure-row.expanded{border-color:#086b3f4d;box-shadow:0 16px 38px #0a321f1a}
body.schedule-front .departure-main-grid{grid-template-columns:122px minmax(345px,1.45fr) minmax(215px,.74fr) 140px 158px;align-items:center;gap:16px;min-height:192px;padding:18px 17px 18px 20px;display:grid}
body.schedule-front .departure-date{border-right:1px solid var(--sf-line);flex-direction:column;justify-content:center;align-self:stretch;padding-right:16px;display:flex}
body.schedule-front .departure-day,body.schedule-front .departure-month,body.schedule-front .departure-weekday,body.schedule-front .departure-duration{display:block}
body.schedule-front .departure-day{color:var(--sf-pine-dark);letter-spacing:-.055em;font-size:33px;font-weight:900;line-height:1}
body.schedule-front .departure-month{color:var(--sf-pine);margin-top:4px;font-size:14px;font-weight:800}
body.schedule-front .departure-weekday{color:var(--sf-muted);margin-top:2px;font-size:13px}
body.schedule-front .departure-duration{color:#43614e;background:#edf4ee;border-radius:7px;width:max-content;margin-top:12px;padding:6px 9px;font-size:12px;font-weight:800}
body.schedule-front .departure-about{min-width:0}
body.schedule-front .departure-about h4{max-width:620px;color:var(--sf-ink);letter-spacing:-.035em;margin:0;font-size:24px;font-weight:850;line-height:1.12}
body.schedule-front .departure-logistics{flex-wrap:wrap;gap:7px 16px;margin-top:12px;display:flex}
body.schedule-front .departure-logistics>span{color:#69756d;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}
body.schedule-front .departure-logistics i{width:18px;height:18px;color:var(--sf-pine);background:#edf4ee;border-radius:50%;place-items:center;font-size:10px;font-style:normal;display:grid}
body.schedule-front .departure-logistics b{color:#33483b}
body.schedule-front .departure-status{min-width:0;padding-left:2px}
body.schedule-front .departure-status-tags{flex-direction:column;align-items:flex-start;gap:5px;display:flex}
body.schedule-front .status-tag{min-height:30px;color:var(--sf-pine);white-space:nowrap;background:#edf4ee;border-radius:7px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:850;line-height:1;display:inline-flex}
body.schedule-front .status-tag i{background:var(--sf-pine);width:16px;height:16px;color:var(--sf-white);border-radius:50%;place-items:center;font-size:9px;font-style:normal;display:grid}
body.schedule-front .status-few{color:#c94324;background:#fff0e9}
body.schedule-front .status-request{color:#9b6b0f;background:#fff5dd}
body.schedule-front .status-soldout{color:#707a73;background:#eef0ee}
body.schedule-front .departure-status>strong{color:#3c4d42;margin-top:9px;font-size:13px;line-height:1.4;display:block}
body.schedule-front .occupancy-track{background:#e2e8e3;border-radius:999px;height:4px;margin-top:8px;overflow:hidden}
body.schedule-front .occupancy-track span{border-radius:inherit;background:var(--sf-pine);height:100%;display:block}
body.schedule-front .departure-few .occupancy-track span{background:var(--sf-orange)}
body.schedule-front .departure-request .occupancy-track span{background:#d19a31}
body.schedule-front .departure-soldout .occupancy-track span{background:#9ca69f}
body.schedule-front .departure-price{flex-direction:column;align-items:flex-start;display:flex}
body.schedule-front .departure-price small{color:var(--sf-muted);font-size:12px}
body.schedule-front .departure-price del{color:#a1aaa4;margin-top:4px;font-size:13px}
body.schedule-front .departure-price strong{color:var(--sf-pine-dark);letter-spacing:-.04em;white-space:nowrap;margin-top:3px;font-size:26px;font-weight:900}
body.schedule-front .departure-price span{color:var(--sf-pine);margin-top:5px;font-size:11px;font-weight:750}
body.schedule-front .departure-primary{background:var(--sf-orange);min-height:48px;color:var(--sf-white);white-space:nowrap;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:850;display:flex;box-shadow:0 9px 20px #e3442030}
body.schedule-front .departure-soldout .departure-primary{box-shadow:none;background:#657269}
body.schedule-front .schedule-load-more{width:100%;min-height:56px;color:var(--sf-pine);background:#ffffffad;border:1px solid #cbd9cf;border-radius:16px;justify-content:center;align-items:center;gap:11px;margin-top:20px;font-size:12px;font-weight:850;display:flex}
body.schedule-front .schedule-load-more:hover{border-color:var(--sf-pine);background:var(--sf-white)}
body.schedule-front .schedule-empty{text-align:center;background:#ffffffa3;border:1px dashed #b9cabe;border-radius:20px;padding:62px 24px}
body.schedule-front .schedule-empty strong{font-size:20px}
body.schedule-front .schedule-empty p{color:var(--sf-muted);margin:8px 0 18px;font-size:11px}
body.schedule-front .schedule-empty button{background:var(--sf-pine);min-height:42px;color:var(--sf-white);border:0;border-radius:11px;padding:0 18px;font-size:10px;font-weight:800}
@media (width<=1180px){
body.schedule-front .schedule-hero-heading{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:42px}
body.schedule-front .departure-main-grid{grid-template-columns:102px minmax(280px,1.35fr) minmax(180px,.72fr) 120px 140px;gap:13px;padding-inline:17px}
body.schedule-front .departure-about h4{font-size:22px}
body.schedule-front .departure-logistics>span:nth-child(2){display:none}
}
@media (width<=900px){
body.schedule-front .schedule-hero{padding:112px 0 28px}
body.schedule-front .schedule-hero-heading{grid-template-columns:1fr}
body.schedule-front .schedule-hero-heading{gap:26px}
body.schedule-front .schedule-hero h1{font-size:clamp(50px,9vw,70px)}
body.schedule-front .schedule-toolbar{top:10px}
body.schedule-front .departure-main-grid{grid-template-columns:98px minmax(0,1fr) 160px;align-items:start;gap:14px 18px;min-height:0;padding:18px 18px 17px 20px}
body.schedule-front .departure-date{grid-area:1/1/4}
body.schedule-front .departure-about{grid-area:1/2}
body.schedule-front .departure-status{grid-area:1/3}
body.schedule-front .departure-price{flex-flow:wrap;grid-area:2/2;align-items:baseline;gap:4px 8px}
body.schedule-front .departure-price small,body.schedule-front .departure-price span{flex-basis:100%}
}
@media (width<=640px){
body.schedule-front .schedule-hero{padding:98px 0 18px}
body.schedule-front .schedule-hero h1{font-size:45px}
body.schedule-front .schedule-results{padding:14px 0 56px}
body.schedule-front .schedule-toolbar{flex-direction:row;align-items:center;margin-inline:-4px;padding:9px;position:sticky;top:8px}
body.schedule-front .departure-main-grid{grid-template-columns:1fr;gap:15px;padding:17px}
body.schedule-front .departure-date,body.schedule-front .departure-about,body.schedule-front .departure-status,body.schedule-front .departure-price{grid-area:auto/1}
body.schedule-front .departure-date{border-right:0;border-bottom:1px solid var(--sf-line);flex-direction:row;justify-content:flex-start;align-items:baseline;gap:6px;padding:0 0 12px}
body.schedule-front .departure-day{font-size:30px}
body.schedule-front .departure-month,body.schedule-front .departure-weekday,body.schedule-front .departure-duration{margin-top:0}
body.schedule-front .departure-duration{margin-left:auto}
body.schedule-front .departure-about h4{font-size:24px}
body.schedule-front .departure-logistics{flex-direction:column;align-items:flex-start}
body.schedule-front .departure-logistics>span:nth-child(2){display:flex}
body.schedule-front .departure-status{background:#f1f5f2;border-radius:12px;padding:13px}
body.schedule-front .departure-status-tags{flex-flow:wrap}
body.schedule-front .departure-price{grid-template-columns:1fr auto;align-items:end;display:grid}
body.schedule-front .departure-price small,body.schedule-front .departure-price span{grid-column:1}
body.schedule-front .departure-price del,body.schedule-front .departure-price strong{text-align:right;grid-column:2}
body.schedule-front .departure-price del{grid-row:1}
body.schedule-front .departure-price strong{grid-row:2/4}
body.schedule-front .departure-primary{grid-column:1/-1}
}

/* --- tpl block 2 --- */
body.schedule-front .schedule-hero-heading{grid-template-columns:1fr;gap:0}
body.schedule-front .schedule-hero h1{font-size:clamp(34px,5.2vw,66px);font-weight:700;line-height:1.06}
body.schedule-front .schedule-quick-filters button,body.schedule-front .departure-weekday,body.schedule-front .departure-duration,body.schedule-front .departure-month,body.schedule-front .departure-logistics>span,body.schedule-front .status-tag,body.schedule-front .departure-price small,body.schedule-front .departure-footer>a,body.schedule-front .departure-contacts,body.schedule-front .schedule-load-more{font-size:14px}
body.schedule-front .departure-row{border-radius:22px}
body.schedule-front .departure-main-grid{grid-template-columns:100px minmax(0,1fr) minmax(170px,.5fr) 285px;gap:18px;min-height:168px;align-items:center;padding:20px}
body.schedule-front .departure-about h4{font-size:22px;font-weight:600;line-height:1.2}
body.schedule-front .departure-logistics{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:12px}
body.schedule-front .departure-logistics>span,body.schedule-front .departure-logistics>span:nth-child(2){display:grid;grid-template-columns:20px 44px minmax(0,1fr);gap:6px;align-items:start;white-space:normal;line-height:1.5}
body.schedule-front .departure-logistics i{background:none;width:20px;height:21px;border-radius:0;display:grid;place-items:center}
body.schedule-front .departure-logistics b{white-space:nowrap;font-weight:600}
body.schedule-front .departure-logistics .departure-return{color:var(--sf-muted)}
body.schedule-front .departure-status{padding-left:0}
body.schedule-front .departure-status-tags{gap:6px}
body.schedule-front .status-tag{white-space:normal;line-height:1.35;padding:6px 8px;min-height:30px;font-weight:500;border-radius:8px}
body.schedule-front .status-tag i{flex:none}
body.schedule-front .status-request{color:#805900;background:#fff3ce}
body.schedule-front .departure-soldout:before,body.schedule-front .departure-soldout .occupancy-track span{background:#c93d31}
body.schedule-front .status-soldout{color:#a82e25;background:#fff0ec}
body.schedule-front .departure-booking{display:grid;grid-template-columns:115px minmax(0,1fr);gap:6px 10px;align-items:center;min-width:0}
body.schedule-front .departure-footer{display:contents}
body.schedule-front .departure-booking>.departure-primary{grid-area:1/2;min-height:52px;font-size:15px;font-weight:600;border-radius:13px;gap:5px;padding:0 10px;background:#E8F2EB;color:#00441D;border:1px solid #DCE4DE;box-shadow:none}
body.schedule-front .departure-footer>.departure-price{grid-area:1/1/3;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
body.schedule-front .departure-price small{line-height:1.4}
body.schedule-front .departure-price strong{font-size:24px;font-weight:700;line-height:1.2;margin:0}
body.schedule-front .departure-footer>a{grid-area:2/2;display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--sf-pine);min-height:30px;font-weight:500;border-bottom:0}
body.schedule-front .departure-contacts{grid-column:1/-1;display:grid;gap:6px;margin-top:8px;padding-top:10px;border-top:1px solid var(--sf-line);line-height:1.4}
body.schedule-front .departure-contacts>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px}
body.schedule-front .departure-contacts span{color:var(--sf-muted)}
body.schedule-front .departure-contacts strong{font-weight:500;color:var(--sf-ink);white-space:nowrap}
body.schedule-front .departure-booking>.departure-primary:hover{background:#DCEBE1;border-color:#C5D9CB}
body.schedule-front .departure-booking>.departure-primary:focus-visible{outline:3px solid #00441D;outline-offset:3px}
@media(max-width:1100px) and (min-width:641px){
body.schedule-front .departure-main-grid{grid-template-columns:90px minmax(0,1fr) 285px;align-items:start;gap:12px 18px}
body.schedule-front .departure-date{grid-area:1/1/3}
body.schedule-front .departure-about{grid-area:1/2/3}
body.schedule-front .departure-status{grid-area:1/3}
body.schedule-front .departure-booking{grid-area:2/3}
body.schedule-front .departure-status-tags{flex-flow:row wrap}
}
@media(max-width:640px){
body.schedule-front .departure-main-grid{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:16px}
body.schedule-front .departure-date{padding-bottom:10px;margin-bottom:4px;gap:6px;flex-wrap:wrap;align-self:auto}
body.schedule-front .departure-about{margin-bottom:8px}
body.schedule-front .departure-about h4{font-size:20px;line-height:1.25}
body.schedule-front .departure-status{padding:0;background:none;border-radius:0}
body.schedule-front .departure-status-tags{flex-flow:row wrap}
body.schedule-front .departure-booking{display:flex;flex-direction:column;align-items:stretch;gap:16px}
body.schedule-front .departure-booking>.departure-primary{width:100%;min-height:52px}
body.schedule-front .departure-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
body.schedule-front .departure-footer>a{grid-area:auto;min-width:0;min-height:44px;justify-content:flex-start;gap:4px;line-height:1.3}
body.schedule-front .departure-footer>.departure-price{grid-area:auto;display:flex;align-items:flex-end;gap:2px;text-align:right;min-width:0}
body.schedule-front .departure-price small{white-space:nowrap}
body.schedule-front .departure-price strong{font-size:20px;grid-area:auto;text-align:right}
body.schedule-front .departure-contacts{margin-top:4px;padding-top:14px;gap:10px}
}

/* --- tpl block 3 --- */
body.schedule-front .schedule-page,body.schedule-front .schedule-results{background:#fff}
body.schedule-front .schedule-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;padding:14px;position:sticky;top:10px}
body.schedule-front .schedule-notice{margin:0;color:#526158;font-size:14px;line-height:1.5;font-weight:400}
body.schedule-front .departure-tour-link{display:inline-flex;align-items:flex-start;gap:8px;color:inherit;text-decoration:none}
body.schedule-front .departure-tour-link span{min-width:0}
body.schedule-front .departure-tour-link svg{flex:none;margin-top:.18em;color:var(--sf-pine)}
body.schedule-front .departure-tour-link:hover{color:var(--sf-pine)}
body.schedule-front .departure-tour-link:focus-visible{outline:2px solid var(--sf-pine);outline-offset:4px;border-radius:4px}
body.schedule-front .departure-price small{font-size:12px;line-height:1.4}
body.schedule-front .departure-footer>.departure-price{grid-area:1/1;}
body.schedule-front .departure-contacts{border-top:0;margin-top:8px;padding-top:2px;gap:8px}
@media(max-width:640px){
body.schedule-front .schedule-toolbar{top:8px;padding:12px;gap:10px;background:#fff}
body.schedule-front .departure-footer{display:flex;justify-content:flex-end}
body.schedule-front .departure-footer>.departure-price{flex-direction:row;align-items:baseline;gap:8px}
body.schedule-front .departure-contacts{border-top:0;margin-top:0;padding-top:2px;gap:10px}
}

/* --- tpl block 4 --- */
body.schedule-front .schedule-toolbar{position:static;top:auto}
body.schedule-front .boarding-place-short{display:none}
body.schedule-front .boarding-request{display:inline;margin-left:4px;color:#7a847e;font-size:12px;font-style:italic;font-weight:400;white-space:nowrap}
body.schedule-front .status-tag.status-many,body.schedule-front .status-tag.status-request{background:#E8F2EB;color:#06652E}
body.schedule-front .status-tag.status-few{background:#fff0e9;color:#c94324}
body.schedule-front .status-tag.status-soldout{background:#eef0ee;color:#707a73}
body.schedule-front .departure-soldout:before,body.schedule-front .departure-soldout .occupancy-track span{background:#a8b0aa}
@media(max-width:640px){
body.schedule-front .schedule-toolbar{position:static;top:auto}
body.schedule-front .departure-logistics>.departure-start-secondary{grid-template-columns:18px 40px minmax(0,1fr);gap:5px}
body.schedule-front .departure-start-secondary .secondary-boarding-label{white-space:nowrap}
body.schedule-front .departure-start-secondary .boarding-place-full{display:none}
body.schedule-front .departure-start-secondary .boarding-place-short{display:inline}
body.schedule-front .departure-start-secondary .boarding-request{font-size:12px;margin-left:4px}
body.schedule-front .departure-booking{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:16px 12px;align-items:center}
body.schedule-front .departure-booking>.departure-primary{grid-area:1/1;width:100%;min-width:0;min-height:48px;padding:0 8px;font-size:14px;gap:0}
body.schedule-front .departure-booking>.departure-primary>span{display:none}
body.schedule-front .departure-footer{display:block;grid-area:1/2;min-width:0}
body.schedule-front .departure-footer>.departure-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;grid-area:auto}
body.schedule-front .departure-price small{font-size:12px;white-space:nowrap}
body.schedule-front .departure-price strong{font-size:20px;white-space:nowrap}
body.schedule-front .departure-contacts{grid-column:1/-1}
}

/* --- tpl block 5 --- */
body.schedule-front .schedule-quick-filters .status-preset{border-radius:8px}
body.schedule-front .departure-contacts strong{white-space:normal}
body.schedule-front .departure-contacts .guide-phone{display:inline-block;white-space:nowrap;color:inherit}

/* --- tpl block 6 --- */
body.schedule-front .status-tag.status-request{background:#fff3ce;color:#805900}

/* --- тема: стыковка с шапкой, футером и сеткой главной --- */

/*
 * Выпадающие списки фильтра выходят за пределы первого экрана, поэтому герою
 * нельзя overflow:hidden — обрезку декора уносим в отдельный слой под контентом.
 */
body.schedule-front .schedule-hero {
	z-index: 40;
	overflow: visible;
}

body.schedule-front .schedule-hero-decor {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

/* Липкая панель фильтров не должна перекрывать раскрытый список. */
body.schedule-front .schedule-toolbar {
	z-index: 5;
}

/* Ширину контента задаёт общий .container сайта, а не --sf-shell из макета. */
body.schedule-front .schedule-hero .hero-content {
	width: 100%;
	max-width: none;
	padding: 40px 0;
}

/* До 1200px шапка фиксированная (60px) — иначе заголовок уезжает под неё. */
@media (max-width: 1199px) {
	body.schedule-front .schedule-hero .hero-content {
		padding-top: 100px;
	}
}

body.schedule-front .schedule-hero.filter_wrap_head .container {
	padding-top: 0;
}

body.schedule-front .schedule-page .container {
	padding-left: 15px;
	padding-right: 15px;
}

/* Сбросы вместо препроцессорного preflight макета. */
body.schedule-front .schedule-page *,
body.schedule-front .schedule-page *::before,
body.schedule-front .schedule-page *::after {
	box-sizing: border-box;
}

body.schedule-front .schedule-page h2,
body.schedule-front .schedule-page h3,
body.schedule-front .schedule-page p,
body.schedule-front .schedule-page ul {
	margin: 0;
	padding: 0;
}

body.schedule-front .schedule-page svg {
	display: block;
}

body.schedule-front .schedule-quick-filters button {
	appearance: none;
	cursor: pointer;
	font-family: inherit;
}

/* Высоту первого экрана задаёт .hero-content главной — убираем падинги макета. */
body.schedule-front .schedule-hero {
	padding: 0;
}

body.schedule-front .schedule-hero .hero-content {
	position: relative;
	z-index: 3;
}

/* Заголовок — кегль макета расписания, а не главной. */
body.schedule-front .schedule-hero h1,
body.schedule-front .schedule-hero #schedule-title {
	max-width: 900px;
	color: var(--hp-white, #fff);
	font-size: clamp(34px, 5.2vw, 66px);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -0.03em;
}

body.schedule-front .schedule-hero .schedule-hero-lead {
	max-width: 620px;
	margin-top: 14px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 16px;
	line-height: 1.55;
}

/* Название тура — ссылка; заголовок карточки остаётся h2 для структуры страницы. */
body.schedule-front .departure-about h2 {
	max-width: 620px;
	margin: 0;
	color: var(--sf-ink);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.035em;
}

@media (max-width: 640px) {
	body.schedule-front .departure-about h2 {
		font-size: 20px;
		line-height: 1.25;
	}
}

/* «Быстрая заявка» — ссылка на модалку, а не button. */
body.schedule-front .departure-primary,
body.schedule-front .departure-primary:hover,
body.schedule-front .departure-primary:focus {
	text-decoration: none;
	cursor: pointer;
}

body.schedule-front .departure-tour-link,
body.schedule-front .departure-tour-link:hover {
	text-decoration: none;
}

/* Место посадки — подпись «Отправление / Возвращение» вместо иконки-стрелки. */
body.schedule-front .departure-logistics .departure-point-label {
	color: var(--sf-muted);
	font-weight: 400;
}

body.schedule-front .departure-logistics .departure-point-place {
	min-width: 0;
}

/*
 * Отправление и возвращение — одна сетка на обе строки, поэтому колонки
 * выровнены, а время («23:00–23:30») не налезает на название точки.
 */
body.schedule-front .departure-logistics {
	display: grid;
	grid-template-columns: 20px max-content minmax(0, 1fr);
	align-items: start;
	gap: 8px 6px;
}

body.schedule-front .departure-logistics > span.departure-start,
body.schedule-front .departure-logistics > span.departure-return {
	display: contents;
}

body.schedule-front .departure-logistics b {
	white-space: nowrap;
}

/* Зазор между ценой и кнопкой заявки. */
body.schedule-front .departure-booking {
	gap: 6px 20px;
}

/* Номер автобуса и имя гида — обычный текст. */
body.schedule-front .departure-contacts strong {
	font-weight: 400;
}

/* Акции выезда. */
body.schedule-front .departure-actions-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
}

body.schedule-front .departure-action-tag {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 4px 8px;
	border-radius: 8px;
	background: #fff0e9;
	color: #c94324;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;
}

body.schedule-front .departure-action-tag:hover {
	background: #ffe3d8;
	color: #a8341a;
	text-decoration: none;
}

/* Предупреждение о задержке данных по автобусу и гиду. */
body.schedule-front .departure-contacts-note {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--sf-muted);
	font-size: 13px;
	line-height: 1.45;
}

/* Полоса слева: зелёная — много мест, красная — мало, жёлтая — под запрос, серая — мест нет. */
body.schedule-front .departure-few::before {
	background: #c94324;
}

/*
 * У гарантированного выезда полоса зелёная, пока места есть: ехать он будет точно.
 * «Под запрос» остаётся жёлтым — там наличие мест как раз и неизвестно.
 */
body.schedule-front .departure-row[data-guaranteed="1"]:not(.departure-soldout):not(.departure-request)::before {
	background: var(--sf-pine);
}

body.schedule-front .departure-few .occupancy-track span {
	background: #c94324;
}

/* Строка под быстрыми фильтрами: примечание и ссылка на версию для агентств. */
body.schedule-front .schedule-toolbar-note {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 18px;
}

body.schedule-front .schedule-agent-link {
	color: var(--sf-pine);
	font-size: 14px;
	white-space: nowrap;
}

body.schedule-front .schedule-agent-link:hover {
	color: var(--sf-pine-dark);
}

/*
 * Пагинация: разметка общая (paginate_links), но кнопки собираем флексом —
 * в теме они держатся на line-height, из-за чего стрелка-спрайт съезжает.
 */
body.schedule-front .schedule-pagination {
	margin-top: 28px;
}

body.schedule-front .schedule-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.schedule-front .schedule-pagination ul.page-numbers li {
	display: flex;
	margin: 0;
}

body.schedule-front .schedule-pagination a.page-numbers,
body.schedule-front .schedule-pagination .page-numbers.current {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border: 1px solid var(--sf-line);
	border-radius: 12px;
	background: #fff;
	color: var(--sf-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	transition: border-color 0.2s, background 0.2s, color 0.2s;
}

body.schedule-front .schedule-pagination a.page-numbers:hover {
	border-color: var(--sf-pine);
	color: var(--sf-pine);
	background: #edf4ee;
}

body.schedule-front .schedule-pagination .page-numbers.current {
	border-color: var(--sf-pine);
	background: var(--sf-pine);
	color: #fff;
}

/* Стрелка-спрайт нарисована белой, поэтому фон у шагов остаётся зелёным. */
body.schedule-front .schedule-pagination .page-numbers.prev,
body.schedule-front .schedule-pagination .page-numbers.next {
	border-color: var(--sf-pine);
	background: var(--sf-pine);
}

body.schedule-front .schedule-pagination .page-numbers.prev:hover,
body.schedule-front .schedule-pagination .page-numbers.next:hover {
	border-color: #0a7d4a;
	background: #0a7d4a;
}

body.schedule-front .schedule-pagination .page-numbers svg {
	display: block;
	width: 8px;
	height: 14px;
}

body.schedule-front .schedule-pagination .page-numbers.dots {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 20px;
	height: 44px;
	margin: 0;
	padding-bottom: 10px;
	border: 0;
	background: none;
	color: var(--sf-muted);
	font-size: 18px;
	line-height: 1;
}

/* Порции ленты: свёрнутая порция держит свою высоту распоркой. */
body.schedule-front .departure-page {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

body.schedule-front .departure-page + .departure-page {
	margin-top: 9px;
}

body.schedule-front .departure-page--folded {
	display: block;
}

/* Догрузка списка. */
body.schedule-front .schedule-more {
	margin-top: 20px;
	text-align: center;
}

body.schedule-front .schedule-more-status {
	margin-top: 10px;
	color: #c94324;
	font-size: 14px;
	min-height: 1.4em;
}

/* Спиннер подгрузки — в зелёном сайта. */
body.schedule-front .schedule-spinner {
	display: inline-block;
	width: 28px;
	height: 28px;
	border: 3px solid #dfe9e2;
	border-top-color: var(--sf-pine);
	border-radius: 50%;
	animation: schedule-spin 0.8s linear infinite;
}

body.schedule-front .schedule-spinner[hidden] {
	display: none;
}

@keyframes schedule-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.schedule-front .schedule-spinner {
		animation-duration: 2.4s;
	}
}

body.schedule-front .schedule-load-more {
	text-decoration: none;
}

body.schedule-front .schedule-load-more[aria-disabled="true"] {
	opacity: 0.6;
	pointer-events: none;
}

/* Пустая выдача. */
body.schedule-front .schedule-empty strong {
	display: block;
	color: var(--sf-ink);
	font-weight: 600;
}

body.schedule-front .schedule-empty p {
	font-size: 14px;
}

body.schedule-front .schedule-empty a {
	color: var(--sf-pine);
}

/*
 * body.homepage-redesign включён ради стилей фильтра, поэтому возвращаем
 * шапке и мобильному меню поведение обычной страницы (css/header-v40.css).
 */
@media (max-width: 1199px) {
	body.schedule-front .header-primary .audience-switcher,
	body.schedule-front .header__actions.audience-switcher {
		display: none !important;
	}
}

@media (max-width: 760px) {
	body.schedule-front .menu {
		top: 66px;
		max-height: calc(100vh - 66px);
	}
}
