/* =========================================================
   HONSHITSU READABILITY TEMPLATE v3
   Audience: executives in their 50s at small and mid-sized
   SES / SIer companies. Keep body copy dark, comfortably
   sized, and spacious without flattening the page hierarchy.
   ========================================================= */

:root{
  --gray-700:#1f1f1f;
  --gray-600:#2b2b2b;
  --gray-500:#3d3d3d;
  --gray-400:#5a6270;
  --ink2:#2b2b2b;
  --navy-soft:#24364a;
  --muted:#344766;
}

html{font-size:100%;}
body{
  font-size:17px;
  line-height:1.9;
  color:var(--gray-900,#1a1a1a);
  text-rendering:optimizeLegibility;
}

body :where(p,li,dd,dt,th,td){
  text-wrap:pretty;
}

/* Shared hierarchy */
.section-label,
.breadcrumb,
.badge-highlight{
  font-size:14px!important;
}

.section-lead,
.page-hero p.lead,
.top-hero p.lead,
.fde-hero p.lead,
.hero__lead,
.lead{
  font-size:18px!important;
  line-height:2!important;
}

.btn,
.nav-cta,
nav li>a{
  font-size:16px!important;
}

nav .dropdown li>a,
.foot-desc,
.foot-col li a{
  font-size:15px!important;
}

nav .dropdown li>a small,
.foot-col h5{
  font-size:13px!important;
}

/* Standard content blocks, including inline legacy styles */
section.fade p:not(.section-lead):not(.lead),
section.fade li,
section.fade dd{
  font-size:17px!important;
  line-height:1.9!important;
}

section.fade th,
section.fade td,
.company-table th,
.company-table td,
.cur-table th,
.cur-table td,
.price-table th,
.price-table td{
  font-size:16.5px!important;
  line-height:1.85!important;
}

.problem-item p,
.solution-card p,
.step-content p,
.step-content li,
.philo-card p,
.effect-card p,
.subservice-card p,
.top-service-card p,
.top-service-card li,
.program-card p,
.level-card li,
.who-card p,
.format-card p,
.subsidy-box p,
.subsidy-role p,
.flow-card p,
.case-card p,
.why-card p,
.faq-a,
.faq-q,
.faq-details p{
  font-size:17px!important;
  line-height:1.9!important;
}

.message,
.turn{
  font-size:18px!important;
  line-height:1.9!important;
}

/* Tables, prices, and supporting notes */
.price-table th,
.cur-table th{
  font-size:15.5px!important;
}

.price-table td.price{
  font-size:19px!important;
}

.price-table td small,
.cur-table td.c small,
.subsidy-note,
.lead-time{
  font-size:15.5px!important;
  line-height:1.75!important;
}

.program-card .phase,
.program-card .n,
.level-card .k,
.who-card .n,
.risk-card .k,
.fde-def .k,
.case-card .k,
.flow-card .num,
.section-label{
  font-size:14px!important;
}

/* News and company information */
.news-title{font-size:17px!important;}
.news-date{font-size:15px!important;}
.news-cat{font-size:14px!important;}
.ceo-sns a.sns-text{font-size:15px!important;}

/* Privacy and security pages */
.pp .intro,
.pp p,
.pp li{
  font-size:17px!important;
  line-height:1.9!important;
  color:var(--navy-soft)!important;
}

.pp h2{font-size:22px!important;}
.pp table,
.pp th,
.pp td{font-size:16px!important;line-height:1.8!important;}
.pp .date,
.pp .note{font-size:15px!important;color:var(--ink2)!important;}
.pp .en-label{font-size:14px!important;}

/* Download pages and forms */
.dl-body h3{font-size:18px!important;line-height:1.6!important;}
.dl-body p,
.dl-lp .lp-card p,
.dl-lp .toc li,
.dl-lp #thanks p{
  font-size:16.5px!important;
  line-height:1.9!important;
  color:var(--gray-700)!important;
}

.dl-button,
.dl-lp .fld input,
.dl-lp .fld select,
.dl-lp .fld label{
  font-size:16px!important;
}

.dl-lp .lp-hero-note,
.dl-lp .form-box .sub,
.dl-lp .agree,
.dl-lp #form-error{
  font-size:15px!important;
  color:var(--gray-600)!important;
}

.dl-lp .en-label,
.dl-lp .req,
.dl-status,
.dl-cover .badge,
.cover-sub{
  font-size:14px!important;
}

/* Contact */
.hearing-point strong{font-size:17px!important;}
.hearing-point span,
.hearing-note,
.prep li{font-size:16px!important;line-height:1.9!important;}
.form-box .head a{font-size:15px!important;}
.hearing-point .n{font-size:14px!important;}

/* Careers */
.position-featured-summary,
.position-featured-details ul{
  font-size:16.5px!important;
  line-height:1.9!important;
}

.position-featured-details h4,
.position-card-wide h4{font-size:16px!important;}
.position-featured-note{font-size:15.5px!important;line-height:1.85!important;}
.position-featured-apply,
.position-card-wide a{font-size:16px!important;}
.position-featured-meta span{font-size:14.5px!important;}
.position-featured-source{font-size:14px!important;color:var(--gray-600)!important;}
.position-card-wide .pc-col>div{font-size:16px!important;line-height:1.85!important;}

/* Seminar */
.event-date .ym{font-size:15px!important;}
.event-date .dow{font-size:14px!important;}
.event-info .meta{font-size:14px!important;}
.feat-item h4,
.consult-card .copy h4{font-size:17px!important;}
.feat-item p,
.tier-card .tagline,
.tier-card li,
.consult-card .copy p,
.peatix-card p{font-size:16.5px!important;line-height:1.9!important;}
.tier-card .price-row .unit,
.tier-card .tag,
.peatix-card .label{font-size:14px!important;}

/* =========================================================
   MOBILE UI STABILIZATION
   ========================================================= */

:where(
  .top-hero-inner,.two-col,.company-grid,.ceo-grid,.top-ceo-grid,
  .hearing-grid,.problem-list,.solution-grid,.subservice-grid,
  .effect-grid,.program-grid,.level-grid,.who-grid,.format-grid,
  .risk-grid,.impact-grid,.case-grid,.why-grid,.flow-grid,
  .subsidy-role,.foot-grid
)>*{min-width:0;}

iframe{max-width:100%;}
.tbl-wrap{max-width:100%;-webkit-overflow-scrolling:touch;}

@media(max-width:900px){
  .fde-hero .top-hero-inner{grid-template-columns:minmax(0,1fr)!important;}
  header.site-header .container{padding-left:16px;padding-right:16px;}
  header.site-header .nav{height:68px;gap:8px;}
  header.site-header .logo{gap:8px;min-width:0;font-size:19px;line-height:1.1;}
  header.site-header .logo-svg{width:36px!important;height:36px!important;}
  header.site-header .logo small{
    display:block;font-size:10px!important;line-height:1.2;
    margin-top:2px;white-space:nowrap;letter-spacing:.04em;
  }
  header.site-header .nav-cta{
    width:auto!important;padding:8px 11px!important;font-size:13px!important;
    line-height:1.35;white-space:nowrap;border-radius:6px;
  }
  header.site-header .hamburger{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;flex:0 0 44px;font-size:23px;
  }
  header.site-header nav ul.mobile-open{
    top:68px!important;padding:14px 16px 18px!important;gap:2px!important;
    box-shadow:0 12px 28px rgba(10,37,64,.12);
  }
  header.site-header nav ul.mobile-open li>a{
    display:flex;width:100%;padding:11px 8px!important;font-size:16px!important;
  }
  header.site-header nav ul.mobile-open .dropdown{display:none!important;}
}

@media(max-width:560px){
  .container,.container-narrow{width:100%;padding-left:18px!important;padding-right:18px!important;}
  section{padding-top:64px;padding-bottom:64px;}
  .page-hero{padding-top:108px!important;padding-bottom:48px!important;}
  .top-hero{padding-top:100px!important;padding-bottom:48px!important;}

  .section-title{font-size:clamp(25px,7.2vw,31px)!important;line-height:1.45;overflow-wrap:anywhere;}
  .page-hero h1,.top-hero h1{font-size:clamp(28px,8vw,34px)!important;line-height:1.45;overflow-wrap:anywhere;}
  .section-lead,.page-hero p.lead,.top-hero p.lead{font-size:17px!important;line-height:1.9!important;}

  .btn:not(.nav-cta){
    width:100%;max-width:100%;justify-content:center;text-align:center;
    padding:13px 16px!important;line-height:1.55;white-space:normal;overflow-wrap:anywhere;
  }
  .page-hero .btns,.top-hero .btns,.cta-banner .btns{
    width:100%;display:flex;flex-direction:column;align-items:stretch;gap:12px;
  }
  .top-hero .btns .sub-link{text-align:center;padding:8px;}

  /* Top hero: keep the copy readable while giving the training image
     enough visual weight on a narrow screen. */
  .fde-hero{padding-top:92px!important;padding-bottom:42px!important;}
  .fde-hero .top-hero-inner{gap:28px!important;}
  .fde-hero .eyebrow{
    margin-bottom:16px!important;padding:5px 10px!important;
    font-size:13px!important;line-height:1.5;letter-spacing:.04em!important;
  }
  .fde-hero h1{
    margin-bottom:16px!important;
    font-size:clamp(29px,8.6vw,34px)!important;line-height:1.38!important;
  }
  .fde-hero p.lead{
    margin-bottom:22px!important;
    font-size:17px!important;line-height:1.85!important;
  }
  .fde-hero .btns{gap:8px!important;}
  .fde-hero .btns .sub-link{font-size:15px!important;padding:5px!important;}
  .fde-hero .hero-training-visual{
    width:calc(100% - 8px)!important;margin:2px auto 0!important;
  }
  .fde-hero .hero-training-visual::before{
    inset:-9px 10px 12px -9px!important;border-radius:20px!important;
  }
  .fde-hero .hero-training-slides{
    aspect-ratio:4/3;border-radius:18px!important;
    box-shadow:0 18px 42px rgba(20,82,204,.18),0 6px 16px rgba(11,31,68,.1);
  }
  .fde-hero .hero-training-nav{
    position:absolute;right:10px;bottom:10px;
    width:auto;margin:0;padding:7px 9px 12px;
  }
  .fde-hero .hero-training-note{
    position:relative;left:auto;bottom:auto;max-width:none;
    margin:12px 0 0;padding:15px 18px;border-radius:14px;
    box-shadow:0 10px 26px rgba(11,31,68,.12);
  }
  .fde-hero .hero-training-note strong{font-size:16px!important;line-height:1.55;}
  .fde-hero .hero-training-note span{font-size:15px!important;line-height:1.75;}
  .fde-hero .hero-badges{margin-top:22px!important;gap:10px!important;}
  .fde-hero .hero-badge{padding:15px 17px!important;}
  .fde-hero .hero-badge strong{font-size:16px!important;}
  .fde-hero .hero-badge span{font-size:15px!important;line-height:1.65;}

  .problem-item,.solution-card,.subservice-card,.effect-card,
  .program-card,.level-card,.who-card,.format-card,.risk-card,
  .impact-card,.case-card,.why-card,.flow-card,.faq-details,
  .subsidy-box,.lead-time,.prep{padding-left:20px!important;padding-right:20px!important;}

  .faq-details{padding-top:18px!important;padding-bottom:18px!important;}
  .faq-details summary{font-size:17px!important;line-height:1.65!important;align-items:flex-start!important;}
  .faq-details summary .pm{margin-top:1px;}

  .price-table{display:block;background:transparent!important;box-shadow:none!important;overflow:visible!important;}
  .price-table thead{display:none;}
  .price-table tbody,.price-table tr,.price-table td{display:block;width:100%!important;}
  .price-table tr{background:#fff;border:1px solid var(--blue-100);border-radius:10px;margin-bottom:14px;padding:16px 18px;box-shadow:var(--shadow-sm);}
  .price-table td{border:0!important;padding:0!important;}
  .price-table td.price{text-align:left!important;margin-top:12px;padding-top:12px!important;border-top:1px solid var(--blue-100)!important;white-space:normal!important;}

  .company-table,.company-table tbody,.company-table tr,.company-table th,.company-table td{display:block;width:100%!important;}
  .company-table tr{padding:15px 0;border-bottom:1px solid var(--gray-200);}
  .company-table th,.company-table td{border:0!important;padding:0!important;}
  .company-table th{margin-bottom:6px;}

  .form-box .head{padding:18px 20px!important;align-items:flex-start!important;}
  .form-box iframe{width:100%!important;min-width:0!important;}
  .hearing-point{grid-template-columns:1fr!important;gap:6px!important;}

  .cta-banner{padding-top:64px!important;padding-bottom:64px!important;}
  .cta-banner h2{font-size:25px!important;line-height:1.5;}
  footer.site-footer{padding-top:48px;}
  .foot-grid{gap:30px;}

  .mobile-cta{padding:9px 12px calc(9px + env(safe-area-inset-bottom))!important;}
  .mobile-cta .btn{font-size:14px!important;padding:11px 12px!important;}
  body:has(.mobile-cta){padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;}
}

@media(max-width:360px){
  header.site-header .logo{gap:6px;font-size:16px;}
  header.site-header .logo-svg{width:32px!important;height:32px!important;}
  header.site-header .logo small{font-size:9px!important;letter-spacing:.02em;}
  header.site-header .nav-cta{font-size:12px!important;padding:8px 9px!important;}
}

/* AI support feature panels */
.claude-card p,
.claude-feature p{font-size:16.5px!important;line-height:1.9!important;}
.claude-feature h4{font-size:17px!important;}
.claude-badge{font-size:14px!important;}

/* Standalone recruit page */
body main .sec p,
body main .sec li,
body main .sec dd{
  font-size:17px!important;
  line-height:1.95!important;
}

body main .sec .lead,
body main .sec .hero__lead{
  font-size:18px!important;
  line-height:2!important;
}

.topbar .nav a,
.topbar .btn,
.hero .btn,
.final .btn{font-size:16px!important;}

.hero__note,
.spec__row .sub,
.about .site{font-size:15px!important;}

.eyebrow,
.hero__eyebrow,
.sign,
.ulist li .no,
.callout .tag,
.card .cno,
.spec__row dt{font-size:14px!important;}

.foot__addr,
.foot__col a{font-size:15px!important;line-height:1.85!important;}
.foot__col .sub,
.foot__legal a,
.foot__cc{font-size:14px!important;}
.foot__brand .fjp,
.foot__col h4{font-size:13px!important;}

@media(max-width:900px){
  body{font-size:17px;}
  .nav-cta,
  .topbar .btn{font-size:15px!important;}
  section.fade th,
  section.fade td,
  .company-table th,
  .company-table td,
  .cur-table th,
  .cur-table td,
  .price-table th,
  .price-table td{font-size:16px!important;}
}
