/* ============================================================
 common.css｜全ページ共通（ベース・ボタン・見出し・ヘッダー・メニュー・フッター・数字・ENTRY）
 ※ここを変更すると全ページに反映されます（WP: assets/css/common.css）
 ============================================================ */
:root{
  --ink:#222;
  --sub:#666;
  --line:#cfcfcf;
  --line-strong:#9a9a9a;
  --ph:#e3e3e3;
  --ph-line:#d2d2d2;
  --ph-label:#8c8c8c;
  --bg:#ffffff;
  --bg-soft:#f4f4f4;
  --maxw:1080px;
}
*{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.9;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ---- generic wireframe pieces ---- */
.ph{
  background:var(--ph);
  border:1px solid var(--ph-line);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--ph-label);
  font-size:13px;
  letter-spacing:.04em;
  padding:10px;
}
.sec-label{
  font-family:"Poppins","Noto Sans JP",sans-serif;
  font-size:clamp(40px,5.4vw,72px);
  letter-spacing:.01em;
  color:var(--ink);
  font-weight:700;
  line-height:1.02;
  margin-bottom:10px;
}
h2.headline{
  font-size:22px;
  font-weight:700;
  line-height:1.7;
  margin-bottom:26px;
  color:var(--ink);
}
section{padding:84px 0;border-top:1px solid var(--line);}
section.soft{background:var(--bg-soft);}
.lead{font-size:15px;color:var(--ink);}
.lead + .lead{margin-top:18px;}

/* rounded buttons */
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:52px;
  padding:0 32px;
  border:1px solid var(--ink);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:15px;
  font-weight:500;
  cursor:pointer;
  text-decoration:none;
}
.btn.fill{background:var(--ink);color:#fff;}
/* ▼ anchor links → reference-style pill with circular arrow */
.btn-link{
  position:relative;
  display:inline-flex;align-items:center;
  margin-top:34px;
  min-height:64px;padding:0 72px 0 38px;
  border:none;border-radius:999px;background:var(--bg-soft);
  font-size:16px;font-weight:700;color:var(--ink);text-decoration:none;cursor:pointer;
}
.btn-link::after{
  content:"→";
  position:absolute;top:50%;right:9px;transform:translateY(-50%);
  width:46px;height:46px;border-radius:50%;background:linear-gradient(90deg,#5CC8F5 0%,#1BB9F3 34%,#0E8FE6 68%,#1461D2 100%);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:400;
  transition:transform .3s ease;
}
.btn-link:hover::after{transform:translateY(-50%) scale(1.18);}
section.soft .btn-link{background:#fff;}
.center{text-align:center;}
.center .btn-link{margin-left:auto;margin-right:auto;}

/* 正円 offer badge */
.offer{
  width:230px;height:230px;border-radius:50%;
  border:2px solid var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:6px;padding:20px;
  transform:rotate(-20deg);
}
.offer .o1{font-size:19px;font-weight:700;line-height:1.4;}
.offer .o2{font-size:14px;font-weight:500;}
.offer .note{font-size:11px;color:var(--sub);}

/* ---- header ---- */
header.site{
  position:fixed;top:0;left:0;right:0;z-index:30;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease;
}
header.site.scrolled{
  background:rgba(255,255,255,.75);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
    border-radius:0 0 28px 28px;
}
header.site .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:96px;max-width:none;padding:0 clamp(20px,3.6vw,56px);gap:24px;
}
.brand{display:flex;align-items:center;gap:22px;text-decoration:none;flex-shrink:0;}
.brand .logo-img{height:64px;width:auto;display:block;}
.brand .brand-sep{width:1px;height:52px;background:#cfd8e3;}
.brand .recruit{display:inline-flex;flex-direction:column;gap:2px;color:#1a2433;line-height:1.1;}
.brand .recruit > span{display:block;text-align:justify;text-align-last:justify;}
.brand .recruit .en{font-family:"Poppins",sans-serif;font-size:14px;font-weight:600;letter-spacing:.14em;margin-right:-.14em;}
.brand .recruit .ja{font-size:13px;font-weight:500;letter-spacing:.14em;margin-right:-.14em;}
.hdr-right{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px);}
.gnav{display:flex;align-items:center;gap:clamp(18px,2.6vw,44px);}
.gnav a{display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:#1a2433;}
.gnav .en{font-family:"Poppins",sans-serif;font-size:14px;font-weight:600;letter-spacing:.08em;line-height:1;}
.gnav .ja{font-size:10px;font-weight:500;letter-spacing:.1em;line-height:1;}
.gnav a:hover,.gnav a.is-current{color:#1461D2;}
.gnav a.is-current .en{position:relative;}
.gnav a.is-current .en::after{content:"";position:absolute;left:50%;bottom:-24px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#1BB9F3;}
.hdr-entry{display:inline-flex;align-items:center;gap:22px;height:56px;padding:0 30px 0 34px;border-radius:999px;background:linear-gradient(90deg,#5CC8F5 0%,#1BB9F3 34%,#0E8FE6 68%,#1461D2 100%);color:#fff;text-decoration:none;font-family:"Poppins",sans-serif;font-size:15px;font-weight:600;letter-spacing:.2em;transition:opacity .25s ease;}
.hdr-entry:hover{opacity:.85;}
.hdr-entry .arw{font-family:"Noto Sans JP",sans-serif;letter-spacing:0;font-weight:400;font-size:18px;}
.menu{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;cursor:pointer;padding:0;}
.menu .bars{display:flex;flex-direction:column;gap:9px;}
.menu .bars span{width:38px;height:2px;background:#1a2433;display:block;}
.gnav-item{position:relative;display:flex;}
.gnav .en{display:inline-flex;align-items:center;gap:6px;}
.gnav .pm{position:relative;width:9px;height:9px;display:inline-block;}
.gnav .pm::before,.gnav .pm::after{content:"";position:absolute;left:0;top:50%;width:9px;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform .25s ease;}
.gnav .pm::after{transform:rotate(90deg);}
.gnav-item.has-sub:hover .pm::after,.gnav-item.has-sub:focus-within .pm::after{transform:rotate(0);}
.gnav-item:hover > a{color:#1461D2;}
.gnav-sub{position:absolute;top:100%;left:50%;padding-top:22px;transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;z-index:40;}
.gnav-item:hover .gnav-sub,.gnav-item:focus-within .gnav-sub{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .25s ease,transform .25s ease;}
.gnav-sub ul{list-style:none;margin:0;padding:22px 30px;width:max-content;background:#eef1f5;border-radius:22px;box-shadow:0 10px 26px rgba(20,60,110,.10);display:flex;flex-direction:column;gap:14px;white-space:nowrap;}
.gnav-sub a{display:inline-flex;flex-direction:row;flex-wrap:nowrap;white-space:nowrap;align-items:center;gap:12px;font-size:14px;font-weight:500;letter-spacing:.06em;color:#1a2433;text-decoration:none;}
.gnav-sub .ca{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#fff;color:#1461D2;font-size:11px;display:inline-flex;align-items:center;justify-content:center;transition:transform .25s ease,background .25s,color .25s;}
.gnav-sub a:hover{color:#1461D2;}
.gnav-sub a:hover .ca{background:#1461D2;color:#fff;transform:translateX(3px);}
@media (max-width:1180px){.gnav{display:none;}}

/* ===== ABOUT numbers (PRONI-style tiles) ===== */
.about-eyecatch{margin-top:8px;}
.about-eyecatch .ph{height:240px;}
#about{background:#f3f5f6;}
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:28px;margin-top:28px;}
.stat{position:relative;overflow:hidden;background:#fff;border:none;border-radius:20px;padding:36px 36px 40px;grid-column:span 2;display:flex;flex-direction:column;min-height:300px;}
.stat.w3{grid-column:span 3;min-height:280px;}
.stat .label{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700;color:#1a2433;margin-bottom:26px;position:relative;z-index:2;}
.stat .label::before{content:"";width:8px;height:6px;border-radius:3px;background:#1BB9F3;flex:0 0 auto;}
.stat .num{position:relative;z-index:2;font-family:"Poppins","Noto Sans JP",sans-serif;font-weight:700;line-height:1;letter-spacing:-.01em;display:flex;align-items:baseline;flex-wrap:wrap;}
.stat .num .v{font-size:clamp(56px,6vw,92px);color:#1461D2;}
.stat.w3 .num .v{font-size:clamp(56px,6vw,92px);}
.stat .num .u{font-family:"Noto Sans JP",sans-serif;font-size:clamp(24px,2.4vw,36px);font-weight:700;color:#1a2433;margin-left:10px;}
.stat .cap{position:relative;z-index:2;font-size:13px;color:#7a8794;margin-top:12px;}
.stat .ic,.stat.w3 .ic{width:clamp(80px,9vw,130px) !important;height:clamp(80px,9vw,130px) !important;font-size:clamp(28px,3.2vw,46px) !important;right:22px !important;bottom:22px !important;padding:0 !important;line-height:1;}
.stat .ic i{line-height:1;display:block;}
.stat .num{flex-wrap:nowrap;}
.stat.w3 .num,.stat .cap{padding-right:clamp(92px,10.5vw,150px);}
@media (max-width:560px){.stat .ic,.stat.w3 .ic{width:80px !important;height:80px !important;font-size:28px !important;right:16px !important;bottom:16px !important;}.stat.w3 .num,.stat .cap{padding-right:88px;}}
.stat .ic{position:absolute;right:28px;bottom:28px;z-index:1;width:150px;height:150px;border-radius:50%;background:#f4f6f8;display:flex;align-items:center;justify-content:center;font-size:52px;color:#1a2433;}
.stat.w3 .ic{right:-30px;bottom:-40px;width:260px;height:260px;font-size:64px;padding:0 40px 40px 0;}
.stat.ring .ic{background:radial-gradient(circle,#fff 0 60%,transparent 61%),conic-gradient(#5CC8F5 calc(var(--p)*1%),#eef2f5 0);}
.stat.w3.ring .ic{background:radial-gradient(circle,#fff 0 62%,transparent 63%),conic-gradient(#5CC8F5 calc(var(--p)*1%),#eef2f5 0);}
.about-foot{margin-top:40px;font-size:20px;font-weight:700;line-height:1.7;text-align:center;}
.about-note{margin-top:14px;text-align:right;font-size:12px;color:var(--sub);}

/* ===== ENTRY (TVer参考：青い角丸パネル＋写真タイル) ===== */
.entry{position:relative;overflow:hidden;background:#fff;padding-bottom:clamp(60px,7vw,110px) !important;}
.entry-card{position:relative;z-index:1;margin:0 clamp(12px,1.6vw,24px);border-radius:clamp(28px,3.4vw,56px);overflow:hidden;background:#1BB9F3;}
.entry-tiles{position:absolute;inset:-4% -4%;display:grid;grid-template-columns:1fr 2.2fr 1.4fr 1fr;grid-auto-rows:1fr;gap:14px;opacity:.9;}
.entry-tiles .et{border-radius:26px;overflow:hidden;background:#fff;}
.entry-tiles .et img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(.9);mix-blend-mode:multiply;opacity:.55;}
.entry-tiles::after{content:"";position:absolute;inset:0;background:rgba(27,185,243,.72);}
.entry-tiles .et{background:#1BB9F3;}
.entry-body{position:relative;z-index:2;max-width:1120px;margin:0 auto;padding:clamp(80px,9vw,140px) 32px clamp(64px,7vw,110px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px 56px;align-items:center;color:#fff;}
.entry-mark{position:relative;text-align:center;padding-bottom:10px;}
.entry-script{display:block;font-family:"Oooh Baby",cursive;font-size:clamp(96px,11vw,176px);line-height:.9;color:#fff;transform:rotate(-8deg);}
.entry-en{display:block;margin-top:-.1em;font-family:"Poppins",sans-serif;font-weight:700;font-size:clamp(40px,4.4vw,68px);letter-spacing:.04em;line-height:1;}
.entry-ttl{margin:0 0 22px;font-size:clamp(28px,2.8vw,42px);font-weight:700;line-height:1.5;letter-spacing:.08em;color:#fff;}
.entry-text p{margin:0 0 12px;font-size:15px;line-height:2;letter-spacing:.04em;color:#fff;}
.entry-text .quotes{font-weight:700;margin-bottom:16px;}
.entry-btns{grid-column:1 / -1;display:flex;justify-content:center;gap:24px;margin-top:40px;flex-wrap:wrap;}
.entry-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:min(420px,100%);height:100px;padding:0 40px;border-radius:999px;background:#fff;color:#1a2433;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:.08em;transition:transform .3s ease;}
.entry-btn:hover{transform:translateY(-3px);}
.entry-btn .tag{padding:4px 12px;border-radius:8px;background:#1BB9F3;color:#fff;font-size:14px;letter-spacing:.04em;}
.entry-btn .arw{font-size:22px;color:#1BB9F3;}
.entry-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:150px;height:150px;margin:26px auto 0;border-radius:50%;background:#1a2433;color:#fff;text-align:center;}
.entry-badge b{font-size:19px;font-weight:700;line-height:1.4;letter-spacing:.06em;}
.entry-badge small{font-size:11px;opacity:.85;}
.entry-note{grid-column:1 / -1;margin:6px 0 0;text-align:center;font-size:13px;color:#fff;}
.entry-note span{font-weight:700;font-size:15px;margin-right:8px;}
@media (max-width:860px){.entry-body{grid-template-columns:1fr;text-align:center;}.entry-text p br{display:none;}.entry-btn{height:80px;width:100%;}.entry-tiles{grid-template-columns:1fr 1.6fr 1fr;}}

/* ===== Section backgrounds + curved boundaries ===== */
#philosophy,#instagram{background:linear-gradient(90deg,#fff 55%,#dcebff 100%);border-top:none;}
#philosophy{background:linear-gradient(270deg,#fff 55%,#dcebff 100%);}
#job{background:linear-gradient(180deg,#5CC8F5 0%,#5CC8F5 8%,#1BB9F3 34%,#0E8FE6 68%,#1461D2 100%);color:#fff;border-top:none;}
#job .lead,#job p{color:#fff;}
#people{background:linear-gradient(90deg,#fff 0%,#fff 62%,#e6fbff 80%,#bff3ff 92%,#9fe9ff 100%);border-top:none;}
#about,#environment,#news{background:#f2f2f2;border-top:none;}
#faq{background:#fff;border-top:none;}
#about,#job,#environment,#philosophy,#news,#instagram,#faq,#entry{position:relative;border-top:none;padding-top:clamp(120px,14vw,220px);}
#about > .wrap,#job > .wrap,#environment > .wrap,#philosophy > .wrap,#news > .wrap,#instagram > .wrap,#faq > .wrap{position:relative;z-index:1;}
#entry > .sec-curve{z-index:2;}
.sec-curve{position:absolute;left:0;top:-1px;width:100%;height:clamp(90px,12vw,200px);display:block;z-index:0;pointer-events:none;}
.pc-media .ph{position:relative;padding:0 !important;}
.pc-media .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pc-media .ph{border:2px solid #1461D2 !important;}
/* ===== Photo corner radius (match FV) ===== */
section:not(.hero) .ph:not(.entry-bg),.message .mp,.pc-media,.job-card,.job-card .ph,.insta-grid .ph{border-radius:36px !important;overflow:hidden;}
.message .mp3{border-radius:36px !important;}
@media (max-width:560px){section:not(.hero) .ph:not(.entry-bg),.message .mp,.pc-media,.job-card,.job-card .ph,.insta-grid .ph{border-radius:24px !important;}}
/* ===== Section headings (EN + JA) ===== */
.sh{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 26px;margin:0 0 48px;color:#1461D2;}
.sh.center{justify-content:flex-start;text-align:left;}
.sh{flex-direction:column;align-items:flex-start;gap:10px;}
.sh::before{flex:none;width:100%;margin-bottom:6px !important;}
.message .sh,#entry .sh{align-items:center;}
.sh::before{content:"";flex:0 0 100%;height:5px;margin-bottom:clamp(28px,3.4vw,52px);background:linear-gradient(90deg,#1461D2 0 50%,#5CC8F5 50% 100%) left top/96px 100% no-repeat;}
.message .sh::before{background:linear-gradient(90deg,#fff 0 50%,#9fe9ff 50% 100%) left top/96px 100% no-repeat;}
.sh-en{font-family:"Poppins",sans-serif;font-weight:500;font-size:clamp(52px,7.2vw,108px);line-height:1.15;letter-spacing:-.01em;display:inline-block;}
.sh-ja{margin:0;font-size:clamp(15px,1.5vw,20px);font-weight:700;letter-spacing:.06em;line-height:1.5;color:inherit;}
.sh-en,.sh-ja{background:linear-gradient(90deg,#1461D2 0%,#1461D2 30%,#0E8FE6 42%,#1BB9F3 52%,#00EEFF 64%,#00EEFF 100%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-position 1.8s cubic-bezier(.45,0,.2,1);}
.sh-ja{transition-delay:.12s;}
.sh.in .sh-en,.sh.in .sh-ja{background-position:0 0;}
.message .sh,#entry .sh{justify-content:center;text-align:center;}
.message .sh::before,#entry .sh::before{background-position:center top;}
.message .sh-en,.message .sh-ja,#job .sh-en,#job .sh-ja{background:none;color:#fff;}
#job .sh::before{background:linear-gradient(90deg,#fff 0 50%,#9fe9ff 50% 100%) left top/96px 100% no-repeat;}
@media (prefers-reduced-motion:reduce){.sh-en,.sh-ja{transition:none;background-position:0 0;}}
/* ===== GLOBAL MENU (overlay) ===== */
.gm{position:fixed;inset:0;z-index:60;overflow-y:auto;background:linear-gradient(135deg,#1461D2 0%,#0E8FE6 50%,#1BB9F3 100%);color:#fff;visibility:hidden;transform:translateY(-100%);transition:transform .6s cubic-bezier(.7,0,.2,1),visibility 0s linear .6s;}
.gm.open{visibility:visible;transform:none;transition:transform .6s cubic-bezier(.7,0,.2,1),visibility 0s;}
.gm-bar{display:flex;align-items:center;justify-content:space-between;height:96px;padding:0 clamp(20px,3.6vw,56px);}
.gm-brand{display:flex;align-items:center;gap:20px;}
.gm-brand img{height:52px;width:auto;filter:brightness(0) invert(1);}
.gm-pill{display:inline-flex;align-items:center;height:32px;padding:0 18px;border:1.5px solid #fff;border-radius:999px;font-size:13px;letter-spacing:.12em;}
.gm-close{width:64px;height:64px;border:1.5px solid rgba(255,255,255,.8);border-radius:50%;background:transparent;color:#fff;cursor:pointer;position:relative;}
.gm-close::before,.gm-close::after{content:"";position:absolute;left:50%;top:50%;width:24px;height:2px;background:#fff;}
.gm-close::before{transform:translate(-50%,-50%) rotate(45deg);}
.gm-close::after{transform:translate(-50%,-50%) rotate(-45deg);}
.gm-body{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:clamp(32px,6vh,72px) clamp(24px,5vw,72px) 220px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px clamp(32px,5vw,80px);}
.gm-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px;}
.gm-col a{display:flex;align-items:baseline;gap:12px;white-space:nowrap;color:#fff;text-decoration:none;font-size:16px;font-weight:500;letter-spacing:.1em;transition:opacity .2s,transform .3s;}
.gm-col a:hover{opacity:.7;transform:translateX(4px);}
.gm-col a::before{content:"";flex:0 0 auto;width:0;height:0;border-left:6px solid #fff;border-top:4px solid transparent;border-bottom:4px solid transparent;transform:translateY(-2px);margin-right:8px;}
.gm-col a.h{font-family:"Poppins","Noto Sans JP",sans-serif;font-size:22px;letter-spacing:.08em;}
.gm-col a .n{font-family:"Poppins",sans-serif;font-size:12px;min-width:1.6em;opacity:.85;}
.gm-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;}
.gm-entry{display:inline-flex;align-items:center;gap:18px;height:60px;padding:0 40px;border-radius:999px;background:#fff;color:#1461D2;text-decoration:none;font-family:"Poppins",sans-serif;font-size:16px;font-weight:600;letter-spacing:.2em;}
.gm-sns{display:flex;gap:12px;margin-left:auto;}
.gm-sns a{width:52px;height:52px;border:1.5px solid rgba(255,255,255,.8);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;text-decoration:none;}
.gm-wave{position:fixed;left:0;right:0;bottom:0;height:170px;overflow:hidden;pointer-events:none;z-index:0;opacity:0;transition:opacity .2s ease;}
.gm.open .gm-wave{opacity:1;transition:opacity .6s ease .6s;}
.gm-wave svg{position:absolute;left:0;bottom:0;width:200%;height:100%;display:block;animation:fvWave 12s linear infinite;}
.gm-wave .g2{height:70%;animation-duration:8s;animation-direction:reverse;}
.gm .gm-body > *{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
.gm.open .gm-body > *{opacity:1;transform:none;transition-delay:.35s;}
.gm.open .gm-body > *:nth-child(2){transition-delay:.43s;}
.gm.open .gm-body > *:nth-child(3){transition-delay:.51s;}
.gm.open .gm-body > *:nth-child(4){transition-delay:.59s;}
body.gm-lock{overflow:hidden;}
@media (max-width:1100px){.gm-body{grid-template-columns:1fr 1fr;}.gm-sns{margin-left:0;}}
@media (max-width:640px){.gm-body{grid-template-columns:1fr;padding-bottom:160px;}.gm-col a{white-space:normal;}.gm-bar{height:72px;}.gm-brand img{height:38px;}.gm-close{width:52px;height:52px;}.gm-wave{height:110px;}}
/* ===== FOOTER (PORTERS-style) ===== */
footer.site{position:relative;overflow:hidden;background:#f4f5f4;color:#123a6b;padding:0;border-top:none;}
.ft-bgtext{position:absolute;right:-1vw;top:40px;z-index:0;margin:0;font-family:"Poppins",sans-serif;font-weight:600;font-size:clamp(120px,14vw,230px);line-height:.98;letter-spacing:-.01em;color:#fff;text-align:right;pointer-events:none;user-select:none;}
.ft-main{position:relative;z-index:1;padding:120px 0 130px;}
.ft-brand{display:flex;align-items:center;gap:22px;margin-bottom:64px;}
.ft-brand img{height:64px;width:auto;display:block;}
.ft-pill{display:inline-flex;align-items:center;height:34px;padding:0 20px;border:1.5px solid #123a6b;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:.12em;}
.ft-cols{display:grid;grid-template-columns:repeat(3,minmax(0,max-content));gap:24px clamp(40px,6vw,100px);}
.ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px;}
.ft-col a{display:flex;align-items:baseline;gap:14px;color:#123a6b;text-decoration:none;font-size:16px;font-weight:500;letter-spacing:.1em;transition:opacity .2s;}
.ft-col a::before{content:"";flex:0 0 auto;width:0;height:0;border-left:6px solid #1BB9F3;border-top:4px solid transparent;border-bottom:4px solid transparent;transform:translateY(-2px);margin-right:10px;}
.ft-col a:hover{opacity:.6;}
.ft-col a.h{font-family:"Poppins","Noto Sans JP",sans-serif;font-size:20px;letter-spacing:.08em;}
.ft-col a .n{font-family:"Poppins",sans-serif;font-size:12px;letter-spacing:.06em;min-width:1.6em;}
.ft-col li.sub a{padding-left:0;}
.ft-social{display:flex;gap:18px;margin-top:56px;flex-wrap:wrap;}
.ft-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:#123a6b;text-decoration:none;transition:opacity .2s;}
.ft-social a:hover{opacity:.6;}
.ft-social a i{font-size:26px;}
.ft-side{position:absolute;right:clamp(20px,6vw,100px);bottom:130px;z-index:1;text-align:right;}
.ft-top{display:inline-flex;align-items:center;gap:14px;color:#123a6b;text-decoration:none;font-family:"Poppins",sans-serif;font-size:22px;font-weight:500;letter-spacing:.08em;}
.ft-top i{font-size:18px;}
.ft-copy{margin-top:30px;font-family:"Poppins",sans-serif;font-size:11px;letter-spacing:.08em;color:#123a6b;}
.ft-band{position:relative;z-index:1;margin-left:clamp(20px,4vw,64px);border-radius:clamp(80px,11vw,180px) 0 0 0;background:linear-gradient(90deg,#1461D2 0%,#0E8FE6 50%,#1BB9F3 100%);color:#fff;}
.ft-band .in{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:clamp(60px,7vw,96px) clamp(24px,6vw,100px) clamp(60px,7vw,96px) clamp(60px,9vw,140px);}
.ft-band .bl{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.ft-band .bl img{height:46px;width:auto;filter:brightness(0) invert(1);}
.ft-band .bl .t{font-size:15px;letter-spacing:.12em;}
.ft-band .addr{font-size:13px;line-height:1.9;letter-spacing:.06em;opacity:.9;}
.ft-corp{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 44px;border-radius:999px;background:#fff;color:#123a6b;text-decoration:none;font-family:"Poppins",sans-serif;font-size:14px;font-weight:600;letter-spacing:.08em;}
@media (max-width:900px){
  .ft-cols{grid-template-columns:1fr 1fr;}
  .ft-side{position:static;text-align:left;margin-top:48px;}
  .ft-main{padding:80px 0 72px;}
  .ft-bgtext{font-size:22vw;top:20px;}
}
@media (max-width:560px){
  .ft-cols{grid-template-columns:1fr;}
  .ft-brand img{height:44px;}
  .ft-band{margin-left:12px;border-radius:60px 0 0 0;}
}
.wf-note{background:#111;color:#fff;font-size:12px;text-align:center;padding:8px 16px;letter-spacing:.06em;}

/* ---- responsive (common) ---- */
@media (max-width:920px){
  .hdr-entry{height:46px;padding:0 20px 0 24px;gap:14px;font-size:13px;}
  header.site .wrap{height:72px;}
  .brand .brand-sep,.brand .recruit{display:none;}
  .brand .logo-img{height:44px;}
  .stats{grid-template-columns:repeat(4,1fr);}
  .stat{grid-column:span 2;}
  .stat.w3{grid-column:span 2;}
  .foot-cols{grid-template-columns:1fr;gap:32px;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  section{padding:56px 0;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .stat,.stat.w3{grid-column:span 2;min-height:220px;padding:28px;}
  .stat .num .v,.stat.w3 .num .v{font-size:56px;}
  .stat .ic,.stat.w3 .ic{width:110px;height:110px;right:18px;bottom:18px;font-size:38px;padding:0;}
  h2.headline{font-size:20px;}
  .btn{width:100%;}
  .btn-cta{width:100%;justify-content:center;}
}

/* ===== FAQ（トグル） ===== */
.faq-list{border-top:1px solid #d7dee6;margin-top:8px;}
.faq-item{border-bottom:1px solid #d7dee6;}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 4px;cursor:pointer;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item .q{display:flex;gap:18px;align-items:baseline;font-size:clamp(18px,1.6vw,22px);font-weight:700;line-height:1.6;color:#1a2433;}
.faq-item .q b{font-family:"Poppins",sans-serif;font-size:clamp(24px,2vw,28px);font-weight:700;color:#1461D2;line-height:1;}
.faq-item .plus{position:relative;flex:none;width:36px;height:36px;border-radius:50%;background:#1461D2;}
.faq-item .plus::before,.faq-item .plus::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:#fff;transition:transform .3s ease;}
.faq-item .plus::after{transform:rotate(90deg);}
.faq-item[open] .plus::after{transform:rotate(0deg);}
.faq-a{display:flex;gap:18px;align-items:baseline;padding:0 4px 30px;}
.faq-a b{font-family:"Poppins",sans-serif;font-size:clamp(24px,2vw,28px);font-weight:700;color:#5CC8F5;line-height:1;}
.faq-a p{margin:0;font-size:15px;line-height:2;color:#1a2433;}
.faq-item[open] .faq-a{animation:faqIn .35s ease;}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}


/* 余白バランス：上端の波線ぶんを上に足し、下は次セクションの波線が伸びる分だけ詰める */
#about,#job,#environment,#philosophy,#news,#instagram,#faq,#people{padding-top:clamp(140px,18vw,290px);padding-bottom:clamp(28px,3.4vw,56px);}
#entry{padding-top:clamp(140px,18vw,290px);}
/* 見出し上の2色ライン：縦並びflexで高さ0になるのを防ぐ */
.sh::before{flex:0 0 5px;height:5px;width:100%;}
#entry .entry-script{color:#FFE14D;}
.message .sh::before{background:linear-gradient(90deg,#fff 0 50%,#FFE14D 50% 100%) center top/96px 100% no-repeat;}
.message .sh::before{background:linear-gradient(90deg,#fff 0 50%,#1461D2 50% 100%) center top/96px 100% no-repeat;}
#job .sh::before{background:linear-gradient(90deg,#fff 0 50%,#1461D2 50% 100%) left top/96px 100% no-repeat;}
/* 濃色背景の見出しライン：濃い青＋黄色 */
.message .sh::before{background:linear-gradient(90deg,#1461D2 0 50%,#FFE14D 50% 100%) center top/96px 100% no-repeat;}
#job .sh::before{background:linear-gradient(90deg,#1461D2 0 50%,#FFE14D 50% 100%) left top/96px 100% no-repeat;}
.ft-band .bl img{filter:none;}
.gm-brand img{filter:none;}

.sp-br{display:none;}

/* ヘッダーENTRY：ときどき光が走る（約5秒に1回） */
.hdr-entry{position:relative;overflow:hidden;isolation:isolate;}
.hdr-entry::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.75) 50%,rgba(255,255,255,0) 100%);transform:skewX(-20deg);pointer-events:none;animation:hdrShine 5s ease-in-out infinite;}
@keyframes hdrShine{0%,72%{left:-60%;}88%,100%{left:130%;}}
@media (prefers-reduced-motion:reduce){.hdr-entry::after{animation:none;display:none;}}

/* スマホだけ改行（PCでは1行） */
br.sp-only{display:none;}
@media (max-width:767px){br.sp-only{display:inline;}}

/* パンくずリスト（フッターの上） */
.breadcrumb{background:#fff;border-top:1px solid #e3eaf2;}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0;padding:18px 0;list-style:none;font-size:13px;line-height:1.6;}
.breadcrumb li{display:flex;align-items:center;min-width:0;color:#6b7684;}
.breadcrumb li + li::before{content:"";width:6px;height:6px;margin:0 14px 0 12px;border-top:1.5px solid #9aa6b2;border-right:1.5px solid #9aa6b2;transform:rotate(45deg);flex-shrink:0;}
.breadcrumb a{color:#1461D2;text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb li[aria-current] span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(560px,70vw);}
@media (max-width:767px){.breadcrumb ol{padding:14px 0;font-size:12px;}.breadcrumb li + li::before{margin:0 10px 0 8px;}}

/* パンくず：エントリー（Join us!）の上に置くため、直前のセクションと同じ背景色に */
.breadcrumb{background:var(--entry-prev,#fff);border-top:none;}
.breadcrumb ol{padding:22px 0 8px;}
body[data-page="job"] .breadcrumb li,body[data-page="environment"] .breadcrumb li,body[data-page="job"] .breadcrumb a,body[data-page="environment"] .breadcrumb a{color:#fff;}
body[data-page="job"] .breadcrumb li + li::before,body[data-page="environment"] .breadcrumb li + li::before{border-color:rgba(255,255,255,.8);}

/* Join us!：PCで途中改行しない */
.entry-script{white-space:nowrap;font-size:clamp(80px,8.4vw,150px);}

/* 画面には表示せず、検索エンジン・読み上げには伝える */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* 見出しタグ変更に伴うリセット */
.page-hero h1.ph-ja{line-height:1.5;}
h2.side-ttl{line-height:1.5;}
h2.title,h3.title{margin:0;}

/* パンくず：エントリー欄の波線の下（白い部分）に配置 */
.breadcrumb.in-entry{position:relative;z-index:1;background:transparent;}
.breadcrumb.in-entry ol{padding:8px 0 28px;}
body .breadcrumb.in-entry li{color:#6b7684;}
body .breadcrumb.in-entry a{color:#1461D2;}
body .breadcrumb.in-entry li + li::before{border-color:#9aa6b2;}
