/* Campaign content uses the existing site typography. Artwork is optional. */
.xm-page{max-width:1180px;margin:auto;padding:64px 28px 88px;line-height:1.8}
.xm-hero{max-width:850px;margin-bottom:36px}.xm-hero h1{font-size:clamp(30px,4.5vw,54px);line-height:1.25;margin:14px 0 22px;font-family:'Noto Serif TC',serif}.xm-hero>p{font-size:18px}
.xm-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;color:#8c2220}.xm-offer{color:#8c2220;font-weight:700;font-size:18px!important}.xm-offer small{display:block;color:#6b6b70;font-size:12px;font-weight:400}
.xm-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.xm-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#b12e2c;color:#fff!important;text-decoration:none;padding:12px 20px;border-radius:6px;font-size:15px;font-weight:600;line-height:1.5}.xm-button:hover{background:#8c2220}.xm-text-link{color:#8c2220;text-underline-offset:4px;font-weight:600;font-size:15px}.xm-button:focus-visible,.xm-text-link:focus-visible{outline:3px solid #db9b41;outline-offset:4px}
.xm-dates{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}.xm-dates>div{padding:22px 26px;border:1px solid #e6e6e8;border-radius:8px;background:#fbf7f6}.xm-dates strong,.xm-dates div>span{display:block}.xm-note{color:#616166;font-size:14px}
.xm-branch{padding:44px 0;border-top:1px solid #e6e6e8;scroll-margin-top:110px}.xm-branch-head{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:36px;margin-bottom:30px}.xm-branch h2,.xm-terms h2,.xm-private h2{font-size:28px;line-height:1.4;margin:8px 0 18px}.xm-courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.xm-course{border:1px solid #e6e6e8;border-radius:8px;padding:24px;display:flex;flex-direction:column;background:white}.xm-course h3{font-size:22px;line-height:1.4;margin:8px 0}.xm-course>p{font-size:14px;line-height:1.8}.xm-course .xm-fee{font-size:19px;font-weight:700;margin-bottom:0;margin-top:auto;padding-top:16px}.xm-fee small{font-weight:400;font-size:12px}.xm-discount{margin:3px 0 12px;color:#8c2220}.xm-course .xm-text-link{margin-top:12px}.xm-contact{font-size:14px;margin:26px 0 0;color:#616166}.xm-contact a{color:inherit}
.xm-poster{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:28px;background:#f4f1ef;border:1px dashed #c9c3bf;border-radius:8px;color:#6b6360;line-height:1.5;width:100%}.xm-poster>strong{font-size:19px;color:#393333}.xm-poster>span:last-child{font-size:12px}.xm-year{letter-spacing:.16em;font-size:13px;font-weight:700}.xm-poster img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain}.xm-poster:has(img){border:0;padding:0;background:transparent}
.xm-terms{padding:36px 0;scroll-margin-top:100px;border-top:1px solid #e6e6e8}.xm-terms ol{padding-left:24px}.xm-terms li{padding-left:6px;margin:0 0 18px;font-size:14px}.xm-private{padding:30px;background:#fbf7f6;border-radius:8px;margin:20px 0 42px}
.xm-announcement{max-width:1180px;margin:38px auto;padding:32px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center;background:#fbf7f6;border:1px solid #e6e6e8;border-radius:8px;line-height:1.7}.xm-announcement h2{font-size:26px;margin:6px 0 12px}.xm-announcement p{margin:8px 0}.xm-announcement .xm-actions{align-items:stretch}.xm-feature{max-width:1180px;margin:48px auto;padding:28px;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:40px;line-height:1.8}.xm-feature h2{font-size:clamp(28px,3.5vw,42px);line-height:1.4}.ncard-media>.xm-poster{height:100%;min-height:210px;border-radius:0}.ncard-media .xm-poster img{height:100%;object-fit:contain}
[hidden]{display:none!important}
@media(max-width:760px){.xm-page{padding:36px 20px 56px}.xm-dates,.xm-branch-head,.xm-feature,.xm-announcement{grid-template-columns:1fr}.xm-courses{grid-template-columns:repeat(2,minmax(0,1fr))}.xm-announcement{margin:24px 20px;padding:24px;gap:16px}.xm-feature{margin:20px auto;gap:22px}.xm-branch-head{gap:22px}.xm-poster{min-height:170px}.xm-button{padding:12px 16px}.xm-announcement .xm-text-link{width:100%}}
@media(max-width:460px){.xm-courses{grid-template-columns:1fr}.xm-dates{gap:10px}.xm-course{padding:22px}.xm-actions .xm-button{flex-grow:1}}
@media print{header,footer,.xm-actions,.xm-poster{display:none!important}.xm-page{padding:0}.xm-courses{grid-template-columns:repeat(3,1fr)}.xm-course{break-inside:avoid}.xm-terms{font-size:11px}}
