  :root{
    --c-ink:#111111;        /* 主要テキスト */
    --c-ink-soft:#555555;   /* 補助テキスト */
    --c-line:#e4e4e4;       /* 罫線 */
    --c-bg:#ffffff;         /* 背景 */
    --c-bg-alt:#f6f6f4;     /* 反転セクション */
    --c-accent:#9e73b4;     /* アクセント（紫・最小限） */
    --c-accent-dark:#7e57a0;/* アクセント濃いめ（hover用） */
    --ff-ja:"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,"Noto Sans JP",sans-serif;
    --ff-en:"Helvetica Neue",Arial,sans-serif;
    --maxw:1160px;
    --pad:clamp(20px,5vw,64px);
    --gap-section:clamp(80px,12vw,160px);
  }

  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;min-width:320px;}
  body{
    font-family:var(--ff-ja);
    color:var(--c-ink);
    background:var(--c-bg);
    line-height:1.9;
    font-size:16px;
    letter-spacing:.02em;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .en{font-family:var(--ff-en);letter-spacing:.08em;}

  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}

  /* ============ Header ============ */
  #header{
    position:fixed;inset:0 0 auto 0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px var(--pad);
    background:rgba(255,255,255,.85);
    backdrop-filter:saturate(120%) blur(8px);
    border-bottom:1px solid transparent;
    transition:border-color .3s,background .3s;
  }
  #header.scrolled{border-bottom-color:var(--c-line);}
  .logo{font-family:var(--ff-en);font-weight:700;font-size:20px;letter-spacing:.04em;}
  .logo .plus{font-weight:300;color:var(--c-accent);}
  nav{margin-left:auto;}
  nav ul{display:flex;gap:32px;list-style:none;align-items:center;}
  nav a{font-family:var(--ff-en);font-size:13px;letter-spacing:.1em;color:var(--c-ink-soft);transition:color .2s;}
  nav a:hover{color:var(--c-ink);}
  nav li.is-current a{color:var(--c-ink);position:relative;}
  nav li.is-current a::after{
    content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;
    background:var(--c-accent);border-radius:1px;
  }
  .nav-cta{
    border:1px solid var(--c-ink);padding:10px 22px;border-radius:999px;
    font-family:var(--ff-en);font-size:13px;letter-spacing:.1em;color:var(--c-ink)!important;
    transition:background .25s,color .25s;
  }
  .nav-cta:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff!important;}
  .menu-btn{
    display:none;flex-direction:column;justify-content:center;gap:5px;
    background:none;border:0;cursor:pointer;z-index:101;padding:8px;margin:-8px;
  }
  .menu-btn span{
    width:24px;height:1.5px;background:var(--c-ink);display:block;
    transition:transform .3s ease,opacity .3s ease;
  }
  .menu-btn.is-active span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .menu-btn.is-active span:nth-child(2){opacity:0;}
  .menu-btn.is-active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
  .menu-backdrop{
    position:fixed;inset:0;z-index:98;border:0;padding:0;margin:0;
    background:rgba(255,255,255,.9);cursor:pointer;
    opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease;
  }
  .menu-backdrop.is-visible{opacity:1;visibility:visible;}
  body.menu-open{overflow:hidden;}

  /* ============ 右固定：Contact + Scroll Down ============ */
  .fixed-rail{
    position:fixed;right:0;top:50%;transform:translateY(-50%);
    z-index:95;display:flex;flex-direction:column;align-items:stretch;
  }
  .fixed-contact{
    display:flex;flex-direction:column;align-items:center;gap:10px;
    padding:28px 14px 24px;background:var(--c-ink);color:#fff;
    font-family:var(--ff-en);letter-spacing:.14em;
    transition:background .3s,opacity .4s;
  }
  .fixed-contact:hover{background:var(--c-accent);}
  .fixed-contact .fc-en{
    writing-mode:vertical-rl;font-size:13px;font-weight:700;
    letter-spacing:.22em;
  }
  .fixed-contact .fc-ja{
    writing-mode:vertical-rl;font-family:var(--ff-ja);font-size:11px;
    letter-spacing:.12em;color:rgba(255,255,255,.75);line-height:1.4;
  }
  .fixed-contact.is-hidden{opacity:0;pointer-events:none;}

  /* ============ Hero（左コピー / 右ビジュアル分割） ============ */
  .hero{
    min-height:auto;position:relative;overflow:hidden;
    padding:0;padding-top:72px;
  }
  /* 方眼紙＋設計図面風（控えめ） */
  .hero-bg{
    position:absolute;inset:0;right:42%;z-index:0;pointer-events:none;
    background-color:#fcfcfb;
    background-image:
      linear-gradient(to right,rgba(158,115,180,.028) 1px,transparent 1px),
      linear-gradient(to bottom,rgba(158,115,180,.028) 1px,transparent 1px),
      linear-gradient(to right,rgba(158,115,180,.055) 1px,transparent 1px),
      linear-gradient(to bottom,rgba(158,115,180,.055) 1px,transparent 1px);
    background-size:20px 20px,20px 20px,100px 100px,100px 100px;
    background-position:0 0,0 0,0 0,0 0;
  }
  .hero-bg::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(90deg,transparent 55%,#fff 92%);
  }
  .hero-bg::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse 90% 70% at 12% 35%,rgba(158,115,180,.04) 0%,transparent 60%);
  }
  .hero-copy-main{
    position:relative;z-index:2;flex:1;
    display:flex;flex-direction:column;justify-content:center;
    min-height:0;
  }
  .hero-deco{
    position:relative;z-index:0;flex-shrink:0;
    height:clamp(100px,20vh,155px);margin-top:clamp(20px,3vh,32px);
    overflow:hidden;pointer-events:none;
    -webkit-mask-image:linear-gradient(to top,#000 70%,transparent 100%);
    mask-image:linear-gradient(to top,#000 70%,transparent 100%);
  }
  .hero-sketch{
    position:absolute;left:-6%;right:-4%;bottom:0;
    height:100%;opacity:.36;
  }
  .hero-sketch svg{width:100%;height:100%;display:block;}
  .hero-sketch .sketch-path{
    fill:none;stroke:rgba(158,115,180,.42);stroke-width:1.2;
    stroke-linecap:round;stroke-linejoin:round;
    stroke-dasharray:var(--sketch-len,600);
    stroke-dashoffset:var(--sketch-len,600);
  }
  .hero.is-ready .hero-sketch .sketch-path{
    animation:sketch-draw 1.4s cubic-bezier(.45,0,.2,1) forwards;
  }
  @keyframes sketch-draw{to{stroke-dashoffset:0;}}
  @media(prefers-reduced-motion:reduce){
    .hero-sketch .sketch-path{stroke-dashoffset:0;animation:none;}
  }
  @media(max-width:860px){
    .hero-deco{height:clamp(80px,18vh,120px);margin-top:16px;}
    .hero-sketch{opacity:.22;}
  }
  .hero-deco::before{
    content:"";position:absolute;top:-clamp(48px,10vh,80px);left:0;
    width:36px;height:36px;
    border-top:1px solid rgba(158,115,180,.18);
    border-left:1px solid rgba(158,115,180,.18);
  }
  .hero-deco::after{
    content:"";position:absolute;top:8px;right:12%;
    width:min(36%,200px);height:1px;
    background:repeating-linear-gradient(
      90deg,
      rgba(158,115,180,.2) 0 6px,
      transparent 6px 14px
    );
    opacity:.55;
    background-position:0 0;
  }
  @media(prefers-reduced-motion:no-preference){
    .hero-bg{animation:hero-grid-drift 32s linear infinite;}
    .hero-bg::after{animation:hero-glow 8s ease-in-out infinite;}
    .hero-deco::after{animation:hero-dash 2.8s linear infinite;}
    .hero-deco::before{animation:hero-corner 6s ease-in-out infinite;}
  }
  @keyframes hero-grid-drift{
    to{background-position:20px 20px,20px 20px,100px 100px,100px 100px;}
  }
  @keyframes hero-glow{
    0%,100%{opacity:1;}
    50%{opacity:.55;}
  }
  @keyframes hero-dash{
    to{background-position:14px 0;}
  }
  @keyframes hero-corner{
    0%,100%{opacity:1;}
    50%{opacity:.45;}
  }
  .hero-layout{
    position:relative;z-index:1;
    display:grid;grid-template-columns:minmax(0,1fr) min(46vw,560px);
    min-height:clamp(580px,88vh,820px);align-items:stretch;
  }
  .hero-copy{
    position:relative;isolation:isolate;
    display:flex;flex-direction:column;
    padding:clamp(28px,5vh,56px) var(--pad) clamp(48px,6vh,72px);
    max-width:640px;
  }
  .hero .eyebrow{font-family:var(--ff-en);font-size:13px;letter-spacing:.28em;color:var(--c-ink-soft);margin-bottom:28px;}
  .hero h1,.hero-draw-title{
    font-size:clamp(32px,5.2vw,72px);font-weight:700;line-height:1.18;
    letter-spacing:.01em;margin-bottom:28px;
  }
  .hero-draw-title{position:relative;opacity:1;transform:none;}
  .hero-draw-title .draw-line{display:block;clip-path:inset(0 0 0 0);}
  .hero.hero-animate:not(.is-ready) .hero-draw-title .draw-line{clip-path:inset(0 100% 0 0);}
  .hero.is-ready .hero-draw-title .draw-line{
    animation:hero-text-draw 1.15s cubic-bezier(.45,0,.2,1) forwards;
  }
  .hero.is-ready .hero-draw-title .draw-line:nth-child(1){animation-delay:.18s;}
  .hero.is-ready .hero-draw-title .draw-line:nth-child(2){animation-delay:.52s;}
  @keyframes hero-text-draw{to{clip-path:inset(0 0 0 0);}}
  .hero-draw-title .accent{display:block;color:var(--c-accent);}
  .hero-title-svg{
    position:absolute;left:0;bottom:2px;width:100%;height:28px;
    overflow:visible;pointer-events:none;
  }
  .hero-title-svg .title-stroke{
    fill:none;stroke:rgba(158,115,180,.45);stroke-width:1.4;
    stroke-linecap:round;stroke-linejoin:round;
    stroke-dasharray:var(--sketch-len,400);stroke-dashoffset:var(--sketch-len,400);
  }
  .hero.is-ready .hero-title-svg .title-stroke{
    animation:sketch-draw 1.1s cubic-bezier(.45,0,.2,1) forwards;
  }
  .hero.is-ready .hero-title-svg .title-stroke[data-d="1"]{animation-delay:.75s;}
  .hero h1 .accent{display:block;color:var(--c-accent);}
  .hero p.lead{font-size:clamp(15px,1.8vw,18px);color:var(--c-ink-soft);max-width:42ch;margin-bottom:36px;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
  .hero-actions a{
    display:inline-flex;align-items:center;justify-content:center;
    border-radius:999px;padding:14px 32px;
    font-family:var(--ff-en);font-size:13px;letter-spacing:.12em;
    transition:background .25s,color .25s,border-color .25s;
  }
  .hero-actions .btn-primary{border:1px solid var(--c-ink);background:var(--c-ink);color:#fff;}
  .hero-actions .btn-primary:hover{background:var(--c-accent);border-color:var(--c-accent);}
  .hero-media{
    position:relative;min-height:100%;overflow:hidden;
    background:linear-gradient(145deg,#2a2a2e 0%,#141416 55%,#0d0d0f 100%);
  }
  .hero-slideshow{position:absolute;inset:0;}
  .hero-slide{
    position:absolute;inset:0;z-index:0;opacity:0;
    transition:opacity 1s ease-in-out;
    will-change:opacity;
  }
  .hero-slide.is-leaving{opacity:1;z-index:1;}
  .hero-slide.is-leaving.is-out{opacity:0;}
  .hero-slide.is-active{opacity:1;z-index:2;}
  .hero-slide img{
    width:100%;height:100%;object-fit:cover;object-position:center 30%;
  }
  .hero-slideshow-dots{
    position:absolute;left:50%;bottom:max(18px, calc(12px + env(safe-area-inset-bottom, 0px)));
    transform:translateX(-50%);
    z-index:2;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
    gap:8px;row-gap:6px;max-width:min(100% - 32px, 240px);padding:0 4px;
    pointer-events:none;
  }
  .hero-slideshow-dots button{
    width:8px;height:8px;padding:0;border:0;border-radius:50%;flex-shrink:0;
    background:rgba(255,255,255,.45);cursor:pointer;pointer-events:auto;
    transition:background .25s,transform .25s;
  }
  .hero-slideshow-dots button.is-active{
    background:#fff;transform:scale(1.2);
    animation:hero-dot-pulse 3.5s ease-in-out infinite;
  }
  @keyframes hero-dot-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.5);}
    50%{box-shadow:0 0 0 6px rgba(255,255,255,0);}
  }
  .hero-slideshow-dots button:hover{background:rgba(255,255,255,.85);}
  .hero-scroll{
    display:flex;flex-direction:column;align-items:center;gap:10px;
    padding:16px 12px 20px;background:#fff;
    font-family:var(--ff-en);font-size:11px;letter-spacing:.18em;color:var(--c-ink-soft);
    border-top:1px solid var(--c-line);
    transition:opacity .4s,background .25s;
  }
  .hero-scroll:hover{background:var(--c-bg-alt);color:var(--c-ink);}
  .hero-scroll .label{display:block;line-height:1.35;text-align:center;}
  .hero-scroll.is-hidden{opacity:0;pointer-events:none;}
  .hero-scroll .line{
    width:1px;height:56px;background:var(--c-line);position:relative;overflow:hidden;
  }
  .hero-scroll .line::after{
    content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;
    background:var(--c-accent);
    animation:hero-scroll-line 2s cubic-bezier(.4,0,.2,1) infinite;
  }
  @keyframes hero-scroll-line{
    0%{top:-100%;}
    55%,100%{top:100%;}
  }
  .hero-intro{
    opacity:1;transform:none;
    transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);
  }
  .hero-media.hero-intro{transform:none;}
  .hero.hero-animate:not(.is-ready) .hero-intro{
    opacity:0;transform:translateY(28px);
  }
  .hero.hero-animate:not(.is-ready) .hero-media.hero-intro{transform:translateX(24px);}
  .hero.is-ready .hero-intro{opacity:1;transform:none;}
  .hero.is-ready .hero-intro[data-d="1"]{transition-delay:.08s;}
  .hero.is-ready .hero-intro[data-d="2"]{transition-delay:.18s;}
  .hero.is-ready .hero-intro[data-d="3"]{transition-delay:.28s;}
  .hero.is-ready .hero-intro[data-d="4"]{transition-delay:.38s;}
  .hero.is-ready .hero-intro[data-d="5"]{transition-delay:.5s;}

  /* ============ Section common ============ */
  section{padding-block:var(--gap-section);}
  .sec-head{margin-bottom:clamp(40px,6vw,72px);}
  .sec-head .label{
    font-family:var(--ff-en);font-size:13px;letter-spacing:.22em;color:var(--c-ink-soft);
    display:flex;align-items:center;gap:14px;margin-bottom:18px;
  }
  .sec-head .label::before{content:"";width:36px;height:2px;background:var(--c-accent);}
  .sec-head h2{font-size:clamp(26px,4vw,44px);font-weight:700;line-height:1.4;}

  /* ============ About（画像を色面からずらすレイヤード表現） ============ */
  .about{position:relative;overflow:hidden;}
  /* 左に敷く色面ブロック */
  .about::before{content:"";position:absolute;inset:0 40% 0 0;background:var(--c-bg-alt);z-index:0;}
  .about .wrap{position:relative;z-index:1;}
  .about .grid{display:grid;grid-template-columns:1fr 1.04fr;gap:clamp(32px,6vw,72px);align-items:center;}
  .about .label{font-family:var(--ff-en);font-size:13px;letter-spacing:.22em;color:var(--c-ink-soft);display:flex;align-items:center;gap:14px;margin-bottom:14px;}
  .about .label::before{content:"";width:36px;height:2px;background:var(--c-accent);}
  .about .about-h{font-family:var(--ff-en);font-size:clamp(40px,7vw,76px);font-weight:700;line-height:1;letter-spacing:.01em;}
  .about .about-sub{font-size:14px;color:var(--c-ink-soft);letter-spacing:.1em;margin-top:12px;}
  .about .big{font-size:clamp(20px,3vw,30px);font-weight:700;line-height:1.6;margin:32px 0 24px;}
  .about .body{color:var(--c-ink-soft);}
  .about .body p+p{margin-top:1.4em;}
  /* 画像フレーム＋オフセット矩形 */
  .about-visual{position:relative;}
  .about-visual .frame{
    position:relative;z-index:2;aspect-ratio:4/5;overflow:hidden;
    background:linear-gradient(135deg,#2a2a2e 0%,#1a1a1d 60%,#111 100%);
    box-shadow:0 36px 70px -34px rgba(0,0,0,.45);
  }
  .about-visual .frame img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  }
  /* 背後に覗く紫のオフセット矩形（=ずらし） */
  .about-visual::after{
    content:"";position:absolute;z-index:1;right:-26px;bottom:-26px;
    width:62%;height:62%;background:var(--c-accent);
  }

  /* ============ Service（左右交互＋画像のずらし） ============ */
  .service{position:relative;overflow:hidden;}
  .service .wrap{position:relative;z-index:1;}
  .svc-ball-track{
    position:relative;width:100%;height:60px;
    margin:-8px 0 clamp(20px,4vw,36px);
    pointer-events:none;
  }
  .svc-ball{
    position:absolute;top:50%;left:-56px;width:56px;height:56px;margin-top:-28px;
    border-radius:50%;overflow:hidden;
    opacity:0;will-change:left,transform,opacity;
    filter:drop-shadow(0 5px 12px rgba(0,0,0,.14));
  }
  .svc-ball img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;}
  .svc-ball-track.is-ball-roll .svc-ball{
    animation:svc-ball-roll 3.2s cubic-bezier(.35,0,.25,1) forwards;
  }
  @keyframes svc-ball-roll{
    0%{left:-56px;transform:rotate(0deg);opacity:0;}
    6%{opacity:1;}
    88%{left:calc(100% - 56px);transform:rotate(2520deg);opacity:1;}
    94%{left:calc(100% - 56px);transform:rotate(2560deg) translateY(-5px);}
    100%{left:calc(100% - 56px);transform:rotate(2520deg) translateY(0);opacity:1;}
  }
  .svc-row{
    display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,84px);align-items:center;
    margin-bottom:clamp(72px,10vw,128px);
  }
  .svc-row:last-child{margin-bottom:0;}
  /* 偶数行は左右反転 */
  .svc-row.rev .svc-visual{order:2;}
  .svc-row.rev .svc-content{order:1;}
  /* 画像パネル＋紫オフセット（Aboutと同手法で統一） */
  .svc-visual{position:relative;}
  .svc-visual .frame{
    position:relative;z-index:2;aspect-ratio:4/3;overflow:hidden;
    background:linear-gradient(135deg,#2a2a2e,#141416);
    box-shadow:0 30px 60px -34px rgba(0,0,0,.4);
  }
  .svc-visual .frame img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  }
  .svc-visual::after{content:"";position:absolute;z-index:1;width:54%;height:54%;background:var(--c-accent);}
  .svc-row:not(.rev) .svc-visual::after{left:-24px;bottom:-24px;}
  .svc-row.rev .svc-visual::after{right:-24px;bottom:-24px;}
  /* コンテンツ */
  .svc-num{font-family:var(--ff-en);font-size:clamp(44px,6vw,76px);font-weight:700;line-height:1;color:#e9e6ec;margin-bottom:6px;}
  .svc-title{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;}
  .svc-title .ja{font-size:clamp(24px,3.2vw,34px);font-weight:700;}
  .svc-title .en{font-family:var(--ff-en);font-size:13px;letter-spacing:.18em;color:var(--c-accent);}
  .svc-desc{color:var(--c-ink-soft);max-width:46ch;margin-bottom:26px;}
  .svc-tags{display:flex;flex-wrap:wrap;gap:10px;}
  .svc-tags li{
    list-style:none;font-size:13px;letter-spacing:.04em;
    border:1px solid var(--c-line);border-radius:999px;padding:8px 16px;color:var(--c-ink);
    transition:border-color .2s,color .2s;
  }
  .svc-tags li:hover{border-color:var(--c-accent);color:var(--c-accent);}
  /* 選ばれる理由（アスリート支援の下） */
  .svc-chosen{
    position:relative;margin-top:clamp(24px,5vw,48px);overflow:hidden;
    padding:clamp(48px,7vw,80px) clamp(28px,5vw,56px);
    background:var(--c-bg-alt);
  }
  .svc-chosen::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      radial-gradient(ellipse 60% 50% at 100% 0%,rgba(158,115,180,.1) 0%,transparent 55%),
      linear-gradient(to right,rgba(158,115,180,.04) 1px,transparent 1px),
      linear-gradient(to bottom,rgba(158,115,180,.04) 1px,transparent 1px);
    background-size:auto,24px 24px,24px 24px;
  }
  .svc-chosen::after{
    content:"";position:absolute;right:-12px;bottom:-12px;z-index:0;
    width:clamp(80px,14vw,120px);height:clamp(80px,14vw,120px);
    background:var(--c-accent);opacity:.35;
  }
  .chosen-watermark{
    position:absolute;right:clamp(12px,4vw,48px);top:50%;transform:translateY(-58%);
    font-family:var(--ff-en);font-weight:700;font-size:clamp(64px,14vw,140px);
    line-height:.9;letter-spacing:-.03em;color:transparent;
    -webkit-text-stroke:1px rgba(158,115,180,.1);pointer-events:none;z-index:0;
  }
  .svc-chosen > *{position:relative;z-index:1;}
  .chosen-head{text-align:center;margin-bottom:clamp(44px,6vw,64px);}
  .chosen-head .label{
    font-family:var(--ff-en);font-size:12px;letter-spacing:.28em;color:var(--c-accent);
    display:inline-flex;align-items:center;justify-content:center;gap:12px;
    margin-bottom:clamp(18px,3vw,24px);font-weight:700;
  }
  .chosen-head .label::before,
  .chosen-head .label::after{content:"";width:28px;height:1px;background:currentColor;opacity:.5;}
  .chosen-head h3{
    font-size:clamp(26px,4.6vw,42px);font-weight:700;line-height:1.45;letter-spacing:.01em;
    margin-bottom:clamp(18px,3vw,26px);
  }
  .chosen-head h3 .hl{
    position:relative;color:var(--c-accent);white-space:nowrap;
  }
  .chosen-head h3 .hl::after{
    content:"";position:absolute;left:-2%;right:-2%;bottom:.08em;height:.34em;z-index:-1;
    background:linear-gradient(180deg,transparent 40%,rgba(158,115,180,.22) 40%);
  }
  .chosen-head .chosen-lead{
    font-size:clamp(14px,2vw,16px);color:var(--c-ink-soft);line-height:1.95;
    max-width:44em;margin:0 auto clamp(22px,3vw,30px);
  }
  .chosen-head .chosen-hook{
    display:inline-block;font-size:clamp(16px,2.3vw,21px);font-weight:700;line-height:1.55;
  }
  .chosen-head .chosen-hook .hl{color:var(--c-accent);}
  .chosen-cards{
    list-style:none;display:grid;grid-template-columns:repeat(3,1fr);
    gap:clamp(18px,2.6vw,28px);margin-bottom:clamp(36px,5vw,52px);
  }
  .chosen-card{
    position:relative;background:#fff;border-radius:18px;
    border:1px solid rgba(17,17,17,.06);
    box-shadow:0 10px 30px -18px rgba(17,17,17,.16);
    overflow:hidden;display:flex;flex-direction:column;
    opacity:1;transform:translateY(0);
    transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .4s ease;
  }
  html.laplus-anim .svc-chosen:not(.in) .chosen-card{
    opacity:0;transform:translateY(24px);
  }
  .chosen-card:hover{
    transform:translateY(-6px);border-color:rgba(158,115,180,.4);
    box-shadow:0 26px 50px -26px rgba(158,115,180,.4);
  }
  .svc-chosen.in .chosen-card:hover{transform:translateY(-6px);}
  .chosen-card-num{
    position:absolute;top:clamp(14px,2vw,18px);right:clamp(16px,2.2vw,22px);z-index:2;
    font-family:var(--ff-en);font-size:clamp(28px,3.6vw,40px);font-weight:700;
    line-height:1;color:#f0eaf4;letter-spacing:-.02em;transition:color .35s;
  }
  .chosen-card:hover .chosen-card-num{color:rgba(158,115,180,.4);}
  .chosen-card-head{
    text-align:center;padding:clamp(26px,3.2vw,34px) clamp(18px,2vw,24px) clamp(10px,1.6vw,14px);
  }
  .chosen-card-title{
    font-size:clamp(15px,1.95vw,18px);font-weight:700;line-height:1.55;
    color:var(--c-accent);margin-bottom:6px;
  }
  .chosen-card-sub{
    font-size:clamp(14px,1.7vw,16px);font-weight:700;line-height:1.6;color:var(--c-ink);
  }
  .chosen-illust{
    position:relative;flex:1;display:flex;align-items:center;justify-content:center;
    min-height:clamp(180px,23vw,240px);
    padding:clamp(4px,1.2vw,12px) clamp(10px,1.6vw,18px) clamp(14px,2vw,22px);
  }
  .chosen-illust img{
    width:100%;max-width:280px;
    max-height:clamp(170px,21vw,220px);
    object-fit:contain;object-position:center;
    transition:transform .5s cubic-bezier(.22,1,.36,1);
  }
  .chosen-card:first-child .chosen-illust img{
    width:90%;max-width:252px;
    max-height:clamp(153px,18.9vw,198px);
  }
  .chosen-card:hover .chosen-illust img{transform:translateY(-4px) scale(1.03);}
  .chosen-card:first-child:hover .chosen-illust img{transform:translateY(-4px) scale(.93);}
  .svc-chosen.in .chosen-card{opacity:1;transform:translateY(0);}
  .svc-chosen.in .chosen-card:nth-child(1){transition-delay:.08s;}
  .svc-chosen.in .chosen-card:nth-child(2){transition-delay:.18s;}
  .svc-chosen.in .chosen-card:nth-child(3){transition-delay:.28s;}
  .chosen-foot{
    display:flex;align-items:center;gap:clamp(20px,4vw,40px);flex-wrap:wrap;
    padding:clamp(30px,4vw,40px) clamp(34px,4vw,48px);
    border-radius:18px;
    background:linear-gradient(120deg,#1c1a1f 0%,var(--c-ink) 55%,#0c0c0e 100%);
    color:#fff;position:relative;overflow:hidden;
    opacity:1;transform:translateY(0);
    transition:opacity .7s ease .35s,transform .7s ease .35s;
  }
  html.laplus-anim .svc-chosen:not(.in) .chosen-foot{
    opacity:0;transform:translateY(20px);
  }
  .chosen-foot::before{
    content:"";position:absolute;right:-40px;top:50%;transform:translateY(-50%);
    width:240px;height:240px;border-radius:50%;
    background:radial-gradient(circle,rgba(158,115,180,.4) 0%,transparent 65%);
    pointer-events:none;
  }
  .svc-chosen.in .chosen-foot{opacity:1;transform:translateY(0);}
  .chosen-foot .chosen-close{
    flex:1;min-width:min(100%,260px);margin:0;position:relative;z-index:1;
    font-size:clamp(15px,2.2vw,20px);font-weight:700;line-height:1.65;
  }
  .chosen-foot .chosen-close .hl{color:#d9bce6;}
  .chosen-foot .chosen-foot-cta{
    position:relative;z-index:1;display:inline-flex;align-items:center;gap:12px;
    padding:15px 30px;border-radius:999px;background:#fff;color:var(--c-ink);
    font-family:var(--ff-en);font-size:13px;letter-spacing:.12em;white-space:nowrap;
    transition:background .3s,color .3s,gap .3s;
  }
  .chosen-foot .chosen-foot-cta:hover{background:var(--c-accent);color:#fff;gap:16px;}
  .chosen-foot .chosen-foot-cta .arrow{transition:transform .3s;}
  .chosen-foot .chosen-foot-cta:hover .arrow{transform:translateX(4px);}

  /* ============ News ============ */
  .news{background:var(--c-bg-alt);}
  .news .news-list{border-top:1px solid var(--c-line);}
  .news-item{
    display:grid;grid-template-columns:140px 120px 1fr auto;
    align-items:center;gap:clamp(12px,2.5vw,32px);
    padding:24px 4px;border-bottom:1px solid var(--c-line);
    transition:background .25s,padding-left .25s;
  }
  .news-item:hover{background:#fff;padding-left:14px;}
  .news-item .date{font-family:var(--ff-en);font-size:13px;letter-spacing:.08em;color:var(--c-ink-soft);}
  .news-item .cat{
    justify-self:start;font-family:var(--ff-en);font-size:11px;letter-spacing:.12em;
    border:1px solid var(--c-line);border-radius:999px;padding:5px 14px;color:var(--c-ink-soft);
    transition:border-color .25s,color .25s;
  }
  .news-item:hover .cat{border-color:var(--c-accent);color:var(--c-accent);}
  .news-item .ttl{font-weight:700;font-size:15px;}
  .news-item .arrow{font-family:var(--ff-en);color:var(--c-ink-soft);transition:transform .25s,color .25s;}
  .news-item:hover .arrow{transform:translateX(4px);color:var(--c-accent);}
  .news .news-more{
    margin-top:clamp(36px,5vw,52px);display:inline-flex;align-items:center;gap:12px;
    font-family:var(--ff-en);font-size:13px;letter-spacing:.12em;
    border:1px solid var(--c-ink);border-radius:999px;padding:14px 32px;color:var(--c-ink);
    transition:background .25s,color .25s,border-color .25s,gap .25s;
  }
  .news .news-more:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff;gap:18px;}
  .news-status{
    padding:28px 4px;font-size:14px;color:var(--c-ink-soft);border-bottom:1px solid var(--c-line);
  }
  .news-status.news-error{color:#a44;}

  /* ============ CTA ============ */
  .cta{
    position:relative;overflow:hidden;color:#fff;
    padding-block:clamp(100px,14vw,180px);
    background:var(--c-ink);
  }
  .cta-bg{
    position:absolute;inset:0;z-index:0;pointer-events:none;
    background:
      radial-gradient(ellipse 70% 80% at 15% 50%, rgba(158,115,180,.22) 0%, transparent 55%),
      radial-gradient(ellipse 50% 50% at 92% 80%, rgba(158,115,180,.12) 0%, transparent 50%),
      linear-gradient(180deg, #0d0d0d 0%, var(--c-ink) 40%, #0a0a0a 100%);
  }
  .cta-bg::after{
    content:"";position:absolute;inset:0;
    background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 20%,transparent 75%);
    opacity:.5;
  }
  .cta-watermark{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);
    font-family:var(--ff-en);font-weight:700;
    font-size:clamp(72px,18vw,240px);line-height:.88;letter-spacing:-.03em;
    color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.06);
    white-space:nowrap;user-select:none;z-index:0;pointer-events:none;
  }
  .cta .wrap{position:relative;z-index:1;}
  .cta-inner{max-width:none;}
  .cta-label{
    font-family:var(--ff-en);font-size:13px;letter-spacing:.22em;color:#888;
    display:flex;align-items:center;gap:14px;margin-bottom:clamp(24px,4vw,40px);
  }
  .cta-label::before{content:"";width:36px;height:2px;background:var(--c-accent);}
  .cta h2{
    font-size:clamp(28px,5vw,56px);font-weight:700;line-height:1.35;
    margin-bottom:20px;letter-spacing:.02em;
  }
  .cta h2 .hl{color:var(--c-accent);}
  .cta h2 .cta-catch-tail{white-space:nowrap;}
  .cta .en-sub{
    font-family:var(--ff-en);font-size:clamp(12px,1.6vw,14px);letter-spacing:.28em;
    color:#777;margin-bottom:16px;
  }
  .cta-note{font-size:clamp(14px,2vw,16px);color:#aaa;margin-bottom:clamp(36px,5vw,52px);}
  .cta-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
  .cta a.btn{
    display:inline-flex;align-items:center;gap:12px;
    border-radius:999px;padding:16px 36px 16px 40px;
    font-family:var(--ff-en);font-size:14px;letter-spacing:.12em;
    transition:background .3s,border-color .3s,color .3s,gap .3s;
  }
  .cta a.btn-main{
    border:1px solid #fff;background:#fff;color:var(--c-ink);
  }
  .cta a.btn-main:hover{
    background:var(--c-accent);border-color:var(--c-accent);color:#fff;
    gap:18px;
  }
  .cta a.btn-main .arrow{display:inline-block;transition:transform .3s;}
  .cta a.btn-main:hover .arrow{transform:translateX(4px);}
  .cta-piece{
    opacity:1;transform:none;
    transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);
  }
  html.laplus-anim .cta:not(.is-visible) .cta-piece{
    opacity:0;transform:translateY(28px);
  }
  .cta.is-visible .cta-piece{opacity:1;transform:none;}
  .cta.is-visible .cta-piece[data-d="1"]{transition-delay:.05s;}
  .cta.is-visible .cta-piece[data-d="2"]{transition-delay:.15s;}
  .cta.is-visible .cta-piece[data-d="3"]{transition-delay:.25s;}
  .cta.is-visible .cta-piece[data-d="4"]{transition-delay:.35s;}
  .cta.is-visible .cta-piece[data-d="5"]{transition-delay:.45s;}
  .cta.is-visible .cta-piece[data-d="6"]{transition-delay:.55s;}

  /* ============ Footer ============ */
  footer{padding-block:clamp(48px,6vw,72px);border-top:1px solid var(--c-line);}
  footer .grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;}
  footer .logo{font-size:22px;}
  footer .f-nav{display:flex;gap:28px;flex-wrap:wrap;}
  footer .f-nav a{font-family:var(--ff-en);font-size:13px;letter-spacing:.1em;color:var(--c-ink-soft);}
  footer .copy{font-family:var(--ff-en);font-size:12px;letter-spacing:.08em;color:#aaa;margin-top:40px;}

  /* ============ Scroll reveal（JS無効時も表示） ============ */
  .reveal{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease;}
  html.laplus-anim .reveal:not(.in){opacity:0;transform:translateY(24px);}
  .reveal.in{opacity:1;transform:none;}

  @media(prefers-reduced-motion:reduce){
    .hero-intro,.reveal,.cta-piece,.chosen-card,.chosen-foot{opacity:1;transform:none;transition:none;}
    .hero-slide{transition:opacity .4s;}
    .hero-draw-title .draw-line{clip-path:none;animation:none;}
    .hero-title-svg .title-stroke{stroke-dashoffset:0;animation:none;}
    .hero-slideshow-dots button.is-active{animation:none;}
    .hero-bg,.hero-bg::after,.hero-deco::before,.hero-deco::after{animation:none;}
    .hero-scroll .line::after{animation:none;background:var(--c-accent);top:50%;height:8px;margin-top:-4px;}
    .svc-ball-track{display:none;}
  }
  @media(min-width:861px){
    .cta h2,.cta-note,.cta .en-sub{white-space:nowrap;}
  }

  /* ============ Responsive ============ */
  @media(max-width:860px){
    .menu-btn{display:flex;}
    .site-nav{
      position:fixed;top:0;right:0;bottom:0;left:auto;z-index:99;margin:0;
      width:80%;max-width:20rem;
      padding:calc(76px + env(safe-area-inset-top, 0px)) clamp(20px,5vw,32px) calc(28px + env(safe-area-inset-bottom, 0px));
      background:#fff;
      border-left:1px solid var(--c-line);
      box-shadow:-8px 0 32px rgba(17,17,17,.08);
      display:flex;align-items:flex-start;justify-content:flex-start;
      visibility:hidden;pointer-events:none;
      transform:translateX(100%);
      transition:transform .38s cubic-bezier(.22,1,.36,1),visibility .38s ease;
    }
    #header.is-menu-open .site-nav{
      visibility:visible;pointer-events:auto;transform:translateX(0);
    }
    .site-nav ul{
      display:flex;flex-direction:column;align-items:stretch;
      gap:0;width:100%;max-width:none;
    }
    .site-nav li{width:100%;border-bottom:1px solid var(--c-line);}
    .site-nav li:last-child{border-bottom:0;}
    .site-nav a{
      display:block;padding:18px 4px;font-size:15px;letter-spacing:.12em;
      transition:color .2s ease;
    }
    .site-nav a:hover{color:var(--c-accent);}
    .site-nav li.is-current a{color:var(--c-accent);}
    .site-nav li.is-current a::after{display:none;}
    .site-nav .nav-cta{
      margin-top:20px;padding:14px 28px;text-align:center;
      display:flex;justify-content:center;width:100%;box-sizing:border-box;
    }
    .site-nav .nav-cta:hover{
      background:var(--c-accent);border-color:var(--c-accent);color:#fff!important;
    }
    body.menu-open .fixed-rail{opacity:0;pointer-events:none;transition:opacity .25s;}
    .hero-layout{grid-template-columns:1fr;min-height:auto;}
    .hero-copy{max-width:none;padding-bottom:40px;}
    .hero-media{min-height:clamp(400px,48vh,560px);order:-1;}
    .hero-slideshow-dots{
      bottom:max(14px, calc(10px + env(safe-area-inset-bottom, 0px)));
      gap:6px;max-width:calc(100% - 24px);
    }
    .hero-slideshow-dots button{width:7px;height:7px;}
    .hero-slideshow-dots button.is-active{transform:scale(1.15);}
    .hero-bg{right:0;}
    body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));}
    .fixed-rail{
      position:static;width:auto;transform:none;
      display:block;pointer-events:none;
    }
    .fixed-contact{
      position:fixed;left:0;right:0;bottom:0;top:auto;
      flex-direction:row;gap:12px;
      padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));
      width:100%;justify-content:center;z-index:100;
      box-shadow:0 -4px 20px rgba(0,0,0,.12);
      pointer-events:auto;
    }
    .fixed-contact .fc-en,.fixed-contact .fc-ja{writing-mode:horizontal-tb;}
    .hero-scroll{
      display:flex;position:fixed;right:0;top:50%;bottom:auto;
      transform:translateY(-50%);
      padding:14px 10px 18px;
      background:rgba(255,255,255,.92);
      backdrop-filter:saturate(120%) blur(8px);
      border-top:0;border-left:1px solid var(--c-line);
      z-index:99;pointer-events:auto;
    }
    .hero-scroll .line{height:48px;}
    .about .grid{grid-template-columns:1fr;gap:48px;}
    .about::before{inset:0;}
    .about-visual{margin-right:26px;}
    .svc-row{grid-template-columns:1fr;gap:40px;}
    .svc-row.rev .svc-visual{order:0;}
    .svc-row.rev .svc-content{order:0;}
    .svc-visual{margin-right:24px;}
    .news-item{grid-template-columns:auto 1fr;row-gap:6px;}
    .news-item .ttl{grid-column:1 / -1;}
    .news-item .arrow{display:none;}
    .news-item:hover{padding-left:4px;}
    .chosen-cards{grid-template-columns:1fr;}
    .chosen-watermark{display:none;}
    .chosen-foot{flex-direction:column;align-items:flex-start;text-align:left;}
  }
  @media(max-width:560px){
    .chosen-foot{align-items:center;text-align:center;}
    .chosen-foot .chosen-close{min-width:0;}
    .cta-inner{text-align:center;}
    .cta-label{justify-content:center;}
    .cta-actions{justify-content:center;}
    .cta-note{margin-inline:auto;}
    .svc-block{grid-template-columns:1fr;gap:16px;}
    .svc-num{padding-top:0;}
    footer .grid{flex-direction:column;}
  }
