/* Styles scoped to the Calendars feature page. */
.calendars-page { color:var(--color-text-primary); }
.calendars-page h1,.calendars-page h2 { font-family:"Segoe UI",Arial,sans-serif; font-weight:700; letter-spacing:-.045em; line-height:1.12; text-wrap:balance; margin:0 0 24px; }
.calendars-page h1 { font-size:clamp(2.8rem,4.7vw,4.1rem); }
.calendars-page h2 { font-size:clamp(2rem,3.3vw,2.8rem); }
.calendars-page em { font-family:Georgia,"Times New Roman",serif; font-weight:400; color:var(--color-text-brand); }
.calendars-page p { color:var(--color-text-secondary); line-height:1.7; margin:0 0 20px; }
.calendars-page img { display:block; max-width:100%; height:auto; }
.calendars-page a,.calendars-page a:hover { text-decoration:none; }
.calendars-page a:focus-visible { outline:3px solid var(--color-text-brand); outline-offset:5px; }
.calendars-page .btn-primary { border-radius:4px; background:#2563eb; color:#fff; }
.calendars-page .btn-primary:hover { background:#1d4ed8; }
.calendars-page .cta-group { gap:16px 26px; align-items:center; margin-top:28px; }
.calendar-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:.9375rem; font-weight:600; color:var(--color-text-brand); }
.calendar-link:hover { opacity:.8; }
.calendar-split,.calendar-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; }
.calendar-hero { padding:36px 0 64px; }
.calendar-hero__image { width:100%; background:#fff; }
.calendar-intro { align-items:start; margin-bottom:32px; }
.calendar-intro p:last-child { margin-bottom:0; }
.calendar-flight { scroll-margin-top:90px; }
.calendar-flight__image { width:100%; max-width:1000px !important; margin:auto; }
.calendar-context-action { margin-top:24px; }
.calendar-hotel__image { width:100%; max-width:800px !important; margin:auto; }
.calendars-page .calendar-mobile-detail { display:none; }
.calendar-gallery { position:relative; width:100%; aspect-ratio:650/500; }
.calendar-gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:1; transition:opacity 650ms ease-in-out; }
.calendar-gallery img[hidden] { display:none; }
.calendar-steps { list-style:none; counter-reset:calendar-step; margin:0; padding:0; }
.calendar-steps li { counter-increment:calendar-step; position:relative; padding:0 0 28px 44px; }
.calendar-steps li:last-child { padding-bottom:0; }
.calendar-steps li:before { content:counter(calendar-step,decimal-leading-zero); position:absolute; left:0; top:3px; font-size:.8125rem; color:var(--color-text-brand); font-weight:600; }
.calendar-steps h3 { font-size:1.125rem; margin:0 0 8px; font-weight:600; }
.calendar-steps p { margin:0; font-size:.9375rem; }
.calendar-delivery { margin-top:36px; }
.calendar-delivery p { border-top:1px solid var(--color-border); padding-top:24px; margin:0; font-size:.9375rem; max-width:800px; }
.calendar-close { padding:64px 0 0; background:#0b2842; color:#fff; }
.calendar-close__main { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:center; gap:64px; padding-bottom:52px; }
.calendar-close h2 { font-size:clamp(2.5rem,4.4vw,3.8rem); color:#fff; text-wrap:initial; }
.calendar-close em { color:#9ec4ff; }
.calendar-close__main p { color:#cfdeea; max-width:440px; margin:0 0 32px; font-size:1.0625rem; }
.calendar-close__main img { width:100%; border-radius:3px; }
.calendar-close .btn-primary { min-height:54px; padding:15px 24px; background:#fff; color:#0b2842; gap:20px; }
.calendar-close .btn-primary:hover { background:#dfebff; color:#0b2842; }
.calendar-close a:focus-visible { outline-color:#9ec4ff; }
.calendar-close__footer { display:flex; justify-content:space-between; align-items:center; gap:16px 32px; border-top:1px solid #385167; padding:22px 0; }
.calendar-close__footer p { margin:0; color:#b6cbdc; font-size:.875rem; }
.calendar-close__footer a { color:#fff; min-height:44px; display:inline-flex; align-items:center; gap:10px; }
.calendar-close__footer p a { margin-left:12px; }
.calendar-close__footer a:hover { color:#9ec4ff; }
@media(max-width:1000px) { .calendar-split,.calendar-intro,.calendar-close__main { gap:36px; } }
@media(max-width:900px) { .calendar-hero .calendar-split { grid-template-columns:1fr; } .calendar-hero__image { max-width:500px !important; margin:auto; } }
@media(max-width:768px) {
 .calendar-split,.calendar-intro,.calendar-close__main { grid-template-columns:1fr; gap:24px; }
 .calendars-page h1 { font-size:clamp(2.55rem,8.5vw,3.6rem); }
 .calendars-page h2 { font-size:clamp(1.9rem,6.8vw,2.6rem); }
 .calendar-hero { padding:28px 0 44px; }
 .calendars-page .cta-group { flex-direction:column; align-items:flex-start; gap:12px; }
 .calendar-intro h2 { margin-bottom:0; }
 .calendar-close { padding:44px 0 0; }
 .calendar-close__main { gap:32px; padding-bottom:32px; }
 .calendar-close h2 { font-size:clamp(2.3rem,8vw,3.5rem); }
 .calendar-close__footer { flex-direction:column; align-items:flex-start; gap:4px; padding:16px 0; }
 .calendar-close__footer p a { margin-left:0; }
}
@media(max-width:600px) { .calendars-page .calendar-mobile-detail { display:block; margin:20px auto 0; max-width:100%; } }
@media(prefers-reduced-motion:reduce) { .calendar-gallery img { transition:none; } }
