/* Approved V3 lesson palette. The public prices, policy copy and interactions stay intact. */
html.v3-lessons { --navy: #294740; --blue: #b8493d; --ice: #f7f2ea; --sky: #e6ede7; --orange: #b8493d; --gold: #c39b54; --snow: #f7f2ea; }
html.v3-lessons [id] { scroll-margin-top: 100px; }
html.v3-lessons .v3-course-area-nav { margin: 0 0 24px; padding: 18px; border: 1px solid var(--line); border-top: 3px solid var(--red); border-radius: 12px; background: var(--white); }
html.v3-lessons .v3-course-area-links { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
html.v3-lessons .v3-course-area-links a { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--washi); color: var(--pine); font-size: 15px; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; }
html.v3-lessons .v3-course-area-links a:is([data-course-target="zao"],[data-course-target="yuzawa"],[data-course-target="myoko"]) { --course-nav-bg: #dfe9ec; --course-nav-border: #bdcdd3; --course-nav-ink: #294754; --course-nav-hover: #294754; }
html.v3-lessons .v3-course-area-links a:is([data-course-target="rules"],[data-course-target="payment-info"]) { --course-nav-bg: #f3e2dd; --course-nav-border: #dbb9b1; --course-nav-ink: #833e34; --course-nav-hover: #a8493c; }
html.v3-lessons .v3-course-area-links a { background: var(--course-nav-bg,var(--washi)); border-color: var(--course-nav-border,var(--line)); color: var(--course-nav-ink,var(--pine)); }
html.v3-lessons .v3-course-area-links a:is(:hover,:focus-visible) { background: var(--course-nav-hover,var(--red)); color: #fff; border-color: var(--course-nav-hover,var(--red)); }
html.v3-lessons .course-area-return { margin-top: 26px; padding: 22px 28px; border-top: 1px solid var(--line); background: var(--white); }
html.v3-lessons :is(.rules,.payment-info)>.course-area-return { padding-inline: 0; padding-bottom: 0; }
html.v3-lessons .v3-course-area-return-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; color: var(--pine); }
html.v3-lessons .v3-course-top { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 16px; border: 1px solid var(--red); border-radius: 7px; color: var(--red); background: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
html.v3-lessons .hero .jump { color: white!important; background: var(--red); border-radius: 7px; padding: 12px 22px; }
html.v3-lessons .v3-core-photo-hero__copy > span { color: var(--muted); font: 400 17px/1.8 var(--sans); }
html.v3-lessons .v3-core-photo-hero__copy { width: min(700px,58%); }
html.v3-lessons .hero h1 { font-size: clamp(34px,3.4vw,50px); }
html.v3-lessons main :is(.intro,.zone,.rules,.payment-info,.course-information-sources,.calculator,.notes .note,.coach-intro,.coach-section-card,.coach-dm,.coach-teaching-gallery,.coach-classroom-site,.coach-profile-card,.coach-stats article,.card,.testimonial-page-pane,.testimonial-managed-info) { background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: none; color: var(--ink); }
html.v3-lessons main .intro { border-top: 3px solid var(--red); padding: 24px; }
html.v3-lessons main .intro :is(b,span) { color: var(--pine); }
html.v3-lessons .zone { border-top: 4px solid var(--red); }
html.v3-lessons .zone-number { color: var(--red); }
html.v3-lessons .zone-top { grid-template-columns: minmax(240px,32%) minmax(0,1fr); }
html.v3-lessons .zone-content { min-width: 0; padding: 28px; }
html.v3-lessons .zone .dm { height: auto; max-height: none; object-fit: contain; }
html.v3-lessons :is(.zone p,.rules-lead) { color: var(--muted); }
/* Keep the previous blue pricing palette inside the V3 page shell. */
html.v3-lessons :is(.table-wrap::before,.mobile-price-unit,.mobile-price-scroll-hint) { color: #4276ad; }
html.v3-lessons .price-table { min-width: 0; background: #fff; border: 2px solid #2458a8; border-radius: 16px; box-shadow: 0 5px 16px #0c4f9814; }
html.v3-lessons .price-table th { background: linear-gradient(180deg,#2e65b2,#234d92); color: #fff!important; border-color: #6490c9; }
html.v3-lessons .price-table td { background: #fff; border-color: #c6ddf3; color: #2455a0!important; }
html.v3-lessons .price-table :is(.resort-name,.day) { color: #2455a0!important; }
html.v3-lessons .price-table :is(.subhead,.price-group-divider) td { background: #e9f4ff!important; color: #2455a0!important; }
html.v3-lessons .mobile-price-group { background: #fff; border-color: #b8d9f0; box-shadow: 0 4px 12px #07366410; }
html.v3-lessons .mobile-price-group h3 { color: #fff; background: linear-gradient(180deg,#2e65b2,#234d92); }
html.v3-lessons :is(.mobile-price-day,.mobile-price-values dd) { color: #2455a0; border-color: #c6ddf3; }
html.v3-lessons .mobile-price-values dt { color: #4276ad; }
html.v3-lessons :is(.mobile-price-row,.mobile-price-values div) { border-color: #e0edf8; }
html.v3-lessons :is(.rules,.payment-info) { margin: 36px 0 0; padding: 30px; }
html.v3-lessons :is(.rules,.payment-info)>h2 { margin: 0 0 22px; color: var(--pine); font: 800 30px/1.4 var(--serif); }
html.v3-lessons :is(.rule,.managed-course-notice,.payment-grid article) { border: 1px solid var(--line); border-radius: 9px; background: var(--white); color: var(--ink); padding: 22px; }
html.v3-lessons .managed-course-notice--featured,html.v3-lessons .managed-course-notice--half-day { border-top: 4px solid var(--red); background: var(--sage); }
html.v3-lessons :is(.rule b,.managed-course-notice h3,.payment-grid h3) { color: var(--red); }
html.v3-lessons :is(.managed-course-notice p,.payment-grid p,.payment-grid li) { color: var(--ink); line-height: 1.85; }
html.v3-lessons .payment-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
html.v3-lessons .payment-grid a { color: var(--red); text-decoration: underline; }
html.v3-lessons .course-information-sources :is(h3,a) { color: var(--red); }
html.v3-lessons .course-information-sources .v3-classroom-source-link { display: inline-block; max-width: 100%; }
html.v3-lessons .v3-classroom-source-logo { display: block; width: 220px; max-width: 100%; height: auto; margin-bottom: 14px; padding: 10px; border-radius: 6px; background: #fff; object-fit: contain; }
html.v3-lessons .calculator { border-top: 4px solid var(--red); }
html.v3-lessons .calculator :is(.form,.result) { min-width: 0; padding: 36px; }
html.v3-lessons .calculator .result { background: #e6ede7; color: var(--pine); border-left: 1px solid var(--line); }
html.v3-lessons .calculator .result h2 { color: var(--pine); }
html.v3-lessons .v3-lesson-icon-title { display: flex; align-items: center; gap: 10px; }
html.v3-lessons .v3-lesson-heading-icon { width: 21px; height: 21px; flex: 0 0 auto; }
html.v3-lessons h2 .v3-lesson-heading-icon { width: 28px; height: 28px; }
html.v3-lessons .calculator :is(.chosen,.per,.includes,.helper) { color: #4d5b56; }
html.v3-lessons .calculator .price { color: var(--red); }
html.v3-lessons .calculator .includes { border-color: #29474030; }
html.v3-lessons .calculator .cta { color: #fff; background: var(--red); }
html.v3-lessons select { color: var(--ink); background-color: var(--white); border-color: var(--line); }
html.v3-lessons :is(a,button,select,input):focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
html.v3-lessons .notes { max-width: none; padding: 0; gap: 18px; }
html.v3-lessons .notes .note { border-top: 3px solid var(--red); }
html.v3-lessons .coach-hero { background: var(--white); color: var(--pine); padding: 56px 40px; border-bottom: 1px solid var(--line); }
html.v3-lessons .coach-hero-inner { max-width: 1160px; grid-template-columns: minmax(220px,320px) minmax(0,1fr); gap: 64px; }
html.v3-lessons .coach-portrait { border: 1px solid var(--line); border-top: 4px solid var(--red); border-radius: 12px; box-shadow: none; }
html.v3-lessons :is(.coach-kicker,.coach-stats b,.coach-teaching-gallery .eyebrow) { color: var(--red); }
html.v3-lessons .coach-tags span { color: var(--pine); background: var(--sage); border: 1px solid var(--line); border-radius: 6px; }
html.v3-lessons .coach-wrap { width: min(1328px,calc(100% - 80px)); max-width: 1328px; margin: 36px auto 0; padding: 0; }
html.v3-lessons .coach-wrap .coach-quick-links a { border-color: var(--line); border-top-color: var(--red); background: var(--white); color: var(--pine); box-shadow: none; }
html.v3-lessons .coach-wrap .coach-quick-links a:nth-child(2) { background: var(--sage); }
html.v3-lessons :is(.coach-story-content,.coach-section-card p,.coach-section-card ul,.coach-dm p,.coach-teaching-gallery .description,.coach-classroom-site-description,.coach-profile-card p) { color: var(--muted)!important; }
html.v3-lessons .coach-story-content blockquote { background: var(--sage); border-color: var(--red); color: var(--pine); }
html.v3-lessons .coach-classroom-site-link { border-radius: 7px; background: var(--red); color: #fff; }
html.v3-lessons .coach-top-link { color: var(--pine); background: var(--white); border-color: var(--line); }
html.v3-lessons .coach-teaching-photo :is(img,figcaption) { background: var(--sage); color: var(--muted); }
html.v3-lessons :is(.testimonial-tabs,.testimonial-page-layout,.testimonial-managed-info) { width: 100%; max-width: none; padding-inline: 0; }
html.v3-lessons .testimonial-managed-info { padding: 24px; }
html.v3-lessons .testimonial-tab { border: 1px solid var(--line); border-radius: 7px; color: var(--pine); background: var(--white); }
html.v3-lessons .testimonial-tab:is(.is-active,:hover) { background: var(--red); color: #fff; border-color: var(--red); }
html.v3-lessons .testimonial-tab { min-height: 72px; gap: 12px; padding: 12px 18px; font-weight: 800; }
html.v3-lessons .testimonial-tab.feedback-link { background: #294754; color: #fff; border-color: #294754; }
html.v3-lessons .testimonial-tab.feedback-link:hover { background: #19333f; border-color: #19333f; }
html.v3-lessons .v3-feedback-tab-icon { flex: 0 0 auto; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 0; background: none; }
html.v3-lessons :is(.testimonial-filter-bar,.testimonial-photo-gallery,.testimonial-coach-reply,.testimonial-chip) { background: var(--sage); color: var(--pine); }
html.v3-lessons :is(.testimonial-filter-bar label,.testimonial-filter-bar input,.testimonial-filter-bar select,.testimonial-byline,.testimonial-body,.testimonial-result-count) { color: var(--muted); }
html.v3-lessons .testimonial-filter-bar :is(input,select) { border-color: var(--line); }
html.v3-lessons .testimonial-coach-reply { border-color: var(--red); }
html.v3-lessons .testimonial-title { color: var(--pine); }
html.v3-lessons .testimonial-lightbox-shell { background: #222; }
html.v3-lessons .testimonial-lightbox::backdrop { background: #191919e6; }
@media(max-width:1100px) {
  html.v3-lessons .v3-course-area-links { gap: 8px; }
  html.v3-lessons .v3-course-area-links a { font-size: 14px; }
  html.v3-lessons .zone-top { grid-template-columns: 1fr; }
  html.v3-lessons .zone .dm { width: 100%; max-height: 380px; background: var(--sage); }
}
@media(max-width:760px) {
  html.v3-lessons .testimonial-tab { gap: 8px; padding: 10px; }
  html.v3-lessons .v3-feedback-tab-icon { width: 20px; height: 20px; }
  html.v3-lessons .v3-course-area-nav { padding: 12px; }
  html.v3-lessons .v3-course-area-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html.v3-lessons .v3-course-area-links a:last-child { grid-column: 1/-1; }
  html.v3-lessons .course-area-return { padding: 18px 16px; }
  html.v3-lessons [id] { scroll-margin-top: 80px; }
  html.v3-lessons .v3-core-photo-hero__copy { width: 100%; }
  html.v3-lessons .hero h1 { font-size: 32px; }
  html.v3-lessons .v3-core-photo-hero__copy > span { font-size: 15px; }
  html.v3-lessons :is(.zone-content,.rules,.payment-info) { padding: 22px 16px; }
  html.v3-lessons .payment-grid { grid-template-columns: 1fr; }
  html.v3-lessons .calculator :is(.form,.result) { padding: 26px 20px; }
  html.v3-lessons .calculator .result { border-left: 0; border-top: 1px solid var(--line); }
  html.v3-lessons .coach-hero { padding: 32px 20px; }
  html.v3-lessons .coach-hero-inner { grid-template-columns: 1fr; gap: 28px; }
  html.v3-lessons .coach-wrap { width: calc(100% - 40px); margin-top: 26px; }
  html.v3-lessons .testimonial-managed-info { margin-inline: 0; padding: 20px; }
}
