/*
Theme Name: AIO Marketing
Theme URI: 
Author: AIOマーケティング株式会社
Author URI: 
Description: AIOマーケティング株式会社 コーポレートサイト
Version: 1.0
Requires at least: 6.3
Requires PHP: 7.4
License: 
License URI: 
Text Domain: aio
*/
@charset "UTF-8";


:root {
  --paper: #f4f5f7;
  --sheet: #ffffff;
  --ink: #0e1624;
  --mute: #5a6474;
  --rule: #d9dee6;
  --signal: #d42a2f;
  --signal-soft: #fbe8e9;
  --sky: #e3ecfa;
  --blush: #fbe3e1;
  --night: #0a101b;
  --night-2: #121a28;
  --night-ink: #eceff4;
  --night-mute: #8b96a8;
  --night-rule: #222c3d;
  --f-mincho: Shippori Mincho B1, Hiragino Mincho ProN, Yu Mincho, serif;
  --f-gothic: Zen Kaku Gothic New, Hiragino Sans, Yu Gothic, system-ui, sans-serif;
  --f-latin: Instrument Serif, Iowan Old Style, Times New Roman, serif;
  --wrap: 1440px;
  --gutter: clamp(16px, 4vw, 48px);
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
  --stage-gap: clamp(12px, 1.5625vw, 30px);
  --stage-r: clamp(24px, 1.67vw, 32px);
  --inner-r: clamp(8px, calc(1.67vw - 8px), 16px);
  --panel-h: clamp(640px, min(calc(100svh - var(--stage-gap) * 2 - 11px), 62vw), 1100px);
  --tab-w: 330px;
  --tab-h: 104px;
  --sec: clamp(70px, calc(43.3px + 7.12vw), 180px);
  --fs-min: 14px;
  --fs-label: clamp(14px, calc(12.54px + 0.388vw), 20px);
  --fs-h2: clamp(32px, calc(26.66px + 1.424vw), 54px);
  --fs-h2-sm: clamp(28px, calc(23.63px + 1.165vw), 46px);
  --hdr-h: 80px;
}
@media screen and (min-width: 961px) {
  :root {
    --fs-min: 16px;
    --hdr-h: clamp(64px, 5.1vw, 98px);
  }
}
@media screen and (max-width: 960px) {
  :root {
    --panel-h: auto;
  }
}
@media screen and (max-width: 640px) {
  :root {
    --stage-gap: 10px;
    --stage-r: 16px;
    --hdr-h: 64px;
  }
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    --paper: #0d131e;
    --sheet: #131b29;
    --ink: #e7ebf1;
    --mute: #97a1b2;
    --rule: #232d3f;
    --signal: #ef4d48;
    --signal-soft: #2b1618;
    --sky: #14223a;
    --blush: #2a1820;
    color-scheme: dark;
  }
}
:root[data-theme=dark] {
  --paper: #0d131e;
  --sheet: #131b29;
  --ink: #e7ebf1;
  --mute: #97a1b2;
  --rule: #232d3f;
  --signal: #ef4d48;
  --signal-soft: #2b1618;
  --sky: #14223a;
  --blush: #2a1820;
  color-scheme: dark;
}

@media screen and (max-width: 960px) {
  .p-hero {
    --fs-min: 0px;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hdr-h) + env(safe-area-inset-top, 0px) + 24px);
}

body {
  overflow-x: clip;
  margin: 0;
  background: var(--paper);
  font-family: var(--f-gothic);
  font-size: 16px;
  line-height: 1.9;
  color: var(--ink);
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1,
h2,
h3 {
  font-family: var(--f-mincho);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
  font-feature-settings: "palt";
}

p,
li {
  text-wrap: pretty;
  word-break: normal;
  line-break: strict;
}

.nw {
  white-space: nowrap;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--signal);
  outline-offset: 4px;
}

::-moz-selection {
  background: var(--signal);
  color: #fff;
}

::selection {
  background: var(--signal);
  color: #fff;
}

@media screen and (max-width: 640px) {
  body {
    font-size: max(var(--fs-min), 15px);
  }
  .nw:not(:where(.hx__lead *, .p-sd-hero__lead *, .p-faq__qt *)) {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
  html {
    scroll-behavior: auto;
  }
}
body {
  background: var(--sheet);
}

.c-label {
  display: inline-flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 11.5px);
  color: var(--mute);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  align-items: center;
  gap: 12px;
}

.c-label::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--signal);
  content: "";
  flex: none;
}

.c-label b {
  font-weight: 500;
  color: var(--ink);
}

.c-head {
  display: grid;
  margin-bottom: clamp(48px, 7vw, 88px);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 28px 72px;
  align-items: end;
}

.c-head h2 {
  margin-top: 10px;
  font-size: clamp(30px, 4.2vw, 54px);
  line-height: 1.35;
}

.c-head p {
  color: var(--ink);
  justify-self: end;
}

.c-en {
  font-family: var(--f-latin);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0;
}

@media screen and (max-width: 960px) {
  .c-head {
    grid-template-columns: minmax(0, 1fr);
  }
  .c-head p {
    justify-self: start;
  }
}
.c-head h2 {
  font-size: var(--fs-h2);
  line-height: 1.32;
  font-feature-settings: "palt";
}

.c-en {
  font-weight: 400;
}

.c-label {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: var(--fs-label);
  font-weight: 700;
  line-height: 1.2;
  color: #d6363a;
  letter-spacing: 0.01em;
  text-transform: none;
  gap: 0;
}

.c-label::before {
  display: none;
}

.c-label--ja {
  font-family: var(--f-gothic);
}

.c-btn {
  position: relative;
  display: inline-flex;
  overflow: hidden;
  padding: 10px 10px 10px 28px;
  border-radius: 999px;
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  letter-spacing: 0.06em;
  transition: color 0.4s var(--ease);
  align-items: center;
  gap: 18px;
  isolation: isolate;
}

.c-btn__ico {
  display: grid;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  place-items: center;
  flex: none;
}

.c-btn__ico svg {
  width: 14px;
  height: 14px;
}

.c-btn--signal {
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85), 0 0 0 0 rgba(224, 72, 76, 0.55);
  color: #fff;
  animation: signalRing 2.6s 1.6s ease-out infinite;
}

.c-btn--signal:hover {
  animation: none;
}

@keyframes signalRing {
  0% {
    box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85), 0 0 0 0 rgba(224, 72, 76, 0.55);
  }
  70%, 100% {
    box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85), 0 0 0 16px rgba(224, 72, 76, 0);
  }
}
.c-btn--signal .c-btn__ico {
  background: #fff;
  color: var(--signal);
}

.c-btn--signal::before {
  position: absolute;
  z-index: -1;
  background: #0a101b;
  content: "";
  transition: transform 0.45s var(--ease);
  transform: translateY(101%);
  inset: 0;
}

.c-btn--signal:hover::before {
  transform: none;
}

.c-btn--line {
  padding: 10px 28px;
  border: 1px solid currentColor;
}

.c-btn--line:hover {
  background: currentColor;
}

.c-btn--line:hover span {
  color: var(--night);
}

.c-btn--white {
  padding: 12px 12px 12px 38px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 24px 48px -16px rgba(60, 0, 8, 0.6), 0 0 0 0 rgba(255, 255, 255, 0.5);
  font-size: 18px;
  color: #121722;
  letter-spacing: 0.1em;
  animation: fade 1.2s 0.9s var(--ease) both, ctaRing 2.8s 2.2s ease-out infinite;
  gap: 28px;
}

.c-btn--white .c-btn__ico {
  width: 54px;
  height: 54px;
  background: #c51f27;
  color: #fff;
}

.c-btn--white .c-btn__ico svg {
  width: 17px;
  height: 17px;
}

.c-btn--white small {
  display: block;
  margin-bottom: 3px;
  font-size: max(var(--fs-min), 11px);
  font-weight: 700;
  color: #c51f27;
  letter-spacing: 0.14em;
}

.c-btn--white > span:first-child {
  line-height: 1.25;
}

.c-btn--white::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 30%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0) 20%, rgba(197, 31, 39, 0.14) 50%, transparent 80%);
  pointer-events: none;
  content: "";
  transform: skewX(-18deg);
  animation: shine 4.2s 2.4s var(--ease) infinite;
}

@keyframes shine {
  0% {
    left: -40%;
  }
  45%, 100% {
    left: 130%;
  }
}
@keyframes ctaRing {
  0% {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 24px 48px -16px rgba(60, 0, 8, 0.6), 0 0 0 0 rgba(255, 255, 255, 0.55);
  }
  70%, 100% {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 24px 48px -16px rgba(60, 0, 8, 0.6), 0 0 0 18px rgba(255, 255, 255, 0);
  }
}
.c-btn--white:hover .c-btn__ico {
  background: #fff;
  color: #c51f27;
}

@media (prefers-reduced-motion: reduce) {
  .c-btn--white,
  .c-btn--white::after {
    animation: none;
  }
}
.c-btn--white::before {
  position: absolute;
  z-index: -1;
  background: #0e1624;
  content: "";
  transition: transform 0.45s var(--ease);
  transform: translateY(101%);
  inset: 0;
}

.c-btn--white:hover {
  color: #fff;
}

.c-btn--white:hover::before {
  transform: none;
}

@media screen and (max-width: 640px) {
  .c-btn--white {
    padding-left: 28px;
    font-size: 16px;
    white-space: nowrap;
    letter-spacing: 0.08em;
    padding-block: 11px;
    gap: 12px;
  }
  .c-btn--white .c-btn__ico {
    width: 48px;
    height: 48px;
  }
}
.c-btn--signal::before,
.c-btn--white::before {
  transform: scaleX(0);
  transform-origin: left center;
}

.c-btn--signal:hover::before,
.c-btn--white:hover::before {
  transform: scaleX(1);
}

.c-btn--line {
  background: transparent;
}

.c-btn--line::before {
  position: absolute;
  z-index: -1;
  background: var(--ink);
  content: "";
  transition: transform 0.45s var(--ease);
  transform: scaleX(0);
  transform-origin: left center;
  inset: 0;
}

.c-btn--line:hover {
  border-color: var(--ink);
  background: transparent !important;
}

.c-btn--line:hover::before {
  transform: scaleX(1);
}

.c-btn--line:hover span {
  color: var(--sheet);
}

.c-btn--ink {
  border: 1px solid #0e1624;
  background: #fff;
  color: #0e1624;
}

.c-btn--ink .c-btn__ico {
  background: #0e1624;
  color: #fff;
}

.c-btn--ink::before {
  position: absolute;
  z-index: -1;
  background: #0e1624;
  content: "";
  transition: transform 0.45s var(--ease);
  transform: scaleX(0);
  transform-origin: left center;
  inset: 0;
}

.c-btn--ink:hover {
  color: #fff;
}

.c-btn--ink:hover::before {
  transform: scaleX(1);
}

.c-btn--ink:hover .c-btn__ico {
  background: #fff;
  color: #0e1624;
}

@media screen and (max-width: 640px) {
  :is(.p-hero__cta, .p-problems__side, .p-service__side, .p-blog__head) > .c-btn {
    display: flex;
    width: -moz-fit-content;
    width: fit-content;
    justify-self: center;
    margin-inline: auto;
  }
}
.c-go {
  display: grid;
  overflow: hidden;
  border-radius: 50%;
  transition: transform 0.6s var(--ease), background-color 0.5s ease, color 0.5s ease;
  place-items: center;
  flex: none;
}

.c-go--down {
  rotate: 90deg;
}

.c-go--up {
  rotate: -90deg;
}

a:is(:hover, :focus-visible) .c-go {
  transform: scale(1.08);
}

a:is(:hover, :focus-visible) .c-go svg {
  animation: goArrow 0.6s var(--ease);
}

@keyframes goArrow {
  0% {
    transform: translateX(0);
  }
  49% {
    transform: translateX(300%);
  }
  50% {
    transform: translateX(-300%);
  }
  100% {
    transform: translateX(0);
  }
}
.c-logo {
  display: flex;
  align-items: center;
  gap: 14px;
}

.c-logo__mark {
  display: flex;
  font-family: var(--f-gothic);
  font-size: 27px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  align-items: center;
}

.c-logo__o {
  display: inline-grid;
  width: 0.84em;
  height: 0.84em;
  margin-left: 0.05em;
  border: 0.15em solid currentColor;
  border-radius: 50%;
  place-items: center;
}

.c-logo__o::after {
  width: 0.27em;
  height: 0.27em;
  border-radius: 50%;
  background: var(--signal);
  content: "";
}

.c-logo__sub {
  padding-left: 14px;
  border-left: 1px solid var(--night-rule);
  font-size: max(var(--fs-min), 10px);
  line-height: 1.4;
  color: var(--night-mute);
  letter-spacing: 0.14em;
}

.c-logo__sub b {
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
  letter-spacing: 0.12em;
}

.c-logo__sub small {
  font-size: max(var(--fs-min), 9px);
  line-height: 1;
  color: var(--mute);
  letter-spacing: 0.06em;
}

@media screen and (max-width: 640px) {
  .c-logo__sub {
    display: none;
  }
}
.c-logo__svg {
  display: block;
  width: 100%;
  height: auto;
}

.c-ic {
  width: 1.35em;
  height: 1.35em;
  color: var(--signal);
  flex: none;
}

.c-sitenav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.c-sitenav h3 {
  margin-bottom: 16px;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: var(--fs-label);
  font-weight: 700;
  color: #d6363a;
  letter-spacing: 0.01em;
}

.c-sitenav li + li {
  margin-top: 12px;
}

.c-sitenav a {
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  white-space: nowrap;
  transition: color 0.4s ease;
}

.c-sitenav__sub {
  margin-top: 12px;
  padding-left: 1.2em;
}

.c-sitenav .c-sitenav__sub li + li {
  margin-top: 8px;
}

.c-sitenav__sub a {
  font-weight: 500;
  color: var(--mute);
}

.c-sitenav a:hover {
  color: #d6363a;
}

@media screen and (max-width: 1080px) {
  .c-sitenav {
    grid-template-columns: repeat(3, max-content);
    justify-content: space-between;
  }
}
@media screen and (max-width: 640px) {
  .c-sitenav {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
.c-form {
  --f-h: 48px;
  --f-label: 7.2em;
  --f-gap: 14px;
  position: relative;
  color: #0e1624;
}

.c-form__fields {
  display: grid;
  gap: var(--f-gap);
}

.c-form__fields::before {
  display: block;
  height: 3px;
  margin-bottom: 6px;
  border-radius: 3px;
  background: linear-gradient(90deg, #ee7b2c, #d42a2f) no-repeat 0 0/calc(var(--progress, 0) * 100%) 100%, #e6e9ee;
  content: "";
  transition: background-size 0.6s var(--ease);
}

.c-form__row {
  display: grid;
  grid-template-columns: var(--f-label) minmax(0, 1fr);
  gap: 8px 16px;
  align-items: center;
}

.c-form__row--top {
  align-items: start;
}

.c-form__row--top .c-form__label {
  padding-top: calc((var(--f-h) - 1.4em) / 2);
}

.c-form__label {
  display: flex;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  letter-spacing: 0.02em;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px 8px;
}

.c-form__req,
.c-form__opt {
  display: inline-grid;
  padding: 4.5px 7px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.06em;
  place-items: center;
}

.c-form__req {
  background: #d42a2f;
  color: #fff;
}

.c-form__opt {
  background: #e6e9ee;
  color: #5a6474;
}

.c-form .wpcf7-form-control-wrap {
  display: block;
}

.c-form :is(input[type=text], input[type=email], input[type=url], input[type=tel], textarea) {
  display: block;
  width: 100%;
  height: var(--f-h);
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: #f2f4f7 no-repeat right 14px center/16px;
  font: inherit;
  font-size: 16px;
  color: #0e1624;
  transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.c-form textarea.wpcf7-form-control {
  height: auto;
  min-height: 132px;
  padding: 12px 16px;
  line-height: 1.75;
  resize: vertical;
}

.c-form ::-moz-placeholder {
  font-size: 13px;
  line-height: 1.75;
  color: #8b93a1;
}

.c-form ::placeholder {
  font-size: 13px;
  line-height: 1.75;
  color: #8b93a1;
}

.c-form :is(input, textarea):hover {
  background-color: #eceff3;
}

.c-form :is(input, textarea):focus {
  border-color: #d42a2f;
  outline: none;
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(212, 42, 47, 0.12);
}

.c-form :is(input[type=text], input[type=email], input[type=url], input[type=tel]):user-valid:not(:-moz-placeholder), .c-form :is(input[type=text], input[type=email], input[type=url], input[type=tel]):user-valid:-moz-placeholder:not([placeholder]) {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%230e1624'/%3E%3Cpath d='M4.6 8.2l2.2 2.2 4.6-4.8' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.c-form :is(input[type=text], input[type=email], input[type=url], input[type=tel]):user-valid:not(:placeholder-shown),
.c-form :is(input[type=text], input[type=email], input[type=url], input[type=tel]):user-valid:placeholder-shown:not([placeholder]) {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%230e1624'/%3E%3Cpath d='M4.6 8.2l2.2 2.2 4.6-4.8' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.c-form .wpcf7-not-valid,
.c-form :is(input, textarea):user-invalid {
  border-color: #d42a2f;
  background-color: #fff6f6;
}

.c-form .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #d42a2f;
}

.c-form .wpcf7-checkbox {
  display: flex;
  padding-top: calc((var(--f-h) - 40px) / 2);
  flex-wrap: wrap;
  gap: 8px;
}

.c-form .wpcf7-list-item {
  margin: 0;
}

.c-form .wpcf7-checkbox label {
  position: relative;
  display: inline-flex;
  min-height: 40px;
  padding: 8px 16px 8px 12px;
  border: 1px solid #dfe3e9;
  border-radius: 999px;
  background: #fff;
  font-size: max(var(--fs-min), 14px);
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
  align-items: center;
  gap: 10px;
}

.c-form .wpcf7-checkbox label:hover {
  border-color: #0e1624;
}

.c-form .wpcf7-checkbox label:has(input:checked) {
  border-color: #d42a2f;
  background: #fff4f4;
  color: #b8232a;
}

.c-form input[type=checkbox] {
  display: grid;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1.5px solid #a9b2bf;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.25s ease, border-color 0.25s ease;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  flex: none;
  place-items: center;
}

.c-form input[type=checkbox]::after {
  width: 10px;
  height: 6px;
  margin-top: -2px;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  content: "";
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform: rotate(-45deg) scale(0);
}

.c-form input[type=checkbox]:checked {
  border-color: #d42a2f;
  background: #d42a2f;
}

.c-form input[type=checkbox]:checked::after {
  transform: rotate(-45deg) scale(1);
}

.c-form input[type=checkbox]:focus-visible {
  outline: 2px solid #d42a2f;
  outline-offset: 3px;
}

.c-form__accept {
  margin-top: 6px;
  font-size: max(var(--fs-min), 14px);
  line-height: 1.6;
  text-align: center;
}

.c-form__accept label {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  gap: 10px;
}

.c-form__accept a {
  color: inherit;
  text-decoration: underline;
  transition: text-decoration-color 0.3s ease, color 0.3s ease;
  text-underline-offset: 3px;
  text-decoration-color: rgba(14, 22, 36, 0.35);
}

.c-form__accept a:hover {
  color: #d42a2f;
  text-decoration-color: currentColor;
}

.c-form__accept .wpcf7-list-item-label {
  display: inline;
}

.c-form__foot {
  position: relative;
  display: grid;
  margin-top: 24px;
  justify-items: center;
}

@property --sb1 {
  syntax: "<color>";
  inherits: false;
  initial-value: #e02d32;
}
@property --sb2 {
  syntax: "<color>";
  inherits: false;
  initial-value: #e8452b;
}
.c-form__submit {
  --sb1: #e02d32;
  --sb2: #e8452b;
  position: relative;
  width: min(100%, 360px);
  padding: 20px 64px 20px 40px;
  border: 0;
  border-radius: 999px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23fff'/%3E%3Cpath d='M13 20h14M22 15l5 5-5 5' fill='none' stroke='%23d6363a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center/40px, linear-gradient(120deg, var(--sb1) 30%, var(--sb2));
  box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85);
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: --sb1 0.5s ease, --sb2 0.5s ease, transform 0.4s var(--ease), box-shadow 0.5s ease, opacity 0.4s ease, filter 0.4s ease;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.c-form__submit:hover:not(:disabled),
.c-form__submit:focus-visible {
  --sb1: #b8232a;
  --sb2: #b8232a;
  box-shadow: 0 22px 44px -18px rgba(184, 35, 42, 0.8);
  transform: translateY(-2px);
}

.c-form__submit:focus-visible {
  outline: 2px solid #d42a2f;
  outline-offset: 4px;
}

.c-form__submit:disabled {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23fff'/%3E%3Cpath d='M13 20h14M22 15l5 5-5 5' fill='none' stroke='%23a9b2bf' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center/40px, #c3cad4;
  box-shadow: none;
  cursor: not-allowed;
}

.c-form.is-complete .c-form__submit:not(:disabled) {
  animation: formReady 2.4s ease-out infinite;
}

@keyframes formReady {
  0% {
    box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85), 0 0 0 0 rgba(224, 45, 50, 0.45);
  }
  70%, 100% {
    box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85), 0 0 0 16px rgba(224, 45, 50, 0);
  }
}
.c-form .wpcf7-spinner {
  position: absolute;
  bottom: -34px;
  left: 50%;
  margin: 0;
  translate: -50% 0;
}

.c-form .wpcf7-response-output {
  margin: 28px 0 0 !important;
  padding: 14px 18px !important;
  border: 0 !important;
  border-radius: 10px;
  background: #fff6f6;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  color: #b8232a;
  text-align: center;
}

.c-form.sent .wpcf7-response-output {
  background: #eef7f1;
  color: #1d6b3c;
}

.c-form .wpcf7-response-output:empty {
  display: none;
}

.c-form--card {
  --f-h: 44px;
  --f-label: 6.6em;
  --f-gap: 10px;
}

.c-form--card textarea.wpcf7-form-control {
  min-height: 96px;
}

.c-form--card .c-form__foot {
  margin-top: 18px;
}

.c-form--card .c-form__submit {
  width: 100%;
  padding-block: 18px;
}

.c-form--wide {
  --f-h: 54px;
  --f-label: 11em;
  --f-gap: 20px;
}

.c-form--wide .c-form__fields {
  padding: clamp(32px, 4.4vw, 84px) clamp(24px, 6vw, 112px) clamp(36px, 4.4vw, 80px);
  border-radius: var(--inner-r);
  background: #fff;
  box-shadow: 0 1px 0 rgba(14, 22, 36, 0.04), 0 40px 80px -48px rgba(14, 22, 36, 0.35);
}

.c-form--wide .c-form__fields::before {
  margin-bottom: clamp(8px, 1.2vw, 20px);
}

.c-form--wide .c-form__foot {
  margin-top: clamp(32px, 3.3vw, 56px);
}

.c-form--wide .c-form__submit {
  width: min(100%, 420px);
  font-size: 17px;
  padding-block: 25px;
}

@media screen and (max-width: 640px) {
  .c-form,
  .c-form--card,
  .c-form--wide {
    --f-h: 50px;
    --f-gap: 18px;
  }
  .c-form__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .c-form__row--top .c-form__label {
    padding-top: 0;
  }
  .c-form .wpcf7-checkbox {
    padding-top: 0;
  }
  .c-form__submit,
  .c-form--wide .c-form__submit {
    width: 100%;
    font-size: 15px;
    padding-block: 20px;
  }
}
.l-wrap {
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.l-section {
  padding-block: var(--sec);
}

.l-header {
  position: fixed;
  z-index: 50;
  padding-top: env(safe-area-inset-top, 0px);
  color: var(--ink);
  transition: background 0.4s, -webkit-backdrop-filter 0.4s;
  transition: background 0.4s, backdrop-filter 0.4s;
  transition: background 0.4s, backdrop-filter 0.4s, -webkit-backdrop-filter 0.4s;
  inset: 0 0 auto;
}

.l-header.is-scrolled {
  background: color-mix(in srgb, var(--paper) 84%, transparent);
  box-shadow: 0 6px 24px -12px rgba(14, 22, 36, 0.18);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
          backdrop-filter: blur(14px) saturate(140%);
}

.l-header__inner {
  display: flex;
  height: 80px;
  align-items: center;
  justify-content: space-between;
}

.l-header .c-logo__sub {
  border-color: var(--rule);
  color: var(--mute);
}

.p-gnav {
  display: flex;
  align-items: center;
  gap: 40px;
}

.p-gnav__pc {
  display: flex;
  gap: 34px;
}

.p-gnav__pc > li > a {
  position: relative;
  font-size: max(var(--fs-min), 13.5px);
  font-weight: 500;
  letter-spacing: 0.08em;
  padding-block: 6px;
}

.p-gnav__pc > li > a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  transition: transform 0.4s var(--ease);
  transform: scaleX(0);
  transform-origin: right;
}

.p-gnav__pc > li > a:hover::after,
.p-gnav__pc > li > a[aria-current]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.p-gnav .c-btn {
  padding: 6px 6px 6px 22px;
  font-size: max(var(--fs-min), 13px);
}

.p-gnav .c-btn__ico {
  width: 34px;
  height: 34px;
}

.p-gnav__sp {
  display: none;
}

.p-menu {
  position: relative;
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--rule);
  border-radius: 50%;
  background: var(--sheet);
  color: inherit;
  cursor: pointer;
}

.p-menu i {
  position: absolute;
  right: 15px;
  left: 15px;
  height: 1.5px;
  background: currentColor;
  transition: transform 0.35s var(--ease);
}

.p-menu i:first-child {
  top: 19px;
}

.p-menu i:last-child {
  top: 26px;
}

.p-menu[aria-expanded=true] i:first-child {
  transform: translateY(3.5px) rotate(45deg);
}

.p-menu[aria-expanded=true] i:last-child {
  transform: translateY(-3.5px) rotate(-45deg);
}

.l-header {
  transition: background 0.4s, color 0.4s, -webkit-backdrop-filter 0.4s;
  transition: background 0.4s, backdrop-filter 0.4s, color 0.4s;
  transition: background 0.4s, backdrop-filter 0.4s, color 0.4s, -webkit-backdrop-filter 0.4s;
}

.l-header .l-header__inner {
  position: relative;
  max-width: none;
  height: 80px;
  padding-inline: calc(var(--stage-gap) + clamp(20px, 1.9vw, 36px));
}

.l-header .c-logo {
  width: clamp(200px, 17.7vw, 340px);
}

.l-header .c-logo__mark {
  font-size: clamp(40px, 4vw, 78px);
}

.l-header .c-logo__sub {
  display: flex;
  flex-direction: column;
  padding-left: clamp(14px, 1.15vw, 22px);
  gap: 0.3em;
}

.l-header .c-logo__sub b {
  font-size: max(var(--fs-min), clamp(14px, 1.18vw, 23px));
  line-height: 1.22;
}

.l-header .c-logo__sub small {
  font-size: max(var(--fs-min), clamp(9px, 0.6vw, 11.5px));
}

.p-gnav {
  margin-left: auto;
}

.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) {
  background: none !important;
  box-shadow: none;
  color: #0e1624;
  transform: translateY(var(--hdr-y, calc(var(--stage-gap) + 8px)));
  -webkit-backdrop-filter: none !important;
          backdrop-filter: none !important;
}

.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__sub,
.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__sub b,
.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__sub small {
  border-color: rgba(14, 22, 36, 0.35);
  color: #0e1624;
}

.l-header .p-gnav > .c-btn {
  animation: none;
}

.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .p-gnav > .c-btn {
  background: #fff;
  box-shadow: 0 10px 30px -14px rgba(14, 22, 36, 0.25);
  color: #d42a2f;
}

.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .p-gnav > .c-btn .c-btn__ico {
  background: linear-gradient(135deg, #e5452c, #d42a2f);
  color: #fff;
}

.l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .p-gnav > .c-btn:hover {
  color: #fff;
}

.p-menu {
  border: 0;
  background: linear-gradient(135deg, #ee7b2c -20%, #d42a2f 70%);
  box-shadow: 0 10px 24px -10px rgba(212, 42, 47, 0.6);
  color: #fff;
}

.p-menu i {
  right: 14px;
  left: 14px;
  height: 1.5px;
  transition: transform 0.35s var(--ease), opacity 0.2s;
}

.p-menu i:nth-child(1) {
  top: 16px;
}

.p-menu i:nth-child(2) {
  top: 22.25px;
}

.p-menu i:nth-child(3) {
  top: 28.5px;
}

.p-menu[aria-expanded=true] i:nth-child(1) {
  transform: translateY(6.25px) rotate(45deg);
}

.p-menu[aria-expanded=true] i:nth-child(2) {
  opacity: 0;
}

.p-menu[aria-expanded=true] i:nth-child(3) {
  transform: translateY(-6.25px) rotate(-45deg);
}

@media screen and (min-width: 961px) {
  .l-header .l-header__inner {
    height: clamp(64px, 5.1vw, 98px);
  }
  .p-gnav__pc {
    position: absolute;
    width: -moz-max-content;
    width: max-content;
    inset: 0;
    align-items: center;
    margin-inline: auto;
    gap: clamp(24px, 2.4vw, 46px);
  }
  .p-gnav__pc > li > a {
    font-family: var(--f-gothic);
    font-size: max(var(--fs-min), clamp(13.5px, 1vw, 19px));
    font-weight: 700;
    letter-spacing: 0.04em;
  }
  .p-gnav .c-btn {
    padding: 8px 8px 8px clamp(22px, 2.1vw, 40px);
    font-size: max(var(--fs-min), clamp(13px, 1vw, 19px));
    gap: clamp(18px, 1.4vw, 28px);
  }
  .p-gnav .c-btn__ico {
    width: clamp(30px, 3.65vw - 16px, 54px);
    height: clamp(30px, 3.65vw - 16px, 54px);
  }
}
@media screen and (max-width: 640px) {
  .l-header .l-header__inner {
    height: 64px;
    padding-inline: 24px 16px;
  }
  .l-header .c-logo {
    width: 163px;
  }
  .l-header .c-logo__mark {
    font-size: 34px;
  }
  .l-header .c-logo__sub {
    display: flex;
    padding-left: 10px;
    gap: 2px;
  }
  .l-header .c-logo__sub b {
    font-size: max(var(--fs-min), 11.5px);
    letter-spacing: 0.08em;
  }
  .l-header .c-logo__sub small {
    font-size: max(var(--fs-min), 7px);
    letter-spacing: 0.02em;
  }
}
@media screen and (max-width: 960px) {
  .p-gnav {
    position: fixed;
    visibility: hidden;
    overflow-y: auto;
    flex-direction: column;
    height: calc(100dvh - 80px - env(safe-area-inset-top, 0px));
    padding: 24px var(--gutter) 40px;
    background: var(--paper);
    opacity: 0;
    transition: opacity 0.35s, transform 0.35s var(--ease), visibility 0.35s;
    transform: translateY(-8px);
    inset: calc(80px + env(safe-area-inset-top, 0px)) 0 auto;
    align-items: stretch;
    justify-content: flex-start;
    gap: 32px;
  }
  .p-gnav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
  }
  .p-gnav__pc {
    flex-direction: column;
    gap: 0;
  }
  .p-gnav__pc > li > a {
    display: block;
    border-bottom: 1px solid var(--rule);
    font-family: var(--f-gothic);
    font-size: 20px;
    font-weight: 700;
    padding-block: 16px;
  }
  .p-gnav__pc > li > a::after {
    display: none;
  }
  .p-gnav__pc,
  .p-gnav > .c-btn {
    display: none;
  }
  .p-gnav__sp {
    display: grid;
    gap: 40px;
  }
  .p-gnav__sp .c-sitenav {
    display: block;
  }
  .p-gnav__sp .c-sitenav > div + div {
    margin-top: 36px;
  }
  .p-gnav__sp .c-sitenav h3 {
    margin-bottom: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ink);
    font-size: 13px;
    letter-spacing: 0.1em;
  }
  .p-gnav__sp .c-sitenav li + li {
    margin-top: 0;
  }
  .p-gnav__sp .c-sitenav > div > ul > li {
    border-bottom: 1px solid var(--rule);
  }
  .p-gnav__sp .c-sitenav > div > ul > li > a {
    display: flex;
    font-size: 16px;
    line-height: 1.5;
    align-items: center;
    justify-content: space-between;
    padding-block: 17px;
  }
  .p-gnav__sp .c-sitenav > div > ul > li > a::after {
    width: 7px;
    height: 7px;
    margin-right: 4px;
    border-top: 1.5px solid #d6363a;
    border-right: 1.5px solid #d6363a;
    content: "";
    transform: rotate(45deg);
    flex: none;
  }
  .p-gnav__sp .c-sitenav__sub {
    margin-top: -4px;
    padding: 0 0 14px 1em;
  }
  .p-gnav__sp .c-sitenav__sub a {
    display: block;
    font-size: 15px;
    line-height: 1.5;
    padding-block: 7px;
  }
  .p-menu {
    display: block;
  }
  .l-header {
    background: color-mix(in srgb, var(--paper) 84%, transparent);
    -webkit-backdrop-filter: blur(14px);
            backdrop-filter: blur(14px);
  }
}
.p-gnav__caret,
.p-mega {
  display: none;
}

@media screen and (min-width: 961px) {
  .l-header {
    transform: translateY(0);
  }
  .p-gnav__mega > a {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
  }
  .p-gnav__caret {
    display: block;
    width: 0.42em;
    margin-top: -0.2em;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transition: transform 0.5s var(--ease), margin 0.5s var(--ease);
    transform: rotate(45deg);
    aspect-ratio: 1;
  }
  .p-gnav__mega.is-open > a::after {
    transform: scaleX(1);
    transform-origin: left;
  }
  .p-gnav__mega.is-open .p-gnav__caret {
    margin-top: 0.25em;
    transform: rotate(-135deg);
  }
  .p-mega {
    position: fixed;
    top: 100%;
    right: var(--stage-gap);
    left: var(--stage-gap);
    display: block;
    visibility: hidden;
    padding-top: 10px;
    pointer-events: none;
    transition: visibility 0s linear 0.45s;
  }
  .p-mega::before {
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: clamp(20px, 2vw, 40px);
    content: "";
  }
  .p-mega::after {
    position: absolute;
    z-index: -1;
    top: 0;
    right: calc(var(--stage-gap) * -1);
    left: calc(var(--stage-gap) * -1);
    height: 100vh;
    background: linear-gradient(rgba(14, 22, 36, 0.32), rgba(14, 22, 36, 0.18));
    pointer-events: none;
    content: "";
    opacity: 0;
    transition: opacity 0.45s ease;
  }
  .p-gnav__mega.is-open .p-mega {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .p-gnav__mega.is-open .p-mega::after {
    opacity: 1;
  }
  .p-mega__inner {
    position: relative;
    display: grid;
    overflow: hidden;
    padding: clamp(36px, 3.3vw, 64px) clamp(36px, 3.6vw, 68px);
    border-radius: var(--stage-r);
    background: #0e1624;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 50px 90px -30px rgba(0, 0, 0, 0.6);
    color: #fff;
    transition: clip-path 0.45s cubic-bezier(0.6, 0, 0.8, 0.2);
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.6fr);
    gap: clamp(40px, 4.2vw, 80px);
    isolation: isolate;
    clip-path: inset(0 0 100% 0 round var(--stage-r));
  }
  .p-gnav__mega.is-open .p-mega__inner {
    transition: clip-path 0.8s var(--ease);
    clip-path: inset(0 0 0 0 round var(--stage-r));
  }
  .p-mega__inner::before {
    position: absolute;
    z-index: -1;
    background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.3), transparent 70%);
    content: "";
    inset: 0;
  }
  .p-mega__inner::after {
    position: absolute;
    z-index: -1;
    background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
    background-size: 16px 16px;
    content: "";
    inset: 0;
    -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
            mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
  }
  .p-mega__lead {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
  }
  .p-mega__eyebrow {
    display: flex;
    font-family: "Montserrat", "Inter", system-ui, sans-serif;
    font-size: max(var(--fs-min), clamp(14px, 1vw, 18px));
    font-weight: 700;
    color: #e0484c;
    letter-spacing: 0.08em;
    align-items: center;
    gap: 12px;
  }
  .p-mega__eyebrow::after {
    width: 40px;
    height: 1px;
    background: currentColor;
    content: "";
    transition: transform 0.8s var(--ease) 0.25s;
    transform: scaleX(0);
    transform-origin: left;
  }
  .p-gnav__mega.is-open .p-mega__eyebrow::after {
    transform: scaleX(1);
  }
  .p-mega__catches {
    display: grid;
  }
  .p-mega__catch {
    font-family: var(--f-gothic);
    font-size: clamp(24px, 2.05vw, 40px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.02em;
    opacity: 0;
    transition: opacity 0.4s ease, transform 0.6s var(--ease), filter 0.5s ease;
    transform: translateY(14px);
    grid-area: 1/1;
    align-self: end;
    filter: blur(6px);
  }
  .p-mega__catch.is-on {
    opacity: 1;
    transition-delay: 0.08s;
    transform: none;
    filter: none;
  }
  .p-mega__list {
    display: grid;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
  }
  .p-mega__list > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    transform: translateY(18px);
  }
  .p-gnav__mega.is-open .p-mega__list > li {
    opacity: 1;
    transition: opacity 0.6s ease calc(0.18s + var(--i) * 0.06s), transform 0.9s var(--ease) calc(0.18s + var(--i) * 0.06s);
    transform: none;
  }
  .p-mega__link {
    position: relative;
    display: grid;
    padding: clamp(18px, 1.55vw, 30px) clamp(8px, 0.8vw, 16px);
    grid-template-columns: clamp(44px, 3.4vw, 64px) minmax(0, 1fr) minmax(0, 1.05fr) auto;
    align-items: center;
    gap: clamp(16px, 1.6vw, 32px);
    isolation: isolate;
  }
  .p-mega__link::before {
    position: absolute;
    z-index: -1;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
    content: "";
    transition: transform 0.6s var(--ease);
    transform: scaleX(0);
    transform-origin: right;
    inset: 0;
  }
  .p-mega__link:is(:hover, :focus-visible)::before {
    transform: scaleX(1);
    transform-origin: left;
  }
  .p-mega__link:focus-visible {
    outline: 2px solid #e0484c;
    outline-offset: -2px;
  }
  .p-mega__no {
    font-family: "Outfit", "Montserrat", system-ui, sans-serif;
    font-size: clamp(14px, 0.95vw, 18px);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.04em;
    transition: color 0.4s ease;
  }
  .p-mega__name {
    display: grid;
    transition: transform 0.6s var(--ease);
    gap: 6px;
  }
  .p-mega__name b {
    font-family: var(--f-gothic);
    font-size: clamp(17px, 1.3vw, 25px);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.03em;
  }
  .p-mega__name small {
    font-family: "Montserrat", "Inter", system-ui, sans-serif;
    font-size: max(var(--fs-min), clamp(12px, 0.75vw, 14px));
    font-weight: 500;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.06em;
  }
  .p-mega__text {
    font-size: max(var(--fs-min), clamp(13px, 0.85vw, 16px));
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.62);
    transition: color 0.4s ease;
  }
  .p-mega__go {
    width: clamp(40px, 2.7vw, 52px);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
    color: #fff;
    aspect-ratio: 1;
  }
  .p-mega__go svg {
    width: 34%;
    height: auto;
  }
  .p-mega__link:is(:hover, :focus-visible) .p-mega__no {
    color: #e0484c;
  }
  .p-mega__link:is(:hover, :focus-visible) .p-mega__name {
    transform: translateX(8px);
  }
  .p-mega__link:is(:hover, :focus-visible) .p-mega__text {
    color: rgba(255, 255, 255, 0.85);
  }
  .p-mega__link:is(:hover, :focus-visible) .p-mega__go {
    background: #d6363a;
    box-shadow: inset 0 0 0 1px #d6363a;
  }
}
@media screen and (max-width: 1080px) {
  .p-mega__link {
    grid-template-columns: clamp(36px, 3.4vw, 64px) minmax(0, 1fr) auto;
  }
  .p-mega__text {
    display: none;
  }
}
.admin-bar .l-header {
  top: var(--wp-admin--admin-bar--height, 0px);
}

@media screen and (max-width: 960px) {
  .l-header:has(.p-gnav.is-open) {
    background: var(--paper);
  }
}
@media screen and (max-width: 640px) {
  .p-gnav {
    height: calc(100dvh - 64px - env(safe-area-inset-top, 0px));
    inset: calc(64px + env(safe-area-inset-top, 0px)) 0 auto;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .l-header.is-scrolled .c-logo__svg,
  :root:not([data-theme=light]) .l-header:has(.p-gnav.is-open) .c-logo__svg {
    content: url("images/common/logo-white.svg");
  }
}
:root[data-theme=dark] .l-header.is-scrolled .c-logo__svg,
:root[data-theme=dark] .l-header:has(.p-gnav.is-open) .c-logo__svg {
  content: url("images/common/logo-white.svg");
}

.l-footer {
  margin: var(--stage-gap);
  padding-top: clamp(56px, 5vw, 96px);
  border-radius: var(--stage-r);
  background: #f4f5f7;
  color: var(--ink);
}

.l-footer > .l-wrap {
  width: min(1532px, 100% - var(--gutter) * 2);
  max-width: none;
  padding-inline: 0;
}

.l-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px;
}

.l-footer .c-logo {
  width: 230px;
}

.l-footer address {
  margin-top: 24px;
  font-size: max(var(--fs-min), 14px);
  font-style: normal;
  line-height: 2;
}

.l-footer__bottom {
  margin-top: clamp(48px, 5vw, 96px);
  border-top: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
  font-size: max(var(--fs-min), 13px);
  color: var(--mute);
  letter-spacing: 0.04em;
  padding-block: 20px;
}

.l-footer__bottom .l-wrap {
  width: min(1532px, 100% - var(--gutter) * 2);
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

.l-footer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
}

.l-footer__legal {
  display: flex;
  font-size: 14px;
  flex-wrap: wrap;
  gap: 4px 32px;
}

.l-footer__legal a {
  transition: color 0.3s ease;
}

.l-footer__legal a:hover {
  color: #d6363a;
}

@media screen and (max-width: 960px) {
  .l-footer__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .l-footer__legal {
    flex-direction: column;
    font-size: 12px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .l-footer {
    background: var(--sheet);
  }
}
:root[data-theme=dark] .l-footer {
  background: var(--sheet);
}

.p-process {
  border-radius: var(--stage-r);
  background: #f4f5f7;
  margin-inline: var(--stage-gap);
}

.p-process__inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.p-process__head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 72px;
  align-items: end;
}

.p-process__head h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2-sm);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-process__head p {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-process__list {
  --tile: clamp(76px, 5.6vw, 108px);
  --pad: clamp(24px, 2vw, 40px);
  position: relative;
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2.08vw, 40px);
}

.p-process__list::before {
  position: absolute;
  top: calc(var(--pad) + var(--tile) / 2 - 1px);
  right: 0;
  left: 0;
  height: 2px;
  background: #d6363a;
  content: "";
  transition: transform 1.6s 0.2s cubic-bezier(0.65, 0, 0.35, 1);
  transform: scaleX(0);
  transform-origin: left center;
}

.p-process__list.is-in::before {
  transform: none;
}

.p-process__item {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--pad) var(--pad) clamp(28px, 2.4vw, 48px);
  border-radius: var(--inner-r);
  background: #fff;
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
}

.is-in .p-process__item {
  opacity: 1;
  transform: none;
}

.p-process__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.p-process__ic {
  display: grid;
  width: var(--tile);
  border-radius: 50vh;
  background: #eef0f3;
  color: #0e1624;
  place-items: center;
  flex: none;
  aspect-ratio: 1;
}

.p-process__ic svg {
  overflow: visible;
  width: 58%;
  height: auto;
}

.p-process__ic svg * {
  transition: stroke-dashoffset 1.2s cubic-bezier(0.45, 0, 0.2, 1);
  transition-delay: calc(0.4s + var(--i) * 0.2s);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.p-process__ic .is-accent {
  transition-delay: calc(0.9s + var(--i) * 0.2s);
  stroke: #e0484c;
}

.is-in .p-process__ic svg * {
  stroke-dashoffset: 0;
}

.p-process__no {
  display: flex;
  flex-direction: column;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(40px, 3.4vw, 64px);
  font-weight: 400;
  line-height: 1;
  color: color-mix(in srgb, #263039 22%, transparent);
  letter-spacing: -0.02em;
  align-items: flex-end;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-process__title {
  margin-top: clamp(28px, 2.6vw, 48px);
  font-family: var(--f-gothic);
  font-size: clamp(19px, 1.35vw, 26px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-process__text {
  margin-top: clamp(14px, 1.2vw, 20px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  text-align: justify;
  text-justify: inter-character;
  letter-spacing: 0;
  text-wrap: pretty;
  word-break: normal;
  line-break: strict;
}
.p-process__text .nw {
  white-space: normal;
}

.p-process__text br {
  display: none;
}

@media screen and (max-width: 1080px) {
  .p-process__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-process__list::before {
    display: none;
  }
}
@media screen and (max-width: 960px) {
  .p-process__head {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-process__head br.pc {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  .p-process {
    padding-block: 3em;
  }
  .p-process__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .p-process__item {
    display: grid;
    padding: 18px 20px 20px;
    grid-template-columns: 52px minmax(0, 1fr);
    -moz-column-gap: 16px;
         column-gap: 16px;
    align-items: start;
  }
  .p-process__top {
    flex-direction: column;
    grid-row: 1/span 2;
    align-items: center;
    gap: 6px;
  }
  .p-process__list {
    --tile: 52px;
  }
  .p-process__no {
    font-size: 16px;
  }
  .p-process__title {
    margin-top: 0;
    font-size: 16px;
    line-height: 1.55;
  }
  .p-process__text {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.8;
    text-align: start;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-process {
    background: var(--sheet);
  }
  :root:not([data-theme=light]) .p-process__item {
    background: var(--paper);
  }
  :root:not([data-theme=light]) .p-process__no {
    color: color-mix(in srgb, var(--ink) 22%, transparent);
  }
}
:root[data-theme=dark] .p-process {
  background: var(--sheet);
}

:root[data-theme=dark] .p-process__item {
  background: var(--paper);
}

:root[data-theme=dark] .p-process__no {
  color: color-mix(in srgb, var(--ink) 22%, transparent);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-process__ic {
    background: color-mix(in srgb, var(--ink) 10%, transparent);
    color: var(--ink);
  }
}
:root[data-theme=dark] .p-process__ic {
  background: color-mix(in srgb, var(--ink) 10%, transparent);
  color: var(--ink);
}

.p-process__head p a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.p-process__head p a:hover {
  text-decoration: none;
}

.p-faq__grid {
  --gap: clamp(16px, 2.08vw, 40px);
  display: grid;
  width: min(1532px, 100% - var(--gutter) * 2);
  grid-template-columns: minmax(0, 1fr) calc(clamp(260px, 23.65vw, 454px) * 2 + var(--gap));
  gap: 5vw;
  align-items: start;
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-faq__grid {
    width: 85%;
  }
}
.p-faq__side {
  position: sticky;
  top: 120px;
}

.p-faq__side h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2-sm);
  font-weight: 700;
  line-height: 1.52;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-faq__side p {
  margin-top: clamp(20px, 2.1vw, 40px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-faq__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(10px, 0.83vw, 16px);
  interpolate-size: allow-keywords;
}

.p-faq__item {
  min-width: 0;
  border-radius: var(--inner-r);
  background: #f4f5f7;
  opacity: 0;
  transition: background-color 0.3s ease, opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: 0s, calc(var(--i) * 0.08s), calc(var(--i) * 0.08s);
  transform: translateY(24px);
}

.is-in .p-faq__item {
  opacity: 1;
  transform: none;
}

.p-faq__item:hover {
  background: #e9ebef;
}

.p-faq__q {
  display: grid;
  padding: clamp(20px, 1.67vw, 32px) clamp(20px, 2.1vw, 40px);
  list-style: none;
  cursor: pointer;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(16px, 1.67vw, 32px);
}

.p-faq__q::-webkit-details-marker {
  display: none;
}

.p-faq__q:focus-visible {
  border-radius: var(--inner-r);
  outline: 2px solid #d6363a;
  outline-offset: 2px;
}

.p-faq__qt {
  font-family: var(--f-gothic);
  font-size: clamp(16px, 14.5px + 0.39vw, 22px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
  text-wrap: wrap;
  font-feature-settings: "palt";
}

.p-faq__mk {
  width: 1em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(22px, 19px + 0.78vw, 34px);
  font-weight: 700;
  line-height: 1;
  color: #d6363a;
  text-align: center;
}

.p-faq__a .p-faq__mk {
  color: var(--ink);
}

.p-faq__ic {
  position: relative;
  width: clamp(36px, 2.5vw, 48px);
  border-radius: 50%;
  background: #fff;
  transition: background-color 0.3s ease;
  aspect-ratio: 1;
}

.p-faq__ic::before,
.p-faq__ic::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 34%;
  height: 2px;
  background: var(--ink);
  content: "";
  transition: rotate 0.35s ease, background-color 0.3s ease;
  translate: -50% -50%;
}

.p-faq__ic::after {
  rotate: 90deg;
}

.p-faq__item[open] .p-faq__ic {
  background: #d6363a;
}

.p-faq__item[open] .p-faq__ic::before,
.p-faq__item[open] .p-faq__ic::after {
  background: #fff;
}

.p-faq__item[open] .p-faq__ic::after {
  rotate: 0deg;
}

.p-faq__a {
  display: grid;
  padding: clamp(20px, 1.67vw, 32px) calc(clamp(36px, 2.5vw, 48px) + clamp(16px, 1.67vw, 32px)) clamp(24px, 2.1vw, 40px) 0;
  border-top: 1px solid var(--rule);
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(16px, 1.67vw, 32px);
  margin-inline: clamp(20px, 2.1vw, 40px);
}

.p-faq__a p {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-faq__body > * + * {
  margin-top: 1em;
}

.p-faq__body a {
  color: #d6363a;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.p-faq__body a:hover {
  text-decoration: none;
}

.p-faq__body :is(ul, ol) {
  padding-left: 1.4em;
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
}

.p-faq__body ul {
  list-style: disc;
}

.p-faq__body ol {
  list-style: decimal;
}

.p-faq__more {
  display: inline-flex;
  margin-top: clamp(24px, 2.1vw, 40px);
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  transition: color 0.4s ease;
  align-items: center;
  gap: 14px;
}

.p-faq__more i {
  width: 40px;
  background: #d6363a;
  color: #fff;
  aspect-ratio: 1;
}

.p-faq__more i svg {
  width: 36%;
  height: auto;
}

.p-faq__more:hover {
  color: #d6363a;
}

.p-faq__item::details-content {
  overflow: hidden;
  transition: block-size 0.4s ease, content-visibility 0.4s allow-discrete;
  block-size: 0;
}

.p-faq__item[open]::details-content {
  block-size: auto;
}

@media (prefers-reduced-motion: reduce) {
  .p-faq__item,
  .p-faq__item::details-content {
    transition: none;
  }
}
@media screen and (max-width: 960px) {
  .p-faq__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: clamp(32px, 6vw, 48px);
  }
  .p-faq__side {
    position: static;
  }
  .p-faq__side br {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  .p-faq__side h2 {
    margin-top: 0;
  }
  .p-faq__a {
    padding-right: 0;
  }
  .p-faq__qt .nw {
    white-space: normal;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-faq__item {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
  :root:not([data-theme=light]) .p-faq__item:hover {
    background: color-mix(in srgb, var(--ink) 14%, var(--paper));
  }
  :root:not([data-theme=light]) .p-faq__ic {
    background: var(--paper);
  }
}
:root[data-theme=dark] .p-faq__item {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

:root[data-theme=dark] .p-faq__item:hover {
  background: color-mix(in srgb, var(--ink) 14%, var(--paper));
}

:root[data-theme=dark] .p-faq__ic {
  background: var(--paper);
}

.p-cta {
  position: relative;
  overflow: clip;
  margin: var(--stage-gap) var(--stage-gap) 0;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.26), transparent 70%), #263039;
  color: #fff;
  padding-block: var(--sec);
  isolation: isolate;
}

.p-cta::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
}

.p-cta__back {
  position: absolute;
  z-index: -1;
  right: -0.04em;
  bottom: -0.2em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(80px, 13vw, 250px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.05);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-cta__initial {
  position: absolute;
  z-index: -1;
  bottom: -4%;
  left: -7%;
  width: 54%;
  height: auto;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.p-cta .c-label {
  color: #fff;
}

.p-cta__inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.p-cta__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px clamp(40px, 5vw, 96px);
  align-items: end;
}

.p-cta h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  color: #fff;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-cta h2 br.sp {
  display: none;
}

.p-cta__main p {
  margin-top: clamp(24px, 2.6vw, 50px);
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0;
}

.p-cta__actions {
  display: grid;
  gap: clamp(12px, 1.2vw, 20px);
}

.p-act {
  position: relative;
  display: grid;
  overflow: hidden;
  padding: clamp(12px, 1vw, 18px);
  border-radius: var(--inner-r);
  background: linear-gradient(120deg, #1e262e 20%, #3a4651);
  box-shadow: 0 22px 44px -18px rgba(0, 0, 0, 0.75);
  color: #fff;
  transition: transform 0.6s ease, box-shadow 0.6s ease, color 0.5s ease;
  isolation: isolate;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(16px, 1.6vw, 28px);
  align-items: center;
}

.p-act::before {
  position: absolute;
  z-index: -1;
  background: #fff;
  content: "";
  transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);
  transform: scaleX(0);
  transform-origin: left center;
  inset: 0;
}

.p-act--main {
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  box-shadow: 0 22px 44px -18px rgba(224, 45, 50, 0.85);
}

.p-act:hover,
.p-act:focus-visible {
  box-shadow: 0 28px 56px -24px rgba(0, 0, 0, 0.6);
  color: #0e1624;
  transform: translateY(-6px);
}

.p-act:hover::before,
.p-act:focus-visible::before {
  transform: scaleX(1);
}

.p-act__ic {
  display: grid;
  width: clamp(52px, 4.2vw, 76px);
  border-radius: 50vh;
  background: rgba(255, 255, 255, 0.1);
  transition: background-color 0.5s ease, color 0.5s ease, transform 0.6s var(--ease);
  place-items: center;
  aspect-ratio: 1;
}

.p-act--main .p-act__ic {
  background: rgba(255, 255, 255, 0.18);
}

.p-act:hover .p-act__ic,
.p-act:focus-visible .p-act__ic {
  background: #263039;
  color: #fff;
  transform: scale(1.08) rotate(-8deg);
}

.p-act__ic svg {
  width: 46%;
  height: auto;
}

.p-act__body {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.p-act__en {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(12px, clamp(12px, 0.8vw, 15px));
  font-weight: 700;
  color: #e0484c;
  letter-spacing: 0.08em;
  transition: color 0.5s ease;
}

.p-act--main .p-act__en {
  color: rgba(255, 255, 255, 0.8);
}

.p-act:hover .p-act__en,
.p-act:focus-visible .p-act__en {
  color: #d6363a;
}

.p-act__title {
  font-size: clamp(18px, 1.45vw, 28px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  word-break: normal;
  font-feature-settings: "palt";
  line-break: strict;
}

.p-act__go {
  display: grid;
  width: clamp(44px, 3.4vw, 60px);
  border-radius: 50vh;
  background: #d6363a;
  color: #fff;
  place-items: center;
  aspect-ratio: 1;
}

.p-act--main .p-act__go {
  background: #fff;
  color: #d6363a;
}

.p-act__go svg {
  width: 32%;
  height: auto;
}

.p-act:hover .p-act__go,
.p-act:focus-visible .p-act__go {
  background: #263039;
  color: #fff;
}

.p-act--main:is(:hover, :focus-visible) {
  color: #d6363a;
}

.p-act--main:is(:hover, :focus-visible) .p-act__en {
  color: #0e1624;
}

.p-act--main:is(:hover, :focus-visible) .p-act__ic,
.p-act--main:is(:hover, :focus-visible) .p-act__go {
  background: #d6363a;
  color: #fff;
}

@media screen and (max-width: 960px) {
  .p-cta__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-cta h2 br.sp {
    display: inline;
  }
  .p-cta__main p br.pc {
    display: none;
  }
  .p-cta__initial {
    top: -6%;
    bottom: auto;
    left: -34%;
    width: 128%;
  }
  .p-act {
    padding-left: 20px;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .p-act__ic {
    display: none;
  }
}
@media (min-width: 400px) and (max-width: 960px) {
  .p-act--main {
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.55), 0 0 0 6px rgba(14, 22, 36, 0.35), 0 22px 44px -16px rgba(10, 16, 27, 0.9);
  }
  .p-act--main:hover,
  .p-act--main:focus-visible {
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.55), 0 28px 56px -24px rgba(0, 0, 0, 0.6);
  }
}
@media screen and (max-width: 640px) {
  .p-cta__actions {
    gap: 18px;
  }
  .p-act,
  .p-act:is(:hover, :focus-visible) {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16), 0 0 14px 2px rgba(255, 255, 255, 0.14), 0 22px 40px -18px rgba(0, 0, 0, 0.8);
  }
  .p-act--main,
  .p-act--main:is(:hover, :focus-visible) {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24), 0 0 18px 3px rgba(255, 255, 255, 0.2), 0 22px 40px -16px rgba(224, 45, 50, 0.7);
  }
}
.p-archive {
  padding-top: calc(80px + var(--sec));
}

.p-archive__item + .p-archive__item {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--rule);
}

.p-archive__title {
  font-size: clamp(24px, 3vw, 40px);
}

.p-archive__title a:hover {
  color: var(--signal);
}

.p-archive__content {
  max-width: 46em;
  margin-top: 32px;
}

.p-archive__content > * + * {
  margin-top: 1.4em;
}

.c-form--wide .c-form__fields {
  position: relative;
  overflow: hidden;
}

.c-form--wide .c-form__fields::before {
  position: absolute;
  height: 4px;
  margin: 0;
  border-radius: 0;
  inset: 0 0 auto;
}

.c-form--side {
  --f-label: 10.6em;
}

.c-form--side .c-form__fields {
  padding: clamp(28px, 3.3vw, 64px) clamp(22px, 3.3vw, 64px);
}

.c-pagehead {
  padding: var(--stage-gap);
}

.c-pagehead__stage {
  position: relative;
  overflow: hidden;
  padding: clamp(128px, 10vw, 200px) 8% clamp(56px, 5.2vw, 100px);
  border-radius: var(--stage-r);
  background: radial-gradient(50% 80% at 100% 0%, rgba(214, 54, 58, 0.32), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
}

.c-pagehead__stage::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 90% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 90% at 100% 0%, #000, transparent);
}

.c-pagehead__back {
  position: absolute;
  z-index: -1;
  right: -0.04em;
  bottom: -0.26em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(72px, 11vw, 210px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.045);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.c-pagehead__crumb ol {
  display: flex;
  font-size: max(var(--fs-min), 13px);
  font-weight: 500;
  line-height: 1.6;
  flex-wrap: wrap;
  gap: 0 0.9em;
}

.c-pagehead__crumb li + li::before {
  margin-right: 0.9em;
  color: rgba(255, 255, 255, 0.4);
  content: "/";
}

.c-pagehead__crumb a {
  transition: color 0.3s ease;
}

.c-pagehead__crumb a:hover {
  color: #e0484c;
}

.c-pagehead__crumb [aria-current] {
  font-weight: 700;
}

.c-pagehead__en {
  margin-top: clamp(28px, 3.2vw, 60px);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(16px, 1.25vw, 24px);
  font-weight: 700;
  color: #e0484c;
  letter-spacing: 0.02em;
  animation: pageheadIn 1s 0.05s var(--ease) both;
}

.c-pagehead__title {
  margin-top: clamp(10px, 0.9vw, 16px);
  font-family: var(--f-gothic);
  font-size: clamp(32px, 3.75vw, 72px);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.01em;
  animation: pageheadIn 1.1s 0.12s var(--ease) both;
  font-feature-settings: "palt";
}

.c-pagehead__title small {
  font-size: 0.5em;
  letter-spacing: 0.04em;
}

.c-pagehead__lead {
  max-width: 46em;
  margin-top: clamp(20px, 1.9vw, 36px);
  font-size: max(var(--fs-min), clamp(15px, 0.95vw, 18px));
  font-weight: 500;
  line-height: 2;
  color: rgba(255, 255, 255, 0.82);
  animation: pageheadIn 1.1s 0.22s var(--ease) both;
}

@keyframes pageheadIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
body:has(.c-pagehead) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) {
  color: #fff;
}

body:has(.c-pagehead) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__svg {
  content: url("images/common/logo-white.svg");
}

.js-reveal.c-reveal {
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transform: translateY(28px);
}

.js-reveal.c-reveal.is-in {
  opacity: 1;
  transform: none;
}

@media screen and (max-width: 640px) {
  .c-pagehead__stage {
    padding: 104px 22px 48px;
  }
  .c-pagehead__lead {
    line-height: 1.9;
  }
}
.p-gnav__sp .p-act {
  box-shadow: none;
}

.p-gnav__sp .p-act:is(:hover, :focus-visible) {
  box-shadow: 0 0 0 1px rgba(14, 22, 36, 0.06), 0 18px 36px -14px rgba(14, 22, 36, 0.32);
}

.p-page__body {
  width: min(100% - var(--gutter) * 2, 880px);
  margin-inline: auto;
}

.p-page__empty {
  display: grid;
  padding: clamp(40px, 4vw, 72px) 24px;
  border-radius: var(--inner-r);
  background: #f4f5f7;
  font-size: max(var(--fs-min), 16px);
  font-weight: 700;
  text-align: center;
  justify-items: center;
  gap: 28px;
}

.c-pagehead__crumb ol {
  display: flex;
  font-size: max(var(--fs-min), 13px);
  font-weight: 500;
  line-height: 1.6;
  flex-wrap: wrap;
  gap: 0 0.9em;
}

.c-pagehead__crumb li + li::before {
  margin-right: 0.9em;
  content: "/";
}

.c-pagehead__crumb {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin: clamp(14px, 1.2vw, 22px) auto 0;
}

.c-pagehead__crumb ol {
  color: var(--ink);
}

.c-pagehead__crumb li + li::before {
  color: var(--g3, #a9b2bf);
}

.c-pagehead__crumb a {
  color: var(--mute);
}

.c-pagehead__crumb a:hover {
  color: #d6363a;
}

.c-pagehead__crumb [aria-current] {
  color: var(--ink);
}

@media screen and (max-width: 640px) {
  .c-pagehead__crumb {
    width: auto;
    margin-inline: 12px;
  }
}
.c-pagehead__en,
.c-pagehead__stage > .c-pagehead__title:first-child {
  margin-top: 0;
}

.screen-reader-text {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
  clip-path: inset(50%);
}

.c-pager {
  margin-top: clamp(48px, 4.4vw, 80px);
}

.c-pager ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.c-pager .page-numbers {
  display: grid;
  min-width: 52px;
  padding: 17.5px 8px;
  border-radius: 999px;
  background: #f4f5f7;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1;
  color: var(--ink);
  transition: background-color 0.4s ease, color 0.4s ease;
  place-items: center;
  font-variant-numeric: lining-nums tabular-nums;
}

.c-pager a.page-numbers:hover,
.c-pager a.page-numbers:focus-visible {
  background: #e2e6ec;
}

.c-pager .page-numbers.current {
  background: #d6363a;
  color: #fff;
}

.c-pager .page-numbers.dots {
  min-width: 24px;
  background: none;
  color: var(--mute);
  padding-inline: 0;
}

.c-pager :is(.prev, .next).page-numbers {
  background: #263039;
  color: #fff;
  padding-block: 19px;
}

.c-pager :is(.prev, .next).page-numbers:hover,
.c-pager :is(.prev, .next).page-numbers:focus-visible {
  background: #d6363a;
}

.c-pager :is(.prev, .next) svg {
  width: 14px;
  height: 14px;
  transition: translate 0.5s var(--ease);
}

.c-pager .prev svg {
  rotate: 180deg;
}

.c-pager .next:hover svg {
  translate: 3px 0;
}

.c-pager .prev:hover svg {
  translate: -3px 0;
}

.c-pager .page-numbers:focus-visible {
  outline: 2px solid #d6363a;
  outline-offset: 3px;
}

@media screen and (max-width: 640px) {
  .c-pager ul {
    gap: 6px;
  }
  .c-pager .page-numbers {
    min-width: 44px;
    font-size: 15px;
    padding-block: 14.5px;
  }
  .c-pager :is(.prev, .next).page-numbers {
    padding-block: 15px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .c-pager .page-numbers:not(.current, .dots, .prev, .next) {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
}
:root[data-theme=dark] .c-pager .page-numbers:not(.current, .dots, .prev, .next) {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

.p-hero {
  position: relative;
  overflow: hidden;
  background: radial-gradient(60% 70% at 85% 20%, var(--blush), transparent 70%), radial-gradient(55% 60% at 8% 95%, var(--sky), transparent 70%), var(--paper);
  color: var(--ink);
  padding-block: calc(80px + clamp(40px, 5.5vw, 80px)) clamp(48px, 6vw, 80px);
  isolation: isolate;
}

.p-hero__canvas {
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  inset: 0;
}

.p-hero::after {
  position: absolute;
  z-index: -1;
  height: 40%;
  background: linear-gradient(to top, color-mix(in srgb, var(--paper) 70%, transparent), transparent);
  pointer-events: none;
  content: "";
  inset: auto 0 0;
}

.p-hero__row {
  display: grid;
  margin-top: clamp(28px, 3.4vw, 48px);
  grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
  gap: 48px 64px;
  align-items: start;
}

.p-hero .c-label {
  padding: 6px 16px 6px 12px;
  border: 1px solid var(--rule);
  border-radius: 99px;
  background: var(--sheet);
  color: var(--mute);
}

.p-hero__title {
  margin-top: 28px;
  font-family: var(--f-gothic);
  font-size: clamp(38px, 11.4vw, 120px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.p-hero__title .ln {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
  white-space: nowrap;
}

.p-hero__title .ln > span {
  display: inline-block;
  animation: rise 1.2s var(--ease) both;
}

.p-hero__title .ln:nth-child(2) > span {
  animation-delay: 0.12s;
}

.p-hero__title .dot {
  color: var(--signal);
}

@keyframes rise {
  from {
    transform: translateY(105%);
  }
}
.p-hero__lead {
  max-width: 31em;
  font-size: max(var(--fs-min), clamp(14.5px, 1.25vw, 16.5px));
  line-height: 2.05;
  color: var(--mute);
  animation: fade 1.2s 0.5s var(--ease) both;
}

.p-hero__lead strong {
  font-weight: 500;
  color: var(--ink);
}

.p-hero .c-btn--line {
  border-color: var(--rule);
  background: var(--sheet);
}

.p-hero .c-btn--line:hover {
  border-color: var(--ink);
  background: var(--ink);
}

.p-hero .c-btn--line:hover span {
  color: var(--paper);
}

.p-hero__cta {
  display: flex;
  margin-top: 44px;
  animation: fade 1.2s 0.65s var(--ease) both;
  flex-wrap: wrap;
  gap: 14px;
}

@keyframes fade {
  from {
    opacity: 0.001;
    transform: translateY(14px);
  }
}
.p-ask {
  width: 100%;
  max-width: 480px;
  padding: 22px 22px 20px;
  border: 1px solid var(--rule);
  border-radius: var(--inner-r);
  background: var(--sheet);
  box-shadow: 0 2px 4px color-mix(in srgb, var(--ink) 4%, transparent), 0 30px 60px -24px color-mix(in srgb, var(--ink) 22%, transparent);
  animation: fade 1.2s 0.8s var(--ease) both;
  justify-self: end;
}

.p-ask__bar {
  display: flex;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 10.5px;
  color: var(--mute);
  letter-spacing: 0.14em;
  justify-content: space-between;
  align-items: center;
}

.p-ask__bar span:last-child {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-ask__bar span:last-child::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3ccf8e;
  box-shadow: 0 0 0 3px rgba(60, 207, 142, 0.18);
  content: "";
}

.p-ask__q {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 90%;
  min-height: 2.6em;
  margin: 18px 0 0 auto;
  padding: 11px 16px;
  border-radius: 18px 18px 4px 18px;
  background: var(--signal);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.7;
  color: #fff;
}

.p-ask__a {
  display: grid;
  margin-top: 18px;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
}

.p-ask__ai {
  display: grid;
  width: 26px;
  height: 26px;
  margin-top: 2px;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
  place-items: center;
}

.p-ask__ai::after {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--signal);
  content: "";
}

.p-ask__body {
  min-height: 5.85em;
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--mute);
}

.p-ask__body mark {
  padding: 0 2px;
  background: none;
  box-shadow: inset 0 -0.45em 0 color-mix(in srgb, var(--signal) 55%, transparent);
  font-weight: 700;
  color: var(--ink);
}

.p-ask__body sup {
  margin-left: 1px;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 9.5px;
  color: var(--signal);
}

.p-ask__caret {
  display: inline-block;
  width: 6px;
  height: 1.05em;
  margin-left: 2px;
  background: var(--ink);
  vertical-align: -3px;
  animation: blink 1s steps(1) infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}
.p-ask__src {
  display: flex;
  margin-top: 14px;
  padding-left: 38px;
  transition: opacity 0.4s;
  flex-wrap: wrap;
  gap: 6px;
}

.p-ask__src li {
  padding: 3px 9px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  font-family: var(--f-gothic);
  font-size: 10.5px;
  color: var(--mute);
}

.p-ask__src li.is-you {
  border-color: var(--signal);
  background: var(--signal-soft);
  color: var(--signal);
}

.p-ask__foot {
  display: flex;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
  font-size: 11px;
  color: var(--mute);
  justify-content: space-between;
  gap: 12px;
}

.p-ask__dots {
  display: flex;
  gap: 6px;
  align-items: center;
}

.p-ask__dots i {
  width: 18px;
  height: 2px;
  background: var(--rule);
  transition: background 0.3s;
}

.p-ask__dots i.is-on {
  background: var(--signal);
}

.p-hero__foot {
  display: flex;
  margin-top: clamp(48px, 6vw, 80px);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 11px);
  color: var(--mute);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.p-hero__engines {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}

.p-hero__engines b {
  font-weight: 500;
  color: var(--ink);
}

.p-hero__scroll {
  display: flex;
  align-items: center;
  gap: 12px;
}

.p-hero__scroll i {
  position: relative;
  overflow: hidden;
  width: 1px;
  height: 40px;
  background: var(--rule);
}

.p-hero__scroll i::after {
  position: absolute;
  background: var(--ink);
  content: "";
  animation: drip 2.2s var(--ease) infinite;
  inset: 0;
}

@keyframes drip {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(100%);
  }
}
.p-hero {
  position: relative;
  overflow: hidden !important;
  min-height: 0;
  padding: var(--stage-gap) var(--stage-gap) clamp(120px, 15vw, 230px) !important;
  background: var(--sheet) !important;
  isolation: isolate;
}

.p-hero::after {
  display: none;
}

.hs {
  position: relative;
  z-index: 1;
  display: flex;
  overflow: hidden;
  height: var(--panel-h);
  border-radius: var(--stage-r);
  background: radial-gradient(46% 62% at 72% 52%, rgba(255, 128, 104, 0.55) 0%, rgba(255, 128, 104, 0) 70%), radial-gradient(60% 80% at 0% 100%, #6e0710 0%, rgba(110, 7, 16, 0) 70%), radial-gradient(50% 55% at 100% 0%, rgba(255, 170, 140, 0.38) 0%, rgba(255, 170, 140, 0) 70%), linear-gradient(128deg, #a70f19 0%, #cc2129 42%, #e0372f 72%, #c51f27 100%);
  color: #fff;
  isolation: isolate;
  align-items: center;
}

.hs::before,
.hs::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
  inset: 0;
}

.hs::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.4 -.35'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 220px;
  opacity: 0.32;
  mix-blend-mode: soft-light;
}

.hs::after {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='2' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.6 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 300px;
  opacity: 0.11;
  mix-blend-mode: multiply;
}

.hs__tab {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: calc(var(--stage-gap) + var(--tab-w));
  height: calc(var(--stage-gap) + var(--tab-h));
  border-bottom-right-radius: var(--stage-r);
  background: var(--sheet);
  pointer-events: none;
}

.hs__tab::before,
.hs__tab::after {
  position: absolute;
  width: var(--stage-r);
  height: var(--stage-r);
  background: radial-gradient(circle at 100% 100%, transparent calc(var(--stage-r) - 0.7px), var(--sheet) var(--stage-r));
  content: "";
}

.hs__tab::before {
  top: var(--stage-gap);
  left: 100%;
}

.hs__tab::after {
  top: 100%;
  left: var(--stage-gap);
}

.hs__para {
  position: absolute;
  z-index: 1;
  width: 108%;
  height: 108%;
  pointer-events: none;
  transform: translate3d(calc(var(--mx, 0) * -14px), calc(var(--my, 0) * -10px), 0);
  inset: -4%;
}

.hs__back {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: -0.08em;
  margin: 0;
  padding-right: 0.12em;
  font-family: var(--f-latin);
  font-size: clamp(110px, 15.5vw, 290px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.1);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
  transform: translate3d(calc(var(--sx, 0) * -1px), 0, 0);
  animation: fade 1.6s 0.4s var(--ease) both;
}

.hs__para path {
  fill: none;
  stroke: #fff;
  stroke-opacity: 0.24;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.hs__para path.is-dash {
  stroke-dasharray: 2 7;
  stroke-opacity: 0.28;
}

.hs__para circle {
  fill: #fff;
}

.hs__para circle.is-ring {
  fill: none;
  stroke: #fff;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.gl {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  inset: 0;
}

.gl canvas {
  display: block;
  width: 100%;
  height: 100%;
  outline: none;
}

.p-hero.is-grab {
  cursor: grab;
}

.p-hero.is-dragging {
  cursor: grabbing;
}

.ph-slot {
  position: absolute;
  visibility: hidden;
  pointer-events: none;
  aspect-ratio: 0.488;
}

.ph-slot--d {
  top: calc(var(--stage-gap) + var(--tab-h) + 52px);
  left: calc(50% + min(var(--wrap), 100vw - var(--stage-gap) * 2) * 0.262);
  height: min(var(--panel-h) - var(--tab-h) + 40px, 50vw, 800px);
  transform: translateX(-50%);
}

.ph-slot--m {
  display: none;
}

.hs__wrap {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-block: calc(var(--tab-h) + 8px) 24px;
  padding-inline: clamp(40px, 4.4vw, 72px);
}

.hx {
  max-width: 58.6%;
}

.hx__title {
  margin-left: -0.06em;
  font-family: var(--f-mincho);
  font-size: clamp(46px, 6.6vw, 106px);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: 0.005em;
  font-feature-settings: "palt";
}

.hx__title .ln {
  display: block;
  white-space: nowrap;
}

.hx__title .ch {
  display: inline-block;
  transform-origin: 50% 100%;
  animation: chIn 1.1s var(--ease) both;
  animation-delay: calc(var(--i) * 42ms + 0.15s);
}

@keyframes chIn {
  from {
    opacity: 0.001;
    transform: translateY(0.42em);
    filter: blur(8px);
  }
}
.hx__sub {
  margin-top: clamp(24px, 2.5vw, 38px);
  font-family: var(--f-gothic);
  font-size: clamp(19px, 1.95vw, 29px);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
}

.hx__band {
  display: inline;
  padding: 0.22em 0.4em 0.26em 0.46em;
  background: linear-gradient(#15121a, #15121a) no-repeat 0 0/0% 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  line-height: 1.75;
  color: #fff;
  animation: band 0.9s 0.75s var(--ease) forwards;
}

.hx__band em {
  font-style: normal;
  color: #ff5a50;
}

.hx__bt {
  opacity: 0;
  animation: btIn 0.7s 1.05s var(--ease) forwards;
}

@keyframes btIn {
  to {
    opacity: 1;
  }
}
@keyframes band {
  to {
    background-size: 100% 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hx__band {
    background-size: 100% 100%;
    animation: none;
  }
  .hx__bt {
    opacity: 1;
    animation: none;
  }
}
.hx__sub br.sp {
  display: none;
}

.hx__en {
  display: flex;
  margin-top: clamp(16px, 1.6vw, 24px);
  font-family: "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), clamp(13px, 1.1vw, 16px));
  font-weight: 500;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: 0.02em;
  animation: fade 1.2s 0.6s var(--ease) both;
  align-items: center;
  gap: 14px;
}

.hx__en::before {
  width: 36px;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0.7;
  flex: none;
}

.hx__lead {
  margin-top: clamp(26px, 2.6vw, 38px);
  font-size: max(var(--fs-min), clamp(14px, 1.12vw, 16px));
  font-weight: 500;
  line-height: 2;
  color: rgba(255, 255, 255, 0.86);
  letter-spacing: 0.08em;
  animation: fade 1.2s 0.75s var(--ease) both;
  font-feature-settings: "palt";
}

.hx__lead .nw {
  white-space: nowrap;
}

.hx .p-hero__cta {
  margin-top: clamp(32px, 3.4vw, 52px);
}

.p-ask {
  display: none;
}

.no-gl .p-ask {
  display: block;
  max-width: 420px;
  margin-top: 40px !important;
  color: var(--ink);
}

@media screen and (min-width: 961px) {
  .no-gl .p-ask {
    position: absolute;
    top: 50%;
    right: max(var(--gutter), 72px);
    width: min(420px, 38%);
    margin: 0 !important;
    transform: translateY(-50%);
  }
}
@media screen and (max-width: 960px) {
  .hs {
    flex-direction: column;
    height: auto;
    align-items: stretch;
  }
  .hs__wrap {
    padding-inline: clamp(28px, 6vw, 56px);
    padding-block: calc(var(--tab-h) + 24px) 0;
  }
  .hx {
    max-width: none;
  }
  .ph-slot--d {
    display: none;
  }
  .hs__back {
    right: -0.04em;
    bottom: 2vw;
    font-size: clamp(76px, 21vw, 170px);
  }
  .ph-slot--m {
    position: relative;
    display: block;
    width: min(70vw, 380px);
    height: auto;
    margin: 32px auto calc(min(70vw, 380px) * -0.62);
  }
  .p-hero {
    padding-bottom: calc(min(70vw, 380px) * 0.62 + 40px) !important;
  }
}
@media screen and (max-width: 640px) {
  .hs__wrap {
    padding-inline: 24px;
  }
  .hx__title {
    font-size: clamp(36px, 11.2vw, 62px);
    line-height: 1.22;
  }
  .hx__sub {
    font-size: clamp(17px, 5.1vw, 22px);
    white-space: normal;
  }
  .hx__sub br.sp {
    display: inline;
  }
  .hx__lead {
    font-size: max(var(--fs-min), 14px);
  }
  .hx__en {
    font-size: max(var(--fs-min), 12px);
    letter-spacing: 0.01em;
    gap: 10px;
  }
  .hx__en {
    white-space: nowrap;
  }
  .hx__en::before {
    display: none;
  }
  .hx .p-hero__cta .c-btn {
    flex: 1 1 100%;
    justify-content: space-between;
  }
  .ph-slot--m {
    width: 72vw;
    margin-bottom: -44.64vw;
  }
  .p-hero {
    padding-bottom: calc(44.64vw + 32px) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hx__title .ch {
    animation: none;
  }
}
@media screen and (max-width: 960px) {
  .p-hero__row {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-ask {
    justify-self: start;
  }
}
@media screen and (max-width: 640px) {
  .p-hero {
    padding-top: 128px;
  }
  .p-hero__cta .c-btn {
    flex: 1 1 100%;
    justify-content: space-between;
  }
  .p-hero__cta .c-btn--line {
    justify-content: center;
  }
  .p-hero__foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .p-hero__scroll {
    display: none;
  }
}
.p-ask__src {
  display: none !important;
}

.p-hero .c-btn--line {
  background: transparent;
}

.p-hero {
  padding-bottom: var(--stage-gap) !important;
}

.hs {
  background: #e2e4e6 url("images/front/fv-bg.png") center/cover no-repeat;
  color: #0e1624;
}

.hs::before,
.hs::after {
  display: none;
}

.hs__initial {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 34.8%;
  width: 82.7%;
  max-width: none;
  height: auto;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.hs__back {
  z-index: 1;
  right: -0.06em;
  bottom: -0.3em;
  font-size: clamp(130px, 18.8vw, 380px);
  color: rgba(255, 255, 255, 0.55);
}

.hs__wrap {
  max-width: none;
  padding-block: clamp(76px, 5.4vw, 104px) 0;
  padding-inline: 8.87% 0;
}

.hx {
  max-width: 52%;
}

.hx__title {
  margin-left: 0;
  font-family: var(--f-gothic);
  font-size: clamp(40px, 4.95vw, 102px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: 0;
}

.hx__title .ln--1 {
  display: flex;
  align-items: baseline;
}

.hx__title .ln--1 .hx__ja {
  font-size: max(var(--fs-min), 0.95em);
}

.hx__title .ln--2 {
  display: flex;
  margin-top: 0.3em;
  align-items: center;
}

.hx__ai {
  display: inline-flex;
  margin-right: 0.06em;
  font-size: 2.36em;
  animation: aiIn 1.2s var(--ease) both;
}

.hx__ai svg {
  display: block;
  overflow: visible;
  width: auto;
  height: 0.735em;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-weight: 700;
}

.hx__ai text {
  font-size: 100px;
}

@keyframes aiIn {
  from {
    opacity: 0.001;
    transform: translateY(0.12em);
  }
}
.hx__title .ln--2 {
  display: flex;
  margin-top: 0.3em;
  align-items: center;
}

.hx__ja {
  display: inline-flex;
}

.hx__title .ch {
  position: relative;
  animation-name: fvCh;
  animation-delay: calc(var(--i) * 42ms + 0.25s);
}

@keyframes fvCh {
  from {
    opacity: 0.001;
    transform: translateY(0.42em);
  }
}
.hx__title .is-dot::before {
  position: absolute;
  top: -0.12em;
  left: 50%;
  width: 0.11em;
  height: 0.11em;
  margin-left: -0.055em;
  border-radius: 50%;
  background: linear-gradient(135deg, #e02d32 28.57%, #e36027 73.64%, #ddc01f 117.86%), #d9d9d9;
  content: "";
}

.hx__box {
  display: inline-flex;
  padding: 0 0.12em 0.02em;
  background: linear-gradient(#fff, #fff) no-repeat 0 0/0% 100%;
  line-height: 1.12;
  animation: band 0.8s 0.45s var(--ease) forwards;
}

.hx__title .ln--2 .hx__ja {
  margin-left: 0.18em;
}

.hx__en {
  display: block;
  margin-top: 0.95em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), clamp(13px, 1.3vw, 27px));
  font-weight: 700;
  line-height: 1.3;
  color: #e2542a;
  white-space: nowrap;
  letter-spacing: 0.03em;
}

.hx__en::before {
  display: none;
}

.hx__lead {
  margin-top: clamp(24px, 2.2vw, 44px);
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), clamp(14px, 0.9vw, 18px));
  font-weight: 700;
  line-height: 1.88;
  color: #0e1624;
  letter-spacing: 0.06em;
}

.hx__lead br.sp {
  display: none;
}

.hx .p-hero__cta {
  margin-top: clamp(28px, 1.95vw, 40px);
}

.hx .p-hero__cta .c-btn {
  padding: clamp(8px, 1.8vw - 20px, 15px) 0.5em clamp(8px, 1.8vw - 20px, 15px) clamp(26px, 2.1vw, 40px);
  background: #d42a2f;
  box-shadow: 0 18px 36px -14px rgba(212, 42, 47, 0.55);
  font-size: max(var(--fs-min), clamp(15px, 1vw, 19px));
  letter-spacing: 0.08em;
  animation: fade 1.2s 0.9s var(--ease) both;
  gap: clamp(20px, 1.6vw, 30px);
}

.hx .p-hero__cta {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}

.hx .p-hero__cta::after {
  position: absolute;
  border: 1.5px solid rgba(212, 42, 47, 0.6);
  border-radius: 999px;
  pointer-events: none;
  content: "";
  opacity: 0;
  animation: fvRing 2.8s 2.2s ease-out infinite;
  inset: 0;
  will-change: transform, opacity;
}

@keyframes fvRing {
  0% {
    opacity: 1;
    transform: none;
  }
  70%, 100% {
    opacity: 0;
    transform: scale(var(--ring-x, 1.1), var(--ring-y, 1.42));
  }
}
.hs__back span + span {
  display: none;
}

.ph-slot--d {
  top: calc(var(--stage-gap) + var(--panel-h) * 0.15);
  left: calc(var(--stage-gap) + (100vw - var(--stage-gap) * 2) * 0.71);
  height: min(var(--panel-h) * 0.9, 46vw, 940px);
}

.no-gl .p-ask {
  color: #0e1624;
}

@media screen and (max-width: 960px) {
  .p-hero {
    --fv-ph: min(80vw, max(50svh, 340px), 640px);
    --fv-shift: 3vw;
    padding-bottom: var(--stage-gap) !important;
  }
  .hs {
    background-image: url("images/front/fv-bg-sp.png");
    background-position: center top;
  }
  .hs__wrap {
    display: flex;
    flex-direction: column;
    padding-inline: 7vw;
    padding-block: calc(var(--fv-ph) * 0.29) clamp(23px, 6vw, 56px);
  }
  .hx {
    max-width: none;
  }
  .ph-slot--m {
    position: relative;
    left: var(--fv-shift);
    display: block;
    width: calc(var(--fv-ph) * 0.537);
    height: calc(var(--fv-ph) * 1.1);
    margin: calc(var(--fv-ph) * -0.05) auto calc(var(--fv-ph) * 0.1);
    order: -1;
  }
  .hs__initial {
    top: calc(var(--fv-ph) * -0.2);
    left: calc(50% + var(--fv-shift) - var(--fv-ph) * 0.58);
    width: calc(var(--fv-ph) * 1.637);
    height: auto;
  }
  .gl {
    clip-path: inset(var(--stage-gap));
  }
  .hx__title {
    font-size: calc(var(--fv-ph) * 0.14);
    line-height: 1.16;
  }
  .hx__title .ln--1 .hx__ja {
    font-size: 0.88em;
  }
  .hx__title .ln--2 {
    margin-top: 0.22em;
  }
  .hx__en {
    margin-top: 1.4em;
    font-size: clamp(10px, 2.75vw, 18px);
    letter-spacing: 0.02em;
  }
  .hx__lead {
    max-width: 36em;
    margin-top: clamp(16px, 3vw, 28px);
    font-size: clamp(13px, 3.5vw, 16px);
    line-height: 1.7;
    letter-spacing: 0.04em;
  }
  .hx .p-hero__cta {
    margin-top: clamp(15px, 4vw, 36px);
  }
  .hs__back {
    right: auto;
    bottom: 1vw;
    left: 0;
    display: flex;
    width: -moz-max-content;
    width: max-content;
    padding-right: 0;
    color: rgba(255, 255, 255, 0.36);
    transform: none;
  }
  .hs__back span,
  .hs__back span + span {
    display: block;
    padding-right: 0.35em;
    animation: fvBack 24s linear infinite;
    will-change: transform;
  }
}
@media screen and (max-width: 640px) {
  .hx .p-hero__cta {
    --ring-x: 1.15;
    --ring-y: 1.6;
  }
  .hx .p-hero__cta .c-btn {
    padding: 6px 6px 6px 26px;
    font-size: 13px;
    letter-spacing: 0.06em;
    flex: 0 0 auto;
    gap: 16px;
  }
  .hx .p-hero__cta .c-btn__ico {
    width: 34px;
    height: 34px;
  }
}
@keyframes fvBack {
  to {
    transform: translateX(-100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hs__back span,
  .hx__ai,
  .hx .p-hero__cta::after {
    animation: none;
  }
  .hx__box {
    background-size: 100% 100%;
    animation: none;
  }
}
@media screen and (max-width: 960px) {
  .hx__lead br,
  .hx__lead br.sp {
    display: none;
  }
}
@media screen and (min-width: 961px) and (max-width: 1200px) {
  .hs__initial {
    left: 43%;
  }
  .hx__lead br.sp {
    display: inline;
  }
}
@media screen and (min-width: 641px) and (max-width: 960px) {
  .hx__lead {
    max-width: none;
  }
  .hx__lead .nw {
    white-space: normal;
  }
}
.p-ticker {
  overflow: hidden;
  background: var(--signal);
  color: #fff;
  white-space: nowrap;
  padding-block: 16px;
}

.p-ticker__track {
  display: inline-flex;
  font-family: var(--f-latin);
  font-size: clamp(20px, 2.4vw, 30px);
  font-style: italic;
  line-height: 1.3;
  animation: tick 40s linear infinite;
  gap: 48px;
}

.p-ticker__track span {
  display: inline-flex;
  align-items: center;
  gap: 48px;
}

.p-ticker__track span::after {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  content: "";
}

@keyframes tick {
  to {
    transform: translateX(-50%);
  }
}
.p-why {
  position: relative;
  z-index: 1;
  color: var(--ink);
  padding-block: var(--sec);
}

.p-why::before,
.p-why::after {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  content: "";
  inset: 0;
}

.p-why::before {
  background: repeating-radial-gradient(circle at 74% 50%, transparent 0 95px, color-mix(in srgb, var(--ink) 8%, transparent) 95px 96px);
  -webkit-mask-image: radial-gradient(48% 70% at 74% 50%, #000 30%, transparent 100%);
          mask-image: radial-gradient(48% 70% at 74% 50%, #000 30%, transparent 100%);
}

.p-why::after {
  background-image: radial-gradient(color-mix(in srgb, var(--ink) 14%, transparent) 1px, transparent 1.6px);
  background-size: 16px 16px;
  opacity: 0.6;
  -webkit-mask-image: linear-gradient(105deg, transparent 20%, #000 60%, transparent 95%);
          mask-image: linear-gradient(105deg, transparent 20%, #000 60%, transparent 95%);
}

.p-why__inner {
  position: relative;
  padding-inline: clamp(24px, 16vw, 307px) clamp(24px, 6vw, 120px);
}

.p-why__label {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(24px, 2vw, 38px);
  font-weight: 700;
  line-height: 1;
  color: #e2542a;
  letter-spacing: 0.01em;
}

.p-why__title {
  margin-top: clamp(14px, 1.3vw, 25px);
  font-family: var(--f-gothic);
  font-weight: 700;
  font-feature-settings: "palt";
}

.p-why__old {
  display: inline-block;
  padding: 0.12em 0.32em 0.16em;
  border: 2px solid currentColor;
  font-size: clamp(24px, 1.98vw, 38px);
  line-height: 1.2;
}

.p-why__old s {
  position: relative;
  text-decoration: none;
}

.p-why__old s::after {
  position: absolute;
  top: 52%;
  right: -0.08em;
  left: -0.08em;
  height: 0.09em;
  background: #d42a2f;
  content: "";
  transition: transform 0.7s 0.2s var(--ease);
  transform: scaleX(0);
  transform-origin: left center;
}

.p-why.is-in .p-why__old s::after {
  transform: none;
}

.p-why__now {
  display: table;
  margin-top: clamp(14px, 1.2vw, 22px);
  padding: 0.1em 0.24em 0.14em;
  background: #263039;
  font-size: clamp(32px, 4.06vw, 78px);
  line-height: 1.2;
  color: #fff;
  letter-spacing: -0.02em;
}

.p-why__ai {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  letter-spacing: 0;
}

.p-why__pick {
  position: relative;
  display: inline-block;
}

.p-why__circle {
  position: absolute;
  top: -0.3em;
  left: -0.3em;
  overflow: visible;
  width: calc(100% + 0.62em);
  height: calc(100% + 0.62em);
  pointer-events: none;
}

.p-why__circle path {
  fill: none;
  stroke: #d42a2f;
  stroke-width: 4.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 1 1;
  stroke-dashoffset: 1;
}

.p-why.is-in .p-why__circle path {
  animation: whyDraw 1.4s 0.7s cubic-bezier(0.45, 0.05, 0.4, 1) forwards;
}

@keyframes whyDraw {
  to {
    stroke-dashoffset: 0;
  }
}
.p-why__text {
  margin-top: clamp(40px, 4.2vw, 80px);
  font-size: clamp(18px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 2.15;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-why__text p + p {
  margin-top: 1.05em;
}

.p-why__text em {
  font-weight: 700;
  font-style: normal;
  color: #d42a2f;
}

.p-why__text strong {
  font-weight: 700;
}

.p-why__mk {
  background: linear-gradient(transparent 62%, rgba(212, 42, 47, 0.26) 62%, rgba(212, 42, 47, 0.26) 92%, transparent 92%) no-repeat 0 0/0% 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-size 1.6s 0.3s var(--ease);
}

.p-why__text.is-in .p-why__mk {
  background-size: 100% 100%;
}

.p-why__text br.pc {
  display: inline;
}

.p-why__side {
  --ph-h: min(calc(var(--panel-h) * 0.9), 46vw, 940px, calc(100vh - 120px));
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(72.8% - var(--ph-h) * 0.244);
  width: calc(var(--ph-h) * 0.488);
}

.ph-slot--w {
  position: sticky;
  top: max(104px, 50vh - var(--ph-h) / 2 + 20px);
  left: auto;
  display: block;
  width: 100%;
  height: var(--ph-h);
  transform: none;
}

.p-brand {
  overflow: hidden;
  padding-block: clamp(48px, 5.7vw, 110px) clamp(32px, 2.1vw, 41px);
}

.p-brand__track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  padding-right: 0.24em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(72px, 10.8vw, 208px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.01em;
  animation: brandFlow 80s linear infinite;
  align-items: center;
  gap: 0.24em;
  will-change: transform;
}

.p-brand__word {
  background: linear-gradient(180deg, #e02d32 0%, #e2542a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  white-space: nowrap;
  padding-block: 0.08em;
}

.p-brand__pc {
  width: 1.16em;
  height: auto;
  transform: rotate(-10deg);
}

.p-brand__sp {
  width: 0.44em;
  height: auto;
  transform: rotate(15deg);
}

@keyframes brandFlow {
  to {
    transform: translateX(-50%);
  }
}
@media screen and (min-width: 961px) {
  .p-hero {
    z-index: 2;
  }
  .p-hero .gl {
    position: fixed;
    inset: 0;
  }
  .p-hero .gl.is-off {
    visibility: hidden;
  }
}
@media screen and (max-width: 960px) {
  .p-why__inner {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: clamp(24px, 6vw, 56px);
  }
  .p-why__side {
    display: none;
  }
  .p-why__text br.pc {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  .p-why {
    padding-bottom: 0;
  }
  .p-brand {
    padding-top: 36px;
  }
  .p-brand__track {
    font-size: 88px;
  }
  .p-why__inner {
    padding-inline: 20px;
  }
  .p-why__now {
    font-size: min(32px, 8.5vw);
    white-space: nowrap;
    letter-spacing: -0.03em;
    padding-inline: 0.22em;
  }
  .p-why__pick {
    font-size: 1.2em;
    line-height: 1;
  }
  .p-why__text {
    line-height: 2;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-why__old s::after,
  .p-why__mk {
    transition: none;
  }
  .p-why .p-why__circle path {
    animation: none;
    stroke-dashoffset: 0;
  }
  .p-brand__track {
    animation: none;
  }
}
.p-facts {
  position: relative;
  overflow: clip;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.26), transparent 70%), #263039;
  color: #fff;
  margin-inline: var(--stage-gap);
  padding-block: var(--sec);
  isolation: isolate;
}

.p-facts::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
}

.p-facts__inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.p-facts__title {
  display: flex;
  padding-left: clamp(0px, 0.6vw, 11px);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(36px, 30.2px + 1.55vw, 60px);
  font-weight: 700;
  line-height: 1.2;
  color: #d6363a;
  letter-spacing: 0;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 clamp(16px, 2vw, 38px);
}

.p-facts__title small {
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), clamp(14px, 11.6px + 0.54vw, 22px));
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.06em;
}

.p-facts__list {
  display: grid;
  margin-top: clamp(16px, 1.5vw, 28px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.p-facts__item {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.55);
  text-align: center;
  align-items: center;
  gap: clamp(10px, 1.1vw, 20px);
  padding-block: clamp(28px, 3.1vw, 60px);
}

.p-facts__k {
  font-size: max(var(--fs-min), clamp(14px, 11.6px + 0.54vw, 22px));
  font-weight: 700;
  line-height: 1.4;
  color: #d6363a;
  letter-spacing: 0.04em;
}

.p-facts__v {
  display: inline-flex;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(56px, 7.8vw, 150px);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: -0.03em;
  align-items: baseline;
  font-variant-numeric: lining-nums;
}

.p-facts__v small {
  margin-left: 0.12em;
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), clamp(14px, 11.6px + 0.54vw, 22px));
  font-weight: 700;
  letter-spacing: 0.04em;
}

@media screen and (max-width: 860px) {
  .p-facts__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-facts__item:nth-child(2n) {
    border-right: 0;
  }
  .p-facts__item:nth-child(-n+2) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.55);
  }
}
@media screen and (max-width: 640px) {
  .p-facts {
    padding-block: 2em;
  }
  .p-facts__k {
    font-size: 13px;
    letter-spacing: 0;
    font-feature-settings: "palt";
  }
  .p-facts__v {
    font-size: clamp(44px, 13vw, 64px);
  }
}
.p-problems {
  padding-block: var(--sec);
}

.p-problems__grid {
  --card: clamp(260px, 23.65vw, 454px);
  --gap: clamp(16px, 2.08vw, 40px);
  display: grid;
  width: min(1532px, 100% - var(--gutter) * 2);
  max-width: none;
  grid-template-columns: minmax(0, 1fr) calc(var(--card) * 2 + var(--gap));
  gap: 5vw;
  align-items: start;
  margin-inline: auto;
  padding-inline: 0;
}

@media screen and (max-width: 640px) {
  .p-problems__grid {
    width: 85%;
  }
}
.p-problems__side {
  position: sticky;
  top: 120px;
}

.p-problems__side h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-problems__side p {
  margin-top: clamp(24px, 2.6vw, 50px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  color: var(--ink);
  letter-spacing: 0;
}

.p-problems__side .c-btn {
  min-width: clamp(240px, 14.9vw, 286px);
  margin-top: clamp(32px, 3.8vw, 72px);
  padding-block: clamp(8px, 1.825vw - 20px, 15px);
  justify-content: space-between;
}

.p-problems__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap);
}

.p-problems__list > li {
  display: grid;
}

.p-voice {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 1.6vw, 30px) clamp(22px, 1.9vw, 36px) clamp(20px, 1.4vw, 26px);
  border-radius: 8px;
  background: #f4f5f7;
  color: var(--ink);
}

.p-voice__line {
  position: absolute;
  overflow: visible;
  width: 100%;
  height: 100%;
  pointer-events: none;
  inset: 0;
}

.p-voice__line rect {
  width: 100%;
  height: 100%;
  transition: stroke-dashoffset 0.9s cubic-bezier(0.65, 0, 0.35, 1);
  rx: 8px;
  fill: none;
  stroke: #d6363a;
  stroke-width: 2;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}

.p-voice:hover .p-voice__line rect,
.p-voice:focus-visible .p-voice__line rect {
  stroke-dashoffset: 0;
}

.p-voice__q {
  font-size: clamp(17px, 15.5px + 0.34vw, 22px);
  font-weight: 700;
  line-height: 1.9;
  color: var(--ink);
  letter-spacing: 0;
  text-wrap: balance;
  font-feature-settings: "palt";
}

.p-voice__d {
  margin-top: clamp(14px, 1.25vw, 24px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  color: var(--ink);
  letter-spacing: 0;
}

.p-voice__to {
  display: inline-flex;
  margin-top: auto;
  padding-top: 24px;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
  letter-spacing: 0.02em;
  align-items: center;
  align-self: flex-end;
  gap: 10px;
}

.p-voice__to i {
  display: grid;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #d6363a;
  color: #d6363a;
  place-items: center;
}

.p-voice__to i svg {
  width: 12px;
  height: 12px;
}

.p-voice:is(:hover, :focus-visible) .p-voice__to i {
  background: #d6363a;
  color: #fff;
}

.p-problems__side .c-btn--signal {
  background: var(--signal);
  box-shadow: none;
  animation: none;
}

@media screen and (max-width: 960px) {
  .p-problems__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }
  .p-problems__side {
    display: contents;
  }
  .p-problems__side .c-label {
    justify-self: start;
  }
  .p-problems__list {
    margin-top: clamp(32px, 6vw, 48px);
  }
  .p-problems__side .c-btn {
    margin-top: clamp(32px, 6vw, 48px);
    order: 1;
    justify-self: start;
  }
}
@media screen and (max-width: 640px) {
  .p-problems__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-voice__q {
    font-size: 20px;
    line-height: 1.5;
  }
  .p-voice__q br {
    display: none;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-voice {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
}
:root[data-theme=dark] .p-voice {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

.p-service {
  border-radius: var(--stage-r);
  background: #f4f5f7;
  margin-inline: var(--stage-gap);
}

.p-service__grid {
  --gap: clamp(16px, 2.08vw, 40px);
  display: grid;
  width: min(1532px, 100% - var(--gutter) * 2);
  grid-template-columns: minmax(0, 1fr) calc(clamp(260px, 23.65vw, 454px) * 2 + var(--gap));
  gap: 5vw;
  align-items: start;
  margin-inline: auto;
}

.p-service__side {
  position: sticky;
  top: 120px;
}

.p-service__side h2 {
  margin-top: clamp(5px, 0.375vw, 7px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.52;
  letter-spacing: 0;
}

.p-service__side p {
  margin-top: clamp(24px, 2.6vw, 50px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  letter-spacing: 0;
}

.p-service__side .c-btn {
  min-width: clamp(240px, 14.9vw, 286px);
  margin-top: clamp(32px, 3vw, 56px);
  padding-block: clamp(8px, 1.825vw - 20px, 15px);
  justify-content: space-between;
}

.p-service__list {
  display: grid;
  gap: var(--gap);
}

.p-service__list > li {
  container-type: inline-size;
}

.p-svc {
  --pl: clamp(24px, 8cqi, 76px);
  --pr: clamp(20px, 4cqi, 38px);
  position: relative;
  display: block;
  padding: clamp(24px, 4.2cqi, 40px) var(--pr) clamp(32px, 10cqi, 96px) var(--pl);
  border-radius: var(--inner-r);
  background: #fff;
  color: var(--ink);
  transition: transform 0.6s ease, box-shadow 0.6s ease;
}

.p-svc:hover,
.p-svc:focus-visible {
  box-shadow: 0 24px 48px -24px rgba(16, 24, 40, 0.3);
  transform: translateY(-6px);
}

.p-svc__en {
  --go: clamp(52px, 9cqi, 84px);
  padding-right: var(--go);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: min(80px, (100cqi - var(--pl) - var(--pr) - var(--go)) / 8.8);
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
  letter-spacing: 0;
}

.p-svc__ja {
  margin-top: 0.3em;
  font-size: clamp(16px, 2.3cqi, 22px);
  font-weight: 700;
  line-height: 1.5;
  color: #d6363a;
  letter-spacing: 0;
}

.p-svc__ja::after {
  display: block;
  width: clamp(40px, 6cqi, 56px);
  height: 3px;
  margin-top: clamp(16px, 2.8cqi, 27px);
  background: var(--ink);
  content: "";
}

.p-svc__body {
  display: grid;
  margin-top: clamp(24px, 4.7cqi, 45px);
  grid-template-columns: clamp(116px, 21cqi, 200px) minmax(0, 1fr);
  gap: 20px clamp(20px, 3.4cqi, 32px);
  align-items: start;
}

.p-svc__img {
  display: block;
  width: 100%;
  height: auto;
}

.p-svc__title {
  font-family: var(--f-gothic);
  font-size: clamp(20px, 4cqi, 38px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0;
  font-feature-settings: normal;
}

.p-svc__text {
  margin-top: clamp(12px, 2.3cqi, 22px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  letter-spacing: 0;
}

.p-svc__tags {
  display: flex;
  margin-top: clamp(16px, 2.5cqi, 24px);
  flex-wrap: wrap;
  gap: 8px 11px;
}

.p-svc__tags li {
  display: inline-flex;
  padding: 8px 9px;
  border-radius: 999px;
  background: #263039;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  line-height: 17px;
  color: #fff;
  letter-spacing: 0;
  align-items: center;
}

.p-svc__go {
  position: absolute;
  top: clamp(20px, 4cqi, 38px);
  right: var(--pr);
  display: grid;
  width: clamp(44px, 8cqi, 76px);
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #d6363a;
  color: #d6363a;
  place-items: center;
  aspect-ratio: 1;
}

.p-svc__go svg {
  width: 30%;
  height: auto;
}

.p-svc:is(:hover, :focus-visible) .p-svc__go {
  background: #d6363a;
  color: #fff;
}

@container (max-width: 860px) {
  .p-svc__text br.pc {
    display: none;
  }
}
@container (max-width: 560px) {
  .p-svc__body {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-svc__img {
    width: min(152px, 46%);
  }
}
@media screen and (max-width: 960px) {
  .p-service__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }
  .p-service__side {
    display: contents;
  }
  .p-service__side .c-label {
    justify-self: start;
  }
  .p-service__list {
    margin-top: clamp(32px, 6vw, 48px);
  }
  .p-service__side .c-btn {
    margin-top: clamp(32px, 6vw, 48px);
    order: 1;
    justify-self: start;
  }
}
@media screen and (max-width: 640px) {
  .p-service {
    padding-block: 3em;
  }
  .p-svc__img {
    margin-inline: auto;
  }
  .p-svc__title {
    text-align: center;
  }
  .p-svc__tags {
    display: block;
    text-align: center;
    margin-inline: -4px;
  }
  .p-svc__tags li {
    display: inline-block;
    margin: 4px;
    vertical-align: top;
    white-space: nowrap;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-service {
    background: var(--sheet);
  }
  :root:not([data-theme=light]) .p-svc {
    background: var(--paper);
  }
}
:root[data-theme=dark] .p-service {
  background: var(--sheet);
}

:root[data-theme=dark] .p-svc {
  background: var(--paper);
}

.p-svc__img :is([class^=a-]) {
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  transform-box: view-box;
}

.p-svc__img .a-mag {
  transform-origin: 88px 104px;
  animation-name: svcMag;
  animation-duration: 2.4s;
}

.p-svc__img--1 .a-head {
  transform-origin: 98px 64px;
  animation-name: svcTilt;
  animation-duration: 3.2s;
}

.p-svc__img :is(.a-ava1, .a-ava2, .a-ava3) {
  transform-origin: center;
  animation-name: svcPop;
  animation-duration: 3s;
  animation-direction: normal;
  transform-box: fill-box;
}

.p-svc__img .a-ava2 {
  animation-delay: 0.3s;
}

.p-svc__img .a-ava3 {
  animation-delay: 0.6s;
}

.p-svc__img .a-rbody {
  animation-name: svcBob;
  animation-duration: 1.2s;
}

.p-svc__img .a-rhead {
  transform-origin: 205px 144px;
  animation-name: svcRHead;
  animation-duration: 1.2s;
}

.p-svc__img .a-rarm {
  transform-origin: 205px 160px;
  animation-name: svcRArm;
  animation-duration: 1.2s;
}

.p-svc__img .a-hello {
  transform-origin: 30% 100%;
  animation-name: svcHello;
  animation-duration: 5s;
  animation-direction: normal;
  transform-box: fill-box;
}

.p-svc__img :is(.a-cb1, .a-cb2, .a-cb3, .a-cb4) {
  animation-name: svcChat;
  animation-duration: 6s;
  animation-direction: normal;
  animation-fill-mode: both;
}

.p-svc__img .a-cb1 {
  transform-origin: 83px 74px;
}

.p-svc__img .a-cb2 {
  transform-origin: 101px 97px;
  animation-delay: 0.6s;
}

.p-svc__img .a-cb3 {
  transform-origin: 92px 126px;
  animation-delay: 1.2s;
}

.p-svc__img .a-cb4 {
  transform-origin: 95px 158px;
  animation-delay: 1.8s;
}

.p-svc__img .a-plant {
  transform-origin: 25px 212px;
  animation-name: svcSway;
  animation-duration: 2.8s;
}

.p-svc__img .a-legA {
  transform-origin: 152px 140px;
  animation-name: svcLeg;
  animation-duration: 1.4s;
}

.p-svc__img .a-legB {
  transform-origin: 146px 146px;
  animation-name: svcLeg;
  animation-duration: 1.4s;
  animation-delay: -0.7s;
}

.p-svc__img .a-phead {
  transform-origin: 136px 97px;
  animation-name: svcTilt;
  animation-duration: 2.6s;
}

.p-svc__img .a-ball {
  transform-origin: center;
  animation-name: svcSqueeze;
  animation-duration: 0.7s;
  transform-box: fill-box;
}

.p-svc__img .a-tube {
  transform-origin: 72px 108px;
  animation-name: svcTube;
  animation-duration: 1.6s;
}

.p-svc__img .a-nhead {
  transform-origin: 79px 74px;
  animation-name: svcTilt;
  animation-duration: 3.4s;
  animation-delay: -1s;
}

.p-svc__img .a-marm {
  transform-origin: 176px 124px;
  animation-name: svcGesture;
  animation-duration: 1.1s;
}

.p-svc__img .a-mhead {
  transform-origin: 186px 110px;
  animation-name: svcTilt;
  animation-duration: 2.2s;
}

.p-svc__img .a-wleg {
  transform-origin: 62px 162px;
  animation-name: svcFoot;
  animation-duration: 1.5s;
}

.p-svc__img .a-whead {
  transform-origin: 57px 112px;
  animation-name: svcNod;
  animation-duration: 2.8s;
}

.p-svc__img :is(.a-bub1, .a-bub2) {
  animation-name: svcFloat;
  animation-duration: 2.4s;
}

.p-svc__img .a-bub2 {
  animation-delay: -1.2s;
}

@keyframes svcMag {
  from {
    transform: rotate(-9deg);
  }
  to {
    transform: rotate(9deg);
  }
}
@keyframes svcTilt {
  from {
    transform: rotate(-6deg);
  }
  to {
    transform: rotate(6deg);
  }
}
@keyframes svcNod {
  from {
    transform: rotate(-2deg);
  }
  to {
    transform: rotate(8deg);
  }
}
@keyframes svcPop {
  0%, 40%, 100% {
    transform: scale(1);
  }
  18% {
    transform: scale(1.45);
  }
}
@keyframes svcBob {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-6px);
  }
}
@keyframes svcRHead {
  from {
    transform: translateY(0) rotate(-9deg);
  }
  to {
    transform: translateY(-6px) rotate(8deg);
  }
}
@keyframes svcRArm {
  from {
    transform: translateY(0) rotate(8deg);
  }
  to {
    transform: translateY(-6px) rotate(-13deg);
  }
}
@keyframes svcHello {
  0% {
    transform: scale(0);
  }
  8% {
    transform: scale(1.2);
  }
  12%, 84% {
    transform: scale(1);
  }
  92%, 100% {
    transform: scale(0);
  }
}
@keyframes svcChat {
  0% {
    transform: scale(0);
  }
  8% {
    transform: scale(1.18);
  }
  11%, 82% {
    transform: scale(1);
  }
  92%, 100% {
    transform: scale(0);
  }
}
@keyframes svcSway {
  from {
    transform: rotate(-9deg);
  }
  to {
    transform: rotate(9deg);
  }
}
@keyframes svcLeg {
  from {
    transform: rotate(1deg);
  }
  to {
    transform: rotate(-7deg);
  }
}
@keyframes svcSqueeze {
  from {
    transform: scale(1.05);
  }
  to {
    transform: scale(0.65);
  }
}
@keyframes svcTube {
  from {
    transform: rotate(-18deg);
  }
  to {
    transform: rotate(18deg);
  }
}
@keyframes svcGesture {
  from {
    transform: rotate(-8deg);
  }
  to {
    transform: rotate(17deg);
  }
}
@keyframes svcFoot {
  from {
    transform: rotate(1deg);
  }
  to {
    transform: rotate(-9deg);
  }
}
@keyframes svcFloat {
  from {
    transform: translateY(2px);
  }
  to {
    transform: translateY(-11px);
  }
}
@media screen and (min-width: 961px) {
  .p-svc__body {
    display: block;
  }
  .p-svc__main {
    padding-right: 25cqi;
  }
  .p-svc__img {
    position: absolute;
    right: var(--pr);
    bottom: clamp(20px, 3.4cqi, 36px);
    width: 21cqi;
  }
}
.p-reason {
  position: relative;
  overflow: clip;
  background: var(--sheet);
  color: var(--ink);
}

.p-reason__back {
  position: absolute;
  top: calc(var(--sec) - 0.5em);
  right: -0.04em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(80px, 11vw, 210px);
  font-style: italic;
  line-height: 1;
  color: color-mix(in srgb, var(--ink) 5%, transparent);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-reason__inner {
  position: relative;
  width: min(1532px, 100% - var(--gutter) * 2);
  word-break: normal;
  margin-inline: auto;
  line-break: strict;
}

@media screen and (max-width: 640px) {
  .p-reason__inner {
    width: 85%;
  }
}
.p-reason__head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 72px;
  align-items: end;
}

.p-reason__head h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-reason__head p {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-reason__list {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  gap: clamp(16px, 2vw, 32px);
}

.p-reason__item {
  --cover: 0;
  position: sticky;
  top: calc(clamp(96px, 6.25vw, 120px) + var(--i) * clamp(14px, 1.5vw, 28px));
  display: grid;
  overflow: hidden;
  padding: clamp(28px, 6vw, 115px);
  border-radius: var(--inner-r);
  background: linear-gradient(35deg, transparent 0%, #2d3842 46%), radial-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 1.6px) 0 0/14px 14px, #2d3842;
  box-shadow: 0 -24px 48px -32px rgba(14, 22, 36, 0.35);
  color: #fff;
  transform: scale(calc(1 - var(--cover) * 0.05));
  transform-origin: 50% 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: clamp(28px, 4.2vw, 80px);
  isolation: isolate;
}

.p-reason__item::after {
  position: absolute;
  z-index: 2;
  border-radius: inherit;
  background: #10161c;
  pointer-events: none;
  content: "";
  opacity: calc(var(--cover) * 0.5);
  inset: 0;
}

.p-reason__main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.p-reason__meta {
  display: flex;
  padding-bottom: clamp(14px, 1.2vw, 22px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.p-reason__en {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: var(--fs-label);
  font-weight: 700;
  line-height: 1.2;
  color: #e0484c;
  letter-spacing: 0.01em;
  order: -1;
}

.p-reason__no {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(15px, 1.05vw, 20px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-reason__no small {
  margin-left: 0.2em;
  font-size: 1em;
  color: rgba(255, 255, 255, 0.4);
}

.p-reason__kanji {
  margin-top: auto;
  padding-top: clamp(32px, 3vw, 56px);
  background: linear-gradient(180deg, #fff 55%, #c3cad1 100%);
  -webkit-background-clip: text;
  background-clip: text;
  font-family: var(--f-mincho);
  font-size: clamp(92px, 10.4vw, 200px);
  font-weight: 800;
  line-height: 1;
  color: transparent;
  letter-spacing: 0.04em;
}

.p-reason__title {
  margin-top: clamp(20px, 1.9vw, 36px);
  font-family: var(--f-gothic);
  font-size: clamp(20px, 1.56vw, 30px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-reason__text {
  margin-top: clamp(12px, 1.1vw, 20px);
  font-size: max(var(--fs-min), 15px);
  font-weight: 500;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.76);
  letter-spacing: 0;
}

.p-reason__fig {
  overflow: hidden;
  min-width: 0;
  border-radius: calc(var(--inner-r) - 4px);
}

.p-reason__fig img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-reason__main,
.p-reason__fig {
  opacity: 0;
  transition: opacity 1s ease, transform 1s var(--ease);
  transform: translateY(24px);
}

.p-reason__fig {
  transition-delay: 0.15s;
}

.p-reason__item.is-in .p-reason__main,
.p-reason__item.is-in .p-reason__fig {
  opacity: 1;
  transform: none;
}

.rf {
  position: relative;
  overflow: visible;
  width: 100%;
  height: auto;
}

.rf text {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  fill: rgba(255, 255, 255, 0.9);
  text-anchor: middle;
}

.rf .rf__cap {
  fill: rgba(255, 255, 255, 0.5);
}

.rf .rf__label {
  font-size: 10px;
  fill: rgba(255, 255, 255, 0.7);
}

.rf .rf__tag {
  font-size: 13px;
}

.rf__ring {
  transform-origin: center;
  animation: rfSpin 50s linear infinite;
  fill: none;
  stroke: rgba(255, 255, 255, 0.2);
  stroke-width: 1;
  stroke-dasharray: 3 6;
  transform-box: fill-box;
}

.rf__screen {
  fill: #2d3842;
  stroke: rgba(255, 255, 255, 0.5);
  stroke-width: 1.5;
}

.rf__frame {
  fill: #2d3842;
  stroke: rgba(255, 255, 255, 0.4);
  stroke-width: 1.5;
}

.rf__frame--red {
  stroke: #d6363a;
}

.rf__ln {
  fill: none;
  stroke: rgba(255, 255, 255, 0.6);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rf__ln--red {
  fill: none;
  stroke: #d6363a;
  stroke-width: 2;
  stroke-linecap: round;
}

.rf__fill {
  fill: rgba(255, 255, 255, 0.16);
}

.rf__fill--red,
.rf__mark--red,
.rf__star {
  fill: #d6363a;
}

.rf__mark,
.rf__dots circle {
  fill: rgba(255, 255, 255, 0.45);
}

.is-in .rf__card .rf__frame {
  animation: rfFrame 4s ease infinite;
  animation-delay: calc(var(--d) * 1s);
}

@keyframes rfFrame {
  0%, 30%, 100% {
    stroke: rgba(255, 255, 255, 0.4);
  }
  8%, 22% {
    stroke: #d6363a;
  }
}
.rf__star {
  transform-origin: center;
  transform-box: fill-box;
}

.is-in .rf__star {
  animation: rfTwinkle 1.6s ease-in-out infinite alternate;
}

@keyframes rfTwinkle {
  from {
    transform: scale(0.6) rotate(0deg);
  }
  to {
    transform: scale(1.1) rotate(45deg);
  }
}
.rf__check {
  opacity: 0;
  transition: opacity 0.4s 2.1s ease, transform 0.8s 2.1s cubic-bezier(0.3, 1.6, 0.5, 1);
  transform: scale(0.4);
  transform-origin: center;
  transform-box: fill-box;
}

.rf__check circle {
  fill: #fff;
}

.rf__check path {
  fill: none;
  stroke: #d6363a;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.is-in .rf__check {
  opacity: 1;
  transform: none;
}

.rf__mark--red {
  transform-origin: center;
  transform-box: fill-box;
}

.is-in .rf__cal .rf__mark--red {
  animation: rfTwinkle 1.2s ease-in-out infinite alternate;
}

.rf__ring--in {
  animation-duration: 30s;
  animation-direction: reverse;
  stroke: rgba(255, 255, 255, 0.14);
}

.rf__pulse {
  opacity: 0;
  transform-origin: center;
  fill: none;
  stroke: #d6363a;
  stroke-width: 1.5;
  transform-box: fill-box;
}

.is-in .rf__pulse {
  animation: rfPulse 2.4s ease-out infinite;
}

.rf__pill rect {
  fill: #263039;
  stroke: rgba(255, 255, 255, 0.4);
  stroke-width: 1;
}

.is-in .rf__pill rect {
  animation: rfLight 4s ease infinite;
  animation-delay: calc(var(--d) * 1s);
}

@keyframes rfLight {
  0%, 30%, 100% {
    fill: #263039;
    stroke: rgba(255, 255, 255, 0.4);
  }
  8%, 22% {
    fill: #d6363a;
    stroke: #d6363a;
  }
}
@keyframes rfSpin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes rfPulse {
  from {
    opacity: 0.9;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(2.6);
  }
}
.rf__flow path {
  fill: none;
  stroke: #d6363a;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 0 0.12;
}

.is-in .rf__flow path {
  animation: rfFlow 1.2s linear infinite;
}

@keyframes rfFlow {
  from {
    stroke-dashoffset: 0.24;
  }
  to {
    stroke-dashoffset: 0;
  }
}
.rf__core {
  fill: #263039;
  stroke: #fff;
  stroke-width: 1.5;
}

.rf__dot {
  fill: #d6363a;
}

.rf--2 .rf__cap {
  text-anchor: start;
}

.rf__grid path {
  fill: none;
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 1;
}

.rf__grid .rf__axis {
  stroke: rgba(255, 255, 255, 0.32);
}

.rf__base {
  fill: none;
  stroke: rgba(255, 255, 255, 0.45);
  stroke-width: 1.5;
  stroke-dasharray: 3 5;
}

.rf__line,
.rf__key {
  fill: none;
  stroke: #d6363a;
  stroke-width: 3;
  stroke-linecap: round;
}

.rf__line {
  transition: stroke-dashoffset 1.8s 0.3s cubic-bezier(0.45, 0, 0.2, 1);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.rf__spark {
  opacity: 0;
  fill: none;
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 0.08 0.92;
  stroke-dashoffset: 0.08;
}

.is-in .rf__spark {
  opacity: 1;
  animation: rfSpark 2.6s 2.2s cubic-bezier(0.45, 0, 0.2, 1) infinite;
}

@keyframes rfSpark {
  from {
    stroke-dashoffset: 0.08;
  }
  to {
    stroke-dashoffset: -0.92;
  }
}
.rf__area {
  opacity: 0;
  transition: opacity 1.2s 1.4s ease;
  fill: rgba(214, 54, 58, 0.12);
}

.rf__end {
  opacity: 0;
  transition: opacity 0.5s 2s ease;
  fill: #d6363a;
  stroke: #fff;
  stroke-width: 2;
}

.rf__legend text {
  text-anchor: start;
  fill: rgba(255, 255, 255, 0.6);
}

.is-in .rf__line {
  stroke-dashoffset: 0;
}

.is-in .rf__area,
.is-in .rf__end {
  opacity: 1;
}

.rf__orbit {
  transform-origin: center;
  animation: rfSpin 4s linear infinite;
  fill: none;
  stroke: #d6363a;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 0.16 0.84;
  transform-box: fill-box;
  rotate: -90deg;
}

.rf__bars rect {
  transform: scaleY(0);
  transform-origin: 50% 100%;
  fill: rgba(255, 255, 255, 0.3);
  transform-box: fill-box;
}

.rf__bars .is-now {
  fill: #d6363a;
}

.is-in .rf__bars rect {
  animation: rfGrow 4s var(--ease) infinite;
  animation-delay: calc(var(--d) * 0.12s);
}

@keyframes rfGrow {
  0% {
    transform: scaleY(0);
  }
  30%, 86% {
    transform: none;
  }
  100% {
    transform: scaleY(0);
  }
}
.rf__axis-line {
  stroke: rgba(255, 255, 255, 0.32);
  stroke-width: 1;
}

@media (prefers-reduced-motion: reduce) {
  .rf__bars rect,
  .rf__line {
    transform: none;
    stroke-dashoffset: 0;
  }
  .rf__area,
  .rf__end {
    opacity: 1;
  }
}
@media screen and (max-width: 960px) {
  .p-reason__head {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-reason__item {
    position: relative;
    top: auto;
    transform: none;
    grid-template-columns: minmax(0, 1fr);
  }
  .p-reason__item::after {
    display: none;
  }
  .rf {
    width: min(100%, 480px);
  }
}
@media screen and (max-width: 640px) {
  .p-reason__item {
    padding: 28px 20px 20px;
  }
  .rf {
    width: 100%;
  }
}
.p-blog__inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-blog__inner {
    width: 85%;
  }
}
.p-blog__head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 28px 72px;
}

.p-blog__head h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-blog__head .c-btn {
  min-width: clamp(240px, 14.9vw, 286px);
  padding-block: clamp(8px, 1.825vw - 20px, 15px);
  justify-content: space-between;
}

.p-blog__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2.08vw, 40px);
}

.p-blog__list > li {
  display: grid;
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
}

.p-blog__list.is-in > li {
  opacity: 1;
  transform: none;
}

.p-post {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  border-radius: var(--inner-r);
  color: var(--ink);
  clip-path: inset(0 round var(--inner-r));
}

.p-post__thumb {
  position: relative;
  overflow: hidden;
  background: #263039;
  isolation: isolate;
  aspect-ratio: 16/9;
}

.p-post__thumb::before {
  position: absolute;
  z-index: -1;
  background: var(--thumb) center/cover no-repeat;
  content: "";
  transition: transform 1s var(--ease);
  inset: -12%;
  filter: blur(18px) saturate(1.15) brightness(0.92);
}

.p-post__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  transition: transform 1s var(--ease);
  -o-object-fit: contain;
     object-fit: contain;
}

.p-post:hover .p-post__thumb::before {
  transform: scale(1.05);
}

.p-post__ph {
  position: absolute;
  display: grid;
  background: radial-gradient(70% 60% at 100% 0%, rgba(214, 54, 58, 0.22), transparent 70%), #263039;
  transition: transform 1s var(--ease);
  inset: 0;
  place-items: center;
}

.p-post__ph::before {
  position: absolute;
  background-image: radial-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1.6px);
  background-size: 14px 14px;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(60% 70% at 50% 50%, #000, transparent);
          mask-image: radial-gradient(60% 70% at 50% 50%, #000, transparent);
}

.p-post__ph svg {
  position: relative;
  width: clamp(56px, 5vw, 88px);
}

.p-post__ph circle {
  fill: none;
  stroke: #fff;
  stroke-width: 3;
}

.p-post__ph .is-dot {
  fill: #d6363a;
  stroke: none;
}

.p-post__body {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 1.8vw, 32px) clamp(20px, 1.8vw, 32px) clamp(24px, 2vw, 36px);
  background: #f4f5f7;
  flex: 1 1;
}

.p-post__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}

.p-post__meta time {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: max(var(--fs-min), 15px);
  letter-spacing: 0.04em;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-post__cat {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: 999px;
  background: #263039;
  font-size: max(var(--fs-min), 13px);
  font-weight: 700;
  line-height: 16px;
  color: #fff;
  align-items: center;
}

.p-post__title {
  margin-top: clamp(12px, 1vw, 18px);
  padding-right: 48px;
  font-family: var(--f-gothic);
  font-size: clamp(17px, 1.2vw, 22px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0;
  transition: opacity 0.6s ease;
}

.p-post__go {
  position: absolute;
  right: clamp(20px, 1.8vw, 32px);
  bottom: clamp(24px, 2vw, 36px);
  display: grid;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #d6363a;
  color: #fff;
  place-items: center;
}

.p-post__go svg {
  width: 13px;
  height: 13px;
}

.p-post:hover .p-post__thumb img,
.p-post:hover .p-post__ph {
  transform: scale(1.05);
}

.p-post:hover .p-post__title,
.p-post:focus-visible .p-post__title {
  opacity: 0.55;
}

.p-blog__empty {
  margin-top: clamp(40px, 4.2vw, 80px);
  padding: 40px;
  border-radius: var(--inner-r);
  background: #f4f5f7;
  color: var(--mute);
}

@media screen and (max-width: 960px) {
  .p-blog__inner {
    display: grid;
  }
  .p-blog__head {
    display: contents;
  }
  .p-blog__head > .c-btn {
    margin-top: clamp(32px, 6vw, 48px);
    order: 1;
    justify-self: start;
  }
  .p-blog__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 640px) {
  .p-blog__list {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-post__body,
  :root:not([data-theme=light]) .p-blog__empty {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
}
:root[data-theme=dark] .p-post__body,
:root[data-theme=dark] .p-blog__empty {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

@media screen and (max-width: 640px) {
  .hs__wrap {
    padding-bottom: 3em;
  }
}
.p-sd {
  --sd-face: #f4f5f7;
  --sd-card: #fff;
  --sd-tile: #f4f5f7;
  --sd-tile-hover: #e9ebef;
  --sd-ic: #eef0f3;
  --sd-gap: clamp(16px, 2.08vw, 40px);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-sd {
    --sd-face: var(--sheet);
    --sd-card: var(--paper);
    --sd-tile: color-mix(in srgb, var(--ink) 8%, var(--paper));
    --sd-tile-hover: color-mix(in srgb, var(--ink) 14%, var(--paper));
    --sd-ic: color-mix(in srgb, var(--ink) 10%, transparent);
  }
}
:root[data-theme=dark] .p-sd {
  --sd-face: var(--sheet);
  --sd-card: var(--paper);
  --sd-tile: color-mix(in srgb, var(--ink) 8%, var(--paper));
  --sd-tile-hover: color-mix(in srgb, var(--ink) 14%, var(--paper));
  --sd-ic: color-mix(in srgb, var(--ink) 10%, transparent);
}

.p-sd-inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  :is(.p-aio-start, .p-sd-about, .p-sd-reason, .p-sd-related, .p-recruit-approach, .p-clinic-case) > .p-sd-inner {
    width: 85%;
  }
}
.p-sd-panel {
  border-radius: var(--stage-r);
  background: var(--sd-face);
  margin-inline: var(--stage-gap);
}

.p-sd-posts {
  padding-top: 0;
}

.p-sd h2 {
  margin-top: clamp(8px, 0.95vw, 18px);
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-sd :is(.p-process__head, .p-faq__side, .p-sd-related__head) h2 {
  font-size: var(--fs-h2-sm);
}

.p-sd-head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 72px;
  align-items: end;
}

.p-sd-head p {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-sd-vh {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  white-space: nowrap;
  clip-path: inset(50%);
}

.p-sd :is(.p-sd-head, .p-sd-support__side, .p-sd-related__head, .p-process__head, .p-faq__side).js-reveal .c-label {
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s var(--ease);
  transform: translateY(10px);
}
.p-sd :is(.p-sd-head, .p-sd-support__side, .p-sd-related__head, .p-process__head, .p-faq__side).js-reveal h2 {
  transition: clip-path 1.1s var(--ease) 0.08s, transform 1.1s var(--ease) 0.08s;
  transform: translateY(0.55em);
  clip-path: inset(0 0 100% 0);
}
.p-sd :is(.p-sd-head, .p-sd-support__side, .p-sd-related__head, .p-process__head, .p-faq__side).js-reveal p {
  opacity: 0;
  transition: opacity 0.9s ease 0.28s, transform 0.9s var(--ease) 0.28s;
  transform: translateY(16px);
}
.p-sd :is(.p-sd-head, .p-sd-support__side, .p-sd-related__head, .p-process__head, .p-faq__side).js-reveal.is-in :is(.c-label, p) {
  opacity: 1;
  transform: none;
}
.p-sd :is(.p-sd-head, .p-sd-support__side, .p-sd-related__head, .p-process__head, .p-faq__side).js-reveal.is-in h2 {
  transform: none;
  clip-path: inset(-0.2em -0.1em -0.2em -0.1em);
}

.p-sd-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(24px, 2vw, 40px) clamp(24px, 2vw, 40px) clamp(28px, 2.4vw, 48px);
  border-radius: var(--inner-r);
  background: var(--sd-card);
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
}

.p-sd-card--tile {
  background: var(--sd-tile);
}

.is-in .p-sd-card {
  opacity: 1;
  transform: none;
}

.p-sd-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.p-sd-card__no {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(40px, 3.4vw, 64px);
  font-weight: 400;
  line-height: 1;
  color: color-mix(in srgb, var(--ink) 22%, transparent);
  letter-spacing: -0.02em;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-sd-card__title {
  margin-top: clamp(28px, 2.6vw, 48px);
  font-family: var(--f-gothic);
  font-size: clamp(19px, 1.35vw, 26px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-sd-card__text {
  margin-top: clamp(14px, 1.2vw, 20px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  text-align: justify;
  text-justify: inter-character;
  letter-spacing: 0;
  text-wrap: pretty;
  word-break: normal;
  line-break: strict;
}
.p-sd-card__text .nw {
  white-space: normal;
}

.p-sd-ic {
  display: grid;
  width: clamp(76px, 5.6vw, 108px);
  border-radius: 50%;
  background: var(--sd-ic);
  color: var(--ink);
  place-items: center;
  flex: none;
  aspect-ratio: 1;
}

.p-sd-card--tile .p-sd-ic {
  background: var(--sd-card);
}

.p-sd-ic svg {
  overflow: visible;
  width: 58%;
  height: auto;
}

.p-sd-ic svg * {
  transition: stroke-dashoffset 1.2s cubic-bezier(0.45, 0, 0.2, 1);
  transition-delay: calc(0.4s + var(--i) * 0.2s);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.p-sd-ic .is-accent {
  transition-delay: calc(0.9s + var(--i) * 0.2s);
  stroke: #e0484c;
}

.is-in .p-sd-ic svg * {
  stroke-dashoffset: 0;
}

@media screen and (max-width: 960px) {
  .p-sd-head {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-sd-panel {
    padding-block: 3em;
  }
  .p-sd-card__text {
    text-align: start;
  }
}
.p-sd-hero {
  padding: var(--stage-gap);
}

.p-sd-hero__stage {
  position: relative;
  display: grid;
  overflow: hidden;
  min-height: var(--panel-h);
  padding: clamp(120px, 8.6vw, 168px) 6% clamp(56px, 5vw, 96px) 8%;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.3), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.7fr);
  gap: 4vw;
  align-items: center;
}

.p-sd-hero__stage::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
}

.p-sd-hero__stage::after {
  position: absolute;
  z-index: -1;
  background: repeating-radial-gradient(circle at 76% 54%, transparent 0 95px, rgba(255, 255, 255, 0.07) 95px 96px);
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(46% 78% at 76% 54%, #000 30%, transparent 100%);
          mask-image: radial-gradient(46% 78% at 76% 54%, #000 30%, transparent 100%);
}

.p-sd-hero__back {
  position: absolute;
  z-index: -1;
  bottom: -0.24em;
  left: -0.03em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(80px, 13vw, 250px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.04);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-sd-crumb ol {
  display: flex;
  font-size: max(var(--fs-min), 13px);
  font-weight: 500;
  line-height: 1.6;
  flex-wrap: wrap;
  gap: 0 0.9em;
}

.p-sd-crumb li + li::before {
  margin-right: 0.9em;
  color: rgba(255, 255, 255, 0.4);
  content: "/";
}

.p-sd-crumb a {
  transition: color 0.3s ease;
}

.p-sd-crumb a:hover {
  color: #e0484c;
}

.p-sd-crumb [aria-current] {
  font-weight: 700;
}

.p-sd-hero__en {
  margin-top: clamp(28px, 3.2vw, 60px);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(18px, 1.46vw, 28px);
  font-weight: 700;
  line-height: 1.2;
  color: #e0484c;
  letter-spacing: 0.01em;
  animation: fade 1.2s 0.1s var(--ease) both;
}

.p-sd-hero__title {
  margin-top: clamp(12px, 1.1vw, 20px);
  font-family: var(--f-gothic);
  font-weight: 700;
  letter-spacing: 0;
}

.p-sd-hero__title > span {
  display: block;
}

.p-sd-hero__catch {
  font-size: clamp(20px, 1.88vw, 36px);
  line-height: 1.5;
  animation: fade 1.2s 0.2s var(--ease) both;
}

.p-sd-hero__key {
  margin-top: 0.28em;
  font-size: clamp(40px, 4.7vw, 90px);
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
}

.p-sd-hero__band {
  display: inline-block;
  padding: 0 0.14em 0.04em;
  background: linear-gradient(#fff, #fff) no-repeat 0 0/0% 100%;
  color: #0e1624;
  white-space: nowrap;
  animation: band 0.8s 0.35s var(--ease) forwards;
}

.p-sd-hero__sub {
  margin-top: 0.2em;
  font-size: clamp(26px, 2.9vw, 56px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  font-feature-settings: "palt";
}

.p-sd-hero__sub .p-sd-hero__band {
  animation-delay: 0.5s;
}

.p-sd-hero__br {
  display: none;
}

.p-sd-hero__band:has(+ .p-sd-hero__br) {
  padding-right: 0;
}

.p-sd-hero__br + .p-sd-hero__band {
  padding-left: 0;
  animation-delay: 0.6s;
}

.p-sd-hero__br + .p-sd-hero__band ~ .p-sd-hero__band {
  animation-delay: 0.85s;
}

.p-sd-hero__br--always {
  display: inline;
}

.p-sd-hero__band:has(+ .p-sd-hero__br--always),
.p-sd-hero__br--always + .p-sd-hero__band {
  padding-inline: 0.14em;
}

.p-sd-hero__band--narrow {
  display: none;
}

.p-sd-hero__key .p-sd-hero__band--wide + .p-sd-hero__band--narrow {
  animation-delay: 0.6s;
}

@media screen and (max-width: 960px) {
  .p-sd-hero__band--wide {
    display: none;
  }
  .p-sd-hero__band--narrow {
    display: inline-block;
  }
}
.p-sd-hero__band .k-s {
  margin-inline: -0.1em -0.09em;
}

.p-sd-hero__band .k-t {
  margin-inline: -0.07em -0.08em;
}

.p-sd-hero__band--tight .k-s {
  margin-inline: -0.16em -0.14em;
}

.p-sd-hero__band--tight .k-t {
  margin-inline: -0.05em 0.02em;
}

.p-sd-hero__lead {
  margin-top: clamp(24px, 2.3vw, 44px);
  font-size: max(var(--fs-min), clamp(14px, 0.94vw, 18px));
  font-weight: 700;
  line-height: 1.88;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0;
  animation: fade 1.2s 0.65s var(--ease) both;
}

.p-sd-hero__cta {
  display: flex;
  margin-top: clamp(28px, 2.5vw, 48px);
  animation: fade 1.2s 0.8s var(--ease) both;
  flex-wrap: wrap;
  gap: 14px 16px;
}

.p-sd-hero__cta .c-btn {
  padding-block: clamp(8px, 1.825vw - 20px, 15px);
  justify-content: space-between;
}

.p-sd-hero__cta .c-btn--signal::before {
  background: #fff;
}

.p-sd-hero__cta .c-btn--signal:hover {
  color: #0e1624;
}

.p-sd-hero__cta .c-btn--signal:hover .c-btn__ico {
  background: #d6363a;
  color: #fff;
}

.p-sd-hero__cta .c-btn--ink .c-btn__ico svg {
  animation: sdHintDown 2.4s ease-in-out infinite;
}

@keyframes sdHintDown {
  0%, 60%, 100% {
    transform: none;
  }
  30% {
    transform: translateX(3px);
  }
}
body:has(.p-sd-hero) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) {
  color: #fff;
}

body:has(.p-sd-hero) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__svg {
  content: url("images/common/logo-white.svg");
}

.p-sd-chat {
  position: relative;
  width: min(100%, 620px);
  margin: 0 auto;
  color: #0e1624;
  animation: sdChatIn 1.4s 0.3s var(--ease) both;
  rotate: -3deg;
}

@keyframes sdChatIn {
  from {
    opacity: 0.001;
    transform: translateY(40px) rotate(4deg);
  }
}
.p-sd-chat__card {
  padding: clamp(18px, 1.5vw, 28px);
  border-radius: var(--inner-r);
  background: #fff;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7);
}

.p-sd-chat__bar {
  display: flex;
  padding-bottom: 16px;
  border-bottom: 1px solid #e2e6ec;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  align-items: center;
  gap: 12px;
}

.p-sd-chat__bar i {
  display: flex;
  margin-left: auto;
  font-family: var(--f-gothic);
  font-size: 13px;
  font-weight: 500;
  font-style: normal;
  color: #5a6474;
  align-items: center;
  gap: 8px;
}

.p-sd-chat__bar i::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #21a36b;
  content: "";
}

.p-sd-chat__ava,
.p-sd-chat__ai {
  display: grid;
  width: 32px;
  border-radius: 50%;
  background: #0e1624;
  place-items: center;
  flex: none;
  aspect-ratio: 1;
}

.p-sd-chat__ava::after,
.p-sd-chat__ai::after {
  width: 30%;
  border-radius: 50%;
  background: #d42a2f;
  content: "";
  aspect-ratio: 1;
}

.p-sd-chat__ai {
  width: 28px;
  border: 1.5px solid #0e1624;
  background: none;
}

.p-sd-chat__q {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 88%;
  margin: 18px 0 0 auto;
  padding: 12px 18px;
  border-radius: 20px 20px 4px 20px;
  background: #d42a2f;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  color: #fff;
}

.p-sd-chat__a {
  display: grid;
  margin-top: 18px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
}

.p-sd-chat__lines {
  display: grid;
  padding: 18px 20px;
  border-radius: 4px 20px 20px 20px;
  background: #eef1f5;
  gap: 10px;
}

.p-sd-chat__lines i {
  height: 8px;
  border-radius: 4px;
  background: #c9d0da;
  transform-origin: left center;
  animation: sdLine 0.9s var(--ease) both;
}

.p-sd-chat__lines i:nth-child(1) {
  animation-delay: 1s;
}

.p-sd-chat__lines i:nth-child(2) {
  width: 86%;
  animation-delay: 1.15s;
}

.p-sd-chat__lines i:nth-child(3) {
  width: 58%;
  animation-delay: 1.3s;
}

@keyframes sdLine {
  from {
    transform: scaleX(0);
  }
}
.p-sd-chat__ad {
  position: relative;
  display: grid;
  margin: 16px 0 0 40px;
  padding: 26px 16px 16px;
  border: 1.5px solid #d42a2f;
  border-radius: calc(var(--inner-r) - 4px);
  background: #fff;
  box-shadow: 0 16px 32px -18px rgba(212, 42, 47, 0.55);
  animation: sdAdIn 0.9s 1.7s var(--ease) both;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
}

@keyframes sdAdIn {
  from {
    opacity: 0.001;
    transform: translateY(14px) scale(0.97);
  }
}
.p-sd-chat__tag {
  position: absolute;
  top: -1.5px;
  left: 16px;
  padding: 5px 10px 6px;
  border-radius: 0 0 8px 8px;
  background: #d42a2f;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.p-sd-chat__thumb {
  display: grid;
  width: 52px;
  border-radius: calc(var(--inner-r) - 4px);
  background: linear-gradient(135deg, #e3ecfa, #fbe3e1);
  place-items: center;
  aspect-ratio: 1;
}

.p-sd-chat__thumb::after {
  width: 26%;
  border-radius: 50%;
  background: #d42a2f;
  content: "";
  aspect-ratio: 1;
}

.p-sd-chat__body {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.p-sd-chat__body b {
  overflow: hidden;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.p-sd-chat__body small {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #5a6474;
  white-space: nowrap;
}

.p-sd-chat__go {
  display: grid;
  width: 36px;
  border-radius: 50%;
  background: #d42a2f;
  color: #fff;
  place-items: center;
  aspect-ratio: 1;
}

.p-sd-chat__go svg {
  width: 36%;
  height: auto;
}

.p-sd-chat__cap {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1;
  color: #5a6474;
}

.p-sd-chat__chips li {
  position: absolute;
  display: flex;
  padding: 15.5px 20px 15.5px 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 16px 30px -12px rgba(0, 0, 0, 0.6);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  color: #0e1624;
  white-space: nowrap;
  animation: sdFloat 3.2s ease-in-out infinite alternate;
  align-items: center;
  gap: 10px;
}

.p-sd-chat__chips li::before {
  width: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e02d32 28.57%, #e36027 73.64%, #ddc01f 117.86%);
  content: "";
  aspect-ratio: 1;
}

.p-sd-chat__chips li:nth-child(1) {
  top: -22px;
  right: 9%;
}

.p-sd-chat__chips li:nth-child(2) {
  top: 44%;
  left: -9%;
  animation-delay: -1.1s;
}

.p-sd-chat__chips li:nth-child(3) {
  right: 9%;
  bottom: -22px;
  animation-delay: -2.2s;
}

@keyframes sdFloat {
  from {
    transform: translateY(5px);
  }
  to {
    transform: translateY(-7px);
  }
}
.p-sd-hero__tag {
  display: inline-block;
  margin-top: clamp(14px, 1.2vw, 22px);
  padding: 7px 14px 8px;
  border-radius: 4px;
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  font-size: max(var(--fs-min), clamp(14px, 0.94vw, 18px));
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  letter-spacing: 0.04em;
  animation: fade 1.2s 0.15s var(--ease) both;
}

.p-sd-hero__tag + .p-sd-hero__title {
  margin-top: clamp(14px, 1.2vw, 22px);
}

.p-sd-stats {
  display: flex;
  margin-top: clamp(28px, 2.5vw, 48px);
  flex-wrap: wrap;
  gap: clamp(10px, 0.9vw, 16px);
}

.p-sd-stats li {
  display: grid;
  width: clamp(104px, 7.3vw, 136px);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3);
  text-align: center;
  animation: fade 1.2s var(--ease) both;
  animation-delay: calc(0.75s + var(--i) * 0.08s);
  place-content: center;
  justify-items: center;
  gap: 4px;
  aspect-ratio: 1;
}

.p-sd-stats__label {
  font-size: max(var(--fs-min), clamp(11px, 0.73vw, 14px));
  font-weight: 700;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.8);
}

.p-sd-stats__val {
  display: flex;
  line-height: 1;
  align-items: flex-end;
  gap: 2px;
}

.p-sd-stats__val b {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(34px, 2.6vw, 50px);
  font-weight: 400;
  color: #fff;
  letter-spacing: -0.03em;
}

.p-sd-stats__val > span {
  display: grid;
  margin-bottom: 0.3em;
  font-size: max(var(--fs-min), clamp(13px, 0.9vw, 17px));
  font-weight: 700;
  line-height: 1.1;
}

.p-sd-stats__val small {
  font-size: max(var(--fs-min), 0.6em);
  color: rgba(255, 255, 255, 0.7);
}

.p-sd-stats + .p-sd-hero__cta {
  animation-delay: 1.1s;
}

.p-sd-chat__name {
  padding: 0 0.2em;
  background: linear-gradient(transparent 55%, rgba(212, 42, 47, 0.28) 55%) no-repeat 0 0/0% 100%;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  animation: sdMark 0.8s 1.6s var(--ease) forwards;
  justify-self: start;
}

@keyframes sdMark {
  to {
    background-size: 100% 100%;
  }
}
.p-sd-chat--answer .p-sd-chat__chips li:nth-child(2) {
  top: 66%;
}

.p-sd-chat--answer .p-sd-chat__thumb {
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (max-width: 960px) {
  .p-sd-hero__stage {
    min-height: 0;
    padding: clamp(104px, 15vw, 140px) 7vw clamp(56px, 10vw, 88px);
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(48px, 9vw, 80px);
  }
  .p-sd-hero__stage::after {
    background: repeating-radial-gradient(circle at 50% 76%, transparent 0 95px, rgba(255, 255, 255, 0.07) 95px 96px);
    -webkit-mask-image: radial-gradient(80% 46% at 50% 76%, #000 30%, transparent 100%);
            mask-image: radial-gradient(80% 46% at 50% 76%, #000 30%, transparent 100%);
  }
  .p-sd-hero__key {
    font-size: clamp(40px, 10.4vw, 80px);
  }
  .p-sd-hero__sub {
    font-size: clamp(26px, 6.6vw, 50px);
  }
  .p-sd-hero__catch {
    font-size: clamp(18px, 4.6vw, 30px);
  }
  .p-sd-hero__br {
    display: inline;
  }
  .p-sd-hero__band:has(+ .p-sd-hero__br),
  .p-sd-hero__br + .p-sd-hero__band {
    padding-inline: 0.14em;
  }
  .p-sd-chat {
    width: min(86%, 520px);
  }
}
@media screen and (max-width: 640px) {
  .p-sd-hero__stage {
    padding-inline: 22px 20px;
  }
  .p-sd-hero__lead {
    margin-top: 20px;
    line-height: 1.75;
  }
  .p-sd-hero__lead br {
    display: none;
  }
  .p-sd-hero__lead .nw {
    white-space: normal;
  }
  .p-sd-hero__cta {
    flex-direction: column;
    align-items: stretch;
  }
  .p-sd-hero__cta .c-btn {
    width: 100%;
    padding-left: 22px;
    font-size: 14px;
    white-space: nowrap;
    letter-spacing: 0.02em;
  }
  .p-sd-chat {
    width: 92%;
    scale: 0.85;
  }
  .p-sd-chat__q {
    font-size: 14px;
  }
  .p-sd-chat__ad {
    margin-left: 0;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    padding-inline: 12px;
  }
  .p-sd-chat__go {
    display: none;
  }
  .p-sd-chat__thumb {
    width: 44px;
  }
  .p-sd-chat__body b {
    font-size: 13px;
  }
  .p-sd-chat__chips li {
    padding: 13px 16px 13px 13px;
    font-size: 14px;
  }
  .p-sd-chat__chips li:nth-child(2) {
    top: 37%;
    left: -7%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-sd-hero__band {
    background-size: 100% 100%;
    animation: none;
  }
}
.p-sd-note {
  display: grid;
  margin-top: var(--sd-gap);
  padding: clamp(20px, 1.7vw, 32px) clamp(24px, 2vw, 40px);
  border-radius: var(--inner-r);
  background: #263039;
  color: #fff;
  transition: background-color 0.3s ease;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px clamp(16px, 2vw, 40px);
  align-items: center;
}

.p-sd-note:hover {
  background: #2d3842;
}

.p-sd-note__mk {
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.2;
  color: #e0484c;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.p-sd-note__text {
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0;
}

.p-sd-note__to {
  display: inline-flex;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  white-space: nowrap;
  align-items: center;
  gap: 12px;
}

.p-sd-note__to i {
  width: 36px;
  background: #d6363a;
  color: #fff;
  aspect-ratio: 1;
}

.p-sd-note__to svg {
  width: 36%;
  height: auto;
}

.p-sd-support__grid {
  display: grid;
  width: min(1532px, 100% - var(--gutter) * 2);
  grid-template-columns: minmax(0, 1fr) calc(clamp(260px, 23.65vw, 454px) * 2 + var(--sd-gap));
  gap: 5vw;
  align-items: start;
  margin-inline: auto;
}

.p-sd-support__side {
  position: sticky;
  top: 120px;
}

.p-sd-support__side p {
  margin-top: clamp(24px, 2.6vw, 50px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  letter-spacing: 0;
}

.p-sd-support__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-sd-support__illust {
  width: min(clamp(240px, 26vw, 480px), max(200px, 100svh - 520px));
  margin-top: clamp(24px, 2.6vw, 50px);
  opacity: 0;
  transition: opacity 1s ease 0.45s, transform 1s var(--ease) 0.45s;
  transform: translateY(24px);
}

.is-in > .p-sd-support__illust {
  opacity: 1;
  transform: none;
}

.p-sd-support__illust .p-svc__img {
  position: static;
  width: 100%;
  margin: 0;
}

.p-sd-price {
  position: relative;
  overflow: clip;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.26), transparent 70%), #263039;
  color: #fff;
  margin-inline: var(--stage-gap);
  padding-block: var(--sec);
  isolation: isolate;
}

.p-sd-price::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
}

.p-sd-price h2 {
  color: #fff;
}

.p-sd-price__list {
  --gap: clamp(16px, 2.08vw, 40px);
  display: grid;
  margin: clamp(40px, 4.2vw, 80px) 0 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap);
}

.p-sd-price__item {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: clamp(240px, 18vw, 340px);
  padding: clamp(24px, 2.3vw, 44px);
  border-radius: var(--inner-r);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  opacity: 0;
  transition: opacity 1s ease, transform 1.1s var(--ease), box-shadow 0.5s ease;
  transition-delay: calc(var(--i) * 0.14s), calc(var(--i) * 0.14s), 0s;
  transform: translateY(32px);
  isolation: isolate;
}

.is-in .p-sd-price__item {
  opacity: 1;
  transform: none;
}

.p-sd-price__item::before {
  position: absolute;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(circle at var(--gx, 50%) var(--gy, 0%), rgba(255, 255, 255, 0.1), transparent 46%);
  pointer-events: none;
  content: "";
  opacity: 0;
  transition: opacity 0.5s ease;
  inset: 0;
}

.p-sd-price__item:hover {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.26);
}

.p-sd-price__item:hover::before {
  opacity: 1;
}

.p-sd-price__item:nth-child(2)::after {
  position: absolute;
  top: 50%;
  left: calc(var(--gap) / -2);
  display: grid;
  width: clamp(36px, 2.6vw, 48px);
  border-radius: 50%;
  background: #d6363a;
  box-shadow: 0 0 0 6px #263039;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(20px, 1.5vw, 28px);
  font-weight: 500;
  line-height: 1;
  color: #fff;
  content: "+";
  place-items: center;
  aspect-ratio: 1;
  translate: -50% -50%;
}

.p-sd-price__item.is-wide {
  display: grid;
  min-height: 0;
  grid-column: 1/-1;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr);
  grid-template-rows: auto 1fr;
  -moz-column-gap: clamp(24px, 4vw, 80px);
       column-gap: clamp(24px, 4vw, 80px);
}

.is-wide .p-sd-price__top {
  grid-column: 1/-1;
}

.is-wide dd {
  grid-row: 2;
  grid-column: 2;
  align-self: end;
}

.p-sd-price__top {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 14px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  align-items: center;
  gap: 12px;
}

.p-sd-price__idx {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  color: #e0484c;
}

.p-sd-price__en {
  color: rgba(255, 255, 255, 0.6);
}

.p-sd-price__en::before {
  display: inline-block;
  width: 18px;
  height: 1px;
  margin-right: 12px;
  background: rgba(255, 255, 255, 0.35);
  vertical-align: middle;
  content: "";
}

.p-sd-price__chips {
  display: flex;
  margin-left: auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.p-sd-price__chips span {
  padding: 7px 12px 8px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  font-family: var(--f-gothic);
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
  letter-spacing: 0.04em;
}

.p-sd-price__chips .is-tag {
  background: rgba(214, 54, 58, 0.18);
  box-shadow: inset 0 0 0 1px rgba(224, 72, 76, 0.7);
  color: #fff;
}

.p-sd-price__item dt {
  margin-top: clamp(20px, 1.9vw, 36px);
  font-size: max(var(--fs-min), clamp(16px, 12.9px + 0.52vw, 22px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.p-sd-price__item dd {
  position: relative;
  margin: auto 0 0;
  padding-top: clamp(28px, 2.6vw, 48px);
}

.p-sd-price__val {
  display: flex;
  white-space: nowrap;
  align-items: baseline;
}

.p-sd-price__num {
  display: inline-flex;
  font-family: "Roboto", "Outfit", system-ui, sans-serif;
  font-size: clamp(64px, 7.3vw, 140px);
  font-weight: bold;
  line-height: 0.9;
  letter-spacing: -0.02em;
  font-variant-numeric: lining-nums tabular-nums;
  clip-path: inset(-0.1em -0.1em -0.18em);
}

.p-sd-price__num i {
  display: block;
  font-style: normal;
  transition: transform 1.2s var(--ease);
  transition-delay: calc(0.25s + var(--i) * 0.14s + var(--c) * 0.04s);
  transform: translateY(1.3em);
}

.p-sd-price__num .is-sep {
  margin-right: 0.04em;
  color: rgba(255, 255, 255, 0.4);
}

.is-in .p-sd-price__num i {
  transform: none;
}

.p-sd-price__unit,
.p-sd-price__pre {
  margin-left: 0.5em;
  font-size: clamp(16px, 1.25vw, 24px);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
  opacity: 0;
  transition: opacity 0.9s ease;
  transition-delay: calc(0.85s + var(--i) * 0.14s);
}

.p-sd-price__pre {
  margin: 0 0.5em 0 0;
}

.is-in :is(.p-sd-price__unit, .p-sd-price__pre) {
  opacity: 1;
}

.is-range .p-sd-price__num {
  font-size: clamp(44px, 5.1vw, 98px);
}

.is-range .p-sd-price__num i {
  transition-delay: calc(0.25s + var(--i) * 0.14s + var(--c) * 0.03s);
}

.p-sd-price__gauge {
  position: relative;
  min-width: 32px;
  height: 2px;
  background: rgba(255, 255, 255, 0.16);
  flex: 1 1;
  align-self: center;
  margin-inline: clamp(14px, 1.5vw, 28px);
  translate: 0 0.15em;
}

.p-sd-price__gauge::before {
  position: absolute;
  background: linear-gradient(90deg, #e02d32, #e36027);
  content: "";
  transition: transform 1.2s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(0.7s + var(--i) * 0.14s);
  transform: scaleX(0);
  transform-origin: left center;
  inset: 0;
}

.p-sd-price__gauge i {
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  border-radius: 50%;
  background: #e02d32;
  transition: scale 0.5s var(--ease);
  transition-delay: calc(0.6s + var(--i) * 0.14s);
  aspect-ratio: 1;
  translate: -50% -50%;
  scale: 0;
}

.p-sd-price__gauge i + i {
  left: 100%;
  background: #e36027;
  transition-delay: calc(1.7s + var(--i) * 0.14s);
}

.is-in .p-sd-price__gauge::before {
  transform: none;
}

.is-in .p-sd-price__gauge i {
  scale: 1;
}

@media screen and (max-width: 960px) {
  .p-sd-price__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-price__item {
    min-height: 0;
  }
  .p-sd-price__item:nth-child(2)::after {
    top: calc(var(--gap) / -2);
    left: 50%;
  }
  .p-sd-price__item.is-wide {
    display: flex;
  }
  .is-wide dd {
    align-self: stretch;
  }
}
@media screen and (max-width: 640px) {
  .p-sd-price__item {
    padding: 22px 20px 26px;
  }
  .p-sd-price__chips span {
    padding: 6px 10px 7px;
    font-size: 12px;
  }
  .p-sd-price__num {
    font-size: clamp(56px, 17vw, 72px);
  }
  .is-range .p-sd-price__num {
    font-size: clamp(28px, 8.4vw, 40px);
  }
  .p-sd-price__gauge {
    margin-inline: 12px;
  }
  .p-sd-price__unit {
    font-size: 14px;
  }
}
.p-sd-price__foot {
  position: relative;
  display: grid;
  margin-top: var(--gap, clamp(16px, 2.08vw, 40px));
  padding: clamp(16px, 1.25vw, 24px) clamp(16px, 1.25vw, 24px) clamp(16px, 1.25vw, 24px) clamp(24px, 2.3vw, 44px);
  border-radius: var(--inner-r);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  opacity: 0;
  transition: opacity 0.9s ease 0.3s, transform 1s var(--ease) 0.3s;
  transform: translateY(24px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px clamp(24px, 3vw, 56px);
  align-items: center;
  isolation: isolate;
}

.p-sd-price__foot.is-in {
  opacity: 1;
  transform: none;
}

.p-sd-price__foot::before {
  position: absolute;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(circle at var(--gx, 50%) var(--gy, 0%), rgba(255, 255, 255, 0.08), transparent 40%);
  pointer-events: none;
  content: "";
  opacity: 0;
  transition: opacity 0.5s ease;
  inset: 0;
}

.p-sd-price__foot:hover::before {
  opacity: 1;
}

.p-sd-price__info {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 20px clamp(24px, 2.5vw, 48px);
  align-items: center;
}

.p-sd-price__badge {
  display: flex;
  padding-right: clamp(24px, 2.5vw, 48px);
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  font-size: clamp(17px, 1.15vw, 22px);
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  white-space: nowrap;
  letter-spacing: 0.02em;
  align-items: center;
  gap: 16px;
}

.p-sd-price__badge small {
  display: block;
  margin-bottom: 6px;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
}

.p-sd-price__check {
  display: grid;
  width: clamp(44px, 3vw, 56px);
  border-radius: 50%;
  background: linear-gradient(135deg, #e02d32, #e36027);
  box-shadow: 0 10px 24px -10px rgba(224, 45, 50, 0.8);
  color: #fff;
  place-items: center;
  flex: none;
  aspect-ratio: 1;
}

.p-sd-price__check svg {
  width: 50%;
  height: auto;
}

.p-sd-price__check path {
  transition: stroke-dashoffset 0.7s cubic-bezier(0.45, 0, 0.2, 1) 0.9s;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.is-in .p-sd-price__check path {
  stroke-dashoffset: 0;
}

.p-sd-price__notes {
  display: grid;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.02em;
  gap: 6px;
}

.p-sd-price__notes li {
  padding-left: 1.1em;
  text-indent: -1.1em;
}

.p-sd-price__notes li::before {
  margin-right: 0.1em;
  color: #e0484c;
  content: "※";
}

.p-sd-price__cta.c-btn {
  padding: 12px 12px 12px clamp(28px, 2.1vw, 40px);
  font-size: clamp(16px, 0.94vw, 18px);
  white-space: nowrap;
  letter-spacing: 0.06em;
  gap: clamp(20px, 1.6vw, 32px);
}

.p-sd-price__cta > span:first-child {
  line-height: 1.3;
}

.p-sd-price__cta small {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.1em;
  transition: color 0.4s var(--ease);
}

.p-sd-price__cta .c-btn__ico {
  width: clamp(48px, 4.7vw - 24px, 66px);
  height: auto;
  aspect-ratio: 1;
}

.p-sd-price__cta .c-btn__ico svg {
  width: 30%;
  height: auto;
}

.p-sd-price__cta.c-btn::before {
  background: #fff;
}

.p-sd-price__cta.c-btn:hover {
  color: #0e1624;
}

.p-sd-price__cta.c-btn:hover small {
  color: #d6363a;
}

.p-sd-price__cta.c-btn:hover .c-btn__ico {
  background: #d6363a;
  color: #fff;
}

@media screen and (max-width: 960px) {
  .p-sd-price__foot {
    padding: 24px;
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-price__info {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-price__badge {
    padding: 0 0 20px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }
  .p-sd-price__cta.c-btn {
    width: 100%;
    justify-content: space-between;
  }
}
@media screen and (max-width: 640px) {
  .p-sd-price__foot {
    padding: 20px 18px 18px;
  }
  .p-sd-price__notes {
    font-size: 13px;
  }
  .p-sd-price__cta.c-btn {
    padding-left: 24px;
    font-size: 15px;
    letter-spacing: 0.04em;
  }
  .p-sd-price__cta .c-btn__ico {
    width: 48px;
  }
  .p-sd-price__cta small {
    font-size: 11px;
  }
}
.p-sd .p-process {
  margin-top: var(--stage-gap);
}

@media screen and (max-width: 960px) {
  .p-sd-note {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-note__to {
    justify-self: end;
  }
  .p-sd-support__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: clamp(32px, 6vw, 48px);
  }
  .p-sd-support__side {
    position: static;
  }
  .p-sd-support__side br {
    display: none;
  }
  .p-sd-support__illust {
    width: min(240px, 60%);
    margin-inline: auto;
  }
}
@media screen and (max-width: 640px) {
  .p-sd-support__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .p-sd-stats li {
    width: 100%;
    padding: 10px 12px;
    border-radius: var(--inner-r);
    gap: 2px;
    aspect-ratio: auto;
  }
  .p-sd-stats__val b {
    font-size: 30px;
  }
  .p-sd-stats__val > span {
    display: flex;
    align-items: baseline;
  }
  .p-sd-price {
    padding-block: 40px;
  }
}
@media screen and (max-width: 640px) {
  .p-sd-support__list,
  .p-sd-about__list,
  .p-aio-start__list {
    gap: 10px;
  }
  .p-sd-card {
    padding: 18px 20px 20px;
  }
  .p-sd-card__no {
    font-size: 28px;
  }
  .p-sd-card__title {
    margin-top: 0;
    font-size: 16px;
    line-height: 1.55;
  }
  .p-sd-card__text {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.8;
  }
  .p-sd-card:has(.p-sd-ic) {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    -moz-column-gap: 16px;
         column-gap: 16px;
    align-items: start;
  }
  .p-sd-card:has(.p-sd-ic) .p-sd-card__top {
    flex-direction: column;
    grid-row: 1/span 2;
    align-items: center;
    gap: 6px;
  }
  .p-sd-card:has(.p-sd-ic) .p-sd-card__no {
    font-size: 16px;
  }
  .p-sd-card .p-sd-ic {
    width: 52px;
  }
  .p-sd-card :is(.p-aio-svc__img, .p-aio-start__img) {
    height: 120px;
    margin-top: 10px;
  }
  .p-aio-svc__item .p-sd-card__text {
    margin-bottom: 12px;
  }
  .p-aio-start__mark {
    padding-top: 8px;
    font-size: 34px;
  }
  .p-aio-start__note {
    padding-top: 8px;
    line-height: 34px;
  }
}
.p-sd-hub {
  position: relative;
  width: min(100%, 680px);
  margin: 0 auto;
  color: #0e1624;
}

.p-sd-hub__scene {
  position: relative;
  font-size: 2.1cqw;
  line-height: 1.5;
  container-type: inline-size;
  aspect-ratio: 1;
  font-feature-settings: "palt";
}

.p-sd-hub__scene > * {
  translate: calc(var(--tx, 0) * var(--d, 4) * 1px) calc(var(--ty, 0) * var(--d, 4) * 1px);
}

.p-sd-hub__ring {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 96cqw;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(224, 72, 76, 0.28), transparent 70%), repeating-radial-gradient(circle, transparent 0 7.6cqw, rgba(255, 255, 255, 0.07) 7.6cqw calc(7.6cqw + 1px));
  pointer-events: none;
  aspect-ratio: 1;
  translate: -50% -50%;
  -webkit-mask-image: radial-gradient(closest-side, #000 55%, transparent);
          mask-image: radial-gradient(closest-side, #000 55%, transparent);
}

.p-sd-hub__wires {
  position: absolute;
  overflow: visible;
  width: 100%;
  height: 100%;
  inset: 0;
}

.p-sd-hub__wires path {
  fill: none;
  stroke: rgba(255, 255, 255, 0.28);
  stroke-width: 1.2;
  stroke-dasharray: 2 5;
  vector-effect: non-scaling-stroke;
}

.p-sd-hub__wires circle {
  fill: #ff6a5c;
  filter: drop-shadow(0 0 1.2px rgba(255, 106, 92, 0.9));
}

.p-sd-hub__core {
  position: absolute;
  top: 26%;
  left: 21%;
  overflow: hidden;
  width: 58cqw;
  border-radius: 2cqw;
  background: #fff;
  box-shadow: 0 0 0 1.4cqw rgba(255, 255, 255, 0.05), 0 6cqw 12cqw -4cqw rgba(0, 0, 0, 0.75);
  animation: hubCore 1.4s 0.2s var(--ease) both;
}

@keyframes hubCore {
  from {
    opacity: 0;
    scale: 0.9;
  }
}
.p-sd-hub__bar {
  display: flex;
  padding: 1.4cqw 1.8cqw;
  background: #0e1624;
  align-items: center;
  gap: 0.9cqw;
}

.p-sd-hub__bar i {
  width: 1.2cqw;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  aspect-ratio: 1;
}

.p-sd-hub__bar i:first-child {
  background: #e0484c;
}

.p-sd-hub__bar span {
  margin-left: 1.6cqw;
  padding: 0.2cqw 2cqw;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 1.6cqw;
  color: rgba(255, 255, 255, 0.75);
}

.p-sd-hub__site {
  padding: 1.8cqw 2cqw 2.2cqw;
}

.p-sd-hub__head {
  display: flex;
  align-items: center;
  gap: 1.6cqw;
}

.p-sd-hub__logo {
  display: flex;
  font-size: 1.9cqw;
  font-weight: 700;
  white-space: nowrap;
  align-items: center;
  gap: 0.8cqw;
}

.p-sd-hub__logo em {
  position: relative;
  width: 3cqw;
  border-radius: 50%;
  background: #d6363a;
  aspect-ratio: 1;
}

.p-sd-hub__logo em::before,
.p-sd-hub__logo em::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.5cqw;
  height: 0.5cqw;
  border-radius: 1px;
  background: #fff;
  content: "";
  translate: -50% -50%;
}

.p-sd-hub__logo em::after {
  rotate: 90deg;
}

.p-sd-hub__nav {
  display: flex;
  margin-left: auto;
  gap: 1cqw;
}

.p-sd-hub__nav i {
  width: 4cqw;
  height: 0.6cqw;
  border-radius: 1cqw;
  background: #e2e6ec;
}

.p-sd-hub__book {
  padding: 0.5cqw 1.4cqw;
  border-radius: 999px;
  background: #d6363a;
  font-size: 1.5cqw;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}

.p-sd-hub__kv {
  position: relative;
  overflow: hidden;
  margin-top: 1.6cqw;
  padding: 3cqw 2.6cqw;
  border-radius: 1.4cqw;
  background: radial-gradient(60% 90% at 100% 0%, rgba(224, 72, 76, 0.55), transparent 70%), linear-gradient(120deg, #263039, #3a4651);
}

.p-sd-hub__kv p {
  position: relative;
  font-size: 2.4cqw;
  font-weight: 700;
  line-height: 1.55;
  color: #fff;
}

.p-sd-hub__kv-btn {
  position: relative;
  display: inline-block;
  margin-top: 1.6cqw;
  padding: 0.6cqw 1.8cqw;
  border-radius: 999px;
  background: #fff;
  font-size: 1.5cqw;
  font-weight: 700;
  color: #d6363a;
}

.p-sd-hub__tooth {
  position: absolute;
  right: -1cqw;
  bottom: -3cqw;
  width: 17cqw;
  stroke: rgba(255, 255, 255, 0.22);
  stroke-width: 1.4;
}

.p-sd-hub__menu {
  display: grid;
  margin-top: 1.4cqw;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1cqw;
}

.p-sd-hub__menu li {
  display: grid;
  padding: 1.4cqw 0.6cqw 1.2cqw;
  border-radius: 1cqw;
  background: #f4f5f7;
  font-size: 1.5cqw;
  font-weight: 700;
  white-space: nowrap;
  justify-items: center;
  gap: 0.6cqw;
}

.p-sd-hub__menu i {
  width: 3.2cqw;
  border: 0.45cqw solid #d6363a;
  border-radius: 50%;
  background: #fff;
  aspect-ratio: 1;
}

.p-sd-hub__card {
  position: absolute;
  padding: 2cqw;
  border-radius: 1.8cqw;
  background: #fff;
  box-shadow: 0 4cqw 8cqw -3cqw rgba(0, 0, 0, 0.7);
  animation: hubCard 1s calc(0.6s + var(--i) * 0.12s) var(--ease) both, hubFloat 5s calc(var(--i) * -1.1s) ease-in-out infinite alternate;
  rotate: var(--r, 0deg);
}

@keyframes hubCard {
  from {
    opacity: 0;
    scale: 0.85;
  }
}
@keyframes hubFloat {
  from {
    transform: translateY(-0.8cqw);
  }
  to {
    transform: translateY(0.8cqw);
  }
}
.p-sd-hub__tag {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 1.6cqw;
  font-weight: 700;
  letter-spacing: 0.02em;
  align-items: center;
  gap: 0.8cqw;
}

.p-sd-hub__tag--ja {
  font-family: var(--f-gothic);
}

.p-sd-hub__sponsor {
  margin-left: auto;
  padding: 0.1cqw 1cqw;
  border: 1px solid #d9dee6;
  border-radius: 0.6cqw;
  font-family: var(--f-gothic);
  font-size: 1.3cqw;
  font-weight: 700;
  color: var(--mute);
}

.p-sd-hub__card--ai {
  --r: -3deg;
  top: 3%;
  left: -2%;
  width: 38cqw;
}

.p-sd-hub__spark {
  width: 2.2cqw;
  background: linear-gradient(135deg, #ee7b2c, #d42a2f);
  animation: hubSpark 2.4s ease-in-out infinite;
  aspect-ratio: 1;
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
}

@keyframes hubSpark {
  50% {
    rotate: 90deg;
    scale: 0.75;
  }
}
.p-sd-hub__q {
  width: -moz-fit-content;
  width: fit-content;
  margin: 1.2cqw 0 0 auto;
  padding: 0.8cqw 1.4cqw;
  border-radius: 1.2cqw 1.2cqw 0.3cqw 1.2cqw;
  background: #0e1624;
  font-size: 1.6cqw;
  font-weight: 700;
  color: #fff;
}

.p-sd-hub__ans {
  margin-top: 1.2cqw;
  font-size: 1.75cqw;
  line-height: 1.6;
}

.p-sd-hub__ans mark {
  background: linear-gradient(transparent 55%, rgba(224, 72, 76, 0.3) 55%) no-repeat 0 0/0% 100%;
  font-weight: 700;
  color: inherit;
  animation: hubMark 4s 1.6s ease-in-out infinite;
}

@keyframes hubMark {
  0% {
    background-size: 0% 100%;
  }
  30%, 85% {
    background-size: 100% 100%;
  }
  100% {
    background-position: 100% 0;
    background-size: 0% 100%;
  }
}
.p-sd-hub__cite {
  display: inline-block;
  margin-top: 1cqw;
  padding: 0.3cqw 1.2cqw;
  border-radius: 999px;
  background: #fbe9e9;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 1.4cqw;
  font-weight: 600;
  color: #b8232a;
}

.p-sd-hub__card--search {
  --r: 2.5deg;
  top: 9%;
  left: 63%;
  width: 37cqw;
}

.p-sd-hub__url {
  margin-top: 1cqw;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 1.4cqw;
  color: var(--mute);
}

.p-sd-hub__title {
  margin-top: 0.4cqw;
  font-size: 1.85cqw;
  font-weight: 700;
  line-height: 1.45;
  color: #b8232a;
}

.p-sd-hub__lines {
  display: grid;
  margin-top: 1.2cqw;
  gap: 0.8cqw;
}

.p-sd-hub__lines i {
  height: 0.8cqw;
  border-radius: 1cqw;
  background: #e2e6ec;
}

.p-sd-hub__lines i:last-child {
  width: 70%;
}

.p-sd-hub__card--sns {
  --r: -5deg;
  top: 42%;
  left: -4%;
  width: 21cqw;
  padding: 1.4cqw;
}

.p-sd-hub__avatar {
  width: 2.4cqw;
  border-radius: 50%;
  background: linear-gradient(135deg, #ee7b2c, #d42a2f);
  aspect-ratio: 1;
}

.p-sd-hub__photo {
  margin-top: 1cqw;
  border-radius: 1cqw;
  background: radial-gradient(circle at 70% 30%, rgba(255, 255, 255, 0.9) 0 8%, transparent 9%), linear-gradient(160deg, #f6d6d6, #fbe9e9 45%, #e9ecf0);
  aspect-ratio: 1;
}

.p-sd-hub__like {
  display: flex;
  margin-top: 1cqw;
  align-items: center;
  gap: 1cqw;
}

.p-sd-hub__like i {
  height: 0.8cqw;
  border-radius: 1cqw;
  background: #e2e6ec;
  flex: 1 1;
}

.p-sd-hub__heart {
  width: 2.2cqw;
  background: #e0484c;
  animation: hubBeat 1.6s ease-in-out infinite;
  aspect-ratio: 1;
  clip-path: polygon(50% 92%, 6% 46%, 6% 22%, 22% 8%, 38% 10%, 50% 24%, 62% 10%, 78% 8%, 94% 22%, 94% 46%);
}

@keyframes hubBeat {
  0%, 60%, 100% {
    scale: 1;
  }
  20% {
    scale: 1.3;
  }
}
.p-sd-hub__card--map {
  --r: 2deg;
  top: 76%;
  left: 3%;
  width: 33cqw;
  padding: 1.4cqw 1.4cqw 1.8cqw;
}

.p-sd-hub__map {
  position: relative;
  overflow: hidden;
  height: 11cqw;
  border-radius: 1cqw;
  background: linear-gradient(32deg, transparent 47%, #fff 47% 53%, transparent 53%), linear-gradient(-58deg, transparent 46%, #fff 46% 52%, transparent 52%), linear-gradient(90deg, transparent 72%, #dbe7e0 72% 86%, transparent 86%), #eef0f3;
}

.p-sd-hub__pin {
  position: absolute;
  top: 22%;
  left: 44%;
  width: 3.6cqw;
  border-radius: 50% 50% 50% 0;
  background: #d6363a;
  box-shadow: 0 0 0 1.4cqw rgba(214, 54, 58, 0.18);
  animation: hubPin 2.2s ease-in-out infinite;
  aspect-ratio: 1;
  rotate: -45deg;
}

.p-sd-hub__pin::after {
  position: absolute;
  border-radius: 50%;
  background: #fff;
  content: "";
  inset: 32%;
}

@keyframes hubPin {
  0%, 100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(0.6cqw, -0.6cqw);
  }
}
.p-sd-hub__place {
  margin-top: 1cqw;
  font-size: 1.75cqw;
  font-weight: 700;
}

.p-sd-hub__rate {
  display: flex;
  margin-top: 0.4cqw;
  font-size: 1.4cqw;
  font-weight: 700;
  color: #1d6b3c;
  align-items: center;
  gap: 1cqw;
}

.p-sd-hub__stars {
  display: flex;
  gap: 0.3cqw;
}

.p-sd-hub__stars i {
  width: 1.7cqw;
  background: #f0a32a;
  aspect-ratio: 1;
  clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.p-sd-hub__card--feed {
  --r: -2.5deg;
  top: 64%;
  left: 70%;
  width: 29cqw;
  padding: 1.4cqw;
}

.p-sd-hub__creative {
  display: grid;
  margin-top: 1cqw;
  padding: 1.6cqw;
  border-radius: 1cqw;
  background: radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.35) 0 14%, transparent 15%), linear-gradient(135deg, #ee7b2c -20%, #d42a2f 70%);
  align-content: end;
  aspect-ratio: 4/3;
}

.p-sd-hub__creative span {
  font-size: 2.3cqw;
  font-weight: 700;
  line-height: 1.35;
  color: #fff;
}

.p-sd-hub__cta {
  display: block;
  margin-top: 1cqw;
  padding: 0.7cqw;
  border-radius: 0.8cqw;
  background: #0e1624;
  font-size: 1.5cqw;
  font-weight: 700;
  color: #fff;
  text-align: center;
}

.p-sd-hub__labels li {
  position: absolute;
  z-index: 2;
  top: var(--y);
  left: var(--x);
  padding: 0.5cqw 1.6cqw;
  border-radius: 999px;
  background: linear-gradient(135deg, #ee7b2c -20%, #d42a2f 70%);
  box-shadow: 0 1.4cqw 3cqw -1cqw rgba(214, 54, 58, 0.8);
  font-size: 1.6cqw;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  animation: hubCard 0.8s calc(1.2s + var(--i) * 0.1s) var(--ease) both;
  translate: calc(-50% + var(--tx, 0) * 22px) calc(-50% + var(--ty, 0) * 22px);
}

.p-sd-hub__labels {
  position: absolute;
  inset: 0;
  translate: none;
}

@media (prefers-reduced-motion: reduce) {
  .p-sd-hub *,
  .p-sd-hub *::after {
    animation: none !important;
  }
  .p-sd-hub__wires circle {
    display: none;
  }
}
.p-sd-worries .p-sd-card__title {
  margin-top: clamp(16px, 1.4vw, 24px);
}

.p-sd-note--plain {
  text-align: center;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
}

.p-sd-note--plain:hover {
  background: #263039;
}

.p-sd-team {
  position: relative;
  overflow: clip;
  margin: var(--stage-gap) var(--stage-gap) 0;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 100% 0%, rgba(214, 54, 58, 0.3), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
}

.p-sd-team::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 100% 0%, #000, transparent);
}

.p-sd-team .p-sd-head p {
  color: rgba(255, 255, 255, 0.82);
}

.p-sd-team__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(10px, 1vw, 20px);
}

.p-sd-team__list li {
  display: grid;
  padding: clamp(22px, 2vw, 36px) clamp(14px, 1.2vw, 22px) clamp(24px, 2vw, 36px);
  border-radius: var(--inner-r);
  background: #fff;
  color: #0e1624;
  text-align: center;
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i) * 0.1s);
  transform: translateY(24px);
  justify-items: center;
  align-content: start;
  gap: 10px;
}

.p-sd-team__list.is-in li {
  opacity: 1;
  transform: none;
}

.p-sd-team__ic {
  display: grid;
  width: clamp(60px, 4.4vw, 80px);
  border-radius: 50%;
  background: #eef0f3;
  color: #0e1624;
  place-items: center;
  aspect-ratio: 1;
}

.p-sd-team__ic svg {
  overflow: visible;
  width: 58%;
  height: auto;
}

.p-sd-team__ic svg * {
  transition: stroke-dashoffset 1.2s cubic-bezier(0.45, 0, 0.2, 1);
  transition-delay: calc(0.4s + var(--i) * 0.15s);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.p-sd-team__ic .is-accent {
  stroke: #e0484c;
}

.p-sd-team__list.is-in .p-sd-team__ic svg * {
  stroke-dashoffset: 0;
}

.p-sd-team__list h3 {
  margin-top: 4px;
  font-family: var(--f-gothic);
  font-size: clamp(16px, 1.15vw, 21px);
  font-weight: 700;
  line-height: 1.4;
}

.p-sd-team__list p {
  font-size: max(var(--fs-min), 14px);
  line-height: 1.7;
  color: var(--mute);
}

.p-sd-team__base {
  display: flex;
  margin-top: clamp(28px, 2.6vw, 48px);
  font-family: var(--f-gothic);
  font-size: clamp(16px, 1.15vw, 21px);
  font-weight: 700;
  text-align: center;
  opacity: 0;
  transition: opacity 1s ease 0.6s;
  align-items: center;
  gap: 20px;
}

.p-sd-team__base.is-in {
  opacity: 1;
}

.p-sd-team__base::before,
.p-sd-team__base::after {
  height: 1px;
  background: rgba(255, 255, 255, 0.3);
  content: "";
  flex: 1 1;
}

.p-sd--hub .p-sd-head:not(:has(> p)) {
  grid-template-columns: minmax(0, 1fr);
}

.p-sd-svc3 .p-sd-support__grid {
  grid-template-columns: minmax(0, 1fr);
  row-gap: clamp(40px, 4.2vw, 80px);
}

.p-sd-svc3 .p-sd-support__side {
  position: static;
}

.p-sd-svc3 .p-sd-support__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media screen and (max-width: 960px) {
  .p-sd-svc3 .p-sd-support__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.p-sd-guide {
  display: flex;
  margin-top: clamp(28px, 2.6vw, 48px);
  padding: clamp(16px, 1.4vw, 24px) clamp(20px, 2vw, 32px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.7;
  opacity: 0;
  transition: opacity 1s ease 0.3s;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.p-sd-guide.is-in {
  opacity: 1;
}

.p-sd-guide__ic {
  display: grid;
  width: 24px;
  border-radius: 50%;
  background: #263039;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-style: normal;
  color: #fff;
  place-items: center;
  flex: none;
  aspect-ratio: 1;
}

@media screen and (max-width: 1080px) {
  .p-sd-team__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (max-width: 640px) {
  .p-sd-svc3 .p-sd-support__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-team {
    padding-block: 3em;
  }
  .p-sd-team__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .p-sd-team__list li {
    padding: 16px 20px;
    text-align: left;
    grid-template-columns: 52px minmax(0, 1fr);
    justify-items: start;
    -moz-column-gap: 16px;
         column-gap: 16px;
  }
  .p-sd-team__ic {
    width: 52px;
    grid-row: 1/span 2;
  }
  .p-sd-team__list h3 {
    margin-top: 0;
    font-size: 16px;
  }
  .p-sd-team__list p {
    margin-top: -4px;
  }
  .p-sd-team__base {
    font-size: 15px;
    gap: 12px;
  }
  .p-sd-guide {
    font-size: 14px;
    align-items: flex-start;
    justify-content: flex-start;
  }
}
.p-sd--hub .p-sd-hero__key {
  font-size: clamp(30px, 3.1vw, 60px);
}

.p-sd-hero__plain {
  display: block;
  margin-top: 0.7em;
  font-size: clamp(17px, 1.45vw, 28px);
  line-height: 1.5;
  letter-spacing: 0.02em;
  animation: fade 1.2s 0.5s var(--ease) both;
}

.p-sd--hub .p-sd-hero__stage {
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
}

@media screen and (max-width: 960px) {
  .p-sd--hub .p-sd-hero__stage {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-sd--hub .p-sd-hero__key {
    font-size: 26px;
  }
  .p-sd-hero__plain {
    font-size: 16px;
  }
}
@media screen and (max-width: 640px) {
  .p-sd-hub__card--ai {
    left: 0;
  }
  .p-sd-hub__card--sns {
    left: 0;
  }
  .p-sd-hub__card--feed {
    left: 68%;
  }
}
.p-sd-crumb {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin: clamp(14px, 1.2vw, 22px) auto 0;
}

.p-sd-crumb ol {
  color: var(--ink);
}

.p-sd-crumb li + li::before {
  color: var(--g3, #a9b2bf);
}

.p-sd-crumb a {
  color: var(--mute);
}

.p-sd-crumb a:hover {
  color: #d6363a;
}

.p-sd-crumb [aria-current] {
  color: var(--ink);
}

@media screen and (max-width: 640px) {
  .p-sd-crumb {
    width: auto;
    margin-inline: 12px;
  }
}
.p-sd-hero__en {
  margin-top: 0;
}

@media screen and (max-width: 640px) {
  .p-sd-hero__en {
    font-size: 13px;
  }
}
.p-sd-head p strong {
  font-weight: 700;
  color: #d6363a;
}

.p-aio-start__list {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-aio-start__item {
  text-align: center;
  align-items: center;
}

.p-aio-start__item .p-sd-card__title {
  margin-top: 0;
  text-align: center;
}

.p-aio-start__img {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(14px, 1.2vw, 22px);
  border-radius: calc(var(--inner-r) - 4px);
  background: var(--sd-card);
}

.p-aio-start__mark {
  margin-top: auto;
  padding-top: clamp(10px, 1vw, 18px);
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(40px, 3.4vw, 64px);
  font-weight: 700;
  line-height: 1;
  color: #d6363a;
  letter-spacing: 0.02em;
  opacity: 0;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.4s ease;
  transition-delay: calc(0.6s + var(--i) * 0.12s);
  transform: scale(1.4);
}

.is-in .p-aio-start__mark {
  opacity: 1;
  transform: none;
}

.is-ng .p-aio-start__img {
  opacity: 0.55;
  filter: grayscale(0.8);
}

.p-aio-start__note {
  margin-top: auto;
  padding-top: clamp(10px, 1vw, 18px);
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: clamp(40px, 3.4vw, 64px);
  color: var(--mute);
}

.p-aio-start__band {
  display: flex;
  margin-top: var(--sd-gap);
  padding: clamp(20px, 1.8vw, 34px) clamp(20px, 2vw, 40px);
  border-radius: var(--inner-r);
  background: #263039;
  font-family: var(--f-gothic);
  font-size: clamp(18px, 1.55vw, 30px);
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 14px;
}

.p-aio-start__band em {
  padding: 0.12em 0.5em 0.16em;
  border-radius: 4px;
  background: #fff;
  font-style: normal;
  color: #d6363a;
}

.p-aio-worries__list {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 0.9vw, 16px);
}

.p-aio-worries__list li {
  position: relative;
  display: grid;
  padding: clamp(18px, 1.5vw, 28px) clamp(18px, 1.6vw, 30px) clamp(18px, 1.5vw, 28px) clamp(56px, 4.2vw, 76px);
  border-radius: var(--inner-r);
  background: var(--sd-card);
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transition-delay: calc(var(--i) * 0.06s);
  transform: translateY(28px);
  align-content: center;
  gap: 4px;
}

.p-aio-worries__list li::before {
  position: absolute;
  top: 50%;
  left: clamp(18px, 1.6vw, 30px);
  width: clamp(24px, 1.75vw, 30px);
  border-radius: 50%;
  background: #d6363a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.4l3.6 3.6 7.4-7.6' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/100%;
  content: "";
  transform: translateY(-50%);
  aspect-ratio: 1;
}

.p-aio-worries__list.is-in li {
  opacity: 1;
  transform: none;
}

.p-aio-worries__list span {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.6;
}

.p-aio-worries__list b {
  font-family: var(--f-gothic);
  font-size: clamp(17px, 1.15vw, 22px);
  font-weight: 700;
  line-height: 1.5;
  color: #d6363a;
  font-feature-settings: "palt";
}

.p-aio-answer {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  padding-top: clamp(32px, 3.3vw, 64px);
  border-top: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transform: translateY(28px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 72px;
  align-items: start;
}

.p-aio-answer.is-in {
  opacity: 1;
  transform: none;
}

.p-aio-answer__catch {
  font-family: var(--f-gothic);
  font-size: clamp(22px, 1.9vw, 36px);
  font-weight: 700;
  line-height: 1.55;
  color: #d6363a;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-aio-answer__body {
  display: grid;
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  text-align: justify;
  text-justify: inter-character;
  text-wrap: pretty;
  word-break: normal;
  gap: 14px;
  line-break: strict;
}
.p-aio-answer__body .nw {
  white-space: normal;
}

.p-aio-answer__point {
  font-weight: 700;
}

.p-aio-answer--dark {
  border-top-color: rgba(255, 255, 255, 0.18);
}

.p-aio-answer--dark .p-aio-answer__catch {
  color: #fff;
}

.p-aio-answer--dark .p-aio-answer__body {
  color: rgba(255, 255, 255, 0.85);
}

.p-aio-why {
  position: relative;
  overflow: clip;
  margin: var(--stage-gap) var(--stage-gap) 0;
  border-radius: var(--stage-r);
  background: radial-gradient(50% 70% at 0% 100%, rgba(214, 54, 58, 0.22), transparent 70%), #263039;
  color: #fff;
  padding-block: var(--sec);
  isolation: isolate;
}

.p-aio-why::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(55% 75% at 0% 100%, #000, transparent);
          mask-image: radial-gradient(55% 75% at 0% 100%, #000, transparent);
}

.p-aio-why h2 {
  color: #fff;
}

.p-aio-why .p-sd-head p {
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
}

.p-aio-why__flows {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: clamp(16px, 2vw, 40px);
  align-items: center;
}

.p-aio-why__arrow {
  display: grid;
  width: clamp(40px, 3vw, 56px);
  color: #e0484c;
  place-items: center;
}

.p-aio-why__arrow svg {
  width: 100%;
  height: auto;
}

.is-in .p-aio-why__arrow svg {
  animation: whyArrow 2.4s 1.2s ease-in-out infinite;
}

@keyframes whyArrow {
  0%, 100% {
    opacity: 0.6;
    transform: translateX(-4px);
  }
  50% {
    opacity: 1;
    transform: translateX(4px);
  }
}
.p-aio-flow {
  height: 100%;
  padding: clamp(16px, 1.4vw, 26px);
  border-radius: var(--inner-r);
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transition-delay: calc(var(--c) * 0.3s);
  transform: translateY(28px);
}

.is-in .p-aio-flow {
  opacity: 1;
  transform: none;
}

.p-aio-flow--old {
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.p-aio-flow--new {
  background: #fff;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.6);
  color: #0e1624;
}

.p-aio-flow__name {
  padding: 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: max(var(--fs-min), clamp(15px, 1.05vw, 20px));
  font-weight: 700;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.85);
  text-align: center;
}

.p-aio-flow--new .p-aio-flow__name {
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  color: #fff;
}

.p-aio-flow__list {
  display: grid;
  margin-top: 18px;
  gap: 28px;
}

.p-aio-flow__step {
  position: relative;
  display: grid;
  padding: 12px clamp(12px, 1vw, 18px) 12px 12px;
  border-radius: calc(var(--inner-r) - 4px);
  background: rgba(255, 255, 255, 0.06);
  grid-template-columns: auto clamp(100px, 8.3vw, 160px) minmax(0, 1fr);
  gap: clamp(10px, 1vw, 18px);
  align-items: center;
}

.p-aio-flow--new .p-aio-flow__step {
  background: #f4f5f7;
}

.p-aio-flow__step + .p-aio-flow__step::before {
  position: absolute;
  top: -20px;
  left: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  content: "";
  opacity: 0.4;
  transform: translateX(-50%) rotate(45deg);
}

.p-aio-flow__no {
  display: grid;
  width: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  align-self: start;
  place-items: center;
  aspect-ratio: 1;
}

.p-aio-flow--new .p-aio-flow__no {
  background: #d6363a;
  color: #fff;
}

.p-aio-flow__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--inner-r) - 6px);
  background: #fff;
}

.p-aio-flow__text {
  font-size: max(var(--fs-min), clamp(15px, 1vw, 19px));
  font-weight: 700;
  line-height: 1.55;
}

.p-aio-why__band {
  display: inline-block;
  margin-top: 0.15em;
  padding: 0 0.3em 0.04em;
  background: linear-gradient(#fff, #fff) no-repeat 0 0/0% 100%;
  line-height: 1.4;
  color: #fff;
  transition: background-size 0.8s var(--ease) 0.5s, color 0.4s ease 0.8s;
}

.is-in .p-aio-why__band {
  background-size: 100% 100%;
  color: #0e1624;
}

.p-aio-svc__item .p-sd-card__title {
  margin-top: 0;
}

.p-aio-svc__img {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(14px, 1.2vw, 22px);
  border-radius: calc(var(--inner-r) - 4px);
  background: var(--sd-tile);
}

.p-aio-svc__what {
  display: grid;
  margin-top: auto;
  padding: 12px 14px;
  border-radius: calc(var(--inner-r) - 4px);
  background: var(--sd-tile);
  font-size: max(var(--fs-min), 14px);
  line-height: 1.6;
  color: var(--mute);
  gap: 4px;
}

.p-aio-svc__item .p-sd-card__text {
  margin-bottom: 18px;
}

.p-aio-svc__what span {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #d6363a;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.p-aio-plan__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-aio-plan__item:nth-child(2)::after {
  display: none;
}

.p-aio-plan__item {
  min-height: 0;
}

.p-aio-plan__for {
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  text-align: center;
}

.p-aio-plan__name {
  margin-top: 12px;
  padding: 10px 16px 11px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  font-family: var(--f-gothic);
  font-size: clamp(17px, 1.25vw, 24px);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  letter-spacing: 0.04em;
  align-self: stretch;
}

.is-main .p-aio-plan__name {
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
}

.p-aio-plan__price {
  display: flex;
  margin-top: clamp(20px, 1.9vw, 36px);
  justify-content: center;
}

.p-aio-plan__price .p-sd-price__num {
  font-size: clamp(72px, 7.3vw, 140px);
}

.p-aio-plan__price .p-sd-price__pre {
  margin: 0 0.4em 0 0;
}

.p-aio-plan__inc {
  margin-top: clamp(20px, 1.9vw, 36px);
  padding-top: clamp(18px, 1.5vw, 28px);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.p-aio-plan__inc p {
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
}

.p-aio-plan__inc ul {
  display: grid;
  margin-top: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 20px;
}

.p-aio-plan__inc li {
  position: relative;
  padding-left: 1em;
  font-size: max(var(--fs-min), 14px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
}

.p-aio-plan__inc li::before {
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 5px;
  border-radius: 50%;
  background: #e0484c;
  content: "";
  aspect-ratio: 1;
}

.p-aio-plan__notes {
  margin-top: clamp(24px, 2.3vw, 44px);
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transform: translateY(28px);
}

.p-aio-plan__notes.is-in {
  opacity: 1;
  transform: none;
}

.c-ill :is([class^=ai-]) {
  transform-origin: center;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  transform-box: fill-box;
}

.c-ill .ai-pop {
  animation: aiPop 3s infinite;
}

.c-ill .ai-float,
.c-ill .ai-bob {
  animation: aiFloat 2.8s ease-in-out infinite alternate;
}

.c-ill .ai-sway {
  transform-origin: 50% 100%;
  animation: aiSway 3s ease-in-out infinite alternate;
}

.c-ill .ai-swing {
  transform-origin: 50% 0%;
  animation: aiSway 2.4s ease-in-out infinite alternate;
}

.c-ill .ai-arm {
  transform-origin: 0% 100%;
  animation: aiArm 1.6s ease-in-out infinite alternate;
}

.c-ill .ai-pen {
  animation: aiPen 1.4s ease-in-out infinite alternate;
}

.c-ill .ai-lens {
  animation: aiLens 3.2s ease-in-out infinite alternate;
}

.c-ill .ai-dash,
.c-ill .ai-flow {
  animation: aiDash 1.2s linear infinite;
}

.c-ill .ai-blink {
  animation: aiBlink 1.1s steps(2) infinite;
}

.c-ill .ai-point,
.c-ill .ai-nudge {
  animation: aiNudge 1.6s ease-in-out infinite;
}

.c-ill .ai-pulse {
  animation: aiPulse 2.2s ease-in-out infinite;
}

.c-ill .ai-spin {
  animation: aiSpin 6s linear infinite;
}

.c-ill .ai-twinkle {
  animation: aiPop 2.2s infinite;
}

.c-ill .ai-twinkle + .ai-twinkle {
  animation-delay: -1.1s;
}

.c-ill .ai-bars {
  transform-origin: 50% 100%;
  animation: aiBars 2.6s ease-in-out infinite alternate;
}

.c-ill .ai-arm2 {
  animation: aiArm2 2.8s ease-in-out infinite alternate;
}

.c-ill .ai-gauge {
  animation: aiGauge 2.4s cubic-bezier(0.45, 0, 0.2, 1) infinite alternate;
}

@keyframes aiArm2 {
  from {
    transform: rotate(-3deg);
  }
  to {
    transform: rotate(3deg);
  }
}
@keyframes aiGauge {
  from {
    transform: rotate(-38deg);
  }
  to {
    transform: rotate(8deg);
  }
}
@keyframes aiPop {
  0%, 40%, 100% {
    transform: scale(1);
  }
  18% {
    transform: scale(1.18);
  }
}
@keyframes aiFloat {
  from {
    transform: translateY(2px);
  }
  to {
    transform: translateY(-5px);
  }
}
@keyframes aiSway {
  from {
    transform: rotate(-6deg);
  }
  to {
    transform: rotate(6deg);
  }
}
@keyframes aiArm {
  from {
    transform: rotate(4deg);
  }
  to {
    transform: rotate(-6deg);
  }
}
@keyframes aiPen {
  from {
    transform: translate(0, 0) rotate(0);
  }
  to {
    transform: translate(-5px, 3px) rotate(-4deg);
  }
}
@keyframes aiLens {
  from {
    transform: translate(0, 0);
  }
  to {
    transform: translate(-6px, -4px);
  }
}
@keyframes aiDash {
  to {
    stroke-dashoffset: -20;
  }
}
@keyframes aiBlink {
  50% {
    opacity: 0;
  }
}
@keyframes aiNudge {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(5px);
  }
}
@keyframes aiPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
}
@keyframes aiSpin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes aiBars {
  from {
    transform: scaleY(0.85);
  }
  to {
    transform: scaleY(1);
  }
}
@media screen and (max-width: 1080px) {
  .p-aio-start__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 960px) {
  .p-aio-worries__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-aio-answer {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-aio-why__flows {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }
  .p-aio-flow {
    width: 100%;
  }
  .p-aio-why__arrow {
    rotate: 90deg;
  }
  .p-aio-plan__list {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-aio-answer__body {
    text-align: start;
  }
  .p-aio-worries__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-aio-start__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-aio-form {
    padding-block: 3em;
  }
  .p-sd .p-aio-form__head h2 {
    font-size: 24px;
  }
  .p-aio-why {
    padding-block: 40px;
  }
  .p-aio-flow__step {
    grid-template-columns: auto 92px minmax(0, 1fr);
  }
  .p-aio-answer__catch br {
    display: none;
  }
  .p-aio-plan__inc ul {
    grid-template-columns: minmax(0, 1fr);
  }
}
.p-aio-entry {
  position: relative;
  width: 100%;
  max-width: 560px;
  align-self: center;
  justify-self: end;
}

.p-aio-entry::before {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(224, 45, 50, 0.45), rgba(224, 45, 50, 0));
  content: "";
  animation: entryGlow 6s ease-in-out infinite alternate;
  inset: 8% -6% -4% 4%;
  filter: blur(30px);
}

.p-aio-entry__card {
  position: relative;
  padding: clamp(26px, 2.3vw, 44px) clamp(22px, 2.2vw, 40px) clamp(26px, 2.2vw, 40px);
  border: 1.5px solid transparent;
  border-radius: var(--inner-r);
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(150deg, #ee7b2c 0%, #d42a2f 34%, rgba(212, 42, 47, 0.12) 68%, rgba(255, 255, 255, 0.7) 100%) border-box;
  box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.05), 0 60px 100px -50px rgba(0, 0, 0, 0.75);
  color: #0e1624;
  animation: entryIn 1.2s var(--ease) 0.45s both;
}

.p-aio-entry__tag {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #d42a2f;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.p-aio-entry__tag::before {
  width: 7px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 0 rgba(212, 42, 47, 0.5);
  content: "";
  animation: entryDot 2s ease-out infinite;
  aspect-ratio: 1;
}

.p-sd .p-aio-entry__title {
  margin: 10px 0 clamp(16px, 1.4vw, 24px);
  font-family: var(--f-gothic);
  font-size: clamp(18px, 1.3vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  letter-spacing: 0.02em;
}

.p-aio-entry__title em,
.p-aio-form__head h2 em {
  position: relative;
  background: linear-gradient(transparent 68%, rgba(212, 42, 47, 0.14) 68%) no-repeat 0 0/100% 100%;
  font-style: normal;
  color: #d42a2f;
  margin-inline: 0.15em;
}

@keyframes entryIn {
  from {
    opacity: 0;
    transform: translateY(36px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes entryGlow {
  from {
    opacity: 0.55;
    transform: scale(0.94);
  }
  to {
    opacity: 1;
    transform: scale(1.04);
  }
}
@keyframes entryDot {
  0% {
    box-shadow: 0 0 0 0 rgba(212, 42, 47, 0.5);
  }
  100% {
    box-shadow: 0 0 0 9px rgba(212, 42, 47, 0);
  }
}
.p-aio-form {
  position: relative;
  overflow: hidden;
  border-radius: var(--stage-r);
  background: var(--sd-face);
  isolation: isolate;
  margin-inline: var(--stage-gap);
}

.p-aio-form::before {
  position: absolute;
  z-index: -1;
  top: -20%;
  right: -10%;
  width: 70%;
  height: 90%;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.9) 30% 46%, transparent 46% 54%, rgba(255, 255, 255, 0.55) 54% 62%, transparent 62%);
  pointer-events: none;
  content: "";
}

.p-aio-form::after {
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: 0;
  width: 40%;
  height: 50%;
  background: radial-gradient(rgba(14, 22, 36, 0.12) 1px, transparent 1.5px) 0 0/14px 14px;
  pointer-events: none;
  content: "";
  -webkit-mask-image: linear-gradient(45deg, #000 0%, transparent 60%);
          mask-image: linear-gradient(45deg, #000 0%, transparent 60%);
}

.p-aio-form__inner {
  width: min(100% - var(--gutter, 40px) * 2, 1180px);
  margin-inline: auto;
}

.p-aio-form__head {
  display: grid;
  text-align: center;
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transform: translateY(28px);
  justify-items: center;
}

.p-aio-form__head.is-in {
  opacity: 1;
  transform: none;
}

.p-aio-form__head .c-label {
  color: #d42a2f;
}

.p-aio-form__head p {
  max-width: 42em;
  margin-top: clamp(18px, 1.7vw, 32px);
  font-size: max(var(--fs-min), clamp(15px, 0.95vw, 18px));
  line-height: 2;
  color: var(--mute);
}

.p-aio-form__body {
  width: min(100%, 1080px);
  margin: clamp(40px, 4.2vw, 80px) auto 0;
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i, 0) * 0.1s);
  transition-delay: 0.15s;
  transform: translateY(28px);
}

.p-aio-form__body.is-in {
  opacity: 1;
  transform: none;
}

@media screen and (max-width: 960px) {
  .p-aio-entry {
    max-width: 600px;
    margin-top: 16px;
    justify-self: center;
  }
  .p-aio-form__head h2 br {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  .p-aio-entry__card {
    padding: 24px 18px 22px;
  }
  .p-aio-form__head p {
    text-align: left;
  }
}
.p-sd-about__list {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-sd-reason__list {
  --d: 0.16s;
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
}

.p-sd-reason__item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(140px, 15vw, 280px) minmax(0, 1fr) calc(50% - 36px);
  gap: 12px clamp(24px, 3.4vw, 64px);
  align-items: center;
  padding-block: clamp(32px, 3.3vw, 64px);
}

.p-sd-reason__item::before,
.p-sd-reason__item:last-child::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(#d6363a, #d6363a) no-repeat 0 0/clamp(40px, 2.9vw, 56px) 100%, color-mix(in srgb, var(--ink) 18%, transparent);
  content: "";
  transition: transform 1.4s cubic-bezier(0.65, 0, 0.35, 1);
  transition-delay: calc(var(--i) * var(--d));
  transform: scaleX(0);
  transform-origin: left center;
}

.p-sd-reason__item:last-child::after {
  top: auto;
  bottom: 0;
  background: color-mix(in srgb, var(--ink) 18%, transparent);
  transition-delay: calc((var(--i) + 1) * var(--d));
}

.is-in .p-sd-reason__item::before,
.is-in .p-sd-reason__item::after {
  transform: none;
}

.p-sd-reason__no {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(60px, 6.25vw, 120px);
  font-weight: 400;
  line-height: 1;
  color: #d6363a;
  white-space: nowrap;
  letter-spacing: -0.03em;
  transition: clip-path 1.1s var(--ease), transform 1.1s var(--ease);
  transition-delay: calc(0.15s + var(--i) * var(--d));
  transform: translateY(0.5em);
  font-variant-numeric: lining-nums tabular-nums;
  clip-path: inset(0 0 100% 0);
}

.is-in .p-sd-reason__no {
  transform: none;
  clip-path: inset(-0.1em);
}

.p-sd-reason__title,
.p-sd-reason__text {
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(0.3s + var(--i) * var(--d));
  transform: translateY(16px);
}

.p-sd-reason__text {
  transition-delay: calc(0.42s + var(--i) * var(--d));
}

.is-in :is(.p-sd-reason__title, .p-sd-reason__text) {
  opacity: 1;
  transform: none;
}

.p-sd-reason__title {
  font-family: var(--f-gothic);
  font-size: clamp(20px, 1.56vw, 30px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
  font-feature-settings: "palt";
}

.p-sd-reason__text {
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
  letter-spacing: 0;
}

.p-sd-related {
  padding-top: 0;
}

.p-sd-related__head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 28px 72px;
}

.p-sd-related__head .c-btn {
  min-width: clamp(240px, 14.9vw, 286px);
  padding-block: clamp(8px, 1.825vw - 20px, 15px);
  justify-content: space-between;
}

.p-sd-related__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-sd-related__list > li {
  display: grid;
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
  container-type: inline-size;
}

.p-sd-related__list.is-in > li {
  opacity: 1;
  transform: none;
}

.p-sd-link {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 7cqi, 40px) clamp(24px, 7cqi, 40px) clamp(28px, 8cqi, 48px);
  border-radius: var(--inner-r);
  background: var(--sd-tile);
  color: var(--ink);
  transition: background-color 0.3s ease;
}

.p-sd-link:hover,
.p-sd-link:focus-visible {
  background: var(--sd-tile-hover);
}

.p-sd-link__en {
  padding-right: clamp(52px, 14cqi, 72px);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(20px, 7.4cqi, 40px);
  font-weight: 700;
  line-height: 1.15;
  white-space: nowrap;
  letter-spacing: 0;
}

.p-sd-link__ja {
  margin-top: 0.5em;
  font-size: max(var(--fs-min), clamp(15px, 4cqi, 18px));
  font-weight: 700;
  line-height: 1.5;
  color: #d6363a;
}

.p-sd-link__ja::after {
  display: block;
  width: 40px;
  height: 3px;
  margin-top: clamp(14px, 4cqi, 22px);
  background: var(--ink);
  content: "";
}

.p-sd-link__text {
  margin-top: clamp(14px, 4cqi, 22px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.75;
  letter-spacing: 0;
}

.p-sd-link__go {
  position: absolute;
  top: clamp(20px, 6cqi, 34px);
  right: clamp(20px, 6cqi, 34px);
  width: clamp(40px, 10cqi, 52px);
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #d6363a;
  color: #d6363a;
  aspect-ratio: 1;
}

.p-sd-link__go svg {
  width: 30%;
  height: auto;
}

.p-sd-link:is(:hover, :focus-visible) .p-sd-link__go {
  background: #d6363a;
  color: #fff;
}

@media screen and (max-width: 1080px) {
  .p-sd-reason__item {
    grid-template-columns: clamp(110px, 15vw, 160px) minmax(0, 1fr);
  }
  .p-sd-reason__no {
    grid-row: span 2;
    align-self: start;
  }
}
@media screen and (max-width: 960px) {
  .p-sd-about__list {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sd-related > .p-sd-inner {
    display: grid;
  }
  .p-sd-related__head {
    display: contents;
  }
  .p-sd-related__head > .c-btn {
    margin-top: clamp(32px, 6vw, 48px);
    order: 1;
    justify-self: start;
  }
  .p-sd-related__list {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-sd-reason__item {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding-block: 28px 30px;
  }
  .p-sd-reason__no {
    grid-row: auto;
  }
  .p-sd-related__head > .c-btn {
    justify-self: center;
    margin-inline: auto;
  }
}
.p-contact {
  border-radius: var(--stage-r);
  background: #f4f5f7;
  margin-inline: var(--stage-gap);
}

.p-contact__grid {
  display: grid;
  width: min(100% - var(--gutter) * 2, 1320px);
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.6fr);
  gap: clamp(40px, 5vw, 96px);
  align-items: start;
  margin-inline: auto;
}

.p-contact__side {
  position: sticky;
  top: clamp(96px, 7vw, 128px);
}

.p-contact__side .c-label {
  color: #d42a2f;
}

.p-contact__side h2 {
  margin-top: 10px;
  font-family: var(--f-gothic);
  font-size: clamp(26px, 2.1vw, 40px);
  font-weight: 700;
  line-height: 1.35;
}

.p-contact__flow {
  margin-top: clamp(24px, 2.2vw, 40px);
  border-top: 1px solid #d9dee6;
}

.p-contact__flow li {
  display: grid;
  border-bottom: 1px solid #d9dee6;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  padding-block: 20px;
}

.p-contact__no {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: #d42a2f;
  letter-spacing: 0.04em;
}

.p-contact__flow h3 {
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), 16px);
  font-weight: 700;
  line-height: 1.6;
}

.p-contact__flow p {
  margin-top: 4px;
  font-size: max(var(--fs-min), 14px);
  line-height: 1.8;
  color: var(--mute);
}

.p-contact__note {
  margin-top: 20px;
  font-size: max(var(--fs-min), 14px);
  line-height: 1.8;
  color: var(--mute);
}

.p-contact__diag {
  position: relative;
  display: grid;
  overflow: hidden;
  margin-top: clamp(24px, 2.2vw, 40px);
  padding: 24px 22px 24px 26px;
  border-radius: var(--inner-r);
  background: #0e1624;
  color: #fff;
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 16px;
}

.p-contact__diag::before {
  position: absolute;
  z-index: -1;
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  content: "";
  transition: transform 0.6s var(--ease);
  transform: scaleX(0);
  transform-origin: right;
  inset: 0;
}

.p-contact__diag::after {
  position: absolute;
  z-index: -2;
  background: radial-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1.5px) 0 0/12px 12px;
  content: "";
  inset: 0 0 0 45%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000);
          mask-image: linear-gradient(90deg, transparent, #000);
}

.p-contact__diag:is(:hover, :focus-visible)::before {
  transform: scaleX(1);
  transform-origin: left;
}

.p-contact__diag-en {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #e0484c;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 0.4s ease;
  grid-column: 1;
}

.p-contact__diag:is(:hover, :focus-visible) .p-contact__diag-en {
  color: #fff;
}

.p-contact__diag-title {
  font-size: max(var(--fs-min), 17px);
  font-weight: 700;
  line-height: 1.55;
  grid-column: 1;
}

.p-contact__diag-go {
  width: 46px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
  grid-column: 2;
  grid-row: 1/span 2;
  aspect-ratio: 1;
}

.p-contact__diag-go svg {
  width: 34%;
  height: auto;
}

.p-thanks__card {
  display: grid;
  width: min(100% - var(--gutter) * 2, 820px);
  padding: clamp(44px, 5vw, 88px) clamp(24px, 5vw, 88px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  text-align: center;
  justify-items: center;
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-thanks__card {
    width: 85%;
  }
}
.p-thanks__mark {
  width: clamp(64px, 5vw, 84px);
  color: #d42a2f;
}

.p-thanks__mark svg {
  display: block;
  width: 100%;
  height: auto;
}

.p-thanks__mark :is(circle, path) {
  transition: stroke-dashoffset 1s var(--ease) 0.3s;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.p-thanks__mark path {
  transition-delay: 0.9s;
}

.p-thanks__card.is-in .p-thanks__mark :is(circle, path) {
  stroke-dashoffset: 0;
}

.p-thanks__card h2 {
  margin-top: clamp(20px, 2vw, 32px);
  font-family: var(--f-gothic);
  font-size: clamp(24px, 2.1vw, 40px);
  font-weight: 700;
  line-height: 1.45;
}

.p-thanks__card p {
  max-width: 36em;
  margin-top: 20px;
  font-size: max(var(--fs-min), 16px);
  line-height: 2;
}

.p-thanks__card .p-thanks__note {
  margin-top: 8px;
  font-size: max(var(--fs-min), 14px);
  color: var(--mute);
}

.p-thanks__actions {
  display: flex;
  margin-top: clamp(32px, 3vw, 48px);
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}

@media screen and (max-width: 960px) {
  .p-contact__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-contact__side {
    position: static;
  }
}
@media screen and (max-width: 640px) {
  .p-contact {
    padding-block: 3em;
  }
}
.p-diag__inner,
.p-diag-form__inner {
  width: min(100% - var(--gutter) * 2, 1180px);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-diag__inner {
    width: 85%;
  }
}
.p-diag__head,
.p-diag-form__head {
  display: grid;
  text-align: center;
  justify-items: center;
}

.p-diag__head .c-label,
.p-diag-form__head .c-label {
  color: #d42a2f;
}

.p-diag__head h2,
.p-diag-form__head h2 {
  margin-top: 10px;
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  font-feature-settings: "palt";
}

.p-diag__points {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 32px);
}

.p-diag__points li {
  position: relative;
  padding: clamp(28px, 2.5vw, 44px) clamp(24px, 2.2vw, 40px) clamp(30px, 2.5vw, 44px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  opacity: 0;
  transition: opacity 0.9s ease calc(var(--i) * 0.12s), transform 1s var(--ease) calc(var(--i) * 0.12s);
  transform: translateY(28px);
}

.p-diag__points.is-in li {
  opacity: 1;
  transform: none;
}

.p-diag__points.js-reveal.c-reveal {
  opacity: 1;
  transform: none;
}

.p-diag__no {
  position: absolute;
  top: clamp(20px, 2vw, 32px);
  right: clamp(22px, 2.2vw, 36px);
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(32px, 2.6vw, 48px);
  font-weight: 300;
  line-height: 1;
  color: #c9d0da;
}

.p-diag__ic {
  display: grid;
  width: clamp(64px, 4.8vw, 84px);
  border-radius: 50%;
  background: #fff;
  color: #0e1624;
  place-items: center;
  aspect-ratio: 1;
}

.p-diag__ic svg {
  width: 62%;
  height: auto;
}

.p-diag__ic .is-accent {
  color: #d42a2f;
  stroke: #d42a2f;
}

.p-diag__ic :is(path, circle, rect) {
  transition: stroke-dashoffset 1.2s var(--ease) calc(0.3s + var(--i, 0) * 0.12s);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.p-diag__points li:nth-child(2) .p-diag__ic {
  --i: 1;
}

.p-diag__points li:nth-child(3) .p-diag__ic {
  --i: 2;
}

.p-diag__points.is-in .p-diag__ic :is(path, circle, rect) {
  stroke-dashoffset: 0;
}

.p-diag__points h3 {
  margin-top: clamp(20px, 1.8vw, 32px);
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), clamp(17px, 1.25vw, 22px));
  font-weight: 700;
  line-height: 1.5;
}

.p-diag__points p {
  margin-top: 12px;
  font-size: max(var(--fs-min), 15px);
  line-height: 1.9;
  color: var(--mute);
}

.p-diag-form {
  position: relative;
  overflow: hidden;
  border-radius: var(--stage-r);
  background: radial-gradient(45% 60% at 100% 0%, rgba(214, 54, 58, 0.3), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
  margin-inline: var(--stage-gap);
}

.p-diag-form::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1.6px);
  background-size: 16px 16px;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(50% 70% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(50% 70% at 100% 0%, #000, transparent);
}

.p-diag-form__head p {
  max-width: 40em;
  margin-top: clamp(16px, 1.5vw, 28px);
  font-size: max(var(--fs-min), clamp(15px, 0.95vw, 18px));
  line-height: 2;
  color: rgba(255, 255, 255, 0.8);
}

.p-diag-form__body {
  width: min(100%, 1080px);
  margin: clamp(40px, 4.2vw, 80px) auto 0;
}

.p-diag-form .c-form__accept {
  color: #0e1624;
}

.p-diag-form .c-form__submit:disabled {
  background-color: #4a5664;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23fff' fill-opacity='.85'/%3E%3Cpath d='M13 20h14M22 15l5 5-5 5' fill='none' stroke='%234a5664' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  color: rgba(255, 255, 255, 0.7);
}

.p-diag-form .wpcf7-response-output {
  color: #b8232a;
}

@media screen and (max-width: 960px) {
  .p-diag__points {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-diag-form__head h2 br {
    display: none;
  }
}
.p-company__inner {
  width: min(100% - var(--gutter) * 2, 1180px);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-company-profile .p-company__inner {
    width: 85%;
  }
}
.p-company__head {
  display: grid;
  grid-template-columns: auto;
  gap: 10px;
}

.p-company__head .c-label {
  color: #d42a2f;
}

.p-company__head h2 {
  font-family: var(--f-gothic);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.32;
  font-feature-settings: "palt";
}

.p-pres {
  margin-top: clamp(32px, 3.3vw, 64px);
}

.p-pres__stage {
  position: relative;
  display: grid;
  overflow: hidden;
  min-height: clamp(460px, 40vw, 640px);
  padding: clamp(40px, 4.4vw, 80px);
  border-radius: var(--stage-r);
  background: radial-gradient(60% 90% at 0% 100%, rgba(214, 54, 58, 0.26), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
  align-items: end;
}

.p-pres__stage::before {
  position: absolute;
  z-index: 1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(45% 70% at 0% 100%, #000, transparent);
          mask-image: radial-gradient(45% 70% at 0% 100%, #000, transparent);
}

.p-pres__back {
  position: absolute;
  z-index: 0;
  top: -0.2em;
  left: -0.04em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(80px, 11vw, 200px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.045);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-pres__photo {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 66%;
  margin: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 22%, #000 46%);
          mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 22%, #000 46%);
}

.p-pres__photo::after {
  position: absolute;
  background: linear-gradient(180deg, rgba(38, 48, 57, 0) 55%, rgba(38, 48, 57, 0.7));
  content: "";
  inset: 0;
}

.p-pres__photo img {
  display: block;
  width: 100%;
  height: 100%;
  transition: scale 2.2s var(--ease);
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 62% 30%;
     object-position: 62% 30%;
  scale: 1.08;
  filter: saturate(0.9);
}

.p-pres__id {
  position: relative;
  z-index: 2;
  max-width: 34em;
}

.p-pres__en {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), clamp(13px, 0.83vw, 16px));
  font-weight: 700;
  color: #e0484c;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  align-items: center;
  gap: 14px;
}

.p-pres__en::after {
  width: clamp(40px, 4.2vw, 80px);
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0.6;
}

.p-pres__role {
  display: flex;
  margin-top: clamp(18px, 1.67vw, 32px);
  font-size: max(var(--fs-min), clamp(14px, 0.94vw, 18px));
  font-weight: 500;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
  flex-wrap: wrap;
  gap: 4px 14px;
}

.p-pres__role span {
  font-weight: 700;
  color: #fff;
}

.p-pres__name {
  margin-top: clamp(6px, 0.6vw, 12px);
  font-family: var(--f-gothic);
  font-size: clamp(48px, 5.4vw, 104px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}

.p-company-profile__title {
  display: flex;
  margin-top: clamp(24px, 2.1vw, 40px);
  flex-wrap: wrap;
  gap: 10px;
}

.p-company-profile__title li {
  display: inline-flex;
  padding: 9px 18px 9px 14px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.94);
  letter-spacing: 0.04em;
  align-items: center;
  gap: 9px;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}

.p-company-profile__title li::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e0484c;
  box-shadow: 0 0 0 3px rgba(224, 72, 76, 0.24);
  content: "";
  flex: none;
}

.p-pres__en,
.p-pres__role,
.p-pres__name,
.p-company-profile__title {
  opacity: 0;
  transition: opacity 1s ease, transform 1.1s var(--ease);
  transform: translateY(24px);
}

.p-pres__role {
  transition-delay: 0.1s;
}

.p-pres__name {
  transition-delay: 0.2s;
}

.p-company-profile__title {
  transition-delay: 0.32s;
}

.p-pres__stage.is-in :is(.p-pres__en, .p-pres__role, .p-pres__name, .p-company-profile__title) {
  opacity: 1;
  transform: none;
}

.p-pres__stage.is-in .p-pres__photo img {
  scale: 1;
}

.p-pres__intro {
  display: grid;
  margin-top: clamp(48px, 5vw, 96px);
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr);
  gap: 20px clamp(24px, 4.4vw, 80px);
}

.p-pres__label {
  display: flex;
  height: -moz-fit-content;
  height: fit-content;
  padding-top: 0.5em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 13px);
  font-weight: 700;
  color: #d6363a;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  align-items: center;
  gap: 12px;
}

.p-pres__label::before {
  width: 28px;
  height: 1px;
  background: currentColor;
  content: "";
}

.p-pres__text p {
  font-size: max(var(--fs-min), clamp(15px, 0.94vw, 17px));
  line-height: 2.1;
}

.p-pres__text p + p {
  margin-top: 1.2em;
  color: var(--mute);
}

.p-pres__text p:first-child {
  font-size: max(var(--fs-min), clamp(17px, 1.25vw, 23px));
  font-weight: 700;
  line-height: 1.95;
  font-feature-settings: "palt";
}

.p-pres__bento {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(10px, 0.83vw, 16px);
}

.p-pres__tile {
  position: relative;
  display: flex;
  overflow: hidden;
  flex-direction: column;
  min-height: clamp(260px, 22vw, 360px);
  padding: clamp(24px, 2.3vw, 44px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  opacity: 0;
  transition: opacity 1s ease, transform 1.1s var(--ease);
  transition-delay: calc(var(--i) * 0.1s);
  transform: translateY(32px);
  isolation: isolate;
}

.p-pres__bento.is-in .p-pres__tile {
  opacity: 1;
  transform: none;
}

.p-pres__tile--field {
  grid-column: span 7;
}

.p-pres__tile--field::after,
.p-pres__tile--sec::after {
  position: absolute;
  z-index: -1;
  right: -0.04em;
  bottom: -0.22em;
  font-family: var(--f-latin);
  font-size: clamp(80px, 8.3vw, 160px);
  font-style: italic;
  line-height: 1;
  color: rgba(14, 22, 36, 0.045);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-pres__tile--field::after {
  content: "Expertise";
}

.p-pres__tile--sec::after {
  content: "Security";
}

.p-pres__tile--exp {
  background: radial-gradient(80% 90% at 100% 0%, rgba(214, 54, 58, 0.34), transparent 70%), #263039;
  color: #fff;
  grid-column: span 5;
}

.p-pres__tile--exp::before {
  position: absolute;
  z-index: -1;
  top: -40%;
  right: -30%;
  width: 110%;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 34px, rgba(255, 255, 255, 0.07) 34px 35px);
  pointer-events: none;
  content: "";
  aspect-ratio: 1;
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent);
          mask-image: radial-gradient(closest-side, #000 40%, transparent);
}

.p-pres__tile--cert {
  background: #fbe8e9;
  grid-column: span 5;
}

.p-pres__tile--sec {
  grid-column: span 7;
}

.p-pres__tile dt {
  display: flex;
  font-size: max(var(--fs-min), clamp(15px, 0.94vw, 18px));
  font-weight: 700;
  line-height: 1.5;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.p-pres__no {
  margin-left: auto;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(15px, 0.94vw, 18px);
  font-weight: 400;
  line-height: 1;
  color: #d6363a;
  order: 1;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-pres__tile--exp .p-pres__no {
  color: #ff8a80;
}

.p-pres__tile dd {
  display: flex;
  flex-direction: column;
  margin: clamp(24px, 2.1vw, 40px) 0 0;
  flex: 1 1;
  justify-content: flex-end;
  gap: clamp(14px, 1.25vw, 22px);
}

.p-pres__tile dd > p:not(.p-pres__key) {
  max-width: 34em;
  font-size: max(var(--fs-min), 15px);
  line-height: 1.85;
}

.p-pres__tile--exp dd > p:not(.p-pres__key) {
  color: rgba(255, 255, 255, 0.82);
}

.p-pres__key {
  display: flex;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  line-height: 0.9;
  letter-spacing: -0.02em;
  align-items: baseline;
  gap: 0.12em;
}

.p-pres__key b {
  font-weight: 400;
}

.p-pres__key span {
  font-family: var(--f-gothic);
  font-size: clamp(18px, 1.46vw, 28px);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.p-pres__tile--exp .p-pres__key b {
  background: linear-gradient(180deg, #fff 30%, #ff8a80);
  -webkit-background-clip: text;
  background-clip: text;
  font-size: clamp(96px, 9.4vw, 180px);
  color: transparent;
}

.p-pres__tile--cert .p-pres__key b {
  font-size: clamp(56px, 5.2vw, 100px);
  color: #d6363a;
}

.p-pres__tile--sec .p-pres__key b {
  font-size: clamp(40px, 4vw, 76px);
  color: var(--ink);
}

.p-pres__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.p-pres__tags li {
  display: inline-flex;
  padding: clamp(10px, 0.83vw, 16px) clamp(18px, 1.46vw, 28px) clamp(10px, 0.83vw, 16px) clamp(14px, 1.15vw, 22px);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(14, 22, 36, 0.04);
  font-size: max(var(--fs-min), clamp(15px, 1.04vw, 20px));
  font-weight: 700;
  line-height: 1.3;
  align-items: center;
  gap: 10px;
}

.p-pres__tags li::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d6363a;
  content: "";
  flex: none;
}

.p-pres__tags small {
  font-size: 0.78em;
  color: var(--mute);
}

@media (prefers-reduced-motion: reduce) {
  .p-pres__en,
  .p-pres__role,
  .p-pres__name,
  .p-company-profile__title,
  .p-pres__tile {
    opacity: 1;
    transition: none;
    transform: none;
  }
  .p-pres__photo img {
    transition: none;
    scale: 1;
  }
}
@media screen and (max-width: 1080px) {
  .p-pres__tile--field,
  .p-pres__tile--sec {
    min-height: clamp(200px, 24vw, 260px);
    grid-column: 1/-1;
  }
  .p-pres__tile--exp,
  .p-pres__tile--cert {
    grid-column: span 6;
  }
  .p-pres__tile--exp {
    order: 1;
  }
  .p-pres__tile--cert {
    order: 2;
  }
  .p-pres__tile--sec {
    order: 3;
  }
}
@media screen and (max-width: 960px) {
  .p-pres__stage {
    min-height: 0;
    padding-top: calc(min(62vw, 520px) - 72px);
  }
  .p-pres__photo {
    bottom: auto;
    left: 0;
    width: 100%;
    height: min(62vw, 520px);
    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent);
            mask-image: linear-gradient(180deg, #000 55%, transparent);
  }
  .p-pres__photo::after {
    display: none;
  }
  .p-pres__photo img {
    -o-object-position: 66% 30%;
       object-position: 66% 30%;
  }
  .p-pres__back {
    top: auto;
    right: -0.04em;
    bottom: -0.24em;
    left: auto;
  }
  .p-pres__stage::before {
    -webkit-mask-image: radial-gradient(70% 50% at 0% 100%, #000, transparent);
            mask-image: radial-gradient(70% 50% at 0% 100%, #000, transparent);
  }
  .p-pres__intro {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-pres__stage {
    padding: calc(86vw - 56px) 22px 32px;
  }
  .p-pres__photo {
    height: 86vw;
  }
  .p-pres__photo img {
    -o-object-position: 70% 30%;
       object-position: 70% 30%;
  }
  .p-pres__en {
    font-size: 12px;
    letter-spacing: 0.1em;
    gap: 10px;
  }
  .p-pres__en::after {
    width: 28px;
  }
  .p-pres__name {
    font-size: 44px;
  }
  .p-company-profile__title {
    gap: 8px;
  }
  .p-company-profile__title li {
    padding: 7px 14px 7px 12px;
    font-size: 13px;
  }
  .p-pres__tile {
    min-height: 0;
    grid-column: 1/-1;
  }
  .p-pres__tile--exp .p-pres__key b {
    font-size: 120px;
  }
  .p-pres__tags li {
    font-size: 15px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) :is(.p-pres__tile--field, .p-pres__tile--sec) {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
  :root:not([data-theme=light]) .p-pres__tags li {
    background: var(--paper);
  }
}
:root[data-theme=dark] :is(.p-pres__tile--field, .p-pres__tile--sec) {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

:root[data-theme=dark] .p-pres__tags li {
  background: var(--paper);
}

.p-company-overview {
  border-radius: var(--stage-r);
  background: #f4f5f7;
  margin-inline: var(--stage-gap);
}

.p-company-overview__list {
  margin-top: clamp(32px, 3.3vw, 64px);
  padding: clamp(8px, 1vw, 16px) clamp(24px, 4.4vw, 80px);
  border-radius: var(--inner-r);
  background: #fff;
}

.p-company-overview__list > div {
  display: grid;
  grid-template-columns: 12em minmax(0, 1fr);
  gap: 8px 24px;
  padding-block: clamp(20px, 1.7vw, 30px);
}

.p-company-overview__list > div + div {
  border-top: 1px solid #e6e9ee;
}

.p-company-overview__list dt {
  position: relative;
  padding-left: 16px;
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.9;
}

.p-company-overview__list dt::before {
  position: absolute;
  top: 0.8em;
  left: 0;
  width: 6px;
  border-radius: 50%;
  background: #d42a2f;
  content: "";
  aspect-ratio: 1;
}

.p-company-overview__list dd {
  font-size: max(var(--fs-min), 16px);
  line-height: 1.9;
}

.p-company-overview__list a {
  text-decoration: underline;
  transition: color 0.3s ease, text-decoration-color 0.3s ease;
  text-decoration-color: rgba(14, 22, 36, 0.3);
  text-underline-offset: 4px;
}

.p-company-overview__list a:hover {
  color: #d42a2f;
  text-decoration-color: currentColor;
}

@media screen and (min-width: 961px) {
  .p-company-overview__list .p-company-overview__tel {
    text-decoration: none;
    pointer-events: none;
  }
}
.p-company-overview__map {
  display: inline-block;
  margin-top: 4px;
  font-size: max(var(--fs-min), 14px);
}

@media screen and (max-width: 640px) {
  .p-company-overview__list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }
  .p-company-overview {
    padding-block: 3em;
  }
}
.p-single-page {
  padding-top: clamp(112px, 9vw, 176px);
}

.p-single {
  width: min(100% - var(--gutter) * 2, 880px);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-single {
    width: 90%;
  }
}
.p-single__en {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  color: #d42a2f;
  letter-spacing: 0.08em;
  align-items: center;
  gap: 12px;
}

.p-single__en::after {
  width: 40px;
  height: 1px;
  background: currentColor;
  content: "";
}

.p-single__title {
  margin-top: clamp(14px, 1.2vw, 22px);
  font-family: var(--f-gothic);
  font-size: clamp(26px, 2.6vw, 46px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;
  font-feature-settings: "palt";
}

.p-single__meta {
  display: flex;
  margin-top: clamp(18px, 1.6vw, 28px);
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: max(var(--fs-min), 14px);
  color: var(--mute);
  letter-spacing: 0.04em;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
}

.p-single__updated {
  font-family: var(--f-gothic);
}

.p-single__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.p-single__cats a {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 999px;
  background: #0e1624;
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), 12px);
  font-weight: 700;
  line-height: 1.6;
  color: #fff;
  transition: background-color 0.3s ease;
}

.p-single__cats a:hover {
  background: #d42a2f;
}

.p-single__by {
  display: inline-flex;
  margin-top: 20px;
  padding: 6px 18px 6px 6px;
  border: 1px solid #e6e9ee;
  border-radius: 999px;
  transition: border-color 0.3s ease;
  align-items: center;
  gap: 12px;
}

.p-single__by:hover {
  border-color: #0e1624;
}

.p-single__by img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-single__by span {
  display: flex;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  align-items: baseline;
  gap: 8px;
}

.p-single__by small {
  font-size: 12px;
  font-weight: 500;
  color: var(--mute);
}

.p-single__by em {
  font-size: 12px;
  font-weight: 500;
  font-style: normal;
  color: var(--mute);
}

.p-single__thumb {
  overflow: hidden;
  margin-top: clamp(28px, 2.6vw, 48px);
  border-radius: var(--inner-r);
}

.p-single__thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.p-single__lead {
  margin-top: clamp(28px, 2.6vw, 48px);
  font-size: max(var(--fs-min), 16px);
  line-height: 2.1;
}

.p-single__lead p + p {
  margin-top: 1em;
}

.p-single__toc {
  position: relative;
  overflow: hidden;
  margin-top: clamp(32px, 3vw, 56px);
  padding: clamp(28px, 2.6vw, 44px) clamp(24px, 3vw, 52px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  isolation: isolate;
}

.p-single__toc::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  width: 40%;
  height: 70%;
  background: radial-gradient(rgba(14, 22, 36, 0.1) 1px, transparent 1.5px) 0 0/12px 12px;
  content: "";
  -webkit-mask-image: linear-gradient(225deg, #000, transparent 70%);
          mask-image: linear-gradient(225deg, #000, transparent 70%);
}

.p-single__toc-title {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(20px, 1.6vw, 28px);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.p-single__toc ol {
  display: grid;
  margin-top: 16px;
  gap: 2px;
}

.p-single__toc a {
  display: grid;
  padding: 6px 0;
  font-size: max(var(--fs-min), 15px);
  font-weight: 700;
  line-height: 1.7;
  transition: color 0.3s ease;
  grid-template-columns: 3em minmax(0, 1fr);
  gap: 8px;
}

.p-single__toc .is-h3 a {
  padding-left: 1.5em;
  font-size: max(var(--fs-min), 14px);
  font-weight: 500;
  color: #3b4554;
  grid-template-columns: 3em minmax(0, 1fr);
}

.p-single__toc a:hover {
  color: #d42a2f;
}

.p-single__toc-num {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-weight: 500;
  color: #d42a2f;
  letter-spacing: 0.02em;
}

.p-single__body {
  margin-top: clamp(32px, 3vw, 56px);
  font-size: max(var(--fs-min), 16px);
  line-height: 2.05;
  letter-spacing: 0.02em;
  counter-reset: h2;
}

.p-single__body > * + * {
  margin-top: 1.4em;
}

.p-single__body :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--f-gothic);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-wrap: pretty;
  font-feature-settings: "palt";
}

.p-single__body :is(h1, h2) {
  position: relative;
  margin-top: clamp(64px, 6vw, 112px);
  padding-top: clamp(20px, 1.67vw, 28px);
  border-top: 1px solid var(--rule);
  line-height: 1.5;
}

.p-single__body :is(h1, h2)::after {
  position: absolute;
  top: -1px;
  left: 0;
  width: clamp(48px, 4.2vw, 72px);
  height: 3px;
  border-radius: 0 0 2px 2px;
  background: linear-gradient(90deg, #d42a2f, #e8452b);
  content: "";
}

.p-single__body h1 {
  font-size: clamp(26px, 2.2vw, 38px);
}

.p-single__body h2 {
  font-size: clamp(22px, 1.8vw, 32px);
  counter-increment: h2;
}

.p-single__body h2::before {
  display: block;
  margin-bottom: 10px;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(14px, 0.94vw, 17px);
  font-weight: 400;
  line-height: 1;
  color: #d42a2f;
  letter-spacing: 0.06em;
  content: counter(h2, decimal-leading-zero);
  font-variant-numeric: lining-nums tabular-nums;
}

.p-single__body h3 {
  position: relative;
  margin-top: clamp(44px, 4vw, 72px);
  padding-left: 22px;
  font-size: clamp(19px, 1.4vw, 25px);
  line-height: 1.6;
}

.p-single__body h3::before {
  position: absolute;
  top: 0.24em;
  bottom: 0.24em;
  left: 0;
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(#e8452b, #d42a2f);
  content: "";
}

.p-single__body h4 {
  display: flex;
  margin-top: clamp(36px, 3.2vw, 56px);
  font-size: clamp(17px, 1.2vw, 21px);
  line-height: 1.6;
  align-items: center;
  gap: 14px;
}

.p-single__body h4::before {
  width: 10px;
  border: 2.5px solid #d42a2f;
  border-radius: 50%;
  content: "";
  flex: none;
  aspect-ratio: 1;
}

.p-single__body h5 {
  margin-top: clamp(32px, 2.8vw, 48px);
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--rule);
  font-size: max(var(--fs-min), 17px);
  line-height: 1.6;
}

.p-single__body h6 {
  margin-top: clamp(28px, 2.4vw, 40px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.6;
  color: var(--mute);
}

.p-single__body h6::before {
  color: #d42a2f;
  content: "— ";
}

.p-single__body :is(h1, h2, h3, h4, h5, h6) + * {
  margin-top: 1em;
}

.p-single__body a {
  color: #b8232a;
  text-decoration: underline;
  transition: color 0.3s ease, text-decoration-color 0.3s ease;
  text-decoration-color: rgba(184, 35, 42, 0.35);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.p-single__body a:hover {
  text-decoration-color: currentColor;
}

.p-single__body strong {
  background: linear-gradient(transparent 72%, rgba(212, 42, 47, 0.26) 72%, rgba(212, 42, 47, 0.26) 100%) no-repeat 0 0/100% 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  font-weight: 700;
}

.p-single__body strong.js-reveal {
  background-size: 0% 100%;
  transition: background-size 1.6s 0.2s var(--ease);
}

.p-single__body strong.js-reveal.is-in {
  background-size: 100% 100%;
}

.p-single__body :is(ul, ol) {
  padding: clamp(22px, 2vw, 36px) clamp(22px, 2.5vw, 44px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
}

.p-single__body li {
  position: relative;
}

.p-single__body li + li {
  margin-top: 0.7em;
}

.p-single__body ul > li {
  padding-left: 1.5em;
}

.p-single__body ul > li::before {
  position: absolute;
  top: 0.82em;
  left: 0.2em;
  width: 8px;
  border-radius: 50%;
  background: #d42a2f;
  box-shadow: 0 0 0 4px rgba(212, 42, 47, 0.14);
  content: "";
  aspect-ratio: 1;
}

.p-single__body ol {
  counter-reset: li;
}

.p-single__body ol > li {
  padding-left: 2.6em;
  counter-increment: li;
}

.p-single__body ol > li::before {
  position: absolute;
  top: 0.32em;
  left: 0;
  display: grid;
  width: 1.75em;
  padding-top: 0.06em;
  border-radius: 50%;
  background: #263039;
  font-family: "Outfit", sans-serif;
  font-size: 0.86em;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  content: counter(li);
  place-items: center;
  aspect-ratio: 1;
  font-variant-numeric: lining-nums;
}

.p-single__body li :is(ul, ol) {
  margin-top: 0.7em;
  padding: 0;
  background: none;
}

.p-single__body li ul > li::before {
  width: 7px;
  border: 1.5px solid #d42a2f;
  background: none;
  box-shadow: none;
}

.p-single__body li ol > li::before {
  border: 1px solid var(--rule);
  background: none;
  color: #d42a2f;
}

.p-single__body blockquote {
  position: relative;
  overflow: hidden;
  padding: clamp(32px, 3vw, 52px) clamp(24px, 3.3vw, 56px) clamp(28px, 2.6vw, 44px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  isolation: isolate;
  margin-inline: 0;
}

.p-single__body blockquote::before {
  position: absolute;
  z-index: -1;
  top: -0.12em;
  right: 0.08em;
  font-family: var(--f-latin);
  font-size: clamp(140px, 12vw, 220px);
  line-height: 1;
  color: rgba(212, 42, 47, 0.14);
  pointer-events: none;
  content: "“";
}

.p-single__body blockquote > * + * {
  margin-top: 1em;
}

.p-single__body blockquote p {
  font-size: max(var(--fs-min), clamp(16px, 1.15vw, 20px));
  font-weight: 700;
  line-height: 1.95;
}

.p-single__body blockquote cite {
  display: flex;
  margin-top: 1.4em;
  font-size: max(var(--fs-min), 13px);
  font-weight: 500;
  font-style: normal;
  line-height: 1.6;
  color: var(--mute);
  align-items: center;
  gap: 12px;
}

.p-single__body blockquote cite::before {
  width: 24px;
  height: 1px;
  background: #d42a2f;
  content: "";
  flex: none;
}

.p-single__body .wp-block-pullquote {
  padding: clamp(32px, 3.3vw, 56px) 0;
  text-align: center;
  border-block: 1px solid var(--rule);
}

.p-single__body .wp-block-pullquote blockquote {
  padding: 0;
  background: none;
}

.p-single__body .wp-block-pullquote blockquote::before {
  position: static;
  display: block;
  height: 0.5em;
}

.p-single__body .wp-block-pullquote cite {
  justify-content: center;
}

.p-single__body img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--inner-r);
}

.p-single__body :is(.wp-block-image, .wp-block-embed, figure) {
  margin-inline: 0;
}

.p-single__body :is(.wp-block-image, .wp-block-embed) {
  margin-top: clamp(36px, 3.3vw, 56px);
  margin-bottom: 0;
}

.p-single__body :is(.wp-block-image, .wp-block-embed) + * {
  margin-top: clamp(36px, 3.3vw, 56px);
}

.p-single__body .wp-block-image img {
  width: 100%;
  box-shadow: 0 32px 64px -40px rgba(14, 22, 36, 0.45);
}

.p-single__body :is(figcaption, .wp-element-caption) {
  display: flex;
  margin-top: 14px;
  margin-bottom: 0;
  font-size: max(var(--fs-min), 13px);
  line-height: 1.7;
  color: var(--mute);
  text-align: left;
  gap: 10px;
}

.p-single__body :is(figcaption, .wp-element-caption)::before {
  width: 16px;
  height: 1px;
  margin-top: 0.85em;
  background: #d42a2f;
  content: "";
  flex: none;
}

.p-single__body .wp-block-embed__wrapper {
  display: flex;
  justify-content: center;
}

.p-single__body .wp-block-embed.is-type-video .wp-block-embed__wrapper {
  display: block;
  overflow: hidden;
  border-radius: var(--inner-r);
  background: #263039;
  box-shadow: 0 32px 64px -40px rgba(14, 22, 36, 0.45);
}

.p-single__body .wp-block-embed.is-type-video .wp-block-embed__wrapper::before {
  display: none;
}

.p-single__body .wp-block-embed.is-type-video iframe {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}

.p-single__body .wp-block-embed.wp-embed-aspect-4-3 iframe {
  aspect-ratio: 4/3;
}

.p-single__body .wp-block-embed.wp-embed-aspect-1-1 iframe {
  aspect-ratio: 1;
}

.p-single__body .wp-block-embed.wp-embed-aspect-9-16 iframe {
  aspect-ratio: 9/16;
}

.p-single__body .wp-block-embed.wp-embed-aspect-9-16 .wp-block-embed__wrapper {
  max-width: 360px;
  margin-inline: auto;
}

.p-single__body .wp-block-embed.is-type-rich :is(figcaption, .wp-element-caption) {
  justify-content: center;
}

.p-single__body .wp-block-embed.is-type-rich :is(figcaption, .wp-element-caption)::before {
  display: none;
}

.p-single__body :is(.twitter-tweet, .instagram-media) {
  margin-inline: auto !important;
}

.p-single__body blockquote:is(.twitter-tweet, .instagram-media) {
  max-width: 550px;
  padding: 24px;
  border: 1px solid var(--rule);
  background: #fff;
}

.p-single__body blockquote:is(.twitter-tweet, .instagram-media)::before {
  display: none;
}

.p-single__body blockquote:is(.twitter-tweet, .instagram-media) p {
  font-size: max(var(--fs-min), 15px);
  font-weight: 500;
}

.p-single__body .instagram-media {
  overflow: hidden;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 540px !important;
  border-radius: var(--inner-r) !important;
}

.p-single__body iframe.twitter-tweet,
.p-single__body .twitter-tweet-rendered {
  margin-block: 0 !important;
}

.p-single__body table {
  width: 100%;
  border-collapse: collapse;
  font-size: max(var(--fs-min), 15px);
}

.p-single__body :is(th, td) {
  padding: 12px 16px;
  border: 1px solid #d9dee6;
  text-align: left;
  vertical-align: top;
}

.p-single__body th {
  background: #f4f5f7;
  font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
  .p-single__body strong.js-reveal {
    background-size: 100% 100%;
    transition: none;
  }
}
@media screen and (max-width: 640px) {
  .p-single__body :is(ul, ol) {
    padding: 20px 18px;
  }
  .p-single__body blockquote {
    padding: 28px 20px 24px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-single__body :is(ul, ol, blockquote:not(.twitter-tweet, .instagram-media)) {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
  :root:not([data-theme=light]) .p-single__body li :is(ul, ol) {
    background: none;
  }
}
:root[data-theme=dark] .p-single__body :is(ul, ol, blockquote:not(.twitter-tweet, .instagram-media)) {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

:root[data-theme=dark] .p-single__body li :is(ul, ol) {
  background: none;
}

.p-single__writer {
  position: relative;
  display: grid;
  overflow: hidden;
  margin-top: clamp(64px, 6vw, 112px);
  padding: clamp(28px, 3vw, 52px);
  border-radius: var(--inner-r);
  background: radial-gradient(60% 80% at 100% 0%, rgba(214, 54, 58, 0.28), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(20px, 2.2vw, 40px);
}

.p-single__writer::before {
  position: absolute;
  z-index: -1;
  background: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1.6px) 0 0/14px 14px;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(50% 80% at 100% 0%, #000, transparent);
          mask-image: radial-gradient(50% 80% at 100% 0%, #000, transparent);
}

.p-single__writer-photo {
  width: clamp(72px, 6vw, 100px);
  height: clamp(72px, 6vw, 100px);
  border-radius: 50%;
  box-shadow: 0 0 0 3px #263039, 0 0 0 4.5px rgba(224, 72, 76, 0.9);
  -o-object-fit: cover;
     object-fit: cover;
}

.p-single__writer-name {
  font-family: var(--f-gothic);
  font-size: clamp(20px, 1.5vw, 26px);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.p-single__writer-name span {
  font-size: 0.6em;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.04em;
}

.p-single__writer-title {
  margin-top: 6px;
  font-family: var(--f-gothic);
  font-size: max(var(--fs-min), 12px);
  font-weight: 600;
  color: #e0484c;
  letter-spacing: 0.04em;
}

.p-single__writer-text {
  margin-top: 16px;
  font-size: max(var(--fs-min), 15px);
  line-height: 1.95;
  color: rgba(255, 255, 255, 0.85);
}

.p-single__writer-more {
  display: inline-flex;
  margin-top: 20px;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  align-items: center;
  gap: 14px;
}

.p-single__writer-more i {
  width: 36px;
  background: #d6363a;
  color: #fff;
  aspect-ratio: 1;
}

.p-single__writer-more i svg {
  width: 36%;
  height: auto;
}

.p-single__crumb {
  width: min(100% - var(--gutter) * 2, 880px);
  margin: clamp(48px, 4.4vw, 80px) auto clamp(64px, 6vw, 112px);
  padding-top: 20px;
  border-top: 1px solid #e6e9ee;
}

@media screen and (max-width: 640px) {
  .p-single__crumb {
    width: 90%;
  }
}
.p-single__crumb ol {
  display: flex;
  font-size: max(var(--fs-min), 13px);
  line-height: 1.7;
  color: var(--mute);
  flex-wrap: wrap;
  gap: 4px 0.9em;
}

.p-single__crumb li + li::before {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 0.9em;
  border-top: 1.5px solid #d42a2f;
  border-right: 1.5px solid #d42a2f;
  content: "";
  transform: translateY(-2px) rotate(45deg);
}

.p-single__crumb a:hover {
  color: #d42a2f;
}

@media screen and (max-width: 640px) {
  .p-single-page {
    padding-top: 96px;
  }
  .p-single__writer {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-single__toc a,
  .p-single__toc .is-h3 a {
    grid-template-columns: 2.6em minmax(0, 1fr);
  }
  .p-single__toc .is-h3 a {
    padding-left: 0.8em;
  }
}
.p-clinic-case {
  padding-top: 0;
}

.p-clinic-case__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-clinic-case__item {
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 1.2vw, 20px) clamp(14px, 1.2vw, 20px) clamp(22px, 1.8vw, 32px);
  border-radius: var(--inner-r);
  background: var(--sd-tile);
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
}

.p-clinic-case__list.is-in .p-clinic-case__item {
  opacity: 1;
  transform: none;
}

.p-clinic-case__thumb {
  display: grid;
  border-radius: calc(var(--inner-r) - 4px);
  background: radial-gradient(rgba(14, 22, 36, 0.12) 1px, transparent 1.5px) 0 0/12px 12px, #e9ecf0;
  place-items: center;
  aspect-ratio: 16/9;
}

.p-clinic-case__thumb:has(img) {
  overflow: hidden;
  background: #e9ecf0;
}

.p-clinic-case__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-clinic-case__thumb span {
  padding: 6px 14px;
  border-radius: 4px;
  background: rgba(38, 48, 57, 0.85);
  font-size: max(var(--fs-min), 13px);
  font-weight: 700;
  color: #fff;
}

.p-clinic-case__title {
  margin-top: clamp(16px, 1.4vw, 24px);
  font-family: var(--f-gothic);
  font-size: clamp(19px, 1.35vw, 25px);
  font-weight: 700;
  line-height: 1.5;
  padding-inline: 6px;
}

.p-clinic-case__meta {
  margin-top: 4px;
  font-size: max(var(--fs-min), 13px);
  color: var(--mute);
  padding-inline: 6px;
}

.p-clinic-case__tags {
  display: flex;
  margin-top: 14px;
  flex-wrap: wrap;
  gap: 6px;
  padding-inline: 6px;
}

.p-clinic-case__tags li {
  padding: 0 12px;
  border-radius: 999px;
  background: #fbe9e9;
  font-size: max(var(--fs-min), 12px);
  font-weight: 700;
  color: #b8232a;
}

.p-clinic-case__data {
  display: grid;
  margin-top: 16px;
  border-top: 1px solid var(--rule);
  padding-inline: 6px;
}

.p-clinic-case__data div {
  display: grid;
  border-bottom: 1px solid var(--rule);
  font-size: max(var(--fs-min), 14px);
  line-height: 1.6;
  grid-template-columns: 5.5em minmax(0, 1fr);
  gap: 12px;
  padding-block: 10px;
}

.p-clinic-case__data dt {
  font-weight: 700;
}

.p-clinic-case__data dd {
  color: var(--mute);
}

.p-clinic-case__more {
  display: inline-flex;
  margin-top: auto;
  padding-top: 20px;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  color: var(--mute);
  cursor: default;
  align-self: center;
  align-items: center;
  gap: 12px;
}

.p-clinic-case__more i {
  width: 32px;
  box-shadow: inset 0 0 0 1px var(--rule);
  aspect-ratio: 1;
}

.p-clinic-case__more i svg {
  width: 36%;
  height: auto;
}

.p-clinic-case__title {
  text-wrap: wrap;
  word-break: auto-phrase;
}

@media screen and (min-width: 961px) {
  .p-clinic-case__list {
    row-gap: 0;
  }
  .p-clinic-case__item {
    display: grid;
    grid-row: span 7;
    grid-template-rows: subgrid;
    row-gap: 0;
  }
  .p-clinic-case__title,
  .p-clinic-case__meta,
  .p-clinic-case__tags {
    align-self: start;
  }
  .p-clinic-case__data {
    grid-row: span 3;
    grid-template-rows: subgrid;
  }
}
@media screen and (max-width: 960px) {
  .p-clinic-case__list {
    max-width: 560px;
    grid-template-columns: minmax(0, 1fr);
    margin-inline: auto;
  }
}
@media screen and (max-width: 960px) {
  .p-clinic .p-sd-hero__key {
    font-size: clamp(40px, 10.4vw, 80px);
  }
}
@media screen and (max-width: 640px) {
  .p-clinic .p-sd-hub__core {
    z-index: 1;
    scale: 1.4;
  }
}
.p-rflow {
  --u: 1cqw;
  --fs-floor: 0px;
  position: relative;
  width: min(100%, 660px);
  margin: 0 auto;
  color: #0e1624;
}

.p-rflow__scene {
  position: relative;
  font-size: max(var(--fs-floor), 2.1 * var(--u));
  line-height: 1.5;
  container-type: inline-size;
  aspect-ratio: 1/0.96;
  font-feature-settings: "palt";
}

.p-rflow__scene::before {
  position: absolute;
  top: 8%;
  left: 46%;
  width: 60cqw;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(224, 72, 76, 0.32), transparent 72%);
  pointer-events: none;
  content: "";
  aspect-ratio: 1;
}

.p-rflow__ribbons {
  position: absolute;
  overflow: visible;
  width: 100%;
  height: 100%;
  inset: 0;
}

.p-rflow__ribbons path {
  animation: rflowDash 1.2s linear infinite;
  fill: none;
  stroke: url(#rflowG);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-dasharray: 6 6;
  vector-effect: non-scaling-stroke;
}

@keyframes rflowDash {
  to {
    stroke-dashoffset: -12;
  }
}
.p-rflow__ribbons circle {
  fill: #fff;
  filter: drop-shadow(0 0 1.4px rgba(255, 255, 255, 0.9));
}

.p-rflow__ribbons--sp {
  display: none;
}

.p-rflow__ribbons--sp path {
  stroke: url(#rflowGv);
}

.p-rflow__node {
  position: absolute;
  z-index: 2;
  top: 52%;
  left: 62%;
  width: calc(3.4 * var(--u));
  border-radius: 50%;
  background: #e0484c;
  box-shadow: 0 0 0 0 rgba(224, 72, 76, 0.6);
  animation: rflowNode 1.8s ease-out infinite;
  aspect-ratio: 1;
  translate: -50% -50%;
}

@keyframes rflowNode {
  to {
    box-shadow: 0 0 0 calc(3 * var(--u)) rgba(224, 72, 76, 0);
  }
}
.p-rflow__card,
.p-rflow__phone {
  position: absolute;
  border-radius: calc(1.8 * var(--u));
  background: #fff;
  box-shadow: 0 calc(4 * var(--u)) calc(8 * var(--u)) calc(-3 * var(--u)) rgba(0, 0, 0, 0.7);
  animation: rflowIn 1s calc(0.4s + var(--i) * 0.14s) var(--ease) both, rflowFloat 5.5s calc(var(--i) * -1.3s) ease-in-out infinite alternate;
}

@keyframes rflowIn {
  from {
    opacity: 0;
    translate: calc(-4 * var(--u)) 0;
  }
}
@keyframes rflowFloat {
  from {
    transform: translateY(calc(-0.7 * var(--u)));
  }
  to {
    transform: translateY(calc(0.7 * var(--u)));
  }
}
.p-rflow__label {
  position: absolute;
  top: 0;
  left: calc(1.8 * var(--u));
  padding: calc(0.5 * var(--u)) calc(1.6 * var(--u));
  border-radius: 999px;
  background: linear-gradient(135deg, #ee7b2c -20%, #d42a2f 70%);
  box-shadow: 0 calc(1.4 * var(--u)) calc(3 * var(--u)) calc(-1 * var(--u)) rgba(214, 54, 58, 0.8);
  font-size: max(var(--fs-floor), 1.6 * var(--u));
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  translate: 0 -55%;
}

.p-rflow__card {
  padding: calc(2.4 * var(--u)) calc(2 * var(--u)) calc(2 * var(--u));
}

.p-rflow__card--hp {
  top: 3%;
  left: 0;
  overflow: visible;
  width: calc(44 * var(--u));
  padding: 0;
}

.p-rflow__bar {
  display: flex;
  padding: calc(1.2 * var(--u)) calc(1.6 * var(--u));
  border-radius: calc(1.8 * var(--u)) calc(1.8 * var(--u)) 0 0;
  background: #0e1624;
  gap: calc(0.7 * var(--u));
}

.p-rflow__bar i {
  width: calc(1 * var(--u));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  aspect-ratio: 1;
}

.p-rflow__bar i:first-child {
  background: #e0484c;
}

.p-rflow__hp {
  margin: calc(1.4 * var(--u));
  padding: calc(2 * var(--u));
  border-radius: calc(1.2 * var(--u));
  background: radial-gradient(60% 90% at 100% 0%, rgba(224, 72, 76, 0.55), transparent 70%), linear-gradient(120deg, #263039, #3a4651);
  color: #fff;
}

.p-rflow__en {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-floor), 1.4 * var(--u));
  font-weight: 700;
  color: #ff8a80;
  letter-spacing: 0.16em;
}

.p-rflow__h {
  margin-top: calc(0.4 * var(--u));
  font-size: max(var(--fs-floor), 2.3 * var(--u));
  font-weight: 700;
  line-height: 1.45;
}

.p-rflow__jobs {
  display: flex;
  margin-top: calc(1.2 * var(--u));
  flex-wrap: wrap;
  gap: calc(0.6 * var(--u));
}

.p-rflow__jobs li {
  padding: calc(0.2 * var(--u)) calc(1 * var(--u));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  font-size: max(var(--fs-floor), 1.35 * var(--u));
  font-weight: 700;
}

.p-rflow__card--job {
  top: 40%;
  left: 5%;
  width: calc(42 * var(--u));
}

.p-rflow__title {
  font-size: max(var(--fs-floor), 2.3 * var(--u));
  font-weight: 700;
  color: #b8232a;
}

.p-rflow__meta {
  margin-top: calc(0.2 * var(--u));
  font-size: max(var(--fs-floor), 1.4 * var(--u));
  color: var(--mute);
}

.p-rflow__chips {
  display: flex;
  margin-top: calc(1 * var(--u));
  flex-wrap: wrap;
  gap: calc(0.6 * var(--u));
}

.p-rflow__chips li {
  padding: calc(0.2 * var(--u)) calc(1 * var(--u));
  border-radius: 999px;
  background: #fbe9e9;
  font-size: max(var(--fs-floor), 1.35 * var(--u));
  font-weight: 700;
  color: #b8232a;
}

.p-rflow__card--sns {
  top: 70%;
  left: 0;
  width: calc(41 * var(--u));
  padding: calc(2.2 * var(--u)) calc(1.4 * var(--u)) calc(1.4 * var(--u));
}

.p-rflow__post {
  display: grid;
  grid-template-columns: calc(13 * var(--u)) minmax(0, 1fr);
  gap: calc(1.4 * var(--u));
  align-items: center;
}

.p-rflow__photo {
  border-radius: calc(1 * var(--u));
  background: radial-gradient(circle at 70% 30%, rgba(255, 255, 255, 0.9) 0 9%, transparent 10%), linear-gradient(160deg, #f6d6d6, #fbe9e9 45%, #e9ecf0);
  aspect-ratio: 1;
}

.p-rflow__acct {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-floor), 1.4 * var(--u));
  font-weight: 700;
  align-items: center;
  gap: calc(0.6 * var(--u));
}

.p-rflow__acct i {
  width: calc(2 * var(--u));
  border-radius: 50%;
  background: linear-gradient(135deg, #ee7b2c, #d42a2f);
  aspect-ratio: 1;
}

.p-rflow__lines {
  display: grid;
  margin-top: calc(1 * var(--u));
  gap: calc(0.7 * var(--u));
}

.p-rflow__lines i {
  height: calc(0.7 * var(--u));
  border-radius: calc(1 * var(--u));
  background: #e2e6ec;
}

.p-rflow__lines i:last-child {
  width: 70%;
}

.p-rflow__like {
  display: flex;
  margin-top: calc(1 * var(--u));
  align-items: center;
  gap: calc(0.8 * var(--u));
}

.p-rflow__like i {
  width: 40%;
  height: calc(0.7 * var(--u));
  border-radius: calc(1 * var(--u));
  background: #e2e6ec;
}

.p-rflow__heart {
  width: calc(2 * var(--u));
  background: #e0484c;
  animation: rflowBeat 1.6s ease-in-out infinite;
  aspect-ratio: 1;
  clip-path: polygon(50% 92%, 6% 46%, 6% 22%, 22% 8%, 38% 10%, 50% 24%, 62% 10%, 78% 8%, 94% 22%, 94% 46%);
}

@keyframes rflowBeat {
  20% {
    scale: 1.3;
  }
  0%, 60%, 100% {
    scale: 1;
  }
}
.p-rflow__phone {
  top: 11%;
  left: 63%;
  width: calc(36 * var(--u));
  height: 80%;
  padding: calc(1.4 * var(--u));
  border-radius: calc(4.4 * var(--u));
  background: #0e1624;
  box-shadow: 0 0 0 calc(0.4 * var(--u)) rgba(255, 255, 255, 0.12), 0 calc(6 * var(--u)) calc(12 * var(--u)) calc(-4 * var(--u)) rgba(0, 0, 0, 0.8);
}

.p-rflow__label--phone {
  left: 50%;
  translate: -50% -55%;
}

.p-rflow__screen {
  position: relative;
  overflow: hidden;
  height: 100%;
  padding: calc(4 * var(--u)) calc(2.4 * var(--u)) calc(2.4 * var(--u));
  border-radius: calc(3.2 * var(--u));
  background: #fff;
}

.p-rflow__screen::before {
  position: absolute;
  top: calc(1.2 * var(--u));
  left: 50%;
  width: calc(10 * var(--u));
  height: calc(1.8 * var(--u));
  border-radius: 999px;
  background: #0e1624;
  content: "";
  translate: -50% 0;
}

.p-rflow__screen-head {
  padding-bottom: calc(1.2 * var(--u));
  border-bottom: 1px solid #e2e6ec;
  font-size: max(var(--fs-floor), 2.1 * var(--u));
  font-weight: 700;
  text-align: center;
}

.p-rflow__field {
  margin-top: calc(2.6 * var(--u));
}

.p-rflow__field span {
  font-size: max(var(--fs-floor), 1.45 * var(--u));
  font-weight: 700;
  color: var(--mute);
}

.p-rflow__field i {
  position: relative;
  display: block;
  height: calc(4.4 * var(--u));
  margin-top: calc(0.6 * var(--u));
  border-radius: calc(0.8 * var(--u));
  background: #f2f4f7;
}

.p-rflow__field i::after {
  position: absolute;
  top: 50%;
  left: calc(1.4 * var(--u));
  width: 0;
  height: calc(0.9 * var(--u));
  border-radius: calc(1 * var(--u));
  background: #0e1624;
  content: "";
  animation: rflowFill 6s var(--d) ease-in-out infinite;
  translate: 0 -50%;
}

@keyframes rflowFill {
  0%, 4% {
    width: 0;
  }
  16%, 86% {
    width: var(--w);
  }
  94%, 100% {
    width: 0;
  }
}
.p-rflow__check {
  display: flex;
  margin-top: calc(2 * var(--u));
  font-size: max(var(--fs-floor), 1.45 * var(--u));
  font-weight: 700;
  align-items: center;
  gap: calc(1 * var(--u));
}

.p-rflow__check i {
  width: calc(2.4 * var(--u));
  border: calc(0.3 * var(--u)) solid #a9b2bf;
  border-radius: calc(0.6 * var(--u));
  animation: rflowCheck 6s ease-in-out infinite;
  aspect-ratio: 1;
}

@keyframes rflowCheck {
  0%, 30% {
    border-color: #a9b2bf;
    background: #fff;
  }
  34%, 86% {
    border-color: #d6363a;
    background: #d6363a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.4l3.8 3.8 8-8.2' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/90%;
  }
  94%, 100% {
    border-color: #a9b2bf;
    background: #fff;
  }
}
.p-rflow__submit {
  display: block;
  margin-top: calc(2.4 * var(--u));
  padding: calc(1.3 * var(--u));
  border-radius: 999px;
  background: linear-gradient(120deg, #e02d32 30%, #e8452b);
  box-shadow: 0 calc(2 * var(--u)) calc(4 * var(--u)) calc(-2 * var(--u)) rgba(224, 45, 50, 0.9);
  font-size: max(var(--fs-floor), 1.8 * var(--u));
  font-weight: 700;
  color: #fff;
  text-align: center;
  animation: rflowPress 6s ease-in-out infinite;
}

@keyframes rflowPress {
  0%, 40%, 48%, 100% {
    scale: 1;
  }
  44% {
    scale: 0.94;
  }
}
.p-rflow__done {
  position: absolute;
  right: calc(2.4 * var(--u));
  bottom: calc(2.4 * var(--u));
  left: calc(2.4 * var(--u));
  display: flex;
  padding: calc(1.4 * var(--u)) calc(1.6 * var(--u));
  border-radius: calc(1.2 * var(--u));
  background: #0e1624;
  font-size: max(var(--fs-floor), 1.55 * var(--u));
  font-weight: 700;
  color: #fff;
  opacity: 0;
  animation: rflowDone 6s ease-in-out infinite;
  align-items: center;
  gap: calc(1 * var(--u));
  translate: 0 calc(3 * var(--u));
}

.p-rflow__done i {
  width: calc(2.6 * var(--u));
  border-radius: 50%;
  background: #e0484c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.4l3.8 3.8 8-8.2' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/80%;
  flex: none;
  aspect-ratio: 1;
}

@keyframes rflowDone {
  0%, 48% {
    opacity: 0;
    translate: 0 calc(3 * var(--u));
  }
  54%, 86% {
    opacity: 1;
    translate: 0 0;
  }
  92%, 100% {
    opacity: 0;
    translate: 0 calc(3 * var(--u));
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-rflow *,
  .p-rflow *::after {
    animation: none !important;
  }
  .p-rflow__field i::after {
    width: var(--w);
  }
  .p-rflow__ribbons circle {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  .p-rflow {
    --u: 1.35cqw;
    --fs-floor: 9px;
  }
  .p-rflow__scene {
    aspect-ratio: 1/1.52;
  }
  .p-rflow__scene::before {
    top: 34%;
    left: 10%;
    width: 80cqw;
  }
  .p-rflow__ribbons {
    display: none;
  }
  .p-rflow__ribbons--sp {
    display: block;
  }
  .p-rflow__node {
    top: 50.6%;
    left: 50%;
  }
  .p-rflow__card--hp {
    top: 2%;
    left: 0;
  }
  .p-rflow__card--job {
    top: 19.7%;
    right: 0;
    left: auto;
  }
  .p-rflow__card--sns {
    top: 32.2%;
    left: 2%;
  }
  .p-rflow__phone {
    --u: 1.15cqw;
    top: 53.3%;
    left: calc(50% - 18 * var(--u));
    height: auto;
  }
  .p-rflow__label--phone {
    right: calc(3 * var(--u));
    left: auto;
    translate: 0 -55%;
  }
  .p-rflow__screen {
    height: auto;
  }
  .p-rflow__field {
    margin-top: calc(1.8 * var(--u));
  }
  .p-rflow__field i {
    height: calc(3.8 * var(--u));
  }
}
.p-sd-team__list--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.p-recruit-approach__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-recruit-approach__list li {
  display: grid;
  padding: clamp(16px, 1.4vw, 24px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  opacity: 0;
  transition: opacity 0.9s ease, transform 1s var(--ease);
  transition-delay: calc(var(--i) * 0.12s);
  transform: translateY(24px);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  gap: clamp(20px, 2vw, 36px);
  align-items: center;
}

.p-recruit-approach__list.is-in li {
  opacity: 1;
  transform: none;
}

.p-recruit-approach__img {
  overflow: hidden;
  border-radius: calc(var(--inner-r) - 4px);
  background: #fff;
}

.p-recruit-approach__img svg {
  display: block;
  width: 100%;
  height: auto;
}

.p-recruit-approach__body h3 {
  font-family: var(--f-gothic);
  font-size: clamp(19px, 1.45vw, 28px);
  font-weight: 700;
  line-height: 1.4;
  color: #d6363a;
}

.p-recruit-approach__body p {
  margin-top: clamp(10px, 0.9vw, 16px);
  font-size: max(var(--fs-min), 15px);
  line-height: 1.9;
}

.p-recruit-points__list {
  display: grid;
  margin-top: clamp(40px, 4.2vw, 80px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sd-gap);
}

.p-recruit-points__list .p-sd-card__title {
  margin-top: clamp(16px, 1.4vw, 24px);
}

@media screen and (max-width: 1080px) {
  .p-recruit-points__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 960px) {
  .p-recruit-approach__list {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .p-sd-team__list--3 {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-recruit-approach__list li {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
  .p-recruit-approach__body p {
    font-size: 14px;
    line-height: 1.8;
  }
  .p-recruit-points__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .p-recruit-points__list .p-sd-card__title {
    margin-top: 0;
  }
}
@media screen and (max-width: 960px) {
  .p-recruit .p-sd-hero__key {
    font-size: min(80px, 9.3vw);
  }
}
@media screen and (max-width: 640px) {
  .p-recruit .p-sd-hero__key {
    font-size: min(10.4vw, (100vw - 42px) / 9.3);
  }
}
.p-blog-list {
  padding-top: clamp(48px, 5vw, 96px);
}

.p-blog-list__inner {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.p-blog-list__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
}

.p-blog-tabs {
  min-width: 0;
}

.p-blog-tabs ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.p-blog-tabs a {
  display: inline-flex;
  padding: 8px 8px 8px 20px;
  border-radius: 999px;
  background: #f4f5f7;
  font-size: max(var(--fs-min), 14px);
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
  white-space: nowrap;
  transition: background-color 0.4s ease, color 0.4s ease;
  align-items: center;
  gap: 10px;
}

.p-blog-tabs small {
  display: grid;
  min-width: 30px;
  padding: 8.5px 8px;
  border-radius: 999px;
  background: #fff;
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1;
  color: var(--mute);
  transition: background-color 0.4s ease, color 0.4s ease;
  place-items: center;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-blog-tabs a:hover,
.p-blog-tabs a:focus-visible {
  background: #e2e6ec;
}

.p-blog-tabs a:focus-visible {
  outline: 2px solid #d6363a;
  outline-offset: 2px;
}

.p-blog-tabs a[aria-current] {
  background: #263039;
  color: #fff;
}

.p-blog-tabs a[aria-current] small {
  background: #d6363a;
  color: #fff;
}

.p-blog-list__count {
  font-size: max(var(--fs-min), 14px);
  font-weight: 500;
  color: var(--mute);
  flex: none;
}

.p-blog-list__count b,
.p-blog-list__count span {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  color: var(--ink);
  font-variant-numeric: lining-nums tabular-nums;
}

.p-blog-list__count b {
  margin-right: 0.15em;
  font-size: 1.5em;
  font-weight: 400;
}

.p-blog-list__count span {
  margin-inline: 0.3em 0.15em;
}

.p-blog-list__grid {
  margin-top: clamp(32px, 3.1vw, 56px);
}

.p-blog-list__empty {
  display: grid;
  margin-top: clamp(32px, 3.1vw, 56px);
  justify-items: start;
  gap: 24px;
}

@media screen and (max-width: 960px) {
  .p-blog-list__bar {
    display: grid;
    gap: 16px;
  }
}
@media screen and (max-width: 640px) {
  .p-blog-list__inner {
    width: 85%;
  }
  .p-blog-tabs a {
    padding-left: 16px;
  }
  .p-blog-tabs small {
    min-width: 26px;
    padding-block: 6.5px;
  }
  .p-blog-list__grid {
    row-gap: 32px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-blog-tabs a:not([aria-current]) {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
  :root:not([data-theme=light]) .p-blog-tabs a:not([aria-current]) small {
    background: var(--paper);
  }
}
:root[data-theme=dark] .p-blog-tabs a:not([aria-current]) {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

:root[data-theme=dark] .p-blog-tabs a:not([aria-current]) small {
  background: var(--paper);
}

.p-faq-nav {
  width: min(1532px, 100% - var(--gutter) * 2);
  margin: clamp(48px, 5vw, 96px) auto 0;
}

@media screen and (max-width: 640px) {
  .p-faq-nav {
    width: 85%;
  }
}
.p-faq-nav__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: clamp(10px, 0.83vw, 16px);
}

.p-faq-nav__list > li {
  display: grid;
  opacity: 0;
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
  transition-delay: calc(var(--i) * 0.08s);
  transform: translateY(20px);
}

.p-faq-nav__list.is-in > li {
  opacity: 1;
  transform: none;
}

.p-faq-nav a {
  display: grid;
  padding: clamp(18px, 1.46vw, 28px) clamp(18px, 1.46vw, 28px) clamp(18px, 1.46vw, 28px) clamp(20px, 1.67vw, 32px);
  border-radius: var(--inner-r);
  background: #f4f5f7;
  color: var(--ink);
  transition: background-color 0.5s ease, color 0.5s ease;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(14px, 1.25vw, 24px);
}

.p-faq-nav__no {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(22px, 1.67vw, 32px);
  line-height: 1;
  color: #d6363a;
  transition: color 0.5s ease;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-faq-nav__name {
  display: grid;
  gap: 4px;
}

.p-faq-nav__name b {
  font-size: max(var(--fs-min), clamp(15px, 0.94vw, 18px));
  font-weight: 700;
  line-height: 1.5;
  font-feature-settings: "palt";
}

.p-faq-nav__name small {
  font-size: max(var(--fs-min), 13px);
  color: var(--mute);
  transition: color 0.5s ease;
}

.p-faq-nav__go {
  width: 36px;
  background: #fff;
  color: var(--ink);
  aspect-ratio: 1;
}

.p-faq-nav__go svg {
  width: 36%;
  height: auto;
}

.p-faq-nav a:hover,
.p-faq-nav a:focus-visible {
  background: #263039;
  color: #fff;
}

.p-faq-nav a:hover .p-faq-nav__no,
.p-faq-nav a:focus-visible .p-faq-nav__no {
  color: #ff8a80;
}

.p-faq-nav a:hover small,
.p-faq-nav a:focus-visible small {
  color: rgba(255, 255, 255, 0.7);
}

.p-faq-nav a:hover .p-faq-nav__go,
.p-faq-nav a:focus-visible .p-faq-nav__go {
  background: #d6363a;
  color: #fff;
}

.p-faq-nav a:focus-visible {
  outline: 2px solid #d6363a;
  outline-offset: 3px;
}

.p-faq-group {
  padding-block: clamp(40px, 4.2vw, 80px);
}

.p-faq-group:first-of-type {
  padding-top: clamp(64px, 6.25vw, 120px);
}

.p-faq-group:last-of-type {
  padding-bottom: var(--sec);
}

.p-faq-group + .p-faq-group .p-faq__grid {
  padding-top: clamp(40px, 4.2vw, 80px);
  border-top: 1px solid var(--rule);
}

.p-faq-group__no {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.p-faq-group__no b {
  font-family: "Outfit", "Montserrat", system-ui, sans-serif;
  font-size: clamp(40px, 3.33vw, 64px);
  font-weight: 400;
  line-height: 1;
  color: #d6363a;
  letter-spacing: -0.02em;
  font-variant-numeric: lining-nums tabular-nums;
}

.p-faq-group__no span {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: max(var(--fs-min), 12px);
  font-weight: 500;
  color: var(--mute);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.p-faq-group .p-faq__side h2 {
  margin-top: clamp(14px, 1.25vw, 24px);
}

.p-faq-page__empty {
  width: min(1532px, 100% - var(--gutter) * 2);
  color: var(--mute);
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .p-faq-group__no b {
    font-size: 40px;
  }
  .p-faq-group .p-faq__side h2 {
    margin-top: 10px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .p-faq-nav a:not(:hover, :focus-visible) {
    background: color-mix(in srgb, var(--ink) 8%, var(--paper));
  }
  :root:not([data-theme=light]) .p-faq-nav__go {
    background: var(--paper);
  }
}
:root[data-theme=dark] .p-faq-nav a:not(:hover, :focus-visible) {
  background: color-mix(in srgb, var(--ink) 8%, var(--paper));
}

:root[data-theme=dark] .p-faq-nav__go {
  background: var(--paper);
}

body:has(.p-404) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) {
  color: #fff;
}

body:has(.p-404) .l-header:not(.is-scrolled):not(:has(.p-gnav.is-open)) .c-logo__svg {
  content: url("images/common/logo-white.svg");
}

.p-404 {
  padding: var(--stage-gap);
}

.p-404__stage {
  position: relative;
  display: grid;
  overflow: hidden;
  min-height: calc(100svh - var(--stage-gap) * 2);
  padding: clamp(128px, 9vw, 170px) 8% clamp(64px, 5.5vw, 104px);
  border-radius: var(--stage-r);
  background: radial-gradient(42% 60% at 18% 46%, rgba(214, 54, 58, 0.2), transparent 72%), radial-gradient(50% 80% at 100% 0%, rgba(214, 54, 58, 0.3), transparent 70%), #263039;
  color: #fff;
  isolation: isolate;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  align-items: center;
  gap: clamp(40px, 5vw, 96px);
}

.p-404__stage::before {
  position: absolute;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.6px);
  background-size: 16px 16px;
  pointer-events: none;
  content: "";
  inset: 0;
  -webkit-mask-image: radial-gradient(45% 70% at 22% 48%, #000, transparent);
          mask-image: radial-gradient(45% 70% at 22% 48%, #000, transparent);
}

.p-404__stage::after {
  position: absolute;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  pointer-events: none;
  content: "";
  opacity: 0.12;
  inset: 0;
  mix-blend-mode: overlay;
}

.p-404__back {
  position: absolute;
  z-index: -1;
  right: -0.04em;
  bottom: -0.26em;
  margin: 0;
  font-family: var(--f-latin);
  font-size: clamp(72px, 11vw, 210px);
  font-style: italic;
  line-height: 1;
  color: rgba(255, 255, 255, 0.045);
  white-space: nowrap;
  letter-spacing: -0.03em;
  pointer-events: none;
}

.p-404__en {
  display: flex;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(14px, 1.05vw, 20px);
  font-weight: 700;
  color: #e0484c;
  letter-spacing: 0.08em;
  animation: nfFade 1s 0.05s var(--ease) both;
  align-items: center;
  gap: 14px;
}

.p-404__en span + span::before {
  display: inline-block;
  width: 40px;
  height: 1px;
  margin-right: 14px;
  background: currentColor;
  vertical-align: middle;
  content: "";
  opacity: 0.6;
}

.p-404__num {
  display: flex;
  margin: clamp(14px, 1.4vw, 28px) 0 clamp(22px, 2.4vw, 44px) -0.04em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: clamp(120px, 11.5vw, 220px);
  font-weight: 700;
  line-height: 0.8;
  letter-spacing: -0.05em;
  align-items: center;
  translate: calc(var(--px, 0) * -10px) calc(var(--py, 0) * -6px);
}

.p-404__digit {
  display: inline-block;
  background: linear-gradient(170deg, #fff 30%, rgba(255, 255, 255, 0.5));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: nfRise 1.3s 0.15s var(--ease) both;
}

.p-404__digit:nth-child(2) {
  animation-delay: 0.24s;
}

.p-404__digit:nth-child(3) {
  animation-delay: 0.33s;
}

.p-404__title {
  font-family: var(--f-gothic);
  font-size: clamp(28px, 2.5vw, 48px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  animation: nfFade 1.1s 0.45s var(--ease) both;
}

.p-404__lead {
  margin-top: clamp(14px, 1.2vw, 22px);
  font-size: max(var(--fs-min), clamp(15px, 0.95vw, 18px));
  font-weight: 500;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.72);
  animation: nfFade 1.1s 0.55s var(--ease) both;
}

.p-404__cta {
  margin-top: clamp(28px, 2.6vw, 48px);
  animation: nfFade 1.1s 0.65s var(--ease) both;
}

.p-404-ask {
  width: 100%;
  max-width: 500px;
  margin: 0;
  padding: 22px 22px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--inner-r);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 40px 80px -32px rgba(0, 0, 0, 0.6);
  animation: nfFade 1.2s 0.5s var(--ease) both;
  justify-self: end;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.p-404-ask__bar {
  display: flex;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.14em;
  justify-content: space-between;
  align-items: center;
}

.p-404-ask__state {
  --dot: #3ccf8e;
  display: flex;
  transition: color 0.3s ease;
  align-items: center;
  gap: 8px;
}

.p-404-ask__state::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--dot);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot) 22%, transparent);
  content: "";
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.p-404-ask__state[data-s=search] {
  --dot: #f5b14c;
}

.p-404-ask__state[data-s=search]::before {
  animation: nfBlink 0.9s ease-in-out infinite;
}

.p-404-ask__state[data-s=miss] {
  --dot: #ef4d48;
  color: #ff8a84;
}

.p-404-ask__q {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 90%;
  margin: 18px 0 0 auto;
  padding: 11px 16px;
  border-radius: 18px 18px 4px 18px;
  background: var(--signal);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  color: #fff;
}

.p-404-ask__path {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.01em;
  word-break: break-all;
}

.p-404-ask__a {
  display: grid;
  margin-top: 18px;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
}

.p-404-ask__ai {
  display: grid;
  width: 26px;
  height: 26px;
  margin-top: 2px;
  border: 1.5px solid #fff;
  border-radius: 50%;
  place-items: center;
}

.p-404-ask__ai::after {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e0484c;
  content: "";
}

.p-404-ask__body {
  display: grid;
  font-size: 14px;
  line-height: 1.95;
  color: rgba(255, 255, 255, 0.72);
}

.p-404-ask__body > [aria-hidden] {
  grid-area: 1/1;
}

.p-404-ask__body .is-ghost {
  visibility: hidden;
}

.p-404-ask__body mark {
  padding: 0 2px;
  background: none;
  box-shadow: inset 0 -0.42em 0 rgba(224, 72, 76, 0.55);
  font-weight: 700;
  color: #fff;
}

.p-404-ask__body sup {
  margin-left: 1px;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 9.5px;
  color: #ff8a84;
}

.p-404-ask__caret {
  display: inline-block;
  width: 6px;
  height: 1.05em;
  margin-left: 2px;
  background: #fff;
  vertical-align: -3px;
  animation: nfBlink 1s steps(1) infinite;
}

.p-404-ask__links {
  display: grid;
  margin-top: 16px;
  padding-left: 38px;
  gap: 8px;
}

.p-404-ask__links a {
  display: grid;
  padding: 10px 10px 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: calc(var(--inner-r) - 4px);
  background: rgba(255, 255, 255, 0.03);
  transition: background-color 0.4s ease, border-color 0.4s ease;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.p-404-ask__links a:is(:hover, :focus-visible) {
  border-color: rgba(224, 72, 76, 0.6);
  background: rgba(224, 72, 76, 0.14);
}

.p-404-ask__no {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #ff8a84;
  letter-spacing: 0.04em;
}

.p-404-ask__name {
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.5;
}

.p-404-ask__name small {
  margin-left: 0.9em;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.1em;
}

.p-404-ask__go {
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.08);
}

.p-404-ask__go svg {
  width: 12px;
  height: 12px;
}

.p-404-ask__links a:is(:hover, :focus-visible) .p-404-ask__go {
  background: #e0484c;
}

.p-404.is-play .p-404-ask__links a > * {
  transition: opacity 0.6s ease calc(var(--i) * 0.1s), translate 0.8s var(--ease) calc(var(--i) * 0.1s);
}

.p-404.is-play:not(.is-done) .p-404-ask__links a {
  border-color: transparent;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0.03) 35%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 65%) 0 0/300% 100%;
  animation: nfShimmer 1.8s calc(var(--i) * 0.12s) linear infinite;
}

.p-404.is-play:not(.is-done) .p-404-ask__links a > * {
  opacity: 0;
  translate: 0 8px;
}

.p-404-ask__scan {
  display: none;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0.45) 40%, #fff 50%, rgba(255, 255, 255, 0.45) 60%) 0 0/300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  font-weight: 500;
  color: transparent;
  transition: opacity 0.4s ease;
  animation: nfShimmer 1.6s linear infinite;
}

.p-404-ask__scan b {
  display: inline-block;
  min-width: 2ch;
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  font-weight: 700;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.p-404.is-play .p-404-ask__scan {
  display: block;
}

.p-404.is-miss .p-404-ask__scan {
  opacity: 0;
}

.p-404-ask__foot {
  display: flex;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  justify-content: space-between;
  gap: 12px;
}

.p-404-ask__foot [lang=en] {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
  letter-spacing: 0.14em;
}

@keyframes nfFade {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
}
@keyframes nfRise {
  from {
    opacity: 0;
    transform: translateY(32%) rotate(5deg);
    filter: blur(10px);
  }
}
@keyframes nfShimmer {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes nfBlink {
  50% {
    opacity: 0.25;
  }
}
@media screen and (max-width: 960px) {
  .p-404__stage {
    min-height: 0;
    padding: 136px 8% 72px;
    grid-template-columns: minmax(0, 1fr);
    gap: 56px;
  }
  .p-404-ask {
    max-width: 560px;
    justify-self: start;
  }
}
@media screen and (max-width: 640px) {
  .p-404__stage {
    padding: 108px 20px 40px;
    gap: 44px;
  }
  .p-404__num {
    font-size: clamp(100px, 36vw, 160px);
  }
  .p-404-ask {
    padding: 18px 16px 14px;
    border-radius: var(--inner-r);
  }
  .p-404-ask__links {
    padding-left: 0;
  }
  .p-404-ask__name small {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  :root :is(main, .p-cta) p:not([class]):not(:where(.p-sd-hub *, .p-aio-plan__inc *)),
  :root :is(.hx__lead,
  .c-pagehead__lead,
  .p-sd-hero__lead,
  .p-svc__text,
  .p-voice__d,
  .p-reason__text,
  .p-process__text,
  .p-sd-card__text,
  .p-sd-reason__text,
  .p-sd-team__base,
  .p-sd-guide,
  .p-sd-note,
  .p-aio-answer__point,
  .p-contact__note,
  .p-thanks__note,
  .p-single__writer-text,
  .p-404__lead) {
    line-height: 1.6;
  }
}