
:root {
  --ink:#0e1824;--ink2:#2c3e55;--muted:#6b7f96;--pale:#f5f8fc;--white:#ffffff;
  --border:#dde6f0;--blue:#1559c8;--blue-l:#3b82f6;--teal:#0d7a6a;--amber:#c96b00;
  --logistics:#0369a1;--distribution:#b45309;
  --sh:0 2px 20px rgba(14,24,36,.07);--sh2:0 12px 48px rgba(14,24,36,.13);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--pale);color:var(--ink);line-height:1.7;overflow-x:hidden;}

@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideR{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}
@keyframes pulse2{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
@keyframes lineW{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes cardIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes modalIn{from{opacity:0;transform:scale(.94) translateY(16px)}to{opacity:1;transform:none}}
@keyframes videoCrossfade{0%{opacity:0}8%{opacity:1}42%{opacity:1}50%{opacity:0}100%{opacity:0}}

/* HEADER */
header{
  position:fixed;top:0;left:0;right:0;z-index:300;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 48px;
  background:transparent;
  border-bottom:none;
  transition:background .3s;
}
header.header-scrolled{
  background:rgba(255,255,255,.2);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;cursor:pointer;}
.logo-mark{
  width:36px;height:36px;border-radius:10px;
  background:linear-gradient(135deg,#1559c8 0%,#0369a1 100%);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;font-weight:900;
  box-shadow:0 4px 14px rgba(21,89,200,.35);
}
.lt{font-size:14px;font-weight:700;color:var(--ink);}
.ls{font-size:11px;color:var(--muted);}
header:not(.header-scrolled) .lt{color:#fff;}
header:not(.header-scrolled) .ls{color:rgba(255,255,255,.7);}
nav{display:flex;align-items:center;gap:6px;}
.nav-pill{padding:7px 16px;border-radius:99px;font-size:12px;font-weight:600;color:var(--muted);border:none;background:none;cursor:pointer;transition:all .2s;font-family:'Noto Sans JP',sans-serif;text-decoration:none;display:inline-flex;align-items:center;}
.nav-pill:hover,.nav-pill.nav-current{background:var(--pale);color:var(--ink);}
header:not(.header-scrolled) .nav-pill{color:rgba(255,255,255,.8);}
header:not(.header-scrolled) .nav-pill:hover,
header:not(.header-scrolled) .nav-pill.nav-current{background:rgba(255,255,255,.15);color:#fff;}
.nav-cta{padding:8px 20px;border-radius:99px;font-size:12px;font-weight:700;background:var(--blue);color:#fff;border:none;cursor:pointer;font-family:'Noto Sans JP',sans-serif;box-shadow:0 4px 14px rgba(21,89,200,.3);transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(21,89,200,.4);}

/* PAGE BANNER */
.page-banner{
  background:
    linear-gradient(135deg,rgba(15,36,88,.86),rgba(21,89,200,.7)),
    var(--page-banner-image,linear-gradient(135deg,#0f2458,#1559c8));
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  padding:192px 48px 144px;
  text-align:center;
}
.page-banner-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;color:#7dd3fc;text-transform:uppercase;margin-bottom:12px;}
.page-banner-h1{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:600;color:#fff;line-height:1.2;}
.page-banner-about{--page-banner-image:url('../img/hero-about.jpg');}
.page-banner-feature{--page-banner-image:url('../img/hero-feature.jpg');}
.page-banner-service{--page-banner-image:url('../img/hero-service.jpg');}
.page-banner-hiw{--page-banner-image:url('../img/hero-hiw.jpg');}
.page-banner-matching{--page-banner-image:url('../img/hero-matching.jpg');}
.page-banner-contact{--page-banner-image:url('../img/index-hero-learning.jpg');}

/* HERO */
.hero{
  position:relative;min-height:680px;
  display:flex;flex-direction:column;justify-content:center;
  overflow:hidden;background:#060e1e;
}
.hero-videos{position:absolute;inset:0;z-index:0;}
.vid-layer{position:absolute;inset:0;opacity:0;animation:videoCrossfade 20s linear infinite;}
.vid-layer:nth-child(1){animation-delay:0s;}
.vid-layer:nth-child(2){animation-delay:10s;}
.vid-layer img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.hero-glow{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse 60% 50% at 20% 50%,rgba(21,89,200,.22) 0%,transparent 70%),
    radial-gradient(ellipse 40% 60% at 80% 20%,rgba(13,122,106,.15) 0%,transparent 70%),
    linear-gradient(160deg,rgba(6,14,30,.92) 0%,rgba(6,14,30,.55) 50%,rgba(6,14,30,.78) 100%);
}
.hero-lines{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    repeating-linear-gradient(0deg,transparent 0,transparent 59px,rgba(255,255,255,.025) 59px,rgba(255,255,255,.025) 60px),
    repeating-linear-gradient(90deg,transparent 0,transparent 79px,rgba(255,255,255,.015) 79px,rgba(255,255,255,.015) 80px);
}
.hero-inner{
  position:relative;z-index:10;
  max-width:1060px;margin:0 auto;padding:0 48px;
  display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:center;
  width:100%;
}
.hero-kicker{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(125,211,252,.3);background:rgba(125,211,252,.08);
  color:#7dd3fc;font-size:11px;font-weight:700;letter-spacing:.12em;
  padding:6px 16px;border-radius:99px;margin-bottom:28px;
  animation:slideR .7s .1s both;
}
.live-dot{width:7px;height:7px;border-radius:50%;background:#34d399;animation:pulse2 2s infinite;}
.hero-h1{
  font-family:'Cormorant Garamond',serif;
  font-size:68px;font-weight:600;color:#fff;
  line-height:1.08;margin-bottom:10px;
  animation:fadeUp .9s .25s cubic-bezier(.16,1,.3,1) both;
}
.hero-h1 em{font-style:italic;color:#7dd3fc;}
.hero-h1 strong{font-weight:600;display:block;}
.hero-accent-line{
  width:72px;height:3px;background:linear-gradient(90deg,#7dd3fc,#34d399);
  border-radius:2px;margin:24px 0;transform-origin:left;
  animation:lineW .8s .7s cubic-bezier(.16,1,.3,1) both;
}
.hero-sub{color:rgba(255,255,255,.68);font-size:16px;line-height:1.9;max-width:420px;animation:fadeUp .8s .4s both;}
.hero-cta-row{display:flex;align-items:center;gap:16px;margin-top:36px;animation:fadeUp .8s .55s both;}
.btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(135deg,#1559c8,#0369a1);color:#fff;
  font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:700;
  padding:14px 28px;border-radius:12px;border:none;cursor:pointer;
  box-shadow:0 6px 24px rgba(21,89,200,.45);transition:all .25s;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(21,89,200,.55);}
.btn-primary .arrow{transition:transform .2s;}
.btn-primary:hover .arrow{transform:translateX(4px);}
.btn-ghost{color:rgba(255,255,255,.65);font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;cursor:pointer;background:none;border:none;font-family:'Noto Sans JP',sans-serif;transition:color .2s;}
.btn-ghost:hover{color:#fff;}
.hero-right{display:flex;flex-direction:column;gap:14px;animation:fadeUp .9s .4s both;}
.h-card{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:18px 22px;backdrop-filter:blur(12px);
  display:flex;align-items:center;gap:16px;
}
.h-card:nth-child(1){animation:float2 5s 0s ease-in-out infinite;margin-left:0;}
.h-card:nth-child(2){animation:float2 5s .9s ease-in-out infinite;margin-left:28px;}
.h-card:nth-child(3){animation:float2 5s 1.8s ease-in-out infinite;}
.h-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.h-card-icon.blue{background:rgba(59,130,246,.2);}
.h-card-icon.teal{background:rgba(13,122,106,.2);}
.h-card-icon.amber{background:rgba(201,107,0,.2);}
.h-card-num{font-size:28px;font-weight:700;color:#fff;line-height:1;}
.h-card-lbl{font-size:11px;color:rgba(255,255,255,.6);margin-top:2px;}
.hero-scroll{
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,.4);font-size:11px;letter-spacing:.1em;
  animation:fadeIn 1s 1.2s both;
}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,.4),transparent);animation:float2 2s ease-in-out infinite;}

/* ACHIEVEMENT STRIP */
.ach-strip{background:linear-gradient(90deg,#0f2458 0%,#1559c8 45%,#0369a1 100%);padding:0 48px;}
.ach-inner{max-width:1060px;margin:0 auto;display:flex;align-items:stretch;}
.ach-item{flex:1;padding:22px 24px;text-align:center;border-right:1px solid rgba(255,255,255,.12);}
.ach-item:last-child{border-right:none;}
.ach-num{display:block;font-size:28px;font-weight:700;color:#fff;line-height:1;}
.ach-unit{font-size:13px;font-weight:400;}
.ach-lbl{display:block;font-size:11px;color:rgba(255,255,255,.65);margin-top:4px;}

/* HOW IT WORKS */
.hiw{padding:80px 48px;background:var(--white);border-bottom:1px solid var(--border);}
.section-label{text-align:center;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--blue);text-transform:uppercase;margin-bottom:12px;}
.section-title{text-align:center;font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:600;color:var(--ink);margin-bottom:48px;line-height:1.25;}
.hiw-steps{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.hiw-steps::before{content:'';position:absolute;top:28px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,var(--blue),var(--teal));border-radius:2px;z-index:0;}
.hiw-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 12px;position:relative;z-index:1;}
.hiw-num{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#1559c8,#0369a1);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 4px 18px rgba(21,89,200,.35);flex-shrink:0;}
.hiw-step-title{font-size:13px;font-weight:700;margin-bottom:6px;color:var(--ink);}
.hiw-step-desc{font-size:12px;color:var(--muted);line-height:1.6;}

/* PHOTO STRIP */
.photo-strip{display:grid;grid-template-columns:2fr 1fr 1fr;height:280px;overflow:hidden;}
.photo-strip-item{overflow:hidden;position:relative;}
.photo-strip-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.46,.45,.94);}
.photo-strip-item:hover img{transform:scale(1.05);}
.photo-strip-item::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(14,24,36,.4) 0%,transparent 60%);}
.photo-strip-caption{position:absolute;bottom:16px;left:18px;z-index:2;color:#fff;font-size:12px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5);}

/* MATCHING */
.match-section{max-width:1060px;margin:0 auto;padding:72px 48px 100px;}
.match-header{margin-bottom:48px;}
.match-header .section-label{text-align:left;}
.match-header .section-title{text-align:left;margin-bottom:8px;}
.match-sub{font-size:14px;color:var(--muted);margin-top:0;}

/* STICKY PROGRESS */
.matching-sticky{
  position:sticky;
  top:65px;
  z-index:150;
  background:var(--pale);
  padding:14px 0 10px;
  margin-bottom:8px;
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 16px rgba(14,24,36,.06);
}

/* PROGRESS */
.progress-wrap{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:20px 28px;margin-bottom:32px;box-shadow:var(--sh);}
.progress-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:10px;}
.progress-label span:last-child{color:var(--blue);font-size:14px;font-weight:700;}
.progress-track{height:6px;background:var(--border);border-radius:3px;overflow:hidden;}
.progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--teal));transition:width .5s cubic-bezier(.16,1,.3,1);width:0%;}

/* STEP PILLS */
.step-pills{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap;}
.step-pill{display:flex;align-items:center;gap:8px;padding:8px 18px;border-radius:99px;font-size:13px;font-weight:600;border:1.5px solid var(--border);background:var(--white);color:var(--muted);transition:all .3s;box-shadow:var(--sh);}
.sp-num{width:20px;height:20px;border-radius:50%;background:var(--border);color:var(--muted);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0;}
.step-pill.active{border-color:var(--blue);color:var(--blue);}
.step-pill.active .sp-num{background:var(--blue);color:#fff;}
.step-pill.done{border-color:var(--teal);color:var(--teal);}
.step-pill.done .sp-num{background:var(--teal);color:#fff;}

/* PANEL */
.panel{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:32px;margin-bottom:24px;box-shadow:var(--sh);animation:fadeUp .45s ease both;}
.panel-hd{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.panel-hd-num{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--blue),#0369a1);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.panel-hd-text{font-size:15px;font-weight:700;color:var(--ink);}
.panel-hd-sub{font-size:12px;color:var(--muted);margin-top:1px;}

/* INDUSTRY CARDS */
.ind-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ind-card{border-radius:16px;border:2px solid var(--border);overflow:hidden;cursor:pointer;background:var(--white);transition:all .25s;position:relative;}
.ind-card:hover{transform:translateY(-3px);box-shadow:var(--sh2);}
.ind-card.active.logistics{border-color:var(--logistics);box-shadow:0 0 0 4px rgba(3,105,161,.12);}
.ind-card.active.distribution{border-color:var(--distribution);box-shadow:0 0 0 4px rgba(180,83,9,.12);}
.ind-card-img{height:140px;overflow:hidden;position:relative;}
.ind-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
.ind-card:hover .ind-card-img img{transform:scale(1.06);}
.ind-card-img-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 65%);}
.ind-badge{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;color:#fff;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);padding:3px 10px;border-radius:99px;}
.ind-card-body{padding:16px 18px 18px;}
.ind-card-name{font-size:16px;font-weight:700;margin-bottom:4px;}
.ind-card-desc{font-size:12px;color:var(--muted);}
.ind-card-check{position:absolute;bottom:14px;right:16px;width:24px;height:24px;border-radius:50%;color:#fff;display:none;align-items:center;justify-content:center;font-size:13px;}
.ind-card.active.logistics .ind-card-check{display:flex;background:var(--logistics);}
.ind-card.active.distribution .ind-card-check{display:flex;background:var(--distribution);}

/* LAYER CARDS */
.layer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.layer-card{border:2px solid var(--border);border-radius:16px;padding:20px 16px;text-align:center;cursor:pointer;background:var(--white);transition:all .22s;font-family:'Noto Sans JP',sans-serif;}
.layer-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:var(--sh);}
.layer-card.active{border-color:var(--blue);background:linear-gradient(145deg,#eff6ff,#f0f9ff);box-shadow:0 0 0 3px rgba(21,89,200,.1);}
.lc-img{width:64px;height:64px;border-radius:50%;object-fit:cover;margin:0 auto 12px;display:block;border:3px solid var(--border);transition:border-color .2s;}
.layer-card.active .lc-img{border-color:var(--blue);}
.lc-title{font-size:15px;font-weight:700;margin-bottom:4px;}
.lc-desc{font-size:11px;color:var(--muted);line-height:1.5;}
.lc-tag{display:inline-block;margin-top:10px;font-size:10px;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--border);color:var(--muted);transition:all .2s;}
.layer-card.active .lc-tag{background:rgba(21,89,200,.1);color:var(--blue);}

/* CONCERNS */
.concern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.concern-tag{padding:20px 16px 13px;border-radius:12px;border:1.5px solid var(--border);background:var(--pale);cursor:pointer;font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--muted);text-align:left;display:flex;align-items:center;gap:10px;transition:all .18s;line-height:1.4;}
.concern-tag .ti{font-size:18px;flex-shrink:0;}
/* 業種バッジ */
.concern-ind-wrap{position:absolute;top:5px;left:5px;display:flex;gap:2px;z-index:1;}
.concern-ind-badge{font-size:9px;padding:1px 5px;border-radius:99px;font-weight:700;line-height:1.4;}
.concern-ind-badge.logistics{background:rgba(3,105,161,.12);color:#0369a1;border:1px solid rgba(3,105,161,.25);}
.concern-ind-badge.distribution{background:rgba(180,83,9,.12);color:#b45309;border:1px solid rgba(180,83,9,.25);}
.concern-tag:hover{border-color:var(--blue);color:var(--ink);background:#f0f6ff;transform:translateX(2px);}
.concern-tag.active{border-color:var(--blue);background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--ink);font-weight:600;box-shadow:0 0 0 3px rgba(21,89,200,.1);}

/* RESULTS */
.results-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.results-title{font-size:18px;font-weight:700;}
.results-count{display:flex;align-items:baseline;gap:4px;color:var(--muted);font-size:13px;}
.results-count strong{color:var(--blue);font-size:22px;font-weight:700;}

/* COURSE CARD */
.course-card{background:var(--white);border:1px solid var(--border);border-radius:16px;margin-bottom:12px;cursor:pointer;transition:all .22s;overflow:hidden;box-shadow:var(--sh);display:grid;grid-template-columns:5px 1fr auto;animation:cardIn .35s ease both;}
.course-card:hover{transform:translateY(-3px);box-shadow:var(--sh2);border-color:#b8ccee;}
.cc-accent{background:var(--logistics);}
.course-card.distribution .cc-accent{background:var(--distribution);}
.cc-body{padding:20px 22px;}
.cc-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;}
.cc-id{font-size:10px;font-weight:700;color:var(--muted);font-family:monospace;letter-spacing:.06em;flex-shrink:0;margin-top:3px;background:var(--pale);padding:2px 8px;border-radius:4px;border:1px solid var(--border);}
.cc-name{font-size:15px;font-weight:700;flex:1;line-height:1.4;}
.cc-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px;align-items:center;}
.badge-layer{font-size:10px;font-weight:700;padding:3px 9px;border-radius:99px;background:rgba(21,89,200,.08);color:var(--blue);border:1px solid rgba(21,89,200,.18);}
.badge-concern{font-size:10px;padding:3px 9px;border-radius:99px;background:rgba(13,122,106,.08);color:var(--teal);border:1px solid rgba(13,122,106,.18);}
.cc-desc{font-size:13px;color:var(--muted);line-height:1.65;}
.cc-arrow{align-self:center;padding:0 20px 0 0;font-size:20px;color:var(--border);transition:all .22s;}
.course-card:hover .cc-arrow{color:var(--blue);transform:translateX(4px);}

/* EMPTY */
.empty{text-align:center;padding:64px 20px;color:var(--muted);}
.empty-icon{font-size:52px;margin-bottom:16px;display:block;animation:float2 3s ease-in-out infinite;}
.empty p{font-size:14px;line-height:1.9;}

/* TESTIMONIALS */
.testimonials{background:linear-gradient(135deg,#0f2458 0%,#1559c8 60%,#0369a1 100%);padding:72px 48px;}
.testimonials .section-label{color:#7dd3fc;}
.testimonials .section-title{color:#fff;}
.testi-grid{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.testi-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px;backdrop-filter:blur(8px);}
.testi-quote{font-size:32px;color:rgba(125,211,252,.5);line-height:1;margin-bottom:12px;}
.testi-text{font-size:14px;color:rgba(255,255,255,.82);line-height:1.8;margin-bottom:20px;}
.testi-person{display:flex;align-items:center;gap:12px;}
.testi-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.2);}
.testi-name{font-size:13px;font-weight:700;color:#fff;}
.testi-role{font-size:11px;color:rgba(255,255,255,.55);}

/* MODAL */
.modal-ov{display:none;position:fixed;inset:0;background:rgba(6,14,30,.65);backdrop-filter:blur(8px);z-index:500;align-items:center;justify-content:center;padding:24px;}
.modal-ov.open{display:flex;}
.modal{background:var(--white);border-radius:24px;max-width:640px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 24px 80px rgba(6,14,30,.3);animation:modalIn .3s cubic-bezier(.16,1,.3,1);position:relative;}
.modal-hero{position:relative;height:200px;overflow:hidden;border-radius:22px 22px 0 0;}
.modal-hero img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
.modal-hero:hover img{transform:scale(1.04);}
.modal-hero-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,14,30,.6) 0%,transparent 55%);}
.modal-hero-tag{position:absolute;bottom:16px;left:20px;font-size:11px;font-weight:700;color:#fff;padding:5px 14px;border-radius:99px;backdrop-filter:blur(6px);}
.modal-hero-tag.logistics{background:rgba(3,105,161,.8);}
.modal-hero-tag.distribution{background:rgba(180,83,9,.8);}
.modal-body{padding:30px 36px 36px;}
.modal-id{font-size:11px;color:var(--muted);font-family:monospace;margin-bottom:6px;}
.modal-title{font-size:22px;font-weight:700;line-height:1.3;margin-bottom:20px;}
.modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.9);border:none;cursor:pointer;color:var(--ink);font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.15);}
.modal-close:hover{background:#fff;transform:scale(1.1);}

/* SCHEDULE */
.sched-wrap{background:var(--pale);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-top:4px;}
.sched-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.sched-month-label{font-size:14px;font-weight:700;color:var(--ink);}
.sched-nav-btn{background:var(--white);border:1px solid var(--border);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .15s;}
.sched-nav-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue);}
.sched-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px;}
.sched-dow{font-size:10px;font-weight:700;text-align:center;color:var(--muted);padding:4px 0;}
.sched-day{
  aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:12px;font-weight:500;cursor:default;position:relative;
  background:var(--white);border:1px solid var(--border);color:var(--muted);
  transition:all .15s;padding:3px 2px;
}
.sched-day.empty{background:transparent;border-color:transparent;}
.sched-day.available{background:#eff6ff;border-color:rgba(21,89,200,.25);color:var(--blue);cursor:pointer;font-weight:700;}
.sched-day.available:hover{background:var(--blue);color:#fff;transform:scale(1.08);box-shadow:0 4px 12px rgba(21,89,200,.3);}
.sched-day.available::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--blue);}
.sched-day.available:hover::after{background:#fff;}
.sched-day.full{background:#fff5f5;border-color:rgba(220,38,38,.2);color:#dc2626;font-weight:700;}
.sched-day.full::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#dc2626;}
.sched-day.applied{background:#f0fdf4;border-color:rgba(13,122,106,.25);color:var(--teal);font-weight:700;}
.sched-day.applied::after{content:'✓';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--teal);}
.sched-day.selected{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 14px rgba(21,89,200,.4);transform:scale(1.08);}
.sched-day.selected::after{background:#fff;}
.sched-day.today{box-shadow:0 0 0 2px var(--blue);}
/* カレンダー内の日付数字・講師写真 */
.sched-day-num{display:block;font-size:11px;font-weight:600;line-height:1;margin-bottom:3px;}
.sched-day-avatar{
  width:28px;height:28px;border-radius:50%;object-fit:cover;
  display:block;margin:0 auto;
  border:1.5px solid rgba(255,255,255,.8);
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.sched-day.available .sched-day-avatar{border-color:var(--blue);}
.sched-day.full .sched-day-avatar{border-color:#dc2626;}
.sched-day.applied .sched-day-avatar{border-color:var(--teal);}
.sched-day.selected .sched-day-avatar{border-color:#fff;}
.sched-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;min-height:60px;}
.sched-item{
  background:var(--white);border:1px solid var(--border);border-radius:10px;
  padding:12px 14px;display:flex;align-items:center;gap:12px;
  animation:fadeUp .25s ease;
}
.sched-item-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.sched-item-dot.available{background:var(--blue);}
.sched-item-dot.full{background:#dc2626;}
.sched-item-dot.applied{background:var(--teal);}
.sched-item-info{flex:1;}
.sched-item-date{font-size:13px;font-weight:700;color:var(--ink);}
.sched-item-detail{font-size:11px;color:var(--muted);margin-top:1px;}
.sched-item-status{font-size:10px;font-weight:700;padding:3px 10px;border-radius:99px;}
.sched-item-status.available{background:rgba(21,89,200,.1);color:var(--blue);}
.sched-item-status.full{background:rgba(220,38,38,.1);color:#dc2626;}
.sched-item-status.applied{background:rgba(13,122,106,.1);color:var(--teal);}
.sched-empty-msg{text-align:center;padding:16px;font-size:12px;color:var(--muted);}
.sched-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);flex-wrap:wrap;}
.sched-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;vertical-align:middle;}
.sched-legend-dot.available{background:var(--blue);}
.sched-legend-dot.full{background:#dc2626;margin-left:14px;}
.sched-legend-dot.applied{background:var(--teal);margin-left:14px;}

/* INSTRUCTOR PANEL */
.instructor-panel{
  margin-top:16px;
  background:linear-gradient(135deg,#f0f6ff,#f5f8fc);
  border:1.5px solid rgba(21,89,200,.18);
  border-radius:14px;padding:18px 20px;
  animation:fadeUp .3s ease;
}
.instructor-panel-hd{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.instructor-panel-title{
  font-size:13px;font-weight:700;color:var(--blue);
  display:flex;align-items:center;gap:6px;
}
.instructor-panel-date{font-size:11px;color:var(--muted);}
.instructor-list{display:flex;flex-direction:column;gap:10px;}
.instructor-card{
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;display:flex;align-items:center;gap:14px;
  transition:all .18s;cursor:default;
}
.instructor-card:hover{box-shadow:var(--sh);transform:translateX(2px);}
.instructor-avatar{
  width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2.5px solid var(--border);
}
.instructor-info{flex:1;}
.instructor-name{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:2px;}
.instructor-role{font-size:11px;color:var(--muted);margin-bottom:6px;}
.instructor-tags{display:flex;gap:5px;flex-wrap:wrap;}
.instructor-tag{font-size:10px;padding:2px 8px;border-radius:99px;background:rgba(21,89,200,.08);color:var(--blue);border:1px solid rgba(21,89,200,.15);}
.instructor-rating{
  flex-shrink:0;text-align:center;
}
.instructor-stars{font-size:13px;color:#f59e0b;letter-spacing:-1px;}
.instructor-rating-num{font-size:11px;font-weight:700;color:var(--muted);margin-top:2px;}

/* APPLY BUTTON */
.modal-apply-btn{
  width:100%;padding:16px;border-radius:14px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--blue),#0369a1);
  color:#fff;font-family:'Noto Sans JP',sans-serif;font-size:15px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 6px 24px rgba(21,89,200,.35);transition:all .25s;margin-top:4px;
}
.modal-apply-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(21,89,200,.45);}
.apply-arrow{font-size:18px;transition:transform .2s;}
.modal-apply-btn:hover .apply-arrow{transform:translateX(4px);}
.modal-sec{margin-bottom:22px;}
.modal-sec-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.modal-desc-box{font-size:14px;color:var(--ink);line-height:1.8;background:var(--pale);border-radius:12px;padding:16px 18px;border:1px solid var(--border);}
.modal-layers{display:flex;gap:8px;}
.ml-badge{padding:8px 18px;border-radius:10px;border:1.5px solid var(--border);font-size:13px;font-weight:600;color:var(--muted);}
.ml-badge.active{border-color:var(--blue);background:rgba(21,89,200,.06);color:var(--blue);}

/* FOOTER */
footer{background:var(--ink);padding:56px 48px 32px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.footer-brand{}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer-brand-desc{font-size:12px;color:rgba(255,255,255,.4);line-height:1.8;margin-bottom:20px;}
.footer-contact-row{font-size:13px;color:rgba(255,255,255,.5);line-height:2;}
.footer-contact-row a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.footer-contact-row a:hover{color:#fff;}
.footer-col-title{font-size:11px;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.35);text-transform:uppercase;margin-bottom:16px;}
.footer-nav-list{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-nav-list a{font-size:13px;color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s;display:flex;align-items:center;gap:6px;}
.footer-nav-list a::before{content:'›';color:var(--blue-l);font-size:14px;}
.footer-nav-list a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.footer-bottom-links{display:flex;gap:24px;}
.footer-link{font-size:12px;color:rgba(255,255,255,.4);text-decoration:none;transition:color .2s;}
.footer-link:hover{color:rgba(255,255,255,.9);}
.footer-copy{font-size:12px;color:rgba(255,255,255,.3);}
@media(max-width:992px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr;}footer{padding:40px 20px 24px;}}

/* CHATBOT */
@keyframes chatPop{from{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:none}}
.chat-fab{
  position:fixed;bottom:28px;right:28px;z-index:400;
  width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--blue),#0369a1);
  color:#fff;font-size:24px;
  box-shadow:0 6px 24px rgba(21,89,200,.45);
  display:flex;align-items:center;justify-content:center;
  transition:all .25s;
}
.chat-fab:hover{transform:scale(1.1);box-shadow:0 10px 32px rgba(21,89,200,.55);}
.chat-fab-badge{
  position:absolute;top:-4px;right:-4px;
  width:18px;height:18px;border-radius:50%;
  background:#ef4444;color:#fff;font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
}
.chat-window{
  position:fixed;bottom:96px;right:28px;z-index:400;
  width:360px;max-height:520px;
  background:var(--white);border-radius:20px;
  box-shadow:0 20px 60px rgba(14,24,36,.18);
  border:1px solid var(--border);
  display:flex;flex-direction:column;
  opacity:0;pointer-events:none;transform:translateY(16px) scale(.95);
  transition:all .25s cubic-bezier(.16,1,.3,1);
}
.chat-window.open{opacity:1;pointer-events:all;transform:none;}
.chat-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px;
  background:linear-gradient(135deg,var(--blue),#0369a1);
  border-radius:18px 18px 0 0;
}
.chat-header-left{display:flex;align-items:center;gap:10px;}
.chat-header-avatar{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;font-size:18px;
}
.chat-header-title{font-size:14px;font-weight:700;color:#fff;}
.chat-header-sub{font-size:11px;color:rgba(255,255,255,.7);}
.chat-header-close{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.8);font-size:16px;padding:4px;border-radius:6px;transition:all .15s;}
.chat-header-close:hover{color:#fff;background:rgba(255,255,255,.15);}
.chat-messages{
  flex:1;overflow-y:auto;padding:16px;
  display:flex;flex-direction:column;gap:12px;
  min-height:180px;
}
.chat-msg{display:flex;align-items:flex-end;gap:8px;}
.chat-msg.user{flex-direction:row-reverse;}
.chat-avatar{width:28px;height:28px;border-radius:50%;background:var(--pale);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.chat-bubble{
  max-width:80%;padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.6;
  background:var(--pale);color:var(--ink);border:1px solid var(--border);
  border-bottom-left-radius:4px;
}
.chat-msg.user .chat-bubble{
  background:linear-gradient(135deg,var(--blue),#0369a1);
  color:#fff;border:none;border-bottom-right-radius:4px;border-bottom-left-radius:16px;
}
.chat-suggestions{
  display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 10px;
}
.chat-suggestions button{
  font-size:11px;font-weight:600;padding:5px 12px;border-radius:99px;
  border:1.5px solid var(--border);background:var(--pale);color:var(--muted);
  cursor:pointer;font-family:'Noto Sans JP',sans-serif;transition:all .15s;
}
.chat-suggestions button:hover{border-color:var(--blue);color:var(--blue);background:#eff6ff;}
.chat-inputrow{
  display:flex;gap:8px;padding:12px 14px;
  border-top:1px solid var(--border);
}
.chat-input{
  flex:1;padding:10px 14px;border-radius:10px;border:1.5px solid var(--border);
  font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--ink);
  background:var(--pale);outline:none;transition:border-color .2s;
}
.chat-input:focus{border-color:var(--blue);}
.chat-send{
  padding:10px 16px;border-radius:10px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--blue),#0369a1);color:#fff;
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;
  transition:all .2s;white-space:nowrap;
}
.chat-send:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(21,89,200,.35);}
/* チャット内コースカード */
.chat-course-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.chat-course-card{
  background:var(--white);border:1.5px solid var(--border);border-radius:10px;
  padding:10px 12px;cursor:pointer;transition:all .18s;
  border-left:3px solid var(--blue);
}
.chat-course-card:hover{border-color:var(--blue);background:#eff6ff;transform:translateX(2px);box-shadow:var(--sh);}
.chat-course-id{font-size:10px;font-weight:700;color:var(--muted);font-family:monospace;margin-bottom:3px;}
.chat-course-name{font-size:12px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:5px;}
.chat-course-badges{display:flex;gap:4px;flex-wrap:wrap;}
.chat-course-badge.layer{font-size:10px;padding:2px 7px;border-radius:99px;background:rgba(21,89,200,.08);color:var(--blue);border:1px solid rgba(21,89,200,.18);}
@media(max-width:400px){.chat-window{width:calc(100vw - 24px);right:12px;}}
.footer-logo{display:flex;align-items:center;gap:12px;}
.footer-lt{font-size:14px;font-weight:700;color:#fff;}
.footer-ls{font-size:11px;color:rgba(255,255,255,.4);}
.footer-links{margin-bottom:8px;}
.footer-link{font-size:12px;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.footer-link:hover{color:rgba(255,255,255,.9);}
.footer-copy{font-size:12px;color:rgba(255,255,255,.35);}

/*=====================================================*/
/* CONTACT MODAL                                       */
/*=====================================================*/
.contact-intro{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:24px;}
.contact-form{display:flex;flex-direction:column;gap:16px;}
.contact-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-field{display:flex;flex-direction:column;gap:6px;}
.contact-label{font-size:12px;font-weight:700;color:var(--ink);}
.contact-req{font-size:10px;font-weight:700;color:#ef4444;margin-left:4px;}
.contact-input{
  padding:11px 14px;border-radius:10px;border:1.5px solid var(--border);
  font-family:'Noto Sans JP',sans-serif;font-size:14px;color:var(--ink);
  background:var(--pale);outline:none;transition:border-color .2s;
}
.contact-input:focus{border-color:var(--blue);}
.contact-textarea{
  padding:11px 14px;border-radius:10px;border:1.5px solid var(--border);
  font-family:'Noto Sans JP',sans-serif;font-size:14px;color:var(--ink);
  background:var(--pale);outline:none;transition:border-color .2s;
  resize:vertical;min-height:100px;
}
.contact-textarea:focus{border-color:var(--blue);}
.contact-success{text-align:center;padding:40px 0;}
.contact-success-icon{font-size:48px;margin-bottom:16px;}
.contact-success-title{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.contact-success-desc{font-size:14px;color:var(--muted);line-height:1.8;}

/* RESPONSIVE */
/*=====================================================*/
/* contact-page                                        */
/*=====================================================*/
.contact-page-sec{padding:80px 48px 100px;background:var(--pale);}
.contact-page-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start;}
.contact-page-form-wrap{background:var(--white);border-radius:20px;padding:48px;box-shadow:var(--sh);}
.contact-page-title{font-size:24px;font-weight:700;color:var(--ink);margin:8px 0 12px;}
.contact-info-card{background:var(--white);border-radius:16px;padding:28px;box-shadow:var(--sh);margin-bottom:16px;}
.contact-info-card:last-child{margin-bottom:0;}
.contact-info-title{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;}
.contact-info-tel a{font-size:28px;font-weight:700;color:var(--blue);text-decoration:none;display:block;margin-bottom:4px;letter-spacing:.04em;}
.contact-info-tel a:hover{opacity:.8;}
.contact-info-hours{font-size:12px;color:var(--muted);}
.contact-info-rows{display:flex;flex-direction:column;gap:14px;}
.contact-info-row{display:flex;gap:16px;font-size:13px;color:var(--ink2);line-height:1.7;}
.contact-info-lbl{font-weight:700;color:var(--muted);flex-shrink:0;width:40px;}
.contact-info-card-note{display:flex;align-items:flex-start;gap:16px;}
.contact-info-note-icon{font-size:28px;flex-shrink:0;}
.contact-info-card-note p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:6px;}
@media(max-width:992px){.contact-page-inner{grid-template-columns:1fr;}}
@media(max-width:768px){.contact-page-sec{padding:48px 20px 64px;}.contact-page-form-wrap{padding:28px 20px;}}

/*=====================================================*/
/* privacy-sec                                         */
/*=====================================================*/
.privacy-sec{padding:80px 48px 100px;background:var(--pale);}
.privacy-inner{max-width:800px;margin:0 auto;}
.privacy-lead-box{
  background:linear-gradient(135deg,rgba(21,89,200,.06),rgba(21,89,200,.02));
  border:1px solid rgba(21,89,200,.15);
  border-left:4px solid var(--blue);
  border-radius:12px;padding:28px 32px;
  margin-bottom:56px;
}
.privacy-lead{font-size:15px;color:var(--ink2);line-height:1.9;margin:0;}
.privacy-blocks{display:flex;flex-direction:column;gap:20px;}
.privacy-block{
  background:var(--white);border-radius:16px;
  border:1px solid var(--border);
  padding:36px 40px;
  box-shadow:var(--sh);
  transition:box-shadow .2s;
}
.privacy-block:hover{box-shadow:var(--sh2);}
.privacy-block-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.privacy-block-num{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--blue),#0369a1);
  color:#fff;font-size:14px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(21,89,200,.3);
}
.privacy-h2{font-size:17px;font-weight:700;color:var(--ink);margin:0;}
.privacy-block p{font-size:14px;color:var(--ink2);line-height:1.9;margin-bottom:0;}
.privacy-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:16px;}
.privacy-list li{
  font-size:14px;color:var(--ink2);line-height:1.7;
  padding:10px 16px;background:var(--pale);border-radius:8px;
  display:flex;align-items:center;gap:10px;
}
.privacy-list li::before{content:'✓';color:var(--blue);font-weight:700;font-size:13px;flex-shrink:0;}
.privacy-block-contact{
  background:linear-gradient(135deg,var(--ink),#1d2d42);
  border:none;
}
.privacy-block-contact .privacy-block-num{background:rgba(255,255,255,.15);box-shadow:none;}
.privacy-block-contact .privacy-h2{color:#fff;}
.privacy-block-contact p{color:rgba(255,255,255,.7);}
.privacy-block-contact .privacy-contact-info{
  margin-top:20px;padding:20px 24px;
  background:rgba(255,255,255,.06);border-radius:10px;
  border:1px solid rgba(255,255,255,.1);
}
.privacy-block-contact .privacy-contact-info p{font-size:15px;font-weight:600;color:#fff;margin-bottom:4px;}
.privacy-block-contact .privacy-contact-info span{font-size:13px;color:rgba(255,255,255,.55);}
@media(max-width:768px){
  .privacy-sec{padding:48px 20px 64px;}
  .privacy-block{padding:24px 20px;}
  .privacy-lead-box{padding:20px;}
}

/* ABOUT */
.about{padding:96px 48px;background:var(--white);}
.about-inner{max-width:1060px;margin:0 auto;}
.about-label{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--blue);text-transform:uppercase;margin-bottom:12px;}
.about-h2{font-size:36px;font-weight:700;color:var(--ink);margin-bottom:16px;line-height:1.25;}
.about-lead{font-size:16px;color:var(--ink2);max-width:680px;margin-bottom:56px;line-height:1.8;}
.about-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:36px;align-items:stretch;margin-bottom:64px;}
.about-media-stack{display:flex;flex-direction:column;gap:24px;height:100%;}
.about-img{width:100%;height:320px;object-fit:cover;border-radius:16px;box-shadow:var(--sh2);}
.about-media-stack .about-img{height:100%;min-height:544px;}
.about-portrait{width:100%;max-width:320px;height:auto;object-fit:contain;border-radius:16px;box-shadow:var(--sh2);}
.about-signature{max-width:260px;margin-top:auto;padding-top:8px;}
.about-signature p{margin-bottom:10px;}
.about-text{display:flex;flex-direction:column;height:100%;}
.about-text h3{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:12px;}
.about-text p{font-size:14px;color:var(--ink2);line-height:1.9;margin-bottom:20px;}
.about-table{width:100%;border-collapse:collapse;font-size:14px;}
.about-table th,.about-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;}
.about-table th{width:140px;font-weight:700;color:var(--ink);background:var(--pale);white-space:nowrap;}
.about-table td{color:var(--ink2);}
.about-table tr:last-child th,.about-table tr:last-child td{border-bottom:none;}
.about-map-sec{margin-top:64px;}
.about-map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.about-map-card{background:var(--white);border:1px solid var(--border);border-radius:18px;box-shadow:var(--sh);overflow:hidden;}
.about-map-head{padding:18px 20px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f8fbff,#fff);}
.about-map-title{font-size:16px;font-weight:700;color:var(--ink);}
.about-map-address{margin-top:8px;font-size:13px;line-height:1.8;color:var(--ink2);}
.about-map-frame{width:100%;height:260px;border:0;display:block;}
.about-values{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.about-val-card{background:var(--pale);border-radius:16px;padding:28px 24px;border:1px solid var(--border);}
.about-val-icon{font-size:28px;margin-bottom:12px;}
.about-val-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.about-val-desc{font-size:13px;color:var(--muted);line-height:1.8;}

/*=====================================================*/
/* feature (社会貢献)                                  */
/*=====================================================*/
.feature-lead-sec{padding:80px 48px 0;background:var(--white);}
.feature-story-sec{padding:64px 48px;background:var(--white);}
.feature-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.feature-story-img-wrap{position:relative;}
.feature-story-h2{font-size:28px;font-weight:700;color:var(--ink);margin-bottom:20px;line-height:1.3;}
.feature-story-text p{font-size:14px;color:var(--ink2);line-height:1.9;margin-bottom:18px;}

.feature-pillars-sec{padding:80px 48px;background:var(--pale);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.feature-pillars-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px;}
.feature-pillar-card{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:32px 28px;box-shadow:var(--sh);animation:fadeUp .45s ease both;}
.feature-pillar-card:nth-child(2){animation-delay:.08s;}
.feature-pillar-card:nth-child(3){animation-delay:.16s;}
.feature-pillar-card:nth-child(4){animation-delay:.24s;}
.feature-pillar-num{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--blue);text-transform:uppercase;margin-bottom:14px;}
.feature-pillar-icon{font-size:32px;margin-bottom:14px;}
.feature-pillar-title{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:12px;line-height:1.4;}
.feature-pillar-desc{font-size:13px;color:var(--muted);line-height:1.8;}

.feature-values-sec{padding:80px 48px;background:var(--white);}
.feature-values-sec .about-values{margin-top:48px;}

.feature-cta-sec{
  padding:96px 48px;
  background:linear-gradient(135deg,#0f2458 0%,#1559c8 60%,#0369a1 100%);
  text-align:center;
}
.feature-cta-inner{max-width:640px;margin:0 auto;}
.feature-cta-h2{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:600;color:#fff;line-height:1.3;margin-bottom:20px;}
.feature-cta-sub{font-size:15px;color:rgba(255,255,255,.75);line-height:1.9;margin-bottom:36px;}

/*=====================================================*/
/* service page                                       */
/*=====================================================*/
.svc-intro-sec{padding:80px 48px;background:#fff;}
.svc-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;}
.svc-nav-card{
  background:var(--pale);border:3px solid #f97316;border-radius:16px;
  padding:32px 28px;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .25s,box-shadow .25s,border-color .25s,background .25s;
  position:relative;overflow:hidden;
}
.svc-nav-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,#fb923c,#ea580c);
  opacity:0;transition:opacity .25s;
}
.svc-nav-card:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(249,115,22,.22);border-color:#ea580c;}
.svc-nav-card:hover::before{opacity:1;}
.svc-nav-card:hover .svc-nav-num,
.svc-nav-card:hover .svc-nav-title,
.svc-nav-card:hover .svc-nav-desc,
.svc-nav-card:hover .svc-nav-caret{color:#fff;position:relative;}
.svc-nav-card:hover .svc-nav-icon{position:relative;}
.svc-nav-num{
  font-family:'Cormorant Garamond',serif;font-size:52px;font-weight:600;
  color:#dde6f0;line-height:1;transition:color .25s;
}
.svc-nav-icon{font-size:32px;line-height:1;position:relative;}
.svc-nav-title{font-size:16px;font-weight:700;color:var(--ink);position:relative;transition:color .25s;}
.svc-nav-desc{font-size:13px;color:var(--muted);line-height:1.6;flex:1;position:relative;transition:color .25s;}
.svc-nav-caret{font-size:12px;font-weight:700;color:var(--blue);position:relative;transition:color .25s;}

.svc-section{padding:80px 48px;background:#fff;}
.svc-section-alt{background:#f8faff;}
.svc-section-header{display:flex;align-items:flex-start;gap:20px;margin-bottom:12px;}
.svc-section-num{
  font-family:'Cormorant Garamond',serif;font-size:80px;font-weight:600;
  color:#e2eaf7;line-height:1;flex-shrink:0;margin-top:-10px;
}
.svc-section-lead{max-width:780px;color:#4a5568;line-height:1.9;font-size:15px;margin-bottom:48px;}

/* 教育事業部 */
.svc-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.svc-cat-card{
  background:var(--pale);border:1px solid var(--border);border-radius:14px;
  padding:28px 24px;
  transition:box-shadow .2s,border-color .2s,transform .2s;
}
.svc-cat-card:hover{box-shadow:0 12px 32px rgba(21,89,200,.1);border-color:#93c5fd;transform:translateY(-4px);}
.svc-cat-icon{font-size:36px;margin-bottom:14px;display:block;}
.svc-cat-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px;line-height:1.5;}
.svc-cat-sub{display:block;font-size:11px;font-weight:500;color:var(--muted);margin-top:4px;letter-spacing:.03em;}
.svc-cat-desc{font-size:13px;color:#4a5568;line-height:1.85;margin:0;}

/* コンサル事業 */
.svc-consul-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.svc-consul-card{
  background:#fff;border:1px solid var(--border);border-radius:12px;
  padding:20px 18px;display:flex;align-items:flex-start;gap:14px;
  transition:box-shadow .2s,transform .2s;
}
.svc-consul-card:hover{box-shadow:0 10px 28px rgba(21,89,200,.1);transform:translateY(-3px);}
.svc-consul-icon{font-size:28px;flex-shrink:0;line-height:1;margin-top:2px;}
.svc-consul-body{}
.svc-consul-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.svc-consul-desc{font-size:12px;color:var(--muted);line-height:1.7;}

/* オリジナル教育事業 */
.svc-prog-group{margin-bottom:40px;}
.svc-prog-group-hd{
  display:flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;letter-spacing:.1em;color:#1559c8;
  text-transform:uppercase;padding:10px 16px;
  background:#eff6ff;border-left:3px solid #1559c8;border-radius:0 8px 8px 0;
  margin-bottom:16px;
}
.svc-prog-group-icon{font-size:16px;}
.svc-prog-grid{display:flex;flex-wrap:wrap;gap:12px;}
.svc-prog-card{
  background:var(--pale);border:1px solid var(--border);border-radius:10px;
  padding:14px 18px;display:flex;align-items:center;gap:12px;
  flex:1 1 280px;
  transition:box-shadow .2s,border-color .2s;
}
.svc-prog-card:hover{box-shadow:0 6px 20px rgba(21,89,200,.08);border-color:#93c5fd;}
.svc-prog-num{
  font-size:10px;font-weight:700;color:#fff;
  background:var(--blue);border-radius:20px;
  padding:3px 9px;white-space:nowrap;flex-shrink:0;
}
.svc-prog-info{}
.svc-prog-label{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3;}
.svc-prog-sub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5;}

/*=====================================================*/
/* bridge-diagram-img (feature.html ニーズとシーズの架け橋) */
/*=====================================================*/
.bridge-diagram-img-wrap{margin-top:0;text-align:center;}
.bridge-diagram-img{width:100%;max-width:100%;height:auto;border-radius:12px;}

/*=====================================================*/
/* bridge-diagram (feature.html ニーズとシーズの架け橋)  */
/*=====================================================*/
.bridge-diagram{margin-top:48px;background:#f0f5ff;border-radius:16px;border:1px solid #dde6f0;overflow:hidden;}
.bridge-diag-title{text-align:center;font-size:17px;font-weight:700;color:#0e1824;padding:20px 24px 16px;border-bottom:1px solid #dde6f0;letter-spacing:.03em;}
.bridge-diag-body{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;}

/* Left panel */
.bridge-panel{padding:28px 24px;display:flex;flex-direction:column;gap:16px;}
.bridge-panel-left{background:linear-gradient(160deg,#1e3a8a 0%,#1559c8 60%,#2563eb 100%);border-right:1px solid rgba(255,255,255,.15);}
.bridge-panel-right{background:linear-gradient(160deg,#92400e 0%,#d97706 50%,#f59e0b 100%);}
.bridge-panel-hd{font-size:18px;font-weight:900;color:#fff;letter-spacing:.04em;line-height:1.2;}
.bridge-panel-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;flex:1;}
.bridge-panel-list li{font-size:14px;color:rgba(255,255,255,.92);padding-left:14px;position:relative;line-height:1.5;}
.bridge-panel-list li::before{content:'・';position:absolute;left:0;color:rgba(255,255,255,.6);}

/* Ribbon (left bottom) */
.bridge-ribbon{background:rgba(0,0,50,.25);border-radius:8px;padding:12px 14px;margin-top:auto;}
.bridge-ribbon-text{font-size:12px;color:rgba(255,255,255,.9);line-height:1.6;font-weight:600;}
.bridge-ribbon-sub{font-size:11px;color:#7dd3fc;margin-top:4px;font-weight:700;}

/* Industries (right bottom) */
.bridge-industries{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;}
.bridge-ind-tag{background:rgba(0,0,0,.2);color:#fff;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;}

/* Center */
.bridge-center{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:24px 20px;background:#fff;min-width:200px;gap:16px;}
.bridge-hub{text-align:center;}
.bridge-hub-icon{font-size:42px;line-height:1;margin-bottom:6px;}
.bridge-hub-name{font-size:13px;font-weight:700;color:#1559c8;letter-spacing:.04em;}
.bridge-arrows-wrap{display:flex;flex-direction:column;gap:8px;width:100%;}
.bridge-arr svg{width:100%;display:block;}
.bridge-services{display:flex;flex-direction:column;gap:8px;width:100%;}
.bridge-svc{background:#f8faff;border:1px solid #dde6f0;border-radius:10px;padding:12px;text-align:center;}
.bridge-svc-icon{font-size:22px;margin-bottom:4px;}
.bridge-svc-label{font-size:11px;font-weight:700;color:#0e1824;line-height:1.5;}

/* SERVICE SUBPAGES */
.svc-sub-hero{padding:72px 48px 40px;background:radial-gradient(circle at top left,rgba(125,211,252,.24),transparent 34%),linear-gradient(135deg,#08152f 0%,#0f2458 52%,#1559c8 100%);color:#fff;}
.svc-sub-inner{max-width:1060px;margin:0 auto;}
.svc-sub-kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid rgba(125,211,252,.35);background:rgba(125,211,252,.08);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7dd3fc;}
.svc-sub-title{margin-top:18px;font-family:'Cormorant Garamond',serif;font-size:52px;line-height:1.08;font-weight:600;}
.svc-sub-lead{max-width:760px;margin-top:18px;font-size:16px;line-height:1.95;color:rgba(255,255,255,.82);}
.svc-sub-summary{padding:28px 48px 0;background:#fff;}
.svc-sub-summary-card{max-width:1060px;margin:0 auto;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--border);border-radius:24px;padding:30px 32px;box-shadow:var(--sh);}
.svc-sub-summary-card p{font-size:15px;line-height:1.9;color:#445166;}
.svc-sub-grid-sec{padding:56px 48px 24px;background:#fff;}
.svc-sub-grid{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.svc-sub-card{display:block;background:var(--white);border:3px solid #3b82f6;border-radius:20px;padding:18px 22px 24px;text-decoration:none;color:inherit;box-shadow:var(--sh);transition:transform .2s,box-shadow .2s,border-color .2s,background .2s,color .2s;position:relative;overflow:hidden;}
.svc-sub-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);border-color:#1d4ed8;background:#2563eb;color:#fff;}
.svc-sub-card:focus-visible{outline:3px solid rgba(59,130,246,.4);outline-offset:3px;}
.svc-sub-card-num{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:50px;
  font-weight:600;
  line-height:1;
  color:#dde6f0;
}
.svc-sub-card-icon{font-size:32px;line-height:1;display:block;margin-top:10px;margin-bottom:14px;}
.svc-sub-card-title{font-size:17px;font-weight:700;color:var(--ink);line-height:1.5;}
.svc-sub-card-sub{display:block;margin-top:6px;font-size:12px;font-weight:500;color:var(--muted);}
.svc-sub-card-desc{margin-top:12px;font-size:13px;line-height:1.8;color:#4a5568;}
.svc-sub-card-caret{margin-top:16px;font-size:12px;font-weight:700;color:var(--blue);}
.svc-sub-card:hover .svc-sub-card-num,
.svc-sub-card:hover .svc-sub-card-title,
.svc-sub-card:hover .svc-sub-card-sub,
.svc-sub-card:hover .svc-sub-card-desc,
.svc-sub-card:hover .svc-sub-card-caret{color:#fff;}
.svc-detail-sec{padding:24px 48px 88px;background:#fff;}
.svc-detail-list{max-width:1060px;margin:0 auto;display:grid;gap:22px;}
.svc-detail-card{background:var(--white);border:1px solid var(--border);border-radius:24px;box-shadow:var(--sh);overflow:hidden;}
.svc-detail-head{padding:28px 30px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f8fbff,#fff);}
.svc-detail-kicker{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.svc-detail-title{font-size:24px;font-weight:700;line-height:1.35;color:var(--ink);}
.svc-detail-body{padding:26px 30px 30px;display:grid;grid-template-columns:1.1fr .9fr;gap:26px;}
.svc-detail-copy{font-size:14px;line-height:1.9;color:#445166;}
.svc-detail-panel{border:1px solid var(--border);border-radius:18px;padding:18px 18px 16px;background:#f8fbff;}
.svc-detail-panel h3{font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;}
.svc-detail-panel ul{list-style:none;display:grid;gap:10px;padding:0;margin:0;}
.svc-detail-panel li{font-size:13px;line-height:1.75;color:#4a5568;padding-left:18px;position:relative;}
.svc-detail-panel li::before{content:'';position:absolute;left:0;top:.72em;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--teal));transform:translateY(-50%);}
.svc-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.svc-detail-tag{padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(21,89,200,.08);border:1px solid rgba(21,89,200,.14);color:var(--blue);}
.svc-stat-strip{padding:0 48px 40px;background:#fff;}
.svc-stat-grid{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.svc-stat-card{background:linear-gradient(135deg,#0f2458,#1559c8);color:#fff;border-radius:22px;padding:24px 24px 20px;box-shadow:var(--sh2);}
.svc-stat-num{font-size:40px;font-weight:800;line-height:1;}
.svc-stat-label{margin-top:8px;font-size:13px;font-weight:700;color:rgba(255,255,255,.78);}
.svc-stat-note{margin-top:10px;font-size:12px;line-height:1.75;color:rgba(255,255,255,.68);}
.svc-cta-band{padding:0 48px 88px;background:#fff;}
.svc-cta-box{max-width:1060px;margin:0 auto;background:linear-gradient(135deg,#eff6ff,#f0fdf4);border:1px solid #cfe0ff;border-radius:24px;padding:30px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.svc-cta-copy h2{font-size:24px;line-height:1.4;color:var(--ink);margin-bottom:8px;}
.svc-cta-copy p{font-size:14px;line-height:1.85;color:#4a5568;}
.svc-cta-actions{display:flex;gap:12px;flex-wrap:wrap;}
.svc-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:14px;text-decoration:none;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s,border-color .2s;}
.svc-btn-primary{background:linear-gradient(135deg,#1559c8,#0369a1);color:#fff;box-shadow:0 8px 24px rgba(21,89,200,.28);}
.svc-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(21,89,200,.36);}
.svc-btn-secondary{background:#fff;color:var(--ink);border:1px solid var(--border);}
.svc-btn-secondary:hover{transform:translateY(-2px);border-color:#93c5fd;}


@media(max-width:768px){
  .hero-inner{grid-template-columns:1fr;gap:40px;}
  .hero-right{flex-direction:row;overflow-x:auto;}
  .h-card{min-width:140px;}
  .h-card:nth-child(2){margin-left:0;}
  .hero-h1{font-size:44px;}
  header{padding:12px 20px;}
  nav{display:none;}
  .ind-grid,.layer-grid{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .ach-inner{flex-wrap:wrap;}
  .ach-item{flex:1 1 40%;border-right:none;border-bottom:1px solid rgba(255,255,255,.12);}
  .photo-strip{grid-template-columns:1fr;height:auto;}
  .photo-strip-item{height:180px;}
  .match-section,.testimonials,.hiw{padding:48px 20px;}
  .about{padding:48px 20px;}
  .about-grid{grid-template-columns:1fr;}
  .about-map-grid{grid-template-columns:1fr;}
  .about-values{grid-template-columns:1fr;}
  .svc-intro-sec{padding:48px 20px;}
  .svc-nav-grid{grid-template-columns:1fr;}
  .svc-section{padding:48px 20px;}
  .svc-section-num{font-size:52px;}
  .svc-cat-grid{grid-template-columns:1fr;}
  .svc-consul-grid{grid-template-columns:repeat(2,1fr);}
  .svc-prog-card{flex:1 1 100%;}
  .feature-lead-sec,.feature-story-sec,.feature-pillars-sec,.feature-values-sec,.feature-cta-sec{padding:48px 20px;}
  .feature-story-grid{grid-template-columns:1fr;}
  .feature-pillars-grid{grid-template-columns:1fr;}
  .feature-cta-h2{font-size:30px;}
  .bridge-diag-body{grid-template-columns:1fr;grid-template-rows:auto auto auto;}
  .bridge-panel-left{border-right:none;border-bottom:1px solid rgba(255,255,255,.15);}
  .bridge-center{flex-direction:row;flex-wrap:wrap;justify-content:center;padding:20px 16px;}
  .bridge-arrows-wrap{flex-direction:row;width:auto;}
  .bridge-arr svg{width:80px;}
  .svc-sub-hero,.svc-sub-summary,.svc-sub-grid-sec,.svc-detail-sec,.svc-stat-strip,.svc-cta-band{padding-left:20px;padding-right:20px;}
  .svc-sub-title{font-size:40px;}
  .svc-sub-grid{grid-template-columns:1fr;}
  .svc-detail-body{grid-template-columns:1fr;}
  .svc-stat-grid{grid-template-columns:1fr;}
  .svc-cta-box{flex-direction:column;align-items:flex-start;padding-left:20px;padding-right:20px;}
}
