/*
Theme Name: adapt
Theme URI: https://adapt-inc.jp/
Author: adapt株式会社
Description: adapt株式会社 コーポレートサイト用テーマ
Version: 1.0.3
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: adapt
*/
:root{--bg:#FFFFFF;--bg-alt:#FDFDFD;--ink:#1B2A4A;--ink-2:#3A4150;--ink-3:#4B5262;--muted:#6B7280;--line:#E6E8EC;--line-2:#D9DDE4;--accent:#6FA8DC;--accent-2:#5A88C4;--accent-3:#6A92C2;--content:1080px;--label:179px;--sans:'Noto Sans JP','Hiragino Kaku Gothic ProN',YuGothic,sans-serif;--serif:'Noto Serif JP',serif;--display:'Hanken Grotesk',sans-serif;--label-font:'Libre Baskerville',serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.7;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}a:hover{color:#46608F}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
.wrap{max-width:var(--content);margin:0 auto;padding-left:32px;padding-right:32px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:10}

/* header */
.site-header{border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:28px;padding-top:18px;padding-bottom:18px}
.site-header .logo{display:flex;flex-shrink:0}.site-header .logo img{height:24px;width:auto}
.gnav{display:flex;gap:28px;margin-left:auto;font-size:13.5px;font-weight:500}.gnav a{color:var(--ink-2)}
.site-header{position:relative;z-index:20;background:#fff}
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:22px;height:2px;border-radius:1px;background:var(--ink);transition:transform .2s,opacity .2s}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero */
.hero{position:relative;overflow:hidden;padding:149px 32px 141px}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-bg .pulse{stroke-linecap:round;opacity:0;animation:hl-pulse 6s ease-in-out infinite}
@keyframes hl-pulse{0%,100%{opacity:0}45%,55%{opacity:1}}
@media (prefers-reduced-motion:reduce){.hero-bg .pulse{animation:none;opacity:.6}}
.hero-inner{position:relative;width:650px;max-width:100%;margin:0 auto;padding-left:52px;display:flex;flex-direction:column;align-items:flex-start}
.hero h1{font-family:var(--display);font-size:84px;font-weight:700;line-height:.8;letter-spacing:-.06em;margin-bottom:40px}
.hero .l1{display:block;margin-bottom:-5px}
.hero .l2{display:block;font-size:63px}
.hero .hl{position:relative;display:inline-block;padding-left:8px;margin-left:-8px;font-style:italic}
.hero .hl .type{position:relative;display:inline-block;padding-right:14px;vertical-align:bottom}
.hero .hl .clip{position:relative;display:inline-block;white-space:nowrap;vertical-align:bottom}
.hero .hl .ch{display:inline-block;width:0;opacity:0;animation:hl-ch .01s forwards}
@keyframes hl-ch{to{width:auto;opacity:1}}
.hero .hl .ch:nth-child(1){animation-delay:0.6s}.hero .hl .ch:nth-child(2){animation-delay:0.67s}.hero .hl .ch:nth-child(3){animation-delay:0.73s}.hero .hl .ch:nth-child(4){animation-delay:0.92s}.hero .hl .ch:nth-child(5){animation-delay:0.99s}.hero .hl .ch:nth-child(6){animation-delay:1.05s}.hero .hl .ch:nth-child(7){animation-delay:1.42s}.hero .hl .ch:nth-child(8){animation-delay:1.51s}.hero .hl .ch:nth-child(9){animation-delay:1.57s}.hero .hl .ch:nth-child(10){animation-delay:1.64s}
.hero .hl .type::before{content:"";position:absolute;left:-8px;right:0;top:8%;bottom:12%;background:rgba(111,168,220,.2);transform:scaleX(0);transform-origin:left;animation:hl-sweep .2s cubic-bezier(.4,0,.2,1) 4.15s forwards}
@keyframes hl-sweep{to{transform:scaleX(1)}}
.hero .hl i{position:absolute;display:block;opacity:0;animation:hl-in .01s 4.5s forwards}
.hero .hl .caret{position:absolute;left:100%;top:0;bottom:-8px;width:2px;margin-left:16px;background:var(--ink);opacity:1;animation:hl-caret-start .6s steps(1,end) forwards,hl-caret-blink 1.2s steps(1,end) 2s infinite,hl-caret .01s 4.15s forwards}
.hero .hl .caret{animation-fill-mode:forwards,none,forwards}
@keyframes hl-caret-blink{0%{opacity:0}50%,100%{opacity:1}}
@keyframes hl-caret-start{from{margin-left:-18px}to{margin-left:16px}}
@keyframes hl-caret{to{opacity:0}}
@keyframes hl-in{to{opacity:1}}
.hero .hl .b1{left:-2px;top:-8px;bottom:0;width:2px;background:var(--accent-2)}
.hero .hl .d1{left:-6px;top:-12px;width:10px;height:10px;border-radius:50%;background:var(--accent-3)}
.hero .hl .b2{right:-2px;top:0;bottom:-8px;width:2px;background:var(--accent-2)}
.hero .hl .d2{right:-6px;bottom:-12px;width:10px;height:10px;border-radius:50%;background:var(--accent-3)}
@media (prefers-reduced-motion:reduce){.hero .hl .ch{animation:none;width:auto;opacity:1}.hero .hl .type::before{animation:none;transform:none}.hero .hl i{animation:none;opacity:1}.hero .hl .caret{display:none}}
.hero .lead{display:block;font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.7;letter-spacing:.06em;margin-top:40px}

/* sections */
.sec{padding-top:96px;padding-bottom:104px}
.sec-alt{background:var(--bg-alt)}
#about{background:#E2EEF8}.sec-alt .wrap{padding-top:96px;padding-bottom:96px}
.cols{display:grid;grid-template-columns:var(--label) minmax(0,1fr);gap:56px}
.label{font-family:var(--label-font);font-size:13px;font-weight:400;letter-spacing:.14em;padding-top:6px}
.stmt-en{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:10px}
.sp-br{display:none}
.pc-br{display:none}
html{scroll-behavior:smooth}
#business{scroll-margin-top:0}
#service-01,#service-02{scroll-margin-top:24px}
.stmt-ja{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.05em;line-height:1.6}
.about-lead{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.05em;line-height:1.7;margin-bottom:20px}
.body{font-size:14px;color:var(--ink-3);line-height:1.9;max-width:none}
.more{display:inline-block;font-size:13px;font-weight:600}
.message{display:flex;gap:22px;align-items:flex-start;border-top:1px solid var(--line-2);padding-top:32px;margin-top:40px}
.message .photo{width:120px;height:150px;flex-shrink:0;border-radius:6px;background:#E3E6EC;object-fit:cover}
.eyebrow{font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--muted);margin-bottom:12px}
.quote{font-family:var(--serif);font-size:15px;line-height:1.9;letter-spacing:.03em;margin-bottom:14px;color:#1F2430;max-width:36em}
.role{font-size:12px;color:var(--muted)}
.name{font-size:15px;font-weight:700}.name small{font-family:var(--display);font-weight:400;font-size:12px;color:var(--muted);margin-left:6px}
#business .label{margin-bottom:56px}
.biz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;padding:56px 0}
.biz+.biz{border-top:0;padding-top:94px}
.biz:nth-of-type(even) .biz-text{order:2}.biz:nth-of-type(even) .biz-photo{order:1}
.biz-photo{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.biz-photo-svg{aspect-ratio:auto;height:auto;overflow:visible;width:476px;justify-self:center}
.biz:has(.biz-photo-svg){grid-template-columns:minmax(0,1fr) 476px}
.biz .eyebrow{margin-bottom:14px}
.biz h3{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.04em;line-height:1.4;margin-bottom:20px}
.biz p{font-size:14px;color:var(--ink-3);line-height:2;margin-bottom:32px;word-break:auto-phrase;text-wrap:pretty}
.view{display:inline-flex;align-items:center;gap:40px;padding-bottom:6px;border-bottom:1px solid var(--ink);font-family:var(--display);font-size:15px;font-weight:400;letter-spacing:.02em}
.view .arrow{display:inline-flex;align-items:center;justify-content:center;width:36px;height:22px;border-radius:11px;background:var(--ink);color:#fff;font-size:14px;line-height:1}
.view:hover .arrow{background:#46608F}

/* footer */
.site-footer{background-color:#ECEDEF;background-image:linear-gradient(to right,rgba(27,42,74,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(27,42,74,.06) 1px,transparent 1px);background-size:40px 40px;background-position:20px 10px}
.site-footer .wrap{padding-top:88px}
.foot-top{display:flex;justify-content:space-between;gap:48px;align-items:flex-start}
.contact{max-width:440px}
.contact .label{margin-bottom:18px;padding-top:0}
.contact .title{font-family:var(--serif);font-size:30px;font-weight:500;letter-spacing:.06em;line-height:1.4;margin-bottom:16px}
.contact .body{margin-bottom:0;line-height:2;max-width:440px}
.btns{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-block;font-size:14px;font-weight:600;padding:13px 24px;border-radius:8px}
.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#2A3C63;color:#fff}
.btn-ghost{border:1px solid #C9CED8;background:#fff}
.fnav{display:flex;gap:40px;padding-top:6px;flex-shrink:0;white-space:nowrap}
.fnav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:13.5px}
.fnav a{color:var(--ink-2)}
.fnav .eyebrow{margin:0}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:72px;padding:24px 0 28px;font-size:12px;color:var(--muted)}
.foot-bottom .mark{font-family:var(--label-font);font-size:18px;color:var(--ink)}

@media (min-width:981px){#about .body{white-space:nowrap}#about .body .pc-br{display:inline}#vision .cols,#about .cols{grid-template-columns:calc(50% - 273px) minmax(0,1fr);column-gap:0}#vision,#about .wrap,#business{padding-left:82px;padding-right:82px}#business .biz{gap:40px}#business .biz:first-of-type{padding-top:0}#service-02{grid-template-columns:426px minmax(0,1fr)}}
@media (min-width:601px){#service-02 .biz-photo-stack>*{width:426px;max-width:none;align-self:flex-start}}
@media (max-width:980px){
  .hero{padding:110px 24px 100px}.hero-inner{padding-left:0;width:fit-content}
  .cols{grid-template-columns:1fr;gap:24px}.label{padding-top:0}
  .biz{grid-template-columns:1fr;gap:28px}
  .biz:has(.biz-photo-svg){grid-template-columns:1fr}
  .biz-photo-svg{width:476px;max-width:100%;justify-self:start}
  .biz:nth-of-type(n) .biz-text{display:contents}
  .biz{gap:0;max-width:500px;margin-left:auto;margin-right:auto}
  #business .label{max-width:500px;margin-left:auto;margin-right:auto}
  .biz .eyebrow{order:0}.biz h3{order:1}.biz p{order:3}.biz .view{order:4;justify-self:start}
  .biz:nth-of-type(n) .biz-photo,.biz:nth-of-type(n) .biz-photo-stack{order:2;margin-bottom:28px}
  .biz:nth-of-type(n) .biz-photo-svg{margin-bottom:15px}
  .biz-text>*{max-width:100%}
  .biz-photo-stack{width:100%;margin-left:0;gap:12px !important}
  .biz-photo-stack>*{flex-shrink:0;width:100%;height:auto}
  .biz-photo-stack>img{aspect-ratio:5/3}
  .foot-top{flex-direction:column}.fnav{white-space:normal;flex-wrap:wrap}
}
@media (min-width:601px) and (max-width:980px){#about .cols>div{max-width:560px;margin-left:auto;margin-right:auto}#vision .cols,#about .cols{text-align:center}#vision .body{text-align:left}#business>.label{text-align:center;margin-bottom:24px}#business .biz:first-of-type{padding-top:0}}
@media (max-width:600px){
  .biz-photo-svg{width:100%;max-width:100%}.biz-photo-svg{aspect-ratio:500/278;height:auto}.biz-photo-svg .card-back{display:none}
  .biz-photo-stack{gap:10px !important}
  .biz-photo-stack>*{width:min(100%,max(90%,294px));align-self:flex-start}
  .biz-photo-stack>*+*{margin-top:0;align-self:flex-start}
  .wrap{padding-left:20px;padding-right:20px}
  .site-header .wrap{padding-top:10px;padding-bottom:10px}
  .site-header .logo img{height:19px}
  .nav-toggle{display:flex}
  .gnav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;margin:0;padding:8px 20px 20px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(27,42,74,.08);font-size:15px}
  .nav-open .gnav{display:flex}
  .gnav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .gnav a:last-child{border-bottom:0}
  .hero{padding:84px 20px 72px}
  .hero .lead{font-size:17px}
  .stmt-en{font-size:26px}.stmt-ja,.about-lead{font-size:17px}
  #vision .cols,#about .cols{text-align:center}
  .sp-br{display:inline}
  #about .body{font-size:min(3.4vw,14px);letter-spacing:0;white-space:nowrap;line-height:1.7}
  #vision .stmt-ja{font-size:min(3.7vw,17px);letter-spacing:0;white-space:nowrap}
  #about .about-lead{font-size:min(4.1vw,17px);letter-spacing:0;white-space:nowrap}
  #about .wrap{padding-top:56px;padding-bottom:56px}
  #vision{padding-top:56px;padding-bottom:56px}
  #business>.label{text-align:center;margin-bottom:20px}
  .biz h3{font-size:21px;margin-bottom:28px}
  .view{font-size:13px;gap:28px;padding-bottom:6px}
  .view .arrow{width:30px;height:18px;font-size:12px}
  .body,.contact .body,.biz p,.quote{line-height:1.7}
  .biz p{font-size:min(3.4vw,14px);letter-spacing:0;word-break:normal;text-wrap:wrap}
  #business{padding-top:56px;padding-bottom:56px}
  #business .biz:first-of-type{padding-top:0}
  #business .biz:last-of-type{padding-bottom:0}
  #about .cols,#vision .cols{gap:20px}
  #vision .body{text-align:left}
  .message{flex-direction:column}
  .contact .title{font-size:24px}
  .fnav{flex-direction:column;gap:28px}
  .hero h1{font-size:min(84px,19vw)}.hero .l2{font-size:min(63px,14.25vw)}
}

