
:root{--dir-navy:#071827;--dir-blue:#0f3b5f;--dir-sky:#38bdf8;--dir-emerald:#10b981;--dir-gold:#d4af37;--dir-sand:#f8f3e7;--dir-ink:#0f172a;}
html{scroll-behavior:smooth} body{font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--dir-ink);} 
.dir-glass{background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.55);box-shadow:0 16px 50px rgba(15,23,42,.12)}
.dir-gradient{background:radial-gradient(circle at top left,rgba(56,189,248,.28),transparent 32%),radial-gradient(circle at 80% 20%,rgba(212,175,55,.24),transparent 30%),linear-gradient(135deg,#071827 0%,#0f3b5f 52%,#0b5c7a 100%)}
.dir-gold{color:var(--dir-gold)} .dir-container{max-width:1180px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
.dir-card{border:1px solid #e2e8f0;border-radius:1.5rem;background:#fff;box-shadow:0 14px 40px rgba(15,23,42,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;overflow:hidden}
.dir-card:hover{transform:translateY(-4px);box-shadow:0 22px 60px rgba(15,23,42,.16);border-color:#bae6fd}
.dir-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.9rem 1.25rem;font-weight:800;transition:.2s;white-space:nowrap}.dir-btn-primary{background:#0f172a;color:#fff}.dir-btn-primary:hover{background:#1e293b}.dir-btn-gold{background:linear-gradient(135deg,#f7d774,#d4af37);color:#111827}.dir-btn-gold:hover{filter:brightness(1.03);transform:translateY(-1px)}.dir-btn-line{background:#06c755;color:#fff}.dir-btn-line:hover{filter:brightness(.95)}
.dir-kicker{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:#0ea5e9}.dir-section-title{font-size:clamp(1.85rem,3vw,3rem);line-height:1.18;font-weight:900;letter-spacing:-.04em;color:#0f172a}
.dir-faq details{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;padding:1rem 1.15rem}.dir-faq details+details{margin-top:.75rem}.dir-faq summary{cursor:pointer;font-weight:800;color:#0f172a}.dir-faq p{margin-top:.75rem;color:#475569;line-height:1.9;font-size:.95rem}
.dir-link-grid a{display:block;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;padding:1rem;transition:.2s}.dir-link-grid a:hover{border-color:#7dd3fc;box-shadow:0 12px 35px rgba(15,23,42,.10);transform:translateY(-2px)}
.dir-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .7rem;background:#ecfeff;color:#0369a1;border:1px solid #bae6fd;font-size:.78rem;font-weight:800}.dir-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(15,23,42,.92);backdrop-filter:blur(12px);padding:.65rem 1rem;display:none}@media(max-width:768px){.dir-sticky-cta{display:flex;gap:.55rem;justify-content:center}.dir-sticky-cta a{font-size:.82rem;padding:.72rem .8rem}.dir-mobile-safe{padding-bottom:5rem}}

/* =========================================================
   v3.7 site structure / responsive design cleanup
   Base: v3.5. 目的：既存コンテンツを壊さず、全ページ共通の表示品質を統一。
   ========================================================= */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:88px;
}
body{
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
}
p,li,dd,dt,summary,.dir-faq p,.dir-card p,.dir-link-grid a,td,th{
  text-wrap:pretty;
}
h1,h2,h3,h4,.dir-section-title{
  text-wrap:balance;
  line-break:strict;
}
.dir-site-header,
.dir-site-header *{
  box-sizing:border-box;
}
.dir-site-header a,
.dir-site-header nav a,
.dir-btn,
.dir-badge,
.dir-nowrap{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
}
.dir-header-inner{
  width:100%;
  max-width:1680px;
  min-height:72px;
}
.dir-header-logo{
  min-width:max-content;
}
.dir-header-logo-img{
  height:clamp(42px,3.4vw,56px) !important;
}
.dir-header-copy p{
  white-space:nowrap;
  word-break:keep-all;
  line-height:1.25;
}
.dir-global-nav{
  flex:1 1 auto;
  justify-content:center;
  min-width:0;
  gap:clamp(.08rem,.35vw,.35rem);
}
.dir-global-nav a{
  flex:0 0 auto;
  line-height:1.2;
  padding:.58rem clamp(.46rem,.72vw,.78rem);
  font-size:clamp(12px,.76vw,14px);
}
.dir-header-actions{
  min-width:max-content;
}
.dir-btn{
  min-height:46px;
  min-width:112px;
  text-align:center;
  line-height:1.22;
  padding:.82rem 1.2rem;
}
.dir-header-actions .dir-btn{
  min-width:auto;
  min-height:44px;
  padding:.74rem clamp(.92rem,1vw,1.2rem);
}
@media (max-width:1279px){
  .dir-global-nav{display:none !important;}
  #menu-toggle{display:inline-flex !important;}
}
@media (min-width:1280px){
  .dir-global-nav{display:flex !important;}
  #menu-toggle{display:none !important;}
}
@media (max-width:1023px){
  .dir-header-copy{display:none !important;}
}
@media (max-width:767px){
  .dir-header-inner{
    min-height:64px;
    padding-top:.6rem !important;
    padding-bottom:.6rem !important;
  }
  .dir-header-actions{display:none !important;}
  .dir-btn{min-width:104px;}
}
#mobile-menu a{
  white-space:nowrap;
  word-break:keep-all;
}
#mobile-menu .dir-btn{
  width:100%;
  min-width:0;
}
/* Hero fine tuning without changing meta/HTML text */
main > section:first-child.relative.overflow-hidden.text-white,
.dir-hero{
  min-height:calc(100vh - 72px);
}
main > section:first-child h1{
  text-wrap:balance;
  word-break:keep-all;
  overflow-wrap:normal;
}
main > section:first-child p{
  text-wrap:pretty;
}
main > section:first-child .dir-btn{
  min-width:122px;
}
@media (max-width:767px){
  main > section:first-child.relative.overflow-hidden.text-white,
  .dir-hero{min-height:auto;}
  main > section:first-child .dir-btn{
    flex:1 1 calc(50% - .6rem);
    min-width:0;
  }
}
@media (max-width:420px){
  main > section:first-child .dir-btn{flex-basis:100%;}
}
/* Shared lower-page polish */
.dir-container,
.max-w-7xl,
.max-w-6xl,
.max-w-5xl,
.max-w-4xl{
  box-sizing:border-box;
}
img,video{max-width:100%;}
.prose, article, section{
  overflow-wrap:break-word;
}
