.mct-hotel-route {
    color: #17303c;
    background: #f7fafb;
}
.mct-hotel-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(24px, 6vw, 90px);
    padding: clamp(28px, 7vw, 92px) max(5vw, calc((100vw - 1180px) / 2));
    background: linear-gradient(90deg, #0a2435ee, #0a2435bb), url('/images/slider/01.jpg') center 48% / cover;
}
.mct-hotel-intro h1 {
    font-size: clamp(34px, 4.5vw, 62px);
    line-height: 1.08;
    letter-spacing: -.025em;
    color: #fff;
    margin: 0 0 18px;
}
.mct-hotel-intro p {
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.5;
    color: #eff7fa;
}
.mct-hotel-intro .mct-route-label {
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    color: #d5f4eb;
}
.mct-hotel-form {
    padding: clamp(18px, 3vw, 34px);
    background: #fff;
    color: #17303c;
    border-radius: 16px;
    box-shadow: 0 16px 42px #061e3944;
}
.mct-hotel-form h2,
.mct-hotel-detail h2,
.mct-hotel-links h2 {
    margin: 0 0 12px;
    font-size: clamp(21px, 2.1vw, 28px);
    color: #17303c;
    line-height: 1.2;
}
.mct-hotel-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 12px;
}
.mct-hotel-wide, .mct-hotel-fields .mct-quote-result { grid-column: 1 / -1; }
.mct-hotel-field .form-group { margin: 0; }
.mct-hotel-field label,
.mct-hotel-field .mct-quote-date {
    display: block;
    font-size: 14px;
    color: #17303c;
    font-weight: 700;
    margin: 0 0 5px;
}
.mct-hotel-field select, .mct-hotel-field input:not([type=hidden]) {
    display: block;
    width: 100%;
    min-height: 46px;
    padding: 8px 10px;
    font: inherit;
    font-size: 16px;
    background: #fff;
    color: #17303c;
    border: 1px solid #b7c9ce;
    border-radius: 7px;
}
.mct-hotel-form .mct-hotel-submit {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    font-weight: 700;
    color: #fff;
    background: #09664d;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}
.mct-hotel-submit:disabled { opacity: .6; cursor: wait; }
.mct-hotel-fields .mct-quote-result {
    width: 100%;
    margin: 0;
    background: #f3f9f8;
    border-color: #d5e8e4;
}
.mct-hotel-detail, .mct-hotel-links {
    width: min(90%, 1180px);
    margin-inline: auto;
}
.mct-hotel-detail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 40px 0 12px;
}
.mct-hotel-detail article {
    padding: 18px;
    background: #fff;
    border: 1px solid #dae6e9;
    border-radius: 12px;
}
.mct-hotel-detail article p { margin: 0; color: #334b56; line-height: 1.55; }
.mct-hotel-links { padding: 28px 0 34px; }
.mct-hotel-links ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr));
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}
.mct-hotel-links a {
    display: block;
    padding: 12px;
    border: 1px solid #dae6e9;
    border-radius: 8px;
    background: #fff;
    color: #075e4f;
    font-weight: 700;
}
.mct-hotel-links a:hover, .mct-hotel-links a:focus-visible { text-decoration: underline; }
.mct-hotel-links span { display: block; color: #3d535d; font-size: 13px; font-weight: 400; }
@media (max-width: 767px) {
    .mct-hotel-hero, .mct-hotel-detail { grid-template-columns: minmax(0, 1fr); }
    .mct-hotel-intro h1 { font-size: clamp(29px, 7.5vw, 42px); }
    .mct-hotel-detail { padding-top: 24px; }
}
@media (max-width: 420px) {
    .mct-hotel-fields { grid-template-columns: minmax(0, 1fr); }
}
