@charset "UTF-8";

/* ==========================================================
   株式会社リアン｜AI × BEAUTY
   style.css  v2
   ========================================================== */

/* ---- reset ---- */
*,*::before,*::after {box-sizing:border-box;}
html,body,h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,figure,figcaption,address,blockquote {margin:0;padding:0;}
ul,ol {list-style:none;}
img,svg,canvas {display:block;max-width:100%;}
img {height:auto;}
button {font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
a {color:inherit;text-decoration:none;}
address {font-style:normal;}

/* ---- tokens ---- */
:root {
  --font-jp:"Noto Sans JP",sans-serif;
  --font-en:"Poppins",sans-serif;
  --font-mincho:"Shippori Mincho",serif;

  --ink:#04101E;
  --ink-2:#08192C;
  --ink-3:#10283F;
  --line-dark:rgba(255,255,255,.14);
  --line-dark-soft:rgba(255,255,255,.07);

  --paper:#FFFFFF;
  --paper-2:#F3F5F9;
  --line:#E1E6EE;

  --text:#0B1120;
  --text-sub:#5F6B7D;
  --text-on-dark:#FFFFFF;
  --text-on-dark-sub:rgba(255,255,255,.62);

  --blue:#2E5BFF;
  --blue-deep:#1740B8;
  --sky:#5BC8FF;
  --cyan:#39D8E8;
  --champagne:#A8DCFF;

  --grad-aurora:linear-gradient(100deg,#2E5BFF 0%,#4E9BFF 46%,#39D8E8 100%);
  --grad-pearl:linear-gradient(100deg,#BFE4FF 0%,#EDF7FF 46%,#8FD8F0 100%);

  --sp-xs:8px; --sp-s:16px; --sp-m:24px; --sp-l:40px;
  --sp-xl:64px; --sp-2xl:96px; --sp-3xl:140px;
  --container:1200px; --container-narrow:840px;
  --r-s:2px; --r-m:3px; --r-pill:999px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- base ---- */
html {scroll-behavior:smooth;}
body {
  font-family:var(--font-jp);font-weight:400;font-size:15px;line-height:1.95;
  letter-spacing:.06em;color:var(--text);background:var(--paper);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection {background:rgba(46,91,255,.22);}
a:hover {color:var(--blue);}

/* ==========  primitives  ========== */
.c-container {width:100%;max-width:calc(var(--container) + 44px);margin-inline:auto;padding-inline:22px;}
.c-container--narrow {max-width:calc(var(--container-narrow) + 44px);}

/* section heading : EN大 + JP小 */
.c-head {display:grid;gap:6px;margin-bottom:var(--sp-l);}
.c-head__en {
  font-family:var(--font-en);font-weight:700;font-size:38px;line-height:1;letter-spacing:-.01em;
  background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.c-head__ja {font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--text-sub);}
.c-head--light .c-head__ja {color:var(--text-on-dark-sub);}
.c-head--center {justify-items:center;text-align:center;}

.c-lead {font-size:15px;line-height:2.05;color:var(--text-sub);}
.c-lead--light {color:var(--text-on-dark-sub);}

/* buttons : pill */
.c-btn {
  display:inline-flex;align-items:center;justify-content:space-between;gap:28px;
  min-height:58px;padding:0 26px 0 32px;border-radius:var(--r-pill);
  font-weight:700;font-size:13px;letter-spacing:.14em;font-family:var(--font-en);
  transition:background-color .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}
.c-btn__arrow {
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  transition:transform .4s var(--ease);
}
.c-btn__arrow i {font-size:17px;}
.c-btn:hover .c-btn__arrow {transform:translateX(4px);}
.c-btn--fill {background:var(--blue);color:#fff;}
.c-btn--fill:hover {background:var(--blue-deep);color:#fff;}
.c-btn--fill .c-btn__arrow {background:rgba(255,255,255,.18);}
.c-btn--ghost {background:var(--grad-aurora);color:#fff;box-shadow:0 14px 34px -18px rgba(46,91,255,.7);}
.c-btn--ghost:hover {filter:saturate(1.15) brightness(1.06);color:#fff;}
.c-btn--ghost .c-btn__arrow {background:rgba(255,255,255,.2);}
.c-btn--light {background:#fff;color:var(--ink);}
.c-btn--light:hover {background:var(--grad-pearl);color:var(--ink);}
.c-btn--light .c-btn__arrow {background:rgba(11,17,32,.08);}

.c-link {
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--blue);
}
.c-link i {font-size:18px;transition:transform .4s var(--ease);}
.c-link:hover i {transform:translateX(5px);}

/* eyebrow */
.c-eyebrow {
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.24em;color:var(--blue);
}
.c-eyebrow::before {content:"";width:34px;height:1px;background:currentColor;}
.c-eyebrow--light {color:var(--sky);}

/* placeholder : 写真が入る枠のみ（背景効果なし） */
.c-ph {position:relative;overflow:hidden;background:#EDF0F4;border:1px solid var(--line);border-radius:var(--r-m);aspect-ratio:4/3;}
.c-ph::after {
  content:attr(data-ph);position:absolute;inset:0;display:grid;place-items:center;padding:18px;
  text-align:center;font-family:var(--font-en);font-size:11px;letter-spacing:.1em;color:#8A94A6;
}
.c-ph--dark {background:rgba(255,255,255,.06);border-color:var(--line-dark);}
.c-ph--dark::after {color:var(--text-on-dark-sub);}

/* dl */
.c-dl__row {display:grid;gap:4px;padding:22px 0;border-bottom:1px solid var(--line);}
.c-dl__row:first-child {border-top:1px solid var(--line);}
.c-dl__dt {font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.18em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.c-dl__dd {font-size:15px;color:var(--text-sub);}

.u-sp {display:inline;}
.u-pc {display:none;}

/* ==========  header  ========== */
.header {
  position:fixed;inset:0 0 auto;z-index:80;
  border-bottom:1px solid transparent;
  transition:border-color .5s var(--ease);
}
.header::before {
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:rgba(4,16,30,0);backdrop-filter:blur(0);
  transition:background-color .5s var(--ease),backdrop-filter .5s var(--ease);
}
.header.is-stuck::before {background:rgba(4,16,30,.7);backdrop-filter:blur(18px);}
.header.is-stuck {border-bottom-color:var(--line-dark-soft);}
.header__inner {display:flex;align-items:center;justify-content:space-between;gap:20px;height:70px;max-width:calc(var(--container) + 44px);margin-inline:auto;padding-inline:22px;}
.logo {display:inline-flex;align-items:baseline;gap:11px;color:#fff;}
.logo__mark {font-family:var(--font-en);font-weight:700;font-size:21px;letter-spacing:.18em;line-height:1;}
.logo__sub {font-size:10px;letter-spacing:.18em;color:var(--text-on-dark-sub);}
.logo:hover {color:#fff;}

.burger {position:relative;z-index:90;display:grid;gap:6px;width:26px;padding:5px 0;}
.burger span {display:block;width:26px;height:1px;background:#fff;transition:transform .4s var(--ease),opacity .3s var(--ease);}
.burger.is-open span:nth-child(1) {transform:translateY(7px) rotate(42deg);}
.burger.is-open span:nth-child(2) {opacity:0;}
.burger.is-open span:nth-child(3) {transform:translateY(-7px) rotate(-42deg);}

.nav {
  position:fixed;inset:0;z-index:85;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-l);
  width:100%;height:100%;min-height:100svh;overflow-y:auto;
  padding:96px 26px 48px;background:linear-gradient(160deg,#08192C 0%,#123A63 100%);
  clip-path:circle(0% at calc(100% - 36px) 36px);
  transition:clip-path .7s var(--ease);
}
.nav.is-open {clip-path:circle(150% at calc(100% - 36px) 36px);}
.nav__list {display:grid;gap:var(--sp-s);}
.nav__link {display:flex;align-items:baseline;gap:14px;color:#fff;}
.nav__link:hover {color:var(--champagne);}
.nav__no {font-family:var(--font-en);font-size:10px;letter-spacing:.18em;color:var(--blue);}
.nav__en {font-family:var(--font-en);font-weight:700;font-size:28px;letter-spacing:.01em;line-height:1.2;}
.nav__ja {font-size:11px;letter-spacing:.16em;color:var(--text-on-dark-sub);}

/* ==========  hero  ========== */
.hero {position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;background:linear-gradient(165deg,#04101E 0%,#0E3157 58%,#071B30 100%);color:#fff;}
.hero__photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.5;filter:saturate(.72) contrast(1.04);}
.hero__canvas {position:absolute;inset:0;width:100%;height:100%;}
.hero__veil {position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,16,30,.6) 0%,rgba(4,16,30,.12) 42%,rgba(4,16,30,.86) 100%);}
.hero__inner {position:relative;width:100%;max-width:calc(var(--container) + 44px);margin-inline:auto;padding:132px 22px 40px;}
.hero__eyebrow {margin-bottom:var(--sp-m);}
.hero__title {font-weight:700;font-size:clamp(38px,12vw,60px);line-height:1.22;letter-spacing:.01em;margin-bottom:var(--sp-m);}
.hero__title em {
  font-style:normal;
  background:var(--grad-pearl);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__title-en {display:block;font-family:var(--font-en);font-weight:700;font-size:clamp(13px,3.6vw,17px);letter-spacing:.22em;color:var(--text-on-dark-sub);margin-bottom:14px;}
.hero__lead {font-size:14px;line-height:2.05;color:var(--text-on-dark-sub);margin-bottom:var(--sp-l);}
.hero__actions {display:flex;flex-wrap:wrap;gap:12px;margin-bottom:var(--sp-xl);}
.hero__meta {display:grid;gap:14px;padding-top:var(--sp-m);border-top:1px solid var(--line-dark);}
.hero__meta-item {display:flex;align-items:baseline;gap:14px;}
.hero__meta-num {font-family:var(--font-en);font-weight:700;font-size:26px;line-height:1;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero__meta-label {font-size:11px;letter-spacing:.14em;color:var(--text-on-dark-sub);}
.hero__scroll {display:none;}
/* hero B */
.hero--b .hero__veil {background:linear-gradient(180deg,rgba(4,16,30,.5) 0%,rgba(4,16,30,.06) 40%,rgba(4,16,30,.9) 100%);}

.hero [data-seq] {opacity:0;transform:translateY(20px);}
.hero.is-in [data-seq] {opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease);}
.hero.is-in [data-seq="2"] {transition-delay:.12s;}
.hero.is-in [data-seq="3"] {transition-delay:.24s;}
.hero.is-in [data-seq="4"] {transition-delay:.36s;}
.hero.is-in [data-seq="5"] {transition-delay:.48s;}

/* ==========  marquee  ========== */
.marquee {overflow:hidden;padding:22px 0;background:linear-gradient(90deg,#04101E 0%,#0E2C4C 50%,#04101E 100%);border-top:1px solid var(--line-dark-soft);border-bottom:1px solid var(--line-dark-soft);}
.marquee__track {display:flex;width:max-content;gap:44px;animation:marquee 34s linear infinite;}
.marquee__item {display:flex;align-items:center;gap:44px;font-family:var(--font-en);font-weight:700;font-size:34px;line-height:1;letter-spacing:.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.34);white-space:nowrap;}
.marquee__item i {font-size:16px;-webkit-text-stroke:0;color:var(--champagne);}
@keyframes marquee {to {transform:translateX(-50%);}}

/* ==========  concept  ========== */
.concept {position:relative;padding-block:var(--sp-2xl);background:var(--paper);}
.concept__visual {margin-bottom:-90px;}
.concept__photo {position:relative;overflow:hidden;border-radius:var(--r-m);}
.concept__photo img {width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.concept__photo-cap {
  position:absolute;left:0;bottom:0;padding:8px 14px;background:rgba(4,16,30,.72);color:#fff;
  font-family:var(--font-en);font-size:10px;letter-spacing:.2em;
}
.concept__visual .c-ph {aspect-ratio:16/9;border-radius:var(--r-m);}
.concept__card {position:relative;overflow:hidden;border-radius:var(--r-m);background:linear-gradient(150deg,#0A2440 0%,#123A63 55%,#0E2C4C 100%);color:#fff;padding:var(--sp-xl) 26px;}
.concept__card::before {
  content:"";position:absolute;inset:-30% -10% auto;height:120%;
  background:radial-gradient(60% 60% at 18% 0%,rgba(46,91,255,.55) 0%,rgba(46,91,255,0) 70%),
             radial-gradient(52% 52% at 92% 18%,rgba(57,216,232,.4) 0%,rgba(57,216,232,0) 72%);
  pointer-events:none;
}
.concept__inner {position:relative;}
.concept__title {
  font-family:var(--font-mincho);font-weight:600;font-size:clamp(24px,7.2vw,34px);line-height:1.6;letter-spacing:.04em;
  margin-bottom:var(--sp-m);
}
.concept__body {font-size:14px;line-height:2.1;color:var(--text-on-dark-sub);margin-bottom:var(--sp-l);}
.concept__body strong {display:block;margin-top:var(--sp-m);font-weight:700;color:#fff;}
.concept__points {display:grid;gap:var(--sp-m);margin-bottom:var(--sp-l);}
.concept__point {padding-top:var(--sp-m);border-top:1px solid var(--line-dark);}
.concept__point .c-ph {aspect-ratio:3/2;margin-bottom:14px;border-radius:var(--r-s);}
.concept__point-en {display:block;font-family:var(--font-en);font-weight:600;font-size:10px;letter-spacing:.22em;color:var(--champagne);margin-bottom:8px;}
.concept__point p {font-size:13px;line-height:1.95;color:var(--text-on-dark-sub);}

/* reveal-fill text */
.rf {display:block;}
.rf__line {display:block;color:transparent;background-image:linear-gradient(to right,#fff 0%,#fff 0%,rgba(255,255,255,.22) 0%);-webkit-background-clip:text;background-clip:text;}

/* ==========  mesh canvas (全体に散らすニューラルメッシュ)  ========== */
.mesh {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.3;}
.mesh--light {opacity: 0.08;z-index:-1;}
.service .c-container,.products .c-container {position:relative;}

/* ==========  辛セクションの背景エフェクト  ========== */
.u-fx {position:relative;isolation:isolate;}
.u-fx::before {
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(to right,rgba(11,17,32,.045) 1px,transparent 1px),
                   linear-gradient(to bottom,rgba(11,17,32,.045) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%,#000 0%,transparent 78%);
  mask-image:radial-gradient(120% 80% at 50% 0%,#000 0%,transparent 78%);
}
.u-fx::after {
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(48% 42% at 88% 4%,rgba(57,216,232,.24) 0%,rgba(57,216,232,0) 70%),
             radial-gradient(46% 40% at 2% 90%,rgba(46,91,255,.18) 0%,rgba(46,91,255,0) 72%),
             linear-gradient(180deg,rgba(233,244,255,.9) 0%,rgba(255,255,255,0) 46%);
}

/* ==========  service  ========== */
.service {position:relative;padding-block:var(--sp-2xl);background:var(--paper);overflow:hidden;}
.service__ghost {
  position:absolute;top:-14px;left:0;right:0;pointer-events:none;
  font-family:var(--font-en);font-weight:700;font-size:clamp(80px,22vw,220px);line-height:.8;
  letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(11,17,32,.06);white-space:nowrap;
}
.service__list {display:grid;gap:var(--sp-l);}
.service__item {position:relative;display:grid;gap:16px;}
.service__item .c-ph {aspect-ratio:4/3;}
.service__head {display:flex;align-items:baseline;gap:14px;}
.service__no {font-family:var(--font-en);font-weight:700;font-size:11px;letter-spacing:.2em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.service__en {
  font-family:var(--font-en);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text);
}
.service__name {font-weight:700;font-size:20px;letter-spacing:.06em;line-height:1.55;}
.service__text {font-size:14px;line-height:2.05;color:var(--text-sub);}
.service__tags {display:flex;flex-wrap:wrap;gap:8px;}
.service__tag {font-family:var(--font-en);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-sub);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;}
.service__item .c-link {justify-self:start;}

/* ==========  ai band  ========== */
.ai {position:relative;padding-block:var(--sp-2xl);background:linear-gradient(160deg,#08192C 0%,#123A63 52%,#0B2540 100%);color:#fff;overflow:hidden;}
.ai__canvas {position:absolute;inset:0;width:100%;height:100%;opacity:.2;}
.ai__inner {position:relative;}
.ai__title {font-family:var(--font-mincho);font-weight:600;font-size:clamp(23px,6.6vw,32px);line-height:1.65;letter-spacing:.04em;margin-bottom:var(--sp-m);}
.ai__body {font-size:14px;line-height:2.1;color:var(--text-on-dark-sub);margin-bottom:var(--sp-l);}
.ai__steps {display:grid;gap:0;border-top:1px solid var(--line-dark);}
.ai__step {display:grid;gap:8px;padding:22px 0;border-bottom:1px solid var(--line-dark);}
.ai__step-no {font-family:var(--font-en);font-weight:700;font-size:10px;letter-spacing:.2em;color:var(--cyan);}
.ai__step-name {font-weight:700;font-size:16px;letter-spacing:.04em;}
.ai__step-text {font-size:13px;line-height:2;color:var(--text-on-dark-sub);}

/* ==========  products (index.html)  ========== */
.products {position:relative;padding-block:var(--sp-2xl);background:var(--paper);overflow:hidden;}
.products__lead {max-width:44em;margin-bottom:var(--sp-xl);}
.products__foot {margin-top:var(--sp-xl);}

/* ==========  field  ========== */
.field {padding-block:var(--sp-2xl);background:var(--paper);border-top:1px solid var(--line);}
.field__list {display:grid;gap:0;}
.field__item {display:flex;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);}
.field__item:first-child {border-top:1px solid var(--line);}
.field__en {font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.18em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;min-width:96px;}
.field__ja {font-weight:700;font-size:17px;letter-spacing:.04em;}

/* ==========  company  ========== */
.company {padding-block:var(--sp-2xl);background:var(--paper);}
.company__dl {margin-bottom:var(--sp-l);}

/* ==========  cta  ========== */
.cta {position:relative;padding-block:var(--sp-2xl);background:linear-gradient(180deg,#08192C 0%,#11365C 62%,#0A2440 100%);color:#fff;overflow:hidden;text-align:center;}
.cta::before {
  content:"";position:absolute;inset:auto -20% -60% ;height:120%;
  background:radial-gradient(50% 50% at 50% 100%,rgba(57,216,232,.42) 0%,rgba(57,216,232,0) 70%);pointer-events:none;
}
.cta__inner {position:relative;}
.cta__title {font-family:var(--font-mincho);font-weight:600;font-size:clamp(24px,7vw,34px);line-height:1.6;letter-spacing:.04em;margin-bottom:var(--sp-s);}
.cta__lead {font-size:14px;line-height:2.05;color:var(--text-on-dark-sub);margin-bottom:var(--sp-l);}
.cta__actions {display:grid;justify-items:center;gap:var(--sp-m);}
.cta__note {font-size:11px;letter-spacing:.12em;color:var(--text-on-dark-sub);}

/* ==========  footer  ========== */
.footer {background:linear-gradient(180deg,#0A2440 0%,#04101E 100%);color:#fff;border-top:1px solid var(--line-dark-soft);}
.footer__inner {display:grid;gap:var(--sp-l);padding-block:var(--sp-xl) var(--sp-l);}
.footer__address {font-size:11px;line-height:2;color:var(--text-on-dark-sub);margin-top:var(--sp-s);}
.footer__nav {display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-m);}
.footer__list {display:grid;gap:12px;align-content:start;}
.footer__link {font-size:12px;letter-spacing:.1em;color:var(--text-on-dark-sub);}
.footer__link:hover {color:#fff;}
.footer__bottom {display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;max-width:calc(var(--container) + 44px);margin-inline:auto;padding:var(--sp-m) 22px;border-top:1px solid var(--line-dark-soft);}
.footer__copy {font-family:var(--font-en);font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.5);}

/* ==========  static preview (レビュー用フレーム)  ========== */
.is-static .hero {min-height:820px;}

/* ==========  page hero (\u4e0b\u5c64\u30da\u30fc\u30b8)  ========== */
.phero {position:relative;overflow:hidden;padding:130px 0 var(--sp-xl);background:linear-gradient(165deg,#04101E 0%,#0E3157 62%,#071B30 100%);color:#fff;}
.phero__inner {position:relative;}
.phero__crumb {display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:var(--font-en);font-size:10px;letter-spacing:.18em;color:var(--text-on-dark-sub);margin-bottom:var(--sp-m);}
.phero__crumb a:hover {color:#fff;}
.phero__en {font-family:var(--font-en);font-weight:700;font-size:clamp(38px,11vw,64px);line-height:1;letter-spacing:-.01em;background:var(--grad-pearl);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:12px;}
.phero__ja {font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--text-on-dark-sub);}
.phero__lead {font-size:14px;line-height:2.05;color:var(--text-on-dark-sub);margin-top:var(--sp-m);max-width:40em;}

/* ==========  generic content section  ========== */
.sec {position:relative;padding-block:var(--sp-2xl);background:var(--paper);}
.sec--tint {background:var(--paper-2);}
.sec__grid {display:grid;gap:var(--sp-l);}
.sec__body {font-size:14px;line-height:2.1;color:var(--text-sub);}
.sec__body p + p {margin-top:1.2em;}
.sec__title {font-weight:700;font-size:22px;letter-spacing:.05em;line-height:1.6;margin-bottom:var(--sp-s);}
.sec__num {font-family:var(--font-en);font-weight:700;font-size:11px;letter-spacing:.2em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px;}
.sec__photo {overflow:hidden;border-radius:var(--r-m);}
.sec__photo img {width:100%;aspect-ratio: auto;object-fit:cover;display:block;}
.sec__photo .pimage{
    text-align: center;
    font-size: 85%;
    color: var(--text-sub);
}
.sec__list {display:grid;gap:12px;margin-top:var(--sp-m);}
.sec__li {display:flex;gap:12px;font-size:14px;line-height:1.95;color:var(--text-sub);}
.sec__li::before {content:"";flex:0 0 auto;width:14px;height:1px;margin-top:.95em;background:var(--grad-aurora);}
.sec__action {margin-top:var(--sp-m);}

/* ==========  form  ========== */
.form {display:grid;gap:var(--sp-m);}
.form__row {display:grid;gap:8px;}
.form__label {font-weight:700;font-size:12px;letter-spacing:.12em;}
.form__label span {font-family:var(--font-en);font-size:10px;letter-spacing:.14em;color:var(--blue);margin-left:8px;}
.form__input,.form__textarea,.form__select {
  width:100%;font-family:inherit;font-size:14px;letter-spacing:.04em;color:var(--text);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.form__textarea {min-height:170px;resize:vertical;}
.form__input:focus,.form__textarea:focus,.form__select:focus {outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,91,255,.12);}
.form__note {font-size:12px;line-height:1.95;color:var(--text-sub);}
.form__submit {justify-self:start;margin-top:var(--sp-s);}

@media (min-width:1024px) {
  .phero {padding:190px 0 var(--sp-2xl);}
  .phero__lead {font-size:15px;}
  .sec {padding-block:var(--sp-3xl);}
  .sec__grid--2 {grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:start;}
  .sec__grid--side {grid-template-columns:320px 1fr;gap:var(--sp-xl);}
  .sec__body {font-size:15px;}
  .sec__title {font-size:26px;}
}

.form__legend {font-size:12px;color:var(--text-sub);margin-bottom:4px;}
.form__legend span {font-family:var(--font-en);font-size:10px;letter-spacing:.14em;color:var(--blue);margin:0 4px;}
.form__file {
  width:100%;font-family:inherit;font-size:13px;color:var(--text-sub);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 14px;
}
.form__file::file-selector-button {
  font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.08em;color:#fff;
  background:var(--blue);border:none;border-radius:var(--r-s);padding:8px 14px;margin-right:12px;
  cursor:pointer;transition:background .3s var(--ease);
}
.form__file::file-selector-button:hover {background:var(--blue-deep);}
.form__hint {font-size:11px;line-height:1.7;color:var(--text-sub);margin-top:4px;}

/* ==========  done  ========== */
.done__inner {max-width:560px;margin-inline:auto;display:grid;justify-items:center;text-align:center;gap:var(--sp-m);}
.done__icon {
  display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
  background:var(--grad-aurora);color:#fff;font-size:30px;
  box-shadow:0 14px 34px -18px rgba(46,91,255,.7);margin-bottom:4px;
}
.done__icon i {line-height:1;}
.done__lead {font-size:14px;line-height:2.05;color:var(--text-sub);margin-bottom:var(--sp-s);}

/* ==========  product card (index.html / products.html)  ========== */
.pgrid {display:grid;gap:var(--sp-xl);}
.pcard {display:grid;gap:18px;}
.pcard__media {position:relative;overflow:hidden;border-radius:var(--r-m);}
.pcard__media .c-ph {aspect-ratio:4/3;border-radius:var(--r-m);}
.pcard__media img {width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.pcard__no {
  position:absolute;left:0;top:0;padding:6px 12px;background:rgba(4,16,30,.72);color:#fff;
  font-family:var(--font-en);font-weight:700;font-size:10px;letter-spacing:.2em;
}
.pcard__en {
  font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px;
}
.pcard__title {font-weight:700;font-size:20px;letter-spacing:.05em;line-height:1.6;margin-bottom:14px;}
.pcard__text {font-size:14px;line-height:2;color:var(--text-sub);margin-bottom:18px;}
.pcard__tags {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.pcard__tag {font-family:var(--font-en);font-size:10px;letter-spacing:.14em;color:var(--text-sub);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;}

@media (min-width:768px) {
  .pgrid {grid-template-columns:repeat(2,1fr);gap:var(--sp-xl) var(--sp-l);}
}
@media (min-width:1024px) {
  .pgrid {grid-template-columns:repeat(3,1fr);}
  .pcard__title {font-size:21px;}
}

/* ==========  product flow  ========== */
.pflow {display:grid;gap:0;border-top:1px solid var(--line);}
.pflow__item {display:grid;gap:8px;padding:26px 0;border-bottom:1px solid var(--line);}
.pflow__no {font-family:var(--font-en);font-weight:700;font-size:10px;letter-spacing:.2em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.pflow__name {font-weight:700;font-size:17px;letter-spacing:.04em;line-height:1.6;}
.pflow__text {font-size:13px;line-height:2;color:var(--text-sub);}

@media (min-width:768px) {
  .pflow {grid-template-columns:repeat(3,1fr);gap:0 var(--sp-l);}
  .pflow__item {border-bottom:none;}
}
@media (min-width:1024px) {
  .pflow__name {font-size:18px;}
  .pflow__text {font-size:14px;}
}

/* ==========  product detail (product-*.html)  ========== */
.pdetail__no {display:inline-block;font-family:var(--font-en);font-weight:600;font-size:10px;letter-spacing:.24em;color:var(--sky);margin-bottom:14px;}
.pdetail__tags {display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--sp-m);}
.pdetail__note {font-size:12px;line-height:1.95;color:var(--text-sub);margin-top:var(--sp-m);}
.pdetail__back {margin-top:var(--sp-l);}

.pfeat {display:grid;gap:var(--sp-l);}
.pfeat__item {display:grid;gap:12px;align-content:start;padding-top:var(--sp-m);border-top:1px solid var(--line);}
.pfeat__icon {display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--blue);}
.pfeat__icon i {font-size:21px;line-height:1;}
.pfeat__title {font-weight:700;font-size:16px;letter-spacing:.04em;line-height:1.65;}
.pfeat__text {font-size:13px;line-height:2;color:var(--text-sub);}

@media (min-width:768px) {
  .pfeat {grid-template-columns:repeat(2,1fr);gap:var(--sp-l);}
}
@media (min-width:1024px) {
  .pfeat {grid-template-columns:repeat(4,1fr);}
  .pfeat__title {font-size:17px;}
  .pfeat__text {font-size:14px;}
}

.pshots {display:grid;gap:var(--sp-l);}
.pshot {display:grid;gap:12px;}
.pshot .c-ph {aspect-ratio:16/10;border-radius:var(--r-m);}
.pshot img {width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid var(--line);border-radius:var(--r-m);}
.pshot__cap {font-size:12px;letter-spacing:.1em;color:var(--text-sub);}

@media (min-width:768px) {
  .pshots {grid-template-columns:repeat(3,1fr);gap:var(--sp-m);}
}

/* ==========  reveal  ========== */
.js-anim .rv {opacity:0;transform:translateY(22px);}
.js-anim .rv.is-in {opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease);}

/* ==========  md 768  ========== */
@media (min-width:768px) {
  .c-head__en {font-size:52px;}
  .concept__card {padding:var(--sp-2xl) var(--sp-xl);}
  .concept__points {grid-template-columns:repeat(3,1fr);gap:var(--sp-l);}
  .service__list {grid-template-columns:repeat(2,1fr);gap:var(--sp-l);}
  .ai__steps {grid-template-columns:repeat(3,1fr);gap:0 var(--sp-l);}
  .ai__step {border-bottom:none;}
  .field__list {grid-template-columns:repeat(2,1fr);column-gap:var(--sp-l);}
  .c-dl__row {grid-template-columns:210px 1fr;gap:26px;}
  .hero__meta {grid-template-columns:repeat(3,1fr);}
  .footer__inner {grid-template-columns:1fr auto;}
  .footer__nav {gap:var(--sp-2xl);}
  .cta__actions {grid-auto-flow:column;justify-content:center;align-items:center;gap:var(--sp-xl);}
}

/* ==========  lg 1024  ========== */
@media (min-width:1024px) {
  body {font-size:16px;}
  .u-sp {display:none;}
  .u-pc {display:inline;}
  .header__inner {height:86px;}
  .burger {display:none;}
  .nav {position:static;flex-direction:row;align-items:center;justify-content:flex-end;gap:var(--sp-l);width:auto;height:auto;min-height:0;overflow:visible;background:none;padding:0;clip-path:none;}
  .nav__list {display:flex;gap:var(--sp-m);}
  .nav__link {display:inline-flex;align-items:center;gap:8px;}
  .nav__no {display:none;}
  .nav__en {font-weight:600;font-size:12px;letter-spacing:.16em;}
  .nav__ja {display:none;}
  .nav .c-btn {min-height:46px;padding:0 16px 0 22px;gap:16px;font-size:11px;}
  .nav .c-btn__arrow {width:24px;height:24px;}

  .hero__inner {padding:0 22px var(--sp-xl);}
  .hero__title {font-size:clamp(52px,5.4vw,78px);line-height:1.16;}
  .hero__lead {font-size:15px;max-width:34em;}
  .hero__meta-num {font-size:34px;}
  .hero__scroll {display:flex;align-items:center;gap:12px;position:absolute;right:22px;bottom:var(--sp-xl);font-family:var(--font-en);font-size:10px;letter-spacing:.24em;color:var(--text-on-dark-sub);}
  .hero__scroll::after {content:"";width:64px;height:1px;background:linear-gradient(to right,rgba(255,255,255,.5),transparent);}

  .marquee__item {font-size:56px;gap:60px;}
  .marquee__track {gap:60px;}

  .concept,.service,.ai,.products,.field,.company,.cta {padding-block:var(--sp-3xl);}
  .concept__grid {display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:start;}
  .concept__visual {margin-bottom:-160px;}
  .concept__body {font-size:15px;}
  .service__list {grid-template-columns:repeat(4,1fr);}
  .service__name {font-size:21px;}
  .ai__grid {display:grid;grid-template-columns:.95fr 1fr;gap:var(--sp-xl);align-items:end;}
  .ai__body {font-size:15px;}
  .field__list {grid-template-columns:repeat(4,1fr);}
  .field__item,.field__item:first-child {flex-direction:column;align-items:flex-start;gap:12px;padding:26px 0 26px 26px;border-top:1px solid var(--line);border-bottom:none;}
  .field__ja {font-size:21px;}
  .company__dl {max-width:var(--container-narrow);}
  .footer__inner {padding-block:var(--sp-2xl) var(--sp-xl);}
}

/* ==========  reduced motion  ========== */
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  *,*::before,*::after {animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .rv,.hero [data-seq] {opacity:1 !important;transform:none !important;}
}


/* ==========  privacy policy (privacy.html)  ========== */
.policy {display:grid;gap:var(--sp-l);}
.policy__block {display:grid;gap:12px;padding-top:var(--sp-m);border-top:1px solid var(--line);}
.policy__no {font-family:var(--font-en);font-weight:700;font-size:10px;letter-spacing:.24em;background:var(--grad-aurora);-webkit-background-clip:text;background-clip:text;color:transparent;}
.policy__title {font-weight:700;font-size:17px;letter-spacing:.05em;line-height:1.7;}
.policy__text {font-size:13px;line-height:2.1;color:var(--text-sub);}
.policy__list {display:grid;gap:8px;}
.policy__item {position:relative;padding-left:18px;font-size:13px;line-height:2.1;color:var(--text-sub);}
.policy__item::before {content:"";position:absolute;left:0;top:.95em;width:8px;height:1px;background:var(--grad-aurora);}
.policy__dl {margin-top:var(--sp-s);}
.policy__date {margin-top:var(--sp-m);font-size:12px;line-height:2;letter-spacing:.08em;color:var(--text-sub);}

@media (min-width:1024px) {
  .policy {gap:var(--sp-xl);}
  .policy__title {font-size:19px;}
  .policy__text,.policy__item {font-size:14px;}
}