.course {
    padding: 108px var(--gutter) 42px;
    background: #f2eae4;
    scroll-margin-top: 0;
}

.course:focus, .course-investment:focus { outline: none; }
.course-inner { max-width: 1640px; margin-inline: auto; }
.course-header { margin-bottom: 52px; }
.course-header h1 { margin: 18px 0 0; font-family: var(--serif); font-size: clamp(64px, 6.5vw, 100px); font-weight: 400; line-height: 1.05; letter-spacing: -.045em; }
.course-intro { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(48px, 6.5vw, 108px); align-items: center; }
.course-visual { min-width: 0; }
.course-photo { position: relative; padding: 0 20px 20px 0; }
.course-photo::before { content: ''; position: absolute; inset: 22px 0 0 22px; border: 1px solid rgb(98 44 59 / 25%); pointer-events: none; }
.course-photo img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.course-visual figcaption { display: flex; gap: 16px; align-items: center; margin-top: 19px; color: var(--muted); font-family: var(--serif); font-size: 23px; font-style: italic; line-height: 1.35; }
.course-visual-line { height: 1px; width: 34px; flex-shrink: 0; background: var(--line); }
.course-kicker { font-size: 11px; font-weight: 600; line-height: 1.7; letter-spacing: .15em; text-transform: uppercase; }
.course-intro-copy { min-width: 0; max-width: 620px; }
.course-intro-copy h2 { margin: 22px 0 26px; font-family: var(--serif); font-size: clamp(48px, 4.6vw, 76px); line-height: 1.02; font-weight: 400; letter-spacing: -.035em; }
.course h2 em { font-weight: 400; }
.course-intro-copy > p:not(.course-kicker), .course-section-heading > p:not(.course-kicker), .course-module-copy p, .course-benefit p, .course-payment-panel > p:not(.course-kicker), .course-payment-methods p, .course-followup-copy > p:not(.course-kicker) { font-size: 16px; line-height: 1.85; color: var(--muted); }
.course-intro-copy > p + p { margin-top: 16px; }
.course-intro-copy > p.course-lead { color: var(--burgundy); }
.course-at-a-glance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 29px 0 0; color: #f2eae4; }
.course-at-a-glance > div { min-width: 0; padding: 24px 22px; border: 1px solid var(--burgundy); border-radius: 7px; background: var(--burgundy); }
.course-at-a-glance dt { margin-bottom: 7px; font-size: 13px; font-weight: 600; line-height: 1.6; }
.course-at-a-glance dd { margin: 0; line-height: 1.5; }
.course-at-a-glance dd:not(.course-summary-details) strong { font-family: var(--serif); font-size: 36px; font-weight: 500; white-space: nowrap; }
.course-at-a-glance dd:not(.course-summary-details) > span { display: block; font-size: 13px; }
.course-at-a-glance .course-summary-details { margin-top: 18px; padding-top: 17px; border-top: 1px solid rgb(242 234 228 / 30%); font-size: 14px; line-height: 1.8; }
.course-location { display: flex; align-items: flex-start; gap: 10px; }
.course-location .icon { font-size: 18px; flex: 0 0 18px; width: 18px; height: 18px; margin-top: 5px; }
.course-location strong { font-weight: 600; }
.course-details-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px; margin-top: 20px; border: 1px solid rgb(242 234 228 / 60%); border-radius: 5px; font-size: 13px; font-weight: 600; line-height: 1.6; }
.course-details-link:hover { background: #f2eae4; color: var(--burgundy); }
.course-details-link:focus-visible { outline-color: #f2eae4; outline-offset: 4px; }

.course-program, .course-benefits { margin-top: 90px; }
.course-section-heading { max-width: 780px; margin-bottom: 30px; }
.course-section-heading h2 { margin: 12px 0 14px; font-family: var(--serif); font-size: clamp(40px, 4vw, 60px); line-height: 1.08; font-weight: 400; letter-spacing: -.03em; }
.course-program { scroll-margin-top: 30px; }
.course-modules { min-width: 0; list-style: none; padding: 0; margin: 0; }
.course-modules:last-child { border-bottom: 1px solid var(--line); }
.course-module { border-top: 1px solid var(--line); }
.course-module summary { display: grid; grid-template-columns: 44px minmax(0, 1fr) 24px; align-items: center; gap: 22px; min-height: 85px; padding: 22px 12px 22px 0; list-style: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.course-module summary::-webkit-details-marker { display: none; }
.course-module summary::marker { content: ''; }
.course-module summary:focus-visible { outline-offset: 3px; }
.course-module-number { font-family: var(--serif); font-size: 32px; font-style: italic; line-height: 1.1; color: var(--muted); }
.course-module h3 { margin: 0; font-family: var(--serif); font-size: 32px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }
.course-module summary:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.course-module-toggle { display: grid; place-items: center; width: 24px; height: 24px; }
.course-module-toggle .icon { width: 100%; height: 100%; font-size: 18px; }
.course-module-toggle .course-module-minus { display: none; }
.course-module[open] .course-module-plus { display: none; }
.course-module[open] .course-module-minus { display: inline-flex; }
.course-module-copy { max-width: 940px; padding: 0 48px 27px 66px; }
.course-schedule { margin-top: 64px; }
.course-schedule-heading { margin: 0 0 22px; font-family: var(--serif); font-size: 32px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }
.course-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.course-day { padding: 32px; border: 1px solid var(--line); background: rgb(255 255 255 / 20%); }
.course-day > .course-kicker { font-size: 16.5px; }
.course-day h4 { margin: 14px 0 17px; font-family: var(--serif); font-size: 34px; font-weight: 500; line-height: 1.15; letter-spacing: -.02em; }
.course-day > p:not(.course-kicker), .course-schedule-note { color: var(--muted); font-size: 16px; line-height: 1.85; }
.course-day-activities { margin: 23px 0 0; padding: 0; list-style: none; }
.course-day-activities li { padding: 13px 0; border-top: 1px solid var(--line); font-size: 16px; line-height: 1.6; }
.course-schedule-note { max-width: 940px; margin-top: 23px; }
.course-benefits-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 44px; row-gap: 34px; list-style: none; padding: 0; margin: 0; }
.course-benefit { border-top: 1px solid var(--line); padding-top: 25px; }
.course-benefit-featured { border-top: 2px solid var(--burgundy); }
.course-benefit-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px; }
.course-benefit-icon { flex: 0 0 26px; width: 26px; height: 26px; margin-top: 4px; font-size: 24px; }
.course-benefit h3 { min-width: 0; margin: 0; font-family: var(--serif); font-size: 29px; font-weight: 500; line-height: 1.15; letter-spacing: -.02em; }

.course-investment { display: grid; grid-template-columns: 1fr 1fr; margin-top: 90px; scroll-margin-top: 28px; }
.course-price-panel { padding: clamp(32px, 4vw, 64px); background: var(--burgundy); color: #f6eee8; }
.course-price-panel h2 { margin: 22px 0 28px; font-family: var(--serif); font-size: clamp(44px, 4.4vw, 68px); font-weight: 400; line-height: 1.02; letter-spacing: -.035em; }
.course-price { font-size: 21px; line-height: 1; white-space: nowrap; }
.course-price > span:first-child { font-family: var(--serif); font-size: clamp(70px, 6.5vw, 100px); font-weight: 400; letter-spacing: -.05em; }
.course-price .course-price-unit { font-size: 13px; }
.course-price-note { margin-top: 18px; font-size: 12px; line-height: 1.7; }
.course-price-format { margin-top: 30px; padding-top: 22px; border-top: 1px solid rgb(246 238 232 / 25%); font-size: 14px; line-height: 1.8; }
.course-price-format p + p { margin-top: 7px; }
.course-payment-panel { padding: clamp(32px, 4vw, 64px); background: #e9dcd3; }
.course-payment-panel h3 { margin: 19px 0 23px; font-family: var(--serif); font-size: clamp(36px, 3.3vw, 50px); line-height: 1.05; font-weight: 400; letter-spacing: -.025em; text-wrap: balance; }
.course-payment-panel h3 span { white-space: nowrap; }
.course-payment-panel strong { color: var(--burgundy); font-weight: 600; }
.course-payment-methods { display: flex; align-items: flex-start; gap: 15px; margin: 24px 0; }
.course-payment-methods .icon { flex: 0 0 24px; width: 24px; height: 24px; font-size: 24px; margin-top: 5px; }
.course-cancellation { padding-top: 23px; border-top: 1px solid var(--line); }
.course-cancellation strong { display: block; margin-bottom: 6px; }
.course-registration { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; padding: 30px clamp(32px, 4vw, 64px); border: 1px solid var(--line); border-top: 0; }
.course-registration-primary { min-width: 0; }
.course-enroll { display: inline-flex; align-items: center; justify-content: center; gap: 15px; max-width: 100%; min-height: 54px; padding: 16px 24px; background: #25d366; color: #073b20; font-size: 14px; font-weight: 600; line-height: 1.5; transition: background .2s ease; }
.course-enroll:hover { background: #20bd5a; }
.course-enroll .icon { font-size: 20px; width: 20px; height: 20px; flex-shrink: 0; }
.course-enroll .course-whatsapp-icon { width: 24px; height: 24px; font-size: 24px; }
.course-enroll .icon:last-child { font-size: 16px; width: 16px; height: 16px; }
.course-registration-primary > p { max-width: 350px; margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.course-contact { justify-self: end; min-width: 0; }
.course-contact > p { margin-bottom: 8px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.course-contact a { display: flex; align-items: center; gap: 12px; width: fit-content; max-width: 100%; min-height: 48px; font-size: 18px; font-weight: 500; line-height: 1.6; }
.course-contact a span { overflow-wrap: anywhere; }
.course-contact a:hover .link-label { text-decoration: underline; text-underline-offset: 4px; }
.course-contact .icon { font-size: 24px; width: 24px; height: 24px; flex-shrink: 0; }

.course-followup { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; padding: 36px 0; margin-top: 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.course-followup-copy { max-width: 730px; }
.course-followup-copy h2 { margin: 11px 0 13px; font-family: var(--serif); font-size: 42px; font-weight: 400; line-height: 1.08; letter-spacing: -.025em; }
.course-followup-price { padding-left: 40px; border-left: 1px solid var(--line); }
.course-followup-price p { margin-bottom: 10px; font-size: 21px; }
.course-followup-price strong { font-family: var(--serif); font-size: 60px; font-weight: 400; line-height: 1; letter-spacing: -.04em; }
.course-followup-price > span { display: block; font-size: 13px; line-height: 1.9; color: var(--muted); }
.course-closing { display: flex; align-items: center; gap: 6px; margin-top: 35px; font-family: var(--serif); font-size: 22px; line-height: 1.5; }
.course-closing > span { margin-left: auto; font-size: 21px; white-space: nowrap; }

@media (min-width: 961px) {
    .course-module-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: clamp(32px, 3.5vw, 60px); }
    .course-modules { border-bottom: 1px solid var(--line); }
}

@media (min-width: 1800px) {
    .course { padding-top: 135px; }
    .course-intro { grid-template-columns: 660px 1fr; gap: 120px; }
}

@media (min-width: 701px) and (max-width: 1100px) {
    .course { padding-top: 90px; }
    .course-intro { gap: 38px; }
    .course-benefits-grid { column-gap: 30px; }
    .course-at-a-glance { grid-template-columns: 1fr; gap: 16px; }
}

@media (min-width: 701px) and (max-width: 960px) {
    .course-intro { align-items: start; }
    .course-intro-copy h2 { margin-top: 18px; font-size: 46px; }
    .course-visual { position: sticky; top: 30px; }
    .course-visual figcaption { align-items: flex-start; font-size: 21px; }
    .course-visual-line { width: 20px; margin-top: 13px; }
    .course-benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-days { gap: 20px; }
    .course-day { padding: 25px 20px; }
    .course-investment { grid-template-columns: .95fr 1.05fr; }
    .course-price-panel, .course-payment-panel { padding: 32px 25px; }
    .course-price .course-price-unit { display: block; margin-top: 10px; }
}

@media (max-width: 700px) {
    .course { padding-top: 66px; padding-bottom: 30px; }
    .course-header { margin-bottom: 30px; }
    .course-header .eyebrow { max-width: 320px; font-size: 10px; line-height: 1.9; }
    .course-header h1 { font-size: clamp(36px, 11.5vw, 74px); margin-top: 16px; line-height: 1.1; white-space: nowrap; }
    .course-intro { grid-template-columns: 1fr; gap: 32px; }
    .course-visual { max-width: 450px; justify-self: center; width: 100%; }
    .course-photo { padding: 0 14px 14px 0; }
    .course-photo::before { inset: 16px 0 0 16px; }
    .course-photo img { aspect-ratio: 1 / 1; object-position: center 20%; }
    .course-visual figcaption { font-size: 21px; gap: 12px; margin-top: 13px; }
    .course-visual-line { width: 22px; }
    .course-intro-copy { max-width: none; }
    .course-intro-copy h2 { margin-top: 17px; margin-bottom: 22px; font-size: clamp(45px, 11.5vw, 62px); }
    .course-at-a-glance { gap: 16px; margin-top: 25px; }
    .course-program, .course-benefits { margin-top: 60px; }
    .course-section-heading { margin-bottom: 26px; }
    .course-section-heading h2 { font-size: 41px; }
    .course-module summary { grid-template-columns: 30px minmax(0, 1fr) 20px; gap: 13px; min-height: 80px; padding: 20px 0; }
    .course-module-number { font-size: 27px; }
    .course-module h3 { font-size: 27px; }
    .course-module-toggle { width: 20px; height: 20px; }
    .course-module-copy { padding: 0 0 24px 43px; }
    .course-schedule { margin-top: 45px; }
    .course-schedule-heading { font-size: 29px; }
    .course-days { grid-template-columns: 1fr; gap: 22px; }
    .course-day { padding: 25px 20px; }
    .course-day h4 { font-size: 31px; }
    .course-benefits-grid { grid-template-columns: 1fr; gap: 24px; }
    .course-benefit { padding-top: 24px; }
    .course-benefit h3 { font-size: 28px; }
    .course-investment { grid-template-columns: 1fr; margin-top: 60px; }
    .course-price-panel, .course-payment-panel { padding: 32px 25px; }
    .course-price-panel h2 { font-size: clamp(30px, 9.7vw, 64px); white-space: nowrap; }
    .course-price > span:first-child { font-size: 78px; }
    .course-price-unit { display: block; margin-top: 10px; }
    .course-price-note { line-height: 1.9; }
    .course-payment-panel h3 { font-size: 38px; }
    .course-registration { grid-template-columns: 1fr; gap: 25px; padding: 28px 25px; }
    .course-enroll { width: 100%; gap: 12px; padding-inline: 15px; }
    .course-contact { justify-self: start; }
    .course-followup { grid-template-columns: 1fr; gap: 23px; margin-top: 30px; padding: 30px 0; }
    .course-followup-copy h2 { font-size: 39px; }
    .course-followup-price { border-left: 0; padding-left: 0; }
    .course-closing { display: block; position: relative; padding-right: 55px; font-size: 20px; margin-top: 26px; }
    .course-closing em { display: block; }
    .course-closing > span { position: absolute; right: 0; top: 0; }
}

@media (max-width: 360px) {
    .course-contact a { font-size: 16px; }
    .course-price-panel, .course-payment-panel, .course-registration { padding-inline: 21px; }
    .course-benefit-heading { gap: 13px; }
    .course-day { padding-inline: 16px; }
}

@media (max-width: 480px) {
    .course-at-a-glance { grid-template-columns: 1fr; }
}
