.madrid-mail-trap { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.madrid-mail-notice { padding: 1rem; border-left: 3px solid currentColor; background: #f1f3ef; color: #1b342b; }
.madrid-quick { --mq-ink: #213e32; --mq-paper: #fffdf7; --mq-rule: #d5dacf; position: fixed; right: max(22px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 500; color: var(--mq-ink); font-family: "DM Sans", system-ui, sans-serif; font-size: 16px; line-height: 1.5; text-align: left; letter-spacing: normal; }
.madrid-quick[data-kind="spanish"] { --mq-ink: #243e4c; --mq-paper: #fffdf9; --mq-rule: #d9dddf; }
.madrid-quick *, .madrid-quick *::before, .madrid-quick *::after { box-sizing: border-box; }
.madrid-quick [hidden] { display: none !important; }
.madrid-quick details { position: relative; }
.madrid-quick summary { margin-left: auto; display: flex; align-items: center; gap: 10px; width: fit-content; min-height: 52px; padding: 12px 22px; list-style: none; border: 1px solid var(--mq-ink); border-radius: 100px; background: var(--mq-ink); color: #fff; font-weight: 600; font-size: 15px; box-shadow: 0 6px 25px #182a2322; cursor: pointer; }
.madrid-quick summary::-webkit-details-marker { display: none; }
.madrid-quick summary::marker { content: ""; }
.madrid-quick-symbol { font-size: 24px; line-height: 1; font-weight: 400; }
.madrid-quick-panel { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(380px, calc(100vw - 32px)); max-height: calc(100dvh - 112px); overflow-y: auto; overscroll-behavior: contain; background: var(--mq-paper); border: 1px solid var(--mq-rule); border-radius: 10px; padding: 26px; box-shadow: 0 18px 65px #182a2329; }
.madrid-quick .madrid-quick-close { position: absolute; right: 9px; top: 8px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: var(--mq-ink); font: 28px/1 system-ui, sans-serif; cursor: pointer; }
.madrid-quick .madrid-quick-eyebrow { margin: 0 34px 5px 0; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.madrid-quick h2 { margin: 0 24px 8px 0; font: 400 30px/1.13 "Lora", Georgia, serif; letter-spacing: -.035em; color: var(--mq-ink); }
.madrid-quick[data-kind="spanish"] h2 { font-family: "DM Sans", system-ui, sans-serif; font-weight: 600; font-size: 27px; }
.madrid-quick .madrid-quick-intro { margin: 0 0 7px; font-size: 15px; }
.madrid-quick .madrid-quick-timing { margin: 0 0 18px; color: #536158; font-size: 13px; line-height: 1.5; }
.madrid-quick form { margin: 0; }
.madrid-quick label { display: block; margin: 12px 0 5px; font-size: 14px; font-weight: 600; }
.madrid-quick input:not([type="hidden"]), .madrid-quick textarea { display: block; width: 100%; min-height: 44px; border: 1px solid #9ca99e; border-radius: 4px; background: #fff; color: #1f2c25; padding: 10px 11px; font: 400 16px/1.4 "DM Sans", system-ui, sans-serif; }
.madrid-quick textarea { resize: vertical; min-height: 80px; max-height: 190px; }
.madrid-quick .madrid-quick-privacy { margin: 12px 0; font-size: 12px; line-height: 1.5; color: #536158; }
.madrid-quick a { color: inherit; text-underline-offset: 3px; }
.madrid-quick .madrid-quick-send { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; min-height: 46px; margin: 0; border: 1px solid var(--mq-ink); border-radius: 4px; padding: 11px 14px; background: var(--mq-ink); color: #fff; font: 600 15px/1.4 "DM Sans", system-ui, sans-serif; cursor: pointer; }
.madrid-quick .madrid-quick-send:disabled { opacity: .65; cursor: wait; }
.madrid-quick .madrid-quick-full { display: block; margin-top: 17px; border-top: 1px solid var(--mq-rule); padding-top: 15px; font-size: 13px; font-weight: 600; }
.madrid-quick .madrid-quick-status { margin: 12px 0 0; padding: 12px; background: #eaf0e7; border-left: 3px solid var(--mq-ink); font-size: 14px; }
.madrid-quick .madrid-quick-status[data-state="error"], .madrid-quick .madrid-quick-status[data-state="uncertain"] { background: #fff0e8; color: #6b3122; border-color: #92472e; }
.madrid-quick :focus-visible { outline: 3px solid #b05b35; outline-offset: 3px; }
.madrid-quick summary:hover, .madrid-quick .madrid-quick-send:hover { filter: brightness(1.12); }
@media (max-width: 540px) {
    .madrid-quick { right: 16px; bottom: max(12px, env(safe-area-inset-bottom)); }
    .madrid-quick summary { min-height: 46px; padding: 10px 17px; font-size: 14px; }
    .madrid-quick-panel { padding: 23px 20px 20px; max-height: calc(100dvh - 90px); }
}
@media print { .madrid-quick { display: none !important; } }

/* Shared, read-only itinerary attachment. Its hidden JSON travels with the enquiry. */
.madrid-trip-attachment, .madrid-trip-attachment * { box-sizing: border-box; }
.madrid-trip-attachment { width: 100%; min-width: 0; margin: 16px 0; padding: 12px; border: 1px solid #b6c6b9; border-radius: 6px; background: #f8faf5; color: #213e32; font: 400 13px/1.45 "DM Sans", system-ui, sans-serif; text-align: left; letter-spacing: normal; grid-column: 1 / -1; }
.madrid-trip-attachment-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.madrid-trip-attachment .madrid-trip-attachment-title { font-size: 14px; font-weight: 700; }
.madrid-trip-attachment .madrid-trip-attachment-remove { min-height: 36px; width: auto; margin: 0; padding: 5px 8px; border: 1px solid #829d89; border-radius: 4px; background: #fff; color: #213e32; font: 600 12px/1.4 "DM Sans", system-ui, sans-serif; text-transform: none; letter-spacing: normal; cursor: pointer; }
.madrid-trip-attachment .madrid-trip-attachment-note { margin: 7px 0 10px; color: #4c6254; font-size: 12px; }
.madrid-trip-attachment-scroll { max-width: 100%; overflow-x: auto; overflow-y: hidden; border: 1px solid #c6d2c8; border-radius: 4px; background: #fff; scrollbar-width: thin; }
.madrid-trip-attachment-grid { min-width: 800px; padding-right: 17px; }
.madrid-trip-attachment-scale, .madrid-trip-attachment-row { display: flex; width: 100%; height: 31px; }
.madrid-trip-attachment-scale { background: #edf1e9; border-bottom: 1px solid #bfcfc1; }
.madrid-trip-attachment-row { border-bottom: 1px solid #dce4da; }
.madrid-trip-attachment-row:last-child { border-bottom: 0; }
.madrid-trip-attachment-day { display: flex; align-items: center; flex: 0 0 54px; position: sticky; left: 0; z-index: 2; padding-left: 6px; background: #f8faf5; font-size: 11px; font-weight: 700; }
.madrid-trip-attachment-track { position: relative; flex: 1 0 0; min-width: 0; background-image: repeating-linear-gradient(to right, #dce4da 0, #dce4da 1px, transparent 1px, transparent calc(100% / 15)); }
.madrid-trip-attachment-hour { position: absolute; top: 7px; transform: translateX(-50%); font-size: 10px; font-weight: 600; white-space: nowrap; }
.madrid-trip-attachment-hour:first-child { transform: none; }
.madrid-trip-attachment .madrid-trip-attachment-bar { position: absolute; top: 5px; height: 21px; overflow: hidden; padding: 2px 4px; border-radius: 3px; background: var(--mcta-color); color: var(--mcta-ink); font-size: 10px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.madrid-trip-attachment .madrid-trip-attachment-list { list-style: none; margin: 10px 0 0; padding: 0; font-size: 11px; }
.madrid-trip-attachment .madrid-trip-attachment-list li { display: flex; align-items: baseline; gap: 6px; margin: 4px 0; padding: 0; overflow-wrap: anywhere; }
.madrid-trip-attachment-dot { display: inline-block; width: 9px; height: 9px; border-radius: 2px; flex: 0 0 9px; }
.madrid-trip-attachment .madrid-trip-attachment-warning { margin: 8px 0 0; padding: 7px 9px; border-left: 3px solid #a66a28; background: #fff2db; color: #6a461c; font-size: 12px; }
.madrid-trip-attachment :focus-visible { outline: 3px solid #b05b35; outline-offset: 2px; }
.madrid-quick-panel:has([data-madrid-trip-attachment]) { width: min(560px, calc(100vw - 32px)); }
@media (max-width: 540px) { .madrid-trip-attachment { padding: 9px; } }
