:root {
  --ink:#111111;
  --white:#fff;
  --mist:#e5e5e5;
  --navy:#2f6b63;
  --link:#009630;
  --yellow:#e5b93d;
  --orange:#e76f32;
  --max:1120px;
}


body {
  background:var(--white);
  color:var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size:16px;
  line-height:1.75;
}


.site-header {
  position:sticky;
  z-index:10;
  top:0;
  background:#fff;
  border-bottom:1px solid #e7e7e7;
}

.header-inner,.footer-inner {
  width:min(calc(100% - 48px),var(--max));
  margin:auto;
  display:flex;
  align-items:center;
}

.header-inner {
  min-height:78px;
  gap:28px;
}

.logo {
  flex:none;
  font-family:Arial,sans-serif;
  font-size:25px;
  font-weight:800;
  letter-spacing:.38em;
  white-space:nowrap;
}

.logo img {
  display:block;
  width: 280px;
  height:auto;
}

.logo span {
  display:inline-grid;
  width:35px;
  height:35px;
  margin:0 7px 0 3px;
  place-items:center;
  border-radius:50%;
  background:#111;
  color:#fff;
  letter-spacing:0;
  font-size:30px;
  vertical-align:middle;
}

.global-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:22px;
  font-size:14px;
  font-weight:700;
}

.global-nav a {
  position:relative;
  padding:26px 0;
}

.global-nav a:hover,.global-nav a:focus-visible,.global-nav .is-current {
  color:var(--link);
}

.global-nav .is-current::after {
  position:absolute;
  right:0;
  bottom:18px;
  left:0;
  height:3px;
  background:var(--orange);
  content:"";
}

.instagram-icon {
  font-size:35px;
  line-height:1;
  color:#111;
}

.site-header .instagram-icon img {
  display:block;
  width:35px;
  height:35px;
}

.menu-toggle {
  display:none;
}


.hero {
  position:relative;
  background:#111;
}

.hero-slides {
  aspect-ratio:3 / 1;
  min-height:320px;
}

.hero-slide {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 900ms ease;
}

.hero-slide.is-active {
  opacity:1;
}

.hero-slide img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-controls {
  position:absolute;
  z-index:2;
  right:0;
  bottom:20px;
  left:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
}

.hero-arrow {
  position:absolute;
  bottom:50%;
  transform:translateY(50%);
  width:54px;
  height:54px;
  border:0;
  background:rgba(17,17,17,.45);
  color:#fff;
  cursor:pointer;
  font-size:47px;
  line-height:40px;
}

.hero-arrow:hover {
  background:var(--navy);
}

.hero-prev {
  left:24px;
}

.hero-next {
  right:24px;
}

.hero-dots {
  display:flex;
  gap:10px;
}

.hero-dots button {
  width:13px;
  height:13px;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}

.hero-dots .is-active {
  background:#fff;
}


.page-content {
  width:min(calc(100% - 48px),var(--max));
  margin:0 auto;
}

.section {
  padding:58px 0;
  border-bottom:20px solid var(--mist);
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
}

.section h2 {
  position:relative;
  font-size:30px;
  line-height:1.2;
  letter-spacing:.02em;
}

.section h2::after {
  position:absolute;
  bottom:-10px;
  left:0;
  width:150px;
  height:5px;
  background:var(--yellow);
  content:"";
  transform:skewX(-28deg);
}

.section-heading > a {
  color:var(--link);
  font-size:15px;
  font-weight:800;
}

.section-heading > a:hover,
.section-heading > a:focus-visible {
  color:var(--link);
  text-decoration:underline;
  text-underline-offset:3px;
}

.section-heading > a span {
  margin-left:7px;
  font-size:20px;
}

.feature-card {
  display:grid;
  grid-template-columns:minmax(310px,.95fr) 1.2fr;
  overflow:hidden;
  background:#fafafa;
}

.placeholder-image {
  position:relative;
  display:grid;
  min-height:240px;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,#eff0ef,#dfe3e1);
  color:var(--navy);
}

.placeholder-image::before,.placeholder-image::after {
  position:absolute;
  width:130%;
  height:2px;
  background:rgba(47,107,99,.17);
  content:"";
}

.placeholder-image::before {
  transform:rotate(32deg);
}

.placeholder-image::after {
  transform:rotate(-32deg);
}

.placeholder-image i {
  z-index:1;
  color:var(--yellow);
  font-size:60px;
  font-style:normal;
  transform:rotate(-13deg);
}

.event-image {
  background:linear-gradient(135deg,#f9eee6,#e4ded9);
}

.event-image span {
  position:absolute;
  z-index:1;
  top:15px;
  left:15px;
  padding:5px 15px;
  background:#ef7c39;
  color:#fff;
  font-size:14px;
  font-weight:700;
}

.event-image b {
  z-index:1;
  font-family:cursive;
  font-size:29px;
  font-weight:500;
  transform:rotate(-17deg);
}

.about-image {
  gap:48px;
}

.feature-body {
  padding:35px 42px;
}

.eyebrow {
  margin-bottom:7px;
  color:#a74d21;
  font-size:14px;
  font-weight:700;
}

.feature-body h3 {
  margin-bottom:14px;
  font-size:27px;
  line-height:1.45;
}

.feature-body p {
  font-size:17px;
}

.event-meta {
  margin:8px 0 12px;
  font-weight:700;
}

.activity-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.activity-card {
  text-align:center;
}

.activity-card .placeholder-image {
  min-height:185px;
}

.activity-card h3 {
  margin-top:12px;
  font-size:20px;
  line-height:1.4;
}

.activity-card p {
  font-size:16px;
}

.news-list {
  border-top:1px solid #ddd;
}

.news-list li {
  display:grid;
  grid-template-columns:120px 112px 1fr 24px;
  gap:18px;
  align-items:center;
  min-height:67px;
  border-bottom:1px solid #ddd;
}

.news-list time {
  font-family:Arial,sans-serif;
  font-size:16px;
}

.tag {
  padding:4px 10px;
  background:var(--mist);
  text-align:center;
  font-size:14px;
}

.news-list a {
  font-weight:600;
}

.news-list a:hover,.news-list a:focus-visible {
  color:var(--link);
  text-decoration:underline;
}

.news-list li > span:last-child {
  color:var(--navy);
  font-size:30px;
}

.news-list li:hover > span:last-child,.news-list li:focus-within > span:last-child {
  color:var(--link);
}


.instagram-band {
  background:linear-gradient(105deg,#ffd563,#f4a4af 48%,#ae83f1);
}

.instagram-inner {
  width:min(calc(100% - 48px),var(--max));
  min-height:150px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}

.instagram-copy {
  display:flex;
  align-items:center;
  gap:25px;
}

.instagram-mark {
  color:#f04c6a;
  font-size:65px;
  line-height:1;
}

.instagram-mark img {
  display:block;
  width:65px;
  height:65px;
}

.instagram-copy h2 {
  font-size:24px;
  line-height:1.35;
}

.instagram-copy p {
  font-size:16px;
}

.button {
  flex:none;
  padding:14px 21px;
  border-radius:4px;
  background:#fff;
  font-size:15px;
  font-weight:800;
}

.button:hover,.button:focus-visible {
  background:var(--link);
  color:#fff;
}

.button span {
  margin-left:8px;
}

.site-footer {
  background:#f2f2f2;
}

.site-footer .logo img {
  display:block;
  width:215px;
  height:auto;
}

.site-footer .logo {
  margin-top:-5px;
}

.footer-inner {
  min-height:135px;
  align-items:flex-start;
  justify-content:space-between;
  padding:30px 0 20px;
  position:relative;
}

.footer-nav {
  display:flex;
  justify-content:flex-end;
  gap:18px;
  font-size:14px;
  font-weight:400;
}

.footer-nav a:hover,
.footer-nav a:focus-visible {
  color:var(--link);
}

.footer-nav a + a {
  border-left:1px solid #999;
  padding-left:18px;
}

.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-top:0;
  position:absolute;
  bottom:25px;
  left:50%;
  transform:translateX(-50%);
  width:max-content;
  font-size:13px;
}

.footer-bottom small {
  margin-right:0;
}

.footer-bottom .instagram-icon {
  font-size:32px;
}


@media (max-width: 900px) {
  .site-header .instagram-icon img {
    width:28px;
    height:28px;
  }

  .header-inner {
  min-height:66px;
  gap:16px;
}

.logo {
  font-size:20px;
}

.logo span {
  width:29px;
  height:29px;
  font-size:25px;
}

.global-nav {
  gap:13px;
  font-size:12px;
}

.instagram-icon {
  font-size:28px;
}

.feature-body {
  padding:28px;
}

.feature-body h3 {
  font-size:23px;
}

.section {
  padding:45px 0;
}


}


@media (max-width: 700px) {
  body {
  font-size:16px;
}

.header-inner,.page-content,.instagram-inner,.footer-inner {
  width:min(calc(100% - 32px),var(--max));
}

.site-header {
  position:relative;
}

.menu-toggle {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  margin-left:auto;
  margin-right:-14px;
  padding:6px;
  border:0;
  background:transparent;
  cursor:pointer;
}

.menu-toggle span {
  display:block;
  width:24px;
  height:2px;
  background:#111;
}

.menu-toggle b {
  margin-top:1px;
  font-size:9px;
}

.global-nav {
  position:absolute;
  top:78px;
  right:0;
  left:0;
  display:none;
  padding:15px 16px;
  background:#fff;
  box-shadow:0 7px 10px rgba(0,0,0,.1);
}

.global-nav.is-open {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
}

.global-nav a {
  padding:11px 0;
  border-bottom:1px solid #e5e5e5;
  font-size:15px;
}

.global-nav .is-current::after {
  display:none;
}

.header-inner > .instagram-icon {
  margin-left:5px;
}

.hero-slides {
  aspect-ratio:1.65 / 1;
  min-height:230px;
}

.hero-slide img {
  object-position:center;
}

.hero-arrow {
  width:38px;
  height:42px;
  font-size:36px;
}

.hero-prev {
  left:8px;
}

.hero-next {
  right:8px;
}

.hero-controls {
  bottom:12px;
}

.section {
  padding:38px 0;
  border-bottom-width:12px;
}

.section h2 {
  font-size:25px;
}

.section h2::after {
  width:120px;
  height:4px;
}

.section-heading {
  align-items:flex-end;
  margin-bottom:22px;
}

.section-heading > a {
  font-size:13px;
}

.feature-card {
  grid-template-columns:1fr;
}

.placeholder-image {
  min-height:190px;
}

.feature-body {
  padding:25px 20px;
}

.feature-body h3 {
  font-size:22px;
}

.feature-body p {
  font-size:16px;
}

.activity-grid {
  gap:12px;
}

.activity-card .placeholder-image {
  min-height:110px;
}

.activity-card .placeholder-image i {
  font-size:38px;
}

.activity-card h3 {
  font-size:16px;
}

.activity-card p {
  font-size:14px;
}

.news-list li {
  grid-template-columns:78px 88px 1fr 14px;
  gap:8px;
  padding:11px 0;
  line-height:1.45;
}

.news-list time,.tag {
  font-size:12px;
}

.news-list a {
  font-size:14px;
}

.instagram-inner {
  flex-direction:column;
  align-items:stretch;
  padding:28px 0;
  gap:20px;
}

.instagram-copy {
  gap:15px;
}

.instagram-mark {
  font-size:50px;
}

.instagram-mark img {
  width:50px;
  height:50px;
}

.instagram-copy h2 {
  font-size:20px;
}

.instagram-copy p {
  font-size:14px;
}

.button {
  text-align:center;
}

.footer-inner {
  flex-direction:column;
  gap:20px;
  min-height:0;
  padding:30px 0 22px;
}

.footer-nav {
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:10px;
  font-size:13px;
}

.footer-nav a + a {
  padding-left:10px;
}

.footer-bottom {
  position:static;
  transform:none;
  width:100%;
  justify-content:center;
  gap:0;
  margin-top:12px;
  font-size:11px;
}

.footer-bottom small {
  width:auto;
}

.footer-bottom .instagram-icon {
  margin-left:auto;
}


}


@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
  scroll-behavior:auto!important;
  transition-duration:.01ms!important;
  animation-duration:.01ms!important;
}


}



/* About page */
.about-page .site-header{position:relative}.about-hero{position:relative;height:224px;overflow:hidden}.about-hero>img{width:100%;height:100%;object-fit:cover}.about-hero-copy{position:absolute;top:24px;right:max(5%,calc((100% - var(--max))/2));width:min(43%,510px);padding:24px 28px;background:rgba(255,255,255,.75)}.about-hero-copy h1{color:#0d356d;font-size:clamp(30px,3.2vw,48px);line-height:1.25;letter-spacing:.04em}.about-hero-copy h1::after{display:block;width:82px;height:4px;margin-top:12px;background:var(--yellow);content:""}.about-hero-copy p{margin-top:13px;color:#e76f32;font-size:clamp(17px,1.65vw,24px);font-weight:800;line-height:1.5}.about-section{padding:78px 0}.about-container{position:relative;width:min(calc(100% - 48px),var(--max));margin:auto}.about-title{position:relative;margin-bottom:42px;text-align:center;font-size:clamp(29px,3vw,42px);line-height:1.3}.about-title::after{position:absolute;bottom:-16px;left:50%;width:82px;height:4px;background:var(--yellow);content:"";transform:translateX(-50%)}.about-intro{overflow:hidden}.about-catch{position:relative;z-index:1;color:#e76f32;font-size:clamp(29px,4.25vw,57px);font-weight:800;line-height:1.35}.about-lead{position:relative;z-index:1;max-width:710px;margin-top:26px;font-size:18px}.about-deco{position:absolute;z-index:0;margin:0;color:rgba(90,82,72,.23);font-family:cursive;font-size:clamp(32px,4.2vw,60px);font-weight:600;line-height:1.05}.about-deco-en{right:0;bottom:-4px;text-align:right}.about-history{overflow:hidden;background:#fffdf8}.history-list{position:relative;z-index:1;max-width:900px;margin:0 auto}.history-list::before{position:absolute;top:10px;bottom:33px;left:150px;width:2px;background:#e76f32;content:""}.history-list li{position:relative;display:grid;grid-template-columns:125px 1fr;gap:48px;padding:0 0 28px}.history-list li::before{position:absolute;top:9px;left:142px;width:18px;height:18px;border:3px solid #fffdf8;border-radius:50%;background:#e76f32;content:""}.history-list time{color:#e76f32;font-size:20px;font-weight:800;text-align:right}.history-list h3{font-size:22px;line-height:1.45}.history-list p{margin-top:4px}.history-list .history-final{padding-bottom:0}.history-final span{position:absolute;top:8px;left:142px;width:18px;height:18px;border-radius:50%;background:#e76f32}.history-final h3{color:#e76f32;font-size:26px}.about-deco-ja{right:0;bottom:16px;text-align:right;transform:rotate(-11deg)}.about-members{border-top:1px solid #f1f1f1}.member-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.member-summary article{min-height:175px;padding:27px;border-radius:7px;background:#fff4ed}.member-summary article:nth-child(2){background:#edf7f7}.member-summary article:nth-child(3){background:#fff8e8}.member-summary span{display:block;color:#e76f32;font-size:28px;letter-spacing:-7px}.member-summary article:nth-child(n+2) span,.member-summary article:nth-child(n+2) h3{color:#0d356d}.member-summary h3{margin-top:6px;color:#e76f32;font-size:19px}.member-summary b{display:block;font-size:34px;line-height:1.1}.member-summary p{margin-top:10px;font-size:15px;line-height:1.55}.member-names{margin-top:35px;padding:22px 25px;border-left:4px solid var(--yellow);background:#fafafa}.member-names h3,.instrument-heading{font-size:21px}.member-names p{margin-top:7px}.instrument-heading{margin-top:45px;padding-bottom:8px;border-bottom:4px solid var(--yellow)}.instrument-grid{display:grid;grid-template-columns:repeat(6,1fr);margin-top:22px}.instrument-grid article{min-height:185px;padding:0 14px;border-left:1px solid #d9dfe5;text-align:center}.instrument-grid article:first-child{border-left:0}.drum-icon{width:100px;height:78px;fill:none;stroke:#0d356d;stroke-linecap:round;stroke-linejoin:round;stroke-width:5}.instrument-symbol{display:grid;height:78px;place-items:center;color:#0d356d;font-size:64px;font-weight:800;line-height:1}.instrument-grid h4{color:#0d356d;font-size:17px;line-height:1.35}.instrument-grid p{margin-top:6px;font-size:14px}.staff-names{margin-top:25px}@media(max-width:700px){.about-hero{height:175px}.about-hero-copy{top:14px;right:16px;width:72%;padding:15px 17px}.about-hero-copy h1{font-size:25px}.about-hero-copy h1::after{width:58px;height:3px;margin-top:7px}.about-hero-copy p{margin-top:8px;font-size:15px}.about-section{padding:54px 0}.about-container{width:min(calc(100% - 32px),var(--max))}.about-title{margin-bottom:35px;font-size:27px}.about-catch{font-size:30px}.about-lead{font-size:16px}.about-deco{font-size:32px}.history-list::before{left:92px}.history-list li{grid-template-columns:72px 1fr;gap:33px;padding-bottom:25px}.history-list li::before,.history-final span{left:84px}.history-list time{font-size:16px}.history-list h3{font-size:18px}.history-list p{font-size:15px;line-height:1.6}.history-final h3{font-size:21px}.member-summary{grid-template-columns:1fr;gap:12px}.member-summary article{min-height:0;padding:20px}.member-summary b{display:inline;margin-left:9px;font-size:29px}.instrument-grid{grid-template-columns:repeat(2,1fr);gap:22px 0}.instrument-grid article:nth-child(odd){border-left:0}.instrument-grid article{min-height:155px}.drum-icon{height:64px}.instrument-symbol{height:64px;font-size:52px}}

/* Timeline alignment refinement */
.history-list::before{left:151px;transform:translateX(-50%)}
.history-list li::before,.history-final span{left:151px;transform:translateX(-50%)}
.history-final>div{grid-column:2}
@media(max-width:700px){.history-list::before{left:93px}.history-list li::before,.history-final span{left:93px}}

/* Timeline line and markers share each list item as their positioning context */
.history-list::before{display:none}
.history-list li::after{position:absolute;top:18px;bottom:-28px;left:151px;width:2px;background:#e76f32;content:"";transform:translateX(-50%);z-index:0}
.history-list li:last-child::after{display:none}
.history-list li::before,.history-final span{z-index:1}
@media(max-width:700px){.history-list li::after{left:93px}}

/* About page spacing refinement */
.about-catch{max-width:760px}
.about-deco-en{top:50%;right:0;bottom:auto;transform:translateY(-42%)}
.about-history{padding-top:39px}
@media(max-width:700px){.about-catch{max-width:none}.about-deco-en{top:auto;right:0;bottom:0;transform:none}.about-history{padding-top:27px}}

/* About intro spacing refinement */
.about-intro{padding-bottom:39px}
.about-history{padding-top:39px}
.about-deco-en{top:auto;right:0;bottom:20px;transform:none;font-size:clamp(24px,3vw,44px)}
@media(max-width:700px){.about-intro{padding-bottom:27px}.about-history{padding-top:27px}.about-deco-en{right:0;bottom:12px;font-size:28px}}

/* News page */
.news-page .site-header{position:relative}.news-hero{position:relative;height:224px;overflow:hidden;background:#e76f32}.news-hero>img{width:100%;height:100%;object-fit:cover}.news-hero-copy{position:absolute;top:24px;right:max(5%,calc((100% - var(--max))/2));width:min(43%,510px);padding:24px 28px;background:rgba(255,255,255,.86)}.news-hero-copy h1{color:#0d356d;font-size:clamp(30px,3.2vw,48px);line-height:1.25;letter-spacing:.04em}.news-hero-copy h1::after{display:block;width:82px;height:4px;margin-top:12px;background:var(--yellow);content:""}.news-hero-copy p{margin-top:13px;color:#e76f32;font-size:clamp(16px,1.55vw,22px);font-weight:800;line-height:1.5}.news-section{padding:78px 0}.notice-section{background:#fffdf8}.news-container{width:min(calc(100% - 48px),var(--max));margin:auto}.news-heading{text-align:center}.news-kicker{color:#e76f32;font-size:14px;font-weight:800;letter-spacing:.14em}.news-heading h2{position:relative;margin-top:5px;font-size:clamp(29px,3vw,42px);line-height:1.3}.news-heading h2::after{position:absolute;bottom:-16px;left:50%;width:82px;height:4px;background:var(--yellow);content:"";transform:translateX(-50%)}.news-intro{max-width:710px;margin:46px auto 0;text-align:center;font-size:18px}.schedule-empty{display:flex;align-items:center;gap:28px;max-width:880px;margin:35px auto 0;padding:31px 38px;border:1px solid #e3e5e6;border-left:5px solid #e76f32;background:#fff}.schedule-empty>span{display:grid;flex:0 0 65px;width:65px;height:65px;place-items:center;border-radius:50%;background:#fff4ed;color:#e76f32;font-size:36px}.schedule-empty h3{font-size:21px;line-height:1.45}.schedule-empty p{margin-top:5px}.notice-list{max-width:880px;margin:35px auto 0;border-top:1px solid #dfe3e5}.notice-list li{display:grid;grid-template-columns:95px 112px 1fr;gap:18px;align-items:center;padding:22px 8px;border-bottom:1px solid #dfe3e5;font-size:17px;line-height:1.5}.notice-list time{font-weight:700}.notice-tag{display:inline-flex;justify-content:center;padding:4px 9px;border:1px solid #0d356d;color:#0d356d;font-size:13px;font-weight:700;line-height:1.3}.notice-list li:nth-child(2) .notice-tag{border-color:#e76f32;color:#e76f32}.notice-list li:nth-child(3) .notice-tag{border-color:#2f6b36;color:#2f6b36}@media(max-width:700px){.news-hero{height:175px}.news-hero-copy{top:14px;right:16px;width:74%;padding:15px 17px}.news-hero-copy h1{font-size:25px}.news-hero-copy h1::after{width:58px;height:3px;margin-top:7px}.news-hero-copy p{margin-top:8px;font-size:14px}.news-section{padding:54px 0}.news-container{width:min(calc(100% - 32px),var(--max))}.news-heading h2{font-size:27px}.news-intro{margin-top:38px;font-size:16px;text-align:left}.schedule-empty{align-items:flex-start;gap:16px;margin-top:26px;padding:22px}.schedule-empty>span{flex-basis:45px;width:45px;height:45px;font-size:26px}.schedule-empty h3{font-size:18px}.schedule-empty p{font-size:15px;line-height:1.6}.notice-list{margin-top:26px}.notice-list li{grid-template-columns:1fr auto;gap:8px 14px;padding:18px 0;font-size:16px}.notice-list li>span:last-child{grid-column:1/-1}.notice-tag{font-size:12px}}


/* Activity page */
.activity-page .site-header{position:relative}
.activity-hero{position:relative;height:224px;overflow:hidden;background:#e76f32}
.activity-hero>img{width:100%;height:100%;object-fit:cover}
.activity-hero-copy{position:absolute;top:24px;right:max(5%,calc((100% - var(--max))/2));width:min(43%,510px);padding:24px 28px;background:rgba(255,255,255,.86)}
.activity-hero-copy h1{color:#0d356d;font-size:clamp(30px,3.2vw,48px);line-height:1.25;letter-spacing:.04em}
.activity-hero-copy h1::after{display:block;width:82px;height:4px;margin-top:12px;background:var(--yellow);content:""}
.activity-hero-copy p{margin-top:13px;color:#e76f32;font-size:clamp(16px,1.55vw,22px);font-weight:800;line-height:1.5}
.activity-section{padding:78px 0}
.activity-gallery,.activity-video{background:#fffdf8}
.activity-container{width:min(calc(100% - 48px),var(--max));margin:auto}
.activity-heading{text-align:center}
.activity-kicker{color:#e76f32;font-size:14px;font-weight:800;letter-spacing:.14em}
.activity-heading h2{position:relative;margin-top:5px;font-size:clamp(29px,3vw,42px);line-height:1.3}
.activity-heading h2::after{position:absolute;bottom:-16px;left:50%;width:82px;height:4px;background:var(--yellow);content:"";transform:translateX(-50%)}
.activity-intro{max-width:750px;margin:46px auto 0;font-size:18px;line-height:1.8;text-align:center}
.activity-points{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:900px;margin:38px auto 0}
.activity-points>a{min-height:195px;padding:27px;border-radius:8px;background:#fff4ed;text-align:center}
.activity-points>a:nth-child(2){background:#edf7f7}
.activity-points>a:nth-child(3){background:#fff8e8}
.activity-points span{display:grid;width:54px;height:54px;margin:auto;place-items:center;border-radius:50%;background:#e76f32;color:#fff;font-size:29px}
.activity-points>a:nth-child(2) span{background:#0d356d}
.activity-points>a:nth-child(3) span{background:#2f6b36}
.activity-points h3{margin-top:13px;color:#0d356d;font-size:21px}
.activity-points p{margin-top:7px;font-size:16px;line-height:1.6}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:37px}
.photo-placeholder{display:grid;min-height:230px;place-content:center;gap:8px;background:#dedede;color:#656565;text-align:center}
.photo-placeholder span{font-size:12px;font-weight:800;letter-spacing:.15em}
.photo-placeholder b{font-size:20px}
.photo-placeholder small{font-size:14px}
.event-placeholder{display:grid;min-height:270px;margin-top:37px;place-items:center;background:#dedede;color:#656565;text-align:center}
.event-placeholder span{display:grid;width:57px;height:57px;margin:0 auto 12px;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:28px}
.event-placeholder h3{font-size:22px}
.event-placeholder p{margin-top:8px}
.activity-text-link{display:flex;justify-content:center;gap:12px;margin-top:26px;color:#009630;font-weight:800}
.activity-text-link span{font-size:20px;line-height:1}
.activity-text-link:hover,.activity-text-link:focus-visible{color:#009630;text-decoration:underline;text-underline-offset:3px}
.video-placeholder{display:grid;min-height:340px;margin-top:37px;place-content:center;background:#dedede;color:#656565;text-align:center}
.video-placeholder span{display:grid;width:66px;height:66px;margin:auto;place-items:center;border:2px solid currentColor;border-radius:50%;padding-left:4px;font-size:25px}
.video-placeholder p{margin-top:13px;font-size:16px;font-weight:700}
.activity-contact{padding:58px 24px;background:#0d356d;color:#fff;text-align:center}
.activity-contact p{font-size:20px;font-weight:700}
.activity-contact .button{display:inline-flex;margin-top:20px;background:#fff;color:#0d356d}
.activity-contact .button:hover,.activity-contact .button:focus-visible{background:#009630;color:#fff}
@media(max-width:700px){.activity-hero{height:175px}.activity-hero-copy{top:14px;right:16px;width:74%;padding:15px 17px}.activity-hero-copy h1{font-size:25px}.activity-hero-copy h1::after{width:58px;height:3px;margin-top:7px}.activity-hero-copy p{margin-top:8px;font-size:14px}.activity-section{padding:54px 0}.activity-container{width:min(calc(100% - 32px),var(--max))}.activity-heading h2{font-size:27px}.activity-intro{margin-top:38px;font-size:16px;text-align:left}.activity-points{grid-template-columns:1fr;gap:12px;margin-top:27px}.activity-points>a{min-height:0;padding:20px;text-align:left}.activity-points span{float:left;width:46px;height:46px;margin:0 15px 0 0;font-size:25px}.activity-points h3{margin-top:0;font-size:19px}.activity-points p{margin-top:7px;overflow:hidden;font-size:15px}.photo-grid{grid-template-columns:1fr;gap:12px;margin-top:27px}.photo-placeholder{min-height:185px}.event-placeholder{min-height:220px;margin-top:27px;padding:24px}.event-placeholder h3{font-size:19px}.event-placeholder p{font-size:15px;line-height:1.6}.video-placeholder{min-height:205px;margin-top:27px}.activity-contact{padding:45px 20px}.activity-contact p{font-size:18px}}


/* Activity section spacing refinement */
.activity-overview{padding-bottom:39px}
.activity-gallery{padding-top:39px;padding-bottom:39px}
.activity-events{padding-top:62px;padding-bottom:62px}
.activity-video{padding-top:62px}
@media(max-width:700px){.activity-overview{padding-bottom:27px}.activity-gallery{padding-top:27px;padding-bottom:43px}.activity-events{padding-top:43px;padding-bottom:43px}.activity-video{padding-top:43px}}

.activity-points>a{display:block;color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.activity-points>a:hover,.activity-points>a:focus-visible{transform:translateY(-4px);box-shadow:0 8px 20px rgba(13,53,109,.16)}
.activity-points>a:focus-visible{outline:3px solid #009630;outline-offset:3px}


/* Page top button */
.page-top{position:fixed;right:24px;bottom:24px;z-index:20;display:grid;width:58px;height:58px;padding:0;place-content:center;border:0;border-radius:50%;background:#0d356d;color:#fff;box-shadow:0 5px 15px rgba(0,0,0,.2);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease,background-color .2s ease}
.page-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.page-top:hover,.page-top:focus-visible{background:#009630}
.page-top:focus-visible{outline:3px solid #e76f32;outline-offset:3px}
.page-top>span{font-size:23px;line-height:.8}
.page-top small{margin-top:5px;font-size:10px;font-weight:800;letter-spacing:.06em}
@media(max-width:700px){.page-top{right:16px;bottom:16px;width:52px;height:52px}.page-top>span{font-size:21px}}


/* Contact page */
.contact-page .site-header{position:relative}
.contact-hero{position:relative;height:224px;overflow:hidden;background:#fff7e7}
.contact-hero>img{width:100%;height:100%;object-fit:cover}
.contact-hero-copy{position:absolute;top:24px;right:max(5%,calc((100% - var(--max))/2));width:min(43%,510px);padding:24px 28px;background:rgba(255,255,255,.84)}
.contact-hero-copy h1{color:#0d356d;font-size:clamp(30px,3.2vw,48px);line-height:1.25;letter-spacing:.04em}
.contact-hero-copy h1::after{display:block;width:82px;height:4px;margin-top:12px;background:var(--yellow);content:""}
.contact-hero-copy p{margin-top:13px;color:#e76f32;font-size:clamp(16px,1.55vw,22px);font-weight:800;line-height:1.5}
.contact-section{padding:78px 0}
.contact-form-section{background:#fffdf8}
.contact-container{width:min(calc(100% - 48px),var(--max));margin:auto}
.contact-heading{text-align:center}
.contact-kicker{color:#e76f32;font-size:14px;font-weight:800;letter-spacing:.14em}
.contact-heading h2{position:relative;margin-top:5px;font-size:clamp(29px,3vw,42px);line-height:1.3}
.contact-heading h2::after{position:absolute;bottom:-16px;left:50%;width:82px;height:4px;background:var(--yellow);content:"";transform:translateX(-50%)}
.contact-guidance-inner{max-width:750px;margin:46px auto 0;font-size:18px;line-height:1.8}
.contact-note{margin-top:18px;padding:15px 18px;border-left:4px solid var(--yellow);background:#fff9e9;font-size:16px}
.contact-form-intro{margin:46px auto 0;max-width:720px;font-size:18px;text-align:center}
.contact-email-section{background:#fffdf8}
.contact-email-box{max-width:720px;margin:46px auto 0;padding:38px;background:#fff;box-shadow:0 4px 18px rgba(13,53,109,.08);text-align:center}
.contact-email-box>p:first-child{font-size:18px;line-height:1.8}
.contact-email-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:26px;color:#0d356d;font-size:clamp(20px,2.2vw,26px);font-weight:800;text-decoration:none;word-break:break-all}
.contact-email-link:hover,.contact-email-link:focus-visible{color:#009630;text-decoration:underline;text-underline-offset:4px}
.contact-email-note{margin-top:14px;color:#5b6369;font-size:14px;line-height:1.6}
.contact-form{max-width:720px;margin:29px auto 0;padding:38px;background:#fff;box-shadow:0 4px 18px rgba(13,53,109,.08)}
.form-row+.form-row{margin-top:25px}
.form-row label{display:block;margin-bottom:9px;color:#0d356d;font-size:17px;font-weight:800}
.form-row label span{display:inline-flex;margin-left:7px;padding:2px 7px;background:#e76f32;color:#fff;font-size:12px;line-height:1.4}
.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid #bfc8ce;border-radius:0;background:#fff;color:#151515;font:inherit;font-size:17px;line-height:1.5}
.form-row input,.form-row select{height:52px;padding:10px 13px}
.form-row textarea{padding:13px;resize:vertical}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:3px solid rgba(47,107,54,.35);border-color:#2f6b36}
.form-status{margin-top:25px;padding:12px 14px;background:#f2f2f2;color:#4f4f4f;font-size:15px;text-align:center}
.contact-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:min(100%,310px);min-height:54px;margin:22px auto 0;border:0;background:#b8b8b8;color:#fff;font:inherit;font-size:17px;font-weight:800;cursor:not-allowed}
.contact-submit span{font-size:20px}
.contact-other-box{display:flex;align-items:center;gap:25px;max-width:720px;margin:46px auto 0;padding:30px 35px;border:1px solid #e0e4e5;background:#fff}
.contact-other-box>span{display:grid;flex:0 0 58px;width:58px;height:58px;place-items:center;border-radius:50%;background:#edf7f7;color:#0d356d;font-size:27px}
.contact-other-box h3{color:#0d356d;font-size:21px}
.contact-other-box p{margin-top:6px}
@media(max-width:700px){.contact-hero{height:175px}.contact-hero-copy{top:14px;right:16px;width:74%;padding:15px 17px}.contact-hero-copy h1{font-size:25px}.contact-hero-copy h1::after{width:58px;height:3px;margin-top:7px}.contact-hero-copy p{margin-top:8px;font-size:14px}.contact-section{padding:54px 0}.contact-container{width:min(calc(100% - 32px),var(--max))}.contact-heading h2{font-size:27px}.contact-guidance-inner,.contact-form-intro{margin-top:38px;font-size:16px}.contact-note{font-size:15px}.contact-email-box{margin-top:38px;padding:26px 18px}.contact-email-box>p:first-child{font-size:16px}.contact-email-link{font-size:20px}.contact-email-note{font-size:13px}.contact-form{margin-top:25px;padding:22px 18px}.form-row label{font-size:16px}.form-row input,.form-row select,.form-row textarea{font-size:16px}.contact-other-box{align-items:flex-start;gap:16px;margin-top:38px;padding:22px}.contact-other-box>span{flex-basis:46px;width:46px;height:46px;font-size:22px}.contact-other-box h3{font-size:18px}.contact-other-box p{font-size:15px;line-height:1.6}}


/* Contact form spacing refinement */
.contact-guidance{padding-bottom:52px}
.contact-form-section{padding-top:52px}
@media(max-width:700px){.contact-guidance{padding-bottom:36px}.contact-form-section{padding-top:36px}}


/* WordPress navigation output */
.global-nav>.menu{display:flex;align-items:center;gap:22px}
.global-nav>.menu a{position:relative;padding:26px 0}
.global-nav .current-menu-item>a,.global-nav .current_page_item>a{color:var(--link)}
.global-nav .current-menu-item>a::after,.global-nav .current_page_item>a::after{position:absolute;right:0;bottom:18px;left:0;height:3px;background:var(--yellow);content:""}
.footer-nav>.menu{display:flex;justify-content:flex-end;gap:18px}
.footer-nav>.menu li+li{border-left:1px solid #999;padding-left:18px}
@media(max-width:700px){.global-nav.is-open>.menu{display:flex;flex-direction:column;align-items:stretch;gap:0}.global-nav .current-menu-item>a::after,.global-nav .current_page_item>a::after{display:none}.footer-nav>.menu{flex-wrap:wrap;justify-content:flex-start;gap:10px}.footer-nav>.menu li+li{padding-left:10px}}

.news-pagination{margin-top:35px;text-align:center}.news-pagination .nav-links{display:flex;justify-content:center;gap:12px}.news-pagination a,.news-pagination .current{padding:6px 12px;border:1px solid #0d356d}.news-pagination .current{background:#0d356d;color:#fff}


/* Breadcrumb NavXT */
.breadcrumb-wrap{border-bottom:1px solid #e7e7e7;background:#fffdf8}
.breadcrumb-trail{width:min(calc(100% - 48px),var(--max));margin:auto;padding:10px 0;color:#53656b;font-size:13px;line-height:1.5}
.breadcrumb-trail a{color:#009630;text-decoration:none}
.breadcrumb-trail a:hover,.breadcrumb-trail a:focus-visible{color:#009630;text-decoration:underline}
.breadcrumb-trail .separator{display:inline-block;margin:0 9px;color:#e76f32}
.breadcrumb-trail .current-item{color:#151515}
@media(max-width:700px){.breadcrumb-trail{width:min(calc(100% - 32px),var(--max));padding:8px 0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb-trail .separator{margin:0 6px}}

/* Confirmed color system refinements */
/* Subpage visual titles use the updated blue. */
.about-hero-copy h1,
.activity-hero-copy h1,
.news-hero-copy h1,
.contact-hero-copy h1 {
  color:#0058a5;
  font-family:"Reggae One", sans-serif;
  font-weight:400;
}

/* About: staff and instrument identifiers use the updated blue. */
.member-summary article:nth-child(n + 2) span,
.member-summary article:nth-child(n + 2) h3,
.drum-icon {
  color:#0058a5;
  stroke:#0058a5;
}
.instrument-symbol,
.instrument-grid h4 {
  color:#0058a5;
}

/* Activity: only the event card icon changes to blue; card headings stay body color. */
.activity-points > a:nth-child(2) span {
  background:#0058a5;
}
.activity-points h3 {
  color:#111111;
}

/* Primary CTA buttons use mustard; text links retain the green link color. */
.instagram-band .button,
.activity-contact .button {
  background:#e5b93d;
  color:#111111;
}

.instagram-band .button:hover,
.instagram-band .button:focus-visible {
  background:#009630;
  color:#fff;
}

/* The page-top control is a utility action, visually distinct from CTAs. */
.page-top {
  background:#0058a5;
  color:#ffffff;
}

/* Shared layout refinements */
/* Keep the global navigation visible at every scroll position. */
.site-header,
.about-page .site-header,
.activity-page .site-header,
.contact-page .site-header,
.news-page .site-header {
  position:fixed;
  top:0;
  right:0;
  left:0;
  z-index:100;
}

body {
  padding-top:78px;
}

body.admin-bar .site-header {
  top:32px;
}

/* Reduce the Instagram invitation section to 80% of its former height. */
.instagram-inner {
  min-height:120px;
}

@media (max-width:900px) {
  body {
    padding-top:66px;
  }
}

@media (max-width:782px) {
  body.admin-bar .site-header {
    top:46px;
  }
}

@media (max-width:700px) {
  .site-header {
    position:fixed;
  }

  .instagram-inner {
    padding:22px 0;
    gap:16px;
  }
}

/* TOP hero controls */
.hero-controls {
  position:static;
}

.hero-arrow {
  position:absolute;
  top:50%;
  bottom:auto;
  z-index:2;
  display:grid;
  width:81px;
  height:81px;
  padding:0;
  place-items:center;
  border:0;
  background:transparent;
  color:#0058a5;
  font-size:70.5px;
  line-height:1;
  transform:translateY(-50%);
}

.hero-arrow:hover,
.hero-arrow:focus-visible {
  background:transparent;
  color:#009630;
}

.hero-arrow:focus-visible {
  outline:3px solid #009630;
  outline-offset:-8px;
}

.hero-prev {
  left:-6.5px;
}

.hero-next {
  right:-6.5px;
}

.hero-dots {
  position:absolute;
  bottom:20px;
  left:50%;
  z-index:2;
  gap:15px;
  transform:translateX(-50%);
}

.hero-dots button {
  border-color:#888888;
  background:transparent;
}

.hero-dots .is-active {
  background:#888888;
}

@media (max-width:700px) {
  .hero-arrow {
    width:57px;
    height:63px;
    font-size:54px;
  }

  .hero-prev {
    left:-12px;
  }

  .hero-next {
    right:-12px;
  }

  .hero-dots {
    bottom:12px;
  }
}

/* Subpage hero title panels */
.about-hero-copy,
.activity-hero-copy,
.news-hero-copy,
.contact-hero-copy {
  background:rgba(255,255,255,.70);
}

/* Activity contact CTA alignment */
.activity-contact > div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:min(calc(100% - 48px),var(--max));
  margin:auto;
  gap:32px;
}

.activity-contact p {
  text-align:left;
}

.activity-contact .button {
  margin-top:0;
}

@media (max-width:700px) {
  .activity-contact > div {
    align-items:flex-start;
    flex-direction:column;
    width:min(calc(100% - 32px),var(--max));
    gap:20px;
  }
}

/* About repertoire */
.about-repertoire {
  background:#fffdf8;
}

.repertoire-lead,
.repertoire-note {
  max-width:720px;
  margin-right:auto;
  margin-left:auto;
  text-align:center;
}

.repertoire-list {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  max-width:960px;
  margin:36px auto 0;
  border-top:1px solid #d9dfe5;
  border-bottom:1px solid #d9dfe5;
}

.repertoire-list li {
  min-height:86px;
  padding:16px;
  border-left:1px solid #d9dfe5;
  font-size:17px;
  font-weight:700;
  line-height:1.45;
  text-align:center;
}

.repertoire-list li:first-child {
  border-left:0;
}

.repertoire-note {
  margin-top:24px;
  font-size:16px;
}

@media (max-width:700px) {
  .repertoire-lead,
  .repertoire-note {
    font-size:16px;
    line-height:1.7;
    text-align:left;
  }

  .repertoire-list {
    grid-template-columns:1fr;
    margin-top:26px;
  }

  .repertoire-list li {
    display:flex;
    align-items:center;
    min-height:0;
    padding:15px 14px;
    border-top:1px solid #d9dfe5;
    border-left:0;
    font-size:16px;
    text-align:left;
  }

  .repertoire-list li:first-child {
    border-top:0;
  }
}

/* About repertoire spacing and list refinement */
.about-members {
  padding-bottom:30px;
}

.about-repertoire {
  padding-top:30px;
}

.repertoire-list {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  margin-top:24px;
  padding-left:0;
  list-style:none;
}

.repertoire-list li {
  display:flex;
  align-items:center;
  min-height:68px;
  padding:14px 20px;
  border-top:1px solid #d9dfe5;
  border-left:0;
  color:#0058a5;
  font-size:18px;
  text-align:left;
}

.repertoire-list li:nth-child(odd) {
  border-right:1px solid #d9dfe5;
}

.repertoire-list li::before {
  flex:none;
  margin-right:10px;
  color:#0058a5;
  content:"♪";
  font-size:20px;
}

@media (max-width:700px) {
  .about-members {
    padding-bottom:24px;
  }

  .about-repertoire {
    padding-top:24px;
  }

  .repertoire-list {
    margin-top:20px;
  }

  .repertoire-list li {
    padding:14px 12px;
    border-right:0;
  }

  .repertoire-list li:nth-child(odd) {
    border-right:0;
  }
}

/* Repertoire growing-message card */
.repertoire-list .repertoire-more {
  justify-content:flex-start;
  background:#edf7f7;
  color:#0058a5;
  font-size:16px;
  text-align:left;
}

.repertoire-list .repertoire-more::before {
  content:none;
}

@media (max-width:700px) {
  .repertoire-list .repertoire-more {
    justify-content:flex-start;
    text-align:left;
  }
}

/* Supplied instrument icons */
.instrument-image {
  display:block;
  width:100%;
  max-width:100px;
  height:78px;
  margin:0 auto;
  object-fit:contain;
}

@media (max-width:700px) {
  .instrument-image {
    max-width:82px;
    height:64px;
  }
}

/* News-page dates match the TOP news list. */
.notice-list li {
  grid-template-columns:120px 112px 1fr;
}

.notice-list time {
  font-family:Arial,sans-serif;
  font-size:16px;
  font-weight:400;
  white-space:nowrap;
}

@media (max-width:700px) {
  .notice-list time {
    font-size:12px;
  }
}

/* Category-separated post lists */
.news-post-list {
  max-width:880px;
  margin:35px auto 0;
  padding:0;
  border-top:1px solid #dfe3e5;
  list-style:none;
}

.news-post-list li {
  display:grid;
  grid-template-columns:120px 36px minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding:18px 8px;
  border-bottom:1px solid #dfe3e5;
}

.news-post-list time {
  font-family:Arial,sans-serif;
  font-size:16px;
  font-weight:400;
  white-space:nowrap;
}

.category-icon {
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:50%;
  background:#0058a5;
  color:#ffffff;
  font-family:Arial,sans-serif;
  font-size:20px;
  font-weight:700;
  line-height:1;
}

.category-icon--notice {
  font-size:18px;
  font-family:Arial,sans-serif;
  font-weight:800;
}

.news-post-list a {
  color:#111111;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
}

.news-post-list a:hover,
.news-post-list a:focus-visible {
  color:#009630;
  text-decoration:underline;
}

.schedule-empty > .category-icon {
  flex:0 0 65px;
  width:65px;
  height:65px;
  background:#0058a5;
  color:#ffffff;
  font-size:36px;
}

@media (max-width:700px) {
  .news-post-list {
    margin-top:26px;
  }

  .news-post-list li {
    grid-template-columns:78px 30px minmax(0,1fr);
    gap:12px;
    padding:14px 0;
  }

  .news-post-list time,
  .news-post-list a {
    font-size:12px;
  }

  .news-post-list a {
    font-size:15px;
  }

  .category-icon {
    width:26px;
    height:26px;
    font-size:17px;
  }

  .category-icon--notice {
    font-size:16px;
  }
}

/* News category icon refinement */
.category-icon--schedule {
  background:#e76f32;
  color:#ffffff;
}

.category-icon--notice {
  width:32px;
  height:32px;
  background:#0058a5;
  color:#ffffff;
  font-family:Georgia, "Times New Roman", serif;
  font-size:31px;
  font-weight:700;
  line-height:.75;
}

@media (max-width:700px) {
  .category-icon--notice {
    width:28px;
    height:28px;
    font-size:27px;
  }
}

/* Keep the schedule and notice pictograms visually balanced. */
.category-icon--schedule,
.category-icon--notice {
  width:32px;
  height:32px;
}

.category-icon--schedule {
  font-size:26px;
}

.category-icon--notice {
  font-size:25px;
  line-height:.82;
}

@media (max-width:700px) {
  .category-icon--schedule,
  .category-icon--notice {
    width:26px;
    height:26px;
  }

  .category-icon--schedule {
    font-size:21px;
  }

  .category-icon--notice {
    font-size:21px;
  }
}


/* Post detail pages */
.post-detail-hero {
  background:#edf7f7;
}

.post-detail-hero__inner,
.post-detail-content {
  width:min(calc(100% - 48px), 880px);
  margin:0 auto;
}

.post-detail-hero__inner {
  padding:66px 0 60px;
}

.post-detail-meta {
  display:flex;
  align-items:center;
  gap:10px;
  color:#53656b;
  font-family:Arial, sans-serif;
  font-size:15px;
}

.post-detail-meta .category-icon {
  flex:0 0 auto;
}

.post-detail-category {
  color:#0058a5;
  font-weight:700;
}

.post-detail-meta time {
  margin-left:8px;
}

.post-detail-hero h1 {
  margin-top:22px;
  color:#111111;
  font-size:clamp(30px, 4vw, 48px);
  line-height:1.35;
}

.post-detail-content {
  padding:58px 0 76px;
}

.event-information {
  margin-bottom:44px;
  padding:30px 34px;
  border-left:6px solid #e5b93d;
  background:#fff8e8;
}

.event-information h2 {
  color:#0058a5;
  font-size:22px;
}

.event-information dl {
  margin-top:16px;
}

.event-information dl > div {
  display:grid;
  grid-template-columns:74px minmax(0, 1fr);
  gap:16px;
  padding:13px 0;
  border-top:1px solid rgba(0, 88, 165, .2);
}

.event-information dt {
  color:#0058a5;
  font-weight:800;
}

.event-information dd {
  margin:0;
  font-weight:600;
}

.post-detail-body {
  max-width:760px;
  font-size:17px;
  line-height:2;
}

.post-detail-body > * + * {
  margin-top:1.65em;
}

.post-detail-body h2,
.post-detail-body h3 {
  color:#0058a5;
  line-height:1.45;
}

.post-detail-body h2 {
  margin-top:2.3em;
  font-size:28px;
}

.post-detail-body h3 {
  margin-top:2em;
  font-size:22px;
}

.post-detail-body img {
  width:auto;
  max-width:100%;
  height:auto;
}

.post-detail-body .wp-block-image {
  margin-right:0;
  margin-left:0;
}

.post-detail-body .wp-block-image figcaption {
  margin-top:8px;
  color:#53656b;
  font-size:13px;
  line-height:1.6;
}

.post-detail-back {
  margin-top:60px;
  text-align:center;
}

.post-detail-back a {
  display:inline-block;
  color:#009630;
  font-weight:700;
  text-decoration:none;
}

.post-detail-back a::after {
  margin-left:9px;
  content:"→";
}

.post-detail-back a:hover,
.post-detail-back a:focus-visible {
  color:#009630;
  text-decoration:underline;
  text-underline-offset:3px;
}

@media (max-width:700px) {
  .post-detail-hero__inner,
  .post-detail-content {
    width:min(calc(100% - 32px), 880px);
  }

  .post-detail-hero__inner {
    padding:42px 0 38px;
  }

  .post-detail-meta {
    gap:8px;
    font-size:12px;
  }

  .post-detail-meta time {
    margin-left:4px;
  }

  .post-detail-hero h1 {
    margin-top:16px;
    font-size:29px;
  }

  .post-detail-content {
    padding:38px 0 56px;
  }

  .event-information {
    margin-bottom:32px;
    padding:23px 20px;
    border-left-width:4px;
  }

  .event-information h2 {
    font-size:19px;
  }

  .event-information dl > div {
    grid-template-columns:58px minmax(0, 1fr);
    gap:10px;
    padding:11px 0;
    font-size:15px;
  }

  .post-detail-body {
    font-size:16px;
    line-height:1.9;
  }

  .post-detail-body h2 {
    font-size:23px;
  }

  .post-detail-body h3 {
    font-size:19px;
  }

  .post-detail-back {
    margin-top:44px;
    font-size:15px;
  }
}


/* Schedule details: lead text and event facts share one panel. */
.event-information {
  padding:0 34px 8px;
}

.event-information__body {
  max-width:none;
  padding:30px 0 28px;
  font-size:18px;
  font-weight:400;
  line-height:1.8;
}

.event-information__body > * + * {
  margin-top:1.1em;
}

.event-information__body p {
  font-size:inherit;
  font-weight:400;
}

.event-information dl {
  margin-top:0;
}

@media (max-width:700px) {
  .event-information {
    padding:0 20px 8px;
  }

  .event-information__body {
    padding:22px 0 20px;
    font-size:17px;
    line-height:1.75;
  }
}


/* Breadcrumb NavXT outputs one separator after the final item. */
.breadcrumb-trail > .separator:last-child {
  display:none;
}


/* Align list dates toward their category icons. */
.news-post-list time {
  justify-self:end;
  text-align:right;
}


/* Bring category pictograms closer to post titles without shifting the title column. */
.news-post-list .category-icon {
  transform:translateX(8px);
}

@media (max-width:700px) {
  .news-post-list .category-icon {
    transform:translateX(5px);
  }
}


/* TOP news list follows the same category-icon treatment as the news page. */
.news-list li {
  grid-template-columns:76px 36px minmax(0, 1fr) 24px;
  gap:18px;
  min-height:0;
  padding:18px 8px;
  border-color:#dfe3e5;
}

.news-list time {
  font-family:Arial, sans-serif;
  font-size:16px;
  font-weight:400;
  white-space:nowrap;
}

.news-list .category-icon {
  transform:translateX(8px);
}

.news-list a {
  color:#111111;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
}

.news-list .news-list-arrow {
  color:#0058a5;
  font-size:26px;
  line-height:1;
}

.news-list li:hover .news-list-arrow,
.news-list li:focus-within .news-list-arrow {
  color:#009630;
}

@media (max-width:700px) {
  .news-list li {
    grid-template-columns:59px 30px minmax(0, 1fr) 14px;
    gap:12px;
    padding:14px 0;
  }

  .news-list time {
    font-size:12px;
  }

  .news-list .category-icon {
    transform:translateX(5px);
  }

  .news-list a {
    font-size:15px;
  }

  .news-list .news-list-arrow {
    font-size:20px;
  }
}


/* Halve the space from each subpage hero and breadcrumb to its first section heading. */
.about-intro,
.activity-overview,
.schedule-section,
.contact-guidance {
  padding-top:39px;
}

@media (max-width:700px) {
  .about-intro,
  .activity-overview,
  .schedule-section,
  .contact-guidance {
    padding-top:27px;
  }
}


/* Tighten the transition from a post title to its breadcrumb and body. */
.post-detail-hero__inner {
  padding-bottom:30px;
}

.post-detail-content {
  padding-top:28px;
}

@media (max-width:700px) {
  .post-detail-hero__inner {
    padding-bottom:20px;
  }

  .post-detail-content {
    padding-top:20px;
  }
}


/* PICK UP EVENT featured-image link */
.pickup-image-link {
  display:block;
  min-height:240px;
  height:100%;
}

@media (max-width:700px) {
  .pickup-image-link {
    min-height:190px;
  }
}

/* TOP page photo assets */
.top-feature-image {
  display:block;
  width:100%;
  min-height:240px;
  height:100%;
  object-fit:cover;
  object-position:center 52%;
}

.top-activity-image {
  display:block;
  width:100%;
  height:185px;
  object-fit:cover;
  object-position:center;
}

@media (max-width:700px) {
  .top-feature-image {
    min-height:190px;
  }

  .top-activity-image {
    height:110px;
  }
}

.pickup-coming-soon-image {
  display:block;
  width:100%;
  min-height:240px;
  height:100%;
  object-fit:contain;
  background:#fafafa;
}

@media (max-width:700px) {
  .pickup-coming-soon-image {
    min-height:190px;
  }
}

/* Keep the Coming Soon artwork and its copy vertically aligned. */
.feature-card--coming-soon {
  align-items:center;
}

.pickup-coming-soon-image {
  align-self:center;
  min-height:0;
  height:auto;
  background:#e5e5e5;
}

.feature-card--coming-soon .feature-body {
  align-self:center;
}

@media (max-width:700px) {
  .pickup-coming-soon-image {
    min-height:0;
  }
}

/* A 4:3 landscape panel keeps the Coming Soon artwork contained. */
.pickup-coming-soon-frame {
  display:grid;
  width:100%;
  aspect-ratio:4 / 3;
  place-items:center;
  background:#e5e5e5;
}

.pickup-coming-soon-frame .pickup-coming-soon-image {
  width:100%;
  height:100%;
  object-fit:contain;
  background:transparent;
}

/* Center each side of PICK UP EVENT independently of the image dimensions. */
.pickup .feature-card {
  align-items:center;
}

.pickup .feature-card > .feature-body,
.pickup .feature-card > .pickup-image-link,
.pickup .feature-card > .pickup-coming-soon-frame {
  align-self:center;
}

.pickup .pickup-image-link {
  min-height:0;
  height:auto;
}

/* Compact the date, time and venue lines in the TOP PICK UP EVENT card. */
.pickup .feature-body > .eyebrow {
  color:#C95524;
  margin-bottom:4px;
  line-height:1.4;
}

.pickup .feature-body > .eyebrow + h3 {
  margin-top:10px;
}

/* The PICK UP EVENT title is also a clear link to its detail page. */
.pickup-title-link {
  color:#111;
  text-decoration:none;
  transition:color .2s ease;
}

.pickup-title-link:hover,
.pickup-title-link:focus-visible {
  color:#009630;
}


/* PICK UP EVENT detail page: familiar information flow with a distinct event identity. */
.pickup-event-hero {
  background:#f7f2eb;
  border-bottom:6px solid #e76f32;
}

.pickup-event-hero__inner,
.pickup-event-detail__content {
  width:min(calc(100% - 48px), 880px);
  margin:0 auto;
}

.pickup-event-hero__inner {
  padding:60px 0 52px;
}

.pickup-event-hero__label {
  color:#c95524;
  font-family:Arial, sans-serif;
  font-size:15px;
  font-weight:800;
  letter-spacing:.15em;
}

.pickup-event-hero h1 {
  margin-top:14px;
  color:#111;
  font-size:clamp(32px, 4.3vw, 52px);
  line-height:1.3;
}

.pickup-event-detail__content {
  padding:38px 0 76px;
}

.pickup-event-detail__image {
  margin:0;
  overflow:hidden;
  background:#eeeeee;
}

.pickup-event-detail__image img {
  display:block;
  width:100%;
  height:auto;
}

.pickup-event-overview {
  margin:34px 0 28px;
  padding:0 0 0 24px;
  border-left:6px solid #e76f32;
  font-size:20px;
  font-weight:400;
  line-height:1.75;
}

.pickup-event-overview p {
  margin:0;
}

.pickup-event-information {
  margin-bottom:42px;
  padding:12px 34px 8px;
  border-left:6px solid #e5b93d;
  background:#fff8e8;
}

.pickup-event-information dl {
  margin:0;
}

.pickup-event-information dl > div {
  display:grid;
  grid-template-columns:74px minmax(0, 1fr);
  gap:16px;
  padding:13px 0;
  border-top:1px solid rgba(0, 88, 165, .2);
}

.pickup-event-information dl > div:first-child {
  border-top:0;
}

.pickup-event-information dt {
  color:#0058a5;
  font-weight:800;
}

.pickup-event-information dd {
  margin:0;
  font-weight:600;
}

.pickup-event-detail__body {
  max-width:760px;
  font-size:17px;
  line-height:2;
}

.pickup-event-detail__body > * + * {
  margin-top:1.65em;
}

.pickup-event-detail__body h2,
.pickup-event-detail__body h3 {
  color:#0058a5;
  line-height:1.45;
}

.pickup-event-detail__body h2 {
  margin-top:2.3em;
  font-size:28px;
}

.pickup-event-detail__body h3 {
  margin-top:2em;
  font-size:22px;
}

/* Keep each PICK UP EVENT heading visually close to the content it introduces. */
.pickup-event-detail__body h2 + p,
.pickup-event-detail__body h2 + ul,
.pickup-event-detail__body h3 + p,
.pickup-event-detail__body h3 + ul {
  margin-top:1em;
}

.pickup-event-detail__body img {
  max-width:100%;
  height:auto;
}

.pickup-event-detail .pickup-event-detail__body a {
  color:#009630;
  text-decoration:none;
}

.pickup-event-detail .pickup-event-detail__body a:hover,
.pickup-event-detail .pickup-event-detail__body a:focus-visible {
  color:#009630;
  text-decoration:underline;
  text-underline-offset:3px;
}

.pickup-event-detail__back {
  margin-top:60px;
  text-align:center;
}

.pickup-event-detail__back a {
  display:inline-block;
  color:#009630;
  font-weight:700;
  text-decoration:none;
}

.pickup-event-detail__back a::after {
  margin-left:9px;
  content:"→";
}

.pickup-event-detail__back a:hover,
.pickup-event-detail__back a:focus-visible {
  color:#009630;
  text-decoration:underline;
  text-underline-offset:3px;
}

@media (max-width:700px) {
  .pickup-event-hero__inner,
  .pickup-event-detail__content {
    width:min(calc(100% - 32px), 880px);
  }

  .pickup-event-hero__inner {
    padding:42px 0 36px;
  }

  .pickup-event-hero__label {
    font-size:12px;
  }

  .pickup-event-hero h1 {
    margin-top:10px;
    font-size:30px;
  }

  .pickup-event-detail__content {
    padding:24px 0 56px;
  }

  .pickup-event-overview {
    margin:26px 0 24px;
    padding-left:16px;
    border-left-width:4px;
    font-size:18px;
    line-height:1.7;
  }

  .pickup-event-information {
    margin-bottom:32px;
    padding:8px 20px 6px;
    border-left-width:4px;
  }

  .pickup-event-information dl > div {
    grid-template-columns:58px minmax(0, 1fr);
    gap:10px;
    padding:11px 0;
    font-size:15px;
  }

  .pickup-event-detail__body {
    font-size:16px;
    line-height:1.9;
  }

  .pickup-event-detail__body h2 {
    font-size:23px;
  }

  .pickup-event-detail__body h3 {
    font-size:19px;
  }

  .pickup-event-detail__back {
    margin-top:44px;
    font-size:15px;
  }
}


/* Detail-page image and list treatment for PICK UP EVENT. */
.pickup-event-detail__image {
  width:min(100%, 520px);
  margin-right:auto;
  margin-left:auto;
}

.pickup-event-detail__body ul {
  margin-left:0;
  padding-left:0;
  list-style:none;
}

.pickup-event-detail__body ul li {
  position:relative;
  padding-left:1.1em;
}

.pickup-event-detail__body ul li::before {
  position:absolute;
  top:-.08em;
  left:-.28em;
  color:#e76f32;
  font-size:2em;
  line-height:1;
  content:"・";
}


/* Let the About-page lead use enough desktop width for its single-sentence introduction. */
.about-lead {
  max-width:980px;
}


/* Preserve the compact spacing at small markers; leave room before the final marker. */
.history-list li::after {
  top:18px;
  bottom:-28px;
}

.history-list li:nth-last-child(2)::after {
  top:36px;
  bottom:-4px;
}


/* Keep the final stem, while ending the preceding stem behind its small marker. */
.history-list li:nth-last-child(2)::after {
  display:block;
}

.history-list li:nth-last-child(3)::after {
  bottom:-3px;
}


/* One connector rule for every timeline interval. */
.history-list li::after,
.history-list li:nth-last-child(2)::after,
.history-list li:nth-last-child(3)::after {
  top:34px;
  bottom:-2px;
  display:block;
}

.history-list li:last-child::after {
  display:none;
}


/* Contact Form 7 uses the existing contact-form layout and active CTA styling. */
.contact-form-section .contact-submit {
  border-radius:4px;
  background:#e5b93d;
  color:#111;
  cursor:pointer;
  text-align:center;
}

.contact-form-section .contact-submit:hover,
.contact-form-section .contact-submit:focus-visible {
  background:#009630;
  color:#fff;
}


/* Practice gallery photos */
.activity-practice-photo {
  display:block;
  width:100%;
  min-height:230px;
  height:230px;
  object-fit:cover;
}

@media (max-width:700px) {
  .activity-practice-photo {
    min-height:185px;
    height:185px;
  }
}


/* Links inside post and event body content */
.entry-content a {
  color:#111111;
  text-decoration:none;
}

.entry-content a:hover,
.entry-content a:focus-visible {
  color:#009630;
  text-decoration:underline;
}

.single .entry-content a {
  color:#009630;
}

.single .entry-content a:hover,
.single .entry-content a:focus-visible {
  color:#009630;
  text-decoration:underline;
  text-underline-offset:3px;
}

.event-youtube { display:flex; align-items:center; justify-content:center; gap:18px; min-height:184px; margin-top:37px; padding:32px; border:2px solid #e76f32; background:#fff8f3; color:#111; text-align:center; text-decoration:none; transition:background-color .2s ease, border-color .2s ease, color .2s ease; }
.event-youtube__icon { display:grid; flex:0 0 auto; width:58px; height:42px; place-items:center; border-radius:10px; background:#e76f32; color:#fff; font-size:20px; }
.event-youtube strong,.event-youtube small { display:block; }
.event-youtube strong { font-size:22px; }
.event-youtube small { margin-top:9px; color:#009630; font-size:15px; font-weight:800; }
.event-youtube:hover,.event-youtube:focus-visible { border-color:#009630; background:#f2fbf4; }
.event-youtube:hover small,.event-youtube:focus-visible small { text-decoration:underline; text-underline-offset:3px; }
.event-youtube:focus-visible { outline:3px solid #e5b93d; outline-offset:3px; }
@media (max-width:700px) { .event-youtube { min-height:148px; gap:13px; margin-top:27px; padding:24px 16px; } .event-youtube__icon { width:48px; height:35px; font-size:16px; } .event-youtube strong { font-size:18px; } .event-youtube small { margin-top:7px; font-size:14px; } }


/* YouTube card layout */
.event-youtube {
  flex-direction:column;
  gap:12px;
}

.event-youtube__headline {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
}

.event-youtube__icon {
  display:block;
  width:60px;
  height:auto;
  border-radius:0;
  background:transparent;
}

.event-youtube small {
  margin-top:0;
}

@media (max-width:700px) {
  .event-youtube__headline {
    gap:11px;
  }

  .event-youtube__icon {
    width:48px;
    height:auto;
  }
}


/* Break the YouTube channel name at a deliberate point on mobile. */
.event-youtube__mobile-break { display:none; }
@media (max-width:700px) { .event-youtube__mobile-break { display:inline; } }


/* Align the mobile two-line channel name while preserving space from the icon. */
@media (max-width:700px) {
  .event-youtube__headline { gap:16px; }
  .event-youtube strong { line-height:1.5; text-align:left; }
}


/* Activity page only: increase main-visual panel opacity. */
.activity-hero-copy { background:rgba(255,255,255,.82); }


/* Practice information at the end of the About page. */
.about-practice { padding:30px 0 78px; }
.about-practice__card { max-width:760px; margin:0 auto; padding:34px 42px; background:#fff8e8; }
.about-practice__card > p { color:#e76f32; font-size:14px; font-weight:800; letter-spacing:.14em; }
.about-practice__card h2 { margin-top:5px; color:#0058a5; font-size:28px; }
.about-practice__card dl { margin-top:18px; }
.about-practice__card dl > div { display:grid; grid-template-columns:92px minmax(0, 1fr); gap:18px; padding:14px 0; border-top:1px solid rgba(0,88,165,.2); font-size:18px; }
.about-practice__card dt { color:#0058a5; font-weight:800; }
.about-practice__card dd { margin:0; font-weight:600; }
@media (max-width:700px) { .about-practice { padding:24px 0 54px; } .about-practice__card { padding:25px 20px; } .about-practice__card h2 { font-size:24px; } .about-practice__card dl > div { grid-template-columns:72px minmax(0, 1fr); gap:10px; padding:12px 0; font-size:16px; } }


/* Practice information heading follows the About-page section-title design. */
.about-practice__card h2 { position:relative; margin:0; padding-bottom:18px; color:#111; font-size:clamp(29px,3vw,42px); line-height:1.3; text-align:center; }
.about-practice__card h2::after { position:absolute; bottom:0; left:50%; width:82px; height:4px; background:#e5b93d; content:""; transform:translateX(-50%); }
@media (max-width:700px) { .about-practice__card h2 { padding-bottom:14px; font-size:27px; } .about-practice__card h2::after { width:58px; height:3px; } }


/* On mobile, place the Instagram link at the bottom of the opened menu. */
.instagram-icon--mobile { display:none; }
@media (max-width:700px) {
  .header-inner > .instagram-icon:not(.instagram-icon--mobile) { display:none; }
  .global-nav .instagram-icon--mobile { display:flex; align-items:center; gap:8px; margin-top:4px; padding:15px 0 2px; border-bottom:0; color:#111; font-weight:700; }
  .global-nav .instagram-icon--mobile img { width:28px; height:28px; }
  .global-nav .instagram-icon--mobile span { color:#009630; }
}


/* Header logo: compact on mobile only. */
@media (max-width:700px) { .site-header .logo img { width:210px; } }


/* Mobile menu: make each WordPress navigation link occupy its own row. */
@media (max-width:700px) {
  .global-nav.is-open > .menu > li > a {
    display:block;
    padding:11px 0;
  }
}

/* Keep responsive hero sources aligned with the slide frame. */
.hero-slide picture {
  display:block;
  width:100%;
  height:100%;
}

/* On phones, show the left-side message of the third hero first. */
@media (max-width:700px) {
  .hero-slide:nth-child(2) img {
    transform:translateX(16%) scale(1.25);
    transform-origin:center center;
  }

  .hero-slide:nth-child(3) img { object-position:left center; }
  .hero-slide:nth-child(3)::after {
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:22%;
    height:36%;
    background:#fff;
  }
}

/* Glass-like surface and a clear current-page cue in the opened mobile menu. */
@media (max-width:700px) {
  .global-nav.is-open {
    background:rgba(255,255,255,.72);
    border-top:1px solid rgba(255,255,255,.72);
    -webkit-backdrop-filter:blur(12px) saturate(120%);
    backdrop-filter:blur(12px) saturate(120%);
  }

  .global-nav.is-open .current-menu-item > a,
  .global-nav.is-open .current_page_item > a {
    padding-right:10px;
    padding-left:10px;
    border-radius:4px;
    background:rgba(0,150,48,.10);
  }
}

/* Keep page content below the fixed mobile header. */
@media (max-width:700px) {
  body {
    padding-top:66px;
  }

  .site-header {
    position:fixed;
  }

  /* The WordPress toolbar is hidden on this site, so do not retain its offset. */
  body.admin-bar .site-header {
    top:0;
  }
}

/* Keep the two post-category sections visually connected. */
.schedule-section {
  padding-bottom:40px;
}

.notice-section {
  padding-top:42px;
}

@media (max-width:700px) {
  .schedule-section {
    padding-bottom:30px;
  }

  .notice-section {
    padding-top:30px;
  }
}
