/* ===== CSS Variables & Reset ===== */
:root{
  --navy:#1f2d4d; --ink:#33384a; --muted:#7a8194;
  --coral:#1668c0; --coral-soft:#e7f0fb; --accent:#1668c0; --accent-2:#2f8bdc; --line:#06C755;
  --bg:#ffffff; --bg-soft:#eef3fa; --fv-blue:#dbe7f2; --fv-cream:#ffffff;
  --maxw:480px; --maxw-pc:960px; --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.section{padding:56px 0}
.sec-eyebrow{display:block;text-align:center;font-size:12px;font-weight:900;letter-spacing:.22em;color:var(--accent);margin-bottom:4px}
.section-title{font-size:24px;font-weight:900;color:var(--navy);text-align:center;margin-bottom:8px;letter-spacing:.01em}
.section-lead{font-size:13.5px;color:var(--muted);text-align:center;margin-bottom:28px;line-height:1.8}
.btn-line{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--line);color:#fff;font-weight:700;padding:16px 20px;border-radius:999px;font-size:16px;box-shadow:0 6px 16px rgba(6,199,85,.28)}
.btn-line:active{transform:translateY(1px)}
@media(min-width:768px){.container{max-width:var(--maxw-pc)}}

/* ===== Header ===== */
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:8px}
.brand-logo{height:24px;width:auto}
.brand-sub{font-size:10px;color:var(--muted)}
.header-cta{padding:8px 13px;font-size:12px;gap:5px;white-space:nowrap}
.header-cta-ico{display:inline-flex;align-items:center}

/* ===== FV ===== */
#fv{background:var(--fv-cream);position:relative}
.fv-img{width:100%;max-width:1080px;margin:0 auto;display:block}

/* ===== LINE Consult (rich card) ===== */
/* 背景は透過。FVは全部見えたまま、白い.line-cardだけがFVの上に乗る */
#line-consult{background:transparent;padding:0 0 40px;position:relative;z-index:2}
#line-consult .container{max-width:600px}
.line-card{background:#fff;border-radius:22px;box-shadow:0 18px 44px rgba(31,45,77,.2);padding:22px 20px;margin-top:-240px;display:flex;flex-direction:column;gap:16px;align-items:stretch}
.line-phone{position:relative;width:100%;max-width:206px;margin:0 auto}
.phone{background:#7c98c4;border:5px solid #fff;border-radius:20px;box-shadow:0 8px 18px rgba(31,45,77,.18);overflow:hidden}
.phone-top{display:flex;align-items:center;gap:5px;background:var(--line);padding:7px 8px}
.phone-back{color:#fff;font-size:13px;line-height:1;flex:0 0 auto}
.phone-acc{flex:1;display:flex;align-items:center;gap:5px;color:#fff;font-size:9px;font-weight:700;min-width:0;white-space:nowrap;overflow:hidden}
.phone-acc-ava{width:16px;height:16px;border-radius:50%;background:#fff;color:var(--line);font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.phone-menu{display:flex;flex-direction:column;gap:2px;flex:0 0 auto}
.phone-menu i{width:3px;height:3px;border-radius:50%;background:#fff;display:block}
.phone-screen{background:#7c98c4;padding:10px 8px 14px;min-height:218px;display:flex;flex-direction:column;gap:7px}
.chat-date{align-self:center;background:rgba(0,0,0,.16);color:#fff;font-size:8px;padding:2px 9px;border-radius:999px}
.chat-row{display:flex;gap:5px;align-items:flex-end}
.chat-row.out{justify-content:flex-end}
.chat-ava{flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:#fff;color:var(--line);font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center}
.chat-wrap{display:flex;flex-direction:column;gap:5px;min-width:0}
.chat-bubble{background:#fff;border-radius:10px;padding:7px 9px;font-size:9.5px;line-height:1.55;color:var(--ink);max-width:120px}
.chat-bubble.out{background:#8de055;color:#16391b;max-width:120px}
.line-body{width:100%;min-width:0;text-align:center}
.br-sp{display:none}
.line-title{font-size:21px;font-weight:900;color:var(--navy);line-height:1.4;margin-bottom:8px;border-bottom:2px dotted #bcd3ee;padding-bottom:9px}
.line-title .t-line{color:var(--line);margin:0 3px}
.line-title .t-coral{color:var(--accent)}
.line-lead{font-size:13px;color:var(--muted);margin-bottom:16px;line-height:1.7}
.line-btn{display:flex;align-items:center;gap:8px;background:var(--line);color:#fff;font-weight:700;font-size:15px;padding:14px 16px;border-radius:12px;box-shadow:0 6px 14px rgba(6,199,85,.28);margin-bottom:8px}
.line-btn-ico{width:26px;height:26px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.line-btn-label{flex:1;white-space:nowrap}
.qr-btn{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #d7deea;color:var(--navy);font-weight:700;font-size:13px;padding:13px 16px;border-radius:12px}
.qr-btn-ico{width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.qr-btn-label{flex:1;white-space:nowrap}
.chev{flex:0 0 auto;font-size:15px;opacity:.6}
.line-note{text-align:center;color:var(--muted);font-size:11px;margin-top:18px}
.scroll-cue{display:flex;justify-content:center;margin-top:4px;animation:bob 1.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ===== Cuelでできること ===== */
#can-do{background:linear-gradient(180deg,#eaf1fa 0%,#f7faff 100%)}
.cando-grid{display:grid;gap:16px}
.cando-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e3ecf6;border-radius:18px;padding:28px 22px 24px;box-shadow:0 8px 24px rgba(22,104,192,.08);transition:transform .2s ease,box-shadow .2s ease}
.cando-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(22,104,192,.16)}
.cando-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.cando-step{position:absolute;top:14px;right:18px;font-size:34px;font-weight:900;font-style:italic;color:#e8f0fb;letter-spacing:.02em;line-height:1}
.cando-ico{width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,var(--accent-2),var(--accent));display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 8px 18px rgba(22,104,192,.32)}
.cando-ico svg{width:30px;height:30px}
.cando-card h3{font-size:17px;color:var(--navy);font-weight:900;margin-bottom:10px;line-height:1.45}
.cando-card p{font-size:13px;color:var(--muted);line-height:1.8}
@media(min-width:768px){.cando-grid{grid-template-columns:repeat(3,1fr);gap:20px}}

/* ===== Card Grid (shared) ===== */
.card-grid{display:grid;gap:14px}
.info-card{background:#fff;border:1px solid #e3ecf6;border-radius:var(--radius);padding:22px 20px;text-align:center;box-shadow:0 6px 18px rgba(22,104,192,.07)}
.info-ico{width:50px;height:50px;border-radius:50%;background:var(--coral-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.info-ico svg{width:26px;height:26px}
.info-card h3{font-size:15px;color:var(--navy);font-weight:700;margin-bottom:6px}
.info-card p{font-size:13px;color:var(--muted)}
#support{background:var(--bg-soft)}
@media(min-width:768px){.card-grid{grid-template-columns:repeat(3,1fr)}}

/* ===== Jobs Carousel ===== */
#jobs{background:#fff}
/* 大画面で横に広がりすぎないよう最大幅で枠化＋中央寄せ */
.carousel{overflow:hidden;max-width:1080px;margin:0 auto}
.carousel-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 20px 16px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.carousel-track::-webkit-scrollbar{display:none}
.job-card{flex:0 0 82%;max-width:320px;scroll-snap-align:center;background:#fff;border:1px solid #e7ecf3;border-radius:var(--radius);padding:18px;box-shadow:0 4px 16px rgba(31,45,77,.06);display:block}
.job-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.job-no{font-size:11px;color:var(--coral);font-weight:700;letter-spacing:.04em}
.job-badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.job-badge{font-size:10px;font-weight:700;color:var(--navy);background:#eef2f8;border-radius:6px;padding:3px 7px;white-space:nowrap}
.job-badge--remote{color:#0a8a4a;background:#e3f7ec}
.job-position{font-size:16px;color:var(--navy);font-weight:700;margin:2px 0 6px}
.job-title{font-size:12.5px;color:var(--muted);margin:0 0 12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.job-meta{margin-top:2px}
.job-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:6px 0;border-top:1px dashed #eceff4}
.job-row span{color:var(--muted);flex:0 0 auto}
.job-row b{color:var(--ink);font-weight:500;text-align:right}
.job-cta{display:inline-block;margin-top:14px;color:var(--coral);font-weight:700;font-size:13px}
.carousel-dots{display:flex;gap:6px;justify-content:center;margin-top:6px}
.dot{width:8px;height:8px;border-radius:50%;border:0;background:#cdd6e3;padding:0;cursor:pointer}
.dot.is-active{background:var(--coral);width:20px;border-radius:4px}
.jobs-all{margin-top:20px}
.btn-outline{display:block;text-align:center;border:1.5px solid var(--navy);color:var(--navy);font-weight:700;border-radius:999px;padding:14px}
@media(min-width:768px){.job-card{flex-basis:300px}}

/* ===== FAQ ===== */
#faq{background:var(--bg-soft)}
.faq-item{background:#fff;border:1px solid #e7ecf3;border-radius:12px;margin-bottom:10px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:16px 44px 16px 16px;font-size:14px;font-weight:700;color:var(--navy);position:relative;cursor:pointer;font-family:inherit}
.faq-q::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--coral);font-size:20px}
.faq-q[aria-expanded="true"]::after{content:"−"}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 16px;font-size:13px;color:var(--muted)}
.faq-q[aria-expanded="true"]+.faq-a{padding-bottom:16px}

/* ===== 無料相談バナー（画像） ===== */
#cta-banner{padding:40px 0 56px;background:#fff}
#cta-banner .container{max-width:760px}
.cta-img-link{display:block;border-radius:20px;overflow:hidden;box-shadow:0 14px 34px rgba(22,104,192,.22)}
.cta-img{width:100%;display:block}
.cta-btn{max-width:360px;margin:18px auto 0;font-size:16px}

/* ===== Sticky CTA（LINEボタン風） ===== */
#sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:9px 14px;padding-bottom:calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 -4px 16px rgba(31,45,77,.12);transform:translateY(140%);transition:transform .25s ease}
body.show-sticky #sticky-cta{transform:translateY(0)}
.sticky-btn{display:flex;align-items:center;justify-content:center;gap:8px;max-width:440px;margin:0 auto;background:var(--line);color:#fff;font-weight:700;font-size:15px;padding:14px 18px;border-radius:999px;box-shadow:0 8px 18px rgba(6,199,85,.35)}
.sticky-btn .line-btn-ico{width:24px;height:24px;border-radius:50%;background:#fff;flex:0 0 auto}
main{padding-bottom:0}
body.show-sticky main{padding-bottom:84px}

/* ===== QRモーダル ===== */
.qr-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center}
.qr-modal[hidden]{display:none}
.qr-modal-backdrop{position:absolute;inset:0;background:rgba(31,45,77,.55)}
.qr-modal-box{position:relative;background:#fff;border-radius:18px;padding:26px 22px 22px;width:min(86%,320px);text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.qr-modal-close{position:absolute;top:6px;right:12px;border:0;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.qr-modal-title{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:14px}
.qr-modal-img{width:200px;height:200px;margin:0 auto;display:block;border:1px solid #eef2f8;border-radius:8px}
.qr-modal-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.6}

/* ===== Footer ===== */
#site-footer{background:var(--navy);color:#cdd6e3;padding:32px 0 90px;text-align:center}
.footer-nav a{color:#fff;font-size:13px}
.footer-nav span{margin:0 8px;color:#5a6a86}
.footer-license{font-size:11px;margin:14px 0 6px;color:#aeb8ca}
.footer-copy{font-size:11px;color:#8b95a8}

/* ===== Responsive (PC) ===== */
@media(min-width:768px){
  .fv-img{max-width:880px}
  #line-consult{padding-bottom:56px}
  #line-consult .container{max-width:760px}
  .line-card{padding:34px 38px;gap:34px;margin-top:-80px;flex-direction:row;align-items:center}
  .line-phone{flex:0 0 230px;width:auto;max-width:230px;margin:0}
  .line-body{text-align:left}
  .phone-screen{min-height:300px}
  .chat-bubble{font-size:12px;max-width:165px}
  .chat-bubble.out{max-width:165px}
  .line-title{font-size:26px;white-space:nowrap;text-align:left}
  .line-lead{font-size:14px;margin-bottom:16px}
  .line-btn{font-size:17px;padding:14px 16px}
  .qr-btn{font-size:14px;padding:13px 16px}
  #cta-banner .container{max-width:1040px}
  .cta-btn{max-width:420px;font-size:17px}
}
