/*
 * ANOINE 5.2 unify layer (loaded last)
 * 1. One content width for every page (header / page title / body / footer)
 * 2. Heading backgrounds follow the site colour (black)
 * 3. Readable Japanese font (Noto Sans JP first)
 * 4. Corporate-site feel (JP + EN labels, clear buttons, CTA band) in the same black / white palette
 */
:root{
  --kb-max:1120px;
  --ao-max:1120px;
  --kb-gutter:40px;
  --kb-black:#111;
  --kb-sans:"BIZ UDPGothic","Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  --kb-logo:"Helvetica Neue",Helvetica,Arial,"BIZ UDPGothic","Noto Sans JP","Hiragino Sans",sans-serif;
}

/* ---------- 3. Font ---------- */
body.anoine-official-site,
body.anoine-official-site button,
body.anoine-official-site input,
body.anoine-official-site textarea,
body.anoine-official-site select{font-family:var(--kb-sans)}
body.anoine-official-site{font-size:16px;line-height:1.9;letter-spacing:.02em;font-feature-settings:"palt" 0;text-rendering:optimizeLegibility}
body.anoine-official-site h1,
body.anoine-official-site h2,
body.anoine-official-site h3,
body.anoine-official-site h4,
.ao-page-hero h1,.ao-article-head h1,.kb-single__title{font-family:var(--kb-sans)!important;font-weight:700;letter-spacing:.03em}
.kb-logo strong,.kb-footer__logo{font-family:var(--kb-logo)}

/* ---------- 1. One width everywhere ---------- */
.kb-header__inner,
.kb-gnav__inner,
.kb-gnav__search-inner,
.kb-page-head__inner,
.kb-layout,
.kb-hero,
.kb-status,
.kb-footer__lead-inner,
.kb-footer__main,
.ao-breadcrumb,
.ao-shell,
.ao-page-content,
.ao-page-content--wide,
.ao-archive-intro,
.ao-archive-grid,
.ao-news-list,
.ao-pagination,
.ao-article-head,
.ao-article,
.ao-page-hero__inner,
.ao-site-footer__main,
.kb-error,
.ao-main.kb-main > .ao-section > .ao-shell,
.ao-main.kb-main > section > .ao-shell{
  width:min(var(--kb-max),calc(100% - var(--kb-gutter)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}
.kb-header__inner,.kb-gnav__inner,.kb-gnav__search-inner,.kb-page-head__inner,.kb-footer__lead-inner{padding-left:0!important;padding-right:0!important}
/* shells nested inside another width-managed wrapper fill it instead of shrinking again */
.ao-shell .ao-shell,.ao-page-content .ao-shell,.kb-layout .ao-shell{width:100%!important}
/* the status card keeps its own inner padding, but sits on the same width */
.kb-status{padding:0}
.kb-status__inner{width:100%!important;margin:0!important}
/* nested wrappers must not narrow the column again */
.ao-page-content .entry-content,
.kb-article .entry-content,
.ao-policy-content,.ao-sitemap-content{max-width:none!important;width:100%}
.ao-main.kb-main .ao-page-content{padding-top:44px;padding-bottom:84px}
@media(max-width:760px){
  :root{--kb-gutter:32px}
  .ao-main.kb-main .ao-page-content{padding-top:30px;padding-bottom:60px}
}

/* ---------- 2. Headings (black used sparingly: page title band only) ---------- */
/* breadcrumb: its own thin row above the title band, same width as everything else */
.kb-crumb{
  width:100%!important;max-width:none!important;margin:0!important;
  padding:11px max(20px,calc((100% - var(--kb-max))/2))!important;
  background:#fff;border-bottom:1px solid var(--kb-line);box-sizing:border-box;
  color:var(--kb-sub);font-size:12.5px;line-height:1.6;
}
.kb-crumb ol{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:2px 0}
.kb-crumb li+li:before{content:"›";margin:0 9px;color:#a4a9ae}
.kb-crumb a{color:var(--kb-sub)}
.kb-crumb a:hover{color:var(--kb-ink);text-decoration:underline}
.kb-crumb [aria-current]{color:var(--kb-ink);font-weight:600}
.ao-breadcrumb{padding:11px 0;font-size:12.5px!important}

/* page title band */
.kb-page-head{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  background:var(--kb-black);color:#fff;border:0!important;position:static;
}
.kb-page-head__inner{padding-top:28px!important;padding-bottom:28px!important}
.kb-page-head__title{margin:0;color:#fff;font-size:clamp(23px,3.4vw,30px);line-height:1.4;display:flex;flex-direction:column;gap:6px}
.kb-page-head__title small{order:-1;margin:0;color:#aeb3b8;font-size:11.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.kb-page-head__lead{margin:10px 0 0;color:#d4d7da;font-size:14px;line-height:1.8}
/* legacy page hero */
.ao-page-hero{background:var(--kb-black)!important;border:0!important;min-height:0!important}
.ao-page-hero:before,.ao-page-hero:after{display:none!important}
.ao-page-hero__inner{min-height:0!important;padding:28px 0!important;display:block!important}
.ao-page-hero__copy{width:100%!important;padding:0!important}
.ao-page-hero h1,.ao-page-hero p,.ao-page-hero small{color:#fff!important;text-shadow:none!important}
.ao-page-hero h1{font-size:clamp(23px,3.4vw,30px)!important;margin:6px 0 0!important}
.ao-page-hero small{color:#aeb3b8!important;font-size:11.5px!important;letter-spacing:.24em}
.ao-page-hero p{margin-top:10px!important;font-size:14px!important;line-height:1.8!important}

/* section headings: black bar + EN label, no fill */
.kb-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  margin:0 0 24px;padding:0 0 12px;border:0;border-bottom:1px solid #cfd2d5;background:none;color:var(--kb-ink);position:relative;
}
.kb-heading:after{content:"";position:absolute;left:0;bottom:-1px;width:72px;height:3px;background:var(--kb-black)}
.kb-heading h2{margin:0;padding:0;color:var(--kb-ink);font-size:22px;line-height:1.4;display:flex;flex-direction:column;gap:2px}
.kb-heading h2 small{order:-1;margin:0;color:var(--kb-sub);font-size:11px;font-weight:700;letter-spacing:.24em}
.kb-heading a{padding:0;color:var(--kb-ink);font-size:13px;font-weight:600}
.kb-heading a:hover{text-decoration:underline}
.kb-related__title,.kb-widget__title{
  margin:0 0 16px;padding:0 0 8px;border:0;border-bottom:2px solid var(--kb-black);background:none;color:var(--kb-ink);font-size:16px;line-height:1.5;
}
/* headings inside article / page bodies */
.kb-article .entry-content h2,
.ao-page-content h2,
.ao-article .entry-content h2,
.ao-policy-content h2{
  margin:2.4em 0 1em;padding:11px 16px;background:var(--kb-soft);color:var(--kb-ink)!important;
  border:0!important;border-left:5px solid var(--kb-black)!important;
  font-size:20px;line-height:1.6;
}
.kb-article .entry-content h3,
.ao-page-content h3,
.ao-article .entry-content h3,
.ao-policy-content h3{
  margin:2em 0 .8em;padding:0 0 8px;background:transparent;color:var(--kb-ink);
  border:0!important;border-bottom:2px solid #d9dcdf!important;font-size:18px;line-height:1.6;
}
.kb-article .entry-content>h2:first-child,.ao-page-content .entry-content>h2:first-child{margin-top:0}
.kb-single__title{margin:0;padding:0 0 14px;border-bottom:3px solid var(--kb-black);background:none;color:var(--kb-ink);font-size:clamp(22px,3vw,28px);line-height:1.6}
.kb-single__head .kb-chips{margin-bottom:12px}
/* legacy / form section headings */
.ao-section-heading__title h2,
.abc-section-heading,
.abc-section-heading h2{
  background:none;color:var(--kb-ink)!important;padding:0 0 0 14px;border:0!important;border-left:5px solid var(--kb-black)!important;
}
.ao-section-heading__title small{color:var(--kb-sub)!important}
.ao-section-heading{align-items:center}
.ao-main.kb-main .ao-page-content{padding-top:48px}

/* ---------- 4. Corporate feel ---------- */
/* nav: JP label + small EN label */
.kb-gnav__link{flex-direction:row;flex-wrap:wrap;align-content:center;justify-content:center;gap:0 6px;min-height:62px;padding:0 18px}
.kb-gnav__jp{display:block;width:100%;text-align:center;font-size:14.5px;line-height:1.4;font-weight:700;letter-spacing:.04em}
.kb-gnav__en{display:block;width:100%;margin-top:1px;text-align:center;color:var(--kb-sub);font-size:10px;line-height:1.2;font-weight:500;letter-spacing:.18em}
.kb-gnav__trigger{position:relative;padding-right:30px}
.kb-gnav__trigger .kb-icon{position:absolute;right:11px;top:50%;margin-top:-7px}
.kb-gnav__link.is-current{color:var(--kb-ink)!important}
.kb-gnav__link.is-current:after,.kb-gnav__link:hover:after{background:var(--kb-black)}
.kb-gnav__link.is-current .kb-gnav__en{color:var(--kb-ink)}
.kb-gnav__cta{background:var(--kb-black);min-height:42px;padding:0 22px;font-size:13.5px}
.kb-gnav__panel{border-top:3px solid var(--kb-black)}
.kb-gnav__panel a[aria-current] strong{color:var(--kb-ink)}
.kb-gnav__panel a[aria-current]{background:var(--kb-soft)}
.kb-gnav__panel a strong{font-size:14.5px}
.kb-gnav__panel a small{font-size:12.5px}

/* buttons ("詳しくはこちら" style) */
.kb-btn{border-radius:0;background:var(--kb-black);border:1px solid var(--kb-black);color:#fff!important;font-weight:700;letter-spacing:.06em}
.kb-btn:hover{background:#fff;color:var(--kb-black)!important}
.kb-btn--ghost{background:#fff;color:var(--kb-black)!important}
.kb-btn--ghost:hover{background:var(--kb-black);color:#fff!important}
.kb-status__link,.kb-heading a{letter-spacing:.04em}
.kb-hero__panel{border-radius:0}
.kb-hero__eyebrow{letter-spacing:.28em}

/* footer CTA band: "Contact us" */
.kb-footer__lead{background:var(--kb-black);border:0;color:#fff}
.kb-footer__lead-inner strong{color:#fff;font-size:20px;letter-spacing:.04em}
.kb-footer__lead-inner span{color:#d9dcdf;font-size:14px}
.kb-footer__lead-actions .kb-btn{background:#fff;color:var(--kb-black)!important;border-color:#fff}
.kb-footer__lead-actions .kb-btn:hover{background:transparent;color:#fff!important}
.kb-footer__lead-actions .kb-btn--ghost{background:transparent;color:#fff!important;border-color:#fff}
.kb-footer__lead-actions .kb-btn--ghost:hover{background:#fff;color:var(--kb-black)!important}
.kb-footer__col h2{padding:0 0 10px;border-bottom:2px solid var(--kb-black);color:var(--kb-ink);font-size:15px}
.kb-footer__col h2 small{color:var(--kb-sub);letter-spacing:.18em;font-size:10px;margin-left:8px}

/* lists / cards: calm, square, readable */
.kb-card,.kb-card__thumb,.kb-news li,.kb-chips li{border-radius:0}
.kb-news li{padding:16px 4px;font-size:15px}
.kb-news time{color:var(--kb-sub);font-size:14px}
.kb-card__title{font-size:16px;line-height:1.7}
.kb-chips li,.kb-chips b{background:#fff;color:var(--kb-ink);border:1px solid #8b9197;font-weight:600}
.entry-content table th,.ao-page-content table th{background:var(--kb-soft)}
a:focus-visible,button:focus-visible{outline:3px solid var(--kb-black);outline-offset:2px}

/* ---------- Back-to-top button (appears on scroll, stops above the footer) ---------- */
.kb-fab{
  position:fixed;right:20px;bottom:calc(20px + var(--kb-fab-lift,0px));z-index:900;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  width:56px;height:56px;border:1px solid #fff;border-radius:0;
  background:var(--kb-black);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s,visibility .2s,transform .2s,background .15s;
}
.kb-fab.is-visible{opacity:1;visibility:visible;transform:none}
.kb-fab:hover{background:#333}
.kb-fab span{font:700 10px/1 var(--kb-logo);letter-spacing:.14em}
@media(max-width:760px){.kb-fab{right:14px;width:50px;height:50px}}

/* ---------- Home: corporate guide row (blog x corporate site) ---------- */
.kb-guide{width:min(var(--kb-max),calc(100% - var(--kb-gutter)));margin:28px auto 0}
.kb-guide__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--kb-line);background:#fff}
.kb-guide__list li+li{border-left:1px solid var(--kb-line)}
.kb-guide__list a{display:flex;flex-direction:column;gap:3px;padding:20px 22px;height:100%;position:relative;transition:background .15s}
.kb-guide__list a:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--kb-black);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.kb-guide__list a:hover{background:var(--kb-soft)}
.kb-guide__list a:hover:before{transform:scaleX(1)}
.kb-guide small{color:var(--kb-sub);font-size:10.5px;font-weight:700;letter-spacing:.22em}
.kb-guide strong{font-size:16px;line-height:1.5;color:var(--kb-ink)}
.kb-guide span{color:var(--kb-sub);font-size:13px;line-height:1.6}
@media(max-width:760px){
  .kb-guide__list{grid-template-columns:1fr 1fr}
  .kb-guide__list li:nth-child(3){border-left:0}
  .kb-guide__list li:nth-child(n+3){border-top:1px solid var(--kb-line)}
  .kb-guide__list a{padding:16px}
}
.kb-block{margin-bottom:56px}
.kb-card{border:1px solid var(--kb-line);background:#fff}
.kb-card__body{padding:16px 18px 18px}

/* ---------- Fixed pages: stacking order breadcrumb -> title band -> body (no overlap) ---------- */
.ao-main.kb-main{display:block;position:relative;overflow:visible}
.ao-main.kb-main > .kb-crumb,
.ao-main.kb-main > .kb-page-head,
.ao-main.kb-main > .ao-page-hero,
.ao-main.kb-main > .ao-breadcrumb,
.ao-main.kb-main > .ao-page-content,
.ao-main.kb-main > section,
.ao-main.kb-main > article{position:relative;float:none;clear:both;transform:none;top:auto;left:auto}
.ao-main.kb-main > .kb-crumb{z-index:3;margin:0!important;background:#fff}
.ao-main.kb-main > .kb-page-head,
.ao-main.kb-main > .ao-page-hero{z-index:2;margin:0!important;overflow:hidden}
.ao-main.kb-main > .ao-page-content{z-index:1;background:transparent;margin-top:0!important}
/* the title band is the only large black area: slim, left aligned, no decoration */
.kb-page-head,.ao-page-hero{background-image:none!important;box-shadow:none!important}
.kb-page-head:before,.kb-page-head:after{content:none!important;display:none!important}
.kb-page-head__inner{padding-top:24px!important;padding-bottom:24px!important}
.kb-page-head__title{font-size:clamp(22px,3vw,28px);letter-spacing:.04em}
.kb-page-head__title small{font-size:11px;letter-spacing:.26em}
.kb-page-head__lead{max-width:46em;font-size:14px;color:#d4d7da}
/* headings inside the body stay light (gray panel + thin black bar) so black is not overused */
.ao-page-content h1,.ao-page-content h2,.ao-page-content h3,.ao-page-content h4{position:static}
.ao-page-content .ao-section,.ao-page-content section{background:transparent}
/* business-style type: even rhythm, comfortable measure */
body.anoine-official-site{font-size:16px;line-height:1.85;letter-spacing:.015em}
.ao-page-content .entry-content p,.kb-article .entry-content p{line-height:1.95}
.kb-gnav__jp,.kb-heading h2,.kb-page-head__title{font-weight:700}
