:root { --ink:#18231f; --forest:#225b49; --forest-dark:#174134; --clay:#a6573f; --paper:#faf8f2; --mist:#edf1ec; --white:#fff; --line:#d8ddd7; --shadow:0 16px 40px rgba(24,35,31,.09); --radius:.35rem; --wrap:min(1180px,calc(100% - 3rem)); --narrow:min(760px,calc(100% - 3rem)); --classroom-workspace:min(100% - 2rem,62rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-wrap:break-word; background:var(--paper); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","Meiryo","Noto Sans JP",sans-serif; font-size:1rem; line-height:1.75; }
img { display:block; max-width:100%; height:auto; }
a { color:var(--forest); text-underline-offset:.2em; }
a:hover { color:var(--clay); }
:where(a,button,input,textarea,select):focus-visible { outline:3px solid var(--clay); outline-offset:4px; }
.screen-reader-text,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:1rem; left:1rem; padding:.7rem 1rem; background:var(--white); color:var(--ink); }
.wrap { width:var(--wrap); margin-inline:auto; }
.narrow { width:var(--narrow); margin-inline:auto; }
h1,h2,h3 { margin-top:0; line-height:1.25; letter-spacing:-.025em; }
h1 { font-size:clamp(2.35rem,6vw,4.75rem); }
h2 { font-size:clamp(1.8rem,4vw,3rem); }
h3 { font-size:clamp(1.2rem,2vw,1.45rem); }
.eyebrow { margin:0 0 .65rem; color:var(--clay); font-size:.76rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.site-header { position:relative; z-index:20; border-bottom:1px solid var(--line); background:rgba(250,248,242,.97); }
.site-header__inner { min-height:5.15rem; display:flex; align-items:center; justify-content:space-between; gap:clamp(1.25rem,3vw,2.5rem); }
.site-branding { min-width:0; }
.site-branding__link { display:flex; min-width:0; align-items:center; gap:clamp(.65rem,1.5vw,1rem); color:var(--ink); text-decoration:none; }
.site-branding__link:hover { color:var(--clay); }
.site-title,.site-footer__title { color:inherit; font-size:1.6rem; font-weight:700; text-decoration:none; letter-spacing:.08em; }
.site-branding .site-title { min-width:0; font-size:clamp(1.15rem,2vw,1.3rem); line-height:1.25; overflow-wrap:anywhere; }
.custom-logo { max-width:min(18rem,32vw); max-height:3.65rem; width:auto; }
.menu,.footer-menu,.social-menu { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem 1.5rem; margin:0; padding:0; list-style:none; }
.primary-nav a { display:block; padding:.75rem .1rem; border-bottom:2px solid transparent; color:var(--ink); font-size:.92rem; font-weight:600; text-decoration:none; }
.primary-nav :is(.current-menu-item,.current-menu-ancestor,.current_page_parent) > a { border-bottom-color:var(--clay); color:var(--clay); }
.nav-toggle { display:none; min-width:3rem; min-height:3rem; border:1px solid var(--ink); border-radius:var(--radius); background:transparent; color:var(--ink); font:inherit; }
.hero { position:relative; display:grid; min-height:clamp(30rem,68vh,44rem); align-items:center; overflow:hidden; background:linear-gradient(120deg,var(--forest-dark),var(--forest)); color:var(--white); isolation:isolate; }
.hero__image { position:absolute; z-index:-3; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; }
.hero__video { position:absolute; z-index:-2; inset:0; overflow:hidden; pointer-events:none; }
.hero__video iframe { position:absolute; top:50%; left:50%; width:max(100vw,177.78vh); min-width:100%; height:max(56.25vw,100vh); min-height:100%; border:0; transform:translate(-50%,-50%); pointer-events:none; }
.hero--position-center-top .hero__image { object-position:center top; }
.hero--position-center-bottom .hero__image { object-position:center bottom; }
.hero--position-left-center .hero__image { object-position:left center; }
.hero--position-right-center .hero__image { object-position:right center; }
.hero--has-image::before,.hero--has-video::before { position:absolute; z-index:-1; inset:0; background:rgba(16,57,44,.62); content:""; }
.hero--overlay-light::before { background:rgba(16,57,44,.48); }
.hero--overlay-strong::before { background:rgba(16,57,44,.74); }
.hero::after { position:absolute; width:min(46vw,38rem); aspect-ratio:1; border:1px solid rgba(255,255,255,.16); border-radius:50%; content:""; right:-8vw; top:50%; transform:translateY(-50%); box-shadow:0 0 0 5rem rgba(255,255,255,.035),0 0 0 10rem rgba(255,255,255,.025); }
.hero__inner { position:relative; z-index:1; padding-block:clamp(4.5rem,9vw,7rem); }
.hero h1 { max-width:12ch; margin-bottom:1rem; }
.hero .eyebrow { color:#e4b9a9; }
.hero__tagline { max-width:38rem; margin:0; font-size:clamp(1.1rem,2vw,1.4rem); }
.hero__copy { max-width:43rem; font-size:clamp(1.05rem,2vw,1.3rem); }
.hero__copy .entry-content { font-size:inherit; }
.hero__copy .entry-content > :last-child { margin-bottom:0; }
.hero__actions { margin-top:2rem; }
.button--light { background:var(--white); color:var(--forest-dark); }
.button--light:hover { background:var(--mist); color:var(--forest-dark); }
.section { padding-block:clamp(3.5rem,6.5vw,6rem); }
.section--intro { background:var(--white); }
.section--muted { background:var(--mist); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.section-heading h2,.archive-header h1 { margin-bottom:0; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.card-grid--1 { grid-template-columns:minmax(0,52rem); }
.card-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.archive-card-grid--1 { grid-template-columns:minmax(0,62rem); }
.archive-card-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.content-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow); }
.content-card { display:flex; flex-direction:column; }
.content-card__media-link { display:block; overflow:hidden; }
.content-card__image { aspect-ratio:4/3; overflow:hidden; background:var(--mist); }
.content-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.content-card__media-link:hover img { transform:scale(1.025); }
.content-card__body { display:flex; flex:1; flex-direction:column; padding:clamp(1.35rem,2.5vw,1.75rem); }
.content-card time { color:#5d6863; font-size:.85rem; }
.content-card h3 { margin:.3rem 0 .6rem; }
.content-card h3 a { color:var(--ink); text-decoration-thickness:.08em; }
.content-card p { margin-block:.45rem .8rem; color:#4d5753; }
.content-card__kicker,.content-card__secondary-name { margin:.2rem 0; color:var(--clay)!important; font-size:.88rem; font-weight:700; letter-spacing:.04em; }
.content-card--teacher .content-card__image { aspect-ratio:4/5; }
.content-card--no-image { border-top:4px solid var(--forest); background:linear-gradient(145deg,var(--white),#f5f4ed); }
.content-card--teacher.content-card--no-image { border-top-color:var(--clay); }
.content-card__summary { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.content-card__cta { align-self:flex-start; margin-top:auto; padding-top:1.1rem; }
.content-card--announcement { box-shadow:none; }
.section--news .content-card__body { padding:1.25rem 1.5rem; }
.card-details { display:flex; flex-wrap:wrap; gap:.7rem 1.25rem; padding-top:.9rem; margin-top:auto; border-top:1px solid var(--line); }
.card-details div { display:grid; gap:.05rem; }
.card-details dt { color:#66716c; font-size:.78rem; font-weight:700; text-transform:uppercase; }
.card-details dd { margin:0; font-size:.85rem; }
.text-link { font-weight:700; }
.button { display:inline-flex; min-height:3rem; align-items:center; justify-content:center; padding:.6rem 1.25rem; border-radius:var(--radius); background:var(--forest); color:var(--white); font-weight:700; text-decoration:none; }
.button:hover { background:var(--forest-dark); color:var(--white); }
.lesson-boundary { text-align:center; }
.section--course + .section--teacher,.section--teacher + .section--learning,.section--learning + .section--news { padding-top:clamp(2.5rem,4vw,3.75rem); }
.lesson-boundary { padding-top:clamp(3rem,5vw,4.5rem); border-top:1px solid var(--line); }
.site-footer { padding-block:clamp(2.5rem,5vw,3.5rem) 1.5rem; background:var(--ink); color:#dce2df; }
.site-footer a { color:var(--white); }
.site-footer__inner { display:grid; grid-template-columns:minmax(0,2fr) minmax(12rem,1fr) 1fr; gap:clamp(1.5rem,4vw,3rem); }
.site-footer__identity { max-width:30rem; }
.site-footer__heading { margin:0 0 1rem; color:#9da9a4; font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.footer-menu,.social-menu { align-items:flex-start; flex-direction:column; gap:.35rem; }
.footer-menu a,.social-menu a { text-decoration:none; }
.site-footer__legal { padding-top:1.5rem; margin-top:1.75rem; border-top:1px solid #43504b; }
.archive-header,.entry-header { margin-bottom:clamp(2rem,5vw,4rem); }
.archive-description { max-width:46rem; }
.entry-summary { color:#4d5753; font-size:1.2rem; }
.entry-label,.entry-display-name { margin:0 0 .5rem; color:var(--clay); font-size:1.05rem; font-weight:700; }
.featured-image { margin:0 0 3rem; }
.featured-image img { width:100%; }
.entry-content { font-size:1.06rem; }
.entry-content > * { margin-block:0 1.5rem; }
.entry-content :where(h2,h3) { margin-top:2.5rem; }
.entry-action { margin-top:2.5rem; }
.entry-details { padding:1.75rem; margin:0 0 2.5rem; border-top:3px solid var(--forest); background:var(--white); }
.entry-overview { margin-bottom:2.5rem; }
.entry-overview > h2 { font-size:clamp(1.5rem,3vw,2rem); }
.entry-booking { padding:clamp(1.5rem,4vw,2.5rem); border:1px solid var(--line); border-left:4px solid var(--clay); background:var(--white); }
.entry-booking h2 { margin-bottom:.5rem; font-size:clamp(1.5rem,3vw,2rem); }
.entry-details h2 { font-size:1.25rem; }
.detail-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:1rem; margin:0; }
.detail-list div { padding-top:.75rem; border-top:1px solid var(--line); }
.detail-list dt { color:#66716c; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.detail-list dd { margin:.2rem 0 0; font-weight:700; }
.single-entry--teacher .single-entry__lead { display:grid; grid-template-columns:minmax(0,1fr) minmax(16rem,22rem); align-items:start; gap:clamp(2rem,4vw,3.5rem); max-width:58rem; margin-inline:auto; margin-bottom:clamp(3rem,6vw,5rem); }
.single-entry--teacher .featured-image { grid-column:2; grid-row:1; margin:0; }
.single-entry--teacher .entry-header { grid-column:1; grid-row:1; }
.single-entry--teacher .featured-image img { max-height:31rem; object-fit:contain; }
.single-entry--teacher .entry-header { margin-bottom:0; padding-top:clamp(.25rem,2vw,1.25rem); }
.single-entry--teacher .single-entry__lead--no-image { display:block; max-width:48rem; }
.teacher-profile__details { margin-top:clamp(1.5rem,4vw,2.25rem); }
.single-entry--teacher > .entry-content,.single-entry--teacher > .entry-details,.single-entry--teacher > .entry-action { max-width:760px; margin-inline:auto; }
.single-entry--teacher > .entry-overview,.single-entry--teacher > .entry-details { max-width:760px; margin-right:auto; margin-left:auto; }
.single-entry--course .single-entry__lead { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr); align-items:center; gap:clamp(2rem,6vw,5rem); margin-bottom:clamp(3rem,6vw,5rem); }
.single-entry--course .entry-header { margin-bottom:0; }
.single-entry--course .featured-image { margin:0; }
.single-entry--course .featured-image img { max-height:34rem; object-fit:cover; }
.single-entry--course .single-entry__lead--no-image { display:block; max-width:52rem; }
.single-entry--course .entry-overview { width:var(--narrow); max-width:100%; margin-right:auto; margin-left:auto; }
.course-hero__details { margin-top:1.75rem; }
.course-hero__booking { margin-top:1.75rem; }
@media (min-width:801px) { .section--course .card-grid--1 .content-card,.section--teacher .card-grid--1 .content-card,.archive-card-grid--1 .content-card:is(.content-card--course,.content-card--teacher) { display:grid; grid-template-columns:minmax(18rem,.9fr) minmax(0,1.1fr); max-width:62rem; } .section--course .card-grid--1 .content-card--no-image,.section--teacher .card-grid--1 .content-card--no-image,.archive-card-grid--1 .content-card--no-image { display:block; max-width:48rem; } .section--course .card-grid--1 .content-card__image,.section--teacher .card-grid--1 .content-card__image,.archive-card-grid--1 .content-card__image { height:100%; aspect-ratio:auto; } .archive-card-grid--1 .content-card--teacher.content-card--has-image { grid-template-columns:minmax(18rem,3fr) minmax(0,5fr); align-items:start; } .archive-card-grid--1 .content-card--teacher .content-card__image { height:auto; aspect-ratio:4/3; } .archive-card-grid--1 .content-card--teacher .content-card__image img { object-fit:contain; background:var(--mist); } .archive-card-grid--1 .content-card--teacher .content-card__body { padding:clamp(1.4rem,2.5vw,2rem); } .archive-card-grid--1 .content-card--teacher .card-details { margin-top:.85rem; padding-top:.85rem; } .archive-card-grid--1 .content-card--teacher .content-card__cta { margin-top:.15rem; padding-top:.85rem; } }
@media (max-width:800px) { .archive-card-grid--1 .content-card--teacher .content-card__image { aspect-ratio:4/3; } .archive-card-grid--1 .content-card--teacher .content-card__image img { object-fit:contain; background:var(--mist); } }
.empty-state { padding:2rem; border-left:4px solid var(--clay); background:var(--white); }
.topic-list { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 2rem; padding:0; list-style:none; }
.topic-list li { padding:.25rem .7rem; border-radius:2rem; background:var(--mist); font-size:.85rem; }
.video { position:relative; aspect-ratio:16/9; margin-bottom:2.5rem; }
.video iframe { width:100%; height:100%; border:0; }
.learning-filters { display:flex; align-items:end; flex-wrap:wrap; gap:.75rem 1.25rem; margin-bottom:2.5rem; }
.learning-filters label { display:grid; gap:.35rem; font-weight:700; }
.learning-filters select { min-width:12rem; min-height:3rem; padding:.55rem 2.25rem .55rem .75rem; border:1px solid #76817c; border-radius:var(--radius); background:var(--white); color:var(--ink); font:inherit; }
.learning-filters__count { margin-left:auto; color:#5d6863; font-size:.9rem; }
.learning-featured { padding-bottom:clamp(3rem,6vw,5rem); margin-bottom:clamp(3rem,6vw,5rem); border-bottom:1px solid var(--line); }
.nav-links { display:flex; justify-content:center; flex-wrap:wrap; gap:.65rem; margin-top:3rem; }
.nav-links .page-numbers { display:inline-flex; min-width:2.75rem; min-height:2.75rem; align-items:center; justify-content:center; padding:.35rem .65rem; }
.nav-links .current { border-radius:var(--radius); background:var(--forest); color:var(--white); }
.pagination ul { display:flex; justify-content:center; flex-wrap:wrap; gap:.65rem; margin:3rem 0 0; padding:0; list-style:none; }
.pagination .page-numbers { display:inline-flex; min-width:2.75rem; min-height:2.75rem; align-items:center; justify-content:center; padding:.35rem .65rem; }
.pagination .current { border-radius:var(--radius); background:var(--forest); color:var(--white); }
.news-list { display:grid; border-top:1px solid var(--line); }
.news-list__item { display:grid; grid-template-columns:minmax(10rem,14rem) 1fr; gap:clamp(1.5rem,4vw,3rem); padding-block:2rem; border-bottom:1px solid var(--line); }
.news-list__item:not(:has(.news-list__image)) { grid-template-columns:1fr; }
.news-list__image img { width:100%; height:100%; max-height:12rem; object-fit:cover; }
.news-list time,.news-entry time { color:#5d6863; font-size:.88rem; }
.news-list h2 { margin:.35rem 0 .5rem; font-size:clamp(1.45rem,3vw,2rem); }
.news-list p { max-width:48rem; color:#4d5753; }
.news-entry .entry-header h1 { margin-top:.5rem; }
.booking-options { padding-top:clamp(3rem,7vw,6rem); }
.booking-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.booking-card { padding:clamp(1.5rem,4vw,2.25rem); border:1px solid var(--line); border-top:4px solid var(--forest); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow); }
.booking-card .detail-list { margin:1.5rem 0; }
.booking-card__actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:1.5rem; }
.contact-form { display:grid; gap:1.25rem; padding:clamp(1.5rem,5vw,3rem); margin-top:2.5rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow); }
.contact-form__required { margin:0; color:#5d6863; font-size:.9rem; }
.form-field { display:grid; gap:.4rem; }
.form-field label { font-weight:700; }
.form-field input,.form-field textarea { width:100%; min-height:3rem; padding:.75rem; border:1px solid #76817c; border-radius:.25rem; background:var(--white); color:var(--ink); font:inherit; }
.form-field textarea { min-height:11rem; resize:vertical; }
.form-field input:focus,.form-field textarea:focus { outline:3px solid rgba(165,78,53,.3); outline-offset:2px; border-color:var(--clay); }
.contact-form .button { justify-self:start; border:0; font:inherit; cursor:pointer; }
.contact-form__trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-notice { padding:1rem 1.25rem; margin-top:2rem; border-left:4px solid var(--clay); background:var(--white); }
.form-notice--success { border-left-color:var(--forest); }
@media (max-width:800px) { .site-header__inner { gap:1rem; } .site-branding { flex:1; } .site-branding__link { width:fit-content; max-width:100%; } .custom-logo { flex:none; max-width:min(10rem,28vw); } .nav-toggle { display:inline-flex; flex:none; align-items:center; justify-content:center; } .primary-nav { display:none; position:absolute; top:100%; left:0; width:100%; padding:1rem 1.5rem 2rem; border-bottom:1px solid var(--line); background:var(--paper); } .nav-open .primary-nav { display:block; } .primary-nav .menu { display:block; } .primary-nav a { min-height:3rem; padding:.7rem; border-bottom:1px solid var(--line); } .card-grid:not(.card-grid--1) { grid-template-columns:repeat(2,minmax(0,1fr)); } .site-footer__inner { grid-template-columns:1fr 1fr; } .single-entry--teacher .single-entry__lead { grid-template-columns:minmax(0,1fr) minmax(13rem,18rem); gap:clamp(1.5rem,4vw,2rem); } .single-entry--course .single-entry__lead { grid-template-columns:1fr; } }
@media (max-width:560px) { :root { --wrap:min(100% - 2rem,1180px); --narrow:min(100% - 2rem,760px); } h1 { font-size:clamp(2rem,11vw,3rem); } .site-header__inner { min-height:4.5rem; gap:.75rem; } .site-footer__title { font-size:1.3rem; } .site-branding__link { gap:.55rem; } .site-branding .site-title { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:clamp(1rem,4.5vw,1.15rem); } .custom-logo { max-width:min(7rem,24vw); max-height:3rem; } .hero { min-height:30rem; } .hero::after { opacity:.45; } .card-grid,.card-grid:not(.card-grid--1) { grid-template-columns:1fr; } .section-heading { display:block; } .section-heading .text-link { display:inline-block; margin-top:1rem; } .site-footer__inner { grid-template-columns:1fr; } .single-entry--teacher .single-entry__lead { display:flex; flex-direction:column; } .single-entry--teacher .entry-header { order:1; padding-top:0; } .single-entry--teacher .featured-image { order:2; width:min(100%,22rem); } .booking-grid,.news-list__item { grid-template-columns:1fr; } .news-list__image img { max-height:16rem; } .learning-filters { align-items:stretch; } .learning-filters label,.learning-filters select,.learning-filters .button { width:100%; } .learning-filters__count { width:100%; margin-left:0; } }
@media (max-width:560px),(prefers-reduced-motion:reduce) { .hero__video { display:none; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { scroll-behavior:auto; transition-duration:.01ms; animation-duration:.01ms; animation-iteration-count:1; } }

/* Book, Contact, footer, and shared interaction polish. */
a { text-decoration-thickness:.08em; transition:color .18s ease,text-decoration-color .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.text-link { text-decoration-thickness:.1em; }
.button { border:1px solid transparent; transition:color .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease; }
.content-card { transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.content-card:hover,.content-card:focus-within { border-color:#b6c0b9; box-shadow:0 18px 42px rgba(24,35,31,.12); transform:translateY(-2px); }

.booking-options { padding-top:clamp(3rem,6vw,5rem); }
.booking-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.booking-grid--1 { grid-template-columns:minmax(0,62rem); }
.booking-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.booking-card { display:flex; min-width:0; flex-direction:column; padding:0; overflow:hidden; }
.booking-card__media { display:block; overflow:hidden; }
.booking-card__image { width:100%; aspect-ratio:16/9; object-fit:cover; }
.booking-card__body { display:flex; flex:1; flex-direction:column; padding:clamp(1.5rem,3vw,2.25rem); }
.booking-card h3 { margin:.25rem 0 .75rem; }
.booking-card__summary { color:#4d5753; }
.booking-card__summary > :last-child { margin-bottom:0; }
.booking-card .detail-list { margin:1.5rem 0 0; }
.booking-card__actions { margin-top:auto; padding-top:1.5rem; }
.booking-card__handoff { margin:.75rem 0 0; color:#66716c; font-size:.82rem; }
.empty-state > :first-child { margin-top:0; }
.empty-state > :last-child { margin-bottom:0; }

.contact-form__row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.form-notice { border:1px solid #dbc5bd; border-left:4px solid var(--clay); background:#fff9f6; }
.form-notice--success { border-color:#b9cdc5; border-left-color:var(--forest); background:#f4faf7; }

.site-footer { padding-block:clamp(2rem,4vw,2.75rem) 1.25rem; }
.site-footer a:hover { color:#e4b9a9; }
.site-footer__inner { grid-template-columns:minmax(0,2fr) repeat(auto-fit,minmax(11rem,1fr)); align-items:start; }
.site-footer__tagline { max-width:34rem; margin:.55rem 0 0; color:#bdc7c2; }
.footer-menu a,.social-menu a { display:inline-block; min-height:2.5rem; padding-block:.3rem; text-decoration-thickness:.08em; }
.site-footer__legal { padding-top:1.25rem; margin-top:1.25rem; }

@media (min-width:801px) { .booking-grid--1 .booking-card--has-image { display:grid; grid-template-columns:minmax(18rem,.9fr) minmax(0,1.1fr); max-width:62rem; } .booking-grid--1 .booking-card__media,.booking-grid--1 .booking-card__image { height:100%; } .booking-grid--1 .booking-card__image { aspect-ratio:auto; } }
@media (max-width:800px) { .booking-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .booking-grid,.contact-form__row { grid-template-columns:1fr; } .booking-card__actions { align-items:stretch; flex-direction:column; } .booking-card__actions .button { width:100%; } .booking-card__actions .text-link { align-self:flex-start; min-height:2.75rem; padding-block:.45rem; } .contact-form .button { width:100%; } }
@media (prefers-reduced-motion:reduce) { .content-card:hover,.content-card:focus-within { transform:none; } }

/* Invite-only Student pages retain the public visual system without resembling wp-admin. */
.student-nav{display:flex;gap:1rem;font-size:.9rem}.student-portal{background:var(--color-cream,#f7f0df);padding:clamp(3rem,8vw,6rem) 1rem;min-height:60vh}.student-portal__card{max-width:48rem;margin:auto;padding:clamp(1.5rem,5vw,3rem);background:#fff;border:1px solid rgba(27,67,50,.18);box-shadow:0 1rem 3rem rgba(27,67,50,.08)}.student-form{display:grid;gap:1rem}.student-form p{margin:0}.student-form label{display:block;font-weight:700;margin-bottom:.35rem}.student-form input:not([type=checkbox]),.student-portal input:not([type=checkbox]){width:100%;min-height:3rem;padding:.65rem;border:1px solid #557064;border-radius:.2rem}.student-form input:focus,.student-portal input:focus{outline:3px solid #b85c38;outline-offset:2px}.student-notice{padding:1rem;margin-bottom:1.5rem;border-left:4px solid #b85c38;background:#fff5ef}.student-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-block:1.5rem}.student-courses article{padding:1.25rem;border:1px solid rgba(27,67,50,.2);background:#fbf8ef}.lms-dashboard__courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-block:1.5rem}.lms-course-card{padding:1.25rem;border:1px solid rgba(27,67,50,.2);background:#fbf8ef}.lms-course-card__actions{display:flex;flex-wrap:wrap;gap:.75rem}.lms-course-card__actions .button{min-height:2.75rem;display:inline-flex;align-items:center}@media(max-width:800px){.student-nav{width:100%;justify-content:flex-end}}@media(max-width:480px){.lms-dashboard__courses{grid-template-columns:1fr}.lms-course-card__actions .button{width:100%;justify-content:center}}

/* Enrollment-controlled Course workspace. */
.classroom{min-height:60vh;padding:clamp(2.5rem,7vw,5.5rem) 0;background:var(--paper)}.classroom__inner{width:var(--classroom-workspace);margin-inline:auto}.classroom__breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin-bottom:clamp(2rem,5vw,3.5rem);font-size:.9rem}.classroom__header{max-width:48rem}.classroom__header h1{margin-bottom:.5rem}.classroom__label{margin:0;color:#4d5753;font-size:clamp(1.1rem,2vw,1.3rem)}.classroom__status,.student-course-status{display:inline-block;padding:.3rem .7rem;border-radius:2rem;background:#e3ece6;color:var(--forest-dark);font-size:.82rem;font-weight:700}.classroom__sections{display:flex;margin-block:clamp(2rem,5vw,3rem);border-bottom:1px solid var(--line)}.classroom__sections a{min-height:3rem;padding:.7rem 1rem;border-bottom:3px solid var(--clay);font-weight:700;text-decoration:none}.classroom__layout{display:grid;grid-template-columns:minmax(13rem,18rem) minmax(0,1fr);align-items:start;gap:clamp(2rem,6vw,5rem)}.classroom__information{padding:1.4rem;border-top:3px solid var(--forest);background:var(--white)}.classroom__information h2,.classroom__home h2{font-size:clamp(1.35rem,3vw,1.75rem)}.classroom__information .detail-list{grid-template-columns:1fr}.classroom__home{min-width:0}.classroom__intro{font-size:1.08rem}@media(max-width:700px){.classroom__layout{grid-template-columns:1fr}.classroom__information{order:2}.classroom__sections a{width:100%}}
.classroom__discussion{min-width:0;margin-top:2rem}.classroom__discussion-intro{max-width:46rem;color:#52615b}.classroom__notice{padding:1rem 1.15rem;border:1px solid rgba(165,79,50,.25);border-left:.25rem solid #a54f32;border-radius:.3rem;background:#fff}.sanbonjuku-topic__back{display:inline-flex;align-items:center;min-height:2.75rem;margin-bottom:1rem;font-weight:700}.sanbonjuku-topic__header{padding:clamp(1.25rem,4vw,2rem);margin-bottom:1.25rem;border:1px solid rgba(24,55,45,.18);border-top:4px solid var(--forest);border-radius:.45rem;background:#fff}.sanbonjuku-topic__header h2{margin:.2rem 0 .75rem;overflow-wrap:anywhere;font-size:clamp(1.65rem,4vw,2.4rem)}.sanbonjuku-topic__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem 1rem;color:#586760;font-size:.9rem}.sanbonjuku-topic__badge{display:inline-block;padding:.18rem .55rem;border:1px solid #b98b79;border-radius:2rem;background:#f7ece8;color:#713724;font-size:.78rem;font-weight:700}
/* Sanbonjuku-owned Course discussion components. */
.discussion-workspace{width:var(--classroom-workspace);margin-inline:auto}.discussion-workspace :is(.classroom__discussion,.sanbonjuku-topic__header,.discussion-surface,.discussion-list,.discussion-list__items,.discussion-card,.discussion-conversation,.discussion-posts,.discussion-post,.discussion-form){box-sizing:border-box;width:100%;max-width:none}.discussion-workspace .discussion-surface{color:var(--ink,#18372d)}
.discussion-list__items{display:grid;gap:.85rem;padding:0;margin:1.25rem 0;list-style:none}.discussion-card{padding:1.25rem;border:1px solid rgba(24,55,45,.18);border-radius:.45rem;background:#fff}.discussion-card--pinned{border-left:4px solid var(--clay,#a54f32);background:#fffaf3}.discussion-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.discussion-card h3{margin:0;font-size:clamp(1.08rem,2vw,1.3rem)}.discussion-card h3 a{color:var(--forest-dark,#18372d);overflow-wrap:anywhere;text-underline-offset:.2em}.discussion-card__byline,.discussion-card__activity{margin:.55rem 0 0;color:#586760;font-size:.9rem}.discussion-badges{display:flex;flex-wrap:wrap;gap:.35rem}.discussion-badges span,.discussion-author__badge{padding:.18rem .55rem;border:1px solid #b98b79;border-radius:2rem;background:#f7ece8;color:#713724;font-size:.78rem;font-weight:700;white-space:nowrap}
.discussion-posts{display:grid;gap:1rem}.discussion-post{min-width:0;padding:clamp(1rem,3vw,1.4rem);border:1px solid rgba(24,55,45,.18);border-radius:.45rem;background:#fff}.discussion-post:first-child{border-top:4px solid var(--forest)}.discussion-post__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid #dce4df;color:#586760;font-size:.88rem}.discussion-author{display:flex;align-items:center;gap:.75rem;color:var(--forest-dark)}.discussion-author__avatar{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:#e4ede7;font-size:1.1rem;font-weight:700}.discussion-author__identity{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.discussion-post__content{padding-top:.8rem;line-height:1.7;overflow-wrap:anywhere}.discussion-post__content pre{max-width:100%;padding:1rem;overflow:auto;background:#f2f4f0;white-space:pre-wrap}.discussion-post__content code,.discussion-post__content a{overflow-wrap:anywhere}.discussion-post__content blockquote{padding-left:1rem;margin-inline:0;border-left:3px solid var(--clay)}
.discussion-form{padding:clamp(1.25rem,4vw,2rem);margin-top:2rem;border:1px solid rgba(24,55,45,.18);border-top:4px solid var(--forest);border-radius:.45rem;background:#fff}.discussion-form h3{margin-top:0}.discussion-form label{display:block;margin-bottom:.35rem;font-weight:700}.discussion-form input,.discussion-form textarea{box-sizing:border-box;width:100%;padding:.75rem;border:1px solid #65776f;border-radius:.25rem;background:#fff;font:inherit}.discussion-form textarea{min-height:11rem;resize:vertical}.discussion-form button{min-height:2.75rem;padding:.65rem 1rem;border:1px solid var(--forest);border-radius:.25rem;background:var(--forest);color:#fff;font:inherit;font-weight:700;cursor:pointer}.discussion-empty,.discussion-surface .bbp-template-notice{padding:1rem;margin:1rem 0;border:1px solid #b9cdc5;border-left:4px solid var(--forest);border-radius:.3rem;background:#f4faf7}.discussion-surface .bbp-template-notice.error{border-color:#d2aa9b;border-left-color:var(--clay);background:#fff6f2}.discussion-pagination{display:flex;flex-wrap:wrap;gap:.35rem;margin:1.25rem 0}.discussion-pagination .page-numbers{display:inline-grid;place-items:center;min-width:2.75rem;min-height:2.75rem;padding:.25rem;border:1px solid #9aaca4;border-radius:.25rem;background:#fff;text-decoration:none}.discussion-pagination .current{border-color:var(--forest);background:var(--forest);color:#fff;font-weight:700}.discussion-surface :is(a,input,textarea,button):focus-visible,.sanbonjuku-topic__back:focus-visible{outline:3px solid #c76a48;outline-offset:3px}
@media(max-width:48rem){.classroom__sections{overflow-x:auto}.discussion-card__header,.discussion-post__header{align-items:flex-start;flex-direction:column}.discussion-form{padding:1rem}.discussion-form button{width:100%}}
@media(prefers-reduced-motion:reduce){.discussion-surface a,.discussion-surface button{transition:none!important}}

/* Private profile/account screens and owned discussion photos. */
.discussion-author__avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.profile-app{min-height:60vh;padding:clamp(2.5rem,7vw,5rem) 1rem}.profile-app__inner{width:min(100%,58rem);margin:auto}.profile-form{display:grid;gap:1.25rem}.profile-panel{padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--line);border-top:3px solid var(--forest);background:var(--white)}.profile-panel h2{margin-top:0}.profile-summary{display:flex;align-items:center;gap:1.5rem}.profile-photo-preview,.profile-preview__avatar{display:grid;place-items:center;width:7rem;height:7rem;flex:0 0 7rem;border-radius:50%;overflow:hidden;background:#e4ede7;color:var(--forest-dark);font-size:2.5rem;font-weight:700}.profile-photo-preview img,.profile-preview__avatar img{width:100%;height:100%;object-fit:cover}.profile-form label{display:block;margin-bottom:.4rem;font-weight:700}.profile-form :is(input:not([type=checkbox]),textarea,select){width:100%;min-height:3rem;padding:.7rem;border:1px solid #65776f;border-radius:.25rem;background:#fff;font:inherit}.profile-form textarea{resize:vertical}.profile-form :is(input,textarea,select,button):focus-visible{outline:3px solid #c76a48;outline-offset:3px}@media(max-width:32rem){.profile-summary{align-items:flex-start;flex-direction:column}.profile-photo-preview,.profile-preview__avatar{width:6rem;height:6rem;flex-basis:6rem}.profile-form .button{width:100%}}

/* Shared authenticated LMS shell. Restored after the Profile/Account merge dropped the portal rules. */
/* Private frontend LMS management workspace. */
.lms-portal{min-height:65vh;padding:clamp(2.5rem,7vw,5rem) 0;background:var(--paper,#f7f0df)}.lms-portal__inner{width:min(100% - 2rem,74rem);margin:auto}.lms-local-nav,.lms-tabs,.lms-breadcrumb,.lms-actions,.lms-inline-form,.lms-pagination{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1rem}.lms-local-nav{padding:1rem 1.25rem;margin-bottom:2rem;background:var(--forest,#18372d)}.lms-local-nav a{color:#fff;font-weight:700}.lms-local-nav a[aria-current=page]{text-decoration-thickness:.2em;text-decoration-color:#d98161}.lms-local-nav a:last-child{margin-left:auto}.lms-breadcrumb{margin-bottom:2rem;font-size:.9rem}.lms-course-header{max-width:50rem}.lms-course-header h1{margin-bottom:.3rem}.lms-tabs{overflow-x:auto;margin:1.5rem 0 2rem;border-bottom:1px solid var(--line)}.lms-tabs a{flex:none;min-height:3rem;padding:.75rem .9rem;color:var(--forest-dark);font-weight:700;text-decoration:none}.lms-tabs a[aria-current=page]{border-bottom:4px solid var(--clay,#a54e35)}.lms-panel{padding:clamp(1.25rem,4vw,2rem);margin:0 0 1.5rem;border:1px solid rgba(24,55,45,.18);border-top:4px solid var(--forest,#18372d);background:#fff;box-shadow:0 .75rem 2rem rgba(24,55,45,.06)}.lms-panel h2{margin-top:0}.lms-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.lms-facts div{padding:1rem;background:#fff}.lms-facts dt{font-weight:700}.lms-facts dd{margin:.35rem 0 0}.lms-actions{margin-top:1.5rem}.lms-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}.lms-form p{display:grid;gap:.35rem;margin:0}.lms-form p:has(textarea),.lms-form fieldset,.lms-form>button,.lms-form+.lms-help{grid-column:1/-1}.lms-form label,.lms-form legend{font-weight:700}.lms-form input:not([type=checkbox]),.lms-form select,.lms-form textarea,.lms-invite-secret input{box-sizing:border-box;width:100%;min-height:2.8rem;padding:.65rem;border:1px solid #65776f;border-radius:.2rem;font:inherit}.lms-form textarea{resize:vertical}.lms-form fieldset{display:grid;gap:.5rem;padding:1rem;border:1px solid var(--line)}.lms-form button{justify-self:start}.lms-table-wrap{overflow-x:auto}.lms-panel table{width:100%;border-collapse:collapse}.lms-panel th,.lms-panel td{padding:.75rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.lms-panel th{background:#eef3ed}.lms-inline-form select,.lms-inline-form button,.lms-action-form button{min-height:2.5rem}.lms-action-form{display:inline}.lms-notice,.lms-invite-secret{padding:1rem 1.25rem;margin-bottom:1.5rem;border-left:4px solid var(--forest);background:#fff}.lms-notice--error{border-color:var(--clay)}.lms-invite-secret{display:grid;gap:.75rem;border-color:var(--clay)}.lms-help{color:#52615b}.lms-pagination{justify-content:center;margin-top:1rem}.lms-form input:focus,.lms-form select:focus,.lms-form textarea:focus,.lms-tabs a:focus,.lms-local-nav a:focus{outline:3px solid #c76a48;outline-offset:3px}
@media(max-width:768px){.lms-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.lms-form{grid-template-columns:1fr}.lms-form>*{grid-column:1}.lms-local-nav a:last-child{margin-left:0}}@media(max-width:480px){.lms-facts{grid-template-columns:1fr}.lms-local-nav{align-items:stretch;flex-direction:column}.lms-actions .button,.lms-form button{width:100%;justify-content:center}.lms-panel{padding:1rem}.lms-panel th,.lms-panel td{padding:.65rem}}

/* Frontend LMS workspace polish (Theme 1.13.1). */
.lms-portal__inner,.student-portal__card:has(.lms-dashboard){width:min(100% - 2rem,76rem);max-width:76rem}.lms-local-nav{gap:.25rem;padding:.45rem .6rem;border-radius:.35rem;box-shadow:0 .35rem 1rem rgba(17,42,33,.12)}.lms-local-nav a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.45rem .75rem;border-radius:.2rem;text-decoration:none}.lms-local-nav a:hover,.lms-local-nav a[aria-current=page]{background:rgba(255,255,255,.13)}.lms-local-nav a[aria-current=page]::before{content:"";width:.4rem;height:.4rem;margin-right:.5rem;border-radius:50%;background:var(--clay,#d98161)}.lms-local-nav__logout,.lms-local-nav a:last-child{margin-left:auto;font-weight:500}.lms-course-header{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;max-width:none}.lms-course-header__label{margin:0;color:#4d5753;font-size:1.1rem}.lms-tabs{flex-wrap:nowrap;gap:.25rem;scrollbar-width:thin}.lms-tabs a{border-bottom:4px solid transparent}.lms-tabs a:hover{background:rgba(24,55,45,.06)}.lms-tabs a[aria-current=page]{background:#fff}.lms-panel{border-radius:.35rem}.lms-form{display:block;max-width:58rem}.lms-form>p,.lms-form>fieldset,.lms-form>.lms-form__row,.lms-form>.lms-featured-image{margin:0 0 1.25rem}.lms-form__heading{margin:2rem 0 .8rem;padding-bottom:.45rem;border-bottom:1px solid var(--line);color:var(--forest-dark);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.lms-form__heading:first-of-type{margin-top:.5rem}.lms-form__row{display:grid;gap:1rem 1.25rem}.lms-form__row--two{grid-template-columns:repeat(2,minmax(0,1fr))}.lms-form__row--three{grid-template-columns:repeat(3,minmax(0,1fr))}.lms-featured-image img{display:block;width:auto;max-width:min(100%,16rem);height:auto;margin-bottom:.75rem;border-radius:.25rem}.lms-quiet-link{font-weight:700}.lms-status{display:inline-block;padding:.25rem .65rem;border:1px solid #9aaca4;border-radius:2rem;background:#eef3ed;color:var(--forest-dark);font-size:.82rem;font-weight:700}.lms-status--suspended,.lms-status--revoked,.lms-status--expired{background:#f7ece8;border-color:#c99a89}.lms-status--completed,.lms-status--used{background:#f3efe1;border-color:#c2b88d}.lms-inline-form{flex-wrap:nowrap}.lms-inline-form select{min-width:8rem}.button--small{min-height:2.5rem!important;padding:.4rem .7rem!important;font-size:.88rem}.button--danger{border-color:#9d452f!important;background:#fff!important;color:#843822!important}.button--danger:hover{background:#f8e9e4!important}.lms-action-form{display:inline-block;margin:.1rem}.lms-empty-state{padding:1rem;border:1px dashed #9aaca4;background:#f8faf7}.lms-team-list{display:grid;gap:.5rem;padding:0;list-style:none}.lms-team-list li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.75rem;border-bottom:1px solid var(--line)}.lms-team-list span,.lms-teacher-option small{color:#52615b}.lms-teacher-option{display:flex;align-items:flex-start;gap:.65rem;padding:.5rem}.lms-teacher-option span{display:grid}.lms-invite-secret h2{margin:0}.lms-table-wrap{max-width:100%;border:1px solid var(--line);border-radius:.25rem}.lms-panel table{min-width:42rem}.lms-panel th{white-space:nowrap}.lms-course-card{border-top:4px solid var(--forest);border-radius:.35rem;box-shadow:0 .5rem 1.25rem rgba(24,55,45,.05)}
@media(max-width:768px){.lms-form__row--two,.lms-form__row--three{grid-template-columns:1fr}.lms-course-header{align-items:flex-start;flex-direction:column}.lms-team-list li{align-items:flex-start;flex-direction:column;gap:.2rem}}
@media(max-width:480px){.lms-local-nav{flex-direction:row;overflow-x:auto;white-space:nowrap}.lms-local-nav a{flex:none}.lms-local-nav__logout,.lms-local-nav a:last-child{margin-left:0}.lms-tabs{margin-inline:-1rem;padding-inline:1rem}.lms-inline-form{align-items:stretch;flex-direction:column}.lms-inline-form button{width:100%}.lms-course-header .button{width:100%;justify-content:center}}
.lms-local-nav ul{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;width:100%;padding:0;margin:0;list-style:none}.lms-local-nav li{margin:0}.lms-local-nav .lms-local-nav__logout{margin-left:auto}.profile-app{background:var(--paper,#f7f0df)}.profile-app__inner{width:min(100% - 2rem,76rem)}
@media(max-width:480px){.lms-local-nav ul{align-items:stretch}.lms-local-nav .lms-local-nav__logout{margin-left:0}.lms-directory-table{min-width:0!important}.lms-directory-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.lms-directory-table tr,.lms-directory-table td{display:block;width:100%}.lms-directory-table tr{padding:.75rem;border-bottom:1px solid var(--line)}.lms-directory-table td{padding:.25rem;border:0}.lms-directory-table td:first-child{font-weight:700}}
.lms-local-nav li a:last-child{margin-left:0}.lms-local-nav .lms-local-nav__logout a{font-weight:500}
@media(max-width:480px){.lms-local-nav{overflow:visible;white-space:normal}.lms-local-nav ul{flex-direction:column}.lms-local-nav li,.lms-local-nav a{width:100%}}
/* Private curriculum and materials */
.curriculum__modules{display:grid;gap:1.5rem}.curriculum-module,.lesson,.course-materials,.learning-summary,.lms-curriculum-module{padding:clamp(1.1rem,3vw,1.75rem);border-top:3px solid var(--forest);background:var(--white)}.curriculum-module ol,.course-materials ul{display:grid;gap:.85rem;padding-left:1.4rem}.curriculum-module li p{margin:.25rem 0;color:#52615b}.lesson__content{margin-block:1.5rem}.lesson__pagination{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.lesson__completion{margin-block:1.5rem}.learning-summary{margin-bottom:1.5rem}.lms-curriculum-module{margin-block:1rem}.lms-form input[type=file]{max-width:100%}@media(max-width:700px){.classroom__sections{display:flex;overflow-x:auto}.classroom__sections a{width:auto;white-space:nowrap}.lesson__pagination{align-items:flex-start;flex-direction:column}}

/* Compact frontend Course authoring. */
.lms-authoring__header,.lms-module-card>header,.lms-lesson-row,.lms-material-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.lms-authoring__header{margin-bottom:1.5rem}.lms-authoring__header h2,.lms-module-card h3,.lms-lesson-row h4,.lms-material-row h3{margin-top:0}.lms-module-list,.lms-lesson-list,.lms-material-list{display:grid;gap:1rem}.lms-module-card{padding:1.25rem;border:1px solid var(--line);border-left:4px solid var(--forest);background:#fbfcfa}.lms-lesson-list{margin:1rem 0}.lms-lesson-row,.lms-material-row{padding:1rem;border-top:1px solid var(--line);background:#fff}.lms-lesson-row p,.lms-material-row p{margin:.35rem 0}.lms-row-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.4rem .65rem}.lms-move-form{display:flex;gap:.35rem}.lms-move-form select{max-width:12rem}.lms-add-row{display:inline-block;padding:.5rem;font-weight:700}.lms-danger-link{color:#843822}.lms-status--draft{background:#f3efe1;border-color:#c2b88d}.lms-status--published{background:#e8f3ea;border-color:#82a78b}
@media(max-width:768px){.lms-authoring__header,.lms-module-card>header,.lms-lesson-row,.lms-material-row{flex-direction:column}.lms-row-actions{justify-content:flex-start;width:100%}.lms-move-form{flex-wrap:wrap}}
@media(max-width:390px){.lms-row-actions .button,.lms-move-form,.lms-move-form select{width:100%}.lms-move-form button{flex:1}}
/* Private Assignment classroom and review UI. */
.assignment-grid,.assignment-list,.submission-queue{display:grid;gap:1rem}.assignment-card,.submission-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.25rem;border:1px solid var(--color-border,#d8ded8);border-radius:.75rem;background:#fff}.assignment-detail,.review-detail{max-width:54rem}.assignment-instructions,.submission-text,.submission-feedback{padding:1rem;border-radius:.5rem;background:#f5f7f4;white-space:normal;overflow-wrap:anywhere}.assignment-form{margin-top:1.5rem}.assignment-form textarea,.review-detail textarea{width:100%}.submission-row h3,.assignment-card h3{margin-top:0}.lms-row-actions form{display:inline-flex}.assignment-card a:focus-visible,.assignment-card button:focus-visible,.assignment-form :focus-visible,.review-detail :focus-visible{outline:3px solid #b86b24;outline-offset:3px}
@media(max-width:768px){.assignment-card,.submission-row{align-items:stretch;flex-direction:column}.assignment-card .button,.submission-row .button{width:100%;text-align:center}.lms-row-actions{display:flex;flex-wrap:wrap}.assignment-form input[type="file"]{max-width:100%}}


/* Editable homepage custom sections. */
.home-custom-section__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,6vw,5rem); }
.home-custom-section__grid--text-only { grid-template-columns:minmax(0,48rem); justify-content:center; text-align:center; }
.home-custom-section__media img { display:block; width:100%; max-height:34rem; border-radius:.35rem; object-fit:cover; box-shadow:0 1rem 2.5rem rgba(24,55,45,.12); }
.home-custom-section__content h2 { margin:.35rem 0 1rem; font-size:clamp(2rem,5vw,4rem); }
.home-section__body { color:#425149; line-height:1.75; }
.home-section__body > :first-child { margin-top:0; }
.home-section__body > :last-child { margin-bottom:0; }
.home-custom-section__content .button { margin-top:1.5rem; }
@media (max-width:760px) {
 .home-custom-section__grid { grid-template-columns:1fr; }
 .home-custom-section__content { text-align:left; }
}
