@charset "utf-8";
/* =========================================================
   1rem = 100 design-px（PC基準1440 / SP基準は @media 内で切替）
   ========================================================= */
html { font-size: calc(100vw / 14.4); overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  color: #352e2e;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: .16rem;
  line-break: strict;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip; /* html だけでは viewport が横スクロールできてしまう（はみ出す装飾文字） */
}
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, svg { display: block; max-width: none; }
a { color: inherit; text-decoration: none; }
em { font-style: normal; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

:root {
  --black: #352e2e;
  --orange: #fd6a05;
  --orange2: #fd8d05;
  --hdr-h: .77rem;
}

/* 矢印（──→）。色は currentColor */
.arw {
  display: inline-block; flex: none;
  width: .44rem; height: .049rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 44 4.9%22 width=%2244%22 height=%224.9%22 preserveAspectRatio=%22none%22%3E%3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M38.77 0.4L44 4.4H0%22 fill=%22none%22 stroke=%22%23000%22/%3E%3C/svg%3E") no-repeat center / 100% 100%;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 44 4.9%22 width=%2244%22 height=%224.9%22 preserveAspectRatio=%22none%22%3E%3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M38.77 0.4L44 4.4H0%22 fill=%22none%22 stroke=%22%23000%22/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

/* ---------------------------------------------------------
   Header (232:1076)
   --------------------------------------------------------- */
.hdr {
  position: fixed; z-index: 100; top: 0; left: 0; right: 0;
  height: var(--hdr-h);
  display: flex; align-items: center; justify-content: center; gap: 1.27rem;
  padding: 0 .46rem;
  background: var(--black);
  transition: transform .4s ease;
}
.hdr.is-hidden { transform: translateY(-100%); }
.hdr__logo img { width: 1.43rem; height: .46177rem; }
.hdr__right { display: flex; align-items: center; gap: .44rem; height: .87rem; padding-left: .54rem; }
.hdr__nav {
  display: flex; align-items: center; gap: .35rem;
  font-weight: 500; font-size: .13rem; letter-spacing: .0104rem; line-height: normal;
  color: #fff; white-space: nowrap;
}
.hdr__cta {
  display: flex; align-items: center; justify-content: center; gap: .10rem;
  padding: .10rem .16rem; border-radius: .05rem;
  background: linear-gradient(74.37deg, #f2ff00 35.408%, #c9f536 89.306%);
  color: var(--black); font-weight: 600; font-size: .16rem; letter-spacing: .0144rem; line-height: normal; white-space: nowrap;
}
.hdr__cta .arw { height: .04rem; }

/* ---------------------------------------------------------
   FV (26:2)
   --------------------------------------------------------- */
.fv { position: relative; height: 8.53rem; overflow: hidden; background: #e9e8e6; }
.fv__bg { position: absolute; inset: 0; overflow: hidden; }
.fv__bg img { position: absolute; left: -3.54%; top: -.07%; width: 118.06%; height: 118.01%; }
.fv__catch { position: absolute; left: 0; top: 1.62rem; width: 9.9325rem; height: 5.59rem; }
.fv__catch img { width: 100%; height: 100%; object-fit: cover; }
.fv__veil { position: absolute; left: 0; top: 2.78rem; width: 14.4rem; height: 5.75rem; pointer-events: none; }
.fv__veil img { width: 100%; height: 100%; object-fit: cover; }
.hdr__burger { display: none; }
.float { display: none; }
.sp { display: none; }
.hscroll { display: contents; }
.hscroll__bar { display: none; }
.fv__lead {
  position: absolute; left: 9.94rem; top: 3.0874rem; width: 3.6625rem; height: 2.55729rem;
  display: flex; align-items: center; justify-content: center;
}
.fv__lead-in {
  flex: none; display: flex; flex-direction: column; align-items: flex-start;
  transform: rotate(-7deg) skewX(-7deg) scaleY(.99);
  font-weight: 800; font-size: .36228rem; letter-spacing: .018114rem; line-height: normal;
  color: var(--black);
}
.fv__lead-in > span { display: block; margin-bottom: -.0262rem; }
.fv__l1 { width: 3.69rem; }
.fv__l2 { white-space: nowrap; }
.fv__l3 { margin-bottom: 0 !important; }
.fv__l3 em { color: #fc5104; font-weight: 900; }
/* ↑ Figma値は W8 / tracking .8px だが、Chromeで同じ字幅・字面にするには W9＋親の字間が必要（カンプのインク範囲で実測一致） */
.fv__scroll {
  position: absolute; left: 6.82rem; top: 6.97rem; width: .77rem;
  display: flex; flex-direction: column; align-items: center; gap: .17rem;
  font-family: Raleway, sans-serif; font-weight: 500; font-size: .15364rem; letter-spacing: .027655rem; line-height: normal;
  text-align: center;
}
.fv__scroll span { width: .91rem; }
.fv__scroll i { position: relative; width: .02rem; height: .91rem; background: var(--black); overflow: hidden; }
.fv__scroll i::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: .30rem; background: #e96a15; }

/* ---------------------------------------------------------
   共通パーツ
   --------------------------------------------------------- */
.en { font-family: Montserrat, sans-serif; }
.sec-label { font-family: Montserrat, sans-serif; font-weight: 700; font-size: .17rem; line-height: .26rem; letter-spacing: .0221rem; color: #fff; }

/* 背景の大きな透かし文字 */
.ghost { position: absolute; pointer-events: none; font-family: Montserrat, sans-serif; font-weight: 700; white-space: nowrap; }

/* ボタン（Frame 316 / 453x75）。--k で比例スケール */
.btn {
  --k: 1;
  display: flex; align-items: center; justify-content: center; gap: calc(.04rem * var(--k));
  width: max-content;
  padding: calc(.24rem * var(--k)) calc(.51rem * var(--k));
  border-radius: .77rem;
  background: linear-gradient(to bottom, #fd6a05, #fd8d05 80.288%);
  filter: drop-shadow(0 calc(.12rem * var(--k)) calc(.16rem * var(--k)) rgba(0,0,0,.08));
  color: #fff; font-weight: 700; text-align: center;
  font-size: calc(.18rem * var(--k)); line-height: calc(.26869rem * var(--k)); letter-spacing: calc(.027rem * var(--k));
}
.btn > span { width: calc(2.57rem * var(--k)); }
.btn__arw {
  flex: none; display: block;
  width: calc(.923048rem * var(--k)); height: calc(.0826171rem * var(--k));
  margin: calc(-.005747rem * var(--k)) calc(-.023048rem * var(--k)) calc(-.006870rem * var(--k)) 0;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2292.3048%22 height=%228.26171%22 viewBox=%220 0 92.3048 8.26171%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M79.2988 0.574827L90 7.57483H0%22 stroke=%22%23000%22 stroke-width=%221.37377%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%;
          mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2292.3048%22 height=%228.26171%22 viewBox=%220 0 92.3048 8.26171%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M79.2988 0.574827L90 7.57483H0%22 stroke=%22%23000%22 stroke-width=%221.37377%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%;
}
.btn--dark { background: #352e2e; }

/* ---------------------------------------------------------
   ABOUT (94:1693)
   --------------------------------------------------------- */
.about {
  position: relative; height: 39.13333rem; padding-top: 1rem; /* Figma 4624.21 − 動画カード（534.88＋上余白176、非表示）*/
  background: #352e2e; color: #fff;
  font-family: "Noto Sans JP", sans-serif;
}
.about__band {
  position: absolute; inset: 0 0 auto; height: 19.78rem; background: #683b1b;
  /* 辺はカンプから実測： 左辺 x = .7730y − 88.41 ／ 右辺 x = 1.6479y + 257.42 */
  clip-path: polygon(-.8841rem 0, 2.5742rem 0, 14.4rem 7.176rem, 14.4rem 19.772rem);
}
.about__inner { position: relative; width: 12.01rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 1.22rem; }
.ghost--about {
  left: 10.47rem; top: .01rem; width: 1.36735rem; height: 6.94rem; /* Figma値 -2px ＋ 回転時の字面ずれ3px（カンプ実測） */
  overflow: hidden; mix-blend-mode: overlay;
  -webkit-mask: linear-gradient(transparent, #000 4%, #000 96%, transparent); mask: linear-gradient(transparent, #000 4%, #000 96%, transparent);
}
.ghost__track { animation: ghost-up 8.4s linear infinite; } /* 参考：bit-rise の縦書きマーキー（約83px/s） */
.ghost--about p { width: 1.36735rem; height: 6.94rem; display: flex; align-items: center; justify-content: center; }
.ghost--about span {
  flex: none; transform: rotate(90deg);
  height: 1.36735rem; display: flex; align-items: center;
  font-size: 1.76616rem; line-height: 4.21599rem; letter-spacing: .070646rem; color: rgba(255,255,255,.6);
}
@keyframes ghost-up { to { transform: translateY(-6.94rem); } }
.about__intro { position: relative; width: 12.01rem; display: flex; flex-direction: column; gap: .59rem; }
.about__body { padding-left: .87rem; display: flex; flex-direction: column; gap: .65rem; }
.about__ttl { display: flex; flex-direction: column; gap: .15rem; font-weight: 700; font-size: .43424rem; line-height: .64rem; letter-spacing: .030397rem; white-space: nowrap; }
.about__txt { display: flex; flex-direction: column; gap: .37rem; font-weight: 400; font-size: .22rem; line-height: .59rem; letter-spacing: .033rem; white-space: nowrap; }

.vs { position: relative; display: flex; align-items: center; gap: .43rem; }
.vs__card {
  display: flex; flex-direction: column; align-items: center; gap: .18855rem;
  /* 枠線4.962pxは border だと Chrome が整数pxに切り捨てるため、inset の影で描く */
  padding: calc(.35725rem + .04962rem) calc(.30763rem + .04962rem);
  background: #fff; box-shadow: inset 0 0 0 .04962rem #d0cfcf; border-radius: .19847rem;
  color: #352e2e;
}
.vs__card--or { background: #fd6a05; box-shadow: inset 0 0 0 .04962rem #fec095; color: #fff; }
.vs__pic { width: 2.60989rem; height: 2.60989rem; border-radius: 50%; background: #d0cfcf; padding: .37068rem .33286rem; }
.vs__card--or .vs__pic { background: #fec095; }
.vs__pic > div { position: relative; width: 1.95174rem; height: 1.87042rem; overflow: hidden; }
.vs__pic img { position: absolute; }
.vs__body { width: 3.70042rem; display: flex; flex-direction: column; align-items: center; gap: .26rem; }
.vs__ttl { position: relative; z-index: 0; height: .96rem; font-weight: 700; font-size: .25801rem; line-height: .48625rem; text-align: center; white-space: nowrap; }
.vs__hl { position: relative; font-weight: 900; font-size: .30763rem; color: #fff; }
.vs__hl::before { content: ""; position: absolute; z-index: -1; left: -.0119rem; right: -.022rem; top: .0200rem; height: .4127rem; background: #352e2e; }
/* 2枚目の2行目は Figma で約4px右に寄っている（。の負の字間と末尾スペースの扱いの差）。カンプ実測で合わせる */
.vs__l2 { position: relative; left: .04rem; }
.vs__card--or .vs__hl::before { left: -.0519rem; right: .038rem; }
.vs__card--or .vs__hl { color: #352e2e; }
.vs__card--or .vs__hl::before { background: #fff; }
.vs__p { letter-spacing: -.149647rem; }
.vs__sp { white-space: pre; }
.vs__tr1 { letter-spacing: .061526rem; }
.vs__tr2 { letter-spacing: .104594rem; }
.vs__list { display: flex; flex-direction: column; gap: .13893rem; }
/* リスト項目の文字はインスタンス（Frame 240）で ×1.1421 拡大されている。MCPの報告値(14.01px)は拡大前なので、
   高さ58px÷(2行×25.393)から逆算。アイコンと間隔は拡大されていない（カンプ実測で文字の開始x=304） */
.vs__list li {
  position: relative; width: 3.12592rem; padding-left: .33274rem;
  font-weight: 500; font-size: .16rem; line-height: .29rem; letter-spacing: .024rem; white-space: nowrap;
}
.vs__list li::before {
  content: ""; position: absolute; left: -.02rem; top: -.02rem; width: .21261rem; height: .24189rem;
  background: #a5a5a5;
  -webkit-mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2218.6159%22 height=%2221.1798%22 viewBox=%220 0 18.6159 21.1798%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath d=%22M0.975157 11.9611L7.56699 18.5529L17.6117 7.88046%22 stroke=%22%23000%22 stroke-width=%222.75816%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%; mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2218.6159%22 height=%2221.1798%22 viewBox=%220 0 18.6159 21.1798%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath d=%22M0.975157 11.9611L7.56699 18.5529L17.6117 7.88046%22 stroke=%22%23000%22 stroke-width=%222.75816%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%;
}
.vs__card--or .vs__list li::before { background: #352e2e; }
.vs__arw { width: .60534rem; height: .60534rem; }

/* 主導権の比較 */
.shift { position: relative; width: 12.424107rem; margin: 1.76rem auto 0; display: flex; flex-direction: column; align-items: center; gap: .82rem; }
.shift__head { width: 11rem; display: flex; flex-direction: column; align-items: center; gap: .30rem; text-align: center; }
.shift__ttl { font-weight: 700; font-size: .43424rem; line-height: .64rem; letter-spacing: .030397rem; white-space: nowrap; }
.shift__lead { width: 7.67rem; height: 1.18rem; font-weight: 400; font-size: .17603rem; line-height: .39117rem; letter-spacing: .026404rem; }
.shift__cases { width: 100%; display: flex; flex-direction: column; gap: .68rem; margin-bottom: calc(.69rem - .82rem); }
.case { display: flex; flex-direction: column; align-items: flex-start; gap: .56rem; }
.case__ttl {
  display: flex; align-items: center; gap: .20rem; height: .47rem;
  font-weight: 700; font-size: .30rem; line-height: .462rem; letter-spacing: .021rem; white-space: nowrap;
}
.case__ttl::before { content: ""; width: .10rem; height: .39rem; background: #fff; }
.case__ttl em { color: #fd6a05; }
.case__a { display: flex; flex-direction: column; align-items: flex-end; gap: .2688rem; }
.case__row { display: flex; align-items: flex-end; gap: .21797rem; }

.sum {
  flex: none; width: 1.90086rem; height: 1.90086rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .14791rem;
  background: #fff; color: #352e2e; font-weight: 700; text-align: center; white-space: nowrap;
}
.sum--or { background: #fd6a05; color: #fff; }
.sum__ttl { width: 100%; display: flex; flex-direction: column; align-items: center; gap: .06218rem; font-size: .20582rem; line-height: .31909rem; letter-spacing: .014408rem; }
.sum__ttl::after {
  content: ""; width: 1.55444rem; height: .0533rem; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%22155.444%22 height=%227.47435%22 viewBox=%220 0 155.444 7.47435%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cpath d=%22M0 0.797728H73.8034L77.9399 6.12725L81.6409 0.797728H155.444%22 stroke=%22%23000%22 stroke-width=%221.59546%22/%3E %3C/svg%3E") no-repeat 0 -.00798rem / 1.55444rem .0747435rem; mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%22155.444%22 height=%227.47435%22 viewBox=%220 0 155.444 7.47435%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cpath d=%22M0 0.797728H73.8034L77.9399 6.12725L81.6409 0.797728H155.444%22 stroke=%22%23000%22 stroke-width=%221.59546%22/%3E %3C/svg%3E") no-repeat 0 -.00798rem / 1.55444rem .0747435rem;
}
.sum__ttl small { font-size: .15251rem; }
.sum__sub { display: flex; align-items: center; justify-content: center; width: 1.23009rem; height: .19341rem; font-size: .15318rem; line-height: .30946rem; letter-spacing: .010723rem; }
.sum__val { display: flex; align-items: flex-end; justify-content: center; width: 1.58997rem; height: .45587rem; margin-top: calc(.03553rem - .14791rem); font-size: .28688rem; line-height: .44475rem; letter-spacing: .020081rem; color: #fd6a05; }
.sum--or .sum__val { color: #fbff1d; }
/* 大小の文字が混ざる行は Chrome だと行ボックスが伸びる。Figma は行高＝指定値なので高さを固定 */
.sum__val > span { display: block; height: .44475rem; }
.flow__val > span { display: block; height: .39257rem; }
.sum__val b, .flow__val b { font-weight: 900; }
.sum__val b { font-size: .5097rem; }
.sum__val .t1 { letter-spacing: -.015291rem; }
.sum__val .t2, .sum__val .t3 { letter-spacing: .035679rem; }

.flow { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .30201rem; }
.flow__top { display: flex; align-items: flex-end; gap: .26648rem; }
.case--own .flow__top { gap: .13324rem; }
.flow__line { position: relative; width: 8.6688rem; height: .1012rem; }
.case--own .flow__line { width: 3.24213rem; }
.flow__line img { position: absolute; left: 0; top: -.0707rem; width: 8.6784rem; height: .171894rem; }
.case--own .flow__line img { width: 3.25173rem; }
.flow__line span {
  position: absolute; left: calc(50% + .0108rem); top: -.1713rem; transform: translateX(-50%);
  padding: 0 .07994rem; background: #352e2e;
  font-weight: 700; font-size: .20582rem; line-height: .31909rem; letter-spacing: .014408rem; white-space: nowrap;
}
.case--own .flow__line span { left: calc(50% + .0034rem); top: -.1444rem; padding: 0 .06651rem; font-size: .17124rem; line-height: .26547rem; letter-spacing: .011987rem; }
.flow__val { display: flex; align-items: flex-end; justify-content: center; height: .40239rem; font-weight: 700; font-size: .25322rem; line-height: .39257rem; letter-spacing: .017725rem; white-space: nowrap; }
.flow__val b { font-size: .4499rem; }
.flow__val .t1 { letter-spacing: -.008998rem; }
.flow__val .t2 { letter-spacing: .031493rem; }
.flow__val .t4 { color: #fd6a05; letter-spacing: .04499rem; }
.case--own .flow__val { letter-spacing: .017725rem; }
.flow__val .t5 { letter-spacing: .027854rem; }

.steps { display: flex; align-items: center; gap: .02157rem; }
.steps li {
  flex: none; height: 1.22rem; display: flex; flex-direction: column; align-items: flex-start; gap: .10231rem;
  padding: .19532rem .12942rem .12942rem;
  background: #e8e8e8; color: #352e2e;
  font-weight: 700; font-size: .16742rem; line-height: .24183rem; letter-spacing: .011719rem; white-space: nowrap;
}
.steps b { display: flex; align-items: center; height: .23727rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: .28041rem; line-height: .63304rem; letter-spacing: 0; color: #8b8b8b; }
.steps--own li { background: #ffe4d2; }
.steps--own b { color: #fd6a05; }
.steps--own li.is-sm { background: #fff; font-size: .13544rem; line-height: .19563rem; letter-spacing: .009481rem; }
.flow__burn { position: absolute; left: 1.9042rem; top: .6018rem; width: 8.3424rem; height: 1.4592rem; background: #316083; mix-blend-mode: color-burn; opacity: .71; }

.case__brk { display: flex; flex-direction: column; align-items: center; gap: .1728rem; width: 8.1024rem; }
.case__brk img { width: 8.1216rem; height: .192rem; margin: 0 -.0096rem -.0096rem; }
.case__brk p { font-weight: 700; font-size: .31255rem; line-height: .48455rem; letter-spacing: .021878rem; white-space: pre; }
.case__brk p::before { content: " "; }

.case__own { display: flex; align-items: flex-end; gap: .4032rem; }
.case__own-msg {
  width: 5.1744rem; height: 1.7568rem; overflow: hidden;
  display: flex; align-items: center; justify-content: center; padding: .1536rem 0 .1536rem .816rem;
  background: linear-gradient(to right, #352e2e, #5f3a25 16.346%, #ae5215);
  font-weight: 700; font-size: .32321rem; line-height: .6912rem; letter-spacing: .030071rem; white-space: nowrap;
}
.case__own-msg strong { font-size: .48471rem; }
.case__own-msg .m1 { position: relative; top: .06rem; } /* Figma は1行目が6px下（カンプ実測） */

.formula { display: flex; flex-direction: column; align-items: center; gap: .57rem; }
.formula__down { width: .12rem; height: 1.10rem; object-fit: fill; overflow: visible; }
.formula__row { display: flex; align-items: center; gap: .16656rem; }
.formula__c {
  width: 3.00502rem; height: 3.00502rem; display: flex; align-items: center; justify-content: center;
  background: url(../img/about/circle.svg) no-repeat center / 100% 100%;
  font-weight: 700; font-size: .30136rem; line-height: .44416rem; letter-spacing: .021095rem; text-align: center; white-space: nowrap;
}
.formula__c--or { background-image: url(../img/about/circle-or.svg); }
.formula__op { width: .66rem; text-align: center; font-weight: 300; font-size: .65752rem; line-height: .96908rem; }

/* 動画 */
.movie {
  position: relative; width: 12.17rem; margin: 1.76rem auto 0;
  display: flex; align-items: center; gap: .59rem; padding: .62rem .64rem;
  background: #fff; border-radius: .20rem; color: #352e2e;
}
.movie__thumb { flex: none; width: 5.86rem; height: 3.30618rem; border-radius: .08763rem; overflow: hidden; }
.movie__thumb img { width: 100%; height: 100%; object-fit: cover; }
.movie__body { display: flex; flex-direction: column; align-items: flex-start; gap: .57rem; }
.movie__ttl { font-weight: 700; font-size: .43424rem; line-height: .64rem; letter-spacing: .030397rem; white-space: nowrap; }
.movie__txt { margin-top: calc(.18rem - .57rem); font-weight: 400; font-size: .16rem; line-height: .34rem; letter-spacing: .024rem; white-space: nowrap; }
.movie__btn { --k: .955556; }
.about__dome { position: absolute; left: 0; bottom: 0; width: 14.4rem; height: 1.06551rem; transform: scaleY(-1); }

/* 見出しブロック（Frame 253 コンポーネント） */
.shead { position: relative; width: 11.84rem; display: flex; flex-direction: column; align-items: flex-start; gap: .30rem; color: #fff; }
.shead__label { display: flex; align-items: center; height: .24476rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: .31614rem; line-height: .75466rem; letter-spacing: .034776rem; white-space: nowrap; }
.shead__ttl { font-weight: 700; font-size: .43424rem; line-height: .64rem; letter-spacing: .030397rem; white-space: nowrap; }
/* Figma のテキスト枠は行高合計を整数に切り上げる（2行 78.23→79 / 3行 117.35→118） */
.shead__txt--2 { height: .79rem; }
.shead__txt--3 { height: 1.18rem; }
.shead__txt { font-weight: 400; font-size: .17603rem; line-height: .39117rem; letter-spacing: .026404rem; }
/* 横書きの透かし見出し */
.ghost-h { position: absolute; display: flex; align-items: center; justify-content: center; height: 1.36735rem; pointer-events: none; }
.ghost-h span { flex: none; display: block; height: 4.51rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.76616rem; line-height: 4.21599rem; letter-spacing: .070646rem; text-align: center; white-space: nowrap; }
.btn--white { background: #fff; color: #fd6a05; }

/* ---------------------------------------------------------
   PROCESS (87:31)
   --------------------------------------------------------- */
.process {
  position: relative; height: 13.40870rem; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; gap: .41rem;
  padding: .63rem .62rem .48rem;
  background: #ff9532; font-family: "Noto Sans JP", sans-serif;
  box-shadow: 0 -.02rem 0 #ff9532; /* 上のセクションとの境目が小数pxになる幅で暗い線が出るのを覆う */
}
.process__main { position: relative; display: flex; flex-direction: column; align-items: center; gap: .61rem; }
.proc { position: relative; width: 11.06rem; height: 5.97395rem; overflow: hidden; }
.proc__item { position: absolute; width: 6.16063rem; height: 2.98697rem; }
.proc__bg { position: absolute; top: 0; height: 100%; }
.proc__in {
  position: absolute; left: calc(50% - .42rem); top: calc(50% + .0009rem); transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: flex-start; gap: .21336rem; color: #352e2e;
}
.proc__ic { position: absolute; left: 1.7068rem; top: .40rem; width: 2.15656rem; height: 1.92898rem; overflow: hidden; opacity: .21; }
.proc__ic img { position: absolute; }
.proc__head { position: relative; display: flex; align-items: flex-end; gap: .34016rem; }
.proc__head b {
  display: flex; align-items: center; justify-content: center; width: .35276rem; height: .65513rem;
  font-family: Montserrat, sans-serif; font-weight: 700; font-size: .9176rem; line-height: 1.00928rem; letter-spacing: .036704rem; color: #fd6a05;
}
.proc__head h3 { display: flex; align-items: center; height: .59288rem; font-weight: 700; font-size: .2567rem; line-height: .35941rem; letter-spacing: .017969rem; white-space: nowrap; }
.proc__txt { position: relative; width: 4.38712rem; font-weight: 400; font-size: .1731rem; line-height: .32138rem; letter-spacing: .012117rem; }
.process__msg { position: relative; width: 10.85rem; height: .64rem; display: flex; }
.process__msg img { position: absolute; left: 0; top: calc(.3176rem - .1841rem); width: 10.875rem; height: .368198rem; }
.process__msg p { position: relative; margin-left: 1.515rem; padding: 0 .21rem; background: #ff9532; color: #fff; font-weight: 700; font-size: .43424rem; line-height: .64rem; letter-spacing: .030397rem; white-space: nowrap; }
.process__msg em { color: #ffe76c; }

.shead--dark { color: #352e2e; }
.grad-txt { background: linear-gradient(to bottom, #fd6a05, #fd8d05 80.288%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------------------------------------------------------
   PARTNERSHIP (87:172)
   --------------------------------------------------------- */
.partner {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: .82rem;
  padding: calc(1.06551rem + .82rem) .62rem 1.30rem;
  font-family: "Noto Sans JP", sans-serif;
}
.partner__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.partner__dome { position: absolute; left: 0; top: 0; width: 14.4rem; height: 1.06551rem; }
.apcs { position: relative; width: 11.25667rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .48rem .42rem; }
.apc {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-start;
  padding: .45rem .45rem 1.11rem;
  box-shadow: .03rem .06rem .176rem rgba(0,0,0,.21);
  color: #fff;
}
/* Figma では1枚目だけ白枠（外側4px。カンプ実測） */
.apc.is-active { outline: .04rem solid #fff; }
.apc__ph { position: absolute; inset: 0; overflow: hidden; }
.apc__ph img { position: absolute; }
.apc__veil { position: absolute; z-index: 1; left: -.25rem; top: -.28rem; width: 5.94rem; height: 6.36rem; background: #352e2e; opacity: .5; }
.apc__in { position: relative; z-index: 3; flex: none; width: 4.86667rem; height: 4.08292rem; display: flex; flex-direction: column; justify-content: flex-end; gap: 1.68rem; }
.apc--05 .apc__in { gap: 1.71rem; }
.apc__no { display: flex; align-items: center; height: .31292rem; opacity: .7; font-family: Montserrat, sans-serif; font-weight: 700; font-size: .40419rem; line-height: .96484rem; letter-spacing: .044461rem; white-space: nowrap; }
.apc__body { display: flex; flex-direction: column; gap: .19rem; }
.apc__ttl { display: flex; flex-direction: column; justify-content: flex-end; height: .88rem; font-weight: 700; font-size: .29828rem; line-height: .43961rem; letter-spacing: .020879rem; white-space: nowrap; }
.apc__list { display: flex; flex-direction: column; gap: .10rem; }
.apc__list li { display: flex; align-items: center; gap: .07556rem; font-weight: 500; font-size: .14rem; line-height: .26869rem; letter-spacing: .0098rem; white-space: nowrap; }
.apc__list li::before { content: ""; flex: none; width: .20rem; height: .20rem; background: url(../img/check-circle.svg) no-repeat center / 100% 100%; }
.apc__more { position: absolute; z-index: 2; right: -.0028rem; bottom: .0029rem; width: 4.83rem; height: 1.22rem; background: url(../img/partner/tri.svg) no-repeat center / 100% 100%; }
.apc__more > span {
  position: absolute; left: 2.4587rem; top: .70rem; display: flex; align-items: center; gap: .20137rem;
  color: #352e2e; font-weight: 700; font-size: .16879rem; line-height: .3751rem; letter-spacing: .025319rem; white-space: nowrap;
}
/* ホバー：右下の三角をオレンジに・文字と矢印を白に・オレンジの枠（Figma の注記つき1枚目の見本より） */
.apc__more::before { content: ""; position: absolute; inset: 0; background: url(../img/sp/tri-or.svg) no-repeat center / 100% 100%; opacity: 0; transition: opacity .3s; }
.apc__more > span { z-index: 1; transition: color .3s; }
.apc { transition: outline-color .3s; }
@media (hover: hover) {
  .apc:hover .apc__more::before { opacity: 1; }
  .apc:hover .apc__more > span { color: #fff; }
  .apc:hover { outline: .04rem solid #fd6a05; }
}
.apc:focus-visible .apc__more::before { opacity: 1; }
.apc:focus-visible .apc__more > span { color: #fff; }
.apc:focus-visible { outline: .04rem solid #fd6a05; }
.apc__more i { display: block; width: .59452rem; height: .06712rem; position: relative; }
.apc__more i::before { content: ""; position: absolute; left: 0; top: -.00879rem; width: .599289rem; height: .0759128rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2259.9289%22 height=%227.59128%22 viewBox=%220 0 59.9289 7.59128%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M52.383 0.878949L59.452 4.71456H0%22 stroke=%22%23000%22 stroke-width=%222%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%; mask: url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 width=%2259.9289%22 height=%227.59128%22 viewBox=%220 0 59.9289 7.59128%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E %3Cg%3E %3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M52.383 0.878949L59.452 4.71456H0%22 stroke=%22%23000%22 stroke-width=%222%22/%3E %3C/g%3E %3C/svg%3E") no-repeat 0 0 / 100% 100%; }
.partner__msg { position: relative; padding: 0 .21rem; color: #fff; text-align: center; font-weight: 700; font-size: .51119rem; line-height: 1.0477rem; letter-spacing: .035783rem; white-space: nowrap; }
.partner__msg .l2 { display: block; position: relative; top: -.12rem; height: .95rem; } /* 大小混在行：Figma の行高・字面位置に合わせる（カンプ実測） */
.partner__msg .l2 span { font-size: .79367rem; }

/* ---------------------------------------------------------
   REASON (94:703)
   --------------------------------------------------------- */
.ghost-h--ov { mix-blend-mode: overlay; }
.ghost-h--ov span { height: auto; color: rgba(255,255,255,.6); }
.reason {
  position: relative; height: 20.24065rem;
  display: flex; flex-direction: column; align-items: center; gap: 1.47rem;
  padding: 1.30rem .62rem 0;
  background: #352e2e; color: #fff; font-family: "Noto Sans JP", sans-serif;
}
.reason__corner { position: absolute; left: 0; top: 0; width: 2.93rem; height: 5.96rem; }
.reason__main { position: relative; display: flex; flex-direction: column; align-items: center; gap: .82rem; }
.walls { position: relative; display: flex; flex-direction: column; align-items: center; gap: .76rem; }
.walls__row { display: flex; align-items: flex-start; gap: .62rem; }
.walls__cross { position: absolute; left: 2.77485rem; top: .93rem; width: 5.805rem; height: 5.805rem; }
.wall { position: relative; }
.wall__no { position: absolute; left: 3.74rem; top: 2.29rem; width: 2.02rem; height: 1.078rem; display: flex; align-items: center; justify-content: center; opacity: .7; }
.wall__no span { font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.39242rem; line-height: 3.32384rem; letter-spacing: .069621rem; color: #683b1b; white-space: nowrap; }
.wall__no .n0 { letter-spacing: .008rem; }
.wall:first-child .wall__no span { letter-spacing: .153166rem; }
.wall:first-child .wall__no .n0 { letter-spacing: .008rem; }
.wall__in { position: relative; padding: .08992rem; display: flex; flex-direction: column; align-items: flex-start; gap: .2231rem; }
.wall__ttl { font-weight: 700; font-size: .38117rem; line-height: .63rem; letter-spacing: .026682rem; white-space: nowrap; }
.wall__txt { width: 5.09rem; font-weight: 400; font-size: .20325rem; line-height: .44rem; letter-spacing: .014228rem; }
.wall__txt strong { font-weight: 700; color: #fd6a05; }

.together { position: relative; }
.together__down { position: absolute; left: 7.14rem; top: -.73rem; width: .12rem; height: 1.10rem; overflow: visible; }
.together__band {
  width: 14.4rem; height: 6.57rem; padding: .91rem 0;
  display: flex; flex-direction: column; align-items: center; gap: .82rem;
  background: #5c5151;
}
.together__ttl { display: flex; flex-direction: column; align-items: center; gap: .08rem; font-weight: 700; white-space: nowrap; }
.together__ttl .s { font-size: .26593rem; line-height: .43953rem; letter-spacing: .018615rem; }
.together__ttl .l { position: relative; left: .09rem; font-size: .4535rem; line-height: .67rem; letter-spacing: .031745rem; text-align: center; } /* 末尾「。」の字間(-10.24px)の扱いが Figma と違うため、カンプ実測で中心を補正 */
.together__ttl em { color: #fd6a05; }
.together__ttl .p { letter-spacing: -.1024rem; }
.together__steps { position: relative; display: flex; align-items: flex-start; gap: .26rem; }
.together__steps::before { content: ""; position: absolute; left: 50%; top: calc(50% - .625rem); transform: translate(-50%, -50%); width: 8.26rem; height: .03rem; background: #fff; }
.together__steps li { position: relative; width: 3.63rem; display: flex; flex-direction: column; align-items: center; gap: .25rem; text-align: center; }
.together__steps b {
  position: relative; display: block; width: 1.03rem; height: 1.03rem;
}
.together__steps b img { position: absolute; left: -11.65%; top: -11.65%; width: 123.3%; height: 123.3%; }
.together__steps b span {
  position: absolute; left: 0; top: .3809rem; height: .32833rem; display: flex; align-items: center;
  font-family: Montserrat, sans-serif; font-weight: 700; font-size: .45986rem; line-height: .50581rem; letter-spacing: .018394rem;
}
.together__steps h3 { width: 100%; font-weight: 700; font-size: .30rem; line-height: .38181rem; letter-spacing: .021rem; }
.together__steps p { width: 100%; margin-top: calc(.14rem - .25rem); font-weight: 400; font-size: .16rem; line-height: .29rem; letter-spacing: .0112rem; white-space: nowrap; }
.together__steps li:nth-child(3) p { width: 4.01rem; margin-left: -.19rem; margin-right: -.19rem; }

/* ---------------------------------------------------------
   APPROACH (155:1068)
   --------------------------------------------------------- */
.approach {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 1.09rem;
  padding: 1.30rem .62rem 0; color: #352e2e; font-family: "Noto Sans JP", sans-serif;
}
.approach__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.approach__bg img { position: absolute; left: -38.12%; top: .01%; width: 188.58%; height: 151.91%; }
.approach__main { position: relative; display: flex; flex-direction: column; align-items: center; gap: .53rem; }
.approach__reasons { display: flex; flex-direction: column; align-items: flex-start; gap: .82rem; }
.approach__dome { flex: none; width: 14.4rem; height: 1.06551rem; transform: scaleY(-1); }
.arsn { display: flex; flex-direction: column; align-items: flex-start; gap: .61rem; }
.arsn__head { display: flex; flex-direction: column; align-items: flex-start; gap: .38rem; }
.arsn__no { display: flex; align-items: flex-end; gap: .19152rem; font-family: Montserrat, sans-serif; font-weight: 700; color: #fd6a05; white-space: nowrap; }
.arsn__no .l { display: flex; align-items: center; height: .29298rem; font-size: .37843rem; line-height: .90335rem; letter-spacing: .041627rem; }
.arsn__no .n { display: flex; align-items: center; height: .74016rem; font-size: .95603rem; line-height: 2.28215rem; letter-spacing: .105164rem; }
.arsn__txt { padding-left: .39rem; display: flex; flex-direction: column; gap: .30rem; white-space: nowrap; }
.arsn__txt h3 { font-weight: 700; font-size: .43424rem; line-height: .66rem; letter-spacing: .030397rem; }
.arsn__txt p { font-weight: 400; font-size: .17603rem; line-height: .39117rem; letter-spacing: .026404rem; }
.arsn__fig { display: flex; flex-direction: column; align-items: center; gap: .61rem; padding-left: .37rem; }
.aflow-wrap { width: 11rem; display: flex; justify-content: flex-end; }
.aflow { position: relative; display: flex; align-items: flex-end; justify-content: center; filter: drop-shadow(0 .11321rem .15094rem rgba(0,0,0,.08)); }
.aflow__band { position: absolute; left: -.6656rem; top: .9404rem; width: 11.39623rem; padding-bottom: .19953rem; display: flex; flex-direction: column; gap: .28628rem; }
.aflow__lane {
  width: 10.87736rem; height: 1.9717rem; display: flex; align-items: center; padding: .44243rem .23423rem;
  background: #d9d9d9; border-radius: .09434rem;
}
.aflow__lane--or { height: 2.18868rem; background: #feedcf; color: #fd6a05; }
.aflow__lane span { width: .19953rem; font-weight: 700; font-size: .16209rem; line-height: .23389rem; letter-spacing: .011346rem; text-align: center; }
.aflow__cards { position: relative; display: flex; align-items: center; gap: .13208rem; }
.afc { display: flex; align-items: center; }
.afc:not(:last-child)::after { content: ""; flex: none; width: .19953rem; height: .4164rem; background: #fff; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.afc__card { display: flex; flex-direction: column; align-items: flex-start; border-radius: .10rem; overflow: hidden; }
.afc__head { width: 100%; display: flex; align-items: center; justify-content: center; gap: .26025rem; padding: .2429rem .19021rem; background: #352e2e; }
.afc__head b { display: flex; align-items: center; justify-content: center; width: .43678rem; height: .32927rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: .461rem; line-height: .50711rem; letter-spacing: .01844rem; color: #fd6a05; }
.afc__head h4 { display: flex; align-items: center; height: .33152rem; font-weight: 700; font-size: .1316rem; line-height: .18993rem; letter-spacing: .009212rem; color: #fff; white-space: nowrap; }
.afc__body { display: flex; flex-direction: column; align-items: center; gap: .13013rem; padding: .18218rem .2082rem; background: #fff; }
.afc__body p { font-weight: 400; font-size: .1041rem; line-height: .18218rem; letter-spacing: .007287rem; text-align: center; white-space: nowrap; }
.afc__top { width: 100%; display: flex; flex-direction: column; align-items: center; gap: .05205rem; padding-top: .04338rem; }
.afc__pic { position: relative; overflow: hidden; }
.afc__pic img { position: absolute; }
.afc__pic--1 { width: 1.65694rem; height: 1.26656rem; }
.afc__pic--2 { width: 1.44874rem; height: 1.04968rem; }
.afc__down { display: block; width: .127766rem; height: .2776rem; margin: 0 -.063883rem; background: url(../img/approach/v27.svg) no-repeat 0 0 / .127766rem .286278rem; }
.afc__get { width: 1.91719rem; height: 2.13407rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .11278rem; background: #feedcf; }
.afc__body .afc__get-ttl { font-weight: 700; font-size: .1621rem; line-height: .23389rem; letter-spacing: .011347rem; color: #fd6a05; }
.afc__get-ttl + p { margin-top: calc(.06073rem - .11278rem); }
.aflow__msg { display: flex; flex-direction: column; align-items: center; gap: .52rem; }
.aflow__tri { width: .73rem; height: .28rem; transform: rotate(180deg); }
.aflow__txt { position: relative; padding: 0 .21rem; text-align: center; font-weight: 700; letter-spacing: .021721rem; white-space: nowrap; }
.aflow__txt i { position: absolute; height: .18rem; background: #fbff1d; }
.aflow__txt span { position: relative; }
.aflow__txt .s { font-size: .3103rem; line-height: .52638rem; }
.aflow__txt .b { display: block; height: .8272rem; padding-top: .04rem; font-size: .4903rem; line-height: .77rem; } /* Figma の3行目は行ボックス82.7px・字面4px下（カンプ実測） */

/* 比較表 */
.cmp { position: relative; width: 11rem; }
.cmp table { display: block; border-collapse: collapse; }
.cmp thead, .cmp tbody { display: block; }
.cmp tr { display: flex; }
.cmp thead tr { margin-left: 2.215rem; height: 1.15294rem; }
.cmp thead td { display: none; }
.cmp thead th {
  flex: none; width: 2.92941rem; height: 1.15294rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .02353rem;
  background: #dedcdc; box-shadow: inset 0 0 0 .01176rem #352e2e; border-radius: .23529rem .23529rem 0 0; white-space: nowrap;
}
.cmp thead th.is-our { width: 3.84rem; height: 1.15rem; background: #fd6a05; box-shadow: none; color: #fff; }
.cmp thead .h { font-weight: 700; font-size: .32701rem; line-height: .47185rem; letter-spacing: .02289rem; }
.cmp thead .h--sm { font-size: .28rem; letter-spacing: .0196rem; }
.cmp thead .is-our .h { font-size: .32706rem; letter-spacing: .022894rem; }
.cmp thead .sp { letter-spacing: -.0224rem; }
.cmp thead .s { font-weight: 400; font-size: .14118rem; line-height: .24706rem; letter-spacing: .009882rem; }
.cmp tbody { position: relative; margin-top: .0044rem; display: flex; flex-direction: column; gap: .02353rem; }
.cmp tbody::before { content: ""; position: absolute; z-index: 1; left: 0; top: 0; width: 5.14118rem; height: 100%; box-shadow: inset 0 0 0 .01176rem #352e2e; pointer-events: none; }
.cmp tbody th {
  flex: none; width: 2.21176rem; display: flex; align-items: center; justify-content: center; padding: .07652rem;
  background: #dedcdc; box-shadow: inset -.01176rem 0 0 #352e2e, 0 .01176rem 0 #352e2e;
  font-weight: 700; font-size: .21269rem; line-height: .3069rem; letter-spacing: .014889rem; text-align: center; white-space: nowrap;
}
.cmp tbody td {
  flex: none; width: 2.92941rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .12941rem;
  padding: .16471rem 0 .09412rem;
  background: #fff; box-shadow: inset .01176rem 0 0 #352e2e, inset -.01176rem 0 0 #352e2e, 0 .01176rem 0 #352e2e; /* 下線は外側（カンプ実測） */
}
.cmp tbody td.is-our { width: 3.84rem; background: #feedcf; box-shadow: inset .01176rem 0 0 #fd6a05, inset -.01176rem 0 0 #fd6a05, 0 .01176rem 0 #fd6a05; }
.cmp__ic { width: .384043rem; height: .384043rem; }
.cmp__ic.is-x { width: .3294118rem; height: .3411765rem; overflow: visible; object-fit: fill; transform: scale(1.1048, 1.0977); }
.cmp tbody td span { width: 2.92941rem; font-weight: 400; font-size: .1774rem; line-height: .28235rem; letter-spacing: .012418rem; text-align: center; white-space: nowrap; }
.cmp tbody td.is-our span { font-weight: 700; color: #fd6a05; } /* MCP報告値(20.87px)はインスタンス拡大前×1.176の誤り。カンプの字幅で他列と同じ17.74px */
.cmp tbody td.is-our small { display: block; width: 3.84rem; margin: 0 -.4553rem; font-size: .1574rem; line-height: .22rem; letter-spacing: .011018rem; }
.cmp__frame { position: absolute; left: 8.075rem; top: .0014rem; width: 3.84rem; height: 7.402rem; box-shadow: inset 0 0 0 .10588rem #fd6a05; border-radius: .23529rem .23529rem 0 0; pointer-events: none; }

/* ---------------------------------------------------------
   POINT (168:3720)
   --------------------------------------------------------- */
.point { position: relative; display: flex; flex-direction: column; align-items: center; gap: .82rem; padding: .63rem 0 .48rem; background: #fff; color: #352e2e; font-family: "Noto Sans JP", sans-serif; }
.point__main { position: relative; width: 12.23rem; display: flex; flex-direction: column; align-items: center; gap: .38rem; }
.point .shead { width: 11.84rem; }
.point .shead__ttl { height: .64rem; }
/* Figma のテキスト枠は行高の合計を切り上げた整数高になる。ブロック高を Figma 実寸で固定 */
.pt:nth-child(1) { height: 2.4948rem; }
.pt:nth-child(2) { height: 2.6148rem; }
.pt:nth-child(3) { height: 2.8148rem; }
.point .shead__ttl em { color: #fd6a05; }
.point .shead__ttl em.n { font-size: .7442rem; }
.point__body { display: flex; align-items: center; justify-content: center; gap: .64rem; }
.pfig { position: relative; flex: none; width: 5.88rem; height: 5.6027rem; }
.pfig__rings { position: absolute; left: calc(50% + .001rem); top: calc(50% - .0033rem); width: 4.40018rem; height: 4.40018rem; transform: translate(-50%, -50%); }
.pfig__c {
  position: absolute; width: 2.06689rem; height: 2.06689rem; display: flex; align-items: center; justify-content: center;
  padding: .82231rem .42227rem .8112rem .43338rem;
  background: #fff; box-shadow: inset 0 0 0 .05915rem #fd6a05; border-radius: 50%; /* Figma値は79.5pxだがカンプは正円 */
  color: #fd6a05; font-weight: 700; font-size: .3389rem; line-height: .46797rem; letter-spacing: .023723rem; text-align: center; white-space: nowrap;
}
.pfig__c--1 { left: calc(50% - 1.033445rem); top: 0; }
.pfig__c--2 { left: 0; top: calc(2.06689rem + 1.28693rem); }
.pfig__c--3 { right: 0; top: calc(2.06689rem + 1.28693rem); }
.pfig__center { position: absolute; left: 2.9313rem; top: 2.3399rem; transform: translateX(-50%); color: #fff; font-weight: 700; font-size: .2872rem; line-height: .40052rem; letter-spacing: .020104rem; text-align: center; white-space: nowrap; }
.pts { display: flex; flex-direction: column; align-items: flex-start; gap: .39rem; }
.pt { display: flex; flex-direction: column; align-items: flex-start; gap: .27rem; }
.pt__head { display: flex; align-items: flex-end; gap: .27rem; }
.pt__no { display: flex; align-items: flex-end; gap: .08477rem; font-family: Montserrat, sans-serif; font-weight: 700; color: #fd6a05; white-space: nowrap; }
.pt__no .l { display: flex; align-items: center; height: .12968rem; font-size: .1675rem; line-height: .39984rem; letter-spacing: .018425rem; }
.pt__no .n { display: flex; align-items: center; height: .32761rem; font-size: .42316rem; line-height: 1.01012rem; letter-spacing: .046547rem; }
.pt__tag { padding: .05741rem .11rem; background: linear-gradient(to bottom, #fd6a05, #fd8d05 80.288%); color: #fff; font-weight: 700; font-size: .19288rem; line-height: .30003rem; letter-spacing: .013501rem; white-space: nowrap; }
.pt__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .12rem; }
.pt__txt h3 { font-weight: 700; font-size: .32rem; line-height: .52264rem; letter-spacing: .0224rem; white-space: nowrap; }
.pt__txt p { width: 5.71rem; font-weight: 400; font-size: .16rem; line-height: .32rem; letter-spacing: .0112rem; }

/* ---------------------------------------------------------
   SERVICE (305:5454)
   --------------------------------------------------------- */
.svc { position: relative; width: 11rem; display: flex; flex-direction: column; align-items: center; }
.svc > .ghost-h span { height: auto; }
.svc__intro { position: relative; align-self: flex-start; display: flex; flex-direction: column; align-items: flex-start; gap: .24rem; }
.svc__label { height: .28rem; font-weight: 700; font-size: .3161rem; line-height: .27692rem; letter-spacing: .044254rem; color: #fd6a05; white-space: nowrap; }
.svc__h2 { height: 1.70rem; font-weight: 700; font-size: .43424rem; line-height: .87rem; letter-spacing: .030397rem; white-space: nowrap; }
.svc__h2 span { font-size: .55rem; }
.svc__list { margin-top: .71rem; width: 100%; display: flex; flex-direction: column; gap: 1.02rem; }
.svc__item { display: flex; flex-direction: column; align-items: center; gap: .50rem; }
.svc__head { align-self: stretch; display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; }
.svc__txt { padding-left: .39rem; display: flex; flex-direction: column; align-items: flex-start; gap: .30rem; }
.svc__ttl { display: flex; flex-direction: column; align-items: flex-start; gap: .10rem; }
.svc__tag { height: .51928rem; padding: .04464rem .21426rem; background: linear-gradient(to right, #f3904f, #3b4371); color: #fff; font-weight: 700; font-size: .27678rem; line-height: .42067rem; letter-spacing: .019374rem; white-space: nowrap; }
.svc__ttl h3 { font-weight: 700; font-size: .43424rem; line-height: .66rem; letter-spacing: .030397rem; white-space: nowrap; }
.svc__para { min-height: 1.57rem; font-weight: 400; font-size: .17603rem; line-height: .39117rem; letter-spacing: .026404rem; white-space: nowrap; }
.svc__para em { font-weight: 700; color: #fd6a05; }
.svc__note { display: block; font-size: .12rem; line-height: .415rem; letter-spacing: .0084rem; }
.svc > .btn { margin-top: .71rem; }

/* 料金表（列ベース） */
.ptbl { display: flex; align-items: flex-end; gap: .03857rem; }
.ptbl__lab { flex: none; width: 1.65943rem; display: flex; flex-direction: column; }
.ptbl--2 .ptbl__lab { padding-bottom: .03857rem; }
.ptbl__lab li {
  height: .60948rem; display: flex; align-items: center; justify-content: center; padding: .03894rem;
  background: #352e2e; box-shadow: inset 0 .00771rem 0 #fff, inset 0 -.00771rem 0 #fff;
  color: #fff; font-weight: 700; font-size: .1314rem; line-height: .18516rem; letter-spacing: .009198rem; text-align: center; white-space: nowrap;
}
.ptbl__lab li:first-child { box-shadow: inset 0 -.00771rem 0 #fff; }
.ptbl__lab li:last-child { box-shadow: inset 0 .00771rem 0 #fff; }
.ptbl__cols { display: flex; align-items: center; gap: .06172rem; }
.pcol { flex: none; width: 2.16017rem; display: flex; flex-direction: column; }
.pcol--1 { width: 2.14474rem; }
.pcol__head {
  height: .97208rem; padding-top: .07715rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .13115rem;
  background: var(--c); border-radius: .1543rem .1543rem 0 0; color: #fff; white-space: nowrap;
}
.pcol__head .n { display: flex; align-items: center; height: .25939rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: .32981rem; line-height: .51484rem; letter-spacing: .006596rem; }
.pcol__head .s { display: flex; align-items: center; height: .13115rem; font-weight: 700; font-size: .12846rem; line-height: .18104rem; letter-spacing: .008993rem; }
/* 枠線3.857pxは inset の影で描く（border だと整数pxに切り捨てられる） */
.pcol__body { padding: .03857rem; box-shadow: inset 0 0 0 .03857rem var(--bc); }
.pcol__body li {
  height: .60948rem; display: flex; align-items: center; justify-content: center;
  background: #fff; box-shadow: inset 0 0 0 .00771rem #e7e7e7;
  font-weight: 400; font-size: .119rem; line-height: .10714rem; letter-spacing: .00833rem; text-align: center; white-space: nowrap;
}
.pcol__body li.is-price { padding: .03894rem 0; }
.pcol__body li.is-list { font-size: .1543rem; line-height: .14285rem; letter-spacing: .007098rem; }
.pcol__body li.is-list small { font-size: .09258rem; }
.pcol__body li.is-sm { font-size: .0833rem; line-height: .11904rem; letter-spacing: .005831rem; }
.pcol__body li.is-mk { font-size: .1548rem; line-height: .10714rem; letter-spacing: .010836rem; }
.pcol__body li.is-xs { font-size: .1071rem; letter-spacing: .007497rem; }
.pcol__body .l2 { line-height: .1607rem; }
.pr { display: flex; align-items: flex-end; gap: .02263rem; color: var(--c); font-weight: 700; }
.pr > b { display: flex; align-items: center; height: .18964rem; font-family: Montserrat, sans-serif; font-size: .29337rem; line-height: .41344rem; letter-spacing: -.002934rem; }
.pr__u { display: flex; flex-direction: column; align-items: flex-start; font-size: .12846rem; line-height: .18104rem; letter-spacing: .008993rem; }
.pr__u small { display: block; margin-bottom: -.01509rem; font-size: .07315rem; line-height: .10309rem; letter-spacing: .005121rem; }
.pcol .pr__u { height: auto; }
.pcol .pr__u > :not(small) {}

/* SERVICE 03：インスタンスが ×0.88632 で縮小されている（メタデータの実寸から算出） */
.ptbl3 { --k: .88632; display: flex; align-items: flex-end; gap: calc(.03857rem * var(--k)); }
.ptbl3__lab { flex: none; display: flex; flex-direction: column; gap: calc(.01543rem * var(--k)); padding-bottom: calc(.03086rem * var(--k)); }
.ptbl3__lab li {
  width: calc(1.04rem * var(--k)); height: calc(var(--h) * var(--k)); display: flex; align-items: center; justify-content: center;
  background: #352e2e; color: #fff; font-weight: 700; font-size: calc(.1314rem * var(--k)); line-height: calc(.18516rem * var(--k)); letter-spacing: calc(.009198rem * var(--k)); text-align: center; white-space: nowrap;
}
.ptbl3__cols { display: flex; align-items: flex-start; gap: calc(.06172rem * var(--k)); }
.p3c { flex: none; display: flex; flex-direction: column; }
.p3c__head {
  height: calc(.97208rem * var(--k)); padding: calc(.07715rem * var(--k)) calc(.16201rem * var(--k)) 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border-radius: calc(.1543rem * var(--k)) calc(.1543rem * var(--k)) 0 0; color: #fff; font-weight: 700; text-align: center; white-space: nowrap;
}
.p3c__body { padding: calc(.03857rem * var(--k)); background: #fff; }
.p3c--basic { width: calc(2.97rem * var(--k)); align-self: stretch; }
.p3c--basic .p3c__head { background: #ecbd00; font-size: calc(.22982rem * var(--k)); line-height: calc(.31rem * var(--k)); letter-spacing: calc(.016087rem * var(--k)); }
.p3c--basic .p3c__body { flex: 1; box-shadow: inset 0 0 0 calc(.03857rem * var(--k)) #ecbd00; display: flex; flex-direction: column; }
/* 概要・期間セルはインスタンス側で文字サイズが上書きされている（カンプの行送り22.5px・字面から逆算） */
.p3c__sum { height: calc(1.0835rem * var(--k)); display: flex; align-items: center; justify-content: center; padding: calc(.1543rem * var(--k)) calc(.23916rem * var(--k)); box-shadow: inset 0 calc(-.00771rem * var(--k)) 0 #e7e7e7; font-size: calc(.1543rem * var(--k)); line-height: calc(.25459rem * var(--k)); letter-spacing: calc(.010801rem * var(--k)); text-align: center; white-space: nowrap; }
.p3c__list { height: calc(1.57384rem * var(--k)); display: flex; flex-direction: column; justify-content: center; gap: calc(.10029rem * var(--k)); padding: 0 calc(.1526rem * var(--k) / var(--k)); padding-left: calc(.17215rem); box-shadow: inset 0 calc(.00771rem * var(--k)) 0 #e7e7e7, inset 0 calc(-.00771rem * var(--k)) 0 #e7e7e7; }
.p3c__list li { display: flex; align-items: center; gap: calc(.08486rem * var(--k)); font-size: calc(.1543rem * var(--k)); line-height: calc(.1543rem * var(--k)); letter-spacing: calc(.010801rem * var(--k)); white-space: nowrap; }
.p3c__list li::before { content: ""; flex: none; width: calc(.16201rem * var(--k)); height: calc(.16201rem * var(--k)); background: url(../img/service/check-y.svg) no-repeat center / 100% 100%; }
.p3c__list b { color: #ecbd00; }
.p3c__price { height: calc(.61719rem * var(--k)); display: flex; align-items: center; justify-content: center; box-shadow: inset 0 calc(.00771rem * var(--k)) 0 #e7e7e7, inset 0 calc(-.00771rem * var(--k)) 0 #e7e7e7; --c: #ecbd00; }
.p3c__term, .p3s__term { display: flex; align-items: center; justify-content: center; box-shadow: inset 0 calc(.00771rem * var(--k)) 0 #e7e7e7; white-space: nowrap; }
.p3c__term { height: calc(.64034rem * var(--k)); font-size: calc(.13688rem * var(--k)); line-height: calc(.10714rem * var(--k)); letter-spacing: calc(.00833rem * var(--k)); }
.ptbl3 .pr > b { height: calc(.18964rem * var(--k)); font-size: calc(.29337rem * var(--k)); line-height: calc(.41344rem * var(--k)); letter-spacing: calc(-.002934rem * var(--k)); }
.ptbl3 .pr { gap: calc(.02263rem * var(--k)); }
.ptbl3 .pr__u { align-items: center; height: calc(.23916rem * var(--k)); font-size: calc(.12846rem * var(--k)); line-height: calc(.18104rem * var(--k)); letter-spacing: calc(.008993rem * var(--k)); }
.ptbl3 .pr__u small { margin-bottom: calc(-.01509rem * var(--k)); font-size: calc(.07315rem * var(--k)); line-height: calc(.10309rem * var(--k)); letter-spacing: calc(.005121rem * var(--k)); }
.ptbl3 .pr--s { gap: calc(.02008rem * var(--k)); }
.ptbl3 .pr--s > b { height: calc(.16823rem * var(--k)); font-size: calc(.26025rem * var(--k)); line-height: calc(.36676rem * var(--k)); letter-spacing: calc(-.002602rem * var(--k)); }
.ptbl3 .pr--s .pr__u { height: calc(.21216rem * var(--k)); font-size: calc(.11396rem * var(--k)); line-height: calc(.1606rem * var(--k)); letter-spacing: calc(.007977rem * var(--k)); }
.ptbl3 .pr--s .pr__u small { margin-bottom: calc(-.01338rem * var(--k)); font-size: calc(.0649rem * var(--k)); line-height: calc(.09146rem * var(--k)); letter-spacing: calc(.004543rem * var(--k)); }

.p3c--skill .p3c__head { background: #ec7a00; gap: calc(.06943rem * var(--k)); }
.p3c--skill .p3c__head .t { display: flex; align-items: center; height: calc(.27866rem * var(--k)); font-size: calc(.27002rem * var(--k)); line-height: calc(.38466rem * var(--k)); letter-spacing: calc(.018901rem * var(--k)); }
.p3c--skill .p3c__head .s { display: flex; align-items: center; height: calc(.24213rem * var(--k)); font-size: calc(.15229rem * var(--k)); line-height: calc(.33423rem * var(--k)); letter-spacing: calc(.01066rem * var(--k)); }
.p3c__pair { display: flex; padding: calc(.03857rem * var(--k)); background: #fff; box-shadow: inset 0 0 0 calc(.03857rem * var(--k)) #ec7a00; }
.p3s { width: calc(2.40705rem * var(--k)); display: flex; flex-direction: column; --sc: #3fc143; }
.p3s--p { --sc: #b343e7; }
.p3s__head { height: calc(1.08009rem * var(--k)); display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--sc); color: #fff; font-weight: 700; font-size: calc(.22223rem * var(--k)); line-height: calc(.30371rem * var(--k)); letter-spacing: calc(.013482rem * var(--k)); text-align: center; white-space: nowrap; }
.p3s__head small { font-size: calc(.1543rem * var(--k)); }
.p3s__body { padding: calc(.03857rem * var(--k)); box-shadow: inset 0 0 0 calc(.03857rem * var(--k)) var(--sc); }
.p3s__sum { height: calc(1.54899rem * var(--k)); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(.12319rem * var(--k)); box-shadow: inset 0 calc(-.00726rem * var(--k)) 0 #e7e7e7; }
.p3s__sum > p:first-child { font-size: calc(.13688rem * var(--k)); line-height: calc(.22585rem * var(--k)); letter-spacing: calc(.009582rem * var(--k)); text-align: center; white-space: nowrap; }
.p3s__time { display: flex; align-items: flex-end; gap: calc(.1095rem * var(--k)); padding: calc(.06381rem * var(--k)) calc(.16409rem * var(--k)) calc(.13003rem * var(--k)); background: #feedcf; border-radius: calc(.09116rem * var(--k)); color: #ec7a00; font-weight: 700; white-space: nowrap; }
.p3s__time i { width: calc(.40262rem * var(--k)); height: calc(.36236rem * var(--k)); background: url(../img/service/video.svg) no-repeat center / 100% 100%; }
.p3s__time span { display: flex; flex-wrap: wrap; align-items: flex-end; width: calc(.61rem * var(--k)); column-gap: calc(.02674rem * var(--k)); font-size: calc(.1518rem * var(--k)); line-height: calc(.16409rem * var(--k)); letter-spacing: calc(.010626rem * var(--k)); }
.p3s__time small { width: 100%; margin-bottom: calc(.02735rem * var(--k)); color: #352e2e; font-size: calc(.10755rem * var(--k)); line-height: calc(.23046rem * var(--k)); letter-spacing: calc(.007528rem * var(--k)); }
.p3s__time b { display: flex; align-items: center; height: calc(.22408rem * var(--k)); font-family: Montserrat, sans-serif; font-size: calc(.34665rem * var(--k)); line-height: calc(.48852rem * var(--k)); letter-spacing: calc(-.003466rem * var(--k)); }
.p3s__price { height: calc(.60948rem * var(--k)); display: flex; align-items: center; justify-content: center; box-shadow: inset 0 calc(.00726rem * var(--k)) 0 #e7e7e7, inset 0 calc(-.00726rem * var(--k)) 0 #e7e7e7; --c: #ec7a00; }
.p3s__term { height: calc(.60948rem * var(--k)); font-size: calc(.13688rem * var(--k)); line-height: calc(.08431rem * var(--k)); letter-spacing: calc(.006559rem * var(--k)); }

.p3c--custom { height: calc(4.96152rem * var(--k)); }
.p3c--custom .p3c__head { background: #c90000; font-size: calc(.27002rem * var(--k)); line-height: calc(.33423rem * var(--k)); letter-spacing: calc(.018901rem * var(--k)); }
.p3c--custom .p3c__body { height: calc(3.95774rem * var(--k)); box-shadow: inset 0 0 0 calc(.03857rem * var(--k)) #c90000; }
.p3c__cbox { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(.09rem * var(--k)); padding: calc(.1543rem * var(--k)) calc(.23916rem * var(--k)); box-shadow: inset 0 calc(-.00771rem * var(--k)) 0 #e7e7e7; }
.p3c__cbox .p3c__sum { height: auto; padding: 0; box-shadow: none; font-size: calc(.1543rem * var(--k)); line-height: calc(.25459rem * var(--k)); letter-spacing: calc(.010801rem * var(--k)); }
.p3c__gear { display: flex; flex-direction: column; align-items: center; gap: calc(.12344rem * var(--k)); padding: calc(.18516rem * var(--k)) calc(.20059rem * var(--k)); background: #e7e7e7; border-radius: calc(.1543rem * var(--k)); }
.p3c__gear img { width: calc(.5169rem * var(--k)); height: calc(.5169rem * var(--k)); }
.p3c__gear ul { display: flex; flex-direction: column; gap: calc(.10029rem * var(--k)); }
.p3c__gear li { display: flex; align-items: flex-start; gap: calc(.08486rem * var(--k)); font-size: calc(.1543rem * var(--k)); line-height: calc(.23916rem * var(--k)); letter-spacing: calc(.010801rem * var(--k)); white-space: nowrap; }
.p3c__gear li::before { content: ""; flex: none; width: calc(.16201rem * var(--k)); height: calc(.20059rem * var(--k)); background: url(../img/service/check-r.svg) no-repeat center / 100% 100%; }

/* ---------------------------------------------------------
   DATA (94:730)
   --------------------------------------------------------- */
.data { position: relative; display: flex; flex-direction: column; align-items: center; gap: .82rem; padding: 0 .62rem 1.30rem; background: #352e2e; color: #fff; font-family: "Noto Sans JP", sans-serif; }
.data__dome { flex: none; width: 14.4rem; height: 1.06551rem; }
.data__main { display: flex; flex-direction: column; align-items: flex-start; gap: .82rem; }
.dgrid { position: relative; width: 11rem; height: 8.52513rem; }
.dcard {
  position: absolute; display: flex; flex-direction: column; padding: .34531rem .31732rem;
  background: #4b4344; box-shadow: inset 0 0 0 .00933rem #fff;
}
.dcard__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .07466rem; }
.dcard__txt h3 { font-weight: 700; font-size: .33598rem; line-height: .52264rem; letter-spacing: .023519rem; white-space: nowrap; }
.dcard__txt p { width: 3.20115rem; font-weight: 400; font-size: .14932rem; line-height: .31732rem; letter-spacing: .010453rem; }
.dnum { display: flex; align-items: flex-end; justify-content: flex-end; gap: .06533rem; color: #fd6a05; white-space: nowrap; }
.dnum b { display: flex; align-items: center; height: .74662rem; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.02742rem; line-height: 1.82653rem; letter-spacing: -.010274rem; }
.dnum span { display: flex; align-items: center; height: .3088rem; font-weight: 700; font-size: .36197rem; line-height: .6435rem; letter-spacing: .028958rem; }
.dnum--l { gap: .07344rem; padding-right: 1.15727rem; }
.dnum--l b { height: .83931rem; font-size: 1.15496rem; line-height: 2.05327rem; letter-spacing: -.01155rem; }
.dnum--l span { height: .34714rem; font-size: .4069rem; line-height: .72339rem; letter-spacing: .032552rem; }
.dcard--a { left: 0; top: 0; width: 3.86rem; height: 4.73rem; align-items: flex-end; justify-content: flex-end; gap: .31732rem; }
.dcard__top { display: flex; flex-direction: column; align-items: center; }
.dcard--a .dcard__txt { width: 100%; margin-bottom: -.12133rem; }
.dcard__bld { width: 2.4777rem; height: 1.50982rem; }
.dcard--b { left: 4.3142rem; top: .0034rem; width: 6.68575rem; height: 3.09404rem; align-items: center; justify-content: flex-end; }
.dcard__row { display: flex; align-items: flex-start; justify-content: center; }
.dcard--b .dcard__row { gap: .61943rem; }
.dcard__col { width: 3.20115rem; display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; gap: .07466rem; }
.dcard__col .dcard__txt { width: 100%; }
.donut { position: relative; width: 2.21188rem; height: 2.19959rem; }
.donut img { width: 100%; height: 100%; }
.donut__v { position: absolute; left: .5285rem; top: .79rem; display: flex; flex-direction: column; align-items: center; gap: .09rem; color: #fd6a05; font-weight: 700; white-space: nowrap; }
.donut__v .r { display: flex; align-items: flex-end; gap: .04rem; }
.donut__v b { display: flex; align-items: center; height: .48126rem; font-family: Montserrat, sans-serif; font-size: .66225rem; line-height: 1.17734rem; letter-spacing: -.006623rem; }
.donut__v .r span, .donut__v .u { display: flex; align-items: center; height: .19905rem; font-size: .23332rem; line-height: .41479rem; letter-spacing: .018665rem; }
.dcard--c { left: 0; top: 5.2631rem; width: 6.30759rem; height: 3.26203rem; align-items: flex-end; justify-content: flex-end; }
.dcard--c .dcard__row { gap: .38rem; }
.dcard--c .dcard__col { gap: .24265rem; align-items: flex-start; justify-content: center; }
.dcard__docs { width: 1.94001rem; height: 1.39413rem; }
.dcard--d { left: 6.8246rem; top: 3.6982rem; width: 4.17177rem; height: 4.8204rem; align-items: center; justify-content: center; gap: .10rem; }
.dcard--d .dcard__txt { width: 100%; }
.dcard__award { display: flex; flex-direction: column; align-items: flex-end; }
.dcard__award img { width: 1.72999rem; height: 1.47401rem; margin-bottom: -.40rem; }
.data > .btn { flex: none; }

/* 記事カード（155:1264 系コンポーネント）。CASE と MEDIA で値が比例しないため変数で持つ。
   Figma のテキスト枠は整数高に切り上がる（タグ27 / タイトル93 / タグ行31 など）ので高さを明示 */
.acard {
  --py: .37083rem; --px: .23516rem; --bw: .00812rem; --gap: .2442rem; --iw: 3.14864rem; --ih: 1.76908rem;
  --bgap: .08115rem; --tgap: .11361rem; --fs: .1623rem; --lh: .30837rem; --ls: .011361rem;
  --tfs: .1948rem; --tlh: .30837rem; --tls: .013636rem; --tagpx: .14607rem; --tagpy: .02435rem; --taglh: .26093rem;
  --tagH: .31869rem; --ttlH: .93rem; --tagsH: .31rem; --dr: .0325rem; --dt: .0243rem; --sh-y: .09738rem; --sh-b: .12984rem;
  flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: var(--gap);
  padding: calc(var(--py) + var(--bw)) calc(var(--px) + var(--bw));
  background: #fff; box-shadow: inset 0 0 0 var(--bw) #e7e7e7; border-radius: .20rem;
  filter: drop-shadow(0 var(--sh-y) var(--sh-b) rgba(0,0,0,.08));
  color: #352e2e; font-family: "Noto Sans JP", sans-serif;
}
.media .acard {
  --py: .323rem; --px: .21533rem; --bw: .00897rem; --gap: .17945rem; --iw: 3.48124rem; --ih: 1.95595rem;
  --bgap: .08972rem; --tgap: .12561rem; --fs: .1794rem; --lh: .34095rem; --ls: .012558rem;
  --tfs: .2153rem; --tlh: .34095rem; --tls: .015071rem; --tagpx: .1615rem; --tagpy: .02692rem; --taglh: .28849rem;
  --tagH: .34384rem; --ttlH: 1.03rem; --tagsH: .35rem; --dr: .0359rem; --dt: .0269rem; --sh-y: .10767rem; --sh-b: .14356rem;
}
.acard__img { display: block; width: var(--iw); height: var(--ih); border-radius: .20rem; overflow: hidden; }
.acard__img img { width: 100%; height: 100%; object-fit: cover; }
.acard__body { width: var(--iw); display: flex; flex-direction: column; align-items: flex-start; gap: var(--bgap); }
.acard__top { position: relative; width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: var(--tgap); }
.acard__tag { height: var(--tagH); display: flex; align-items: center; padding: var(--tagpy) var(--tagpx); background: #fd6a05; border-radius: .31423rem; color: #fff; font-weight: 700; font-size: var(--fs); line-height: var(--taglh); letter-spacing: var(--ls); white-space: nowrap; }
.acard__ttl { width: 100%; height: var(--ttlH); font-weight: 700; font-size: var(--tfs); line-height: var(--tlh); letter-spacing: var(--tls); }
.acard__date { position: absolute; right: var(--dr); top: var(--dt); color: #fd6a05; font-weight: 500; font-size: var(--fs); line-height: var(--lh); letter-spacing: var(--ls); white-space: nowrap; }
.acard__tags { height: var(--tagsH); display: flex; gap: var(--bgap); color: #9f9f9f; font-weight: 500; font-size: var(--fs); line-height: var(--lh); letter-spacing: var(--ls); white-space: nowrap; }
/* 既存サイトの記事を流し込むので、長いタイトルは3行で省略・長いラベルは日付に重ならないよう省略 */
.acard__ttl { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.acard__tag { display: block; max-width: calc(100% - 1.15rem); overflow: hidden; text-overflow: ellipsis; line-height: calc(var(--tagH) - 2 * var(--tagpy)); }
.acard__tags { overflow: hidden; }

/* ---------------------------------------------------------
   CASE STUDIES (172:896)
   --------------------------------------------------------- */
.case-s { position: relative; display: flex; flex-direction: column; align-items: center; gap: .82rem; padding: 1.30rem .62rem; font-family: "Noto Sans JP", sans-serif; }
.case-s__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.case-s__list { position: relative; display: flex; flex-direction: column; gap: .48841rem; }
.case-s__row { display: flex; align-items: flex-start; gap: .25157rem; }

/* ---------------------------------------------------------
   MEDIA (94:737)
   --------------------------------------------------------- */
.media { position: relative; padding: 1.30rem 0; background: #fff; color: #352e2e; font-family: "Noto Sans JP", sans-serif; }
.media__main { position: relative; width: 12.34584rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .52rem; }
.media__list { display: flex; flex-direction: column; align-items: center; gap: .47rem; }
.mblk { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; gap: .42rem; }
.mblk__main { display: flex; flex-direction: column; align-items: flex-start; gap: .49rem; }
.mblk__intro { position: relative; width: 11rem; display: flex; flex-direction: column; align-items: flex-start; gap: .11rem; }
.mblk__intro h3 { font-weight: 700; font-size: .36rem; line-height: .64rem; letter-spacing: .0252rem; white-space: nowrap; }
.mblk__intro > p:not(.mblk__num) { font-weight: 400; font-size: .16rem; line-height: .34rem; letter-spacing: .024rem; white-space: nowrap; }
.mblk__num { position: absolute; right: 0; bottom: -.0041rem; display: flex; align-items: flex-end; justify-content: flex-end; gap: .10rem; color: #fd6a05; font-family: Montserrat, "Noto Sans JP", sans-serif; font-weight: 700; white-space: nowrap; }
.mblk__num--l { right: auto; left: 8.14rem; }
.mblk__num b { display: flex; align-items: center; height: .80rem; font-size: 1.10087rem; line-height: 1.9571rem; letter-spacing: -.011009rem; }
.mblk__num span { display: flex; align-items: center; height: .46rem; font-size: .5392rem; line-height: .95858rem; letter-spacing: -.005392rem; }
.mblk__num--l span { width: .54rem; }
.mblk__cards { display: flex; align-items: flex-start; gap: .27814rem; }
.mblk__more { display: flex; align-items: flex-start; gap: .14rem; font-weight: 700; font-size: .18rem; line-height: .26869rem; letter-spacing: .027rem; white-space: nowrap; }
.mblk__more i { flex: none; width: .28rem; height: .28rem; background: url(../img/arrow-circle.svg) no-repeat center / 100% 100%; }
.shead__ttl--media { font-size: .55rem; letter-spacing: .0385rem; }
.mblk__sep { width: 11.35rem; height: 0; margin: 0; border: 0; border-top: .01rem solid #9f9f9f; }

.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------------------------------------------------------
   CTA (382:7806)：写真カード＋右寄せの文字・ボタン。人物はカードの上端からはみ出す
   --------------------------------------------------------- */
.cta { position: relative; width: 12.46rem; margin: 0 auto; padding: .90rem 0; box-sizing: content-box; }
.cta__card {
  position: relative; overflow: hidden; height: 4.68928rem; border-radius: .50rem;
  box-shadow: .08rem .11rem .186rem rgba(0,0,0,.25);
  display: flex; flex-direction: column; align-items: flex-end; padding: .55rem .52rem; box-sizing: border-box;
}
.cta__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cta__body { position: relative; display: flex; flex-direction: column; align-items: flex-start; }
.cta__ttl {
  display: flex; flex-direction: column; align-items: flex-start; gap: .08928rem;
  font-weight: 900; font-size: .46574rem; line-height: .73654rem; letter-spacing: .032602rem; color: #fff; white-space: nowrap;
}
.cta__line { display: flex; align-items: flex-start; gap: .1674rem; }
.cta__ttl em { background: #fbff1d; color: var(--black); }
.cta__txt {
  margin-top: .06rem; color: #fff; font-size: .17603rem; line-height: .42rem; letter-spacing: .030rem; white-space: nowrap; /* Figma .026404。カンプの行幅に合わせて補正 */
}
.cta__txt strong { font-weight: 700; font-size: .226rem; }
.cta__btn {
  margin-top: .33rem; display: flex; align-items: center; justify-content: center; gap: .25rem;
  padding: .21rem .48rem; border: .03rem solid #fff; border-radius: .77rem;
  background: linear-gradient(to right, #f3904f, #3b4371);
  filter: drop-shadow(.02rem .06rem .071rem rgba(0,0,0,.41));
  color: #fff; font-weight: 700; font-size: .18rem; line-height: .26869rem; letter-spacing: .027rem;
}
.cta__btn > span { width: 2.67rem; height: .26869rem; text-align: center; }
.cta__btn b { font-size: .22rem; color: #fbff1d; }
.cta__arw {
  flex: none; width: .90rem; height: .07rem; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 90 7%22 width=%2290%22 height=%227%22 preserveAspectRatio=%22none%22%3E%3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M79.3 0.5L90 7H0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.37%22/%3E%3C/svg%3E") no-repeat center / 100% 100%;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 90 7%22 width=%2290%22 height=%227%22 preserveAspectRatio=%22none%22%3E%3Cpath vector-effect=%22non-scaling-stroke%22 d=%22M79.3 0.5L90 7H0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.37%22/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.cta__person { position: absolute; left: 1.23rem; bottom: .90rem; width: 3.48rem; height: 5.17rem; pointer-events: none; }

/* ---------------------------------------------------------
   Footer (232:1077)
   --------------------------------------------------------- */
.ft { display: flex; justify-content: center; padding: .69rem .10rem 1.10rem; background: #352e2e; font-family: "Noto Sans JP", sans-serif; }
.ft__in { display: flex; flex-direction: column; align-items: center; gap: .65rem; }
.ft__top { display: flex; align-items: flex-start; justify-content: center; gap: 1.24rem; }
.ft__info { display: flex; flex-direction: column; align-items: flex-start; gap: .33072rem; }
.ft__logo img { width: 2.5381rem; height: .8196rem; }
.ft__addr { padding-left: .10rem; display: flex; flex-direction: column; align-items: flex-start; gap: .27rem; }
.ft__addr > p { color: #fff; font-weight: 500; font-size: .16rem; line-height: .32rem; letter-spacing: .0112rem; white-space: nowrap; }
.ft__sns { display: flex; align-items: center; gap: .15rem; }
.ft__sns img { width: .32298rem; height: .32298rem; }
.ft__sns li:nth-child(2) img { width: .35234rem; height: .35234rem; }
.ft__nav { display: flex; align-items: flex-start; gap: .17rem; padding-top: .61rem; line-height: .36475rem; white-space: nowrap; }
.ft__col { width: 2rem; display: flex; flex-direction: column; align-items: flex-start; gap: .16rem; }
.ft__col > p { color: #fff; font-weight: 700; font-size: .20rem; letter-spacing: .016rem; }
.ft__col ul { display: flex; flex-direction: column; gap: .02rem; color: #9f9f9f; font-weight: 500; font-size: .16rem; letter-spacing: .0112rem; }
.ft__line { width: 12.43rem; height: 0; margin: 0; border: 0; border-top: .01rem solid #9f9f9f; }
.ft__bottom { display: flex; align-items: flex-start; justify-content: center; gap: 8.13rem; color: #9f9f9f; font-family: "Hiragino Sans", sans-serif; font-weight: 500; font-size: .16rem; line-height: .26rem; white-space: nowrap; }
.ft__bottom small { font-size: inherit; }
.ft__legal { display: flex; align-items: center; gap: .44rem; }

/* ---------------------------------------------------------
   アニメーション（animations.txt）
   --------------------------------------------------------- */
/* PCヘッダー：ホバーでピル型の背景が広がる（参考 etoha-lab：scale .9→1 / 0.4s） */
@media (hover: hover) {
  .hdr__nav a { position: relative; z-index: 0; }
  .hdr__nav a::after {
    content: ""; position: absolute; z-index: -1; inset: -.07rem -.14rem; border-radius: .30rem;
    background: #fd6a05; opacity: 0; transform: scale(.9); transition: opacity .4s, transform .4s;
  }
  .hdr__nav a:hover::after, .hdr__nav a:focus-visible::after { opacity: 1; transform: scale(1); }
  .hdr__cta { transition: filter .4s; }
  .hdr__cta .arw { transition: transform .4s; }
  .hdr__cta:hover { filter: brightness(1.1); }
  .hdr__cta:hover .arw { transform: translateX(.05rem); }
}
/* FV：スクロール量に合わせて ABOUT の濃色へなめらかに移る（参考 miroom） */
.fv__shade { position: absolute; z-index: 2; inset: 0; background: #352e2e; opacity: calc(var(--fvp, 0) * .92); pointer-events: none; }
.fv__catch { transform: scale(calc(1 + var(--fvp, 0) * .06)); transform-origin: 30% 60%; }
.fv__lead, .fv__scroll { opacity: calc(1 - var(--fvp, 0) * 1.4); }
.fv__scroll i::before { animation: scroll-line 2s cubic-bezier(.6,0,.3,1) infinite; }
@keyframes scroll-line { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(305%); } }
@media (prefers-reduced-motion: reduce) {
  .ghost__track, .fv__scroll i::before { animation: none; }
  .fv__shade { opacity: 0; }
  .fv__catch { transform: none; }
}

/* 1441px 以上も html の font-size（100vw/14.4）でページ全体を比例拡大する（背景だけが伸びて中身とずれないように。2026-09-29 方針変更） */

/* セクション境界が小数pxになる幅で、前のセクションの色が1px線として出るのを覆う（幅掃引で検出） */
.point { box-shadow: 0 -.02rem 0 #fff; }
.partner__dome { top: -.02rem; }

/* =========================================================
   出現アニメーション（animations.txt：参考 ppi.jp の _mov_fadeup）
   JS が .rv を付け、画面に入ったら .is-in。transform を使う要素とぶつからないよう translate で動かす
   ========================================================= */
.rv { opacity: 0; translate: 0 .60rem; }
.rv.is-in { opacity: 1; translate: 0 0; transition: translate 1s cubic-bezier(.5,1,.89,1) var(--d, 0s), opacity .6s linear var(--d, 0s); }
/* 比較カード：左 → 矢印ちょぽちょぽ → 右 */
.vs__chev { opacity: 0; transform-box: fill-box; transform-origin: center; transform: translateX(-.08rem) scale(.6); }
.vs.is-in .vs__chev { opacity: 1; transform: none; transition: opacity .25s linear, transform .35s cubic-bezier(.34,1.56,.64,1); }
.vs.is-in .vs__chev:nth-child(1) { transition-delay: .55s; }
.vs.is-in .vs__chev:nth-child(2) { transition-delay: .8s; }
.vs .vs__card { opacity: 0; translate: 0 .60rem; }
.vs.is-in .vs__card { opacity: 1; translate: 0 0; transition: translate 1s cubic-bezier(.5,1,.89,1), opacity .6s linear; }
.vs.is-in .vs__card--or { transition-delay: 1.1s; }
@media (prefers-reduced-motion: reduce) {
  .rv, .vs .vs__card, .vs__chev { opacity: 1 !important; translate: none !important; transform: none !important; transition: none !important; }
}

/* ボタン共通：ホバーで明るく＋矢印が右へ（animations.txt） */
@media (hover: hover) {
  .btn, .cta__btn, .movie__btn { transition: filter .3s, translate .3s; }
  .btn:hover, .cta__btn:hover { filter: brightness(1.08) drop-shadow(0 .12rem .16rem rgba(0,0,0,.12)); }
  .btn__arw, .cta__arw, .arw { transition: transform .3s cubic-bezier(.22,1,.36,1); }
  .btn:hover .btn__arw, .cta__btn:hover .cta__arw, a:hover > .arw, a:hover .arw { transform: translateX(.08rem); }
  .mblk__more i { transition: transform .3s cubic-bezier(.22,1,.36,1); }
  .mblk__more { transition: color .3s; }
  .mblk__more:hover { color: #fd6a05; }
  .mblk__more:hover i { transform: translateX(.06rem); }
}
