:root{--paper:#f8f6ef;--cream:#eeeae0;--ink:#263d34;--muted:#5c665e;--green:#254e40;--line:#d5d8ca;--accent:#d6df91;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}a,button,input,select,textarea{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}figure,p,h1,h2,h3{margin:0}h2{font-family:var(--serif);font-size:clamp(26px,2.85vw,40px);font-weight:700;line-height:1.7;letter-spacing:.025em}h3{font-size:19px;line-height:1.8}p+p{margin-top:22px}.container{width:min(1180px,calc(100% - 96px));margin-inline:auto}.section{padding-block:112px}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.12em;line-height:1.8;margin-bottom:26px}.small{font-size:14px;line-height:1.85}.site-header{position:sticky;top:0;z-index:20;background:rgba(248,246,239,.97);border-bottom:1px solid transparent}.site-header.is-scrolled{border-color:var(--line)}.header-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:26px}.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.5}.brand-name{font-family:Georgia,serif;font-weight:500;font-size:39px;letter-spacing:-1.5px}.brand-dot{color:#81914b}.brand-sub{font-size:12px;letter-spacing:.025em}.header-nav{display:flex;gap:30px;align-items:center;font-size:14px}.header-nav a{text-decoration:none}.header-nav a:hover{color:#688344}.header-cta{padding:13px 20px;border:1px solid var(--green);border-radius:3px}.header-cta span{margin-left:14px}.hero{display:grid;grid-template-columns:1.2fr 1fr;column-gap:60px;padding-top:38px}.hero-copy{align-self:center;padding-block:28px 34px}.hero-copy .eyebrow{letter-spacing:.08em;margin-bottom:27px}.tiny-dot{display:inline-block;width:7px;height:7px;margin-right:10px;background:#788e51;border-radius:50%;vertical-align:middle}h1{font-family:var(--serif);font-size:clamp(34px,4vw,56px);font-weight:700;line-height:1.75;letter-spacing:-.045em;white-space:nowrap}h1>span{color:#577344}.hero-lead{margin-top:26px;font-size:16px;line-height:2.05}.hero-support{font-size:14px;color:var(--muted);margin-top:17px;line-height:1.95}.hero-actions{margin-top:30px}.button{display:inline-flex;gap:27px;align-items:center;justify-content:space-between;min-height:60px;padding:16px 24px;background:var(--green);color:white;text-decoration:none;border:1px solid var(--green);border-radius:3px;font-weight:600;font-size:16px;cursor:pointer;transition:background .18s,transform .18s}.button:hover{background:#183b2e;transform:translateY(-2px)}.button span{font-size:23px;line-height:1}.hero-actions .small{margin-top:11px;color:var(--muted)}.hero-photo{position:relative;align-self:center;overflow:hidden;border-radius:45% 45% 3px 3px;background:#372c21;aspect-ratio:4/5}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo figcaption{position:absolute;inset:auto 0 0;padding:60px 24px 22px;background:linear-gradient(transparent,rgba(16,21,16,.9));color:#fff;display:flex;flex-direction:column;gap:7px}.hero-photo figcaption span:first-child{font-family:var(--serif);font-size:20px}.hero-photo figcaption span:last-child{font-size:12px;letter-spacing:.12em}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding-block:32px;font-size:12px;letter-spacing:.13em}.hero-bottom a{font-size:14px;letter-spacing:0;text-decoration:none}.hero-bottom a span{margin-left:22px}.trust-strip{border-block:1px solid var(--line);background:var(--cream)}.trust-inner{display:grid;grid-template-columns:repeat(3,1fr);padding-block:23px;text-align:center;font-size:14px}.trust-inner>span+span{border-left:1px solid #bfc5b7}.strong{font-weight:700;margin-left:6px}.section-heading{margin-bottom:52px}.intro{margin-top:24px;color:var(--muted)}.lesson-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}.lesson-columns article{border-top:1px solid #86937b;padding-top:22px}.step-number{font-family:Georgia,serif;font-size:29px;color:#7b8852}.lesson-columns h3{margin-top:20px;font-size:23px;font-weight:500}.lesson-columns p{margin-top:22px;color:var(--muted)}.lesson-tag{display:block;border-top:1px solid var(--line);margin-top:30px;padding-top:15px;font-size:14px}.for-you{background:#e9edde;padding:88px 0}.split{display:grid;grid-template-columns:1fr 1.1fr;gap:85px}.split>div>p:not(.eyebrow){margin-top:25px}.fit-list article{display:flex;gap:25px;padding:22px 0;border-bottom:1px solid #c4ccba}.fit-list article:first-child{padding-top:0}.fit-list article>span{font-family:Georgia,serif;font-size:19px;color:#627342}.fit-list p{color:var(--muted);margin-top:8px}.profile-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:95px;align-items:center}.profile-photo{position:relative}.profile-photo img{border-radius:3px;max-height:540px;width:100%;object-fit:cover}.profile-photo figcaption{font-size:12px;letter-spacing:.16em;margin-top:12px}.profile-story>p:not(.eyebrow):not(.instructor-name){color:var(--muted)}.instructor-name{margin:28px 0 24px;font-size:26px;font-weight:500}.instructor-name span{margin-left:15px;font-size:14px;font-weight:400}.profile-message{border-left:2px solid #91a06a;margin-top:28px;padding-left:22px;font-family:var(--serif);font-size:20px;line-height:1.9}.name-story{border-block:1px solid var(--line);padding:58px 0}.name-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;align-items:center}.name-word{font-family:Georgia,serif;font-size:65px;line-height:1.2;letter-spacing:-3px}.name-word span{color:#829149}.name-grid .small{margin-top:17px;color:var(--muted)}.name-grid h2{font-size:25px}.name-grid h2+p{margin-top:20px;color:var(--muted)}.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-top:3px solid var(--green)}.price-card{padding:32px 27px}.price-card+.price-card{border-left:1px solid var(--line)}.plan-description{font-size:14px;color:var(--muted)}.price-card h3{font-size:18px;font-weight:400;margin-top:14px}.price-card h3 span{font-family:Georgia,serif;font-size:45px;padding:0 6px}.amount{font-family:Georgia,serif;font-size:43px;letter-spacing:-1px;line-height:1.5;margin-top:20px}.amount span{font-family:var(--sans);font-size:14px;letter-spacing:0;margin-left:6px}.unit{font-size:14px;color:var(--muted);margin-top:0}.price-includes{display:flex;justify-content:center;flex-wrap:wrap;gap:15px 32px;background:#e9edde;padding:19px;font-size:14px}.price-includes span:before{content:'✓';margin-right:9px}.policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-top:36px}.policy-grid h3{font-size:16px}.policy-grid p{font-size:14px;color:var(--muted);margin-top:9px}.trial{background:var(--green);color:var(--paper);padding:90px 0}.trial .eyebrow{color:#d6df91}.trial .split{gap:80px}.trial-time{display:flex;align-items:center;gap:25px;margin-top:28px}.trial-time>strong{font-family:Georgia,serif;font-weight:400;font-size:74px;line-height:1.2}.trial-time strong span{font-family:var(--sans);font-size:23px;margin-left:8px}.trial-time>span{padding-left:25px;border-left:1px solid #789484;line-height:1.9}.trial .small{color:#e2e7de}.light-button{margin-top:28px;background:var(--accent);border-color:var(--accent);color:var(--ink)}.light-button:hover{background:#e2e9b0}.trial-steps{list-style:none;margin:0;padding:0}.trial-steps li{display:flex;gap:26px;border-top:1px solid #64816f;padding:29px 0}.trial-steps li>span{font-family:Georgia,serif;color:#d6df91;font-size:24px}.trial-steps p{color:#e0e6dc;margin-top:12px}.contact .section-heading{text-align:center}.form-shell{max-width:910px;margin:auto;padding:42px;background:#fffdf8;border:1px solid var(--line);border-radius:4px}.trial-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}.field{display:flex;flex-direction:column;gap:9px;min-width:0}.field--full,.form-actions,.error-summary{grid-column:1/-1}.field-label,.field-legend,.date-title{font-size:14px;font-weight:600}.required,.optional{font-size:12px;margin-left:10px;color:#8c4632}.optional{color:var(--muted)}.input,.select,.textarea{width:100%;min-width:0;min-height:54px;border:1px solid #a8b3a3;border-radius:3px;background:#fff;color:var(--ink);padding:12px;font-size:16px}.textarea{resize:vertical;min-height:140px}.input::placeholder,.textarea::placeholder{color:#70766e}.plan-fixed{background:#eef0e6;padding:13px 16px;font-size:14px;border-radius:3px}.field-help{font-size:14px;color:var(--muted);margin-block:9px}.date-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.date-group{border-top:1px solid var(--line);padding-top:14px;min-width:0}.date-title{margin-bottom:9px}.date-controls{display:grid;gap:10px}.date-controls label{min-width:0}.date-control-label{display:block;font-size:14px;margin-bottom:4px}.date-picker-wrap{display:block}.input[type=date]{appearance:none;min-height:54px}.input[type=date]::-webkit-date-and-time-value{text-align:left}.input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}.field-error{display:none;color:#9c372e;font-size:14px}.field-error.is-visible{display:block}.error-summary{display:none;background:#fff1e9;border-left:3px solid #a74030;padding:20px;color:#8e3025;font-size:14px}.error-summary.is-visible{display:block}.error-summary ul{padding-left:20px;margin-bottom:0}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.form-actions{border-top:1px solid var(--line);padding-top:26px;display:flex;flex-direction:column;align-items:center;gap:24px}.privacy-note{font-size:14px;color:var(--muted);max-width:620px}.submit-button{justify-content:center;min-width:290px}.site-footer{border-top:1px solid var(--line);padding:44px 0}.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:32px}.footer-grid>p{font-size:13px;color:var(--muted);margin:0}.copyright{font-size:12px!important}.mobile-cta{display:none}.skip-link{position:fixed;top:-100px;left:20px;background:#fff;padding:14px;z-index:100}.skip-link:focus{top:10px}:focus-visible{outline:3px solid #9a662a;outline-offset:5px}[aria-invalid=true]{border-color:#a74030}
@media(min-width:1600px){.hero{padding-top:60px}.hero-photo{max-height:600px}.hero-copy{padding-block:50px}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.header-nav{gap:18px}.header-nav>a:not(.header-cta){display:none}.hero{gap:30px;grid-template-columns:1.2fr 1fr}h1{font-size:clamp(33px,4vw,44px)}.hero-copy{padding-top:0}.hero-support br{display:none}.hero .button{font-size:14px;gap:12px;padding:16px}.split,.profile-grid,.name-grid{gap:45px}.lesson-columns{gap:25px}.lesson-columns h3{font-size:21px}.price-card{padding:26px 18px}.amount{font-size:35px}.amount span{font-size:12px}.footer-grid{flex-wrap:wrap}.section{padding-block:85px}}
@media(max-width:720px){html{scroll-padding-top:94px}.container{width:calc(100% - 40px)}.header-inner{min-height:84px;gap:12px}.brand-name{font-size:32px}.brand-sub{font-size:12px}.header-cta{padding:10px 12px;font-size:13px}.header-cta span{display:none}.header-nav{flex-shrink:0}.header-nav .header-cta{font-size:0}.header-nav .header-cta:before{content:'無料体験';font-size:14px}.hero{padding-top:30px;grid-template-columns:1fr;gap:0}.hero-copy{padding:0 0 32px}.hero-copy .eyebrow{font-size:12px;margin-bottom:18px}h1{font-size:clamp(29px,7.6vw,48px);line-height:1.75}.hero-lead{margin-top:23px;font-size:16px}.hero-support{max-width:430px}.hero-actions{margin-top:24px}.hero .button{font-size:16px;padding:16px 22px;gap:24px}.hero-photo{width:100%;max-width:460px;justify-self:center;aspect-ratio:4/4.6;border-radius:44% 44% 3px 3px}.hero-photo img{object-position:center 45%}.hero-photo figcaption{padding:55px 22px 22px}.hero-bottom{padding-block:22px;font-size:11px}.hero-bottom a{font-size:13px}.trust-inner{grid-template-columns:1fr;gap:13px;text-align:left;padding-block:22px;font-size:14px}.trust-inner>span+span{border:0}.trust-inner>span:before{content:'✓';margin-right:13px;color:#617642}.section{padding-block:65px}h2{font-size:27px;letter-spacing:0;line-height:1.75}.eyebrow{font-size:12px;margin-bottom:20px}.section-heading{margin-bottom:34px}.intro{margin-top:20px}.desktop{display:none}.lesson-columns{grid-template-columns:1fr;gap:33px}.lesson-columns article{position:relative;padding:23px 0 0 50px}.step-number{position:absolute;left:0;top:23px;font-size:24px}.lesson-columns h3{margin-top:0;font-size:22px}.lesson-columns p{margin-top:16px}.lesson-tag{margin-top:20px}.for-you{padding:60px 0}.split,.profile-grid,.name-grid{grid-template-columns:1fr;gap:35px}.fit-list article{gap:18px}.fit-list h3{font-size:18px}.profile-grid{gap:32px}.profile-photo{max-width:430px}.profile-photo img{max-height:440px;object-position:center 38%}.profile-story h2{font-size:26px}.instructor-name{font-size:25px}.profile-message{font-size:19px}.name-story{padding:45px 0}.name-grid{gap:30px}.name-grid .eyebrow{margin-bottom:16px}.name-word{font-size:55px}.name-grid h2{font-size:24px}.prices{grid-template-columns:1fr}.price-card{padding:24px}.price-card+.price-card{border-left:0;border-top:1px solid var(--line)}.price-card h3{margin-top:5px}.price-card h3 span{font-size:38px}.amount{margin-top:8px;font-size:42px}.amount span{font-size:14px}.price-includes{justify-content:flex-start;flex-direction:column;gap:7px;font-size:14px;padding:20px 24px}.policy-grid{grid-template-columns:1fr;gap:25px}.trial{padding:60px 0}.trial .split{gap:40px}.trial-steps li{gap:19px;padding:25px 0}.trial-time>strong{font-size:64px}.trial-steps h3{font-size:19px}.contact .section-heading{text-align:left}.form-shell{padding:24px 18px}.trial-form{grid-template-columns:1fr;gap:24px}.date-groups{grid-template-columns:1fr;gap:22px}.date-controls{grid-template-columns:minmax(0,1fr) 105px}.field-help{font-size:14px}.form-actions{align-items:stretch}.submit-button{min-width:0;width:100%;padding-inline:10px}.footer-grid{flex-direction:column;align-items:flex-start;gap:23px}.site-footer{padding:35px 0 105px}.mobile-cta{position:fixed;z-index:25;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--green);border-top:1px solid #809477;color:#fff;padding:16px 22px calc(16px + env(safe-area-inset-bottom));font-size:15px;font-weight:600;text-decoration:none;visibility:hidden;transform:translateY(110%);transition:transform .2s,visibility .2s}.mobile-cta.is-visible{visibility:visible;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Wide photographic hero, framed by warm paper. */
.bass-hero { padding-top: 22px; }
.bass-stage {
  position: relative;
  isolation: isolate;
  min-height: 470px;
  aspect-ratio: 2.2;
  display: flex;
  align-items: center;
  padding: 48px 5.5%;
  overflow: hidden;
  background: #221f19;
  color: #faf5e8;
}
.bass-stage-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.bass-stage::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,rgba(22,24,18,.56),rgba(22,24,18,.26) 40%,rgba(22,24,18,0) 72%);
  pointer-events: none;
}
.bass-stage-copy { padding-bottom: 12px; }
.bass-stage-copy .eyebrow { margin-bottom: 26px; color: #ece8d7; font-size: 14px; letter-spacing: .1em; }
.bass-stage h1 {
  color: #faf5e8;
  font-size: clamp(36px,4.1vw,56px);
  line-height: 1.75;
  letter-spacing: -.045em;
  font-weight: 700;
  text-shadow: 0 2px 16px rgba(0,0,0,.18);
}
.bass-stage-label {
  position: absolute;
  left: 5.5%;
  bottom: 28px;
  color: #d1cbbb;
  font-size: 12px;
  letter-spacing: .2em;
}
.bass-intro {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 36px;
  padding: 34px 0 42px;
}
.bass-intro-copy>p { font-size: 17px; line-height: 1.95; }
.bass-intro-copy .bass-intro-support { margin-top: 12px; color: var(--muted); font-size: 14px; line-height: 1.9; }
.bass-intro-actions { margin: 0; text-align: center; }
.bass-intro-actions .button { min-height: 62px; padding-inline: 25px; gap: 28px; }
.bass-intro-actions .small { margin-top: 9px; color: var(--muted); }
.bass-method-link { display: inline-block; font-size: 14px; margin-top: 13px; text-decoration: none; }
.bass-method-link span { margin-left: 17px; }
.bass-method-link:hover { text-decoration: underline; }
@media (min-width: 721px) and (max-width: 1050px) {
  .bass-stage { min-height: 390px; aspect-ratio: 2; padding-inline: 4%; }
  .bass-stage h1 { font-size: clamp(32px,4.3vw,44px); }
  .bass-stage-copy .eyebrow { font-size: 12px; }
  .bass-stage-label { left: 4%; }
  .bass-intro { gap: 24px; }
  .bass-intro-copy>p { font-size: 15px; }
  .bass-intro-actions .button { font-size: 14px; padding-inline: 16px; gap: 15px; }
  .bass-intro-actions .small { font-size: 12px; }
}
@media (max-width: 720px) {
  .bass-hero { padding-top: 14px; }
  .bass-stage { aspect-ratio: auto; min-height: 460px; align-items: flex-end; padding: 200px 22px 66px; }
  .bass-stage-image { object-position: 75% center; }
  .bass-stage::before { background: linear-gradient(0deg,rgba(21,24,18,.94),rgba(21,24,18,.65) 33%,rgba(21,24,18,.02) 73%); }
  .bass-stage-copy { padding: 0; }
  .bass-stage-copy .eyebrow { font-size: 12px; margin-bottom: 15px; letter-spacing: .02em; }
  .bass-stage h1 { font-size: clamp(27px,7.4vw,46px); line-height: 1.65; }
  .bass-stage-label { left: 22px; bottom: 22px; font-size: 12px; letter-spacing: .13em; }
  .bass-intro { grid-template-columns: 1fr; gap: 25px; padding: 25px 0 30px; }
  .bass-intro-copy>p { font-size: 16px; }
  .bass-intro-copy .bass-intro-support { font-size: 14px; }
  .bass-intro-actions { text-align: left; }
  .bass-intro-actions .button { width: 100%; padding: 16px 18px; gap: 10px; font-size: 15px; }
  .bass-intro-actions .small { font-size: 12px; text-align: center; }
  .bass-method-link { display: block; text-align: center; margin-top: 19px; }
}

/* Full-width main visual; copy follows the page's content alignment. */
.bass-hero { padding-top: 0; }
.bass-stage {
  aspect-ratio: auto;
  min-height: clamp(470px, 43vw, 720px);
  padding-inline: max(48px, calc((100% - 1180px) / 2));
}
.bass-stage-label { left: max(48px, calc((100% - 1180px) / 2)); }
@media (min-width: 721px) and (max-width: 1050px) {
  .bass-stage { min-height: 430px; padding-inline: 32px; }
  .bass-stage-label { left: 32px; }
}
@media (max-width: 720px) {
  .bass-hero { padding-top: 0; }
  .bass-stage { min-height: 460px; padding-inline: 20px; }
  .bass-stage-label { left: 20px; }
}

/* Compact sticky header and a closer introduction/CTA grouping. */
.site-header .header-inner { transition: min-height 180ms ease; }
.site-header .brand-name { transition: font-size 180ms ease; }
.site-header .header-cta { transition: padding 180ms ease; }
.site-header.is-scrolled .header-inner { min-height: 76px; }
.site-header.is-scrolled .brand-name { font-size: 32px; }
.site-header.is-scrolled .header-cta { padding-block: 10px; }
.bass-intro {
  max-width: 1180px;
  grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
  gap: clamp(32px,4vw,56px);
  padding-bottom: 24px;
}
 .bass-intro-copy, .bass-intro-actions { min-width: 0; }
.bass-intro-actions .button { width: 100%; }
.bass-intro-actions .small { font-size: 14px; line-height: 1.85; }
#method.section { padding-top: 48px; }
@media (min-width: 721px) and (max-width: 1050px) {
  .bass-intro { gap: 28px; }
  .bass-intro-actions .small { font-size: 13px; }
}
@media (max-width: 720px) {
  .site-header.is-scrolled .header-inner { min-height: 68px; }
  .site-header.is-scrolled .brand-name { font-size: 28px; }
  .site-header.is-scrolled .header-cta { padding-block: 8px; }
  .bass-intro { grid-template-columns: 1fr; gap: 24px; padding-bottom: 24px; }
  .bass-intro-actions .small { font-size: 13px; }
  #method.section { padding-top: 32px; }
}

@media (min-width: 721px) {
  .bass-intro {
    max-width: 1180px;
    grid-template-columns: 60% 30%;
    column-gap: 10%;
    padding-top: 36px;
  }
  .bass-intro-copy>p { font-size: 17px; }
  .bass-intro-main > span { white-space: nowrap; }
  .bass-intro-actions .button { min-height: 64px; font-size: 16px; }
  .bass-intro-actions .small { font-size: 14px; }
}

/* Keep service numbers clean and consistent with the Japanese UI typeface. */
.price-card h3 span,
.amount,
.trial-time > strong {
  font-family: var(--sans);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.045em;
}
.price-card h3 span {
  font-weight: 700;
}
.amount,
.trial-time > strong {
  font-weight: 600;
}

/* One warm surface connects the message and the trial invitation. */
.brand-name,
.name-word {
  letter-spacing: 0.015em;
  font-kerning: normal;
}
.bass-intro-band { background: var(--cream); }
.bass-intro {
  align-items: start;
  padding-block: 38px;
}
.bass-intro-copy > .bass-intro-main { font-size: 19px; }
.bass-intro-main > span {
  display: inline-block;
  max-width: 100%;
  white-space: normal;
}
.bass-intro-actions .button {
  position: relative;
  justify-content: center;
  text-align: center;
  padding-inline: 16px;
  gap: 10px;
  font-size: clamp(14px, 1.15vw, 16px);
  white-space: nowrap;
}
.bass-intro-actions .button .bass-cta-label {
  font-size: inherit;
  line-height: 1.6;
  flex-shrink: 0;
}
.bass-intro-actions .button .bass-cta-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  flex-shrink: 0;
}
@media (max-width: 980px) {
  .bass-intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding-block: 28px;
  }
  .bass-intro-copy > .bass-intro-main { font-size: 17px; }
  .bass-intro-copy,
  .bass-intro-actions { width: 100%; max-width: none; }
  .bass-intro-actions .button { font-size: 15px; }
}
@media (max-width: 380px) {
  .bass-intro-actions .button { font-size: 14px; padding-inline: 12px; gap: 8px; }
}

/* Access and privacy details added for the public launch. */
.access { background: #e9edde; }
.access-grid {
  display: grid;
  grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr);
  gap: clamp(42px,6vw,82px);
  align-items: center;
}
.access-copy .eyebrow { margin-bottom: 18px; }
.studio-name { margin-top: 28px; font-size: 20px; font-weight: 600; line-height: 1.75; }
.access address { margin-top: 14px; font-style: normal; color: var(--muted); }
.access-note { margin-top: 22px; color: var(--muted); font-size: 14px; }
.map-link { display: inline-flex; gap: 14px; align-items: center; margin-top: 24px; font-weight: 600; }
.map-link span { font-size: 20px; }
.map-frame { min-height: 420px; overflow: hidden; border: 1px solid #bfc8b9; border-radius: 4px; background: #dce1d6; }
.map-frame iframe { display: block; width: 100%; height: 420px; border: 0; }
.privacy-policy { padding-block: 88px; border-top: 1px solid var(--line); background: #fffdf8; }
.privacy-inner { display: grid; grid-template-columns: minmax(230px,.65fr) minmax(0,1.35fr); gap: clamp(48px,7vw,100px); }
.privacy-heading .eyebrow { margin-bottom: 18px; }
.privacy-body { color: var(--muted); }
.privacy-body > section { margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--line); }
.privacy-body h2,
.privacy-body h3 { color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.8; }
.privacy-body h2 + p,
.privacy-body h3 + p { margin-top: 9px; }
.policy-date { margin-top: 34px; font-size: 13px; }
.privacy-page h1 { white-space: normal; font-size: clamp(30px,4vw,48px); line-height: 1.55; letter-spacing: .01em; }
.privacy-page .privacy-policy { min-height: calc(100vh - 210px); }
.privacy-page .privacy-inner { display: block; max-width: 900px; }
.privacy-page .privacy-heading { margin-bottom: 48px; }
.privacy-page .privacy-heading .eyebrow { margin-bottom: 12px; }
.privacy-page .privacy-body { width: 100%; }
.privacy-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.footer-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-size: 13px; }
.footer-meta p { margin: 0; }

@media (max-width: 720px) {
  .access-grid,
  .privacy-inner { grid-template-columns: 1fr; gap: 32px; }
  .map-frame { min-height: 340px; }
  .map-frame iframe { height: 340px; }
  .privacy-policy { padding-block: 60px; }
  .privacy-page .privacy-heading { margin-bottom: 34px; }
  .privacy-body > section { margin-top: 25px; padding-top: 21px; }
  .privacy-footer { align-items: flex-start; flex-direction: column-reverse; }
  .footer-meta { align-items: flex-start; }
}

/* Lesson goals and teaching approach, followed by support shared by all students. */
.lesson-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
  gap: clamp(36px, 5vw, 80px);
  align-items: start;
}
.lesson-overview-heading h2 { font-size: clamp(26px, 2.7vw, 36px); }
.lesson-overview-heading > p:last-child { margin-top: 26px; color: var(--muted); }
.lesson-goals article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.lesson-goals article:first-child { padding-top: 0; }
.lesson-goal-number { font-family: var(--sans); font-size: 15px; font-weight: 500; color: #627342; padding-top: 5px; }
.lesson-goals h3 { font-size: 21px; line-height: 1.75; }
.lesson-goals p { margin-top: 14px; color: var(--muted); }
.lesson-home-support {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
  align-items: center;
  gap: 36px;
  margin-top: 44px;
  padding: 30px 34px;
  background: #e9edde;
}
.lesson-home-support h3 { font-size: 21px; line-height: 1.75; }
.lesson-home-support p { margin: 0; color: var(--muted); }
@media (max-width: 850px) {
  .lesson-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .lesson-overview-heading h2 { font-size: 28px; }
  .lesson-home-support { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 26px; margin-top: 32px; }
}
@media (max-width: 480px) {
  .lesson-goals article { grid-template-columns: 24px minmax(0, 1fr); gap: 12px; }
  .lesson-goals h3, .lesson-home-support h3 { font-size: 19px; }
  .lesson-home-support { padding: 24px 20px; }
}
