.package-page{--package-accent:#d6ff3f}
.package-page--genba{--package-accent:#e8d4c0}
.package-page--eigyo{--package-accent:#d8dce6}
.package-page--tenpo{--package-accent:#d7e4cc}

/* hero: inherit top-page structure from styles.css; static fallback for insert word + by LINE. */
.package-page .hero__title,
.package-page .hero__title-word:not(.hero__title-word--business),
.package-page .hero__line-mark{
  font-family:var(--serif);
}
.package-page .hero__product{
  width:100%;
  margin:0 0 48px;
  font-size:min(11vw,190px);
  line-height:.88;
  letter-spacing:-.1em;
  white-space:nowrap;
  max-width:100%;
}
.package-page .hero__product,
.package-page .hero__product-name,
.package-page .hero__title-word--business{
  font-family:'Dela Gothic One',var(--sans);
}
.package-page .hero__tagline{
  font-family:var(--sans);
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}
.package-page .hero__title > .hero__title-insert-slot{
  flex-basis:auto;
  width:auto;
  overflow:visible;
}
.package-page .hero__title-word--business{
  opacity:1;
  transform:none;
  letter-spacing:-.08em;
  line-height:.9;
}
.package-page .hero__line-mark{
  flex-basis:auto;
  width:auto;
  overflow:visible;
  margin-left:.28em;
}
.package-page .hero__line-mark span{
  opacity:1;
  transform:none;
}
.package-page .hero__tagline-item.is-active{
  opacity:1;
  transform:none;
}
.package-page .hero__copy{
  text-align:center;
}
.package-page .hero__product{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* motion-enabled: collapse to animated initial state until JS reveals */
.package-page.hero--animate .hero__title > .hero__title-insert-slot:not(.is-splitting){
  flex-basis:0;
  width:0;
  overflow:hidden;
}
.package-page.hero--animate .hero__title-word--business{
  opacity:0;
  transform:translateY(.1em) scale(.88);
}
.package-page.hero--animate .hero__line-mark:not(.is-expanding):not(.is-visible){
  flex-basis:0;
  width:0;
  overflow:hidden;
}
.package-page.hero--animate .hero__line-mark:not(.is-visible) span{
  opacity:0;
}

@media (prefers-reduced-motion:reduce){
  .package-page.hero--animate .hero__title > .hero__title-insert-slot:not(.is-splitting){
    flex-basis:auto;
    width:auto;
    overflow:visible;
    transition:none;
  }
  .package-page.hero--animate .hero__title-word--business,
  .package-page .hero__title-word--business{
    opacity:1;
    transform:none;
    animation:none;
  }
  .package-page.hero--animate .hero__line-mark:not(.is-expanding):not(.is-visible),
  .package-page .hero__line-mark{
    flex-basis:auto;
    width:auto;
    overflow:visible;
    transition:none;
  }
  .package-page.hero--animate .hero__line-mark:not(.is-visible) span,
  .package-page .hero__line-mark span{
    opacity:1;
    transform:none;
    animation:none;
  }
  .package-page .hero__tagline-item{
    transition:none;
  }
  .package-page .hero__tagline-item.is-active{
    transform:none;
  }
}

/* page-specific intro block below hero */
.package-hero-intro{
  padding-top:0;
  padding-bottom:clamp(48px,8vw,96px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);
  gap:clamp(48px,9vw,140px);
  align-items:end;
  border-bottom:1px solid rgba(17,17,17,.24);
}
.package-hero-intro__headline{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(36px,6vw,88px);
  line-height:1.05;
  letter-spacing:-.08em;
}
.package-hero-intro__headline span{
  background:var(--package-accent);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  padding:0 .08em;
}
.package-hero-intro__lead{
  max-width:42em;
  margin:32px 0;
  color:var(--muted);
  font-size:18px;
  line-height:1.7;
}
.package-hero-intro__index{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:16px 12px;
  align-items:center;
  padding:24px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.package-hero-intro__index span{
  font-family:var(--serif);
  font-size:11px;
  letter-spacing:.12em;
  color:var(--muted);
}
.package-hero-intro__index strong{
  font-size:18px;
}

.package-mie-banner{max-width:none;padding:28px var(--frame);background:var(--ink);color:var(--white);border-bottom:1px solid rgba(245,245,242,.18)}
.package-mie-banner__inner{max-width:1600px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.package-mie-banner strong{font-size:clamp(20px,3vw,32px);letter-spacing:-.06em;line-height:1.2}
.package-mie-banner p{margin:0;max-width:36em;color:#ccc;font-size:15px;line-height:1.6}
.package-mie-banner .button{flex-shrink:0;background:var(--package-accent);color:var(--ink);border-color:var(--package-accent)}
.package-mie-banner .button:hover{background:var(--white);border-color:var(--white)}
.package-dark{max-width:none;padding-top:var(--section);padding-bottom:var(--section);background:var(--dark);color:var(--white)}
.package-dark h2{max-width:900px;margin:0 0 64px;font-family:var(--sans);font-size:clamp(42px,6vw,88px);line-height:1.05;letter-spacing:-.07em}
.package-dark h2 span{color:#999}
.package-pains{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#555}
.package-pains article{min-height:240px;padding:clamp(24px,4vw,56px);background:var(--dark)}
.package-pains article>span{font-family:var(--serif);color:#999;font-size:11px;letter-spacing:.12em}
.package-pains h3{margin:40px 0 16px;font-size:clamp(22px,3vw,36px);line-height:1.2}
.package-pains p{max-width:34em;margin:0;color:#aaa;font-size:15px;line-height:1.7}
.package-section,.package-contact{padding-top:var(--section);padding-bottom:var(--section)}
.package-section--tint{max-width:none;background:#e6e6e2}
.package-section .section-heading,.package-contact .section-heading{max-width:700px;margin-bottom:56px}
.package-section h2,.package-contact h2{margin:0 0 24px;font-size:clamp(36px,5vw,72px);line-height:1.05;letter-spacing:-.07em}
.package-section h2{font-family:var(--sans)}
.package-contact .contact__intro h2{font-family:var(--sans)}
.package-section .section-heading>p:last-child,.package-contact .section-heading>p:last-child{color:var(--muted)}
.package-solutions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.package-solutions article{min-height:280px;padding:28px;border-top:2px solid var(--ink);display:flex;flex-direction:column;background:var(--paper)}
.package-solutions article>span{font-family:var(--serif);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.package-solutions h3{margin:48px 0 16px;font-family:var(--serif);font-size:clamp(40px,4vw,52px);line-height:.9}
.package-solutions p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.package-scope-note{grid-column:1/-1;margin:32px 0 0;padding:20px 24px;border:1px solid var(--line);background:var(--white);color:var(--muted);font-size:14px;line-height:1.7}
.package-monitor{max-width:none;padding:clamp(48px,8vw,96px) var(--frame);background:linear-gradient(135deg,var(--package-accent) 0%,var(--paper) 60%);border-bottom:1px solid rgba(17,17,17,.18)}
.package-monitor__inner{max-width:900px;margin:0 auto}
.package-monitor h2{margin:0 0 20px;font-family:var(--sans);font-size:clamp(28px,4vw,48px);line-height:1.15;letter-spacing:-.06em}
.package-monitor p{margin:0 0 24px;color:var(--muted);font-size:16px;line-height:1.7}
.package-pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.package-pricing article{padding:28px;border:1px solid var(--ink);background:var(--white);display:flex;flex-direction:column}
.package-pricing article.is-featured{border-width:2px;background:var(--paper)}
.package-pricing__label{font-family:var(--serif);font-size:11px;letter-spacing:.14em;color:var(--muted)}
.package-pricing h3{margin:24px 0 12px;font-size:clamp(22px,2.5vw,32px);line-height:1.2;letter-spacing:-.05em}
.package-pricing__price{margin:0 0 16px;font-size:clamp(20px,2vw,28px);font-weight:700;letter-spacing:-.04em}
.package-pricing__price small{display:block;margin-top:4px;color:var(--muted);font-size:13px;font-weight:400}
.package-pricing ul{margin:0 0 24px;padding:0;list-style:none;border-top:1px solid var(--line)}
.package-pricing li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--muted)}
.package-pricing__note{grid-column:1/-1;margin:24px 0 0;color:var(--muted);font-size:14px;line-height:1.7}
.package-blog-link{padding-top:var(--section);padding-bottom:var(--section);display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(32px,8vw,120px);align-items:end}
.package-blog-link h2{margin:0;font-family:var(--sans);font-size:clamp(36px,6vw,72px);line-height:.95;letter-spacing:-.08em}
.package-blog-link__card{position:relative;display:grid;gap:16px;min-height:160px;padding:28px 64px 28px 28px;border:1px solid var(--ink);background:var(--white);transition:background .15s ease,color .15s ease,transform .15s ease}
.package-blog-link__card:hover,.package-blog-link__card:focus-visible{background:var(--ink);color:var(--white);transform:translateY(-4px)}
.package-blog-link__meta{font-family:var(--serif);font-size:12px;letter-spacing:.12em;color:var(--muted)}
.package-blog-link__card:hover .package-blog-link__meta,.package-blog-link__card:focus-visible .package-blog-link__meta{color:#aaa}
.package-blog-link__card strong{max-width:18em;font-size:clamp(18px,2vw,28px);line-height:1.35;letter-spacing:-.05em}
.package-blog-link__arrow{position:absolute;right:28px;bottom:24px;font-family:var(--serif);font-size:28px}
.package-contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,10vw,180px)}
.package-contact .contact-form{border-top:1px solid var(--ink)}
.package-kabeuchi{padding-top:var(--section);padding-bottom:var(--section)}
.package-kabeuchi .kabeuchi__title{font-family:var(--sans)}
@media (max-width:900px){.package-hero-intro{grid-template-columns:1fr}.package-solutions,.package-pricing{grid-template-columns:1fr}.package-solutions article{min-height:0}.package-contact,.package-blog-link{grid-template-columns:1fr;gap:48px}.package-pains{grid-template-columns:1fr}}
@media (max-width:560px){
  .package-page .hero__copy{
    width:100%;
    max-width:100%;
    text-align:center;
  }
  .package-page .hero__product{
    width:100%;
    max-width:100%;
    margin:0 0 36px;
    font-size:min(10vw,120px);
    white-space:normal;
    text-align:center;
  }
  .package-page .hero__title{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    font-size:clamp(18px,5.8vw,30px);
    letter-spacing:-.05em;
    column-gap:.04em;
    row-gap:.08em;
    flex-wrap:wrap;
    white-space:normal;
    justify-content:center;
    overflow-wrap:anywhere;
  }
  .package-page .hero__title-word,
  .package-page .hero__line-mark{
    white-space:normal;
    max-width:100%;
  }
  .package-page .hero__line-mark{
    margin-left:.18em;
  }
  .package-page .hero__tagline{
    width:100%;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .package-page .hero__tagline-item{
    white-space:normal;
    text-align:center;
    overflow-wrap:anywhere;
  }
  .package-hero-intro{padding-bottom:72px}
  .package-hero-intro__headline{font-size:clamp(32px,9vw,56px)}
  .package-hero-intro__lead{font-size:16px}
  .package-dark,.package-section,.package-contact,.package-blog-link,.package-kabeuchi{padding-top:72px;padding-bottom:72px}
  .package-dark h2,.package-section h2,.package-contact h2{font-size:42px}
  .package-pains article{min-height:0}
  .package-pains h3{margin-top:28px}
  .package-pricing article{padding:24px}
  .package-blog-link__card{padding:20px 52px 20px 20px}
}
