/* Calendar module marketing. Adapted from supplied v5; scoped to preserve the portal. */
.calendar-marketing [hidden] { display:none!important }
.calendar-marketing { --bg:#f5f7fb;--surface:#fff;--ink:#172033;--strong:#0d1730;--muted:#667085;--line:#dfe5ef;--blue:#245fe8;--blue-dark:#1849bd;--blue-soft:#edf3ff;--green:#168a59;--green-soft:#eaf9f1;--amber:#b26b00;--shadow:0 22px 60px rgba(38,54,88,.12);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;font-synthesis:none }
.calendar-marketing * { box-sizing:border-box }
.calendar-marketing a { color:inherit;text-decoration:none }
.calendar-marketing button, .calendar-marketing input, .calendar-marketing select { font:inherit }
.calendar-marketing button, .calendar-marketing a { touch-action:manipulation }
.calendar-marketing button { cursor:pointer }
.calendar-marketing img, .calendar-marketing svg { max-width:100% }
.calendar-marketing img { display:block }
.calendar-marketing button:focus-visible, .calendar-marketing a:focus-visible, .calendar-marketing summary:focus-visible { outline:3px solid #168a59;outline-offset:4px }
.calendar-marketing button { color:inherit }
.calendar-marketing h1, .calendar-marketing h2, .calendar-marketing h3, .calendar-marketing h4, .calendar-marketing p { margin-top:0 }
.calendar-marketing h1, .calendar-marketing h2, .calendar-marketing h3 { color:var(--strong) }
.calendar-marketing p { color:var(--muted);line-height:1.65 }
.calendar-marketing h1, .calendar-marketing h2 { letter-spacing:-.042em;line-height:1.08 }
.calendar-marketing h1 { font-size:clamp(40px,5vw,64px);margin-bottom:23px }
.calendar-marketing h2 { font-size:clamp(32px,3.7vw,48px);margin-bottom:19px }
.calendar-marketing h3 { font-size:21px;line-height:1.3;letter-spacing:-.018em;margin-bottom:10px }
.calendar-marketing h4 { font-size:16px;margin-bottom:7px }
.calendar-marketing .blue { color:var(--blue) }
.calendar-marketing .wrap { width:min(1180px,calc(100% - 64px));margin:auto }
.calendar-marketing .soft { background:var(--bg) }
.calendar-marketing .wash { background:radial-gradient(ellipse at 2% 10%,rgba(36,95,232,.10),transparent 49%),radial-gradient(ellipse at 97% 19%,rgba(42,209,125,.075),transparent 39%),linear-gradient(180deg,#fff,#f4f7fc) }
.calendar-marketing .eyebrow { display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:850;color:var(--blue);margin-bottom:17px }
.calendar-marketing .eyebrow:before { content:"";width:28px;height:2px;border-radius:2px;background:currentColor }
.calendar-marketing .center { text-align:center }
.calendar-marketing .center .eyebrow { justify-content:center }
.calendar-marketing .lead { font-size:18px;max-width:660px;margin-bottom:25px }
.calendar-marketing .actions { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:27px }
.calendar-marketing .center .actions { justify-content:center }
.calendar-marketing .btn { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:12px;border:1px solid var(--line);background:#fff;font-weight:750;font-size:14px;line-height:1.3;padding:13px 21px;transition:box-shadow .2s,transform .2s }
.calendar-marketing .btn:hover { box-shadow:0 9px 25px #17203312;transform:translateY(-1px) }
.calendar-marketing .btn.primary { background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;border-color:transparent }
.calendar-marketing .module-name { font-size:12px;font-weight:750;border:1px solid #c9d9fb;background:#f1f6ff;border-radius:100px;padding:6px 11px;display:inline-flex;align-items:center;gap:7px;color:var(--blue-dark);margin-bottom:20px }
.calendar-marketing .module-name i { width:6px;height:6px;background:var(--green);border-radius:50% }
.calendar-marketing .screen { margin:0;min-width:0 }
.calendar-marketing .screen-box { border:1px solid #cbd6e7;border-radius:18px;padding:8px;background:#fff;box-shadow:var(--shadow);overflow:hidden;position:relative }
.calendar-marketing .screen-box img { width:100%;height:auto;border-radius:11px;background:#f6f8fc }
.calendar-marketing .screen figcaption { font-size:11px;line-height:1.5;color:#758197;margin:11px 4px 0 }
.calendar-marketing .screen figcaption strong { color:#4f5d74;font-weight:650 }
.calendar-marketing .image-button { display:block;border:0;background:none;padding:0;width:100%;text-align:left;cursor:zoom-in }
.calendar-marketing .image-button:after { content:"↗";position:absolute;right:14px;bottom:14px;border:1px solid var(--line);border-radius:8px;background:#ffffffed;width:27px;height:27px;display:grid;place-items:center;color:var(--blue);font-size:15px }
.calendar-marketing .note { background:var(--blue-soft);border-left:3px solid var(--blue);padding:16px 18px;border-radius:0 12px 12px 0;color:#405570;font-size:13px;line-height:1.6;margin-top:22px }
.calendar-marketing .event-label { display:inline-flex;padding:5px 9px;border-radius:6px;background:#eaf2ff;color:#2452af;font-size:11px;font-weight:700;margin-bottom:10px }
.calendar-marketing .phone-wrap { width:225px;max-width:80%;margin:auto;border:7px solid #202c43;border-radius:32px;padding:5px;background:#fff;box-shadow:0 25px 65px #13203c26;overflow:hidden }
.calendar-marketing .phone-wrap img { width:100%;border-radius:22px }
.calendar-marketing .phone-wrap .image-button:after { display:none }
.calendar-marketing .cta-band { border:1px solid #d1dff8;background:linear-gradient(130deg,#edf3ff,#f8fbff 75%);border-radius:24px;padding:45px;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:50px }
.calendar-marketing .cta-band h2 { font-size:36px }
.calendar-marketing .cta-band p { margin:0;font-size:15px }
.calendar-marketing .cta-band .actions { margin:0;justify-content:flex-end }
.calendar-marketing .crumb { font-size:12px;color:var(--muted);margin-bottom:25px }
.calendar-marketing .crumb span { margin:0 10px;color:#aab6c8 }
@media(max-width:760px) {
.calendar-marketing .wrap { width:calc(100% - 36px) }
.calendar-marketing h2 { font-size:32px }
.calendar-marketing .lead { font-size:16px }
.calendar-marketing .screen-box { border-radius:14px;padding:6px }
.calendar-marketing .screen-box img { border-radius:8px }
.calendar-marketing .cta-band { display:block;padding:28px }
.calendar-marketing .cta-band h2 { font-size:30px }
.calendar-marketing .cta-band .actions { margin-top:25px;justify-content:flex-start }
.calendar-marketing .actions { gap:9px }
.calendar-marketing .actions .btn { font-size:13px;padding:12px 16px }
}
@media(prefers-reduced-motion:reduce) {
.calendar-marketing * { transition:none!important }
.calendar-marketing .btn:hover { transform:none }
}
@media print {
.calendar-marketing .btn { display:none }
.calendar-marketing h1 { font-size:36px }
.calendar-marketing h2 { font-size:28px }
.calendar-marketing .screen { break-inside:avoid }
.calendar-marketing .screen-box { box-shadow:none }
.calendar-marketing .wrap { width:100% }
}

.calendar-marketing .module-hero-grid { display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:40px;align-items:center }
.calendar-marketing .module-hero-grid h1 { font-size:clamp(39px,4vw,54px)!important;line-height:1.06 }
.calendar-marketing .module-hero-grid .lead { font-size:16px!important;max-width:510px }
.calendar-marketing .module-hero-grid .eyebrow { font-size:10px;letter-spacing:.08em }
.calendar-marketing .module-hero-image { transform:rotate(-1deg) }
.calendar-marketing .module-hero-image .screen figcaption { background:#fff;border:1px solid #dfe8f4;padding:13px 16px;border-radius:12px;margin-top:14px;font-size:11px;line-height:1.6 }
.calendar-marketing .module-hero-image figcaption b { display:block;color:#283e5e;font-size:13px;margin-bottom:4px }
.calendar-marketing .home-v2 { padding:60px 0 53px }
.calendar-marketing .home-v2 h2 { max-width:900px;margin:0 auto 13px;font-size:clamp(35px,4.2vw,54px) }
.calendar-marketing .home-subtitle { font-size:22px;font-weight:650;line-height:1.4;color:var(--blue);margin:0 auto 19px;max-width:850px }
.calendar-marketing .home-intro { font-size:16px;line-height:1.7;max-width:850px;margin:0 auto 35px }
.calendar-marketing .year-phone-showcase { display:grid;grid-template-columns:minmax(0,1fr) 227px;gap:32px;align-items:center }
.calendar-marketing .year-phone-showcase .phone-wrap { width:213px;max-width:100%;border-width:6px;border-radius:29px;box-shadow:0 25px 60px #13203c24 }
.calendar-marketing .year-phone-showcase .phone-wrap img { border-radius:20px }
.calendar-marketing .device-label { font-size:12px;line-height:1.55;color:#64748c;text-align:center;margin:14px 0 0 }
.calendar-marketing .device-label b { display:block;color:#223650;font-size:13px;margin-bottom:4px }
.calendar-marketing .home-benefits { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid #d8e3f4;padding-top:24px;margin-top:28px;text-align:left }
.calendar-marketing .home-benefits b { font-size:14px;display:block;color:var(--strong);margin-bottom:6px }
.calendar-marketing .home-benefits p { font-size:12px;line-height:1.6;margin:0 }
.calendar-marketing .home-actions { justify-content:center;margin-top:26px }
.calendar-marketing .main-hero { padding:54px 0 35px }
.calendar-marketing .main-hero h1 { max-width:970px;font-size:clamp(41px,5vw,65px);line-height:1.04 }
.calendar-marketing .main-hero .lead { max-width:850px;font-size:19px }
.calendar-marketing .main-hero .crumb { margin-bottom:24px }
.calendar-marketing .chapter-nav { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #dbe5f4;margin-top:29px;padding-top:23px;gap:20px }
.calendar-marketing .chapter-nav a { display:flex;gap:12px;align-items:center;line-height:1.4;font-size:13px;font-weight:700;color:#415371 }
.calendar-marketing .chapter-nav span { display:grid;place-items:center;border:1px solid #cbdcf7;background:#f1f6ff;border-radius:10px;width:31px;height:31px;font-size:11px;color:var(--blue);flex-shrink:0 }
.calendar-marketing .chapter-nav a:hover { color:var(--blue) }
.calendar-marketing .chapter { padding:70px 0 77px }
.calendar-marketing .chapter-heading { display:grid;grid-template-columns:76px minmax(0,1fr);gap:22px;align-items:start;margin-bottom:36px }
.calendar-marketing .chapter-number { width:63px;height:63px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:23px;font-weight:800;border:1px solid #d2e0fa;border-radius:18px;letter-spacing:-.03em }
.calendar-marketing .chapter-heading h2 { max-width:930px;margin:0 0 13px;font-size:clamp(32px,3.7vw,47px) }
.calendar-marketing .chapter-heading p { max-width:840px;font-size:16px;margin:0 }
.calendar-marketing .chapter-rule { display:block;margin-bottom:11px;color:#7285a1;font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase }
.calendar-marketing .assign-layout { display:grid;grid-template-columns:minmax(0,.63fr) minmax(0,1.37fr);gap:36px;align-items:center }
.calendar-marketing .assign-copy h3 { font-size:25px }
.calendar-marketing .assign-copy p { font-size:15px }
.calendar-marketing .thin-steps { list-style:none;padding:0;margin:26px 0 0;counter-reset:steps;display:grid;gap:20px }
.calendar-marketing .thin-steps li { padding-left:34px;position:relative;font-size:13px;color:#61728c;line-height:1.6;counter-increment:steps }
.calendar-marketing .thin-steps li:before { content:counter(steps);position:absolute;left:0;top:0;width:23px;height:23px;border:1px solid #cadbf6;border-radius:7px;color:var(--blue);background:#f5f9ff;font-size:11px;font-weight:800;display:grid;place-items:center }
.calendar-marketing .thin-steps b { display:block;color:#273b5a;font-size:14px;margin-bottom:4px }
.calendar-marketing .special-rules { display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;margin-top:30px }
.calendar-marketing .special-rule { border-top:2px solid #cbdcfa;padding-top:17px }
.calendar-marketing .special-rule h3 { font-size:17px }
.calendar-marketing .special-rule p { font-size:13px;margin:0 }
.calendar-marketing .special-rule:nth-child(2) { border-top-color:#a8d4bf }
.calendar-marketing .special-rule:nth-child(3) { border-top-color:#e2cfa8 }
.calendar-marketing .alternation-line { display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:16px;font-size:11px }
.calendar-marketing .alternation-line span { border:1px solid #d9e5f8;border-radius:7px;background:#edf3ff;color:#3f65ab;padding:7px 9px }
.calendar-marketing .alternation-line .holiday { background:#eef8f2;border-color:#c9e3d5;color:#367853 }
.calendar-marketing .main-view-gallery { border:1px solid #d8e3f1;border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 14px 42px #26365808 }
.calendar-marketing .view-gallery-toolbar { padding:19px 23px;display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid #e2e9f3 }
.calendar-marketing .view-gallery-toolbar b { font-size:17px;color:var(--strong) }
.calendar-marketing .view-gallery-toolbar span { font-size:12px;color:#70819a }
.calendar-marketing .view-caption { padding:20px 24px 23px;display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start }
.calendar-marketing .view-caption h3 { font-size:21px;margin:0 }
.calendar-marketing .view-caption p { font-size:13px;line-height:1.65;margin:0 }
.calendar-marketing .view-thumbs { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:15px 20px;background:#f7f9fd;border-top:1px solid #e2e9f3 }
.calendar-marketing .view-thumb { border:1px solid #d8e2f0;border-radius:11px;background:#fff;padding:7px;text-align:left;min-width:0 }
.calendar-marketing .view-thumb img { width:100%;height:90px;object-fit:contain;background:#f7f9fc;border-radius:5px }
.calendar-marketing .view-thumb b { display:block;font-size:12px;line-height:1.45;padding:8px 4px 2px;color:#53667f }
.calendar-marketing .view-thumb[aria-selected=true] { border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:#f0f5ff }
.calendar-marketing .view-thumb[aria-selected=true] b { color:var(--blue-dark) }
.calendar-marketing .subsection { margin-top:72px;padding-top:54px;border-top:1px solid #dce5f2 }
.calendar-marketing .subsection-head { display:grid;grid-template-columns:1.02fr .98fr;gap:55px;align-items:end;margin-bottom:27px }
.calendar-marketing .subsection-head h3 { font-size:31px;line-height:1.13;letter-spacing:-.03em;margin:0 }
.calendar-marketing .subsection-head p { font-size:14px;margin:0 }
.calendar-marketing .lesson-actions-layout { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:34px;align-items:center }
.calendar-marketing .action-list { display:grid;gap:0;border-top:1px solid #dce5f1 }
.calendar-marketing .action-list article { padding:15px 0;border-bottom:1px solid #dce5f1 }
.calendar-marketing .action-list h4 { font-size:15px;color:#263d5e;margin:0 0 6px;line-height:1.45 }
.calendar-marketing .action-list p { font-size:12px;line-height:1.6;margin:0 }
.calendar-marketing .action-list h4 span { color:#8da6cc;margin-right:8px }
.calendar-marketing .availability-legend { display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:23px 0 }
.calendar-marketing .availability-legend>div { border:1px solid #d6e7dd;background:#edf8ef;border-radius:12px;padding:17px 20px;color:#376f4b }
.calendar-marketing .availability-legend>div:nth-child(2) { border-color:#eddfbe;background:#fff7e5;color:#936a20 }
.calendar-marketing .availability-legend>div:nth-child(3) { border-color:#efcece;background:#fff0f0;color:#9c4242 }
.calendar-marketing .availability-legend b { font-size:14px;display:block;margin-bottom:5px }
.calendar-marketing .availability-legend span { font-size:12px;line-height:1.55;display:block }
.calendar-marketing .availability-note { font-size:12px;line-height:1.65;color:#6e7c91;margin-top:15px }
.calendar-marketing .absence-layout { display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:38px;align-items:center }
.calendar-marketing .absence-layout p { font-size:14px }
.calendar-marketing .report-intro { display:grid;grid-template-columns:minmax(0,.67fr) minmax(0,1.33fr);gap:37px;align-items:center }
.calendar-marketing .report-intro h3 { font-size:26px }
.calendar-marketing .report-intro p { font-size:14px }
.calendar-marketing .document-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px }
.calendar-marketing .document-card { background:#fff;border:1px solid #d8e1ed;border-radius:16px;padding:15px;min-width:0;display:flex;flex-direction:column;box-shadow:0 12px 28px #20365806 }
.calendar-marketing .document-card h4 { font-size:17px;line-height:1.35;color:#203754;margin-bottom:10px }
.calendar-marketing .document-card p { font-size:12px;line-height:1.65;margin:0 0 15px }
.calendar-marketing .document-card .doc-formats { display:flex;gap:6px;flex-wrap:wrap;margin-top:auto }
.calendar-marketing .doc-formats span { font-size:10px;font-weight:650;background:#f0f5fe;border:1px solid #dce6f8;border-radius:5px;padding:5px 8px;color:#58739e }
.calendar-marketing .publication-process { display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:38px }
.calendar-marketing .publication-process article { border-top:2px solid #c3d6f7;padding-top:18px }
.calendar-marketing .publication-process small { color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.06em }
.calendar-marketing .publication-process h3 { font-size:20px;margin:11px 0 }
.calendar-marketing .publication-process p { font-size:13px;line-height:1.65;margin:0 }
.calendar-marketing .audience-card { display:grid;grid-template-columns:1fr 210px;gap:23px;align-items:center;background:#fff;border:1px solid #dbe5f4;border-radius:23px;padding:27px;box-shadow:0 17px 40px #2a42690a }
.calendar-marketing .audience-card h3 { font-size:24px }
.calendar-marketing .audience-card p { font-size:13px;line-height:1.6 }
.calendar-marketing .audience-card .phone-wrap { width:195px;max-width:100%;border-width:5px;border-radius:27px;box-shadow:0 19px 40px #13203c20 }
.calendar-marketing .audience-card .phone-wrap img { border-radius:19px }
.calendar-marketing .audience-label { display:inline-flex;font-size:11px;font-weight:700;border:1px solid #d4e1fb;border-radius:100px;padding:6px 10px;background:#edf3ff;color:#245fe8;margin-bottom:17px }
.calendar-marketing .audience-card.teacher { border-color:#cde5d8 }
.calendar-marketing .audience-card.teacher .audience-label { border-color:#c9e8d8;background:#eaf8f0;color:#1e7a54 }
.calendar-marketing .audience-list { list-style:none;padding:0;margin:18px 0 0;display:grid;gap:11px;font-size:12px;color:#667893 }
.calendar-marketing .audience-list li { padding-left:18px;position:relative;line-height:1.5 }
.calendar-marketing .audience-list li:before { content:'✓';color:var(--green);position:absolute;left:0 }
.calendar-marketing .publish-footnote { margin-top:28px;font-size:13px;line-height:1.7;color:#5f7490;padding:17px 21px;background:#f1f6ff;border:1px solid #d8e4f7;border-radius:12px }
.calendar-marketing .closeout { padding:52px 0 }
.calendar-marketing .closeout .cta-band { padding:35px 40px }
.calendar-marketing .closeout .cta-band h2 { font-size:33px }
.calendar-marketing .screen figcaption { font-size:12px }
@media(max-width:1100px) {
.calendar-marketing .audience-card { grid-template-columns:1fr 175px;gap:16px;padding:22px }
.calendar-marketing .audience-card .phone-wrap { width:170px }
.calendar-marketing .audience-card h3 { font-size:21px }
.calendar-marketing .lesson-actions-layout { grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);gap:26px }
.calendar-marketing .action-list article { padding:12px 0 }
.calendar-marketing .home-v2 h2 { font-size:47px }
}
@media(max-width:760px) {
.calendar-marketing .home-v2 { padding:39px 0 }
.calendar-marketing .home-v2 h2 { font-size:34px;line-height:1.13 }
.calendar-marketing .home-subtitle { font-size:18px;margin-top:15px }
.calendar-marketing .home-intro { font-size:14px;margin-bottom:25px }
.calendar-marketing .year-phone-showcase { grid-template-columns:1fr;gap:23px }
.calendar-marketing .year-phone-showcase>aside { display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:center }
.calendar-marketing .year-phone-showcase .phone-wrap { width:164px;border-width:5px;border-radius:24px }
.calendar-marketing .year-phone-showcase .phone-wrap img { border-radius:16px }
.calendar-marketing .device-label { text-align:left;font-size:12px;margin:0 }
.calendar-marketing .device-label b { font-size:15px }
.calendar-marketing .home-benefits { grid-template-columns:1fr;gap:17px;padding-top:21px;margin-top:24px }
.calendar-marketing .home-benefits b { font-size:14px }
.calendar-marketing .home-benefits p { font-size:12px }
.calendar-marketing .main-hero { padding:36px 0 27px }
.calendar-marketing .main-hero h1 { font-size:39px }
.calendar-marketing .main-hero .lead { font-size:16px }
.calendar-marketing .chapter-nav { grid-template-columns:1fr 1fr;gap:15px 10px;padding-top:20px }
.calendar-marketing .chapter-nav a { font-size:11px;gap:8px }
.calendar-marketing .chapter-nav span { width:27px;height:27px;font-size:10px }
.calendar-marketing .chapter { padding:43px 0 48px }
.calendar-marketing .chapter-heading { grid-template-columns:43px minmax(0,1fr);gap:12px;margin-bottom:26px }
.calendar-marketing .chapter-number { width:37px;height:37px;border-radius:11px;font-size:14px }
.calendar-marketing .chapter-heading h2 { font-size:28px;line-height:1.13 }
.calendar-marketing .chapter-heading p { font-size:13px }
.calendar-marketing .chapter-rule { font-size:9px }
.calendar-marketing .assign-layout, .calendar-marketing .absence-layout, .calendar-marketing .report-intro, .calendar-marketing .lesson-actions-layout { grid-template-columns:1fr;gap:25px }
.calendar-marketing .assign-copy h3 { font-size:22px }
.calendar-marketing .assign-copy p { font-size:14px }
.calendar-marketing .thin-steps { gap:15px;margin-top:20px }
.calendar-marketing .special-rules { grid-template-columns:1fr;gap:22px }
.calendar-marketing .special-rule p { font-size:13px }
.calendar-marketing .alternation-line { gap:6px;font-size:10px }
.calendar-marketing .alternation-line span { padding:6px 7px }
.calendar-marketing .main-view-gallery { border-radius:14px }
.calendar-marketing .view-gallery-toolbar { padding:15px 17px;display:block }
.calendar-marketing .view-gallery-toolbar b { font-size:15px }
.calendar-marketing .view-gallery-toolbar span { display:block;font-size:11px;margin-top:7px }
.calendar-marketing .view-caption { display:block;padding:16px 17px }
.calendar-marketing .view-caption h3 { font-size:19px;margin-bottom:9px }
.calendar-marketing .view-caption p { font-size:12px }
.calendar-marketing .view-thumbs { display:flex;overflow-x:auto;padding:12px;gap:8px;scrollbar-width:thin }
.calendar-marketing .view-thumb { width:133px;min-width:133px }
.calendar-marketing .view-thumb img { height:70px }
.calendar-marketing .view-thumb b { font-size:11px }
.calendar-marketing .subsection { margin-top:43px;padding-top:32px }
.calendar-marketing .subsection-head { display:block;margin-bottom:23px }
.calendar-marketing .subsection-head h3 { font-size:27px;margin-bottom:15px }
.calendar-marketing .subsection-head p { font-size:13px }
.calendar-marketing .action-list { display:grid;grid-template-columns:1fr 1fr;gap:0 16px }
.calendar-marketing .action-list h4 { font-size:13px }
.calendar-marketing .action-list h4 span { display:none }
.calendar-marketing .action-list p { font-size:11px }
.calendar-marketing .availability-legend { grid-template-columns:1fr;gap:9px;margin:17px 0 }
.calendar-marketing .availability-legend>div { padding:12px 15px }
.calendar-marketing .availability-legend b { font-size:13px;margin-bottom:3px }
.calendar-marketing .availability-legend span { font-size:11px }
.calendar-marketing .availability-note { font-size:11px }
.calendar-marketing .report-intro h3 { font-size:23px }
.calendar-marketing .document-grid { grid-template-columns:1fr;gap:18px }
.calendar-marketing .document-card h4 { font-size:18px }
.calendar-marketing .document-card p { font-size:13px }
.calendar-marketing .doc-formats span { font-size:11px }
.calendar-marketing .publication-process { grid-template-columns:1fr;gap:22px;margin-bottom:28px }
.calendar-marketing .publication-process h3 { font-size:20px;margin:8px 0 }
.calendar-marketing .publication-process p { font-size:13px }
.calendar-marketing .audience-card { grid-template-columns:minmax(0,1fr) 158px;padding:20px 16px;gap:13px;border-radius:17px }
.calendar-marketing .audience-card h3 { font-size:21px }
.calendar-marketing .audience-card p { font-size:12px }
.calendar-marketing .audience-card .phone-wrap { width:153px;border-width:4px;border-radius:23px }
.calendar-marketing .audience-card .phone-wrap img { border-radius:15px }
.calendar-marketing .audience-list { font-size:11px;gap:9px }
.calendar-marketing .audience-label { font-size:10px;margin-bottom:14px;padding:5px 8px }
.calendar-marketing .publish-footnote { font-size:12px;padding:15px 17px }
.calendar-marketing .closeout { padding:35px 0 }
.calendar-marketing .closeout .cta-band { padding:26px }
.calendar-marketing .closeout .cta-band h2 { font-size:29px }
}
@media(max-width:350px) {
.calendar-marketing .audience-card { grid-template-columns:1fr }
.calendar-marketing .audience-card .phone-wrap { width:210px }
.calendar-marketing .year-phone-showcase>aside { grid-template-columns:1fr }
.calendar-marketing .year-phone-showcase .phone-wrap { width:200px }
.calendar-marketing .device-label { text-align:center }
.calendar-marketing .home-v2 h2 { font-size:31px }
.calendar-marketing .main-hero h1 { font-size:35px }
}
@media(max-width:1000px) {
.calendar-marketing .module-hero-grid { gap:27px }
.calendar-marketing .module-hero-grid h1 { font-size:43px!important }
}
@media(max-width:760px) {
.calendar-marketing .module-hero-grid { grid-template-columns:1fr;gap:30px }
.calendar-marketing .module-hero-grid h1 { font-size:39px!important }
.calendar-marketing .module-hero-grid .lead { font-size:15px!important }
.calendar-marketing .module-hero-image { transform:none }
.calendar-marketing .module-hero-grid .actions { margin-top:22px }
}

.calendar-marketing .actual-screen .screen-box { background:#fff }
.calendar-marketing .actual-screen img { border-radius:0 }
.calendar-marketing .image-crop { display:block;position:relative;overflow:hidden;width:100%;max-width:100%;background:#fff }
.calendar-marketing .image-crop img { position:absolute;max-width:none!important;height:auto!important;object-fit:initial!important;transform:none;filter:none }
.calendar-marketing .image-button { display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in }
.calendar-marketing .module-hero-image { transform:none }
.calendar-marketing .module-hero-image .screen-box { box-shadow:0 18px 42px #1f386817 }
.calendar-marketing .view-thumb .thumb-frame { height:90px;display:flex;align-items:center;overflow:hidden;background:#f7f9fc;border-radius:5px }
.calendar-marketing .view-thumb .thumb-frame>img { height:auto;max-height:90px;object-fit:contain }
.calendar-marketing .view-thumb .image-crop { flex:0 0 100%;border-radius:0 }
.calendar-marketing .calendar-rules-layout { display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:center;gap:44px;margin-top:42px }
.calendar-marketing .calendar-rules-layout .special-rules { grid-template-columns:1fr;margin:0;gap:23px }
.calendar-marketing .calendar-rules-layout .special-rule { padding-top:15px }
.calendar-marketing .assign-layout { align-items:center }
.calendar-marketing .absence-resolution { display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:32px;margin-top:42px;align-items:center;background:#fff;border:1px solid #dce5f2;border-radius:18px;padding:28px }
.calendar-marketing .absence-resolution>div { min-width:0 }
.calendar-marketing .absence-resolution h3 { font-size:24px }
.calendar-marketing .absence-resolution p { font-size:13px;margin-bottom:24px;max-width:540px }
.calendar-marketing .absence-resolution .screen-box { box-shadow:none;padding:5px;border-radius:13px;background:#f6f8fc }
.calendar-marketing .text-only { grid-template-columns:1fr!important }
.calendar-marketing .absence-layout.text-only>div { max-width:830px }
.calendar-marketing .print-layout { display:grid;grid-template-columns:minmax(0,1.26fr) minmax(0,.74fr);gap:42px;align-items:center }
.calendar-marketing .print-layout h3 { font-size:28px }
.calendar-marketing .print-layout p { font-size:14px }
.calendar-marketing .print-layout .audience-list { font-size:13px;gap:13px }
.calendar-marketing .print-layout .screen-box { box-shadow:0 15px 35px #2338510d }
.calendar-marketing .compact-documents { grid-template-columns:repeat(2,minmax(0,1fr)) }
.calendar-marketing .text-document { padding:28px;box-shadow:none;border-top:3px solid #9fbcf5 }
.calendar-marketing .text-document:nth-child(even) { border-top-color:#92c9af }
.calendar-marketing .document-kind { font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.08em;color:#7485a0;margin-bottom:16px }
.calendar-marketing .text-document h4 { font-size:20px;margin:0 0 12px;max-width:430px }
.calendar-marketing .text-document p { font-size:14px;margin-bottom:24px }
.calendar-marketing .text-document .doc-formats span { font-size:11px }
.calendar-marketing .publication-showcase { display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:34px;align-items:start }
.calendar-marketing .publication-settings>h3 { font-size:26px;margin-bottom:12px }
.calendar-marketing .publication-settings>p { font-size:14px;margin-bottom:24px }
.calendar-marketing .publication-settings .screen { max-width:500px }
.calendar-marketing .publication-settings .screen-box { padding:5px;box-shadow:none }
.calendar-marketing .publication-audiences { display:grid;gap:22px }
.calendar-marketing .publication-audiences .audience-card { grid-template-columns:minmax(0,1fr) 200px;padding:25px;gap:20px }
.calendar-marketing .publication-audiences .audience-card .phone-wrap { width:190px }
.calendar-marketing .publication-audiences .teacher { padding:26px 29px;background:linear-gradient(120deg,#f3fbf6,#fff) }
.calendar-marketing .publication-audiences .teacher .audience-list { grid-template-columns:repeat(3,minmax(0,1fr));gap:14px }
.calendar-marketing .publication-audiences .teacher h3 { font-size:25px }
.calendar-marketing .publication-audiences .teacher p { max-width:470px }
@media(max-width:1100px) {
.calendar-marketing .publication-showcase { gap:24px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) }
.calendar-marketing .publication-audiences .audience-card { grid-template-columns:minmax(0,1fr) 170px;padding:21px;gap:15px }
.calendar-marketing .publication-audiences .audience-card .phone-wrap { width:164px }
.calendar-marketing .absence-resolution { gap:22px }
.calendar-marketing .absence-resolution { padding:22px }
.calendar-marketing .publication-audiences .teacher .audience-list { grid-template-columns:1fr;gap:9px }
}
@media(max-width:760px) {
.calendar-marketing .view-thumb .thumb-frame { height:70px }
.calendar-marketing .view-thumb .thumb-frame>img { max-height:70px }
.calendar-marketing .calendar-rules-layout, .calendar-marketing .absence-resolution, .calendar-marketing .print-layout, .calendar-marketing .publication-showcase { grid-template-columns:1fr;gap:26px }
.calendar-marketing .calendar-rules-layout { margin-top:30px }
.calendar-marketing .calendar-rules-layout .special-rules { gap:20px }
.calendar-marketing .absence-resolution { margin-top:27px }
.calendar-marketing .absence-resolution { padding:21px }
.calendar-marketing .absence-resolution h3 { font-size:22px }
.calendar-marketing .absence-resolution p { font-size:13px }
.calendar-marketing .print-layout h3 { font-size:25px }
.calendar-marketing .compact-documents { grid-template-columns:1fr }
.calendar-marketing .text-document { padding:23px }
.calendar-marketing .text-document h4 { font-size:20px }
.calendar-marketing .text-document p { font-size:13px }
.calendar-marketing .publication-settings .screen { max-width:520px;margin:auto }
.calendar-marketing .publication-audiences .audience-card { grid-template-columns:minmax(0,1fr) 153px;padding:20px 16px;gap:13px }
.calendar-marketing .publication-audiences .audience-card .phone-wrap { width:150px }
.calendar-marketing .publication-audiences .teacher { padding:23px }
.calendar-marketing .publication-audiences .teacher h3 { font-size:23px }
}
@media(max-width:350px) {
.calendar-marketing .publication-audiences .audience-card { grid-template-columns:1fr }
.calendar-marketing .publication-audiences .audience-card .phone-wrap { width:210px }
.calendar-marketing .publication-audiences .teacher .audience-list { grid-template-columns:1fr }
}
.calendar-marketing .rearrangement-steps { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:28px }
.calendar-marketing .rearrangement-steps article { position:relative;padding:0 0 0 42px;min-width:0 }
.calendar-marketing .rearrangement-steps article>span { position:absolute;left:0;top:0;display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#eaf1ff;color:#245fe8;font-size:10px;font-weight:750 }
.calendar-marketing .rearrangement-steps h4 { margin:3px 0 10px;font-size:17px;line-height:1.35;color:#0d1730 }
.calendar-marketing .rearrangement-steps p { margin:0;font-size:13px;line-height:1.7 }
.calendar-marketing .rearrangement-steps article+article { border-left:1px solid #dce5f2;padding-left:58px }
.calendar-marketing .rearrangement-steps article+article>span { left:16px }
.calendar-marketing #rearrangements>.event-label { margin-bottom:16px }
.calendar-marketing #rearrangements>.screen .screen-box { box-shadow:0 15px 40px #2338510e }
@media(max-width:760px) {
.calendar-marketing .rearrangement-steps { grid-template-columns:1fr;gap:22px;margin-top:24px }
.calendar-marketing .rearrangement-steps article+article { border-left:0;padding-left:42px }
.calendar-marketing .rearrangement-steps article+article>span { left:0 }
.calendar-marketing .rearrangement-steps h4 { font-size:16px }
}

/* Portal integration and progressive enhancement. */
.calendar-marketing { min-width: 0; background: #fff; }
.calendar-marketing .module-name { margin-bottom: 12px; color: var(--blue); font-size: 18px; font-weight: 750; }
.calendar-marketing .crumb { display: flex; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 13px; }
.calendar-marketing .crumb a:hover { color: var(--blue); }
.calendar-marketing section[id], .calendar-marketing .subsection[id] { scroll-margin-top: 90px; }
.calendar-marketing .view-thumbs { margin: 0 0 24px; }
.calendar-marketing .view-thumb { display: block; }
.calendar-marketing .view-thumb[aria-selected="true"] { border-color: var(--blue); background: var(--blue-soft); box-shadow: 0 0 0 1px var(--blue); }
.calendar-marketing .calendar-view-panel + .calendar-view-panel { margin-top: 28px; }
.calendar-marketing [data-calendar-gallery][data-enhanced] .calendar-view-panel { margin-top: 0; }
.calendar-marketing .image-button:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
.calendar-marketing .screen img, .calendar-marketing .phone-wrap img { width: 100%; height: auto; }
.calendar-marketing [hidden] { display: none !important; }
.calendar-image-dialog { width: min(1440px, 96vw); max-height: 94dvh; padding: 0; border: 1px solid #dce3ee; border-radius: 16px; background: #fff; color: #172033; box-shadow: 0 24px 90px #0004; }
.calendar-image-dialog::backdrop { background: #101b35bf; }
.calendar-image-dialog .calendar-image-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 18px; border-bottom: 1px solid #dce3ee; background: #fff; }
.calendar-image-dialog h2 { margin: 0; font-size: 16px; line-height: 1.4; }
.calendar-image-dialog button { min-width: 44px; min-height: 44px; border: 1px solid #dce3ee; border-radius: 8px; background: #fff; font-size: 26px; }
.calendar-image-dialog button:focus-visible { outline: 3px solid #168a59; outline-offset: 2px; }
.calendar-image-dialog img { display: block; width: auto; max-width: 100%; max-height: calc(94dvh - 90px); margin: 12px auto; object-fit: contain; }
@media (prefers-reduced-motion: reduce) {
  .calendar-marketing *, .calendar-marketing *::before, .calendar-marketing *::after { transition: none !important; }
}

/* Crops are classes, so the existing strict style-src policy stays intact. */
.calendar-marketing .calendar-crop-desktop { aspect-ratio: 2048 / 1244; }
.calendar-marketing .calendar-crop-desktop img { width: 100%; left: 0; top: -2.893890675%; }
.calendar-marketing .calendar-crop-assignment { aspect-ratio: 860 / 752; }
.calendar-marketing .calendar-crop-assignment img { width: 238.139534884%; left: -69.069767442%; top: -37.5%; }
.calendar-marketing .crumb span { margin: 0; color: inherit; }
