/* extracted from view/coach-bus.php — порядок блоков сохранён */

/* --- block 1 --- */
/* ===== Luxury hero (from airport-transfer) ===== */
.luxury-title {
    position: relative;
    padding: 180px 0 120px;
    overflow: hidden;
    color: white;
    text-align: center;
    background-image: linear-gradient(80deg, rgba(0,0,0,.5) 0%, rgba(1,0,19,.7) 70%, rgba(0,0,0,.5) 100%), url(/images/coach-bus-transportation-banner.jpeg);
    background-size: cover;
    background-position: center center;
}
.luxury-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,.2); z-index:-1; }
.luxury-parallax-bg {
    position:absolute; top:0; left:0; width:100%; height:120%;
    background-image: linear-gradient(80deg, rgba(0,0,0,.5) 0%, rgba(1,0,19,.7) 70%, rgba(0,0,0,.5) 100%), url(/images/coach-bus-transportation-banner.jpeg);
    background-size:cover; background-position:center 20%; background-attachment:fixed;
    transform:translateZ(0); z-index:-2; filter:brightness(.9) contrast(1.1);
}
.luxury-title-content { position:relative; z-index:2; max-width:900px; margin:0 auto; animation:fadeInUp 1s ease-out; }
@keyframes fadeInUp { from { opacity:0; transform:translateY(20px);} to { opacity:1; transform:translateY(0);} }
.luxury-title-badge {
    display:inline-block; font-size:12px; letter-spacing:3px;
    background-color:rgba(154,136,102,.3); border:1px solid rgba(154,136,102,.7);
    color:#fff; padding:8px 16px; border-radius:3px; margin-bottom:25px; font-weight:500; position:relative;
}
.luxury-title-badge:before, .luxury-title-badge:after { content:''; position:absolute; height:1px; width:30px; background:rgba(154,136,102,.7); top:50%; }
.luxury-title-badge:before { right:100%; margin-right:15px; }
.luxury-title-badge:after { left:100%; margin-left:15px; }
.luxury-title h1 { font-size:62px; font-weight:700; letter-spacing:3px; margin-bottom:20px; text-shadow:0 3px 10px rgba(0,0,0,.5); position:relative; display:inline-block; }
.luxury-title span { display:block; font-size:17px; line-height:130%; text-align:center; color:#fff; }
.luxury-title-divider { display:flex; align-items:center; justify-content:center; margin:25px 0 15px; }
.luxury-title-divider:before, .luxury-title-divider:after { content:''; height:1px; width:60px; background:rgba(255,255,255,.4); }
.divider-icon { width:8px; height:8px; background:#9a8866; transform:rotate(45deg); margin:0 15px; }
/* Крошки этой страницы получают класс .info-breadcrumbs — у него своя подложка
   #ffffff3b со скруглением. Фон и padding контейнера давали вторую плашку под ней. */
.luxury-title .breadcrumbs-container { margin:0 auto; padding:0; background-color:transparent; width:fit-content; }
.luxury-title .breadcrumbs-container span { font-size:14px!important; }
@media (max-width:767px) {
    .luxury-title { padding:140px 0 70px; }
    .luxury-title h1 { font-size:36px; letter-spacing:2px; }
    .luxury-parallax-bg { background-attachment:scroll; }
}

/* ===== Shared section styles (cb-) ===== */
.cb-eyebrow { display:inline-block; color:#6b5d4a; text-transform:uppercase; letter-spacing:2px; font-size:.78rem; font-weight:600; margin-bottom:10px; }
.cb-section-head { max-width:820px; margin:0 auto 44px; text-align:center; }
.cb-section-head h2 { font-size:2.1rem; font-weight:300; line-height:1.25; margin:0; }
.cb-section-head h2 span { font-weight:700; }
.cb-section-head.cb-light h2 { color:#fff; }
.cb-section-head.cb-light .cb-eyebrow { color:#b9a68f; }
.cb-section-sub { margin:16px auto 0; color:#555; font-size:1rem; line-height:1.7; max-width:720px; }
.cb-sub-light { color:rgba(255,255,255,.75); }

/* Intro */
.cb-intro { padding:70px 0; }
.cb-intro-text h2 { font-size:2.1rem; font-weight:300; margin:0 0 18px; }
.cb-intro-text h2 span { font-weight:700; }
.cb-intro-text p { font-size:1.02rem; line-height:1.75; color:#3b3b3b; margin:0 0 16px; }
.cb-benefits { background:#f6f5f3; border:1px solid #ebe8e4; border-radius:14px; padding:30px 28px; }
.cb-benefits h3 { font-size:1.35rem; font-weight:700; margin:0 0 18px; }
.cb-benefits ul { list-style:none; padding:0; margin:0 0 22px; }
.cb-benefits ul li { position:relative; padding:7px 0 7px 30px; font-size:.97rem; color:#333; line-height:1.5; }
.cb-benefits ul li::before { content:''; position:absolute; left:0; top:13px; width:14px; height:14px; background:rgba(154,138,120,.2); border:2px solid #6b5d4a; border-radius:50%; }
.cb-benefits-cta { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.cb-call p { margin:0 0 2px; font-size:.85rem; color:#777; }
.cb-call a { font-weight:700; font-size:1.05rem; }

/* Occasions */
.cb-occasions { background:#1d1d1d; padding:70px 0 75px; }
.cb-occasions-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cb-occasion { background:rgba(255,255,255,.04); border:1px solid rgba(154,138,120,.22); border-radius:12px; padding:26px 22px; transition:border-color .25s ease, background .25s ease; }
.cb-occasion:hover { border-color:#6b5d4a; background:rgba(154,138,120,.08); }
.cb-occasion-icon { width:46px; height:46px; border-radius:10px; background:rgba(154,138,120,.15); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.cb-occasion-icon svg { width:24px; height:24px; stroke:#6b5d4a; }
.cb-occasion h3 { color:#fff; font-size:1.02rem; font-weight:600; margin:0 0 8px; }
.cb-occasion p { color:rgba(255,255,255,.72); font-size:.89rem; line-height:1.6; margin:0; }
.cb-occasion p a { color:#b9a68f; text-decoration:underline; }

/* Fleet */
.cb-fleet { padding:70px 0; background:#f6f5f3; }
.cb-fleet-row { display:grid; grid-template-columns:5fr 7fr; gap:30px; align-items:center; background:#fff; border:1px solid #ebe8e4; border-radius:16px; padding:24px; margin-bottom:26px; box-shadow:0 2px 12px rgba(0,0,0,.04); }
.cb-fleet-reverse { grid-template-columns:7fr 5fr; }
.cb-fleet-reverse .cb-fleet-img { order:2; }
.cb-fleet-reverse .cb-fleet-text { order:1; }
.cb-fleet-img { position:relative; }
.cb-fleet-img img { width:100%; border-radius:12px; display:block; }
.cb-fleet-img .info-badge { position:absolute; top:10px; left:10px; z-index:2; }
.cb-fleet-text h3 { font-size:1.5rem; font-weight:700; margin:0 0 12px; }
.cb-fleet-text p { color:#444; font-size:.98rem; line-height:1.7; margin:0 0 12px; }
.cb-fleet-link { color:#6b5d4a; font-weight:600; text-decoration:none; font-size:.95rem; }
.cb-fleet-link:hover { text-decoration:underline; color:#8a7a68; }
.cb-fleet-cta { text-align:center; padding-top:18px; }

/* Amenities */
.cb-amenities { background:#1d1d1d; padding:70px 0 75px; }
.cb-amenities-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cb-amenity { display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.04); border:1px solid rgba(154,138,120,.22); border-radius:10px; padding:16px 18px; }
.cb-amenity svg { width:26px; height:26px; stroke:#6b5d4a; flex-shrink:0; }
.cb-amenity span { color:rgba(255,255,255,.88); font-size:.92rem; font-weight:500; }

/* Steps */
.cb-steps { padding:70px 0; }
.cb-steps-img img { width:100%; border-radius:16px; filter:drop-shadow(0 0 30px rgba(0,0,0,.2)); }
.cb-steps-text h2 { font-size:2rem; font-weight:300; margin:0 0 26px; }
.cb-steps-text h2 span { font-weight:700; }
.cb-step { display:flex; gap:18px; margin-bottom:22px; }
.cb-step-num { flex-shrink:0; width:40px; height:40px; border-radius:50%; background:#6b5d4a; color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.cb-step h3 { font-size:1.1rem; font-weight:700; margin:7px 0 8px; }
.cb-step p { color:#555; font-size:.95rem; line-height:1.65; margin:0; }

/* Pricing */
.cb-pricing { padding:70px 0; background:#f6f5f3; }
.cb-pricing-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cb-price-card { background:#fff; border:1px solid #ebe8e4; border-top:3px solid #6b5d4a; border-radius:12px; padding:24px 22px; }
.cb-price-card h3 { font-size:1.05rem; font-weight:700; margin:0 0 10px; }
.cb-price-card p { color:#555; font-size:.91rem; line-height:1.65; margin:0; }

/* Safety */
.cb-safety { padding:70px 0; }
.cb-safety-text h2 { font-size:2rem; font-weight:300; margin:0 0 16px; }
.cb-safety-text h2 span { font-weight:700; }
.cb-safety-text p { color:#444; font-size:.98rem; line-height:1.7; margin:0 0 14px; }
.cb-safety-list { list-style:none; padding:0; margin:8px 0 0; }
.cb-safety-list li { position:relative; padding:7px 0 7px 30px; font-size:.95rem; color:#333; }
.cb-safety-list li::before { content:''; position:absolute; left:0; top:12px; width:14px; height:14px; background:rgba(154,138,120,.2); border:2px solid #6b5d4a; border-radius:50%; }
.cb-safety-img img { width:100%; border-radius:16px; filter:drop-shadow(0 0 30px rgba(0,0,0,.2)); }

/* Cities */
.cb-cities { padding:70px 0; background:#f6f5f3; }
.cb-cities-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cb-city-card { display:block; background:#fff; border:1px solid #ebe8e4; border-radius:12px; padding:24px 22px; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.cb-city-card:hover { transform:translateY(-4px); box-shadow:0 14px 34px rgba(0,0,0,.1); border-color:#6b5d4a; text-decoration:none; }
.cb-city-card h3 { font-size:1.08rem; font-weight:700; color:#161616; margin:0 0 8px; }
.cb-city-card p { color:#555; font-size:.89rem; line-height:1.6; margin:0 0 12px; }
.cb-city-link { color:#6b5d4a; font-weight:600; font-size:.9rem; }
.cb-cities-note { text-align:center; margin:28px auto 0; color:#555; font-size:.95rem; max-width:640px; }
.cb-cities-note a { color:#6b5d4a; font-weight:600; }

/* Extras */
.cb-extras { background:#2c2c2c; padding:70px 0 75px; }
.cb-extra { margin-bottom:34px; }
.cb-extra h3 { color:#fff; font-size:1.15rem; font-weight:600; margin:0 0 10px; text-decoration:underline; text-underline-offset:10px; }
.cb-extra h3 span { font-weight:400; }
.cb-extra p { color:rgba(255,255,255,.75); font-size:.95rem; line-height:1.7; margin:0; }

/* FAQ */
.cb-faq { padding:70px 0; }
.cb-faq-list { max-width:840px; margin:0 auto; }
.cb-faq-item { border:1px solid #e8e8e8; border-radius:10px; margin-bottom:12px; background:#fff; overflow:hidden; }
.cb-faq-item summary { list-style:none; cursor:pointer; padding:18px 20px; font-weight:600; font-size:1rem; display:flex; justify-content:space-between; align-items:center; gap:14px; }
.cb-faq-item summary::-webkit-details-marker { display:none; }
.cb-faq-item summary svg { width:18px; height:18px; flex-shrink:0; stroke:#6b5d4a; transition:transform .25s ease; }
.cb-faq-item[open] summary svg { transform:rotate(180deg); }
.cb-faq-item[open] { border-color:#6b5d4a; }
.cb-faq-item p { padding:0 20px 18px; margin:0; color:#555; line-height:1.7; font-size:.95rem; }
.cb-faq-item:last-child { margin-bottom:0; }

/* Final CTA */
.cb-final { padding:70px 0; }
.cb-final .form-cst.newfrm { border-radius:20px; }
.cb-final .form-cst p { margin-bottom:0; text-align:center; }
.cb-final-text h2 { font-size:1.9rem; line-height:1.3; margin:0 0 12px; }
.cb-final-text p { color:#555; font-size:1rem; line-height:1.65; }
.cb-final-text .cb-eyebrow { margin-bottom:8px; display:inline-block; }
.cb-final-points { list-style:none; padding:0; margin:18px 0 18px; }
.cb-final-points li { position:relative; padding:6px 0 6px 30px; color:#333; font-size:.97rem; line-height:1.5; }
.cb-final-points li::before { content:''; position:absolute; left:0; top:12px; width:14px; height:14px; background:rgba(154,138,120,.2); border:2px solid #6b5d4a; border-radius:50%; }
.cb-final-note { font-size:.92rem; color:#777; }
.cb-final-note a { color:#6b5d4a; font-weight:600; text-decoration:underline; }

/* Responsive */
@media (max-width: 991px) {
    .cb-occasions-grid, .cb-amenities-grid, .cb-pricing-grid, .cb-cities-grid { grid-template-columns:repeat(2,1fr); }
    .cb-benefits { margin-top:30px; }
    .cb-safety-img, .cb-steps-img { margin-top:28px; }
    .cb-fleet-row, .cb-fleet-reverse { grid-template-columns:1fr; }
    .cb-fleet-reverse .cb-fleet-img { order:1; }
    .cb-fleet-reverse .cb-fleet-text { order:2; }
    .cb-final-text { margin-bottom:28px; }
}
@media (max-width: 767px) {
    .cb-intro, .cb-fleet, .cb-steps, .cb-pricing, .cb-safety, .cb-cities, .cb-faq { padding:50px 0; }
    .cb-occasions, .cb-amenities, .cb-extras { padding:50px 0 55px; }
    .cb-section-head h2, .cb-intro-text h2 { font-size:1.55rem; }
    .cb-steps-text h2, .cb-safety-text h2 { font-size:1.5rem; }
    .cb-occasions-grid, .cb-pricing-grid, .cb-cities-grid { grid-template-columns:1fr; }
    .cb-amenities-grid { grid-template-columns:1fr 1fr; }
    .cb-amenity { padding:13px 14px; }
    .cb-amenity span { font-size:.85rem; }
    .cb-final { padding:50px 0; }
}
@media (max-width: 480px) {
    .cb-amenities-grid { grid-template-columns:1fr; }
    .cb-faq-item summary { padding:15px 16px; font-size:.95rem; }
    .cb-benefits { padding:24px 20px; }
}
