*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family:"Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--c-body); background:var(--c-bg);
  font-size:var(--fs-3); line-height:var(--lh-body); letter-spacing:var(--ls-base);
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; height:auto; display:block; }
a{ color:var(--c-accent); text-decoration:none; }
a:hover{ color:var(--c-accent-dark); }
a,button{
  transition:color var(--dur-react) var(--ease-in),
             background-color var(--dur-react) var(--ease-in),
             border-color var(--dur-react) var(--ease-in);
}

.wrap{ width:100%; max-width:var(--w-page); margin-inline:auto; padding-inline:var(--sp-5); }
@media (min-width:1024px){ .wrap{ padding-inline:var(--sp-7); } }

section{ padding-block:var(--sp-11); }

.section-soft{ background:var(--c-bg-soft); }

.section-mute{ background:var(--c-mute); }
.section-dark{ background:var(--c-dark); color:var(--c-on-dark-body); }
.section-dark h2,.section-dark h3{ color:var(--c-on-dark); }

@media (min-width:1024px){

  .sec-body{ width:100%; max-width:var(--w-read); }
  .sec-body--wide{ width:100%; max-width:100%; }
}

.breadcrumb{ border-bottom:1px solid var(--c-line); }
.breadcrumb ol{
  list-style:none; margin:0; padding-block:var(--sp-3);
  display:flex; flex-wrap:wrap; gap:var(--sp-3);
  font-size:var(--fs-1); color:var(--c-muted);
}
.breadcrumb li{ display:flex; align-items:center; gap:var(--sp-3); }
.breadcrumb li + li::before{ content:"—"; color:var(--c-line); }
.breadcrumb a{ color:var(--c-muted); }
.breadcrumb a:hover{ color:var(--c-accent); }

.sec-head{ margin-bottom:var(--sp-8); }
.sec-head__row{ display:flex; align-items:flex-end; justify-content:space-between; gap:var(--sp-5); flex-wrap:wrap; }
.sec-head__en{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-accent); margin:0 0 var(--sp-3);
}
.section-dark .sec-head__en{ color:var(--c-on-dark-accent); }
.sec-head h2{
  font-size:var(--fs-6); line-height:var(--lh-head); font-weight:700;
  color:var(--c-ink); margin:0; letter-spacing:var(--ls-tight);
}
.section-dark .sec-head h2{ color:var(--c-on-dark); }
.sec-head__ja{ font-size:var(--fs-1); color:var(--c-muted); margin:var(--sp-2) 0 0; letter-spacing:var(--ls-base); }
.section-dark .sec-head__ja{ color:var(--c-on-dark-mute); }
.sec-head__line{ height:1px; width:var(--sp-8); background:var(--c-line-2); margin-top:var(--sp-5); }
.section-dark .sec-head__line{ background:var(--c-on-dark-line); }

.btn{
  display:inline-flex; align-items:center; gap:var(--sp-4);
  padding:var(--sp-2) var(--sp-6); border-radius:var(--radius-pill); line-height:var(--lh-body);
  font-size:var(--fs-2); font-weight:700; letter-spacing:var(--ls-base);
  border:1px solid transparent; cursor:pointer; white-space:nowrap;
}
.btn__sep{ width:1px; height:var(--sp-4); background:currentColor; opacity:.35; }

.ico-arrow{ width:16px; height:16px; flex:0 0 auto; }
.ico-check{ width:18px; height:18px; flex:0 0 auto; }
.btn__arrow{ width:15px; height:15px; flex:0 0 auto; transition:transform var(--dur-react) var(--ease-in); }
.btn:hover .btn__arrow{ transform:translateX(5px); }

.btn--primary{ background:var(--c-accent); color:#fff; }
.btn--primary:hover{ background:var(--c-accent-dark); color:#fff; }

.btn--ghost{ background:var(--c-bg); color:var(--c-ink); border-color:var(--c-line-strong); }
.btn--ghost:hover{ background:var(--c-ink); color:#fff; border-color:var(--c-ink); }
.btn--ondark{ background:#fff; color:var(--c-ink); }
.btn--ondark:hover{ background:var(--c-accent); color:#fff; }
.btn--lg{ padding:var(--sp-4) var(--sp-7); font-size:var(--fs-3); }

.site-header .btn{ display:none; padding:var(--sp-2) var(--sp-5); gap:var(--sp-3); }
@media (min-width:1100px){ .site-header .btn{ display:inline-flex; } }

.link-arrow{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  color:var(--c-accent); font-size:var(--fs-3); font-weight:700;
  padding-bottom:3px; border-bottom:1px solid currentColor;
}
.link-arrow svg{ width:14px; height:14px; transition:transform var(--dur-react) var(--ease-in); }
.link-arrow:hover{ color:var(--c-ink); }
.link-arrow:hover svg{ transform:translateX(5px); }

.more{ display:inline-flex; align-items:center; gap:var(--sp-3); font-size:var(--fs-2); font-weight:700; color:inherit; }
.more__circle{
  width:34px; height:34px; border-radius:var(--radius-pill);
  border:1px solid currentColor; display:grid; place-items:center;
  transition:background-color var(--dur-react) var(--ease-in),
             color var(--dur-react) var(--ease-in),
             border-color var(--dur-react) var(--ease-in);
}
.more__circle svg{ width:13px; height:13px; transition:transform var(--dur-react) var(--ease-btn); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--c-ink); color:#fff; text-decoration:none;
  padding:var(--sp-3) var(--sp-5); font-size:var(--fs-2); font-weight:700;
  border-radius:0 0 var(--radius-s) 0;
}
.skip-link:focus{ left:0; }

.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--c-bg-header);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--c-line);
}
.site-header__inner{ height:var(--header-h); display:flex; align-items:center; gap:var(--sp-6); }

.site-header__logo img{ height:34px; width:auto; }
@media (max-width:767px){ .site-header__logo img{ height:26px; } }

.site-header .btn--primary{ background:var(--c-cta); border-color:var(--c-cta); color:var(--c-on-dark); }
.site-header .btn--primary:hover{ background:var(--c-cta-hover); border-color:var(--c-cta-hover); }

.btn__text{ display:inline-block; position:relative; overflow:hidden; vertical-align:middle; }
.btn__text > span{ display:block; transition:transform var(--dur-btn) var(--ease-btn); }
.btn__text > span:last-child{ position:absolute; inset:100% 0 auto 0; }
.btn:hover .btn__text > span{ transform:translateY(-100%); }
@media (prefers-reduced-motion:reduce){ .btn__text > span{ transition:none; } }
.nav{ display:none; margin-left:auto; }
@media (min-width:1100px){ .nav{ display:flex; align-items:center; gap:var(--sp-6); } }
.nav a{
  color:var(--c-ink); font-size:var(--fs-2); font-weight:500; letter-spacing:var(--ls-base);
  padding-block:var(--sp-2); border-bottom:2px solid transparent;
}
.nav a:hover{ color:var(--c-accent); border-bottom-color:var(--c-accent); }
.nav a[aria-current="page"]{ color:var(--c-ink); border-bottom-color:var(--c-accent); }

.burger{ margin-left:auto; width:44px; height:44px; display:grid; place-items:center; background:none; border:0; cursor:pointer; }
@media (min-width:1100px){ .burger{ display:none; } }
.burger span{ display:block; width:22px; height:2px; background:var(--c-ink); position:relative; }
.burger span::before,.burger span::after{
  content:""; position:absolute; left:0; width:22px; height:2px; background:var(--c-ink);
  transition:transform var(--dur-react) var(--ease-in), top var(--dur-react) var(--ease-in);
}
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }
.burger[aria-expanded="true"] span{ background:transparent; }
.burger[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.burger[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }

.drawer{
  position:fixed; inset:var(--header-h) 0 0 0; z-index:40;
  background:#fff; padding:var(--sp-5); overflow-y:auto;
  opacity:0; visibility:hidden;
  transition:opacity var(--dur-react) var(--ease-in), visibility var(--dur-react);
}
.drawer.-open{ opacity:1; visibility:visible; }
.drawer a{ display:block; padding:var(--sp-4) var(--sp-1); color:var(--c-ink); font-weight:500; border-bottom:1px solid var(--c-line); }
.drawer .btn{ margin-top:var(--sp-5); width:100%; border-bottom:0; display:flex; justify-content:center; }
.drawer .btn--primary,.drawer .btn--primary:hover{ color:#fff; }

.page-hero{ padding-block:var(--sp-9) var(--sp-6); position:relative; overflow:hidden; }
.page-hero > *{ position:relative; z-index:1; }
.page-hero__ja{
  font-size:var(--fs-2); font-weight:700; letter-spacing:var(--ls-base);
  color:var(--c-accent); margin:0 0 var(--sp-4);
}
.page-hero h1{
  font-size:var(--fs-7); line-height:var(--lh-tight); margin:0;
  color:var(--c-ink); font-weight:700; letter-spacing:var(--ls-tight);
}
.page-hero__lead{ margin:var(--sp-6) 0 0; font-size:var(--fs-3); color:var(--c-muted); max-width:var(--w-read); }

.page-hero::before{
  content:""; position:absolute; top:-4%; bottom:-4%; left:46%;
  right:var(--sp-7);
  background-repeat:no-repeat; background-position:right center; background-size:contain;
  opacity:.3; pointer-events:none; z-index:0;
  -webkit-mask-image:radial-gradient(115% 130% at 88% 45%, #000 4%, transparent 62%);
          mask-image:radial-gradient(115% 130% at 88% 45%, #000 4%, transparent 62%);
}

@media (max-width:767px){
  .page-hero::before{ inset:-6% -12% 30% 28%; opacity:.2; }
}

.eyebrow{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:var(--fs-2); font-weight:700; letter-spacing:var(--ls-base);
  color:var(--c-ink); margin:0 0 var(--sp-4);
}
.eyebrow::before{ content:""; width:6px; height:6px; border-radius:var(--radius-pill); background:var(--c-accent); flex:0 0 auto; }

.statement{
  font-size:var(--fs-5); line-height:var(--lh-head); font-weight:700;
  color:var(--c-ink); margin:0 0 var(--sp-5); letter-spacing:var(--ls-tight);
}
.statement--lg{ font-size:var(--fs-6); }

.statement--3{ margin:var(--sp-8) 0 var(--sp-9); }
.statement--3 span{ display:block; }
.statement--3 span + span{ margin-top:var(--sp-3); }
.statement--sm{ font-size:var(--fs-4); line-height:var(--lh-body); }
.section-dark .statement{ color:var(--c-on-dark); }

h2{ font-size:var(--fs-5); line-height:var(--lh-head); color:var(--c-ink); margin:0 0 var(--sp-5); }
h3{ font-size:var(--fs-4); line-height:var(--lh-head); color:var(--c-ink); margin:0 0 var(--sp-3); }
p{ margin:0 0 var(--sp-5); } p:last-child{ margin-bottom:0; }

h1,h2,h3,.statement,.page-hero__lead,.stance__text,.feature h3,.faq__q{ word-break:auto-phrase; }
@media (min-width:768px){ p,.faq__a,.feature p{ word-break:auto-phrase; } }

.stance{ display:grid; gap:var(--sp-9); }
.stance__item{ display:grid; gap:var(--sp-4); }
@media (min-width:900px){

  .stance__item{ grid-template-columns:200px minmax(0, 760px); gap:var(--sp-8); align-items:start; }
}
.stance__en{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-1);
  letter-spacing:var(--ls-tight); line-height:var(--lh-head);
}
.section-dark .stance__en{ color:var(--c-on-dark); }
.stance__ja{ font-size:var(--fs-1); color:var(--c-muted); margin:0; letter-spacing:var(--ls-base); }
.section-dark .stance__ja{ color:var(--c-on-dark-mute); }
.stance__text{
  font-size:var(--fs-5); font-weight:700; line-height:var(--lh-head);
  color:var(--c-ink); margin:0; letter-spacing:var(--ls-tight);
}
.section-dark .stance__text{ color:var(--c-on-dark); }
.stance__note{ font-size:var(--fs-2); color:var(--c-muted); margin:var(--sp-3) 0 0; }
.section-dark .stance__note{ color:var(--c-on-dark-mute); }

.features{ display:grid; gap:var(--sp-7); }
@media (min-width:768px){ .features{ grid-template-columns:1fr 1fr; gap:var(--sp-7) var(--sp-8); } }

.feature__label{
  display:inline-block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); background:none; padding:0 0 var(--sp-2);
  border-bottom:1px solid var(--c-line-2); margin:0 0 var(--sp-5);
}
.feature h3{ margin-bottom:var(--sp-3); padding-bottom:var(--sp-3); border-bottom:1px solid var(--c-line); }
.feature p{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }

.cards{ align-items:stretch; display:grid; gap:var(--sp-5); grid-auto-rows:1fr; }
@media (min-width:640px){ .cards{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .cards--3{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px){ .cards--4{ grid-template-columns:repeat(4,1fr); } }

.card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  padding:var(--sp-6); border-radius:var(--radius-m);
  background:#fff; border:1px solid var(--c-line);
  transition:box-shadow var(--dur-react) var(--ease-out),
             transform var(--dur-react) var(--ease-out),
             border-color var(--dur-react) var(--ease-out);
}
.card::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--c-ink); pointer-events:none;
  transform:scaleX(0); transform-origin:left center;
  transition:transform .3s var(--ease-out);
}
.card:hover::after{ transform:scaleX(1); }
.card:hover{ box-shadow:var(--shadow-card); transform:translateY(-3px); border-color:var(--c-line-2); }

.card__icon{
  margin-bottom:var(--sp-5); color:var(--c-ink);
  transition:transform var(--dur-react) var(--ease-out);
  transform-origin:left center;
}

.card:hover .card__icon{ transform:scale(1.08); }
.card__icon svg{ width:38px; height:38px; }
.card:hover .card__icon{ color:var(--c-accent); }
.card h3{ font-size:var(--fs-4); margin-bottom:var(--sp-3); }
.card__desc{ font-size:var(--fs-2); line-height:var(--lh-body); color:var(--c-muted); margin:0 0 var(--sp-5); }

.card__desc span{ display:block; }
.card .more{ margin-top:auto; color:var(--c-ink); }
.card:hover .more__circle{ background:var(--c-accent); color:#fff; border-color:var(--c-accent); }
.card:hover .more__circle svg{ transform:translateX(4px); }

.work-cards{ display:grid; gap:var(--sp-6); }
@media (min-width:900px){
  .work-cards{ grid-template-columns:repeat(3,1fr); }

  .work-cards--2{ grid-template-columns:repeat(2,1fr); }
}

.work-card{
  display:flex; flex-direction:column; background:var(--c-bg);
  border:1px solid var(--c-line); border-radius:var(--radius-m);
  overflow:hidden; isolation:isolate;
  text-decoration:none; color:inherit;
  transition:border-color var(--dur-react) var(--ease-in), transform var(--dur-react) var(--ease-in);
}
.work-card:hover{ border-color:var(--c-ink); transform:translateY(-2px); }
.work-card__img{
  aspect-ratio:16/9; overflow:hidden; background:var(--c-bg-soft);
  border-radius:var(--radius-m) var(--radius-m) 0 0;
}
.work-card__img img{
  width:100%; height:100%; object-fit:cover; display:block;
  border-radius:var(--radius-m) var(--radius-m) 0 0;
  transition:transform var(--dur-slow) var(--ease-out);
}
.work-card:hover .work-card__img img{ transform:scale(1.06); }
.work-card__body{ padding:var(--sp-6); display:flex; flex-direction:column; flex:1 1 auto; }

.work-card__meta{
  font-size:var(--fs-1); color:var(--c-muted); margin:0 0 var(--sp-3);
  letter-spacing:var(--ls-base);
}
.work-card__body h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-4);
}
.work-card__lead{
  font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body);
  margin:0 0 var(--sp-5); flex:1 1 auto;
}
.work-card__more{
  display:inline-block; font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  text-decoration:underline; text-underline-offset:4px; margin:var(--sp-2) 0 0;
}
.work-card__client{ font-size:var(--fs-1); color:var(--c-muted); margin:0 0 var(--sp-2); }
.work-card h3{ font-size:var(--fs-3); line-height:var(--lh-head); margin:0 0 var(--sp-3); }
.work-card p{ font-size:var(--fs-2); line-height:var(--lh-body); color:var(--c-muted); margin:0 0 var(--sp-4); }
.tags{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-top:auto; }
.tag{
  font-size:var(--fs-1); color:var(--c-muted);
  border:1px solid var(--c-line); border-radius:var(--radius-pill);
  padding:var(--sp-1) var(--sp-3); white-space:nowrap;
}

.figure{ margin:var(--sp-6) 0; }
.figure__caption{ font-size:var(--fs-1); color:var(--c-muted); margin:var(--sp-3) 0 0; }

.faq{ border-top:1px solid var(--c-line); }
.faq__item{ border-bottom:1px solid var(--c-line); padding-block:var(--sp-5); }
.faq__q{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); }
.faq__a{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }

.cta-split{ display:grid; gap:var(--sp-5); }
@media (min-width:768px){ .cta-split{ grid-template-columns:1fr 1fr; gap:var(--sp-6); } }
.cta-split__col{
  display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-l);
  padding:var(--sp-7);
  transition:transform var(--dur-reveal) var(--ease-out),
             box-shadow var(--dur-reveal) var(--ease-out),
             border-color var(--dur-react) var(--ease-in);
}
.cta-split__col:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); border-color:var(--c-accent); }
.cta-split__col .btn{ margin-top:auto; align-self:flex-start; }
.cta-split h2{ font-size:var(--fs-6); margin-bottom:var(--sp-4); }
.cta-split p{ font-size:var(--fs-3); color:var(--c-muted); margin-bottom:var(--sp-6); }

.site-footer{ background:var(--c-dark); color:#fff; padding-block:var(--sp-8) var(--sp-6); }
.site-footer a{ color:var(--c-on-dark-body); position:relative; display:inline-block; }
.site-footer a:hover{ color:#fff; }
.site-footer a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:currentColor; transition:width var(--dur-react) var(--ease-in);
}
.site-footer a:hover::after{ width:100%; }
.site-footer__logo img{ height:30px; width:auto; margin-bottom:var(--sp-5); }
.site-footer__grid{ display:grid; gap:var(--sp-6); }
@media (min-width:768px){ .site-footer__grid{ grid-template-columns:1.5fr 1fr 1fr; gap:var(--sp-8); } }
.site-footer h4{ font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-on-dark-mute); margin:0 0 var(--sp-4); font-weight:700; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:var(--sp-3); font-size:var(--fs-2); }
.site-footer__info{ font-size:var(--fs-2); color:var(--c-on-dark-mute); line-height:var(--lh-body); }
.site-footer__bottom{
  margin-top:var(--sp-7); padding-top:var(--sp-5); border-top:1px solid var(--c-on-dark-line);
  font-size:var(--fs-1); color:var(--c-on-dark-mute);
  display:flex; flex-wrap:wrap; gap:var(--sp-4); justify-content:space-between;
}

.article h2{
  font-size:var(--fs-5); line-height:var(--lh-head); margin:var(--sp-9) 0 var(--sp-5);
  color:var(--c-ink); padding-top:var(--sp-6); border-top:1px solid var(--c-line);
}
.article > h2:first-child{ margin-top:0; padding-top:0; border-top:0; }
.article p{ margin:0 0 var(--sp-5); }

.deflist{ border-top:1px solid var(--c-line); }
.deflist__row{ display:grid; gap:var(--sp-1); padding-block:var(--sp-5); border-bottom:1px solid var(--c-line); }
@media (min-width:768px){ .deflist__row{ grid-template-columns:200px 1fr; gap:var(--sp-6); } }
.deflist__key{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:0; }
.deflist__val{ font-size:var(--fs-3); margin:0; }

.form{ display:grid; gap:var(--sp-6); }

.form{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-4); }
.form > *{ grid-column:1 / -1; min-width:0; }
@media (min-width:520px){
  .form{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--sp-4); }
  .form__row--half{ grid-column:auto; }
}
.form__row{ display:grid; gap:var(--sp-2); align-content:start; }
.form label{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); }

.form .form__label{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:0; }
.form .req{ font-size:var(--fs-1); font-weight:700; color:var(--c-danger); margin-left:var(--sp-2); }
.form .opt{ font-size:var(--fs-1); font-weight:700; color:var(--c-muted); margin-left:var(--sp-2); }
.form input:not([type="checkbox"]):not([type="radio"]),.form textarea,.form select{
  font:inherit; font-size:var(--fs-2); color:var(--c-ink); width:100%;
  padding:var(--sp-3) var(--sp-4); border:1px solid var(--c-line); border-radius:var(--radius-s); background:#fff;
  transition:border-color var(--dur-react) var(--ease-in), box-shadow var(--dur-react) var(--ease-in);
}

.form input:not([type="checkbox"]):not([type="radio"]):focus,.form textarea:focus,.form select:focus{
  outline:none; border-color:var(--c-line-2); box-shadow:0 0 0 3px rgba(5,7,10,.06);
}

.form input:not([type="checkbox"]):not([type="radio"]):focus-visible,
.form textarea:focus-visible,
.form select:focus-visible{
  outline:2px solid var(--c-ink); outline-offset:2px;
}
.form textarea{ min-height:132px; resize:vertical; }
.form__note{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }

.svc-group{ padding-block:var(--sp-7); border-top:1px solid var(--c-line); }
.svc-group:first-child{ border-top:0; padding-top:0; }
@media (min-width:900px){ .svc-group{ display:grid; grid-template-columns:280px 1fr; gap:var(--sp-8); } }
.svc-group__head h3{ margin:0 0 var(--sp-2); }
.svc-group__head p{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }
.svc-items{ display:grid; margin-top:var(--sp-4); }
@media (min-width:900px){ .svc-items{ margin-top:0; } }
.svc-item{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-1); border-bottom:1px solid var(--c-line);
  font-size:var(--fs-3); font-weight:700; color:var(--c-ink);
}
.svc-item:hover{ color:var(--c-accent); }
.svc-item svg{ width:14px; height:14px; flex:0 0 auto; transition:transform var(--dur-react) var(--ease-in); }
.svc-item:hover svg{ transform:translateX(4px); }

@keyframes heroIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
@keyframes heroBg{ to{ opacity:.3; } }
.js .page-hero__ja,
.js .page-hero h1,
.js .page-hero__lead{ opacity:0; animation:heroIn .9s var(--ease-out) forwards; }
.js .page-hero__ja{ animation-delay:.05s; }
.js .page-hero h1{ animation-delay:.16s; }
.js .page-hero__lead{ animation-delay:.32s; }
.js .page-hero::before{ opacity:0; animation:heroBg var(--dur-slow) var(--ease-out) .1s forwards; }

.js .reveal{ opacity:0; }
.js .reveal.-visible{ opacity:1; animation:revealIn var(--dur-reveal) var(--ease-out); }
@keyframes revealIn{
  from{ opacity:0; transform:translateY(24px); }
  to  { opacity:1; transform:none; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; transition:none; animation:none; }
  .js .reveal.-visible{ animation:none; }
  .js .page-hero__ja,.js .page-hero h1,.js .page-hero__lead{ opacity:1; animation:none; }
  .js .page-hero::before{ opacity:.3; animation:none; }
  .btn__arrow,.link-arrow svg,.site-footer a::after,.work-card,.card,.cta-split__col{ transition:none; }
}

.u-mt-l{ margin-top:var(--sp-6); }
.u-mt-xl{ margin-top:var(--sp-7); }
.u-mb-0{ margin-bottom:0; }

.home-hero{ padding-block:var(--sp-10) var(--sp-9); position:relative; overflow:hidden; }

.home-hero > *:not(.hero-bg){ position:relative; z-index:1; }

.home-hero__en{
  margin:0; font-size:var(--fs-hero); line-height:var(--lh-hero);
  color:var(--c-ink); font-weight:400; letter-spacing:var(--ls-tight);
  font-family:Georgia,"Times New Roman",serif;
}

.home-hero h1{
  font-size:var(--fs-4); line-height:var(--lh-head); margin:var(--sp-5) 0 0;
  color:var(--c-body); font-weight:700; letter-spacing:var(--ls-base);
}
.home-hero__lead{ margin:var(--sp-7) 0 0; font-size:var(--fs-3); color:var(--c-body); max-width:var(--w-read); }
.home-hero__actions{ display:flex; flex-wrap:wrap; gap:var(--sp-4); margin-top:var(--sp-7); }
.home-hero::before{
  content:""; position:absolute; top:-4%; bottom:-4%; left:46%;
  right:var(--sp-7);
  background-image:url("img/hero-about.png");
  background-repeat:no-repeat; background-position:right center; background-size:contain;
  opacity:.3; pointer-events:none; z-index:0;
  -webkit-mask-image:radial-gradient(115% 130% at 88% 45%, #000 4%, transparent 62%);
          mask-image:radial-gradient(115% 130% at 88% 45%, #000 4%, transparent 62%);
}
@media (max-width:767px){ .home-hero::before{ inset:-6% -12% 34% 26%; opacity:.2; } }
.js .home-hero__en,.js .home-hero h1,.js .home-hero__lead,.js .home-hero__actions{ opacity:0; animation:heroIn .9s var(--ease-out) forwards; }
.js .home-hero__en{ animation-delay:.1s; }
.js .home-hero h1{ animation-delay:.26s; }
.js .home-hero__lead{ animation-delay:.42s; }
.js .home-hero__actions{ animation-delay:.56s; }
.js .home-hero::before{ opacity:0; animation:heroBg var(--dur-slow) var(--ease-out) .1s forwards; }
@media (prefers-reduced-motion: reduce){
  .js .home-hero__en,.js .home-hero h1,.js .home-hero__lead,.js .home-hero__actions{ opacity:1; animation:none; }
  .js .home-hero::before{ opacity:.32; animation:none; }
}

.needs{ display:grid; gap:0; border-top:1px solid var(--c-line); }
.needs__item{
  display:flex; align-items:flex-start; gap:var(--sp-4);
  padding-block:var(--sp-5); border-bottom:1px solid var(--c-line);
  font-size:var(--fs-3); color:var(--c-ink);
}
.needs__item::before{
  content:""; flex:0 0 auto; width:11px; height:6px; margin-top:var(--sp-3);
  border-left:2px solid var(--c-ink); border-bottom:2px solid var(--c-ink);
  transform:rotate(-45deg);
}

.sg-bars{ display:grid; gap:var(--sp-3); margin-top:var(--sp-6); }
.sg-bar{ display:grid; grid-template-columns:120px 1fr 34px; align-items:center; gap:var(--sp-4); font-size:var(--fs-2); }
.sg-bar__name{ color:var(--c-body); }
.sg-bar__track{ height:8px; background:var(--c-line); border-radius:var(--radius-pill); overflow:hidden; }
.sg-bar__fill{ display:block; height:100%; background:var(--c-line-strong); border-radius:var(--radius-pill); }
.sg-bar__num{ text-align:right; font-weight:700; color:var(--c-ink); }
.sg-bar.-now .sg-bar__fill{ background:var(--c-accent); }
.sg-bar.-now .sg-bar__name,.sg-bar.-now .sg-bar__num{ color:var(--c-accent); font-weight:700; }
.sg-bar.-before .sg-bar__fill{ background:var(--c-line-strong); opacity:.55; }
.sg-bar.-before .sg-bar__name,.sg-bar.-before .sg-bar__num{ color:var(--c-muted); }

.sg-type{ display:grid; grid-template-columns:130px 1fr; align-items:baseline; gap:var(--sp-6);
  padding-block:var(--sp-5); border-bottom:1px solid var(--c-line); }
.sg-type__tag{ font-size:var(--fs-1); color:var(--c-muted); }
.sg-type__sample{ color:var(--c-ink); font-weight:700; line-height:var(--lh-head); }

.sg-colors{ display:grid; gap:var(--sp-5); grid-template-columns:repeat(2,1fr); }
@media (min-width:768px){ .sg-colors{ grid-template-columns:repeat(4,1fr); } }
.sg-color{ display:grid; gap:var(--sp-1); font-size:var(--fs-1); color:var(--c-muted); }
.sg-color b{ color:var(--c-ink); font-size:var(--fs-2); }
.sg-color__chip{ height:56px; border-radius:var(--radius-s); border:1px solid var(--c-line); }

.sg-space{ display:flex; align-items:center; gap:var(--sp-5); padding-block:var(--sp-3); }
.sg-space__tag{ width:120px; font-size:var(--fs-1); color:var(--c-muted); flex:0 0 auto; }
.sg-space__bar{ height:14px; background:var(--c-accent-soft); border-left:2px solid var(--c-accent); }

.sg-motion{ display:grid; gap:var(--sp-7); }
@media (min-width:768px){ .sg-motion{ grid-template-columns:1fr 1fr; } }

.sg-table-wrap{ overflow-x:auto; }
.sg-table{ width:100%; border-collapse:collapse; font-size:var(--fs-2); white-space:nowrap; }
.sg-table th,.sg-table td{ padding:var(--sp-3) var(--sp-4); border-bottom:1px solid var(--c-line); text-align:right; }
.sg-table th:first-child,.sg-table td:first-child{ text-align:left; }
.sg-table thead th{ font-size:var(--fs-1); color:var(--c-muted); font-weight:700; }
.sg-table tbody td{ font-variant-numeric:tabular-nums; }
.sg-table tr.-now td{ background:var(--c-accent-soft); color:var(--c-ink); font-weight:700; }
.sg-table tr.-before td{ color:var(--c-muted); }

.sg-code{
  display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:var(--fs-2); background:rgba(255,255,255,.1); color:#fff;
  padding:var(--sp-3) var(--sp-5); border-radius:var(--radius-s); margin-block:var(--sp-4);
}

.price-note{ font-size:var(--fs-1); color:var(--c-muted); }

.svc-items .svc-item:not(a){ color:var(--c-body); font-weight:500; }

.detail-list{ display:grid; gap:var(--sp-7); }
.detail-item{ padding-top:var(--sp-5); border-top:1px solid var(--c-line); }
.section-dark .detail-item{ border-top-color:var(--c-on-dark-line); }
.detail-item__num{ font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-accent); margin:0 0 var(--sp-2); }
.section-dark .detail-item__num{ color:var(--c-on-dark-accent); }
.detail-item h3{ margin:0 0 var(--sp-3); }
.detail-item p{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }
.section-dark .detail-item p{ color:var(--c-on-dark-body); }
@media (min-width:900px){
  .detail-list--2{ grid-template-columns:1fr 1fr; gap:var(--sp-7) var(--sp-8); }
}

.terms{ display:grid; gap:var(--sp-5); }
@media (min-width:768px){ .terms{ grid-template-columns:1fr 1fr; gap:var(--sp-5) var(--sp-7); } }
.term{ display:flex; gap:var(--sp-4); align-items:flex-start; }
.term__mark{
  flex:0 0 auto; width:22px; height:22px; border-radius:var(--radius-pill);
  background:var(--c-accent-soft); color:var(--c-accent);
  display:grid; place-items:center; margin-top:3px;
}
.term__mark svg{ width:12px; height:12px; }
.term__body h4{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); }
.term__body p{ font-size:var(--fs-2); color:var(--c-muted); margin:0; }
.section-dark .term__body h4{ color:var(--c-on-dark); }
.section-dark .term__body p{ color:var(--c-on-dark-body); }
.section-dark .term__mark{ background:rgba(255,255,255,.14); color:#fff; }

.steps{ display:grid; gap:0; }
.step{ display:grid; gap:var(--sp-3); padding-block:var(--sp-6); border-top:1px solid var(--c-on-dark-line); }
.steps--light .step{ border-top-color:var(--c-line); }
.steps--light .step__when{ color:var(--c-accent); }
.steps--light .step__body h4{ color:var(--c-ink); }
.steps--light .step__body p{ color:var(--c-muted); }
@media (min-width:768px){ .step{ grid-template-columns:180px 1fr; gap:var(--sp-7); } }
.step__when{ font-size:var(--fs-4); font-weight:700; color:var(--c-on-dark); margin:0; }
.step__body h4{ font-size:var(--fs-3); font-weight:700; color:var(--c-on-dark); margin:0 0 var(--sp-2); }
.step__body p{ font-size:var(--fs-2); color:var(--c-on-dark-body); margin:0; }

.tldr{
  display:grid; grid-template-columns:1fr; gap:0;
  border:1px solid var(--c-line); border-radius:var(--radius-m);
  margin:var(--sp-8) 0 0; overflow:hidden;
}
@media (min-width:768px){ .tldr{ grid-template-columns:repeat(3,1fr); } }
.tldr__item{ padding:var(--sp-5) var(--sp-6); border-bottom:1px solid var(--c-line); }
.tldr__item:last-child{ border-bottom:none; }
@media (min-width:768px){
  .tldr__item{ border-bottom:none; border-right:1px solid var(--c-line); }
  .tldr__item:last-child{ border-right:none; }
}
.tldr__key{
  font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted);
  margin:0 0 var(--sp-2);
}
.tldr__val{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0; line-height:var(--lh-head); }

.lead-out{
  font-size:var(--fs-3); color:var(--c-body); margin:var(--sp-8) 0 0;
  padding-top:var(--sp-6); border-top:1px solid var(--c-line);
}
.lead-out a{ color:var(--c-accent); text-underline-offset:4px; }

.fig{
  margin:var(--sp-9) 0 0; padding:var(--sp-8) var(--sp-6);
  background:var(--c-bg-soft); border-radius:var(--radius-l);
}
@media (min-width:768px){ .fig{ padding:var(--sp-9) var(--sp-8); } }
.fig__head{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-7); text-align:center; line-height:var(--lh-head);
}
.fig__note{
  font-size:var(--fs-2); color:var(--c-muted); margin:var(--sp-7) 0 0;
  text-align:center; line-height:var(--lh-body);
}

.cyc{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-4); position:relative; }
@media (min-width:768px){ .cyc{ grid-template-columns:repeat(4,1fr); gap:var(--sp-5); } }
.cyc__node{
  background:var(--c-bg); border:1px solid var(--c-line); border-radius:var(--radius-m);
  padding:var(--sp-6) var(--sp-4); text-align:center;
  opacity:0; transform:translateY(12px);
  transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);
}
.reveal.-visible .cyc__node{ opacity:1; transform:none; }
.reveal.-visible .cyc__node:nth-child(2){ transition-delay:.1s; }
.reveal.-visible .cyc__node:nth-child(3){ transition-delay:.2s; }
.reveal.-visible .cyc__node:nth-child(4){ transition-delay:.3s; }
.cyc__num{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-accent); margin:0 0 var(--sp-3);
}
.cyc__label{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0; }
.cyc__loop{
  grid-column:1 / -1; text-align:center; font-size:var(--fs-1); letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:var(--sp-4) 0 0; padding-top:var(--sp-4);
  border-top:1px dashed var(--c-line-2);
}

.fnl{ display:flex; flex-direction:column; gap:var(--sp-3); align-items:center; }
.fnl__row{ width:100%; display:flex; justify-content:center; }
.fnl__bar{
  width:100%; padding:var(--sp-5) var(--sp-4); text-align:center;
  background:var(--c-dark); color:var(--c-on-dark); border-radius:var(--radius-s);
  font-size:var(--fs-3); font-weight:700;
  transform:scaleX(.4); opacity:0; transform-origin:center;
  transition:transform var(--dur-reveal) var(--ease-out), opacity var(--dur-reveal) var(--ease-out);
}
.reveal.-visible .fnl__bar{ transform:none; opacity:1; }
.fnl__row--1{ width:100%; }
.fnl__row--2{ width:82%; }
.fnl__row--3{ width:64%; }
.fnl__row--4{ width:46%; }
.fnl__row--1 .fnl__bar{ background:var(--c-line); color:var(--c-body); }
.fnl__row--2 .fnl__bar{ background:var(--c-line-2); color:var(--c-ink); transition-delay:.1s; }
.fnl__row--3 .fnl__bar{ background:var(--c-dark-2); transition-delay:.2s; }
.fnl__row--4 .fnl__bar{ background:var(--c-accent); transition-delay:.3s; }
@media (max-width:767px){
  .fnl__row--2{ width:88%; } .fnl__row--3{ width:76%; } .fnl__row--4{ width:64%; }
  .fnl__bar{ font-size:var(--fs-2); }
}

.stp{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-3); align-items:end; }
@media (min-width:768px){ .stp{ gap:var(--sp-5); } }
.stp__col{ text-align:center; }
.stp__bar{
  background:var(--c-accent-soft); border-radius:var(--radius-s) var(--radius-s) 0 0;
  margin:0 0 var(--sp-4); height:44px;
  transform:scaleY(0); transform-origin:bottom;
  transition:transform var(--dur-reveal) var(--ease-out);
}
.reveal.-visible .stp__bar{ transform:none; }
.stp__bar--2{ height:76px; background:var(--c-line-2); transition-delay:.1s; }
.stp__bar--3{ height:108px; background:var(--c-dark-2); transition-delay:.2s; }
.stp__bar--4{ height:140px; background:var(--c-accent); transition-delay:.3s; }
.stp__num{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-2);
}
.stp__label{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:0; line-height:var(--lh-head); }

.cmp{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); align-items:center; }
@media (min-width:768px){ .cmp{ grid-template-columns:1fr auto 1fr; gap:var(--sp-6); } }
.cmp__card{
  background:var(--c-bg); border:1px solid var(--c-line); border-radius:var(--radius-m);
  padding:var(--sp-7) var(--sp-6); text-align:center;
  opacity:0; transform:translateY(12px);
  transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);
}
.reveal.-visible .cmp__card{ opacity:1; transform:none; }
.reveal.-visible .cmp__card--b{ transition-delay:.15s; }
.cmp__mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:var(--radius-pill); margin:0 0 var(--sp-4);
}
.cmp__mark svg{ width:16px; height:16px; }
.cmp__card--a .cmp__mark{ background:var(--c-line); color:var(--c-body); }
.cmp__card--b .cmp__mark{ background:var(--c-accent); color:var(--c-on-dark); }
.cmp__label{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0; line-height:var(--lh-head); }
.cmp__vs{
  font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted);
  margin:0; text-align:center; white-space:nowrap;
}

.myths{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
.myth{ border-left:3px solid var(--c-line-2); padding:var(--sp-2) 0 var(--sp-2) var(--sp-6); }
.myth__q{
  font-size:var(--fs-4); font-weight:700; color:var(--c-muted); margin:0 0 var(--sp-4);
  line-height:var(--lh-head);
}
.myth__a{ font-size:var(--fs-3); color:var(--c-body); margin:0; line-height:var(--lh-body); }
.myth__tag{
  display:inline-block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-base);
  color:var(--c-muted); background:var(--c-bg-soft); border-radius:var(--radius-s);
  padding:var(--sp-1) var(--sp-3); margin-right:var(--sp-4); vertical-align:middle;
}
.myth__tag--a{ color:var(--c-accent); background:var(--c-accent-soft); }

.plans{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
@media (min-width:768px){ .plans{ grid-template-columns:repeat(3,1fr); gap:var(--sp-5); } }
.plan{
  background:var(--c-bg); border:1px solid var(--c-line); border-radius:var(--radius-m);
  padding:var(--sp-7) var(--sp-6);
}
.plan:nth-child(2){ border-color:var(--c-ink); }
.plan__name{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-4);
}
.plan__price{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-4);
  letter-spacing:var(--ls-tight);
}
.plan__note{ font-size:var(--fs-2); color:var(--c-muted); margin:0; line-height:var(--lh-body); }

.reasons{ margin:var(--sp-8) 0 0; padding:var(--sp-7) 0 0; border-top:1px solid var(--c-line); }
.reasons__head{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-6); }
.reasons__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
@media (min-width:768px){ .reasons__grid{ grid-template-columns:repeat(3,1fr); gap:var(--sp-7); } }
.reason h4{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); }
.reason p{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.closing{
  background:var(--c-dark); border-radius:var(--radius-l);
  padding:var(--sp-9) var(--sp-6); text-align:center;
}
@media (min-width:768px){ .closing{ padding:var(--sp-10) var(--sp-8); } }
.closing__ja{
  font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-on-dark-accent);
  margin:0 0 var(--sp-5);
}
.closing__head{
  font-size:var(--fs-6); font-weight:700; color:var(--c-on-dark);
  margin:0 0 var(--sp-6); line-height:var(--lh-head); letter-spacing:var(--ls-tight);
}
.closing__body{
  font-size:var(--fs-3); color:var(--c-on-dark-body); margin:0 auto var(--sp-6);
  max-width:var(--w-read); line-height:var(--lh-body);
}
.closing__note{ font-size:var(--fs-2); color:var(--c-on-dark-mute); margin:0 0 var(--sp-7); }
.closing__btns{ display:flex; flex-wrap:wrap; gap:var(--sp-4); justify-content:center; }
.closing__btns .btn--ghost{ color:var(--c-on-dark); border-color:var(--c-on-dark-line); }
.closing__btns .btn--ghost:hover{ background:rgba(255,255,255,.08); }

.why{ display:grid; grid-template-columns:1fr; gap:var(--sp-7); counter-reset:why; }
@media (min-width:768px){ .why{ grid-template-columns:repeat(3,1fr); gap:var(--sp-8); } }
.why__item{ padding-top:var(--sp-6); border-top:2px solid var(--c-ink); }
.why__num{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-accent); margin:0 0 var(--sp-4);
}
.why__item h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-4); line-height:var(--lh-head);
}
.why__body{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.about-blk{ display:grid; grid-template-columns:1fr; gap:var(--sp-8); }
@media (min-width:768px){ .about-blk{ grid-template-columns:1.4fr 1fr; gap:var(--sp-10); } }
.about-blk__lead{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-6); line-height:var(--lh-head); }
.about-blk__text p{ font-size:var(--fs-3); color:var(--c-body); margin:0 0 var(--sp-5); line-height:var(--lh-body); }
.facts{ border-top:1px solid var(--c-line); }
.facts__row{
  display:flex; justify-content:space-between; align-items:baseline; gap:var(--sp-4);
  padding:var(--sp-5) 0; border-bottom:1px solid var(--c-line);
}
.facts__key{ font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted); margin:0; }
.facts__val{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0; text-align:right; }
.link-arrow{
  display:inline-flex; align-items:center; gap:var(--sp-3);
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:var(--sp-3) 0 0;
}
.link-arrow svg{ width:14px; height:14px; transition:transform var(--dur-react) var(--ease-in); }
.link-arrow:hover svg{ transform:translateX(4px); }

.pledge{ display:grid; grid-template-columns:1fr; gap:var(--sp-9); }
@media (min-width:768px){ .pledge{ grid-template-columns:repeat(2,1fr); gap:var(--sp-10); } }
.pledge__head{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-6); padding-bottom:var(--sp-4); border-bottom:2px solid var(--c-ink);
}
.pledge__head--dont{ color:var(--c-muted); border-bottom-color:var(--c-line-2); }
.pledge__item{ display:flex; gap:var(--sp-4); margin:0 0 var(--sp-6); }
.pledge__item:last-child{ margin-bottom:0; }
.pledge__mark{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:var(--radius-pill); margin-top:var(--sp-1);
}
.pledge__mark svg{ width:13px; height:13px; }
.pledge__mark--do{ background:var(--c-accent-soft); color:var(--c-accent); }
.pledge__mark--dont{ background:var(--c-bg-soft); color:var(--c-muted); }
.pledge__item h3{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); line-height:var(--lh-head); }
.pledge__item p{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.step__deliver{
  font-size:var(--fs-2); color:var(--c-on-dark-body); margin:var(--sp-4) 0 0;
  padding-top:var(--sp-4); border-top:1px solid var(--c-on-dark-line); line-height:var(--lh-body);
}
.step__deliver-tag{
  display:inline-block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-base);
  color:var(--c-on-dark-accent); margin-right:var(--sp-4);
}
.steps--light .step__deliver{ color:var(--c-body); border-top-color:var(--c-line); }
.steps--light .step__deliver-tag{ color:var(--c-accent); }

.stp__axis{
  display:flex; align-items:center; gap:var(--sp-4);
  font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted);
  margin:var(--sp-5) 0 0;
}
.stp__axis-line{ flex:1; height:1px; background:var(--c-line-2); }

.page-hero__btns{ display:flex; flex-wrap:wrap; gap:var(--sp-4); margin:var(--sp-6) 0 0; }

.page-hero__btns, .cta__btns, .closing__btns, .home-hero__actions{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, max-content)); gap:var(--sp-4);
}
.cta__btns, .closing__btns{ justify-content:center; }
.page-hero__btns .btn, .cta__btns .btn, .closing__btns .btn, .home-hero__actions .btn{
  width:100%; justify-content:center;
}

.sec-body + .sec-body--wide{ margin-top:var(--sp-8); }
.feats{ display:grid; grid-template-columns:1fr; gap:var(--sp-8); }
@media (min-width:768px){ .feats{ grid-template-columns:repeat(3,1fr); gap:var(--sp-7); } }
.feat__img{
  margin:0 0 var(--sp-7); border-radius:var(--radius-m); overflow:hidden;
  background:var(--c-bg-soft); aspect-ratio:16/9;
}
.feat__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.feat__num{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-4);
}
.feat h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-5); line-height:var(--lh-head); letter-spacing:var(--ls-tight);
}
.feat__body{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.menu-list{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); margin:var(--sp-7) 0 0; }
@media (min-width:900px){ .menu-list{ grid-template-columns:repeat(2,1fr); gap:var(--sp-5); } }
.menu-item{
  display:block; background:var(--c-bg); border:1px solid var(--c-line);
  border-radius:var(--radius-m); padding:var(--sp-7);
  transition:box-shadow var(--dur-react) var(--ease-in);
}
.menu-item:hover{ box-shadow:var(--shadow-card); }
.section-soft .menu-item{ background:var(--c-bg); }

.menu-item__head{ display:flex; align-items:baseline; gap:var(--sp-4); padding-bottom:var(--sp-4); border-bottom:1px solid var(--c-line); }
.menu-item__num{ margin:0; }
.menu-item__body{ max-width:none; }
.menu-item__num{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-accent); margin:0 0 var(--sp-3);
}
.menu-item__head h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0;
  line-height:var(--lh-head); letter-spacing:var(--ls-tight);
}
.menu-item__body p{ font-size:var(--fs-3); color:var(--c-body); margin:var(--sp-3) 0 0; line-height:var(--lh-body); }
.menu-item__what{ font-size:var(--fs-3); color:var(--c-body); margin:0 0 var(--sp-4); line-height:var(--lh-body); }
.menu-item__do{
  font-size:var(--fs-3); color:var(--c-ink); margin:0; line-height:var(--lh-body);
  background:var(--c-bg-soft); border-left:3px solid var(--c-accent);
  padding:var(--sp-5) var(--sp-6); border-radius:0 var(--radius-s) var(--radius-s) 0;
}
.menu-item__tag{
  display:block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-accent); margin:0 0 var(--sp-2);
}
.section-soft .menu-item__do{ background:var(--c-bg); }

.flow{ margin:var(--sp-8) 0 0; }
.flow__step{
  display:grid; grid-template-columns:1fr; gap:var(--sp-4);
  padding:0 0 var(--sp-8) var(--sp-9); position:relative;
}
.flow__step:last-child{ padding-bottom:0; }

.flow__step::before{
  content:""; position:absolute; left:15px; top:34px; bottom:0; width:1px; background:var(--c-line-2);
}
.flow__step:last-child::before{ display:none; }
.flow__step::after{
  content:""; position:absolute; left:8px; top:8px; width:16px; height:16px;
  border-radius:var(--radius-pill); background:var(--c-bg); border:2px solid var(--c-ink);
}
@media (min-width:768px){
  .flow__step{ grid-template-columns:180px 1fr; gap:var(--sp-7); padding-left:var(--sp-10); }
  .flow__step::before{ left:23px; }
  .flow__step::after{ left:16px; }
}
.flow__no{
  display:flex; align-items:baseline; gap:var(--sp-3);
  font-size:var(--fs-6); font-weight:700; color:var(--c-ink); margin:0;
  letter-spacing:var(--ls-tight); line-height:var(--lh-none);
}
.flow__no span{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted);
}
.flow__span{ font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted); margin:var(--sp-3) 0 0; }
.flow__body h3{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); line-height:var(--lh-head); }
.flow__body p{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.plans2{
  display:grid; grid-template-columns:1fr; gap:0;
  margin:var(--sp-8) 0 0; border:1px solid var(--c-line); border-radius:var(--radius-m); overflow:hidden;
}
@media (min-width:900px){ .plans2{ grid-template-columns:repeat(3,1fr); } }
.plan2{
  display:flex; flex-direction:column; padding:var(--sp-8) var(--sp-7);
  border-bottom:1px solid var(--c-line); background:var(--c-bg);
}
.plan2:last-child{ border-bottom:none; }
@media (min-width:900px){
  .plan2{ border-bottom:none; border-right:1px solid var(--c-line); }
  .plan2:last-child{ border-right:none; }

  .plan2__name{ min-height:calc(2em * var(--lh-head) + var(--sp-4)); }
}

@media (min-width:900px) and (max-width:1279px){
  .plan2{ padding:var(--sp-8) var(--sp-5); }
}
.plan2__name{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-5);
  padding-bottom:var(--sp-4); border-bottom:2px solid var(--c-ink); line-height:var(--lh-head);
}
.plan2__desc{ font-size:var(--fs-2); color:var(--c-body); margin:0 0 var(--sp-7); line-height:var(--lh-body); flex:1; }
.plan2__foot{ border-top:1px dashed var(--c-line-2); padding-top:var(--sp-5); }
.plan2__term{ font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-muted); margin:0 0 var(--sp-3); }
.plan2__price{
  display:flex; align-items:baseline; gap:var(--sp-2);
  font-size:var(--fs-2); color:var(--c-muted); margin:0;
}
.plan2__price em{
  font-style:normal; font-size:var(--fs-7); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-tight); line-height:var(--lh-none);
}
.plan2__unit{ font-size:var(--fs-2); color:var(--c-muted); }
.plan2__yen{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); }

.faqs2{ margin:var(--sp-7) 0 0; border-top:1px solid var(--c-line); }
.faq2{ padding:var(--sp-5) 0; border-bottom:1px solid var(--c-line); }
.faq2__q, .faq2__a{ margin:0; line-height:var(--lh-body); }
.faq2__q{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin-bottom:var(--sp-3); }
.faq2__a{ font-size:var(--fs-3); color:var(--c-body); }

.faq2__q span, .faq2__a span{
  display:block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-2);
}

.section-dark .closing{ background:none; padding:0; }

.cases-block{ text-align:center; }
.cases-block__head{
  font-size:var(--fs-6); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-6); letter-spacing:var(--ls-tight); line-height:var(--lh-head);
}
.cases-block__lead{
  font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body);
  max-width:760px; margin:0 auto var(--sp-8); text-align:left;
}
.cases{
  list-style:none; margin:0 auto; padding:0; max-width:860px;
  border-top:1px solid var(--c-line); text-align:left;
}
.cases__item{
  display:flex; align-items:flex-start; gap:var(--sp-4);
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  padding:var(--sp-5) var(--sp-2); border-bottom:1px solid var(--c-line);
  line-height:var(--lh-head); margin:0;
}
.cases__mark{ flex:none; color:var(--c-ink); margin-top:var(--sp-1); }
.cases__mark svg{ width:18px; height:18px; display:block; }
@media (max-width:767px){
  .cases-block__lead{ text-align:left; }
  .cases__item{ font-size:var(--fs-3); }
}

.svc-index{ align-items:stretch; display:grid; grid-template-columns:1fr; gap:var(--sp-6); margin:var(--sp-5) 0 0; }
.svc-group__name{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted);
  margin:0 0 var(--sp-4); padding-bottom:var(--sp-3); border-bottom:1px solid var(--c-line-2);
}
.svc-cards{ display:grid; grid-template-columns:1fr; gap:0; }
@media (min-width:900px){ .svc-cards{ grid-template-columns:repeat(2,1fr); column-gap:var(--sp-8); } }

.svc-index--compact{ gap:var(--sp-5); margin:var(--sp-4) 0 0; }
.svc-index--compact .svc-group__name{ margin-bottom:var(--sp-2); padding-bottom:var(--sp-2); }
.svc-index--compact .svc-card__desc{ display:none; }
.svc-index--compact .svc-card{ padding:var(--sp-3) 0; }
.svc-index--compact .svc-card__name{ font-size:var(--fs-2); margin:0; }
@media (min-width:900px){
  .svc-index--compact .svc-cards{ grid-template-columns:repeat(3,1fr); column-gap:var(--sp-7); }
}
.svc-index--compact + .figure__caption{ margin-top:var(--sp-5); }
.svc-card{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-5);
  padding:var(--sp-4) 0; border-bottom:1px solid var(--c-line);
  color:var(--c-ink); text-decoration:none;
  transition:opacity var(--dur-react) var(--ease-in);
}
.svc-card:hover{ opacity:.55; }
.svc-card__name{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); }
.svc-card__desc{ font-size:var(--fs-2); color:var(--c-muted); margin:0; line-height:var(--lh-body); }
.svc-card__arrow{ flex:none; color:var(--c-ink); }
.svc-card__arrow svg{ width:16px; height:16px; display:block;
  transition:transform var(--dur-react) var(--ease-in); }
.svc-card:hover .svc-card__arrow svg{ transform:translateX(4px); }

.cta{ text-align:center; }
.cta__ja{
  font-size:var(--fs-1); letter-spacing:var(--ls-wide); color:var(--c-on-dark-accent);
  margin:0 0 var(--sp-5);
}
.cta__head{
  font-size:var(--fs-6); font-weight:700; color:var(--c-on-dark);
  margin:0 0 var(--sp-6); line-height:var(--lh-head); letter-spacing:var(--ls-tight);
}
.cta__body{
  font-size:var(--fs-3); color:var(--c-on-dark-body); line-height:var(--lh-body);
  max-width:var(--w-read); margin:0 auto var(--sp-8);
}
.cta__btns{ display:flex; flex-wrap:wrap; gap:var(--sp-4); justify-content:center; }
.cta__btns .btn--ghost{ color:var(--c-on-dark); border-color:var(--c-on-dark-line); }
.cta__btns .btn--ghost:hover{ background:rgba(255,255,255,.08); }

.btn--invert{ background:var(--c-bg); color:var(--c-ink); border:1px solid var(--c-bg); }
.btn--invert:hover{ background:var(--c-bg-soft); color:var(--c-ink); }

.pagenav{ display:none; }

.pagenav.-off{ opacity:0; visibility:hidden; transform:translateY(8px); }
@media (min-width:1100px){
  .pagenav{
    display:block; position:fixed; top:160px; width:236px; z-index:5;
    left:max(var(--sp-5), calc(50% - 640px + var(--sp-5)));
    transition:opacity var(--dur-react) var(--ease-in),
               visibility var(--dur-react) var(--ease-in),
               transform var(--dur-react) var(--ease-in);
  }

  main:has(> .pagenav) .wrap,
  .page:has(.pagenav) .wrap{ padding-left:340px; }

  main:has(> .pagenav) .cv .wrap,
  .page:has(.pagenav) .cv .wrap{ padding-left:0; padding-right:0; }

  main:has(> .pagenav) .sec-body:not(.sec-body--wide),
  .page:has(.pagenav) .sec-body:not(.sec-body--wide){ margin-inline:auto; }

  main:has(> .pagenav) .page-hero::before,
  .page:has(.pagenav) .page-hero::before{ left:52%; }
}
.pagenav__nav{ position:relative; padding-left:var(--sp-5); }

.pagenav__rail{
  position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--c-line);
}
.pagenav__fill{
  position:absolute; left:0; top:0; width:2px; height:0;
  background:var(--c-ink); transition:height .12s linear;
}
.pagenav__nav ul{ list-style:none; margin:0; padding:0; }
.pagenav__link{
  display:block; font-size:var(--fs-2); color:var(--c-muted); text-decoration:none;
  padding:var(--sp-3) 0;
  transition:color var(--dur-react) var(--ease-in),
             transform var(--dur-reveal) var(--ease-out),
             font-size var(--dur-reveal) var(--ease-out);
}
.pagenav__link:hover{ color:var(--c-ink); }

.pagenav__link.-current{
  color:var(--c-ink); font-weight:700; font-size:var(--fs-3);
  transform:translateX(4px);
}
@media (prefers-reduced-motion:reduce){
  .pagenav__link{ transition:color var(--dur-react) var(--ease-in); }
  .pagenav__link.-current{ transform:none; }
  .pagenav__fill{ transition:none; }
}
.pagenav__btns{ display:grid; gap:var(--sp-3); margin:var(--sp-8) 0 0; }

.btn--block{ width:100%; justify-content:space-between; }
.btn--outline{
  background:var(--c-bg); color:var(--c-ink); border:1px solid var(--c-ink);
}
.btn--outline:hover{ background:var(--c-ink); color:var(--c-on-dark); }

.svc-sec{ padding:0 0 var(--sp-7); margin:0 0 var(--sp-7); border-bottom:1px solid var(--c-line-2); }
.svc-sec:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.svc-sec__en{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-3);
}
.svc-sec__name{
  font-size:var(--fs-6); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-4); letter-spacing:var(--ls-tight); line-height:var(--lh-head);
}
.svc-sec__desc{
  font-size:var(--fs-3); color:var(--c-body); margin:0 0 var(--sp-6);
  line-height:var(--lh-body); max-width:var(--w-read);
}

.cv{ padding-block:var(--sp-10); background:var(--c-bg-soft); }
.cv .wrap{ max-width:var(--w-page); padding-inline:var(--sp-5); }
@media (min-width:1024px){ .cv .wrap{ padding-inline:var(--sp-7); } }
.cv__blocks{ display:grid; grid-template-columns:1fr; gap:var(--sp-6); }
@media (min-width:900px){ .cv__blocks{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px){ .cv__blocks--one{ grid-template-columns:1fr; max-width:640px; margin-inline:auto; } }

.cv__block{
  position:relative; display:flex; flex-direction:column; overflow:hidden;
  background:var(--c-bg); border:1px solid var(--c-line); border-radius:var(--radius-m);
  text-decoration:none; color:var(--c-ink);
  transition:transform var(--dur-react) var(--ease-btn),
             box-shadow var(--dur-react) var(--ease-btn),
             border-color var(--dur-react) var(--ease-btn);
}
.cv__block:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:var(--c-line-2); }

.cv__block::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--c-cta); pointer-events:none;
  transform:scaleX(0); transform-origin:left center;
  transition:transform .3s var(--ease-out);
}
.cv__block:hover::after{ transform:scaleX(1); }

.cv__inner{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:flex-start;
  padding:var(--sp-8); flex:1 1 auto; text-align:left;
}
.cv__en{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-3);
}

.cv__ja{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); letter-spacing:var(--ls-tight); margin:0 0 var(--sp-4);
}
.cv__desc{
  font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body);
  margin:0 0 var(--sp-6); flex:1 1 auto;
}

.cv__btn{
  display:inline-flex; align-items:center; gap:var(--sp-4);
  background:var(--c-ink); color:var(--c-bg);
  font-size:var(--fs-3); font-weight:700;
  padding:var(--sp-4) var(--sp-7); border-radius:var(--radius-pill);
  transition:background var(--dur-react) var(--ease-btn);
}
.cv__block:hover .cv__btn{ background:var(--c-cta); }
.cv__btn svg{ transition:transform var(--dur-react) var(--ease-btn); }
.cv__block:hover .cv__btn svg{ transform:translateX(4px); }

@media (max-width:640px){
  .cv{ padding-block:var(--sp-9); }
  .cv__inner{ padding:var(--sp-6); }
  .cv__ja{ font-size:var(--fs-4); }
}

.page-hero h1 .ch{ display:inline-block; overflow:hidden; vertical-align:bottom; }
.page-hero h1 .ch__i{
  display:inline-block; transform:translateY(115%);
  transition:transform var(--dur-slow) var(--ease-out);
}
.page-hero h1.-in .ch__i{ transform:none; }
@media (prefers-reduced-motion:reduce){
  .page-hero h1 .ch__i{ transform:none; transition:none; }
}

.svc-side__link{ position:relative; }
.svc-side__link::before{
  content:""; position:absolute; left:-1px; top:50%; width:2px; height:0;
  background:var(--c-ink); transform:translateY(-50%);
  transition:height var(--dur-reveal) var(--ease-out);
}
.svc-side__link.-current::before{ height:100%; }
.svc-side__link.-current{ border-left-color:transparent; }

.notice{
  font-size:var(--fs-2); color:var(--c-muted); line-height:var(--lh-body);
  background:var(--c-bg-soft); border-left:3px solid var(--c-line-2);
  padding:var(--sp-5) var(--sp-6); margin:0 0 var(--sp-8); border-radius:0 var(--radius-s) var(--radius-s) 0;
}
.section-soft .notice{ background:var(--c-bg); }

.works{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--c-line-2); }
.work{ padding:var(--sp-8) 0; border-bottom:1px solid var(--c-line);
  display:block; color:inherit; text-decoration:none; }

.work__more{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin:var(--sp-5) 0 0;
}
.work__more svg{ transition:transform var(--dur-react) var(--ease-btn); }
.work:hover .work__more svg{ transform:translateX(4px); }
.work:hover .work__title{ text-decoration:underline; text-underline-offset:4px; }

.work__img{
  margin:0 0 var(--sp-6); border-radius:var(--radius-m); overflow:hidden;
  background:var(--c-bg-soft); aspect-ratio:16/9;
}
.work__img img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--dur-slow) var(--ease-out); }
.work:hover .work__img img{ transform:scale(1.03); }

@media (min-width:900px){

  .work{
    display:grid; grid-template-columns:1fr 1.25fr; grid-template-rows:auto auto auto auto 1fr;
    gap:0 var(--sp-8); align-items:start;
  }

  .work__img{  grid-area:1 / 1 / 6 / 2; margin:0; }
  .work__num{  grid-area:1 / 2; }
  .work__title{grid-area:2 / 2; }
  .work__body{ grid-area:3 / 2; margin:0; align-self:start; }
  .work__tags{ grid-area:4 / 2; margin:var(--sp-5) 0 0; align-self:start; }
  .work__more{ grid-area:5 / 2; align-self:start; }
}

.work__tags{ display:flex; flex-wrap:wrap; gap:var(--sp-2) var(--sp-2); margin:var(--sp-5) 0 0; }
.work__tag{
  font-size:var(--fs-1); color:var(--c-muted); letter-spacing:var(--ls-base);
  border:1px solid var(--c-line-2); border-radius:var(--radius-pill);
  padding:var(--sp-1) var(--sp-4);
}
.work__num{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3);
  letter-spacing:var(--ls-tight); line-height:var(--lh-head);
}
.work__title{
  font-size:var(--fs-3); font-weight:700; color:var(--c-body); margin:0 0 var(--sp-4);
  line-height:var(--lh-head);
}
.work__body{
  font-size:var(--fs-3); color:var(--c-body); margin:var(--sp-5) 0 0; line-height:var(--lh-body);
}
@media (min-width:900px){ .work__body{ margin-top:0; } }

.note-cats{ display:flex; flex-wrap:wrap; gap:var(--sp-3); margin:0 0 var(--sp-7); }
.note-cat{
  font-size:var(--fs-2); color:var(--c-muted); background:none;
  border:1px solid var(--c-line-2); border-radius:var(--radius-pill);
  padding:var(--sp-2) var(--sp-5); cursor:pointer;
  transition:color var(--dur-react) var(--ease-in), border-color var(--dur-react) var(--ease-in);
}
.note-cat:hover{ color:var(--c-ink); border-color:var(--c-ink); }

.note-cat span{
  font-size:var(--fs-1); color:var(--c-muted); margin-left:var(--sp-2);
  font-variant-numeric:tabular-nums;
}
.note-cat.-on span{ color:var(--c-bg); opacity:.7; }
.note-cat.-on{ color:var(--c-on-dark); background:var(--c-ink); border-color:var(--c-ink); }

.note-list{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--c-line); }
@media (min-width:900px){ .note-list{ grid-template-columns:repeat(2,1fr); column-gap:var(--sp-8); } }
.note-card{ padding:var(--sp-6) 0; border-bottom:1px solid var(--c-line); }
.note-card__cat{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-muted); margin:0 0 var(--sp-3);
}
.note-card__title{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3);
  line-height:var(--lh-head);
}
.note-card__date{ font-size:var(--fs-1); color:var(--c-muted); margin:0; letter-spacing:var(--ls-base); }

.docs{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--c-line-2); }
.doc{
  display:grid; grid-template-columns:1fr; gap:var(--sp-5);
  padding:var(--sp-7) 0; border-bottom:1px solid var(--c-line); align-items:center;
}
@media (min-width:900px){ .doc{ grid-template-columns:56px 1fr auto; gap:var(--sp-7); } }
.doc__num{
  font-size:var(--fs-5); font-weight:700; color:var(--c-line-2); margin:0;
  letter-spacing:var(--ls-tight); line-height:var(--lh-none);
}
.doc__title{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); line-height:var(--lh-head); }
.doc__meta{ font-size:var(--fs-1); color:var(--c-muted); margin:0 0 var(--sp-3); letter-spacing:var(--ls-base); }
.doc__desc{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.legal h2{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:var(--sp-8) 0 var(--sp-4); line-height:var(--lh-head);
}
.legal p{ font-size:var(--fs-3); color:var(--c-body); margin:0 0 var(--sp-4); line-height:var(--lh-body); }
.legal ul,.legal ol{ margin:0 0 var(--sp-4); padding-left:var(--sp-6); }
.legal li{ font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body); margin:0 0 var(--sp-2); }
.legal a{ color:var(--c-ink); text-underline-offset:4px; }
.legal__date{ margin-top:var(--sp-8); font-size:var(--fs-2); color:var(--c-muted); }

.doc-list{ margin:var(--sp-4) 0 0; padding-left:var(--sp-6); }
.doc-list li{ font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body); margin:0 0 var(--sp-2); }
.doc-cover{
  margin:var(--sp-8) 0 0; padding:var(--sp-7); background:var(--c-bg-soft);
  border-radius:var(--radius-l); text-align:center;
}
.doc-cover img{ width:100%; max-width:720px; height:auto; display:block; margin:0 auto var(--sp-5); border-radius:var(--radius-s); }

.checks{ display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:var(--sp-2) var(--sp-4); margin:var(--sp-2) 0 0; }

.checks--col{ grid-template-columns:1fr; gap:0; }
.checks--col .check{
  padding:var(--sp-4) var(--sp-4); border:1px solid var(--c-line);
  border-radius:var(--radius-s); background:#fff; margin:0 0 var(--sp-2);
  transition:border-color var(--dur-react) var(--ease-in);
}
.checks--col .check:hover{ border-color:var(--c-line-2); }
.checks--col .check:last-child{ margin-bottom:0; }

.checks--col .check:has(input:checked){ border-color:var(--c-ink); }
.check__name{ font-size:var(--fs-2); font-weight:400; color:var(--c-body); display:block; }

.checks--col .check:has(input:checked) .check__name{ font-weight:700; color:var(--c-ink); }

.check__note{
  display:block; font-size:var(--fs-1); color:var(--c-muted);
  line-height:var(--lh-body); margin:var(--sp-1) 0 0;
}

.form__hint{ font-size:var(--fs-1); color:var(--c-muted); margin:0; line-height:var(--lh-body); }

.dl-form .checks{ grid-template-columns:1fr; }
.check{ display:flex; gap:var(--sp-3); align-items:flex-start; cursor:pointer; padding:var(--sp-2) 0; }

.check input{ margin-top:var(--sp-1); flex:none; width:16px; height:16px; accent-color:var(--c-line-2); }
.check__name{ display:block; font-size:var(--fs-2); font-weight:700; color:var(--c-ink); }
.check__note{ display:block; font-size:var(--fs-1); color:var(--c-muted); margin-top:var(--sp-1); line-height:var(--lh-body); }

.doc-cards{ display:grid; grid-template-columns:1fr; gap:var(--sp-6); margin:var(--sp-6) 0 0; }
@media (min-width:900px){ .doc-cards{ grid-template-columns:repeat(2,1fr); gap:var(--sp-7); } }
.doc-card{
  display:block; text-decoration:none; color:var(--c-ink);
  border:1px solid var(--c-line); border-radius:var(--radius-m); overflow:hidden;
  transition:box-shadow var(--dur-react) var(--ease-in);
}
.doc-card:hover{ box-shadow:var(--shadow-card); }
.doc-card__img{ background:var(--c-bg-soft); aspect-ratio:16/9; overflow:hidden; }
.doc-card__img img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--dur-slow) var(--ease-out); }
.doc-card:hover .doc-card__img img{ transform:scale(1.03); }
.doc-card__body{ padding:var(--sp-6); }
.doc-card__meta{ font-size:var(--fs-1); color:var(--c-muted); margin:0 0 var(--sp-3); letter-spacing:var(--ls-base); }
.doc-card__title{ font-size:var(--fs-4); font-weight:700; margin:0 0 var(--sp-3); line-height:var(--lh-head); }
.doc-card__desc{ font-size:var(--fs-2); color:var(--c-body); margin:0 0 var(--sp-5); line-height:var(--lh-body); }
.doc-card__link{ display:inline-flex; align-items:center; gap:var(--sp-3); font-size:var(--fs-2); font-weight:700; }
.doc-card__link svg{ width:14px; height:14px; transition:transform var(--dur-react) var(--ease-in); }
.doc-card:hover .doc-card__link svg{ transform:translateX(4px); }

.dl-section{ padding-block:var(--sp-8) var(--sp-9) !important; }
.dl-main__ja{ font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted); margin:0 0 var(--sp-4); }
.dl-title{ font-size:var(--fs-6); font-weight:700; letter-spacing:var(--ls-tight); line-height:var(--lh-head); margin:0 0 var(--sp-6); }
.dl-layout{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-8); }
@media (min-width:1000px){
  .dl-layout{ grid-template-columns:minmax(0,612px) minmax(0,420px); gap:var(--sp-9);
    align-items:start; justify-content:start; }
}
.dl-form .form__submit .btn{ width:100%; justify-content:center; }
.checks{ min-width:0; }
.check__note{ overflow-wrap:anywhere; }
.dl-main__img{ border-radius:var(--radius-m); overflow:hidden; background:var(--c-bg-soft); margin:var(--sp-5) 0 0; }
.dl-main__img img{ width:100%; height:auto; display:block; }
.dl-main__meta{ font-size:var(--fs-1); color:var(--c-muted); margin:var(--sp-6) 0 0; letter-spacing:var(--ls-base); }
.dl-main__desc{ font-size:var(--fs-3); color:var(--c-body); margin:0 0 var(--sp-6); line-height:var(--lh-body); }
.dl-main__head{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); }
.dl-form{
  background:var(--c-bg-soft); border-radius:var(--radius-m); padding:var(--sp-7);
}
.dl-form__note{
  font-size:var(--fs-1); color:var(--c-muted); line-height:var(--lh-body);
  margin:0 0 var(--sp-5);
}
.dl-form__head{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-5); }
.dl-form .form__submit{ margin-top:var(--sp-5); }

.article__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-4); margin:0 0 var(--sp-5); }
.article__author{ margin:var(--sp-6) 0 0; padding-top:var(--sp-5); border-top:1px solid var(--c-line); }
.article__author-name{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:0; }
.article__author-name span{ display:block; font-size:var(--fs-1); font-weight:400; color:var(--c-muted); margin-top:var(--sp-1); }
.article__profile{
  margin:var(--sp-9) 0 0; padding:var(--sp-7); background:var(--c-bg-soft); border-radius:var(--radius-m);
}
.article__profile-head{ font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted); margin:0 0 var(--sp-4); }
.article__profile-name{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-4); }
.article__profile-name span{ display:block; font-size:var(--fs-2); font-weight:400; color:var(--c-muted); margin-top:var(--sp-2); }
.article__profile-body{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }
.note-card__meta{ display:flex; align-items:center; gap:var(--sp-4); margin:0 0 var(--sp-3); }
.note-card__cat{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-base); color:var(--c-on-dark);
  background:var(--c-ink); border-radius:var(--radius-s); padding:var(--sp-1) var(--sp-3);
}

.sec-body--wide .faq{ display:grid; grid-template-columns:1fr; gap:0; }
@media (min-width:900px){
  .sec-body--wide .faq{ grid-template-columns:repeat(2,1fr); column-gap:var(--sp-8); }
}

.form{ max-width:var(--w-read); }

main:not(:has(> .pagenav)) .page:not(:has(.pagenav)) .sec-body,
main:not(:has(> .pagenav)) .sec-body{ margin-left:0; margin-right:0; }

.p-contact .site-header .nav,
.p-contact-service .site-header .nav,
.p-contact .site-header .btn,
.p-contact-service .site-header .btn,
.p-contact .burger,
.p-contact-service .burger{ display:none; }

.p-contact .cv,
.p-contact-service .cv,
.p-doc-company-profile .cv,
.p-doc-checkup-sheet .cv,
.p-doc-ad-checklist .cv{ display:none; }

.p-document .page-hero,
.p-contact .page-hero,
.p-contact-service .page-hero,
.p-doc-company-profile .page-hero,
.p-doc-checkup-sheet .page-hero,
.p-doc-ad-checklist .page-hero{ padding-block:var(--sp-7) var(--sp-5); }
.p-document section,
.p-contact section,
.p-contact-service section,
.p-doc-company-profile section,
.p-doc-checkup-sheet section,
.p-doc-ad-checklist section{ padding-block:var(--sp-8); }

.ct-section{ padding-block:var(--sp-8) var(--sp-9) !important; }
.ct-layout{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-8); }
@media (min-width:1000px){
  .ct-layout{ grid-template-columns:minmax(0,400px) minmax(0,660px); gap:var(--sp-8);
    align-items:start; justify-content:start; }
}
.ct-main__ja{ font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted); margin:0 0 var(--sp-4); }
.ct-title{ font-size:var(--fs-6); font-weight:700; letter-spacing:var(--ls-tight); line-height:var(--lh-head); margin:0 0 var(--sp-6); }
.ct-main__lead{ font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body); margin:0 0 var(--sp-6); }
.ct-main__other{ padding:var(--sp-5); background:var(--c-bg-soft); border-radius:var(--radius-m); margin:0 0 var(--sp-6); }
.ct-main__other-head{ font-size:var(--fs-2); color:var(--c-body); margin:0 0 var(--sp-3); }
.ct-facts{ margin:0; border-top:1px solid var(--c-line); }
.ct-facts > div{ display:flex; gap:var(--sp-6); padding:var(--sp-4) 0; border-bottom:1px solid var(--c-line); }
.ct-facts dt{ flex:none; width:64px; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide); color:var(--c-muted); }
.ct-facts dd{ margin:0; font-size:var(--fs-2); color:var(--c-ink); }
.ct-form{ background:var(--c-bg-soft); border-radius:var(--radius-m); padding:var(--sp-7); }

@media (max-width:640px){
  .ct-form{ padding:var(--sp-5) var(--sp-4); }
  .dl-form{ padding:var(--sp-5) var(--sp-4); }
}

.ct-form .form{ max-width:none; }

.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;
  -webkit-mask-image:linear-gradient(105deg, transparent 0%, rgba(0,0,0,.28) 34%, #000 62%);
          mask-image:linear-gradient(105deg, transparent 0%, rgba(0,0,0,.28) 34%, #000 62%);
}

@media (max-width:767px){
  .hero-bg{
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.25) 45%, #000 78%);
            mask-image:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.25) 45%, #000 78%);
  }
}
.home-hero, .page-hero{ position:relative; }
.home-hero > *:not(.hero-bg), .page-hero > *:not(.hero-bg){ position:relative; z-index:1; }
.home-hero::before, .page-hero::before{ display:none !important; }

.page-hero--work{ padding-top:var(--sp-9); }
.wd-tags{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin:0 0 var(--sp-5); }
.wd-num{
  font-size:var(--fs-3); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-tight); margin:0 0 var(--sp-3);
}
.wd-img{
  border-radius:var(--radius-m); overflow:hidden; background:var(--c-bg-soft);
  aspect-ratio:16/9; margin:0 0 var(--sp-9);
}
.wd-img img{ width:100%; height:100%; object-fit:cover; display:block; }

.wd-meta{
  background:var(--c-bg-soft); border-radius:var(--radius-m);
  padding:var(--sp-7); margin:0 0 var(--sp-10);
}
.wd-meta__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-5);
}
.wd-meta__list{ margin:0; display:grid; gap:var(--sp-4); }
.wd-meta__list div{ display:grid; grid-template-columns:120px 1fr; gap:var(--sp-4); }
.wd-meta__list dt{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink); margin:0;
}
.wd-meta__list dd{ font-size:var(--fs-2); color:var(--c-body); margin:0; line-height:var(--lh-body); }
@media (max-width:640px){
  .wd-meta__list div{ grid-template-columns:1fr; gap:var(--sp-1); }
}

.wd-sec{ margin:0 0 var(--sp-9); scroll-margin-top:var(--sp-11); }
.wd-sec__h{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-tight); line-height:var(--lh-head);
  margin:0 0 var(--sp-5); padding:0 0 var(--sp-4);
  border-bottom:1px solid var(--c-line);
}
.wd-sec p{ font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body); margin:0 0 var(--sp-5); }
.wd-sec p:last-child{ margin-bottom:0; }
.wd-sec b{ font-weight:700; color:var(--c-ink); }

.wd-steps{ list-style:none; counter-reset:wd; margin:var(--sp-6) 0 0; padding:0; }
.wd-steps li{
  counter-increment:wd; position:relative;
  padding:0 0 var(--sp-6) var(--sp-8);
  font-size:var(--fs-2); line-height:var(--lh-body); color:var(--c-body);
}
.wd-steps li::before{
  content:counter(wd, decimal-leading-zero);
  position:absolute; left:0; top:2px;
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide);
}
.wd-steps li::after{
  content:""; position:absolute; left:9px; top:24px; bottom:6px; width:1px;
  background:var(--c-line);
}
.wd-steps li:last-child{ padding-bottom:0; }
.wd-steps li:last-child::after{ display:none; }
.wd-steps b{ display:block; font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); }

.wd-rel{
  border-top:1px solid var(--c-line); padding:var(--sp-8) 0 0; margin:var(--sp-10) 0 0;
}
.wd-rel__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-5);
}
.wd-rel__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
.wd-rel__list a{
  display:inline-flex; align-items:center; gap:var(--sp-3);
  font-size:var(--fs-3); font-weight:700; color:var(--c-ink); text-decoration:none;
}
.wd-rel__list a:hover{ text-decoration:underline; text-underline-offset:4px; }
.wd-rel__list svg{ transition:transform var(--dur-react) var(--ease-btn); }
.wd-rel__list a:hover svg{ transform:translateX(4px); }

.wd-back{ margin:var(--sp-8) 0 0; }

.note-head{ padding:var(--sp-9) 0 var(--sp-7); }
.note-head__layer{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-4);
}
.note-head h1{
  font-size:var(--fs-6); font-weight:700; line-height:var(--lh-head);
  letter-spacing:var(--ls-tight); color:var(--c-ink); margin:0 0 var(--sp-6);
  text-wrap:balance;
}
.note-head__dates{ display:flex; flex-wrap:wrap; gap:var(--sp-5); margin:0; }
.note-head__dates div{ display:flex; gap:var(--sp-2); align-items:baseline; }
.note-head__dates dt{ font-size:var(--fs-1); color:var(--c-muted); margin:0; }
.note-head__dates dd{ font-size:var(--fs-1); color:var(--c-body); margin:0; }

.note-answer{
  background:var(--c-bg-soft); border-radius:var(--radius-m);
  padding:var(--sp-7); margin:0 0 var(--sp-9);
}
.note-answer__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-3);
}
.note-answer p:last-child{
  font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-ink); margin:0;
}

.nt-body h2{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-tight); line-height:var(--lh-head);
  margin:var(--sp-10) 0 var(--sp-5); padding:0 0 var(--sp-4);
  border-bottom:1px solid var(--c-line); scroll-margin-top:var(--sp-11);
}
.nt-body h3{
  font-size:var(--fs-3); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:var(--sp-8) 0 var(--sp-4);
}
.nt-body p{
  font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body);
  margin:0 0 var(--sp-5);
}

.ticks{ list-style:none; margin:var(--sp-5) 0 var(--sp-6); padding:0; }
.ticks li{
  position:relative; padding:0 0 var(--sp-3) var(--sp-6);
  font-size:var(--fs-2); line-height:var(--lh-body); color:var(--c-body);
}
.ticks li::before{
  content:""; position:absolute; left:0; top:9px;
  width:9px; height:5px; border-left:1.5px solid var(--c-ink);
  border-bottom:1.5px solid var(--c-ink); transform:rotate(-45deg);
}
.ticks li:last-child{ padding-bottom:0; }

.note-point{
  border-left:3px solid var(--c-ink); background:var(--c-bg-soft);
  padding:var(--sp-6) var(--sp-7); margin:var(--sp-7) 0 0;
  border-radius:0 var(--radius-s) var(--radius-s) 0;
}
.note-point__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-3);
}
.note-point p:last-child{ font-size:var(--fs-2); margin:0; }

.note-fig{
  border:1px solid var(--c-line); border-radius:var(--radius-m);
  padding:var(--sp-7); margin:var(--sp-6) 0 var(--sp-7);
}
.note-fig__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-5);
}
.note-fig__note{ font-size:var(--fs-1); color:var(--c-muted); margin:var(--sp-5) 0 0; }
.note-flow{ display:grid; gap:var(--sp-3); }
.note-flow__row{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); }
.note-flow__label{
  font-size:var(--fs-1); font-weight:700; color:var(--c-ink);
  min-width:120px;
}
.note-flow__step{
  font-size:var(--fs-1); color:var(--c-ink);
  border:1px solid var(--c-line-2); border-radius:var(--radius-s);
  padding:var(--sp-2) var(--sp-4); background:var(--c-bg);
}
.note-flow__row--biz .note-flow__step{ background:var(--c-bg-soft); }
.note-flow__gap{ font-size:var(--fs-1); color:var(--c-muted); padding:var(--sp-2) var(--sp-2); }

.note-table{
  width:100%; border-collapse:collapse; margin:var(--sp-6) 0 var(--sp-7);
  font-size:var(--fs-2);
}
.note-table caption{
  text-align:left; font-size:var(--fs-1); color:var(--c-muted);
  margin:0 0 var(--sp-3); letter-spacing:var(--ls-wide);
}
.note-table th, .note-table td{
  border-bottom:1px solid var(--c-line); padding:var(--sp-4) var(--sp-3);
  text-align:left; vertical-align:top; color:var(--c-body);
}
.note-table th{ font-weight:700; color:var(--c-ink); }
.note-table td:nth-child(2), .note-table td:nth-child(3){ font-variant-numeric:tabular-nums; }

.note-author{
  border-top:1px solid var(--c-line); margin:var(--sp-10) 0 0; padding:var(--sp-7) 0 0;
}
.note-author__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-4);
}
.note-author__name{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); }
.note-author__name span{
  display:block; font-size:var(--fs-1); font-weight:400; color:var(--c-muted);
  margin:var(--sp-1) 0 0;
}
.note-author__bio{ font-size:var(--fs-2); color:var(--c-body); margin:0; }

.note-next{ display:grid; gap:var(--sp-4); margin:var(--sp-9) 0 0; }
@media (min-width:800px){ .note-next{ grid-template-columns:1fr 1fr; } }
.note-next__card{
  display:block; border:1px solid var(--c-line-2); border-radius:var(--radius-m);
  padding:var(--sp-6); text-decoration:none; background:var(--c-bg);
  transition:border-color var(--dur-react) var(--ease-btn);
}
.note-next__card:hover{ border-color:var(--c-ink); }
.note-next__label{
  display:block; font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-3);
}
.note-next__title{
  display:block; font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-4);
}
.note-next__more{ display:block; font-size:var(--fs-1); color:var(--c-body); }

.btn--block{ justify-content:center; }
.btn--block .btn__sep{ display:none; }
.btn--block .btn__arrow{ margin-left:var(--sp-4); }

.p-contact .site-footer,
.p-contact-service .site-footer{ display:none; }

.p-contact .form__note,
.p-contact-service .form__note{ margin-bottom:var(--sp-2); }

.note-faq{ border-top:1px solid var(--c-line); margin:var(--sp-6) 0 0; }
.note-faq__item{ border-bottom:1px solid var(--c-line); padding:var(--sp-6) 0; }
.note-faq__item h3{
  font-size:var(--fs-3); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-3);
}
.note-faq__item p{ font-size:var(--fs-2); color:var(--c-body); margin:0; }

.note-rel{ border-top:1px solid var(--c-line); margin:var(--sp-9) 0 0; padding:var(--sp-7) 0 0; }
.note-rel__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-5);
}
.note-rel__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-4); }
.note-rel__list a{
  display:block; font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  text-decoration:none; line-height:var(--lh-head);
}
.note-rel__list a:hover{ text-decoration:underline; text-underline-offset:4px; }
.note-rel__list span{
  display:block; font-size:var(--fs-1); font-weight:400; color:var(--c-muted);
  margin:var(--sp-2) 0 0;
}

.form .check input[type="checkbox"], .form .check input[type="radio"]{
  appearance:none; -webkit-appearance:none;
  width:18px; height:18px; flex:0 0 auto; margin-top:2px;
  border:1px solid var(--c-line-2); background:#fff; cursor:pointer;
  transition:border-color var(--dur-react) var(--ease-in);
}
.form .check input[type="checkbox"]{ border-radius:var(--radius-s); }
.form .check input[type="radio"]{ border-radius:var(--radius-pill); }
.form .check input:hover{ border-color:var(--c-ink); }

.form .check input:checked{ border-color:var(--c-ink); background:var(--c-ink); }
.form .check input[type="checkbox"]:checked{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M4 9.2l3.4 3.4L14 5.6' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:100% 100%;
}
.form .check input[type="radio"]:checked{
  box-shadow:inset 0 0 0 3px #fff;
}
.form .check input:focus-visible{ outline:2px solid var(--c-ink); outline-offset:2px; }

.checks--col .check:not(:has(.check__note)){ padding:var(--sp-3) var(--sp-4); }

.note-main{ background:var(--c-bg-soft); padding-bottom:var(--sp-10); }
.nt-wrap{ display:grid; gap:var(--sp-6); }
@media (min-width:1000px){

  .nt-wrap{ grid-template-columns:minmax(0,1fr) 300px; }
}
.nt-main{
  background:var(--c-bg); padding:var(--sp-8) var(--sp-7) var(--sp-9);
  min-width:0;
}
@media (max-width:640px){ .nt-main{ padding:var(--sp-7) var(--sp-5); } }

.nt-head h1{
  font-size:var(--fs-6); font-weight:700; line-height:var(--lh-head);
  letter-spacing:var(--ls-tight); color:var(--c-ink); margin:0 0 var(--sp-6);
  text-wrap:balance;
}
.nt-meta{
  display:flex; flex-wrap:wrap; gap:var(--sp-5) var(--sp-8);
  align-items:center; justify-content:space-between; margin:0 0 var(--sp-5);
}
.nt-dates{ display:flex; flex-wrap:wrap; gap:var(--sp-5); margin:0; }
.nt-dates div{ display:flex; gap:var(--sp-3); align-items:baseline; }
.nt-dates dt{ font-size:var(--fs-1); color:var(--c-muted); margin:0; }
.nt-dates dd{ font-size:var(--fs-1); color:var(--c-body); margin:0; font-variant-numeric:tabular-nums; }

.nt-author{ display:flex; gap:var(--sp-4); align-items:center; }
.nt-avatar{
  width:44px; height:44px; border-radius:var(--radius-pill); flex:0 0 auto;
  object-fit:cover; background:var(--c-bg-soft);
}
.nt-avatar--txt{
  display:flex; align-items:center; justify-content:center;
  font-size:var(--fs-3); font-weight:700; color:var(--c-bg); background:var(--c-ink);
}
.nt-author__txt{ display:grid; gap:var(--sp-1); }
.nt-author__role{ font-size:var(--fs-1); color:var(--c-muted); }
.nt-author__name{ font-size:var(--fs-2); font-weight:700; color:var(--c-ink); }

.nt-tags{ list-style:none; display:flex; flex-wrap:wrap; gap:var(--sp-2); margin:0 0 var(--sp-6); padding:0; }
.nt-tags li{
  font-size:var(--fs-1); color:var(--c-body); background:var(--c-bg-soft);
  padding:var(--sp-2) var(--sp-4);
}

.nt-share{ display:flex; align-items:center; gap:var(--sp-3); margin:0 0 var(--sp-7); }
.nt-share__label{ font-size:var(--fs-1); color:var(--c-muted); letter-spacing:var(--ls-wide); }
.nt-share__btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border:1px solid var(--c-line-2);
  color:var(--c-body); text-decoration:none;
  transition:border-color var(--dur-react) var(--ease-in), color var(--dur-react) var(--ease-in);
}
.nt-share__btn:hover{ border-color:var(--c-ink); color:var(--c-ink); }
.nt-share__btn svg{ width:15px; height:15px; }

.nt-eye{ margin:0 0 var(--sp-8); }
.nt-eye img{ width:100%; height:auto; display:block; background:var(--c-bg-soft); }

.nt-toc{
  border:1px solid var(--c-ink); padding:var(--sp-6) var(--sp-7);
  margin:0 0 var(--sp-8);
}
.nt-toc__h{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-base); margin:0 0 var(--sp-5);
  padding:0 0 var(--sp-4); border-bottom:1px solid var(--c-line);
}
.nt-toc__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-4); counter-reset:toc; }
.nt-toc__list a{
  font-size:var(--fs-3); color:var(--c-body); text-decoration:none; display:block;
  line-height:var(--lh-head);
}
.nt-toc__list > li:not(.-sub) > a::before{
  counter-increment:toc; content:counter(toc) ". ";
  color:var(--c-ink); font-weight:700;
}
.nt-toc__list .-sub{ padding-left:var(--sp-6); }
.nt-toc__list .-sub a{ font-size:var(--fs-2); color:var(--c-muted); }
.nt-toc__list a:hover{ color:var(--c-ink); text-decoration:underline; text-underline-offset:4px; }

.nt-body{ margin:0; }

.nt-side{ display:grid; gap:var(--sp-5); align-content:start; }
.nt-side__block{ background:var(--c-bg); padding:var(--sp-6); }
.nt-side__h{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-5); padding:0 0 var(--sp-3);
  border-bottom:2px solid var(--c-ink); letter-spacing:var(--ls-base);
}
.nt-rank{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-5); }
.nt-rank a{
  display:flex; gap:var(--sp-4); align-items:flex-start;
  font-size:var(--fs-2); color:var(--c-body); text-decoration:none; line-height:var(--lh-head);
}
.nt-rank a:hover{ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
.nt-rank__n{
  flex:0 0 auto; width:20px; height:20px; display:flex; align-items:center; justify-content:center;
  background:var(--c-ink); color:var(--c-bg);
  font-size:var(--fs-1); font-weight:700; font-variant-numeric:tabular-nums;
}
.nt-rank .-current a{ color:var(--c-ink); font-weight:700; }

@media (min-width:1000px){
  .nt-side__toc{ position:sticky; top:calc(var(--header-h) + var(--sp-4)); }
}
.nt-nav{ display:flex; gap:var(--sp-4); max-height:calc(100vh - 240px); overflow-y:auto; }
.nt-nav__rail{
  flex:0 0 auto; width:2px; background:var(--c-line); position:relative;
}
.nt-nav__fill{
  position:absolute; inset:0 0 auto 0; width:100%; height:0; background:var(--c-ink);
}
.nt-nav ul{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-4); flex:1 1 auto; }
.nt-nav__link{
  font-size:var(--fs-2); color:var(--c-muted); text-decoration:none; display:block;
  line-height:var(--lh-head);
  transition:color var(--dur-react) var(--ease-in), padding-left var(--dur-react) var(--ease-out);
}
.nt-nav__link:hover{ color:var(--c-ink); }

.nt-nav__link.-current{ color:var(--c-ink); font-weight:700; padding-left:var(--sp-2); }
@media (max-width:999px){ .nt-side__toc{ display:none; } }

.nt-share--foot{ margin:var(--sp-9) 0 0; padding:var(--sp-6) 0 0; border-top:1px solid var(--c-line); }
.note-author{ border-top:1px solid var(--c-line); margin:var(--sp-8) 0 0; padding:var(--sp-7) 0 0; }
.note-author__h{
  font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-5);
}
.note-author__row{ display:flex; gap:var(--sp-5); align-items:flex-start; }
.note-author__row .nt-avatar{ width:64px; height:64px; }
.note-author__name{ font-size:var(--fs-4); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); }
.note-author__name span{
  display:block; font-size:var(--fs-1); font-weight:400; color:var(--c-muted); margin:var(--sp-1) 0 0;
}
.note-author__bio{ font-size:var(--fs-3); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.note-rel{ border-top:1px solid var(--c-line); margin:var(--sp-9) 0 0; padding:var(--sp-7) 0 0; }
.note-rel__h{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-5); padding:0 0 var(--sp-3); border-bottom:2px solid var(--c-ink);
}
.note-rel__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-5); }
.note-rel__list a{
  display:block; font-size:var(--fs-read); font-weight:700; color:var(--c-ink);
  text-decoration:none; line-height:var(--lh-head);
}
.note-rel__list a:hover{ text-decoration:underline; text-underline-offset:4px; }
.note-rel__list span{
  display:block; font-size:var(--fs-2); font-weight:400; color:var(--c-muted); margin:var(--sp-2) 0 0;
}

.note-next{ display:grid; gap:var(--sp-4); margin:var(--sp-9) 0 0; }
@media (min-width:800px){ .note-next{ grid-template-columns:1fr 1fr; } }
.note-next__card{
  display:block; background:var(--c-bg-soft); border:1px solid var(--c-line-2);
  padding:var(--sp-6); text-decoration:none;
  transition:background var(--dur-react) var(--ease-btn),
             border-color var(--dur-react) var(--ease-btn);
}
.note-next__card:hover{ background:var(--c-bg); border-color:var(--c-ink); }
.note-next__label{
  display:inline-block; font-size:var(--fs-1); font-weight:700; color:var(--c-bg);
  background:var(--c-ink); padding:var(--sp-1) var(--sp-3);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-4);
}
.note-next__title{
  display:block; font-size:var(--fs-3); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-3);
}
.note-next__more{
  display:block; font-size:var(--fs-2); color:var(--c-ink);
  text-decoration:underline; text-underline-offset:4px;
}

.nt-body p{
  font-size:var(--fs-read); line-height:var(--lh-read); color:var(--c-body);
  margin:0 0 var(--sp-6);
}
.nt-body h2{
  font-size:var(--fs-6); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-tight); line-height:var(--lh-head);
  margin:var(--sp-10) 0 var(--sp-6); padding:0 0 var(--sp-4);
  border-bottom:2px solid var(--c-ink); scroll-margin-top:var(--sp-11);
}
.nt-body h2:first-child{ margin-top:0; }
.nt-body h3{
  font-size:var(--fs-5); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:var(--sp-9) 0 var(--sp-5);
  padding-left:var(--sp-4); border-left:4px solid var(--c-ink);
}
.nt-body b{ font-weight:700; color:var(--c-ink); }

.nt-box, .nt-frame{
  border:1px solid var(--c-ink);
  padding:0 0 var(--sp-5);
  margin:var(--sp-7) 0 var(--sp-8);
  background:var(--c-bg);
}

.nt-box > .nt-box__h, .nt-frame > .nt-frame__h{
  display:flex; align-items:center; gap:var(--sp-2);
  margin:0 0 var(--sp-5); padding:var(--sp-3) var(--sp-5);
  background:var(--c-mute); color:var(--c-ink);
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
}
.nt-box > p, .nt-frame > p{ padding-inline:var(--sp-5); }

.nt-box{ border-color:var(--c-line-2); }
.nt-box > .nt-box__h{ background:var(--c-bg-soft); color:var(--c-muted); }
.nt-box > p:last-child, .nt-frame > p:last-child{
  font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body); margin:0;
}
@media (max-width:640px){
  .nt-box, .nt-frame{ padding:var(--sp-6) var(--sp-5) var(--sp-5); }
}

.nt-points{
  border:1px solid var(--c-ink); padding:var(--sp-6) var(--sp-7);
  margin:0 0 var(--sp-8);
}
.nt-points__h{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  letter-spacing:var(--ls-base); margin:0 0 var(--sp-5);
  padding:0 0 var(--sp-4); border-bottom:1px solid var(--c-line);
}
.nt-points__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-4); }
.nt-points__list li{
  display:flex; gap:var(--sp-4); align-items:flex-start;
  font-size:var(--fs-3); line-height:var(--lh-head); color:var(--c-ink); font-weight:700;
}
.nt-points__list li::before{
  content:""; flex:0 0 auto; width:12px; height:7px;
  border-left:2px solid var(--c-ink); border-bottom:2px solid var(--c-ink);
  transform:translateY(var(--sp-2)) rotate(-45deg);
}

.nt-body .note-point{
  border-left:2px solid var(--c-line-2); background:none;
  padding:var(--sp-2) 0 var(--sp-2) var(--sp-6); margin:var(--sp-7) 0 0;
}
.nt-body .note-point p{ font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body); margin:0; }

.nt-body .note-point > .note-point__h{
  display:block; font-size:var(--fs-1); font-weight:700; color:var(--c-muted);
  line-height:var(--lh-head); letter-spacing:var(--ls-wide); margin:0 0 var(--sp-3);
}

.nt-quote{
  border-left:4px solid var(--c-line-2); padding:0 0 0 var(--sp-6);
  margin:var(--sp-7) 0 var(--sp-8);
}
.nt-quote p{ font-size:var(--fs-read); line-height:var(--lh-body); color:var(--c-body); margin:0 0 var(--sp-3); }
.nt-quote cite{ display:block; font-size:var(--fs-1); color:var(--c-muted); font-style:normal; }

.nt-list{ margin:var(--sp-7) 0 var(--sp-8); display:grid; gap:var(--sp-6); }
.nt-list > div{ display:grid; grid-template-columns:auto 1fr; gap:0 var(--sp-4); }
.nt-list dt{
  grid-column:2; font-size:var(--fs-read); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0;
}
.nt-list dd{
  grid-column:2; font-size:var(--fs-3); color:var(--c-body);
  line-height:var(--lh-body); margin:var(--sp-3) 0 0;
  padding-left:var(--sp-5); border-left:2px solid var(--c-line);
}
.nt-list > div::before{
  content:""; grid-row:1 / 3; grid-column:1; align-self:start;
  width:13px; height:8px;
  border-left:3px solid var(--c-ink); border-bottom:3px solid var(--c-ink);
  transform:translateY(var(--sp-2)) rotate(-45deg);
}

.ticks{ list-style:none; margin:var(--sp-6) 0 var(--sp-7); padding:0; display:grid; gap:var(--sp-4); }
.ticks li{
  position:relative; padding:0 0 0 var(--sp-6);
  font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body);
}
.ticks li::before{
  content:""; position:absolute; left:0; top:10px;
  width:12px; height:7px; border-left:2px solid var(--c-ink);
  border-bottom:2px solid var(--c-ink); transform:rotate(-45deg);
}

.nt-steps{ list-style:none; counter-reset:nts; margin:var(--sp-7) 0 var(--sp-8); padding:0; }
.nt-steps li{
  counter-increment:nts; position:relative;
  padding:0 0 var(--sp-6) var(--sp-9);
  font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body);
}
.nt-steps li::before{
  content:counter(nts);
  position:absolute; left:0; top:0;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  background:var(--c-ink); color:var(--c-bg);
  font-size:var(--fs-1); font-weight:700;
}
.nt-steps li::after{
  content:""; position:absolute; left:13px; top:32px; bottom:4px; width:2px; background:var(--c-line);
}
.nt-steps li:last-child{ padding-bottom:0; }
.nt-steps li:last-child::after{ display:none; }
.nt-steps b{ display:block; font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-2); font-size:var(--fs-read); }

.nt-term{
  background:var(--c-bg-soft); padding:var(--sp-6); margin:var(--sp-7) 0 var(--sp-8);
  border-left:4px solid var(--c-line-2);
}
.nt-term dt{ font-size:var(--fs-3); font-weight:700; color:var(--c-ink); margin:0 0 var(--sp-3); }
.nt-term dd{ font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body); margin:0; }

.nt-compare{ display:grid; gap:var(--sp-4); margin:var(--sp-7) 0 var(--sp-8); }
@media (min-width:700px){ .nt-compare{ grid-template-columns:1fr 1fr; } }
.nt-compare__box{ border:1px solid var(--c-line-2); padding:var(--sp-6); }
.nt-compare__box--good{ border-color:var(--c-ink); }
.nt-compare__h{
  display:inline-block; font-size:var(--fs-1); font-weight:700; letter-spacing:var(--ls-wide);
  color:var(--c-bg); background:var(--c-line-strong);
  padding:var(--sp-1) var(--sp-3); margin:0 0 var(--sp-4);
}
.nt-compare__box--good .nt-compare__h{ background:var(--c-ink); }
.nt-compare p:last-child{ font-size:var(--fs-3); color:var(--c-body); margin:0; line-height:var(--lh-body); }

.nt-figure{ margin:var(--sp-7) 0 var(--sp-8); }
.nt-figure img, .nt-figure svg{
  width:100%; height:auto; display:block;
  border:1px solid var(--c-line); background:var(--c-bg);
}
.nt-figure figcaption{
  font-size:var(--fs-2); color:var(--c-muted); margin:var(--sp-3) 0 0; line-height:var(--lh-body);
}

.note-table{ width:100%; border-collapse:collapse; font-size:var(--fs-3); }
.note-table caption{
  text-align:left; font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-4);
}
.note-table th, .note-table td{
  border-bottom:1px solid var(--c-line); padding:var(--sp-4) var(--sp-4);
  text-align:left; vertical-align:top; color:var(--c-body);
}
.note-table thead th{ background:var(--c-bg-soft); font-weight:700; color:var(--c-ink); border-bottom:2px solid var(--c-ink); }
.note-table td:nth-child(2), .note-table td:nth-child(3){ font-variant-numeric:tabular-nums; }
.note-table__wrap{ overflow-x:auto; margin:var(--sp-7) 0 var(--sp-8); }
.note-table__wrap .note-table{ margin:0; min-width:560px; }

.nt-linkcard{
  display:flex; align-items:center; gap:var(--sp-5);
  background:var(--c-bg-soft); border:1px solid var(--c-line-2);
  padding:var(--sp-6); margin:var(--sp-7) 0 var(--sp-8); text-decoration:none;
  transition:background var(--dur-react) var(--ease-btn),
             border-color var(--dur-react) var(--ease-btn);
}
.nt-linkcard:hover{ background:var(--c-bg); border-color:var(--c-ink); }
.nt-linkcard__body-wrap{ flex:1 1 auto; min-width:0; }
.nt-linkcard__label{
  display:inline-block; font-size:var(--fs-1); font-weight:700; color:var(--c-bg);
  background:var(--c-ink); padding:var(--sp-1) var(--sp-3);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-3);
}
.nt-linkcard__title{
  display:block; font-size:var(--fs-read); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-2);
  text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px;
}
.nt-linkcard__body{ display:block; font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body); }
.nt-linkcard__arrow{
  flex:0 0 auto; width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  background:var(--c-ink); color:var(--c-bg);
  transition:transform var(--dur-react) var(--ease-btn);
}
.nt-linkcard:hover .nt-linkcard__arrow{ transform:translateX(4px); }
.nt-linkcard__arrow svg{ width:14px; height:14px; }

.nt-body .note-faq{ border-top:2px solid var(--c-ink); margin:var(--sp-6) 0 0; }
.note-faq__item{ border-bottom:1px solid var(--c-line); padding:var(--sp-6) 0; }
.nt-body .note-faq__item h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-4); padding:0; border:0;
}
.nt-body .note-faq__item p{ font-size:var(--fs-3); line-height:var(--lh-body); color:var(--c-body); margin:0; }

.nt-mark{ background:linear-gradient(transparent 60%, var(--c-line) 60%); font-weight:700; color:var(--c-ink); }

.sg-h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:var(--sp-9) 0 var(--sp-2); padding:var(--sp-5) 0 0;
  border-top:1px solid var(--c-line);
}
.sg-note{ font-size:var(--fs-2); color:var(--c-muted); margin:0 0 var(--sp-5); }

.nt-side{ position:static; }
@media (min-width:1000px){
  .nt-side__toc{ position:sticky; top:calc(var(--header-h) + var(--sp-5)); }
}

.nt-side__h{ color:var(--c-ink); }

.nt-side__block{ padding:var(--sp-5) var(--sp-6); }
.nt-side{ gap:var(--sp-4); }

.nt-share--foot{
  margin:var(--sp-9) 0 0; padding:var(--sp-6) 0 0;
  border-top:1px solid var(--c-line);
}

.note-author__row{ display:flex; gap:var(--sp-5); align-items:flex-start; }
.note-author__row .nt-avatar{ width:64px; height:64px; }

.note-card{ display:grid; gap:var(--sp-5); }
@media (min-width:760px){
  .note-card{ grid-template-columns:280px 1fr; align-items:start; }
}
.note-card__img{
  border-radius:var(--radius-m); overflow:hidden; background:var(--c-bg-soft); aspect-ratio:16/9;
}
.note-card__img img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--dur-slow) var(--ease-out);
}
.note-card:hover .note-card__img img{ transform:scale(1.03); }
.note-card__lead{
  font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body);
  margin:var(--sp-3) 0 0;
}

.strengths{ display:grid; gap:var(--sp-8); }
@media (min-width:900px){ .strengths{ grid-template-columns:repeat(3,1fr); gap:var(--sp-7); } }
.strength__num{
  font-size:var(--fs-2); font-weight:700; color:var(--c-muted);
  letter-spacing:var(--ls-wide); margin:0 0 var(--sp-4);
  padding:0 0 var(--sp-4); border-bottom:2px solid var(--c-ink);
}
.strength h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-4);
}
.strength p:last-child{
  font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body); margin:0;
}

.card__more{
  display:inline-flex; align-items:center; gap:var(--sp-3);
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin-top:auto; padding-top:var(--sp-5);
}
.card__more span{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:var(--radius-pill);
  border:1px solid var(--c-line-2);
  transition:background var(--dur-react) var(--ease-btn),
             border-color var(--dur-react) var(--ease-btn),
             transform var(--dur-react) var(--ease-btn);
}
.card__more svg{ width:13px; height:13px; }
.card:hover .card__more span{
  background:var(--c-ink); border-color:var(--c-ink); color:var(--c-bg);
  transform:translateX(4px);
}

.note-cards-top{ display:grid; gap:var(--sp-6); grid-template-columns:1fr; }

@media (min-width:900px){
  .note-cards-top:has(> :nth-child(2)){ grid-template-columns:repeat(2,1fr); }
}
.note-card-top{
  display:grid; gap:var(--sp-5); text-decoration:none; color:inherit;
  border:1px solid var(--c-line); border-radius:var(--radius-m); overflow:hidden;
  background:var(--c-bg);
  transition:border-color var(--dur-react) var(--ease-btn), transform var(--dur-react) var(--ease-btn);
}
@media (min-width:640px){ .note-card-top{ grid-template-columns:300px 1fr; gap:0; align-items:stretch; } }
.note-card-top:hover{ border-color:var(--c-ink); transform:translateY(-2px); }
.note-card-top__img{ overflow:hidden; background:var(--c-bg-soft); aspect-ratio:16/9; }

@media (min-width:640px){ .note-card-top__img{ aspect-ratio:auto; height:100%; min-height:180px; } }
.note-card-top__img img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--dur-slow) var(--ease-out);
}
.note-card-top:hover .note-card-top__img img{ transform:scale(1.06); }
.note-card-top__body{ padding:var(--sp-6); display:flex; flex-direction:column; }
.note-card-top__meta{ font-size:var(--fs-1); color:var(--c-muted); margin:0 0 var(--sp-3); }
.note-card-top__body h3{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); margin:0 0 var(--sp-4);
}
.note-card-top__lead{
  font-size:var(--fs-2); color:var(--c-body); line-height:var(--lh-body);
  margin:0 0 var(--sp-5); flex:1 1 auto;
}
.note-card-top__more{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  text-decoration:underline; text-underline-offset:4px;
}

.form[hidden]{ display:none; }

.form__hp{
  position:absolute;
  left:-9999px;
  width:1px; height:1px;
  overflow:hidden;
}

.cf-turnstile{
  margin-top:var(--sp-4);
  margin-bottom:var(--sp-4);
}

.form__error{
  font-size:var(--fs-2); font-weight:700; color:var(--c-danger);
  margin:0;
}

.form__done{
  padding:var(--sp-8) var(--sp-6);
  border:1px solid var(--c-line);
  border-radius:var(--radius-m);
  background:var(--c-bg-soft);
  text-align:center;
}
.form__done-title{
  font-size:var(--fs-4); font-weight:700; color:var(--c-ink);
  margin:0 0 var(--sp-3);
}
.form__done-body{
  font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body);
  margin:0;
}

.btn:disabled{ cursor:not-allowed; opacity:.7; }
.btn.is-sending{ position:relative; color:transparent; }
.btn.is-sending::after{
  content:"送信中..."; position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}

.p-contact-thanks .site-header .nav,
.p-contact-service-thanks .site-header .nav,
.p-thanks-doc .site-header .nav,
.p-contact-thanks .site-header .btn,
.p-contact-service-thanks .site-header .btn,
.p-thanks-doc .site-header .btn,
.p-contact-thanks .burger,
.p-contact-service-thanks .burger,
.p-thanks-doc .burger{ display:none; }

.note-next__card[hidden]{ display:none; }

.thanks{ padding-block:var(--sp-11); }
.thanks__inner{ max-width:var(--w-read); }
.thanks__title{
  font-size:var(--fs-6); font-weight:700; color:var(--c-ink);
  line-height:var(--lh-head); letter-spacing:var(--ls-tight);
  margin:0 0 var(--sp-5);
}
.thanks__body{
  font-size:var(--fs-3); color:var(--c-body); line-height:var(--lh-body);
  margin:0 0 var(--sp-5);
}
.thanks__dl{ margin:0 0 var(--sp-6); }

.thanks__note{
  font-size:var(--fs-1); color:var(--c-muted); line-height:var(--lh-body);
  margin:0; padding-top:var(--sp-4); border-top:1px solid var(--c-line);
}

.thanks__next{
  font-size:var(--fs-2); font-weight:700; color:var(--c-ink);
  margin:var(--sp-9) 0 var(--sp-4);
}
.thanks .note-next{ margin:0; }
.thanks__links{
  display:flex; flex-wrap:wrap; gap:var(--sp-6);
  margin:var(--sp-6) 0 0;
}
