@charset "UTF-8";
/*
Theme Name: SPARC NAGANO 2026
Theme URI: https://sparc.nagano.jp/
Description:
Version: 2.0.0
Author: Tanakara Inc.
Author URI: https://www.tanakara.jp/
*/
/* ------------------------------------
// common
------------------------------------ */
[class*='col-']{
  overflow:hidden;
}

/* Phase 4: HTML programme and syllabus. */
#container.course-program{display:block;width:100%;max-width:none;margin:0;padding-left:0;padding-right:0}#container.course-program #main{width:min(1180px,calc(100% - 40px));margin-left:auto;margin-right:auto}
.course-program{padding-bottom:80px}.course-program #main{width:min(1180px,calc(100% - 40px));margin:0 auto}.course-section{margin:0 0 76px}.course-section>h2{margin:0 0 28px;padding:0 0 14px;border-bottom:3px solid #00b4de;font-size:2rem;line-height:1.35;color:#231815}.course-section>h3,.course-portfolio>h3{margin:36px 0 18px;font-size:1.35rem;line-height:1.5}.course-section p{font-size:1rem;line-height:1.9}.course-kicker{margin-bottom:10px;color:#ca6b00;font-weight:700;letter-spacing:.05em}.course-targets,.course-requirements,.course-lms{margin-top:32px;padding:28px;border:1px solid #cceaf4;background:#f7fcfe}.course-targets h3,.course-requirements h3,.course-lms h3{margin:0 0 18px;font-size:1.35rem}.course-targets dl{margin:0}.course-targets dl>div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:14px 0;border-top:1px solid #dce8ec}.course-targets dl>div:first-child{border-top:0}.course-targets dt{font-weight:700;color:#006e57}.course-targets dd{margin:0;line-height:1.75}.course-requirements-lead{text-align:center}.course-requirements ol{counter-reset:req;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 0;padding:0;list-style:none}.course-requirements li{position:relative;padding:18px 18px 18px 56px;background:#fff;line-height:1.7}.course-requirements li:before{counter-increment:req;content:counter(req);position:absolute;left:18px;top:18px;width:26px;height:26px;border-radius:50%;background:#00b4de;color:#fff;text-align:center;font-weight:700;line-height:26px}.course-roadmap{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}.course-roadmap article{padding:22px;background:#fff;border:1px solid #d9e4e8;border-top:5px solid #00b4de}.course-roadmap span{display:inline-block;padding:4px 12px;border-radius:999px;background:#00b4de;color:#fff;font-weight:700}.course-roadmap h3{margin:14px 0 8px;font-size:1.08rem}.course-roadmap p{margin:0;font-size:.9rem;line-height:1.7}.course-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:32px}.course-photo-grid img{display:block;width:100%;height:180px;object-fit:cover}.course-abilities{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0 42px}.course-abilities article{display:flex;align-items:center;gap:18px;min-height:135px;padding:24px;border-radius:8px;background:#f7fcfe;border:2px solid currentColor}.course-abilities strong{font-family:serif;font-size:3.5rem;font-weight:400;line-height:1}.course-abilities h4{margin:0;font-size:1rem;line-height:1.65}.ability-alpha{color:#00b4de}.ability-beta{color:#00a263}.ability-gamma{color:#82bd19}.portfolio-cycle{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0 42px}.portfolio-cycle article{position:relative;padding:24px;border:1px solid #cceaf4;background:#fff}.portfolio-cycle span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin-bottom:12px;border-radius:50%;background:#00b4de;color:#fff;font-weight:700}.portfolio-cycle h4{margin:0 0 10px;color:#008bbd}.portfolio-cycle p{margin:0;font-size:.9rem}.registration-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.registration-cards article{padding:24px;border-top:5px solid #ca6b00;background:#fafafa}.registration-cards h3{margin:0 0 12px;color:#ca6b00}.registration-cards p{margin:0 0 10px;font-size:.92rem;line-height:1.75}.course-lms a{display:inline-flex;margin-top:8px;padding:10px 24px;border-radius:4px;background:#de7600;color:#fff;font-weight:700;text-decoration:none}.course-lms a:hover,.course-lms a:focus{background:#a94f00;color:#fff}.course-subject-table-wrap{width:100%;overflow-x:auto;border:1px solid #cddde3}.course-subject-table{width:100%;min-width:930px;border-collapse:collapse;background:#fff;font-size:.9rem}.course-subject-table th,.course-subject-table td{padding:12px 10px;border:1px solid #d9e4e8;vertical-align:middle}.course-subject-table thead th{background:#dff3fa;color:#222;text-align:center;white-space:nowrap}.course-subject-table tbody th{font-weight:500;text-align:left}.course-subject-table tbody td:first-child{font-weight:700;color:#007da8}.course-subject-table tbody td:not(:first-child){text-align:center}.course-subject-table a{color:#b85e00;font-weight:700;text-decoration:underline;text-underline-offset:3px}.course-subject-table a:hover,.course-subject-table a:focus{color:#7f3d00}.course-subject-table small{display:block;margin-top:4px;font-size:.72rem;font-weight:400;line-height:1.4;color:#555}.course-notes{margin-top:16px;padding-left:1.4em;font-size:.86rem;line-height:1.7}.course-section-meta{font-weight:700;color:#555}.pbl-course-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.pbl-course-card{display:flex;flex-direction:column;padding:18px;border:1px solid #cceaf4;border-top:6px solid #00b4de;background:#f6fbfd;color:#222;text-decoration:none}.pbl-course-card.is-linked:hover,.pbl-course-card.is-linked:focus{transform:translateY(-3px);box-shadow:0 8px 20px rgb(0 0 0 / 12%);color:#222}.pbl-course-heading{display:flex;align-items:flex-start;gap:9px;min-height:66px}.pbl-course-heading span{flex:0 0 30px;height:30px;border-radius:50%;background:#00b4de;color:#fff;text-align:center;font-weight:700;line-height:30px}.pbl-course-heading h4{margin:2px 0 0;font-size:.9rem;line-height:1.45}.pbl-course-card>strong{padding:10px 0;border-top:1px solid #c5dde6;font-size:.86rem}.pbl-course-card>p{flex:1;margin:0;font-size:.78rem;line-height:1.65}.pbl-course-card dl{margin:14px 0 0;font-size:.75rem}.pbl-course-card dl>div{padding:7px 0;border-top:1px solid #d9e4e8}.pbl-course-card dt{font-weight:700}.pbl-course-card dd{margin:2px 0 0}.pbl-course-card small{margin-top:12px;color:#666}
.course-subject-table{table-layout:fixed}.course-col-category{width:18%}.course-col-subject{width:41%}.course-col-credits{width:7%}.course-col-years{width:9%}.course-col-requirement{width:17%}.course-col-abilities{width:8%}.course-subject-table tbody td:first-child{white-space:nowrap}.course-requirement span{display:block;white-space:nowrap}.course-subject-name-link,.course-syllabus-links a{display:inline;color:#b85e00;text-decoration:underline;text-underline-offset:3px;transition:color .2s ease,background-color .2s ease}.course-subject-name-link::after,.course-syllabus-links a::after{content:"↗";display:inline-block;margin-left:.22em;font-size:.82em;line-height:1;text-decoration:none;transition:transform .2s ease}.course-subject-name-link:hover,.course-subject-name-link:focus-visible,.course-syllabus-links a:hover,.course-syllabus-links a:focus-visible{color:#7f3d00;background:#fff4e8}.course-subject-name-link:hover::after,.course-subject-name-link:focus-visible::after,.course-syllabus-links a:hover::after,.course-syllabus-links a:focus-visible::after{transform:translate(2px,-2px)}.course-subject-name-link:focus-visible,.course-syllabus-links a:focus-visible{outline:2px solid #de7600;outline-offset:3px}.course-syllabus-links{display:inline-flex;flex-wrap:wrap;gap:.25em .65em;margin-left:.7em}.course-syllabus-links a{padding:0;border:0;border-radius:0;font-size:.76rem;background:transparent}
/* Phase 4 visual refinement: use one blue palette and static link states. */
#container.course-program #main{max-width:1180px}.course-program .course-kicker,.course-program .course-targets dt{color:#007da8}.course-program .ability-alpha{color:#00b4de}.course-program .ability-beta{color:#168fb8}.course-program .ability-gamma{color:#2a6f97}.course-program .registration-cards article{border-top-color:#00b4de}.course-program .registration-cards h3{color:#007da8}.course-program .course-lms a{background:#007da8}.course-program .course-lms a:hover,.course-program .course-lms a:focus{background:#005b7f}.course-program .course-subject-table a,.course-program .course-subject-name-link,.course-program .course-syllabus-links a{color:#007da8;transition:none}.course-program .course-subject-table a:hover,.course-program .course-subject-table a:focus,.course-program .course-subject-name-link:hover,.course-program .course-subject-name-link:focus-visible,.course-program .course-syllabus-links a:hover,.course-program .course-syllabus-links a:focus-visible{color:#005b7f;background:transparent}.course-program .course-subject-name-link::after,.course-program .course-syllabus-links a::after{content:"";width:.62em;height:.5em;margin-left:.38em;border:1px solid currentColor;box-shadow:.17em -.17em 0 -1px #fff,.17em -.17em 0 0 currentColor;transform:none;transition:none;vertical-align:.08em}.course-program .course-subject-name-link:hover::after,.course-program .course-subject-name-link:focus-visible::after,.course-program .course-syllabus-links a:hover::after,.course-program .course-syllabus-links a:focus-visible::after{transform:none}.course-program .course-subject-name-link:focus-visible,.course-program .course-syllabus-links a:focus-visible{outline-color:#007da8}
/* Phase 4 width and official SLG colours. */
#container.course-program #main{width:min(1100px,calc(100% - 40px));max-width:1100px}.course-program .course-kicker,.course-program .course-targets dt,.course-program .registration-cards h3,.course-program .course-subject-table tbody td:first-child,.course-program .course-subject-table a,.course-program .course-subject-name-link,.course-program .course-syllabus-links a{color:#00b4de}.course-program .ability-alpha{color:#00b4de}.course-program .ability-beta{color:#00a263}.course-program .ability-gamma{color:#82bd19}.course-program .course-lms a,.course-program .course-lms a:hover,.course-program .course-lms a:focus{background:#00b4de}.course-program .course-subject-table a:hover,.course-program .course-subject-table a:focus,.course-program .course-subject-name-link:hover,.course-program .course-subject-name-link:focus-visible,.course-program .course-syllabus-links a:hover,.course-program .course-syllabus-links a:focus-visible{color:#00b4de;text-decoration-thickness:2px}.course-program .course-subject-name-link:focus-visible,.course-program .course-syllabus-links a:focus-visible{outline-color:#00b4de}.course-ability-code{font-weight:700}.course-ability-code.ability-alpha{color:#00b4de}.course-ability-code.ability-beta{color:#00a263}.course-ability-code.ability-gamma{color:#82bd19}.course-ability-separator{color:#777}
.course-program .course-section>p,.course-program .course-portfolio>p,.course-program .course-lms>p{margin-bottom:1.25em}
.course-program .course-section>h3,.course-program .course-portfolio>h3{padding-left:.65em;border-left:4px solid #00b4de}.course-program .course-subject-table tbody td:first-child,.course-program .course-subject-name,.course-program .course-subject-table .course-subject-name-link,.course-program .course-subject-table .course-syllabus-links a{color:#222}.course-program .course-subject-name{font-weight:700}.course-program .course-subject-table .course-subject-name-link::after,.course-program .course-subject-table .course-syllabus-links a::after{color:#00b4de}.course-program .course-subject-table .course-subject-name-link:hover,.course-program .course-subject-table .course-subject-name-link:focus-visible,.course-program .course-subject-table .course-syllabus-links a:hover,.course-program .course-subject-table .course-syllabus-links a:focus-visible{color:#00b4de}
/* Phase 4 box system: pale information panels and white content cards. */
.course-program .course-targets,.course-program .course-requirements,.course-program .course-lms,.course-program .course-abilities article{background:#f0f9fc}
.course-program .course-roadmap article,.course-program .portfolio-cycle article,.course-program .registration-cards article,.course-program .pbl-course-card{border:1px solid #cceaf4;border-top:4px solid #00b4de;background:#fff}
.course-program .pbl-course-card.is-linked:hover,.course-program .pbl-course-card.is-linked:focus{border-color:#00b4de;box-shadow:none;transform:none}
.course-program .pbl-course-heading{min-height:0;margin-bottom:10px}.course-program .pbl-course-target{display:grid;gap:3px;margin:0;padding:9px 0;border-top:1px solid #d9eaf0;border-bottom:1px solid #d9eaf0;background:transparent}
.course-program .pbl-course-target span{color:#222;font-size:.75rem;font-weight:700;line-height:1.6}
.course-program .pbl-course-target strong{font-size:.86rem;line-height:1.55}
.course-program .pbl-course-card>p{margin-top:14px}
.course-program .course-subject-table-wrap{border:0}
@media(min-width:992px){.course-program .course-subject-table-wrap{overflow-x:visible}.course-program .course-subject-table{min-width:0}.course-program .pbl-course-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.course-program .pbl-course-card{grid-column:span 2}}
@media(max-width:991px){html,body{min-width:0}.course-roadmap,.course-photo-grid{grid-template-columns:repeat(2,1fr)}.course-abilities,.registration-cards{grid-template-columns:1fr}.pbl-course-grid{grid-template-columns:repeat(2,1fr)}.course-photo-grid img{height:210px}}
@media(max-width:600px){.course-program #main{width:calc(100% - 30px)}.course-section{margin-bottom:54px}.course-section>h2{font-size:1.55rem}.course-targets,.course-requirements,.course-lms{padding:20px}.course-targets dl>div{grid-template-columns:1fr;gap:5px}.course-requirements ol,.course-roadmap,.course-photo-grid,.portfolio-cycle,.pbl-course-grid{grid-template-columns:1fr}.course-photo-grid img{height:auto}.course-abilities article{min-height:0}.course-subject-table-wrap:focus{outline:3px solid #007da8;outline-offset:2px}.pbl-course-heading{min-height:0}}

/* Phase 5: shared PBL detail pages. */
#container.pbl-detail{display:block;width:100%;max-width:none;margin:0;padding:0 0 80px}#container.pbl-detail #main{width:min(1100px,calc(100% - 40px));max-width:1100px;margin:0 auto;text-align:left}#container.pbl-detail .pbl-detail-header{position:static;top:auto;left:auto;z-index:auto;display:grid!important;grid-template-columns:auto 1fr;align-items:center;justify-content:normal;width:auto;height:auto;gap:18px;margin:0 0 36px;padding:28px 30px;border:1px solid #c8e9f0;border-top:5px solid #00b4de;background:#f1fafc;box-sizing:border-box;text-align:left;transition:none}.pbl-detail-header h1{margin:0;font-size:2rem;line-height:1.4;color:#222;text-align:left}.pbl-detail-code{display:inline-flex;align-items:center;justify-content:center;min-width:76px;min-height:44px;padding:8px 14px;background:#00b4de;color:#fff;font-size:1rem;font-weight:700}.pbl-detail-main-image{margin:0 0 42px}.pbl-detail-main-image img{display:block;width:100%;max-height:520px;object-fit:cover}.pbl-detail-content{margin-bottom:70px;text-align:left}.pbl-detail-content>h2{margin:58px 0 24px;padding:0 0 12px;border-bottom:3px solid #00b4de;font-size:1.75rem;line-height:1.4;color:#222;text-align:left}.pbl-detail-content>h2>span{display:inline;border:0;padding:0;margin:0}.pbl-detail-content>h2:first-child{margin-top:0}.pbl-detail-content>h3{margin:34px 0 18px;padding-left:.65em;border-left:4px solid #00b4de}.pbl-detail-content p,.pbl-detail-content li{line-height:1.9}.pbl-detail-content .wp-block-image img,.pbl-detail-content .wp-block-gallery img{height:auto}.pbl-placeholder{padding:18px 20px;border-left:4px solid #9dc814;background:#f6f9e9;color:#4b4b4b}.pbl-related{margin-top:70px;text-align:left}.pbl-related>h2{margin:0 0 28px;padding:0 0 12px;border-bottom:3px solid #00b4de;font-size:1.75rem;color:#222;text-align:left}.pbl-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.pbl-related-card{border:1px solid #d5e5e9;background:#fff}.pbl-related-card>a{display:flex;height:100%;flex-direction:column;color:#222;text-decoration:none}.pbl-related-card figure{aspect-ratio:16/9;margin:0;overflow:hidden;background:#f1f5f6}.pbl-related-card img{display:block;width:100%;height:100%;object-fit:cover}.pbl-related-card-body{display:flex;flex:1;flex-direction:column;padding:18px}.pbl-related-card .entry-date{font-family:var(--eng-font);font-size:.9em;line-height:1.4;color:var(--base-light-color)}.pbl-related-card .entry-title{line-height:1.65}.pbl-related-card a:hover .entry-title,.pbl-related-card a:focus .entry-title{text-decoration:underline;color:var(--link-color)}.pbl-related-empty{padding:22px;border:1px solid #d5e5e9;background:#f7fbfc}.pbl-detail-back{margin-top:52px;text-align:center}.pbl-detail-back a{display:inline-flex;padding:12px 28px;border:2px solid #9dc814;color:#496000;font-weight:700;text-decoration:none}.pbl-detail-back a:hover,.pbl-detail-back a:focus{background:#f6f9e9;color:#354600}
@media(max-width:991px){.pbl-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#container.pbl-detail #main{width:calc(100% - 30px)}#container.pbl-detail .pbl-detail-header{grid-template-columns:1fr;gap:12px;padding:22px 20px}.pbl-detail-header h1{font-size:1.55rem}.pbl-detail-code{justify-self:start;min-height:38px}.pbl-detail-content>h2,.pbl-related>h2{font-size:1.45rem}.pbl-related-grid{grid-template-columns:1fr}.pbl-detail-content{margin-bottom:54px}}
#container.pbl-detail .pbl-detail-content>h2>span{border:0}

/* Phase 5 refinements: reusable links, readable cards and curriculum map. */
.course-open-badge{margin:24px 0 0;padding:20px 22px;border:1px solid var(--shinxia-border,#d9e3e6);border-left:4px solid var(--shinxia-primary,#00b4de);border-radius:var(--shinxia-radius,6px);background:#fff}.course-open-badge h3{margin:0 0 8px;font-size:1.15rem;line-height:1.5}.course-open-badge p{margin:0}.course-abilities-title{margin:28px 0 0;padding:12px 16px;border-left:4px solid var(--shinxia-primary,#00b4de);background:var(--shinxia-primary-soft,#effafd);font-size:1rem;line-height:1.7}.portfolio-cycle h5{margin:16px 0 6px;font-size:.95rem;line-height:1.55}.portfolio-cycle h5:first-of-type{margin-top:0}.portfolio-cycle h5+p{margin-top:0}.portfolio-cycle article:not(:nth-of-type(3))::after{content:"→";position:absolute;top:50%;right:-23px;z-index:1;width:22px;color:var(--shinxia-primary-text,#007a96);font-size:1.45rem;font-weight:700;line-height:1;text-align:center;transform:translateY(-50%)}.portfolio-cycle .portfolio-cycle-loop{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:.55em;margin:0;padding:12px 16px;border:1px solid var(--shinxia-border,#d9e3e6);border-radius:var(--shinxia-radius,6px);background:var(--shinxia-primary-soft,#effafd);font-size:.95rem;line-height:1.65;text-align:center}.portfolio-cycle-loop span{display:inline;color:var(--shinxia-primary-text,#007a96);font-size:1.6rem;font-weight:700;line-height:1}.portfolio-cycle-loop strong{white-space:nowrap}.course-pbl-intro{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);align-items:start;gap:28px}.course-pbl-copy p:first-child{margin-top:0}.course-pbl-copy p:last-child{margin-bottom:0}.course-pbl-image{margin:0;overflow:hidden;border:1px solid var(--shinxia-border,#d9e3e6);border-radius:var(--shinxia-radius,6px);background:var(--shinxia-background-soft,#f6f8f9)}.course-pbl-image img{display:block;width:100%;height:auto;aspect-ratio:648/546;object-fit:cover}@media(max-width:767px){.course-pbl-intro{grid-template-columns:1fr;gap:20px}.course-pbl-image{order:2}}@media(max-width:600px){.portfolio-cycle{row-gap:34px}.portfolio-cycle article:not(:nth-of-type(3))::after{top:auto;right:auto;bottom:-30px;left:50%;transform:translateX(-50%);content:"↓"}.portfolio-cycle .portfolio-cycle-loop{flex-wrap:wrap;gap:.2em .5em}.portfolio-cycle-loop span{flex:0 0 auto}}
.course-program .portfolio-cycle{column-gap:36px}.course-program .portfolio-cycle article:not(:nth-of-type(3))::after{content:"";top:50%;right:-34px;width:32px;height:24px;background:var(--shinxia-button,#007a96);clip-path:polygon(0 34%,68% 34%,68% 0,100% 50%,68% 100%,68% 66%,0 66%);font-size:0;transform:translateY(-50%)}@media(max-width:600px){.course-program .portfolio-cycle{row-gap:46px}.course-program .portfolio-cycle article:not(:nth-of-type(3))::after{top:auto;right:auto;bottom:-39px;left:50%;width:24px;height:32px;clip-path:polygon(34% 0,66% 0,66% 68%,100% 68%,50% 100%,0 68%,34% 68%);transform:translateX(-50%)}}
.course-jump-nav{margin:0 0 48px}.course-jump-nav ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.course-jump-nav a{display:flex;align-items:center;justify-content:center;height:100%;min-height:52px;padding:10px 12px;border:1px solid #cceaf4;border-top:4px solid #00b4de;background:#fff;color:#222;font-size:.9rem;font-weight:700;line-height:1.45;text-align:center;text-decoration:none}.course-jump-nav a:hover,.course-jump-nav a:focus-visible{background:#f0f9fc;color:#007da8}.course-jump-nav a:focus-visible{outline:3px solid rgb(0 180 222 / 28%);outline-offset:2px}.course-program .course-section>h2{scroll-margin-top:130px}
.course-curriculum-map{margin:16px 0 0}.course-curriculum-map a{display:block;border:1px solid #cceaf4;background:#fff;cursor:zoom-in}.course-curriculum-map img{display:block;width:100%;height:auto}.course-curriculum-map figcaption{margin-top:9px;color:#555;font-size:.85rem;text-align:center}
.course-program .course-requirements-lead{margin:0;padding:14px 18px;border-left:5px solid #00b4de;background:#fff;font-size:1.55rem;font-weight:700;line-height:1.55}.course-program .course-requirements ol{margin-top:14px}
.course-program .course-section>h3,.course-program .course-portfolio>h3{font-size:1.55rem}.course-program .portfolio-cycle h4{color:#00b4de}.course-program .course-section-meta{color:#00b4de}
.course-program .pbl-course-card{color:#222;text-decoration:none}.course-program .pbl-course-card.is-linked:hover,.course-program .pbl-course-card.is-linked:focus{border-color:#cceaf4;border-top-color:#00b4de}.course-program .pbl-course-heading{align-items:center}.course-program .pbl-course-heading span{flex-basis:36px;width:36px;height:36px;font-size:1rem;line-height:36px}.course-program .pbl-course-heading h4{font-size:1.2rem;line-height:1.5}.course-program .pbl-course-target span,.course-program .pbl-course-card dt{font-size:1rem}.course-program .pbl-course-target strong{font-size:.95rem}.course-program .pbl-course-card>p{font-size:.92rem;line-height:1.75}.course-program .pbl-course-card dl{font-size:.92rem;line-height:1.65}.pbl-course-link{display:flex;align-items:center;justify-content:center;gap:.45em;margin-top:18px;padding:11px 16px;background:#00b4de;color:#fff!important;font-size:.9rem;font-weight:700;line-height:1.5;text-align:center;text-decoration:none}.pbl-course-link::after{content:"";width:.55em;height:.55em;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}.pbl-course-link:hover,.pbl-course-link:focus-visible{background:#008fbe;color:#fff!important;text-decoration:none}.pbl-course-link:focus-visible{outline:3px solid rgb(0 180 222 / 28%);outline-offset:3px}
.course-program .pbl-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.course-program .pbl-course-card{grid-column:auto}
#container.pbl-detail{padding-top:80px}.pbl-detail-content ul,.pbl-detail-content ol{padding-left:1.5em}.pbl-detail-content li{padding-left:.15em}.pbl-placeholder{border-left-color:#00b4de;background:#f0f9fc}.content-back-link{margin-top:52px;text-align:center}.content-link-button{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-width:230px;padding:12px 22px;border:1px solid #00b4de;background:#fff;color:#007da8;font-weight:700;line-height:1.5;text-decoration:none}.content-link-button:hover,.content-link-button:focus-visible{background:#f0f9fc;color:#005f80;text-decoration:none}.content-link-button:focus-visible{outline:3px solid rgb(0 180 222 / 28%);outline-offset:3px}.content-link-button--back::before{content:"←"}
@media(max-width:767px){.course-jump-nav{margin-bottom:36px}.course-jump-nav ul{grid-template-columns:repeat(2,minmax(0,1fr))}.course-jump-nav li:last-child{grid-column:1/-1}.course-program .course-section>h2{scroll-margin-top:90px}}
@media(max-width:600px){#container.pbl-detail{padding-top:40px}.course-program .course-requirements-lead{padding:12px 14px;font-size:1.25rem}.course-program .course-requirements ol{margin-top:12px}.course-program .course-section>h3,.course-program .course-portfolio>h3{font-size:1.35rem}.course-curriculum-map{margin-top:12px}.course-curriculum-map figcaption{font-size:.78rem}.content-link-button{width:100%;min-width:0}.course-program .pbl-course-grid{grid-template-columns:1fr}.course-program .pbl-course-card>p,.course-program .pbl-course-card dl{font-size:.92rem}}
.rwdwrap{
  position:relative;
  width:100%;
  padding-top:56.25%;
}
.rwdwrap iframe{
  position:absolute;
  top:0;
  right:0;
  width:100% !important;
  height:100% !important;
}
.navbar{
  margin-bottom:0;
  padding:0;
  border-radius:0;
  background-color:transparent;
  border-bottom:2px solid var(--shinxia-primary, #00b4de);
  box-shadow:0px 3px 6px -3px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow:0px 3px 6px -3px rgba(0, 0, 0, 0.3);
  -moz-box-shadow:0px 3px 6px -3px rgba(0, 0, 0, 0.3);
  -o-box-shadow:0px 3px 6px -3px rgba(0, 0, 0, 0.3);
  -ms-box-shadow:0px 3px 6px -3px rgba(0, 0, 0, 0.3);
}

.navbar .container{
  padding-left:0;
}

.navbar-nav a{
  font-size:small;
  display:block;
  padding:.4rem 1rem;
}

.navbar li{
  border-bottom:1px solid transparent;
}

.nav > .menu-item-has-children > ul,
.nav > .page_item_has_children > ul{
  display:none;
}

.open ul{
  display:block !important;
}

.navbar-nav .nav-item + .nav-item{
  margin-left:0;
}

.navbar .current-menu-item,
.navbar .current-menu-parent,
.navbar .current_page_item{
  font-weight:bold;
}

blockquote{
  border-left:2px solid rgba(119, 119, 119, 0.1);
  padding-left:1em;
}

blockquote:before{
  content:"\e977";
  color:#333;
  font-size:large;
}

.screen-reader-text{
  display:none !important;
}

thead th,
thead td{
  background:rgba(119, 119, 119, 0.1);
}

/* Phase 3: optional audience labels for unified posts. */
.shinxia-classification-labels{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.35em;
  margin:0;
  padding:0;
  list-style:none;
  font-family:"Yaku Han JP", "Zen Kaku Gothic New", sans-serif;
  font-size:0.66rem;
  font-weight:500;
  line-height:1;
}
.shinxia-classification-labels li{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0.25em 0.55em;
  border:1px solid #de7600;
  border-radius:999px;
  background:#fff;
  color:#de7600;
  line-height:1.2;
}
.index-news ul.shinxia-classification-labels{
  display:flex;
  margin:0;
  padding:0;
  border-radius:0;
  background:transparent;
}
.entry-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.45rem 0.8rem;
  margin:0 0 0.5em;
}
.index-news ul.shinxia-classification-labels li,
.index-news ul.shinxia-classification-labels li:not(:last-child),
.index-report ul.shinxia-classification-labels li,
.index-report ul.shinxia-classification-labels li:not(:last-child),
ul.news-list ul.shinxia-classification-labels li,
ul.news-list ul.shinxia-classification-labels li:not(:last-child){
  margin:0;
  padding:0.25em 0.55em;
  border:1px solid #de7600;
  border-bottom:1px solid #de7600;
  color:#de7600;
  line-height:1.2;
}

ul.news-list li a .text-box.news{
  display:block;
}
ul.news-list li a .news .entry-date{
  margin:0;
  line-height:1.4;
}

/* ------------------------------------
// bootstrap
------------------------------------ */

.card{
  background-color:transparent;
}

/* navbar-toggler */

.navbar-toggler{
  position:absolute;
  top:-3rem;
  right:.5rem;
  background-color:transparent;
  background-image:none;
  border:1px solid transparent;
  border:none;
  background:transparent !important;
}

.navbar-toggler:focus{
  outline:0;
}

.navbar-toggler .icon-bar{
  display:block;
  width:22px;
  height:2px;
  border-radius:1px;
}

.navbar-toggler .icon-bar + .icon-bar{
  margin-top:4px;
}

.navbar-toggler:hover{
  background:transparent !important;
}

.navbar-toggler .icon-bar{
  background-color:#555 !important;
  width:22px;
  transition:all 0.2s;
  -moz-transition:all 0.2s;
  -webkit-transition:all 0.2s;
  -o-transition:all 0.2s;
  -ms-transition:all 0.2s;
}

.navbar-toggler .top-bar{
  transform:rotate(45deg);
  transform-origin:10% 10%;
  -moz-transform:rotate(45deg);
  -moz-transform-origin:10% 10%;
  -webkit-transform:rotate(45deg);
  -webkit-transform-origin:10% 10%;
  -o-transform:rotate(45deg);
  -o-transform-origin:10% 10%;
  -ms-transform:rotate(45deg);
  -ms-transform-origin:10% 10%;
}

.navbar-toggler .middle-bar{
  opacity:0;
}

.navbar-toggler .bottom-bar{
  transform:rotate(-45deg);
  transform-origin:10% 90%;
  -moz-transform:rotate(-45deg);
  -moz-transform-origin:10% 90%;
  -webkit-transform:rotate(-45deg);
  -webkit-transform-origin:10% 90%;
  -o-transform:rotate(-45deg);
  -o-transform-origin:10% 90%;
  -ms-transform:rotate(-45deg);
  -ms-transform-origin:10% 90%;
}

.navbar-toggler.collapsed .top-bar{
  transform:rotate(0);
  -moz-transform:rotate(0);
  -webkit-transform:rotate(0);
  -o-transform:rotate(0);
  -ms-transform:rotate(0);
}

.navbar-toggler.collapsed .middle-bar{
  opacity:1;
}

.navbar-toggler.collapsed .bottom-bar{
  transform:rotate(0);
  -moz-transform:rotate(0);
  -webkit-transform:rotate(0);
  -o-transform:rotate(0);
  -ms-transform:rotate(0);
}

dropdown-menu{
  padding:0;
}

.form-control,
.btn{
  border-radius:0;
}


/* ------------------------------------
// main
------------------------------------ */

.headline{
  padding:1rem 0;
}

.headline .ttl,
.headline .subttl{
  vertical-align:top;
  font-size:x-small;
  display:inline-block;
  font-weight:normal;
  margin:0;
  padding:0;
}

.header_image{
  width:100%;
}

.main{
  background-color:var(--shinxia-primary, #00b4de);
  text-align:center;
  padding:1.5em 0;
  color:var(--shinxia-on-primary, #0d262c);
}

.main h3{
  margin-bottom:0;
  font-size:x-large;
}

.main h3 a,
.main h3 a:visited{
  color:var(--shinxia-on-primary, #0d262c);
}

.mainpost{
  margin-top:3rem;
}

article.card{
  margin-bottom:2em;
  border:0 none;
  border-radius:0;
}

article.card .card-block{
  padding:0;
}

article.card .card-title{
  font-size:initial;
  font-weight:initial;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.2em;
  height:2.4em;
  margin:0 1rem .5rem 1rem;
  display:box;
  display:-webkit-box;
  display:-moz-box;
  display:-o-box;
  box-orient:vertical;
  line-clamp:2;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  -moz-box-orient:vertical;
  -moz-line-clamp:2;
  -o-box-orient:vertical;
  -o-line-clamp:2;
  -ms-box-orient:vertical;
  -ms-line-clamp:2;
}

article.card .card-text{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  display:block;
  line-height:1.2em;
  height:1.2em;
  margin:.5rem 1rem .5rem 1rem;
}

article.card a:hover{
  text-decoration:none;
}

article.card .post_links{
  cursor:pointer;
  display:block;
  border:1px solid rgba(119, 119, 119, 0.1);
}

article.card .post_links:hover{
  background-color:rgba(119, 119, 119, 0.1);
}

article.card .post_thumb{
  overflow:hidden;
  width:100%;
  height:12rem;
  display:block;
  background-position:center center;
  background-repeat:no-repeat;
  background-size:100% auto;
  -webkit-background-size:100% auto;
  -moz-background-size:100% auto;
  -o-background-size:100% auto;
  -ms-background-size:100% auto;
}

article.card a:hover .post_thumb{
  opacity:0.8;
}

.post_meta{
  margin-bottom:1rem;
}

.post_time,
.post_cat{
  font-size:small;
  color:#333;
  margin-right:.5em;
}

.post_body{
}
.post_body h1,
.post_body h2{
}
.post_body h1 span,
.post_body h2 span{
  border-bottom:2px solid #00b4de;
  display:inline-block;
  padding:1rem 0;
  margin-bottom:-2px;
}
.post_body h3{
}
.post_body hr{
  clear:both;
}

.cat_info{
  margin-bottom:1rem;
  color:#333;
}

.cat_info img{
  width:100%;
}

.ttl{
  font-size:medium;
  font-weight:bold;
  background:rgba(119, 119, 119, 0.1);
  border-radius:0;
  margin-bottom:1rem;
}

ul.post-categories,
.widget ul{
  padding-left:0;
  margin-left:-.5em;
  list-style:none;
}

ul.page-numbers{
  padding-left:0;
  margin-left:-.5em;
  list-style:none;
}

ul.post-categories li{
  display:inline-block;
  padding-right:.5em;
  padding-left:.5em;
}

ul.page-numbers li{
  display:inline-block;
}

.sidebar{
  background-color:rgba(119, 119, 119, 0.1);
  padding-top:1rem;
}

.sidebar .widget:first-child .ttl{
  margin-top:0;
}

.sidebar .widget ul li a{
  padding:.5rem 0;
}

.widget{
  margin-bottom:2rem;
}

.widget .ttl{
  font-size:medium;
  font-weight:bold;
  background:rgba(119, 119, 119, 0.1);
  border-radius:0;
  margin-bottom:1rem;
}

.sidebar .widget .ttl{
  background:transparent;
}

.ttl span{
  display:inline-block;
  padding:.5em 1em;
  border-bottom:2px solid #00b4de;
}

.widget ul li{
  display:block;
  padding-left:.5rem;
  border-bottom:1px solid rgba(119, 119, 119, 0.1);
}

.widget ul li ul{
  border-left:1px solid rgba(119, 119, 119, 0.1);
  margin-left:1rem;
}

.widget ul li ul li{
  border-bottom:0 none;
}

.widget ul li a{
  padding:.2rem;
  display:inline-block;
}

.sidebar .newpost a{
  display:table;
  width:100%;
}

.sidebar .newpost a .post_thumb{
  display:table-cell;
  vertical-align:top;
  width:100px;
}

.sidebar .newpost a .post_thumb span{
  display:block;
  width:90px;
  height:60px;
  overflow:hidden;
}

.sidebar .newpost a .post_thumb img{
  width:100%;
  height:auto;
}

.sidebar .newpost a .post_ttl{
  display:table-cell;
  vertical-align:top;
}

ul.post-categories a,
ul.tag a{
  display:inline-block;
  padding:.5em 1em;
  text-align:center;
  background:#fff;
  margin:0 .5rem .5rem 0;
}

.pagination li > a{
  display:inline-block;
  padding:.5em 1em;
  text-align:center;
  background:#fff;
  margin:0 .5rem .5rem 0;
}

ul.post-categories a:hover,
ul.tag a:hover{
  background:rgba(119, 119, 119, 0.1);
}

.page-numbers a:hover,
.widget a:hover{
  background:rgba(119, 119, 119, 0.1);
}

.share{
  margin-bottom:1rem;
}

.share a{
  display:inline-block;
  padding:.5em 1em;
  color:#fff;
  font-size:small;
  margin:0 .1em .1em 0;
  opacity:0.8;
}

.share a:hover{
  opacity:1;
  color:#fff;
  text-decoration:none;
}

.share_facebook{
  background:#39599F;
}

.share_twitter{
  background:#45B0E3;
}

.share_google{
  background:#DB4437;
}

.share_hatena{
  background:#00A4DE;
}

.headline .sns{
  text-align:right;
}

.headline .sns a{
  font-size:large;
  display:inline-block;
  margin:0 .2rem;
}

.foot .sns{
  text-align:center;
  padding:4em 0;
}

.foot .sns a{
  font-size:xx-large;
  display:inline-block;
  margin:0 .5rem;
}

.home .detail,
.home .post_body{
  padding-top:0;
}

.detail{
  padding-top:3rem;
}

.ttl_h1{
  margin-bottom:1rem;
}

.archive .ttl_h1,
.search .ttl_h1{
  border-bottom:1px solid rgba(119, 119, 119, 0.1);
  padding-bottom:1rem;
}

.clearfix,
.post_body{
  zoom:1;
}

.clearfix:after,
.post_body:after{
  content:"";
  display:block;
  height:0px;
  clear:both;
  visibility:hidden;
}

.pagination li > a,
.pagination li > span{
  border-radius:0;
}

.page-numbers{
  clear:both;
  text-align:center;
}

.page-numbers a{
  background:#fff;
  border:solid 1px rgba(119, 119, 119, 0.1);
  padding:.5em 8px;
  margin:0 2px;
  text-decoration:none;
}

span.current{
  background:#fff;
  border:solid 1px rgba(119, 119, 119, 0.1);
  padding:.5em 8px;
  margin:0 2px;
  text-decoration:none;
  background:rgba(119, 119, 119, 0.1);
}

.pagetop{
  text-align:center;
  padding-bottom:1em;
  font-size:x-large;
}
.copy{
  padding:2em;
  text-align:center;
  font-size:small;
}

.eg{
  background:rgba(119, 119, 119, 0.1);
  padding:2rem 1rem;
  text-align:center;
  font-weight:bold;
}

.sidebar .eg{
  width:100%;
  height:250px;
  border:1px solid rgba(119, 119, 119, 0.1);
}


/* ------------------------------------
// wp
------------------------------------ */

.aligncenter{
  display:block;
}

.alignright{
  float:right;
  margin-left:1.5em !important;
  margin-bottom:1em !important;
}

.alignleft{
  float:left;
  margin-right:1.5em !important;
  margin-bottom:1em !important;
}

.attachment-post-thumbnail,
.ttl_h1 + img{
  margin-bottom:1em;
}

.attachment-post-thumbnail{
  width:100%;
}

.wp-caption,
.wp-caption-text,
.gallery-caption{
  font-size:small;
  max-width:100%;
  height:auto;
}

.sticky article.card .card-block{
  background:#f0ffc8;
}

.bypostauthor{
  font-weight:bold;
}

.form-allowed-tags{
  font-size:small;
}

.searchform > div{
  text-align:center;
}

.searchform input[type="text"]{
  width:calc(100% - 6rem);
  float:left;
}

.searchform input[type="submit"]{
  width:5rem;
  float:none;
  clear:both;
}

#cse-search-box input[name="q"]{
  width:74%;
}


/* ------------------------------------
// wpp
------------------------------------ */

.popular-posts .wpp-thumbnail{
  margin-right:10px;
  max-width:initial !important;
  float:none;
}

.popular-posts .wpp-list li{
  display:table;
  width:100%;
}

.popular-posts .wpp-list li a{
  display:table-cell;
  vertical-align:top;
}

.popular-posts .wpp-list li .wpp-post-title{
  width:100%;
}

.popular-posts .wpp-list li .post-stats,
.popular-posts .wpp-list li .wpp-excerpt{
  display:table-cell;
  vertical-align:top;
}

.wpp-no-data{
  text-align:center;
}

/* ------------------------------------
// woocommerce
------------------------------------ */
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2{
  flex:0 1 auto;
  max-width:none;
  padding:0;
}
.woocommerce .form-row{
  display:block;
}
.woocommerce .woocommerce-loop-product__title{
  background-color:transparent;
}
.woocommerce div.product .product_title{
  font-size:large;
}
.woocommerce .ttl_h1{
  padding-bottom:0;
}
.woocommerce a.remove{
  padding:0 !important;
}
.woocommerce .sidebar a.remove,
.woocommerce-page .sidebar a.remove{
  margin-top:.25em !important;
}
.woocommerce .product_meta .posted_in,
.woocommerce .product_meta .tagged_as{
  display:block;
}

/* ------------------------------------
// @media
------------------------------------ */

/* Large devices (desktops, less than 1200px) */
@media (max-width:1199.98px){
  article.card .post_thumb{
    height:10rem;
  }
}

/* Medium devices (tablets, less than 992px) */
@media (max-width:991.98px){
  article.card .post_thumb{
    height:7rem;
  }
  article.card .card-title{
    height:3.6em;
  }
}

/* Small devices (landscape phones, less than 768px) */
@media (max-width:767.98px){
  article.card .post_thumb{
    height:8rem;
  }
  .logo_text{
    text-align:left;
  }
  .navbar-nav{
    width:100%;
  }
}

/* Extra small devices (portrait phones, less than 576px) */
@media (max-width:575.98px){
  .alignright{
    float:none;
    margin-left:0 !important;
    margin-bottom:0 !important;
  }
  .alignleft{
    float:none;
    margin-right:0 !important;
    margin-bottom:0 !important;
  }
  .headline .logo_text{
    width:88%;
  }
  .navbar .menu-item{
    float:none;
  }
  .navbar .menu-item a{
    border-bottom:1px solid rgba(119, 119, 119, 0.1);
    padding:.5rem 0;
  }
  .navbar .container{
    padding:0 .9375rem;
  }
  .widget_nav_menu li.d-md-block{
    display:block !important;
  }
  .main h3{
    font-size:large;
  }
  .breadcrumb{
    font-size:small;
  }
  .share a{
    font-size:x-small;
    padding:.5em .7em;
  }
  article.card .post_thumb{
    height:10rem;
  }
  article.card .card-title{
    height:2.4em;
  }
  h1{
    font-size:2rem;
  }
  h2{
    font-size:1.4rem;
  }
  .logo_text{
    text-align:left;
  }
}

/* ------------------------------------
// Phase 6 shared visual system
------------------------------------ */
:root{
  --shinxia-primary:#00b4de;
  --shinxia-primary-hover:#0098bd;
  --shinxia-primary-text:#007a96;
  --shinxia-primary-text-hover:#005f75;
  --shinxia-on-primary:#0d262c;
  --shinxia-button:#007a96;
  --shinxia-button-hover:#005f75;
  --shinxia-on-button:#fff;
  --shinxia-focus:#005b70;
  --shinxia-primary-soft:#effafd;
  --shinxia-secondary:#9dc814;
  --shinxia-secondary-hover:#86ad0d;
  --shinxia-secondary-text:#334600;
  --shinxia-text:#333;
  --shinxia-text-muted:#333;
  --shinxia-date-text:#555;
  --shinxia-border:#d9e3e6;
  --shinxia-background:#fff;
  --shinxia-background-soft:#f6f8f9;
  --shinxia-radius:6px;
  --main-color:var(--shinxia-primary);
  --key-color:var(--shinxia-primary);
  --link-color:var(--shinxia-primary-text);
  --base-color:var(--shinxia-text);
  --base-light-color:var(--shinxia-text-muted);
  --bg-color:var(--shinxia-background-soft);
}

#logo h1 a .site-copy{
  font-weight:700;
}

body{
  color:var(--shinxia-text);
}
.course-program .course-section > h2,
.course-program .course-subject-table thead th,
.course-program .course-subject-table tbody td:first-child,
.course-program .course-subject-name,
.course-program .pbl-course-card,
.course-program .pbl-course-target span,
.course-jump-nav a,
.pbl-detail-header h1,
.pbl-detail-content > h2,
.pbl-related > h2,
.pbl-related-card > a{
  color:var(--shinxia-text);
}
.post_body h1 span,
.post_body h2 span,
.ttl span{
  border-bottom-color:var(--shinxia-primary);
}
.slick-dots li.slick-active button::before{
  color:var(--shinxia-primary);
}

a{
  color:var(--shinxia-primary-text);
}
a,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
summary{
  transition:color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    opacity .2s ease,
    filter .2s ease,
    transform .2s ease;
}
a::before,
a::after,
button::before,
button::after{
  transition:color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    opacity .2s ease,
    transform .2s ease;
}
a:visited{
  color:var(--shinxia-primary-text);
}
a:hover,
a:focus{
  color:var(--shinxia-primary-text-hover);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--shinxia-focus);
  outline-offset:3px;
}

/* Header and global navigation. */
#global-nav > ul > li{
  font-size:1.02em;
}
.scrolling #global-nav > ul > li{
  font-size:.92em;
}
#global-nav > ul > li.menu-lms > a,
nav.drawer-nav ul.drawer-menu > li.menu-lms > a{
  min-height:38px;
  padding:.2em .9em;
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-button);
  color:var(--shinxia-on-button);
}
#global-nav > ul > li.menu-lms > a:hover,
#global-nav > ul > li.menu-lms > a:focus-visible,
nav.drawer-nav ul.drawer-menu > li.menu-lms > a:hover,
nav.drawer-nav ul.drawer-menu > li.menu-lms > a:focus-visible{
  background:var(--shinxia-button-hover);
  color:var(--shinxia-on-button);
}

/* Breadcrumbs and reusable text links. */
.site-breadcrumb a,
.site-breadcrumb a:visited{
  color:var(--shinxia-primary-text);
  text-decoration:underline;
  text-underline-offset:2px;
}
.site-breadcrumb a:hover,
.site-breadcrumb a:focus-visible{
  color:var(--shinxia-primary-text-hover);
}
@media(max-width:640px){
  .site-breadcrumb ol{
    padding:0 0 2px;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .site-breadcrumb ol::-webkit-scrollbar{
    display:none;
  }
  .site-breadcrumb li{
    flex:0 0 auto;
    min-width:auto;
  }
  .site-breadcrumb li:last-child{
    max-width:72vw;
  }
}

/* Shared headings. */
#main section > h2,
.course-section > h2,
.pbl-detail-content > h2,
.pbl-related > h2{
  border-bottom-color:var(--shinxia-primary);
}
.course-section > h3,
.course-portfolio > h3,
.pbl-detail-content > h3{
  border-left-color:var(--shinxia-primary);
}

/* Shared buttons. */
.content-link-button,
.botton a,
#index-notice .botton a{
  display:inline-flex;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 20px;
  border:1px solid var(--shinxia-primary);
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-background);
  color:var(--shinxia-primary-text);
  font-weight:700;
  line-height:1.5;
  text-decoration:none;
  transition:color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}
.content-link-button:hover,
.content-link-button:focus-visible{
  border-color:var(--shinxia-button);
  background:var(--shinxia-button);
  color:var(--shinxia-on-button);
  text-decoration:none;
}
.botton a:hover,
.botton a:focus-visible,
#index-notice .botton a:hover,
#index-notice .botton a:focus-visible{
  border-color:var(--shinxia-button);
  background:var(--shinxia-button);
  color:var(--shinxia-on-button);
  text-decoration:none;
}
.botton a::before,
.botton a::after,
#index-notice .botton a::before,
#index-notice .botton a::after{
  content:none;
}
.content-link-button--home::before{
  content:"\2302";
  font-size:1.1em;
}

/* Archive pagination follows the shared button system. */
.pagenavi-box{
  margin-top:42px;
  text-align:center;
}
.pagenavi-box .wp-pagenavi{
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.pagenavi-box .wp-pagenavi a,
.pagenavi-box .wp-pagenavi .current{
  display:inline-flex;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  min-width:40px;
  min-height:40px;
  margin:0 !important;
  padding:6px 10px !important;
  border:1px solid var(--shinxia-primary) !important;
  border-radius:var(--shinxia-radius) !important;
  background:var(--shinxia-background) !important;
  color:var(--shinxia-primary-text) !important;
  font-size:1rem !important;
  font-weight:700;
  line-height:1;
  text-decoration:none;
}
.pagenavi-box .wp-pagenavi a:visited{
  color:var(--shinxia-primary-text) !important;
}
.pagenavi-box .wp-pagenavi a:hover,
.pagenavi-box .wp-pagenavi a:focus-visible,
.pagenavi-box .wp-pagenavi .current{
  border-color:var(--shinxia-button) !important;
  background:var(--shinxia-button) !important;
  color:var(--shinxia-on-button) !important;
}
.pagenavi-box .wp-pagenavi .pages{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  margin:0 4px 0 0 !important;
  padding:0 8px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--shinxia-text-muted) !important;
  font-size:.9rem;
  line-height:1.4;
}
.pagenavi-box .wp-pagenavi .extend{
  margin:0 !important;
  padding:0 2px !important;
  border:0 !important;
  background:transparent !important;
  color:var(--shinxia-text-muted) !important;
}

/* Audience labels use the primary semantic colour. */
.shinxia-classification-labels li,
.index-news ul.shinxia-classification-labels li,
.index-news ul.shinxia-classification-labels li:not(:last-child),
.index-report ul.shinxia-classification-labels li,
.index-report ul.shinxia-classification-labels li:not(:last-child),
ul.news-list ul.shinxia-classification-labels li,
ul.news-list ul.shinxia-classification-labels li:not(:last-child){
  border-color:var(--shinxia-primary);
  border-radius:var(--shinxia-radius);
  color:var(--shinxia-primary-text);
}

/* Flat cards and information panels. */
.notice-box,
#index-teams ul li a,
#index-hs-program ul li a,
#index-hs-oc ul li a,
ul.course-list li .text-box{
  border:1px solid var(--shinxia-border);
  border-radius:var(--shinxia-radius);
  box-shadow:none;
}
.index-contents-box{
  border-radius:var(--shinxia-radius);
}
.index-news ul,
.index-news ul li a figure,
.index-report ul li a figure,
ul.news-list li a figure{
  border-radius:var(--shinxia-radius);
}
.index-news > ul,
.index-report > ul{
  background:var(--shinxia-background-soft);
}
.index-report > ul{
  box-sizing:border-box;
  padding:24px 30px;
  border-radius:var(--shinxia-radius);
}
.index-news > ul > li:not(:last-child),
.index-report > ul > li:not(:last-child){
  border-bottom:1px solid var(--shinxia-border);
}
.index-report > ul > li{
  margin-bottom:0;
  padding:26px 0;
}
.index-report > ul > li:not(:last-child){
  margin-bottom:0;
}
#index-notice{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  justify-content:center;
  gap:28px;
  padding-top:45px;
  padding-bottom:52px;
}
#index-notice .notice-box{
  width:100%;
  max-width:1100px;
  margin:0;
  padding:24px 26px 26px;
}
#index-notice .notice-box h2{
  margin-bottom:20px;
  font-size:2em;
  line-height:1.3;
}
#index-notice .index-news > ul,
#index-notice .index-report > ul{
  padding:6px 20px;
}
#index-notice .index-news > ul > li,
#index-notice .index-report > ul > li{
  padding:15px 0;
}
#index-notice .index-news ul li a figure,
#index-notice .index-report ul li a figure{
  width:112px;
  height:84px;
  flex-basis:112px;
  margin-right:14px;
}
#index-notice .botton{
  margin-top:20px;
}
#index-notice a span.entry-date{
  color:var(--shinxia-text);
  font-family:var(--eng-font);
  font-size:.9em;
  font-weight:700;
  line-height:1.8;
}
.index-news ul li a figure,
.index-report ul li a figure,
ul.news-list li a figure,
.pbl-related-card,
.pbl-related-empty{
  border-color:var(--shinxia-border);
}

/* Editorial detail sidebars use the shared light-gray supporting surface. */
#side .side-box{
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-background-soft);
}

/* Editorial archive widths follow the main content width used by greetings. */
.editorial-archive--news ul.news-list,
.editorial-archive--report ul.news-list,
.editorial-archive--interview ul.news-list,
.editorial-archive--audience-topics ul.news-list{
  width:100%;
  max-width:920px;
}

/* Vision cards and imagery use the shared corner radius. */
ul.vision-list li,
ul.vision-list li figure,
ul.vision-list li figure img,
figure.vision-image a,
figure.vision-image img{
  border-radius:var(--shinxia-radius);
}
ul.vision-list li,
ul.vision-list li figure,
figure.vision-image a{
  overflow:hidden;
}

/* Audience-page news metadata follows the common editorial typography. */
ul.students-topics-list > li > a > figure{
  width:160px;
  flex:0 0 160px;
  border-radius:var(--shinxia-radius);
  overflow:hidden;
}
ul.students-topics-list > li{
  border-bottom:1px solid var(--shinxia-border);
}
ul.students-topics-list > li > a > .text-box .entry-date{
  margin:0 0 .45em;
  color:var(--shinxia-text-muted);
  font-family:var(--eng-font);
  font-size:.9em;
  font-weight:700;
  line-height:1.4;
}
ul.students-topics-list > li > a > .text-box h3{
  margin:0;
  color:var(--shinxia-text);
  font-size:1.05rem;
  font-weight:700;
  line-height:1.65;
}
ul.students-topics-list > li > a:hover > .text-box h3,
ul.students-topics-list > li > a:focus-visible > .text-box h3{
  color:var(--shinxia-primary-text);
  text-decoration:underline;
}
.students #page-title.audience-topics-title{
  height:200px;
  margin-top:100px;
  background-image:url(img/common/title_bg.jpg);
}
.students #page-title.audience-topics-title > h1{
  font-family:var(--default-font);
  font-size:2.4em;
  line-height:1.3;
  transform:translate(-50%,-50%);
}
.students #page-title.audience-topics-title > h1::after{
  content:none;
}

/* Keep legacy helper copy on the shared black text color. */
.course-subject-table small,
.course-section-meta,
.course-ability-separator,
.pbl-course-card small,
.course-curriculum-map figcaption,
.pbl-placeholder{
  color:var(--shinxia-text);
}

@media (max-width:767px){
  .students #page-title.audience-topics-title{
    height:120px;
    margin-top:64px;
  }
  .students #page-title.audience-topics-title > h1{
    font-size:1.5em;
  }
}

@media (min-width:768px) and (max-width:991px){
  .students #page-title.audience-topics-title{
    margin-top:72px;
  }
}

.students.is-mobile-layout #page-title.audience-topics-title{
  margin-top:0;
}

/* Editorial listing titles use one readable scale across every context. */
#index-notice a span.entry-title{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  font-family:var(--default-font);
  font-size:1.05rem;
  font-weight:700;
  line-height:1.65;
}
ul.news-list li a .entry-title{
  font-size:1.1rem;
  font-weight:700;
  line-height:1.65;
}
.side-box ul.side-latest-list li a h3{
  font-size:.95rem;
  font-weight:700;
  line-height:1.6;
}
.pbl-related-card .entry-title{
  font-size:1.05rem;
  font-weight:700;
  line-height:1.65;
}

/* Editorial thumbnails share a 4:3 crop without modifying source images. */
.index-news ul li a figure,
.index-report ul li a figure,
ul.news-list li a figure,
ul.students-topics-list > li > a > figure,
.side-box ul.side-latest-list li a figure,
.pbl-related-card figure{
  position:relative;
  aspect-ratio:4 / 3;
  min-height:0;
  overflow:hidden;
}
.index-news ul li a figure,
.index-report ul li a figure,
ul.news-list li a figure,
ul.students-topics-list > li > a > figure{
  width:160px;
  height:120px;
  flex:0 0 160px;
}
.side-box ul.side-latest-list li a figure{
  width:68px;
  height:51px;
  flex:0 0 68px;
  border-radius:var(--shinxia-radius);
  overflow:hidden;
}
.side-box ul.side-latest-list li a figure.dummy{
  display:flex;
  align-items:center;
  justify-content:center;
  background-color:#f3f3f3;
  color:var(--shinxia-text-muted);
}
.side-box ul.side-latest-list li a figure.dummy::after{
  content:"SPARC NAGANO";
  font-family:var(--eng-font);
  font-size:.5rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
.pbl-related-card figure{
  width:100%;
  height:auto;
  flex:0 0 auto;
}
.index-news ul li a figure img,
.index-report ul li a figure img,
ul.news-list li a figure img,
ul.students-topics-list > li > a > figure img,
.side-box ul.side-latest-list li a figure img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.pbl-related-card figure img{
  position:absolute;
  inset:0;
}

/* Editorial dates use one dark-gray tone in every listing and detail view. */
.entry-date,
.post_time,
.entry-date .icon::before{
  color:var(--shinxia-date-text) !important;
}

/* Programme and PBL components share the same blue without changing the
   intentionally distinct alpha/beta/gamma ability colours. */
.course-program .course-kicker,
.course-program .course-targets dt,
.course-program .registration-cards h3,
.course-program .portfolio-cycle h4,
.course-program .course-subject-table a:hover,
.course-program .course-subject-table a:focus,
.course-program .course-subject-name-link:hover,
.course-program .course-subject-name-link:focus-visible,
.course-program .course-syllabus-links a:hover,
.course-program .course-syllabus-links a:focus-visible{
  color:var(--shinxia-primary-text);
}
.course-program .course-section-meta{
  margin:0 0 22px;
  padding:14px 18px;
  border-left:4px solid var(--shinxia-primary);
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-primary-soft);
  color:var(--shinxia-text);
  font-size:1.2rem;
  font-weight:700;
  line-height:1.65;
}
.course-program .pbl-course-heading span,
.course-program .course-roadmap span,
.portfolio-cycle span,
.course-requirements li::before{
  background:var(--shinxia-button);
  color:var(--shinxia-on-button) !important;
}
.pbl-detail-header .pbl-detail-code{
  background:var(--shinxia-button);
  color:var(--shinxia-on-button) !important;
}
.course-program .course-lms a,
.course-program .pbl-course-link{
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-button);
  color:var(--shinxia-on-button) !important;
}
.course-program .course-lms a:hover,
.course-program .course-lms a:focus,
.course-program .pbl-course-link:hover,
.course-program .pbl-course-link:focus-visible{
  background:var(--shinxia-button-hover);
  color:var(--shinxia-on-button) !important;
}
.course-program .course-targets,
.course-program .course-requirements,
.course-program .course-lms,
.pbl-placeholder{
  border-color:#bfe9f3;
  border-radius:var(--shinxia-radius);
  background:var(--shinxia-primary-soft);
}
.course-program .course-roadmap article,
.course-program .portfolio-cycle article,
.course-program .registration-cards article,
.course-program .pbl-course-card,
.course-jump-nav a,
.pbl-detail-header{
  border-color:var(--shinxia-border);
  border-top-color:var(--shinxia-primary);
  border-radius:var(--shinxia-radius);
  box-shadow:none;
}
.course-program .pbl-course-card.is-linked:hover,
.course-program .pbl-course-card.is-linked:focus{
  border-color:var(--shinxia-border);
  border-top-color:var(--shinxia-primary);
  box-shadow:none;
}
.course-program .course-subject-name-link::after,
.course-program .course-syllabus-links a::after{
  color:var(--shinxia-primary);
}
.course-curriculum-map a,
.course-subject-table-wrap{
  border-color:var(--shinxia-border);
  border-radius:var(--shinxia-radius);
}

/* Keep the lightbox close control visible over both light and dark images. */
#swipebox-close{
  box-sizing:border-box !important;
  top:12px !important;
  right:12px !important;
  width:50px !important;
  height:50px !important;
  border:2px solid #fff !important;
  border-radius:50% !important;
  background-color:var(--shinxia-button) !important;
  box-shadow:0 2px 12px rgb(0 0 0 / 35%) !important;
}
#swipebox-close:hover,
#swipebox-close:focus-visible{
  background-color:var(--shinxia-button-hover) !important;
}
#swipebox-close:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
}

/* 404 page. */
#container.error-404{
  display:block;
  box-sizing:border-box;
  width:100%;
  padding:80px max(20px, calc((100% - 1100px) / 2));
}
.error-404 #main{
  width:min(760px, 100%);
  max-width:760px;
  margin:0 auto;
}
.error-404-content{
  margin:0;
  text-align:center;
}
.error-404-content h2{
  margin:0 0 20px;
  padding:0 0 14px;
  border-bottom:3px solid var(--shinxia-primary);
  font-size:1.75rem;
  line-height:1.5;
}
.error-404-content p{
  margin:0 0 28px;
  line-height:1.9;
}
.single-back-link{
  clear:both;
}

@media (max-width:1199.98px){
  #global-nav > ul > li,
  .scrolling #global-nav > ul > li{
    font-size:.86rem;
  }
}

@media (max-width:1100px){
  html,
  body{
    min-width:0;
  }
  #container.course-program #main,
  #container.pbl-detail #main{
    width:calc(100vw - 40px);
    max-width:calc(100vw - 40px);
  }
  .course-jump-nav ul{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  #global-nav > ul > li,
  .scrolling #global-nav > ul > li,
  nav.drawer-nav ul.drawer-menu > li{
    font-size:.86rem;
  }
  #global-nav > ul > li.menu-lms > a,
  nav.drawer-nav ul.drawer-menu > li.menu-lms > a{
    min-height:40px;
    padding:.35em .9em;
  }
}

@media (max-width:600px){
  .pagenavi-box .wp-pagenavi{
    flex-wrap:nowrap;
  }
  .pagenavi-box .wp-pagenavi .pages{
    display:none;
  }
  #index-notice{
    grid-template-columns:1fr;
    padding-top:25px;
    padding-bottom:35px;
  }
  #index-notice .notice-box{
    padding:24px 5% 26px;
  }
  #index-notice .notice-box h2{
    margin-bottom:18px;
    font-size:1.45em;
    line-height:1.2;
  }
  #index-notice .index-news > ul,
  #index-notice .index-report > ul{
    padding:6px 5%;
  }
  #index-notice .index-news ul li a figure,
  #index-notice .index-report ul li a figure{
    width:96px;
    height:72px;
    flex-basis:96px;
    margin-right:12px;
  }
  #index-notice .botton{
    margin-top:16px;
  }
  #container.single-entry{
    display:block;
  }
  #container.single-entry #side{
    box-sizing:border-box;
    width:auto;
    max-width:100%;
    margin:48px 0 0;
  }
  ul.students-topics-list > li > a > figure{
    width:120px;
    height:90px;
    flex-basis:120px;
  }
  .index-news ul li a figure,
  .index-report ul li a figure,
  ul.news-list li a figure{
    width:120px;
    height:90px;
    flex-basis:120px;
  }
  .course-jump-nav ul{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .course-jump-nav li:last-child{
    grid-column:1 / -1;
  }
  .course-jump-nav a{
    min-height:48px;
    padding:8px 9px;
    font-size:.84rem;
  }
  #index-notice a span.entry-title,
  ul.news-list li a .entry-title,
  ul.students-topics-list > li > a > .text-box h3,
  .pbl-related-card .entry-title{
    font-size:1rem;
  }
  #index-notice a span.entry-title{
    font-size:.95rem;
  }
  .side-box ul.side-latest-list li a h3{
    font-size:.9rem;
  }
  .index-report > ul{
    padding:20px 6%;
  }
  .index-report > ul > li{
    padding:15px 0;
  }
  .index-news > ul > li{
    padding:15px 0;
  }
  #page-title.error-404-title h1.page-title-jp{
    width:calc(100% - 30px);
    white-space:normal;
    text-align:center;
  }
  #container.course-program #main,
  #container.pbl-detail #main{
    width:calc(100vw - 30px);
    max-width:calc(100vw - 30px);
  }
  #container.error-404{
    padding:40px 20px;
  }
  .error-404-content h2{
    font-size:1.35rem;
  }
  .course-program .course-section-meta{
    padding:12px 14px;
    font-size:1.05rem;
  }
}

@media (prefers-reduced-motion:reduce){
  a,
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  summary,
  a::before,
  a::after,
  button::before,
  button::after{
    transition-duration:.01ms !important;
  }
}
