
.hero-photo{
  position:relative;
  height:clamp(640px,calc(100svh - 116px),800px);
  min-height:640px;
  display:flex;
  align-items:flex-end;
  padding:0;
  margin-bottom: 60px;
  overflow: visible;
}
.hero-photo-media{ position:absolute; inset:0; overflow:hidden; background:var(--brown-dark); }
.hero-photo-media img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position: center 22%;
  opacity:0;
  animation: heroSlide 21s infinite ease-in-out;
  will-change: opacity, transform;
}
.hero-photo-media img:nth-child(1){ animation-delay: 0s; object-position: center 20%; }
.hero-photo-media img:nth-child(2){ animation-delay: -7s; object-position: center 42%; }
.hero-photo-media img:nth-child(3){ animation-delay: -14s; object-position: center 26%; }
@keyframes heroSlide{
  0%     { opacity:0; transform: scale(1); }
  2%     { opacity:1; }
  38%    { opacity:1; transform: scale(1.09); }
  43%    { opacity:0; transform: scale(1.09); }
  100%   { opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .hero-photo-media img{ animation: none; opacity:1; }
  .hero-photo-media img:not(:first-child){ display:none; }
}
.hero-photo-scrim{
  position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(68,49,26,0.62) 0%, rgba(68,49,26,0.28) 32%, rgba(68,49,26,0.05) 55%, transparent 70%),
              linear-gradient(0deg, rgba(68,49,26,0.55) 0%, transparent 40%);
}
.hero-photo-text{
  position:absolute; top:44px; left:32px;
  display:flex;
  flex-direction:row-reverse;
  align-items:flex-start;
  gap:10px;
  height:440px;
  z-index:2;
  white-space:nowrap;
}
.hero-col{
  display:inline-block;
  vertical-align:top;
  height:100%;
  margin:0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size:clamp(1.2rem,2.2vw,1.75rem);
  font-weight:900; color:#fff; line-height:1.75;
  text-shadow: 0 3px 14px rgba(0,0,0,0.35);
}
.hero-col.accent{ color: var(--yellow); }
.hero-side-tabs{
  position:fixed; top:50%; right:0;
  display:flex; flex-direction:column; align-items:flex-end; gap:3px;
  z-index:90;
  transform:translateY(-50%);
}
.side-tab{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  min-width:46px;
  background:#fff;
  color: var(--brown-dark);
  font-weight:700; font-size:0.78rem;
  padding:11px 8px 15px;
  border-radius: 10px 0 0 10px;
  box-shadow:none;
  transition:padding-left .18s ease;
}
.side-tab-label{writing-mode:vertical-rl;text-orientation:mixed;line-height:1.25;}
.side-tab-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;}
.side-tab-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.side-tab:hover{padding-left:13px;}
.side-tab.side-tab-alt{ background:var(--yellow); }
.hero-cta-block{
  position:absolute;
  right:auto;
  bottom:24px;
  left:50%;
  width:min(calc(100% - 64px),1050px);
  transform:translateX(-50%);
  z-index:5;
  display:grid;
  grid-template-columns:max-content max-content;
  justify-content:center;
  align-items:center;
  gap:clamp(40px,8vw,90px);
  max-width:1050px;
  padding:22px 28px 22px 32px;
  border-radius:22px;
  background:rgba(255,255,255,.9);
  color:var(--brown-dark);
  box-sizing: border-box;
  min-width:0;
}
.hero-cta-block .eyebrow{
  display:block;
  margin:0;
  padding:0;
  border-radius:0;
  background:transparent;
  color:var(--orange-deep);
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:1.05rem;
  font-weight:900;
  letter-spacing:.04em;
  text-align:center;
  text-shadow:none;
  white-space:nowrap;
  justify-self:center;
}
.hero-cta-block .btn{justify-self:center;padding:13px 22px;border-radius:12px;box-shadow:none;font-size:.92rem;white-space:nowrap;}
.hero-cta-block .btn::after{
  content:"";
  display:block;
  flex:0 0 19px;
  width:19px;
  height:19px;
  border-radius:50%;
  background-color:var(--white);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cpath d='M8.5 6.5l4 4-4 4' fill='none' stroke='%23f39700' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position:center;
  background-repeat:no-repeat;
  background-size:19px 19px;
}
.hero-cta-block .hero-sub{
  font-weight:700; margin: 16px 0 24px; font-size:1.02rem;
  text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
.hero-dot{ position:absolute; border-radius:50%; z-index:4; }
.hero-dot-yellow{ width:118px; height:118px; background: var(--yellow); left:-24px; bottom:-42px; }
.hero-dot-dotted{
  width:84px; height:84px; left:78px; bottom:-64px;
  background-image: radial-gradient(var(--orange) 2.2px, transparent 2.2px);
  background-size:11px 11px; opacity:0.7;
}
.hero-dot-stripe{
  width:66px; height:66px; right:74px; bottom:-26px;
  background: repeating-linear-gradient(0deg, var(--brown-dark) 0 3px, transparent 3px 7px);
  opacity:0.85;
}

@media (max-width:1100px) and (min-width:861px){
  .hero-cta-block{
    right:64px;
    left:64px;
    width:auto;
    max-width:none;
    transform:none;
    grid-template-columns:.95fr 1.05fr;
    justify-content:stretch;
    gap:18px;
    padding:13px 18px;
  }
  .hero-cta-block .eyebrow{font-size:.86rem;line-height:1.45;white-space:normal;}
  .hero-cta-block .btn{max-width:100%;padding:10px 13px;font-size:.8rem;}
}

@media (max-width: 860px){
  .hero-photo{height:clamp(520px,calc(100svh - 92px),680px);min-height:520px;margin-bottom:52px;}
  .hero-side-tabs{ top:44%; gap:2px; }
  .side-tab{ min-width:42px; gap:5px; padding:9px 6px 12px; border-radius:8px 0 0 8px; font-size:.68rem; }
  .side-tab-icon{width:17px;height:17px;}
  .side-tab:hover{padding-left:11px;}
  .hero-photo-text{ top:28px; left:20px; height:350px; }
  .hero-photo-text{gap:6px;}
  .hero-col{font-size:1rem; line-height:1.6;}
  .hero-cta-block{right:28px;bottom:12px;left:28px;width:auto;max-width:none;transform:none;grid-template-columns:.95fr 1.05fr;justify-content:stretch;gap:12px;padding:11px 14px;border-radius:14px;}
  .hero-cta-block .eyebrow{font-size:.78rem;line-height:1.5;}
  .hero-cta-block .btn{padding:10px 13px;font-size:.74rem;}
}
@media (max-width:760px){
  .hero-side-tabs{display:none;}
  .hero-photo-text{top:108px;}
}
@media (max-width:600px){
  .hero-cta-block{right:14px;bottom:10px;left:14px;grid-template-columns:1fr;gap:8px;padding:12px 10px;border-radius:13px;}
  .hero-cta-block .eyebrow{max-width:100%;font-size:.66rem;line-height:1.45;white-space:normal;}
  .hero-cta-block .btn{width:max-content;max-width:100%;padding:9px 12px;font-size:.66rem;line-height:1.35;}
  .hero-cta-block .btn::after{flex-basis:17px;width:17px;height:17px;background-size:17px 17px;}
}
@media (max-width:420px){
  .hero-cta-block{right:10px;bottom:8px;left:10px;gap:6px;padding:10px 7px;}
  .hero-cta-block .eyebrow{max-width:100%;font-size:.64rem;line-height:1.45;white-space:normal;}
  .hero-cta-block .btn{padding:8px 8px;font-size:.64rem;}
}


.about-section{padding-top:0;background:var(--cream);overflow:hidden;}
.about-section > .container{ max-width:1600px; }
.about-kicker{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:0;
  padding-top:18px;
  color:var(--text);
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:1.42rem;
  font-weight:900;
  letter-spacing:.1em;
}
.about-kicker::before,
.about-kicker::after{
  content:"";
  display:block;
  width:6px;
  height:32px;
  box-sizing:border-box;
}
.about-kicker::before{
  border:5px solid var(--orange-deep);
  border-right:0;
  border-radius:50% 0 0 50%;
}
.about-kicker::after{
  border:5px solid var(--orange-deep);
  border-left:0;
  border-radius:0 50% 50% 0;
}
.about-catch{
  text-align:center;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size: clamp(1.7rem, 3.2vw, 2.65rem);
  font-weight:900;
  letter-spacing:0.02em;
  line-height:1.6;
  margin:0;
  padding-top:14px;
}
.about-catch .c1{ color: var(--orange-deep); }
.about-catch .c2{ color: var(--blue-deep); }
.about-catch .c1,
.about-catch .c2{ display:block; }
.about-lead-text{ text-align:center; max-width:560px; margin:0 auto; }
.about-lead-text p{ margin-bottom:14px; color:var(--text); font-weight:500; }
.about-cta-row{ display:flex; justify-content:center; gap:16px; margin-top:32px; flex-wrap:wrap; }
.btn-pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 22px 12px 14px;
  border-radius:7px;
  font-weight:700; font-size:0.96rem;
  color:#fff;
  box-shadow:none;
  transition: transform .18s ease;
}
.btn-pill:hover{ transform: translateY(-3px); }
.btn-pill .ico{
  width:18px; height:18px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center;
  padding-bottom:1px;
  font-family:Arial,sans-serif;
  font-size:1rem;
  font-weight:900;
  line-height:1;
}
.btn-pill-blue{ background: var(--blue-deep); }
.btn-pill-blue .ico{ color: var(--blue-deep); }
.btn-pill-orange{ background: var(--orange-deep); }
.btn-pill-orange .ico{ color: var(--orange-deep); }

.about-showcase{
  position:relative;
  max-width:1520px;
  min-height:470px;
  margin: 0 auto 8px;
}
.about-text{ position:relative; z-index:2; max-width:820px; margin:0 auto; padding-top:54px; }
.about-lead-text{ max-width:820px; font-size:1.12rem; line-height:2.65; font-weight:700; letter-spacing:.055em; }
.about-side-photo{ position:absolute; overflow:hidden; border-radius:24px; box-shadow:0 7px 20px rgba(68,49,26,.08); }
.about-side-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.about-side-photo.side-1{ top:0; left:88px; width:260px; height:172px; }
.about-side-photo.side-2{ left:0; bottom:2px; width:220px; height:146px; }
.about-side-photo.side-3{ top:0; right:88px; width:260px; height:172px; }
.about-side-photo.side-4{ right:0; bottom:2px; width:220px; height:146px; }
.about-photo-marquee{
  width:100vw;
  margin:0 calc(50% - 50vw);
  overflow:hidden;
  padding:8px 0 38px;
}
.about-photo-track{
  display:flex;
  align-items:flex-start;
  width:max-content;
  animation:about-photo-scroll 40s linear infinite;
  will-change:transform;
}
.about-photo-slide{
  flex:0 0 260px;
  height:198px;
  margin-right:72px;
  overflow:hidden;
  border-radius:6px;
  background:var(--cream-deep);
  box-shadow:none;
}
.about-photo-slide:nth-child(4n+1){ margin-top:34px; }
.about-photo-slide:nth-child(4n+2){ margin-top:0; height:224px; }
.about-photo-slide:nth-child(4n+3){ margin-top:48px; }
.about-photo-slide:nth-child(4n+4){ margin-top:16px; height:216px; }
.about-photo-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
@keyframes about-photo-scroll{ to{ transform:translateX(-50%); } }
@media (max-width:980px){
  .about-section > .container{ width:100%; max-width:none; padding-left:0; padding-right:0; }
  .about-showcase{ min-height:540px; }
  .about-text{ padding-top:62px; }
  .about-side-photo{ border-radius:16px; }
  .about-side-photo.side-1{ left:0; width:180px; height:140px; }
  .about-side-photo.side-2{ left:0; width:170px; height:130px; }
  .about-side-photo.side-3{ right:0; width:180px; height:140px; }
  .about-side-photo.side-4{ right:0; width:170px; height:130px; }
}
@media (max-width:700px){
  .about-kicker{ gap:10px; padding-top:0; font-size:.92rem; }
  .about-catch{ padding-top:0; margin-bottom:34px; font-size:1.7rem; }
  .about-showcase{ min-height:700px; padding:0 64px; }
  .about-text{ position:relative; z-index:2; max-width:250px; padding-top:0; }
  .about-lead-text{ font-size:.88rem; line-height:2.3; letter-spacing:.02em; }
  .about-side-photo{ display:block; width:72px; border-radius:2px; box-shadow:0 5px 14px rgba(68,49,26,.1); }
  .about-side-photo.side-1{ top:112px; left:0; width:84px; height:108px; }
  .about-side-photo.side-2{ top:365px; left:6px; bottom:auto; width:66px; height:88px; }
  .about-side-photo.side-3{ top:188px; right:0; width:86px; height:112px; }
  .about-side-photo.side-4{ right:4px; bottom:90px; width:74px; height:102px; }
  .about-cta-row{ position:relative; z-index:3; margin-top:22px; gap:10px; }
  .btn-pill{ padding:10px 14px 10px 11px; font-size:.8rem; }
  .about-photo-marquee{ margin-top:0; padding-bottom:24px; }
  .about-photo-slide{ flex-basis:180px; height:138px; margin-right:36px; }
  .about-photo-slide:nth-child(4n+2),.about-photo-slide:nth-child(4n+4){ height:158px; }
}
@media (prefers-reduced-motion:reduce){
  .about-photo-marquee{ overflow-x:auto; }
  .about-photo-track{ animation:none; }
}


.about-story-section-head{ margin:0 0 64px; text-align:center; }
.about-story-section-head .eyebrow{ display:block; width:max-content; margin:0 auto 24px; padding:0; border-radius:0; background:transparent; color:var(--orange-deep); font-family:inherit; font-size:.9rem; letter-spacing:.12em; }
.about-story-section-head .section-title{ position:relative; display:inline-block; margin:0; padding-bottom:18px; font-size:clamp(1.45rem,2.5vw,2rem); letter-spacing:.14em; }
.about-story-section-head .section-title::after{ content:""; position:absolute; bottom:0; left:50%; width:25px; height:3px; background:var(--yellow); transform:translateX(-50%); }
.about-story-feature{ display:grid; grid-template-columns:minmax(420px,1fr) minmax(0,1.35fr); width:100vw; margin:0 calc(50% - 50vw); background:var(--surface-base); }
.about-story-photo{ position:relative; min-height:700px; overflow:visible; }
.about-story-photo > img:first-child{ width:100%; height:100%; object-fit:cover; display:block; }
.about-story-photo .about-story-photo-icon{ position:absolute; z-index:2; top:24px; right:30px; width:min(260px,38%); height:auto; object-fit:contain; filter:drop-shadow(0 3px 5px rgba(67,48,24,.14)); pointer-events:none; }
.about-story-intro{ padding:54px clamp(46px,7vw,110px) 58px; }
.about-story-heading{ display:flex; justify-content:center; align-items:flex-start; gap:32px; margin:0 auto 42px; }
.about-story-label{ position:relative; order:2; display:block; margin-top:16px; padding-left:12px; border-left:3px solid var(--yellow); writing-mode:vertical-rl; color:var(--brown-dark); font-size:.92rem; font-weight:900; letter-spacing:.18em; }
.about-story-title{ height:560px; margin:0; writing-mode:vertical-rl; white-space:nowrap; overflow:visible; color:var(--brown-dark); font-size:clamp(1.45rem,2.25vw,2rem); font-weight:700; letter-spacing:.12em; line-height:2.05; }
.about-story-intro p{ max-width:440px; margin:0 auto; font-size:.92rem; line-height:2.2; }
.about-story-intro p + p{ margin-top:24px; }
.about-story-flow{ width:100vw; margin-left:calc(50% - 50vw); background:var(--surface-base); }
.about-story-block{ display:grid; grid-template-columns:1.2fr 1fr; min-height:650px; }
.about-story-block.is-reverse{ grid-template-columns:1fr 1.2fr; }
.about-story-block-photo{ overflow:hidden; }
.about-story-block-photo img{ width:100%; height:100%; min-height:650px; object-fit:cover; display:block; }
.about-story-block-photo img.about-community-photo{ object-position:center 68%; }
.about-story-block-copy{ display:flex; flex-direction:column; justify-content:center; padding:70px clamp(48px,8vw,130px); }
.about-story-block-title{ position:relative; z-index:1; margin-bottom:32px; color:var(--brown-dark); font-size:clamp(1.35rem,2.4vw,1.85rem); font-weight:700; letter-spacing:.08em; line-height:1.75; }
.about-story-block-title::before{ content:""; position:absolute; z-index:-1; top:-24px; left:-26px; width:78px; height:78px; border-radius:50%; background:var(--yellow); }
.about-story-block-copy p{ max-width:520px; margin:0 0 18px; color:var(--text); font-size:.92rem; line-height:2.15; }
@media (max-width:860px){
  .about-story-section-head{ margin-bottom:52px; }
  .about-story-feature{ grid-template-columns:1fr; width:calc(100vw - 48px); margin:0 calc(50% - 50vw + 24px); }
  .about-story-photo{ min-height:0; height:440px; }
  .about-story-photo .about-story-photo-icon{ top:18px; right:16px; width:min(210px,52%); height:auto; }
  .about-story-intro{ padding:42px 24px 48px; }
  .about-story-intro p{ width:100%; max-width:680px; }
  .about-story-heading{ gap:26px; }
  .about-story-title{ height:510px; line-height:1.8; }
  .about-story-block,.about-story-block.is-reverse{ grid-template-columns:1fr; min-height:0; }
  .about-story-block-copy,.about-story-block.is-reverse .about-story-block-copy{ order:1; padding:64px 28px 70px; }
  .about-story-block-copy p{ width:100%; max-width:680px; }
  .about-story-block-photo,.about-story-block.is-reverse .about-story-block-photo{ order:2; height:420px; }
  .about-story-block-photo img{ min-height:0; height:100%; }
}
@media (max-width:520px){
  .about-story-feature{ width:calc(100vw - 32px); margin-left:calc(50% - 50vw + 16px); }
  .about-story-photo{ height:310px; }
  .about-story-heading{ gap:18px; margin-bottom:28px; }
  .about-story-label{ margin-top:10px; padding-left:9px; font-size:.8rem; }
  .about-story-title{ height:455px; font-size:1.35rem; }
  .about-story-intro p{ font-size:.86rem; }
  .about-story-block-copy,.about-story-block.is-reverse .about-story-block-copy{ order:1; }
  .about-story-block-photo,.about-story-block.is-reverse .about-story-block-photo{ order:2; }
  .about-story-block-photo,.about-story-block.is-reverse .about-story-block-photo{ height:300px; }
  .about-story-block-copy,.about-story-block.is-reverse .about-story-block-copy{ padding:54px 24px 58px 42px; }
  .about-story-block-title{ margin-bottom:25px; font-size:1.25rem; }
  .about-story-block-title::before{ top:-18px; left:-20px; width:62px; height:62px; }
  .about-story-block-copy p{ font-size:.86rem; }
}


.weekly-home-section{ position:relative; overflow:hidden; padding:130px 0 120px; background:var(--surface-soft); }
.weekly-home-section > .container{ max-width:1420px; }
.weekly-panel{ position:relative; display:grid; grid-template-columns:minmax(330px,.78fr) minmax(560px,1.35fr); gap:82px; padding:78px 70px 68px; border-radius:28px; background:var(--surface-accent-soft); }
.weekly-panel-decoration{
  position:absolute;
  z-index:1;
  top:-38px;
  left:-34px;
  width:126px;
  height:126px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(68,49,26,.62) 0 1.6px,transparent 2px) 0 0/8px 8px;
  pointer-events:none;
}
.weekly-panel-decoration::before{
  content:"";
  position:absolute;
  top:-20px;
  right:-54px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--yellow);
}
.weekly-panel-decoration::after{
  content:"";
  position:absolute;
  right:-52px;
  bottom:-42px;
  width:88px;
  height:88px;
  border-radius:50%;
  background:repeating-linear-gradient(to bottom,var(--yellow) 0 3px,transparent 3px 8px);
}
.weekly-people-icon{ position:absolute; top:-94px; right:50px; width:420px; height:auto; pointer-events:none; }
.weekly-copy{ position:relative; z-index:0; align-self:center; }
.weekly-copy::after{ content:""; position:absolute; z-index:-1; top:auto; right:-70px; bottom:-110px; width:175px; aspect-ratio:69.41 / 75.58; background:url("../images/common/icon_scool.svg") center / contain no-repeat; opacity:1; pointer-events:none; }
.weekly-copy .eyebrow{ position:relative; display:inline-block; padding:0 0 12px; margin:0 0 28px; color:var(--brown-dark); background:transparent; border-radius:0; font-family:inherit; letter-spacing:.12em; }
.weekly-copy .eyebrow::after{ content:""; position:absolute; bottom:0; left:0; width:58px; height:3px; border-radius:999px; background:var(--orange); }
.weekly-copy .section-title{ margin-bottom:28px; text-align:left; font-size:clamp(1.8rem,3vw,2.45rem); line-height:1.65; letter-spacing:.08em; }
.weekly-copy .section-sub{ margin:0; color:var(--text); font-size:.98rem; line-height:2.15; }
.weekly-copy .btn{ margin-top:36px; border:0; border-radius:7px; background:var(--orange); color:#fff; box-shadow:none; }
.weekly-copy .btn::before{ content:"›"; display:grid; place-items:center; flex:0 0 21px; width:21px; height:21px; padding-bottom:1px; border-radius:50%; background:#fff; color:var(--orange); font-family:Arial,sans-serif; font-size:1.2rem; line-height:1; }
.week-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; align-content:center; }
.day-card{ position:relative; min-width:0; padding-bottom:34px; text-align:center; }
.day-card:last-child{ grid-column:1 / -1; width:calc(50% - 12px); justify-self:center; }
.day-card-media{ position:relative; aspect-ratio:1.48 / 1; overflow:hidden; border-radius:18px; background:#fff; }
.day-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.day-card:hover .day-card-media img{ transform:scale(1.035); }
.day-badge{ position:absolute; top:12px; left:12px; z-index:2; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; color:#fff; box-shadow:0 3px 10px rgba(67,48,24,.14); }
.day-card p{
  position:absolute;
  z-index:2;
  right:-1px;
  bottom:0;
  width:max-content;
  min-width:0;
  max-width:calc(100% - 20px);
  margin:0;
  padding:11px 22px 10px 26px;
  border-radius:25px 0 0 0;
  background:#fbce38;
  color:var(--text);
  font-size:.9rem;
  font-weight:800;
  line-height:1.5;
  text-align:right;
}
.day-card:nth-child(even) p{ right:auto; left:-1px; padding-right:26px; padding-left:22px; border-radius:0 25px 0 0; text-align:left; }
.day-card:nth-child(2) p,.day-card:nth-child(3) p{
  top:auto;
  right:-1px;
  bottom:34px;
  left:auto;
  min-width:0;
  max-height:none;
  padding:18px 10px;
  border-radius:22px 0 0 0;
  writing-mode:vertical-rl;
  text-orientation:upright;
  white-space:nowrap;
  transform:none;
  text-align:center;
}
@media (max-width:900px){
  .weekly-panel{ grid-template-columns:1fr; gap:52px; padding:72px 42px 56px; }
  .weekly-copy{ max-width:650px; }
  .weekly-copy::after{ top:auto; right:8px; bottom:-90px; width:160px; }
  .weekly-people-icon{ top:-70px; right:24px; width:310px; }
}
@media (max-width:600px){
  .weekly-home-section{ padding:100px 0 80px; }
  .weekly-panel{ gap:40px; padding:66px 20px 42px; }
  .weekly-panel{ border-radius:18px; }
  .weekly-panel-decoration{ top:-24px; left:-22px; width:78px; height:78px; background-size:6px 6px; }
  .weekly-panel-decoration::before{ top:-12px; right:-34px; width:19px; height:19px; }
  .weekly-panel-decoration::after{ right:-33px; bottom:-27px; width:55px; height:55px; background-size:auto; }
  .weekly-people-icon{ top:-56px; right:12px; width:210px; }
  .weekly-copy .section-title{ font-size:1.55rem; }
  .weekly-copy .section-sub{ font-size:.9rem; }
  .weekly-copy::after{ top:auto; right:-6px; bottom:-72px; width:125px; opacity:1; }
  .week-row{ gap:26px 12px; }
  .day-card{ padding-bottom:27px; }
  .day-card:last-child{ width:calc(50% - 6px); }
  .day-card-media{ border-radius:13px; }
  .day-badge{ top:7px; left:7px; width:36px; height:36px; font-size:.78rem; }
  .day-card p,.day-card:nth-child(even) p{ right:-1px; bottom:0; left:auto; width:max-content; min-width:0; max-width:calc(100% - 12px); padding:7px 10px 6px 14px; border-radius:18px 0 0 0; font-size:.7rem; text-align:right; }
  .day-card:nth-child(2) p,.day-card:nth-child(3) p{ top:auto; right:-1px; bottom:27px; left:auto; min-width:0; max-height:none; padding:12px 7px; border-radius:16px 0 0 0; writing-mode:vertical-rl; text-orientation:upright; white-space:nowrap; transform:none; text-align:center; }
}


.access-section{ overflow:hidden; background:var(--surface-accent-soft); }
.access-section::before{
  content:"";
  position:absolute;
  z-index:2;
  top:0;
  left:0;
  width:100%;
  height:34px;
  background:var(--surface-soft);
  clip-path:polygon(
    0 0,
    100% 0,
    100% 32%,
    90% 8%,
    78% 38%,
    66% 12%,
    54% 42%,
    42% 10%,
    30% 40%,
    18% 14%,
    8% 36%,
    0 12%
  );
  pointer-events:none;
}
.access-section > .container{ position:relative; z-index:1; max-width:1240px; }
.access-heading-decoration{ position:relative; z-index:0; width:100%; height:350px; overflow:hidden; background:linear-gradient(to bottom,var(--surface-soft) 0 66%,var(--surface-accent-soft) 66% 100%); pointer-events:none; }
.access-heading-decoration > span{ position:absolute; z-index:2; display:block; border-radius:50%; }
.access-heading-decoration::after{ content:""; position:absolute; z-index:2; bottom:126px; left:292px; width:38px; height:38px; border-radius:50%; background:var(--yellow); }
.access-heading-decoration .decor-solid{ top:auto; bottom:-22px; left:-54px; width:172px; height:172px; background:var(--yellow); }
.access-heading-decoration .decor-dots{ top:auto; bottom:14px; left:126px; width:142px; height:142px; background:radial-gradient(circle,var(--yellow) 0 1.5px,transparent 1.8px) 0 0/7px 7px; }
.access-heading-decoration .decor-stripes{ top:auto; bottom:-12px; left:208px; width:102px; height:102px; background:repeating-linear-gradient(to bottom,rgba(68,49,26,.72) 0 2px,transparent 2px 7px); }
.access-heading-decoration .about-photo-marquee{ position:absolute; z-index:1; top:8px; left:0; width:100%; margin:0; padding:0 0 30px; }
.access-section .section-head{ margin-bottom:58px; }
.access-section .section-head .eyebrow{ display:none; }
.access-section .section-head .section-title{ position:relative; display:inline-block; padding-bottom:18px; font-size:clamp(1.35rem,2.5vw,1.8rem); letter-spacing:.12em; }
.access-section .section-head .section-title::after{ content:""; position:absolute; bottom:0; left:50%; width:26px; height:3px; background:var(--yellow); transform:translateX(-50%); }
.access-visual{ position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:540px; }
.map-box{ min-height:540px; overflow:hidden; background:#eee; }
.access-image{ min-height:540px; overflow:hidden; }
.access-image img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.access-bag-icon{ position:absolute; z-index:3; right:24px; bottom:-76px; width:112px; height:auto; pointer-events:none; }
.access-contact-line{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 30px; padding:18px 2px 0; color:var(--brown-dark); font-size:.92rem; line-height:1.7; }
.access-contact-line a{ text-decoration:underline; text-underline-offset:4px; }
.access-location::before{ content:""; display:inline-block; width:12px; height:16px; margin-right:8px; vertical-align:-3px; background:radial-gradient(circle at 50% 31%,#fff 0 2px,var(--orange) 2.5px); clip-path:polygon(50% 100%,16% 56%,8% 38%,8% 25%,18% 8%,34% 0,66% 0,82% 8%,92% 25%,92% 38%,84% 56%); }
.access-postal{ margin-right:12px; }
.access-tel-label{ margin-right:8px; color:var(--text-soft); font-size:.75rem; font-weight:800; letter-spacing:.08em; }
.facility-info{ margin-top:72px; }
.facility-info-heading{ display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.facility-info-heading .title-book{ flex:0 0 36px; width:36px; height:auto; object-fit:contain; }
.facility-info-heading h3{ color:var(--brown-dark); font-size:clamp(1.2rem,2.4vw,1.45rem); font-weight:900; letter-spacing:.08em; }
.facility-info .styled-table{ border:1px solid #e8dfc8; border-radius:12px; box-shadow:none; }
.facility-info .styled-table th,.facility-info .styled-table td{ border-right:1px solid #e8dfc8; border-bottom:1px solid #e8dfc8; color:var(--brown-dark); line-height:1.8; }
.facility-info .styled-table th{ width:180px; background:var(--surface-soft); color:var(--brown-dark); text-align:center; }
.facility-info .styled-table td,.facility-info .styled-table tr:nth-child(even) td{ background:#fff; }
.facility-info .styled-table tr:last-child th,.facility-info .styled-table tr:last-child td{ border-bottom:0; }
.facility-info .styled-table th:last-child,.facility-info .styled-table td:last-child{ border-right:0; }
.facility-note{ display:block; margin-top:3px; color:var(--text-soft); font-size:.85rem; }
@media (max-width:860px){
  .access-visual{ grid-template-columns:1fr; }
  .map-box{ min-height:360px; }
  .access-image{ min-height:390px; }
  .access-bag-icon{ right:18px; bottom:-62px; width:92px; }
}
@media (max-width:600px){
  .access-section::before{
    height:22px;
    clip-path:polygon(0 0,100% 0,100% 24%,84% 44%,67% 16%,50% 48%,33% 14%,16% 42%,0 20%);
  }
  .access-section .section-head{ margin-bottom:34px; }
  .access-section .section-head .section-title{ padding-bottom:14px; font-size:1.3rem; }
  .access-heading-decoration{ width:100%; height:258px; opacity:.82; background:linear-gradient(to bottom,var(--surface-soft) 0 72%,var(--surface-accent-soft) 72% 100%); }
  .access-heading-decoration::after{ top:auto; bottom:77px; left:151px; width:21px; height:21px; }
  .access-heading-decoration .decor-solid{ top:auto; bottom:-14px; left:-28px; width:94px; height:94px; }
  .access-heading-decoration .decor-dots{ top:auto; bottom:8px; left:68px; width:76px; height:76px; background-size:6px 6px; }
  .access-heading-decoration .decor-stripes{ top:auto; bottom:-8px; left:112px; width:54px; height:54px; }
  .access-heading-decoration .about-photo-marquee{ top:6px; padding-bottom:18px; }
  .map-box{ min-height:310px; }
  .access-image{ min-height:300px; }
  .access-bag-icon{ right:10px; bottom:-48px; width:72px; }
  .access-contact-line{ align-items:flex-start; flex-direction:column; gap:5px; padding-top:15px; }
  .facility-info{ margin-top:52px; }
  .facility-info .styled-table th{ width:105px; }
  .facility-info .styled-table th,.facility-info .styled-table td{ padding:14px 11px; font-size:.85rem; }
}


.access-photo-section{ position:relative; padding:0; overflow:hidden; background:var(--cream); }
.access-transition-decoration{ position:absolute; z-index:1; top:4px; right:-38px; width:390px; height:245px; pointer-events:none; }
.access-transition-decoration span{ position:absolute; display:block; border-radius:50%; }
.access-transition-decoration::after{ content:""; position:absolute; top:14px; right:292px; width:36px; height:36px; border-radius:50%; background:var(--blue-deep); }
.access-transition-decoration .decor-solid{ top:-6px; right:-16px; width:174px; height:174px; background:var(--yellow); }
.access-transition-decoration .decor-dots{ top:50px; right:178px; width:142px; height:142px; background:radial-gradient(circle,var(--orange) 0 1.5px,transparent 1.8px) 0 0/7px 7px; }
.access-transition-decoration .decor-stripes{ top:132px; right:104px; width:104px; height:104px; background:repeating-linear-gradient(to bottom,rgba(68,49,26,.72) 0 2px,transparent 2px 7px); }
.access-photo-message{ position:relative; z-index:2; max-width:1080px; margin:0 auto -34px; padding:42px 24px 0; color:var(--brown-dark); font-size:clamp(1.75rem,4vw,3rem); font-weight:700; letter-spacing:.1em; line-height:1.5; }
.access-photo-wrap{
  width:100%;
  height:clamp(360px,48vw,680px);
  overflow:hidden;
}
.access-photo-wrap img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.access-photo-credit{ position:absolute; right:18px; bottom:82px; z-index:2; padding:4px 8px; border-radius:4px; background:rgba(255,255,255,.78); color:var(--brown-dark); font-size:.66rem; line-height:1.4; }
@media (max-width:600px){
  .access-photo-section{ padding-bottom:0; }
  .access-transition-decoration{ top:2px; right:-48px; width:220px; height:145px; opacity:.72; }
  .access-transition-decoration::after{ top:7px; right:164px; width:22px; height:22px; }
  .access-transition-decoration .decor-solid{ top:-3px; right:-4px; width:98px; height:98px; }
  .access-transition-decoration .decor-dots{ top:30px; right:101px; width:80px; height:80px; background-size:6px 6px; }
  .access-transition-decoration .decor-stripes{ top:78px; right:58px; width:58px; height:58px; background-size:auto; }
  .access-photo-message{ margin-bottom:-20px; padding-top:30px; font-size:1.6rem; }
  .access-photo-wrap{ height:420px; }
  .access-photo-wrap img{ object-position:42% center; }
  .access-photo-credit{ bottom:56px; }
}


.home-contact-cta{ padding:64px 0 68px; }
.cta-final{
  max-width:1000px;
  margin:0 auto;
  padding:34px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  background:var(--white);
  color:var(--brown-dark);
  border-radius:14px;
}
.cta-final-copy{ min-width:0; }
.cta-final h2{ display:flex; align-items:center; gap:14px; margin-bottom:6px; font-size:clamp(1.08rem,2.2vw,1.35rem); font-weight:900; letter-spacing:.08em; }
.cta-final-rings{ position:relative; flex:0 0 30px; width:30px; height:18px; }
.cta-final-rings::before,.cta-final-rings::after{ content:""; position:absolute; top:1px; width:12px; height:12px; border:4px solid; border-radius:50%; background:var(--white); }
.cta-final-rings::before{ left:0; border-color:var(--blue-deep); }
.cta-final-rings::after{ right:0; border-color:var(--orange); }
.cta-final-message{ margin:8px 0 7px; padding-left:44px; color:var(--text-soft); font-size:.9rem; line-height:1.7; }
.cta-final-phone{ padding-left:44px; font-family:"Helvetica Neue",Arial,sans-serif; font-size:1.05rem; letter-spacing:.08em; }
.cta-final-phone a{ text-decoration:none; }
.cta-final .btn-primary{ flex-shrink:0; padding:13px 24px; border-radius:7px; background:var(--orange); color:var(--white); box-shadow:none; font-size:.98rem; }
.cta-final .btn-primary::after{content:"";display:block;flex:0 0 21px;width:21px;height:21px;margin-left:2px;border-radius:50%;background-color:var(--white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cpath d='M8.5 6.5l4 4-4 4' fill='none' stroke='%23f39700' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:21px 21px;}
@media (max-width:1024px){
  .home-contact-cta{ padding-left:24px; padding-right:24px; }
}
@media (max-width:680px){
  .home-contact-cta{ padding:48px 16px 52px; }
  .cta-final{ padding:30px 24px; flex-direction:column; align-items:stretch; }
  .cta-final-phone{ padding-left:44px; font-size:.94rem; }
  .cta-final .btn-primary{ justify-content:center; }
}
.about-line{display:block;}
.day-badge-mon{background:var(--orange);}
.day-badge-tue{background:var(--blue-deep);}
.day-badge-wed{background:var(--yellow);color:var(--brown-dark);}
.day-badge-thu{background:var(--orange-deep);}
.day-badge-fri{background:var(--blue);}
.access-map-frame{border:0;}
.weekly-copy .free-service-banner-home{margin:32px 0 0;grid-template-columns:62px minmax(0,1fr);gap:18px;min-height:108px;padding:22px 24px;border-radius:22px;box-shadow:0 4px 0 rgba(68,49,26,.08);}
.weekly-copy .free-service-banner-home .free-service-icon{width:62px;height:62px;}
.weekly-copy .free-service-banner-home .free-service-icon img{width:35px;height:35px;}
.weekly-copy .free-service-banner-home .free-service-copy small{margin-bottom:5px;font-size:.74rem;letter-spacing:.02em;line-height:1.4;}
.weekly-copy .free-service-banner-home .free-service-copy strong{font-size:clamp(.94rem,1.25vw,1.12rem);line-height:1.45;white-space:nowrap;letter-spacing:.02em;}
.weekly-copy .free-service-banner-home + .btn{margin-top:24px;}
@media(min-width:901px) and (max-width:1250px){
  .weekly-copy .free-service-banner-home{grid-template-columns:52px minmax(0,1fr);gap:14px;min-height:94px;margin-top:32px;padding:18px 16px;}
  .weekly-copy .free-service-banner-home .free-service-icon{width:52px;height:52px;}
  .weekly-copy .free-service-banner-home .free-service-icon img{width:30px;height:30px;}
  .weekly-copy .free-service-banner-home .free-service-copy small{font-size:.62rem;white-space:nowrap;}
  .weekly-copy .free-service-banner-home .free-service-copy strong{font-size:clamp(.72rem,1.15vw,.9rem);white-space:normal;}
}
@media(max-width:600px){
  .weekly-copy .free-service-banner-home{grid-template-columns:58px minmax(0,1fr);gap:14px;min-height:0;margin-top:28px;padding:17px 18px;}
}
