/* Calendar integration of IV-20260907-02, WEB-20260827-D10/D11 and D14.
   Native content, shared theme tokens, no legacy abg-page overrides. */
.ab-calendar{max-width:1180px}
.ab-calendar :is(h2[id],section[id]){scroll-margin-top:125px}
.ab-calendar :is(.abcal-label,.abcal-card-badge,.abcal-related-badge,.abcal-path-kicker),.ab-calendar .abcal-hero>p:first-child{font:400 11px/1.6 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:0;border:0;background:transparent;margin-bottom:12px}
.ab-calendar :is(.abcal-card-grid,.abcal-related-grid,.abcal-path){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:32px}
.ab-calendar .abcal-related-grid,.ab-calendar .abcal-path{grid-template-columns:repeat(3,minmax(0,1fr))}
.ab-calendar :is(.abcal-card,.abcal-related-card,.abcal-path-item){display:block;min-width:0;padding:22px 0 0;border:0;border-top:1px solid var(--gold);background:transparent;border-radius:0;box-shadow:none;text-decoration:none}
.ab-calendar :is(.abcal-card-title,.abcal-related-card-title,.abcal-path-title){font:650 19px/1.4 Manrope,sans-serif;color:var(--navy);margin:0 0 12px}
.ab-calendar :is(.abcal-card-text,.abcal-related-card-text,.abcal-path-text){font-size:16px;line-height:1.7;color:var(--warm)}
.ab-calendar :is(.abcal-card,.abcal-related-card):hover :is(.abcal-card-title,.abcal-related-card-title){text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.ab-calendar :is(.abcal-alert,.abcal-quote){padding:24px 0;border-top:1px solid var(--gold);background:transparent;margin-top:28px;margin-bottom:28px}
.ab-calendar :is(.abcal-alert-title,.abcal-quote-title){font:650 18px/1.5 Manrope,sans-serif;color:var(--navy);margin-bottom:16px}
.ab-calendar :is(.abcal-alert-text,.abcal-quote-text){color:var(--warm)}
.ab-calendar .abcal-table-region{max-width:100%;overflow-x:auto;margin:28px 0 0;overscroll-behavior-inline:contain}
.ab-calendar table{width:100%;min-width:760px;border-collapse:collapse;font:400 15px/1.6 Manrope,sans-serif}
.ab-calendar th{background:#f3efe6;color:var(--navy);border-bottom:1px solid var(--gold);padding:14px 16px;text-align:left;font-size:14px;font-weight:700}
.ab-calendar td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--warm)}
.ab-calendar .abcal-date{font-weight:650;color:var(--navy);white-space:nowrap}
.ab-calendar .abcal-table-hint{display:none;font-size:13px;margin:10px 0 24px;color:var(--warm)}
.ab-calendar .abcal-sources-note{border-top:1px solid var(--line);padding-top:24px;margin-top:40px}
.ab-calendar .abcal-sources-note h3{font-size:21px;margin-top:0}
.ab-calendar .abcal-sources-note p{font-size:16px}
@media(max-width:807px){.ab-calendar .abcal-table-hint{display:block}}
.ab-calendar-main{background:var(--cream)}
.ab-calendar-page>section[id]{scroll-margin-top:100px}
.ab-calendar-resources .container>p:not(.eyebrow){color:var(--warm);margin:27px 0 32px}
.ab-calendar-resources .abcal-sources-note{border-top:1px solid var(--line);padding-top:24px;margin-top:40px}
.ab-calendar-resources .abcal-sources-note h3{margin:0 0 16px}
.ab-calendar-resources .abcal-sources-note p{color:var(--warm);margin:0}
.ab-calendar-resources .abcal-sources-note a{text-underline-offset:5px}
.ab-calendar-closing-copy{margin:27px 0 0;color:#c9d3de}

.ab-calendar-resources :is(.abcal-label,.abcal-card-badge,.abcal-related-badge,.abcal-path-kicker),.ab-calendar-resources .abcal-hero>p:first-child{font:400 11px/1.6 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:0;border:0;background:transparent;margin-bottom:12px}
.ab-calendar-resources :is(.abcal-card-grid,.abcal-related-grid,.abcal-path){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:32px}
.ab-calendar-resources :is(.abcal-card,.abcal-related-card,.abcal-path-item){display:block;min-width:0;padding:22px 0 0;border:0;border-top:1px solid var(--gold);background:transparent;border-radius:0;box-shadow:none;text-decoration:none}
.ab-calendar-resources :is(.abcal-card-title,.abcal-related-card-title,.abcal-path-title){font:650 19px/1.4 Manrope,sans-serif;color:var(--navy);margin:0 0 12px}
.ab-calendar-resources :is(.abcal-card-text,.abcal-related-card-text,.abcal-path-text){font-size:16px;line-height:1.7;color:var(--warm)}
.ab-calendar-resources :is(.abcal-card,.abcal-related-card):hover :is(.abcal-card-title,.abcal-related-card-title){text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
/* User direction16/9: whole calendar follows homepage grid and heading scale. */
.ab-calendar-main{background:var(--cream)}
.ab-calendar .abcal-hero{padding:80px 0 0}
.ab-calendar h1{max-width:none}
.ab-calendar :is(h1,h2){margin-bottom:27px}
.ab-calendar p:not(.eyebrow){color:var(--warm);margin:0 0 22px}
.ab-calendar .routes{margin-top:52px}
.ab-calendar .routes p{margin:0}
.ab-calendar .abcal-quote-text,.ab-calendar .abcal-alert-text{font-size:16px;line-height:1.65}
.ab-calendar .abcal-quote{margin-top:52px}
@media(max-width:680px){.ab-calendar .abcal-hero{padding-top:48px}.ab-calendar :is(.abcal-card-grid,.abcal-related-grid){grid-template-columns:1fr;gap:24px}.ab-calendar .abcal-author{align-items:flex-start;gap:14px}.ab-calendar-resources .abcal-card-grid{grid-template-columns:1fr;gap:24px}}

/* Homepage scale (120/85/70), applied once between continuous calendar sections.
   Pack and closing keep their shared homepage component spacing. */
.ab-calendar-page{--abcal-section-space:120px}
.ab-calendar-page .ab-calendar>section{padding:0;margin:var(--abcal-section-space) 0 0}
.ab-calendar-page>.ab-calendar-resources{padding:var(--abcal-section-space) 0}
.ab-calendar>section>:first-child{margin-top:0}
.ab-calendar>section>:last-child{margin-bottom:0}
.ab-calendar>section>.abcal-alert:last-child,
.ab-calendar>section>.abcal-quote:last-child{padding-bottom:0}
.ab-calendar-page>.ab-calendar:has(+.closing-section){padding-bottom:var(--abcal-section-space)}
@media(max-width:850px){.ab-calendar-page{--abcal-section-space:85px}}
@media(max-width:600px){.ab-calendar-page{--abcal-section-space:70px}}

/* Homepage surfaces and author component, scoped to the calendar. */
.ab-calendar-page>.abcal-band{margin:0;padding:calc(var(--abcal-section-space)/2) 0}
.ab-calendar-page>.abcal-band--hero{padding-top:80px}
.abcal-band .abcal-hero{padding:0}
.abcal-band>.ab-calendar>:first-child{margin-top:0}
.abcal-band>.ab-calendar>:last-child{margin-bottom:0}
.abcal-band .abcal-authority{margin:40px 0}
.abcal-authority .credentials{margin:28px 0 32px}
.abcal-authority .authority-actions a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:600px){.ab-calendar-page>.abcal-band--hero{padding-top:48px}}
