/* Readability only: existing composition, headings, imagery and video preserved. */
body{font-size:16px;line-height:1.85}
.eyebrow{font-size:12px}
.hero-copy{font-size:16px;line-height:1.85}
.hero figcaption,.concept figcaption{font-size:13px;color:#665647;line-height:1.8}
.scroll{font-size:11px}
.video-hero .visual-tagline{font-size:16px;line-height:1.8;letter-spacing:.04em;margin-top:15px;color:#3e3028}
.video-hero .visual-copy{padding-top:38px;padding-bottom:27px}
.concept>div>p:not(.eyebrow):not(.lead){font-size:16px;line-height:1.85}
.features .feature-grid article>p:last-child{font-size:16px;line-height:1.85;color:#eee4d9}
.courses .notice{font-size:14px;color:#574738;line-height:1.85}
.courses .course-list p:not(.eyebrow){font-size:16px;line-height:1.85}
.courses .course-list li{font-size:16px;line-height:1.85}
.instructor-grid p:last-child{font-size:16px;line-height:1.85;color:#574738}
.role{font-size:13px;color:#815331}
.portrait-placeholder{color:#665444}
.portrait-placeholder small{font-size:12px}
.muted,.flow .muted{font-size:14px;color:#665444;line-height:1.85}
.flow li p{font-size:16px;line-height:1.85}
.access .text-link{font-size:15px}
.contact p{font-size:16px;line-height:1.85}
.contact .contact-note{font-size:13px;color:#e3d7ca;line-height:1.8}
.line-button small{font-size:12px}
footer .text-link{font-size:14px}
footer>small{font-size:12px;color:#665444}
footer>small span{font-size:11px}
@media(max-width:1000px){.hero-copy{font-size:16px}}
@media(max-width:700px){
  body{font-size:15px}
  .hero-copy{font-size:15px}
  .hero .eyebrow,.visual-copy .eyebrow{font-size:11px}
  .video-hero .visual-copy{padding-top:27px;padding-bottom:23px}
  .video-hero .visual-tagline{font-size:15px;line-height:1.8;letter-spacing:0;margin-top:14px}
  .concept>div>p:not(.eyebrow):not(.lead),.features .feature-grid article>p:last-child,.courses .course-list p:not(.eyebrow),.courses .course-list li,.instructor-grid p:last-child,.flow li p,.contact p{font-size:15px;line-height:1.85}
  .courses .notice{font-size:14px}
  .concept figcaption{font-size:13px;letter-spacing:0}
  .features .feature-grid article:not(:first-child){grid-template-columns:60px minmax(0,1fr);column-gap:16px}
  .features .feature-grid article:not(:first-child) .number{font-size:59px}
  .features .feature-grid article:not(:first-child) h3{text-wrap:balance}
  .courses .course-list article:last-child{padding-inline:20px}
  .flow li{gap:18px}
}
/* Small labels on light backgrounds meet normal-text contrast. */
.learning-space .eyebrow,.concept .eyebrow,.courses .eyebrow,.courses .course-list .eyebrow,.instructors .eyebrow,.flow .eyebrow,.access .eyebrow{color:#795033}
.video-hero .visual-tagline{text-wrap:pretty}

/* Independent COURSES / FLOW transition after temporarily hiding instructors. */
.courses>.section{padding-bottom:72px}
.flow{background:var(--paper)}
.flow>.section{padding-top:76px}
@media(max-width:700px){
  .courses>.section{padding-bottom:48px}
  .flow>.section{padding-top:54px}
}

/* Final separation of FLOW / ACCESS only. */
.flow>.section{padding-bottom:82px}
.access.section{max-width:none;background:#faf7f1;padding:112px max(40px,calc((100% - 1120px)/2));grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);column-gap:65px}
.access iframe{height:410px;max-width:100%}
@media(max-width:900px){.access.section{padding:90px 30px;column-gap:40px}.flow>.section{padding-bottom:72px}}
@media(max-width:600px){.flow>.section{padding-bottom:62px}.access.section{grid-template-columns:minmax(0,1fr);padding:78px 6% 82px;row-gap:36px}.access iframe{height:340px}}

/* Preserve the former button box while enabling the official external link. */
.contact a.line-button{display:inline-block;text-align:center;cursor:pointer}
/* Retain the approved LINE button height after removing its obsolete subnote. */
.contact a.line-button{min-height:96.8px}

/* Safari autoplay remains visible to the browser; poster covers loading/failure. */
.hero-film video{opacity:1}
.hero-film video.is-still{opacity:0}
/* CONTACT: reduce only the space below the unchanged button. */
.contact>.section{padding-bottom:58px}
@media(max-width:600px){.contact>.section{padding-bottom:38px}}

/* CONTACT button interior only: retain width, font, color and external link. */
.contact a.line-button{display:inline-flex;align-items:center;justify-content:center;min-height:0;height:auto;padding-top:23px;padding-bottom:23px;line-height:1.85}
@media(max-width:600px){.contact a.line-button{padding-top:21px;padding-bottom:21px}}

/* Sticky header: keep its normal-flow footprint to prevent content jumps. */
header{position:sticky;top:0;z-index:100;min-height:100px;transition:padding .18s ease,min-height .18s ease}
header .logo{transition:width .18s ease,height .18s ease}
header.is-compact{padding-top:7px;padding-bottom:7px;min-height:76px}
header.is-compact .logo{width:132px;height:61px}
html{scroll-padding-top:118px}
@media(max-width:900px){
 header{position:sticky;min-height:100px}
 header.is-compact{min-height:76px}
 header nav.open{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:600px){
 header{min-height:80px}
 header.is-compact{min-height:66px;padding-top:5px;padding-bottom:5px}
 header.is-compact .logo{width:116px;height:54px}
 html{scroll-padding-top:96px}
 header nav.open{max-height:calc(100dvh - 80px)}
}
@media(prefers-reduced-motion:reduce){header,header .logo{transition:none}}

/* Mobile MENU uses the brand ink instead of the browser's native blue. */
@media(max-width:900px){
  header .menu,header.is-compact .menu{color:var(--ink);-webkit-text-fill-color:var(--ink)}
  header .menu span{color:inherit;-webkit-text-fill-color:inherit}
}

/* Mobile CONCEPT photo aligns with the prose; keep the established crop. */
@media(max-width:700px){.concept figure{margin-inline:0}}

/* Mobile copy breaks only; desktop keeps the original inline wording. */
@media(max-width:600px){
 .concept figure{margin-inline:0}
 .contact h2{font-size:clamp(18px,6.4vw,30px);line-height:1.65}
 .contact .contact-title-line{white-space:nowrap}
 .contact .contact-description .contact-copy-line{display:block}
 .contact .contact-description .contact-line-label{white-space:nowrap}
 .contact .contact-description .contact-desktop-break{display:none}
}
